From 2b4b341117f19c861a621d3bad25fcb90ddb8736 Mon Sep 17 00:00:00 2001
From: xinsin <2890826955@qq.com>
Date: Sat, 29 Apr 2023 22:38:30 +0800
Subject: [PATCH] =?UTF-8?q?=E2=9E=95=20Feat:=20=E6=9D=83=E9=99=90=E7=AE=A1?=
=?UTF-8?q?=E7=90=86=E6=8E=A5=E5=8F=A3=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../xinsin/config/SecurityConfiguration.java | 11 ++-
.../xinsin/controller/AccountController.java | 18 +++++
.../controller/AuthPermissionsController.java | 34 +++++++++
...ntroller.java => AuthRolesController.java} | 4 +-
.../AuthRolesPermissionController.java | 20 ++++++
.../controller/PermissionsController.java | 15 ----
...Mapper.java => AuthPermissionsMapper.java} | 2 +-
...{RolesMapper.java => AuthRolesMapper.java} | 2 +-
.../mapper/AuthRolesPermissionsMapper.java | 14 ++++
.../java/top/xinsin/pojo/AuthPermissions.java | 9 +--
src/main/java/top/xinsin/pojo/AuthRoles.java | 4 +-
.../top/xinsin/pojo/AuthRolesPermissions.java | 37 ++++++++++
.../pojo/vo/AuthPermissionsAndUserVo.java | 56 +++++++++++++++
.../top/xinsin/service/AccountService.java | 69 +++++++++++++++----
.../service/AuthPermissionsService.java | 67 ++++++++++++++++++
....java => AuthRolesPermissionsService.java} | 7 +-
.../top/xinsin/service/AuthRolesService.java | 16 +++++
.../xinsin/service/PermissionsService.java | 14 ----
.../java/top/xinsin/util/PojoToVoUtils.java | 16 +++++
src/main/resources/application.yml | 10 +--
src/main/resources/log4j-spring.properties | 12 ++++
...nsMapper.xml => AuthPermissionsMapper.xml} | 2 +-
.../{RolesMapper.xml => AuthRolesMapper.xml} | 2 +-
src/test/java/top/xinsin/MainTest.java | 2 +-
25 files changed, 374 insertions(+), 71 deletions(-)
create mode 100644 src/main/java/top/xinsin/controller/AuthPermissionsController.java
rename src/main/java/top/xinsin/controller/{RolesController.java => AuthRolesController.java} (78%)
create mode 100644 src/main/java/top/xinsin/controller/AuthRolesPermissionController.java
delete mode 100644 src/main/java/top/xinsin/controller/PermissionsController.java
rename src/main/java/top/xinsin/mapper/{PermissionsMapper.java => AuthPermissionsMapper.java} (76%)
rename src/main/java/top/xinsin/mapper/{RolesMapper.java => AuthRolesMapper.java} (78%)
create mode 100644 src/main/java/top/xinsin/mapper/AuthRolesPermissionsMapper.java
create mode 100644 src/main/java/top/xinsin/pojo/AuthRolesPermissions.java
create mode 100644 src/main/java/top/xinsin/pojo/vo/AuthPermissionsAndUserVo.java
create mode 100644 src/main/java/top/xinsin/service/AuthPermissionsService.java
rename src/main/java/top/xinsin/service/{RolesService.java => AuthRolesPermissionsService.java} (58%)
create mode 100644 src/main/java/top/xinsin/service/AuthRolesService.java
delete mode 100644 src/main/java/top/xinsin/service/PermissionsService.java
create mode 100644 src/main/java/top/xinsin/util/PojoToVoUtils.java
create mode 100644 src/main/resources/log4j-spring.properties
rename src/main/resources/mapper/{PermissionsMapper.xml => AuthPermissionsMapper.xml} (93%)
rename src/main/resources/mapper/{RolesMapper.xml => AuthRolesMapper.xml} (92%)
diff --git a/pom.xml b/pom.xml
index 365e82a..6afbc0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,7 +99,7 @@
com.baomidou
mybatis-plus-generator
- 3.5.1
+ 3.5.3.1
diff --git a/src/main/java/top/xinsin/config/SecurityConfiguration.java b/src/main/java/top/xinsin/config/SecurityConfiguration.java
index 3e88c9f..2186f49 100644
--- a/src/main/java/top/xinsin/config/SecurityConfiguration.java
+++ b/src/main/java/top/xinsin/config/SecurityConfiguration.java
@@ -1,5 +1,6 @@
package top.xinsin.config;
+import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
@@ -97,17 +98,13 @@ public class SecurityConfiguration {
if (authority.startsWith("ROLE_id=")){
jsonObject.fluentPut("id",authority.replace("ROLE_id=", ""));
}
- if (authority.startsWith("ROLE_role=")){
- jsonObject.fluentPut("role",authority.replace("ROLE_role=",""));
- }
});
- jsonObject
- .fluentPut("message","登陆成功");
+ jsonObject.fluentPut("message","登陆成功");
httpServletResponse.setStatus(HttpCodes.HTTP_CODES200.getCode());
- httpServletResponse.getWriter().write(JSONObject.toJSONString(R.success(jsonObject)));
+ httpServletResponse.getWriter().write(JSON.toJSONString(R.success(jsonObject)));
} else if(httpServletRequest.getRequestURI().endsWith("/logout")) {
httpServletResponse.setStatus(HttpCodes.HTTP_CODES200.getCode());
- httpServletResponse.getWriter().write(JSONObject.toJSONString(R.success("退出登录成功")));
+ httpServletResponse.getWriter().write(JSON.toJSONString(R.success("退出登录成功")));
}
}
private void onFailureLoginHandler(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,AuthenticationException authentication) throws IOException {
diff --git a/src/main/java/top/xinsin/controller/AccountController.java b/src/main/java/top/xinsin/controller/AccountController.java
index f66c2a7..45dfb8c 100644
--- a/src/main/java/top/xinsin/controller/AccountController.java
+++ b/src/main/java/top/xinsin/controller/AccountController.java
@@ -2,6 +2,11 @@ package top.xinsin.controller;
import com.alibaba.fastjson2.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.context.SecurityContext;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.User;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -37,4 +42,17 @@ public class AccountController {
@RequestMapping(path = "/getUser", method = RequestMethod.GET)
public R getUser(@RequestParam("page") Integer page, @RequestParam("num") Integer num) {return this.accountService.getUser(page, num);}
+ @RequestMapping(path = "/getUserInfo",method = RequestMethod.GET)
+ public R getUserInfo(){
+ GrantedAuthority grantedAuthority = ((User) SecurityContextHolder
+ .getContext()
+ .getAuthentication()
+ .getPrincipal())
+ .getAuthorities()
+ .stream()
+ .filter(e -> e.getAuthority().startsWith("ROLE_id="))
+ .findFirst()
+ .get();
+ return accountService.getUserInfo(Integer.parseInt(grantedAuthority.getAuthority().replace("ROLE_id=","")));
+ }
}
diff --git a/src/main/java/top/xinsin/controller/AuthPermissionsController.java b/src/main/java/top/xinsin/controller/AuthPermissionsController.java
new file mode 100644
index 0000000..2f8751f
--- /dev/null
+++ b/src/main/java/top/xinsin/controller/AuthPermissionsController.java
@@ -0,0 +1,34 @@
+package top.xinsin.controller;
+
+import com.alibaba.fastjson2.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import top.xinsin.pojo.AuthPermissions;
+import top.xinsin.pojo.Commission;
+import top.xinsin.service.AuthPermissionsService;
+import top.xinsin.service.AuthRolesService;
+import top.xinsin.util.R;
+
+/**
+ * @author xinsin
+ * Created On 2023/4/24 21:07
+ * @version 1.0
+ */
+@RestController
+@RequestMapping("/authPermissions")
+public class AuthPermissionsController {
+
+ @Autowired
+ private AuthPermissionsService authPermissionsService;
+
+ @RequestMapping(path = "/addAuthPermissions",method = RequestMethod.POST)
+ public R addAuthPermissions(@RequestBody AuthPermissions authPermissions){return authPermissionsService.addAuthPermissions(authPermissions);}
+ @RequestMapping(path = "/changeAuthPermissions",method = RequestMethod.POST)
+ public R changeAuthPermissions(@RequestBody AuthPermissions authPermissions){return authPermissionsService.changeAuthPermissions(authPermissions);}
+ @RequestMapping(path = "/delAuthPermissions",method = RequestMethod.GET)
+ public R delAuthPermissions(@RequestParam("id")Integer id){return authPermissionsService.delAuthPermissions(id);}
+ @RequestMapping(path = "/getAuthPermissions",method = RequestMethod.GET)
+ public R getAuthPermissions(@RequestParam("page")Integer page, @RequestParam("num")Integer num){return authPermissionsService.getAuthPermissions(page,num);}
+ @RequestMapping(path = "/changeAuthPermissionsStats", method = RequestMethod.GET)
+ public R changeAuthPermissionsStats(@RequestParam("authPermissionId") Integer authPermissionId, @RequestParam("status") Boolean status) {return authPermissionsService.changeAuthPermissionsStats(authPermissionId, status);}
+}
\ No newline at end of file
diff --git a/src/main/java/top/xinsin/controller/RolesController.java b/src/main/java/top/xinsin/controller/AuthRolesController.java
similarity index 78%
rename from src/main/java/top/xinsin/controller/RolesController.java
rename to src/main/java/top/xinsin/controller/AuthRolesController.java
index bc7a9c2..292457e 100644
--- a/src/main/java/top/xinsin/controller/RolesController.java
+++ b/src/main/java/top/xinsin/controller/AuthRolesController.java
@@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RestController;
* @version 1.0
*/
@RestController
-@RequestMapping("/roles")
-public class RolesController {
+@RequestMapping("/authRoles")
+public class AuthRolesController {
}
\ No newline at end of file
diff --git a/src/main/java/top/xinsin/controller/AuthRolesPermissionController.java b/src/main/java/top/xinsin/controller/AuthRolesPermissionController.java
new file mode 100644
index 0000000..2f22b3c
--- /dev/null
+++ b/src/main/java/top/xinsin/controller/AuthRolesPermissionController.java
@@ -0,0 +1,20 @@
+package top.xinsin.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import top.xinsin.service.AuthRolesPermissionsService;
+
+/**
+ * @author xinsin
+ * Created On 2023/4/29 21:05
+ * @version 1.0
+ */
+@RestController
+@RequestMapping("/authRolesPermission")
+public class AuthRolesPermissionController {
+ @Autowired
+ private AuthRolesPermissionsService authRolesPermissionsService;
+
+
+}
diff --git a/src/main/java/top/xinsin/controller/PermissionsController.java b/src/main/java/top/xinsin/controller/PermissionsController.java
deleted file mode 100644
index 0c410aa..0000000
--- a/src/main/java/top/xinsin/controller/PermissionsController.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package top.xinsin.controller;
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @author xinsin
- * Created On 2023/4/24 21:07
- * @version 1.0
- */
-@RestController
-@RequestMapping("/permissions")
-public class PermissionsController {
-
-}
\ No newline at end of file
diff --git a/src/main/java/top/xinsin/mapper/PermissionsMapper.java b/src/main/java/top/xinsin/mapper/AuthPermissionsMapper.java
similarity index 76%
rename from src/main/java/top/xinsin/mapper/PermissionsMapper.java
rename to src/main/java/top/xinsin/mapper/AuthPermissionsMapper.java
index 57b0082..3a5da82 100644
--- a/src/main/java/top/xinsin/mapper/PermissionsMapper.java
+++ b/src/main/java/top/xinsin/mapper/AuthPermissionsMapper.java
@@ -10,5 +10,5 @@ import top.xinsin.pojo.AuthPermissions;
* @version 1.0
*/
@Mapper
-public interface PermissionsMapper extends BaseMapper {
+public interface AuthPermissionsMapper extends BaseMapper {
}
diff --git a/src/main/java/top/xinsin/mapper/RolesMapper.java b/src/main/java/top/xinsin/mapper/AuthRolesMapper.java
similarity index 78%
rename from src/main/java/top/xinsin/mapper/RolesMapper.java
rename to src/main/java/top/xinsin/mapper/AuthRolesMapper.java
index 03cf517..5d55817 100644
--- a/src/main/java/top/xinsin/mapper/RolesMapper.java
+++ b/src/main/java/top/xinsin/mapper/AuthRolesMapper.java
@@ -10,5 +10,5 @@ import top.xinsin.pojo.AuthRoles;
* @version 1.0
*/
@Mapper
-public interface RolesMapper extends BaseMapper {
+public interface AuthRolesMapper extends BaseMapper {
}
\ No newline at end of file
diff --git a/src/main/java/top/xinsin/mapper/AuthRolesPermissionsMapper.java b/src/main/java/top/xinsin/mapper/AuthRolesPermissionsMapper.java
new file mode 100644
index 0000000..75a646a
--- /dev/null
+++ b/src/main/java/top/xinsin/mapper/AuthRolesPermissionsMapper.java
@@ -0,0 +1,14 @@
+package top.xinsin.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import top.xinsin.pojo.AuthRolesPermissions;
+
+/**
+ * @author xinsin
+ * Created On 2023/4/29 20:28
+ * @version 1.0
+ */
+@Mapper
+public interface AuthRolesPermissionsMapper extends BaseMapper {
+}
diff --git a/src/main/java/top/xinsin/pojo/AuthPermissions.java b/src/main/java/top/xinsin/pojo/AuthPermissions.java
index 6692691..0d806a9 100644
--- a/src/main/java/top/xinsin/pojo/AuthPermissions.java
+++ b/src/main/java/top/xinsin/pojo/AuthPermissions.java
@@ -8,6 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
+import java.util.Date;
/**
* @author xinsin
@@ -27,16 +28,16 @@ public class AuthPermissions implements Serializable {
private String permissionCode;
@TableField("description")
private String description;
- @TableField("account_id")
- private Integer accountId;
+ @TableField("create_id")
+ private Integer createId;
@TableField("create_time")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
- private LocalDateTime createTime;
+ private Date createTime;
@TableField("update_time")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
- private LocalDateTime updateTime;
+ private Date updateTime;
@TableField("status")
private Boolean status;
@TableField("del")
diff --git a/src/main/java/top/xinsin/pojo/AuthRoles.java b/src/main/java/top/xinsin/pojo/AuthRoles.java
index c172885..0e0d270 100644
--- a/src/main/java/top/xinsin/pojo/AuthRoles.java
+++ b/src/main/java/top/xinsin/pojo/AuthRoles.java
@@ -25,8 +25,8 @@ public class AuthRoles implements Serializable {
private String roleName;
@TableField("description")
private String description;
- @TableField("account_id")
- private Integer accountId;
+ @TableField("create_id")
+ private Integer createId;
@TableField("create_time")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
diff --git a/src/main/java/top/xinsin/pojo/AuthRolesPermissions.java b/src/main/java/top/xinsin/pojo/AuthRolesPermissions.java
new file mode 100644
index 0000000..8c61f24
--- /dev/null
+++ b/src/main/java/top/xinsin/pojo/AuthRolesPermissions.java
@@ -0,0 +1,37 @@
+package top.xinsin.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author xinsin
+ * Created On 2023/4/29 14:41
+ * @version 1.0
+ */
+@Data
+@TableName("auth_roles_permissions")
+public class AuthRolesPermissions implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ private Integer roleId;
+ private Integer permissionId;
+ private Integer createId;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date updateTime;
+ @TableLogic
+ private Integer del;
+
+}
diff --git a/src/main/java/top/xinsin/pojo/vo/AuthPermissionsAndUserVo.java b/src/main/java/top/xinsin/pojo/vo/AuthPermissionsAndUserVo.java
new file mode 100644
index 0000000..92e9b83
--- /dev/null
+++ b/src/main/java/top/xinsin/pojo/vo/AuthPermissionsAndUserVo.java
@@ -0,0 +1,56 @@
+package top.xinsin.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+import top.xinsin.pojo.AuthPermissions;
+
+import java.util.Date;
+
+/**
+ * @author xinsin
+ * Created On 2023/4/29 21:27
+ * @version 1.0
+ */
+@Data
+public class AuthPermissionsAndUserVo {
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ @TableField("permission_name")
+ private String permissionName;
+ @TableField("permission_code")
+ private String permissionCode;
+ @TableField("description")
+ private String description;
+ @TableField(exist = false)
+ private String createName;
+ @TableField("create_id")
+ private Integer createId;
+ @TableField("create_time")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ @TableField("update_time")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date updateTime;
+ @TableField("status")
+ private Boolean status;
+
+ public AuthPermissionsAndUserVo(AuthPermissions authPermissions) {
+ this.id = authPermissions.getId();
+ this.permissionName = authPermissions.getPermissionName();
+ this.permissionCode = authPermissions.getPermissionCode();
+ this.description = authPermissions.getDescription();
+ this.createId = authPermissions.getCreateId();
+ this.createTime = authPermissions.getCreateTime();
+ this.updateTime = authPermissions.getUpdateTime();
+ this.status = authPermissions.getStatus();
+ }
+}
diff --git a/src/main/java/top/xinsin/service/AccountService.java b/src/main/java/top/xinsin/service/AccountService.java
index e62e4a4..8e3666c 100644
--- a/src/main/java/top/xinsin/service/AccountService.java
+++ b/src/main/java/top/xinsin/service/AccountService.java
@@ -1,5 +1,6 @@
package top.xinsin.service;
+import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,11 +13,18 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import top.xinsin.mapper.AccountMapper;
+import top.xinsin.mapper.AuthPermissionsMapper;
+import top.xinsin.mapper.AuthRolesMapper;
+import top.xinsin.mapper.AuthRolesPermissionsMapper;
import top.xinsin.pojo.AuthAccount;
+import top.xinsin.pojo.AuthPermissions;
+import top.xinsin.pojo.AuthRoles;
+import top.xinsin.pojo.AuthRolesPermissions;
import top.xinsin.util.HttpCodes;
import top.xinsin.util.R;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
/**
@@ -29,21 +37,32 @@ import java.util.List;
public class AccountService implements UserDetailsService {
@Autowired
private AccountMapper accountMapper;
+ @Autowired
+ private AuthRolesPermissionsMapper authRolesPermissionsMapper;
+ @Autowired
+ private AuthRolesMapper authRolesMapper;
+ @Autowired
+ private AuthPermissionsMapper authPermissionsMapper;
+
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
- public AccountService() {
- }
-
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
- System.out.println(username);
if (username == null) {
throw new UsernameNotFoundException("用户名不能为空");
} else {
- AuthAccount authAccount = this.accountMapper.selectOne(new LambdaQueryWrapper().eq(AuthAccount::getUsername, username).or().eq(AuthAccount::getEmail, username).eq(AuthAccount::getStatus, true));
+ AuthAccount authAccount = this.accountMapper.selectOne(new LambdaQueryWrapper()
+ .eq(AuthAccount::getUsername, username)
+ .or()
+ .eq(AuthAccount::getEmail, username)
+ .eq(AuthAccount::getStatus, true));
if (authAccount == null) {
throw new UsernameNotFoundException("用户名或密码错误");
} else {
- return User.withUsername(authAccount.getUsername()).password(authAccount.getPassword()).roles(new String[]{"role=" + authAccount.getRoleId(), "id=" + authAccount.getId()}).build();
+ return User
+ .withUsername(authAccount.getUsername())
+ .password(authAccount.getPassword())
+ .roles("id=" + authAccount.getId())
+ .build();
}
}
}
@@ -81,19 +100,21 @@ public class AccountService implements UserDetailsService {
AuthAccount authAccount = new AuthAccount();
authAccount.setPassword(this.encoder.encode(newPassword));
LambdaQueryWrapper accountLambdaQueryWrapper = new LambdaQueryWrapper<>();
- accountLambdaQueryWrapper.eq(AuthAccount::getId, userId).eq(AuthAccount::getPassword, this.encoder.encode(oldPassword));
+ accountLambdaQueryWrapper
+ .eq(AuthAccount::getId, userId)
+ .eq(AuthAccount::getPassword, this.encoder.encode(oldPassword));
int update = this.accountMapper.update(authAccount, accountLambdaQueryWrapper);
return update == 1 ? R.success("修改密码成功") : R.failed(HttpCodes.HTTP_CODES555, "修改密码失败,请联系服务器管理员");
}
public R getUser(Integer page, Integer num) {
- Page accountPage = new Page<>((long)page, (long)num);
+ Page accountPage = new Page<>(page, num);
Page accountPage1 = this.accountMapper.selectPage(accountPage, null);
JSONObject jsonObject = new JSONObject();
- List collect = accountPage1.getRecords().stream().peek((e) -> {
- e.setPassword((String)null);
- }).toList();
- jsonObject.fluentPut("info", collect).fluentPut("total", accountPage1.getTotal());
+ List collect = accountPage1.getRecords().stream().peek((e) -> e.setPassword(null)).toList();
+ jsonObject
+ .fluentPut("info", collect)
+ .fluentPut("total", accountPage1.getTotal());
return R.success(jsonObject);
}
@@ -101,4 +122,28 @@ public class AccountService implements UserDetailsService {
int delete = this.accountMapper.deleteById(id);
return delete == 1 ? R.success("删除用户成功") : R.failed(HttpCodes.HTTP_CODES555, "删除用户失败,请联系服务器管理员");
}
+
+ public R getUserInfo(int rolesId) {
+ JSONObject globalReturnData = new JSONObject();
+ JSONArray globalReturnPermissionList = new JSONArray();
+ List authRolesPermissions = authRolesPermissionsMapper
+ .selectList(new LambdaQueryWrapper()
+ .eq(AuthRolesPermissions::getRoleId, rolesId));
+ List permissionsList = authRolesPermissions.stream().map(AuthRolesPermissions::getPermissionId).toList();
+ List authPermissions = authPermissionsMapper.selectList(new LambdaQueryWrapper()
+ .in(AuthPermissions::getId, permissionsList));
+ authPermissions.forEach(e -> {
+ HashMap returnPermissionJson = new HashMap<>();
+ returnPermissionJson.put("permissionName",e.getPermissionName());
+ returnPermissionJson.put("permissionCode",e.getPermissionCode());
+ globalReturnPermissionList.add(returnPermissionJson);
+ });
+ AuthRoles authRoles = authRolesMapper.selectOne(new LambdaQueryWrapper().eq(AuthRoles::getId, rolesId));
+// 角色名
+ String roleName = authRoles.getRoleName();
+ globalReturnData
+ .fluentPut("info",globalReturnPermissionList)
+ .fluentPut("roleName",roleName);
+ return R.success(globalReturnData);
+ }
}
diff --git a/src/main/java/top/xinsin/service/AuthPermissionsService.java b/src/main/java/top/xinsin/service/AuthPermissionsService.java
new file mode 100644
index 0000000..d918cbc
--- /dev/null
+++ b/src/main/java/top/xinsin/service/AuthPermissionsService.java
@@ -0,0 +1,67 @@
+package top.xinsin.service;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import top.xinsin.mapper.AccountMapper;
+import top.xinsin.mapper.AuthPermissionsMapper;
+import top.xinsin.pojo.AuthAccount;
+import top.xinsin.pojo.AuthPermissions;
+import top.xinsin.pojo.vo.AuthPermissionsAndUserVo;
+import top.xinsin.util.HttpCodes;
+import top.xinsin.util.R;
+
+import java.util.*;
+
+import static org.springframework.data.util.Pair.toMap;
+
+/**
+ * @author xinsin
+ * Created On 2023/4/24 21:13
+ * @version 1.0
+ */
+@Service
+public class AuthPermissionsService {
+
+ @Autowired
+ private AuthPermissionsMapper authPermissionsMapper;
+ @Autowired
+ private AccountMapper accountMapper;
+ public R addAuthPermissions(AuthPermissions authPermissions) {
+ authPermissions.setCreateTime(new Date());
+ int insert = authPermissionsMapper.insert(authPermissions);
+ return insert == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false);
+ }
+
+ public R changeAuthPermissions(AuthPermissions authPermissions) {
+ authPermissions.setUpdateTime(new Date());
+ int update = authPermissionsMapper.updateById(authPermissions);
+ return update == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false);
+ }
+
+ public R delAuthPermissions(Integer id) {
+ int delete = authPermissionsMapper.deleteById(id);
+ return delete == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false);
+ }
+
+ public R getAuthPermissions(Integer page, Integer num) {
+ Page authPermissionsPage = new Page<>(page, num);
+ Page authPermissionsPage1 = authPermissionsMapper.selectPage(authPermissionsPage, null);
+ List records = authPermissionsPage1.getRecords();
+ List integers = records.stream().map(AuthPermissions::getCreateId).toList();
+ List authAccounts = accountMapper.selectList(new LambdaQueryWrapper()
+ .in(AuthAccount::getId, integers));
+ Map map = new HashMap<>();
+ authAccounts.forEach(e -> map.put(e.getId(), e.getUsername()));
+ List authPermissionsAndUserVos = records.stream().map(AuthPermissionsAndUserVo::new).toList();
+ authPermissionsAndUserVos.forEach(e -> e.setCreateName(map.get(e.getCreateId())));
+ return R.success(new JSONObject().fluentPut("info",authPermissionsAndUserVos).fluentPut("total",authPermissionsPage.getTotal()));
+ }
+
+ public R changeAuthPermissionsStats(Integer authPermissionId, Boolean status) {
+ return R.success("");
+ }
+}
diff --git a/src/main/java/top/xinsin/service/RolesService.java b/src/main/java/top/xinsin/service/AuthRolesPermissionsService.java
similarity index 58%
rename from src/main/java/top/xinsin/service/RolesService.java
rename to src/main/java/top/xinsin/service/AuthRolesPermissionsService.java
index d2c86d5..abe8afb 100644
--- a/src/main/java/top/xinsin/service/RolesService.java
+++ b/src/main/java/top/xinsin/service/AuthRolesPermissionsService.java
@@ -4,11 +4,10 @@ import org.springframework.stereotype.Service;
/**
* @author xinsin
- * Created On 2023/4/24 21:13
+ * Created On 2023/4/29 20:28
* @version 1.0
*/
@Service
-public class RolesService {
- public RolesService() {
- }
+public class AuthRolesPermissionsService {
+
}
diff --git a/src/main/java/top/xinsin/service/AuthRolesService.java b/src/main/java/top/xinsin/service/AuthRolesService.java
new file mode 100644
index 0000000..e997805
--- /dev/null
+++ b/src/main/java/top/xinsin/service/AuthRolesService.java
@@ -0,0 +1,16 @@
+package top.xinsin.service;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import top.xinsin.mapper.AuthRolesMapper;
+
+/**
+ * @author xinsin
+ * Created On 2023/4/24 21:13
+ * @version 1.0
+ */
+@Service
+public class AuthRolesService {
+ @Autowired
+ private AuthRolesMapper authRolesMapper;
+}
diff --git a/src/main/java/top/xinsin/service/PermissionsService.java b/src/main/java/top/xinsin/service/PermissionsService.java
deleted file mode 100644
index 87702b6..0000000
--- a/src/main/java/top/xinsin/service/PermissionsService.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package top.xinsin.service;
-
-import org.springframework.stereotype.Service;
-
-/**
- * @author xinsin
- * Created On 2023/4/24 21:13
- * @version 1.0
- */
-@Service
-public class PermissionsService {
- public PermissionsService() {
- }
-}
diff --git a/src/main/java/top/xinsin/util/PojoToVoUtils.java b/src/main/java/top/xinsin/util/PojoToVoUtils.java
new file mode 100644
index 0000000..016a4d4
--- /dev/null
+++ b/src/main/java/top/xinsin/util/PojoToVoUtils.java
@@ -0,0 +1,16 @@
+package top.xinsin.util;
+
+import org.springframework.beans.BeanUtils;
+
+/**
+ * @author xinsin
+ * Created On 2023/4/29 21:17
+ * @version 1.0
+ */
+public class PojoToVoUtils {
+
+ public static T pojoToVo(T filed,Object data){
+// BeanUtils.copyProperties();
+ return (T) new Object();
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 42fa8a2..84f06c1 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -2,9 +2,9 @@ server:
port: 8001
spring:
datasource:
- username: commerce
- password: Jix656dzD6St4YCn_
- url: jdbc:mysql://localhost:3306/commerce_system?serverTimezone=UTC-8
+ username: commerce_system
+ password: Jix656dzD6St4YCn
+ url: jdbc:mysql://wzpmc.cn:3306/commerce_system?serverTimezone=UTC-8
driver-class-name: com.mysql.cj.jdbc.Driver
# druid配置
type: com.alibaba.druid.pool.DruidDataSource
@@ -36,8 +36,8 @@ spring:
user:
password: 123456
mybatis-plus:
-# configuration:
-# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
logic-delete-field: del # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
diff --git a/src/main/resources/log4j-spring.properties b/src/main/resources/log4j-spring.properties
new file mode 100644
index 0000000..1ee0523
--- /dev/null
+++ b/src/main/resources/log4j-spring.properties
@@ -0,0 +1,12 @@
+# LOG4J??
+log4j.rootCategory=INFO,stdout,file
+# ?????
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
+# ???????
+log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.file.file=logs/springboot.log
+log4j.appender.file.DatePattern='.'yyyy-MM-dd
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
\ No newline at end of file
diff --git a/src/main/resources/mapper/PermissionsMapper.xml b/src/main/resources/mapper/AuthPermissionsMapper.xml
similarity index 93%
rename from src/main/resources/mapper/PermissionsMapper.xml
rename to src/main/resources/mapper/AuthPermissionsMapper.xml
index 0e66b75..a67fc8d 100644
--- a/src/main/resources/mapper/PermissionsMapper.xml
+++ b/src/main/resources/mapper/AuthPermissionsMapper.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/src/main/resources/mapper/RolesMapper.xml b/src/main/resources/mapper/AuthRolesMapper.xml
similarity index 92%
rename from src/main/resources/mapper/RolesMapper.xml
rename to src/main/resources/mapper/AuthRolesMapper.xml
index 5de7f0a..e7a332c 100644
--- a/src/main/resources/mapper/RolesMapper.xml
+++ b/src/main/resources/mapper/AuthRolesMapper.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/src/test/java/top/xinsin/MainTest.java b/src/test/java/top/xinsin/MainTest.java
index 14ef63d..17985cf 100644
--- a/src/test/java/top/xinsin/MainTest.java
+++ b/src/test/java/top/xinsin/MainTest.java
@@ -16,7 +16,7 @@ public class MainTest {
@Test
public void test01(){
- System.out.println(new BCryptPasswordEncoder().encode(DigestUtils.md5Hex("12345678")));
+ System.out.println(new BCryptPasswordEncoder().encode(DigestUtils.md5Hex("xinsin")));
System.out.println(DigestUtils.md5Hex("xinsin"));
}