Commit 5410b72f876f575d67ba99630eead1ab448ff57a

Authored by “谢茂盛”
1 parent 69a3e8e7

init: 系统管理相关

Showing 24 changed files with 936 additions and 55 deletions
src/main/java/com/order/erp/config/AdminMetaObjectHandler.java
1 package com.order.erp.config; 1 package com.order.erp.config;
2 2
3 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; 3 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  4 +import com.order.erp.common.constant.Constant;
  5 +import com.order.erp.common.utils.SecurityUtils;
4 import lombok.extern.slf4j.Slf4j; 6 import lombok.extern.slf4j.Slf4j;
5 import org.apache.ibatis.reflection.MetaObject; 7 import org.apache.ibatis.reflection.MetaObject;
  8 +import org.springframework.security.core.userdetails.UserDetails;
6 import org.springframework.stereotype.Component; 9 import org.springframework.stereotype.Component;
7 10
8 import java.time.LocalDateTime; 11 import java.time.LocalDateTime;
@@ -26,27 +29,27 @@ public class AdminMetaObjectHandler implements MetaObjectHandler { @@ -26,27 +29,27 @@ public class AdminMetaObjectHandler implements MetaObjectHandler {
26 LocalDateTime now = LocalDateTime.now(); 29 LocalDateTime now = LocalDateTime.now();
27 this.strictInsertFill(metaObject, CREATE_TIME, LocalDateTime.class, now); 30 this.strictInsertFill(metaObject, CREATE_TIME, LocalDateTime.class, now);
28 this.strictInsertFill(metaObject, MODIFY_TIME, LocalDateTime.class, now); 31 this.strictInsertFill(metaObject, MODIFY_TIME, LocalDateTime.class, now);
29 -// this.strictInsertFill(metaObject, ENABLE_FLAG, Integer.class, Constant.ENABLE_TEN);  
30 -// LoginUserDetail loginUser = UserUtils.getLoginUser();  
31 -// if (null == loginUser) {  
32 -// return;  
33 -// }  
34 -//  
35 -// this.strictInsertFill(metaObject, CREATE_BY, String.class, loginUser.getRealName());  
36 -//  
37 -// this.strictInsertFill(metaObject, MODIFY_BY, String.class, loginUser.getRealName()); 32 + this.strictInsertFill(metaObject, ENABLE_FLAG, Integer.class, Constant.ENABLE_TEN);
  33 + UserDetails loginUser = SecurityUtils.getUserDetails();
  34 + if (null == loginUser) {
  35 + return;
  36 + }
  37 +
  38 + this.strictInsertFill(metaObject, CREATE_BY, String.class, loginUser.getUsername());
  39 +
  40 + this.strictInsertFill(metaObject, MODIFY_BY, String.class, loginUser.getUsername());
38 41
39 } 42 }
40 43
41 @Override 44 @Override
42 public void updateFill(MetaObject metaObject) { 45 public void updateFill(MetaObject metaObject) {
43 46
44 - this.strictInsertFill(metaObject, MODIFY_TIME, LocalDateTime.class, LocalDateTime.now()); 47 + this.strictUpdateFill(metaObject, MODIFY_TIME, LocalDateTime.class, LocalDateTime.now());
45 48
46 -// LoginUserDetail loginUser = UserUtils.getLoginUser();  
47 -// if (null == loginUser) {  
48 -// return;  
49 -// }  
50 -// this.strictInsertFill(metaObject, MODIFY_BY, String.class, loginUser.getRealName()); 49 + UserDetails loginUser = SecurityUtils.getUserDetails();
  50 + if (null == loginUser) {
  51 + return;
  52 + }
  53 + this.strictUpdateFill(metaObject, MODIFY_BY, String.class, loginUser.getUsername());
51 } 54 }
52 } 55 }
src/main/java/com/order/erp/controller/DeptController.java 0 → 100644
  1 +package com.order.erp.controller;
  2 +
  3 +import com.order.erp.common.constant.ServerResult;
  4 +import com.order.erp.domain.vo.admin.AdminDeptQueryVO;
  5 +import com.order.erp.domain.vo.admin.AdminDeptVO;
  6 +import com.order.erp.log.Log;
  7 +import com.order.erp.service.admin.AdminDeptService;
  8 +import io.swagger.annotations.Api;
  9 +import io.swagger.annotations.ApiOperation;
  10 +import org.springframework.security.access.prepost.PreAuthorize;
  11 +import org.springframework.validation.annotation.Validated;
  12 +import org.springframework.web.bind.annotation.*;
  13 +
  14 +import javax.annotation.Resource;
  15 +
  16 +/**
  17 + * @date 2019-03-25
  18 + */
  19 +@RestController
  20 +@Api(tags = "系统:部门管理")
  21 +@RequestMapping("/order/erp/depts")
  22 +public class DeptController {
  23 +
  24 + @Resource
  25 + private AdminDeptService deptService;
  26 +
  27 +
  28 + @Log("查询部门")
  29 + @ApiOperation("查询部门")
  30 + @PostMapping(value = "/list_by_page")
  31 + @PreAuthorize("@el.check('user:list','dept:list')")
  32 + public ServerResult listByPage(@RequestBody @Validated AdminDeptQueryVO queryVO) {
  33 + return deptService.list(queryVO);
  34 + }
  35 +
  36 + @Log("新增部门")
  37 + @ApiOperation("新增部门")
  38 + @PostMapping("/add")
  39 + @PreAuthorize("@el.check('dept:add')")
  40 + public ServerResult add(@RequestBody @Validated AdminDeptVO deptVO) {
  41 + return deptService.add(deptVO);
  42 + }
  43 +
  44 + @Log("修改部门")
  45 + @ApiOperation("修改部门")
  46 + @PutMapping
  47 + @PreAuthorize("@el.check('dept:edit')")
  48 + public ServerResult edit(@RequestBody @Validated AdminDeptVO deptVO) {
  49 + return deptService.edit(deptVO);
  50 + }
  51 +
  52 + @Log("删除部门")
  53 + @ApiOperation("删除部门")
  54 + @DeleteMapping
  55 + @PreAuthorize("@el.check('dept:del')")
  56 + public ServerResult delete(@RequestBody @Validated AdminDeptQueryVO queryVO) {
  57 + return ServerResult.success(deptService.deleteById(queryVO));
  58 + }
  59 +}
0 \ No newline at end of file 60 \ No newline at end of file
src/main/java/com/order/erp/controller/JobController.java 0 → 100644
  1 +package com.order.erp.controller;
  2 +
  3 +import com.order.erp.common.constant.ServerResult;
  4 +import com.order.erp.domain.vo.admin.AdminJobQueryVO;
  5 +import com.order.erp.domain.vo.admin.AdminJobVO;
  6 +import com.order.erp.log.Log;
  7 +import com.order.erp.service.admin.AdminJobService;
  8 +import io.swagger.annotations.Api;
  9 +import io.swagger.annotations.ApiOperation;
  10 +import org.springframework.security.access.prepost.PreAuthorize;
  11 +import org.springframework.validation.annotation.Validated;
  12 +import org.springframework.web.bind.annotation.PostMapping;
  13 +import org.springframework.web.bind.annotation.RequestBody;
  14 +import org.springframework.web.bind.annotation.RequestMapping;
  15 +import org.springframework.web.bind.annotation.RestController;
  16 +
  17 +import javax.annotation.Resource;
  18 +
  19 +/**
  20 + * @date 2019-03-29
  21 + */
  22 +@Api(tags = "系统:岗位管理")
  23 +@RestController
  24 +@RequestMapping("/order/erp/jobs")
  25 +public class JobController {
  26 +
  27 + @Resource
  28 + private AdminJobService jobService;
  29 +
  30 + @Log("查询岗位")
  31 + @ApiOperation("查询岗位")
  32 + @PostMapping(value = "/list_by_page")
  33 + @PreAuthorize("@el.check('job:list','user:list')")
  34 + public ServerResult listByPage(@RequestBody @Validated AdminJobQueryVO queryVO) {
  35 + return jobService.list(queryVO);
  36 + }
  37 +
  38 + @Log("新增岗位")
  39 + @ApiOperation("新增岗位")
  40 + @PostMapping(value = "/add")
  41 + @PreAuthorize("@el.check('job:add')")
  42 + public ServerResult add(@RequestBody @Validated AdminJobVO jobVO) {
  43 + return jobService.add(jobVO);
  44 + }
  45 +
  46 + @Log("修改岗位")
  47 + @ApiOperation("修改岗位")
  48 + @PostMapping(value = "/edit")
  49 + @PreAuthorize("@el.check('job:edit')")
  50 + public ServerResult edit(@RequestBody @Validated AdminJobVO jobVO) {
  51 + return jobService.edit(jobVO);
  52 + }
  53 +
  54 + @Log("删除岗位")
  55 + @ApiOperation("删除岗位")
  56 + @PostMapping(value = "/delete")
  57 + @PreAuthorize("@el.check('job:del')")
  58 + public ServerResult delete(@RequestBody @Validated AdminJobQueryVO queryVO) {
  59 + return jobService.deleteById(queryVO);
  60 + }
  61 +}
0 \ No newline at end of file 62 \ No newline at end of file
src/main/java/com/order/erp/controller/MenuController.java 0 → 100644
  1 +package com.order.erp.controller;
  2 +
  3 +import com.order.erp.common.constant.ServerResult;
  4 +import com.order.erp.domain.vo.admin.AdminMenuQueryVO;
  5 +import com.order.erp.domain.vo.admin.AdminMenuVO;
  6 +import com.order.erp.log.Log;
  7 +import com.order.erp.service.admin.AdminMenuService;
  8 +import io.swagger.annotations.Api;
  9 +import io.swagger.annotations.ApiOperation;
  10 +import org.springframework.security.access.prepost.PreAuthorize;
  11 +import org.springframework.validation.annotation.Validated;
  12 +import org.springframework.web.bind.annotation.PostMapping;
  13 +import org.springframework.web.bind.annotation.RequestBody;
  14 +import org.springframework.web.bind.annotation.RequestMapping;
  15 +import org.springframework.web.bind.annotation.RestController;
  16 +
  17 +import javax.annotation.Resource;
  18 +
  19 +/**
  20 + * @date 2018-12-03
  21 + */
  22 +@Api(tags = "系统:菜单管理")
  23 +@RestController
  24 +@RequestMapping("/order/erp/menus")
  25 +@SuppressWarnings("unchecked")
  26 +public class MenuController {
  27 +
  28 + @Resource
  29 + private AdminMenuService menuService;
  30 +
  31 + @ApiOperation("获取前端所需菜单")
  32 + @PostMapping(value = "/build")
  33 + public ServerResult buildMenus() {
  34 + return ServerResult.success();
  35 + }
  36 +
  37 + @ApiOperation("返回全部的菜单")
  38 + @PostMapping(value = "/tree")
  39 + @PreAuthorize("@el.check('menu:list','roles:list')")
  40 + public ServerResult getMenuTree() {
  41 + return ServerResult.success();
  42 + }
  43 +
  44 + @Log("查询菜单")
  45 + @ApiOperation("查询菜单")
  46 + @PostMapping(value = "/all")
  47 + @PreAuthorize("@el.check('menu:list')")
  48 + public ServerResult all(@RequestBody @Validated AdminMenuQueryVO queryVO) {
  49 + return menuService.all(queryVO);
  50 + }
  51 +
  52 + @Log("新增菜单")
  53 + @ApiOperation("新增菜单")
  54 + @PostMapping(value = "/add")
  55 + @PreAuthorize("@el.check('menu:add')")
  56 + public ServerResult add(@RequestBody @Validated AdminMenuVO menuVO) {
  57 + return menuService.add(menuVO);
  58 + }
  59 +
  60 + @Log("修改菜单")
  61 + @ApiOperation("修改菜单")
  62 + @PostMapping(value = "/edit")
  63 + @PreAuthorize("@el.check('menu:edit')")
  64 + public ServerResult edit(@RequestBody @Validated AdminMenuVO menuVO) {
  65 + return menuService.edit(menuVO);
  66 + }
  67 +
  68 + @Log("删除菜单")
  69 + @ApiOperation("删除菜单")
  70 + @PostMapping(value = "/delete")
  71 + @PreAuthorize("@el.check('menu:del')")
  72 + public ServerResult delete(@RequestBody @Validated AdminMenuQueryVO queryVO) {
  73 + return menuService.deleteById(queryVO);
  74 + }
  75 +}
src/main/java/com/order/erp/controller/RoleController.java
1 package com.order.erp.controller; 1 package com.order.erp.controller;
2 2
3 import com.order.erp.common.constant.ServerResult; 3 import com.order.erp.common.constant.ServerResult;
  4 +import com.order.erp.domain.vo.admin.AdminAuthRoleVO;
4 import com.order.erp.domain.vo.admin.AdminRoleQueryVO; 5 import com.order.erp.domain.vo.admin.AdminRoleQueryVO;
5 import com.order.erp.domain.vo.admin.AdminRoleVO; 6 import com.order.erp.domain.vo.admin.AdminRoleVO;
6 import com.order.erp.log.Log; 7 import com.order.erp.log.Log;
@@ -61,7 +62,7 @@ public class RoleController { @@ -61,7 +62,7 @@ public class RoleController {
61 @PostMapping(value = "/add") 62 @PostMapping(value = "/add")
62 @PreAuthorize("@el.check('roles:add')") 63 @PreAuthorize("@el.check('roles:add')")
63 public ServerResult add(@RequestBody @Validated AdminRoleVO roleVO) { 64 public ServerResult add(@RequestBody @Validated AdminRoleVO roleVO) {
64 - return ServerResult.success(); 65 + return roleService.add(roleVO);
65 } 66 }
66 67
67 @Log("修改角色") 68 @Log("修改角色")
@@ -69,15 +70,15 @@ public class RoleController { @@ -69,15 +70,15 @@ public class RoleController {
69 @PostMapping(value = "/edit") 70 @PostMapping(value = "/edit")
70 @PreAuthorize("@el.check('roles:edit')") 71 @PreAuthorize("@el.check('roles:edit')")
71 public ServerResult edit(@RequestBody @Validated AdminRoleVO roleVO) { 72 public ServerResult edit(@RequestBody @Validated AdminRoleVO roleVO) {
72 - return ServerResult.success(); 73 + return roleService.edit(roleVO);
73 } 74 }
74 75
75 - @Log("修改角色菜单")  
76 - @ApiOperation("修改角色菜单")  
77 - @PostMapping(value = "/edit_menu") 76 + @Log("授权角色菜单")
  77 + @ApiOperation("授权角色菜单")
  78 + @PostMapping(value = "/auth_menu")
78 @PreAuthorize("@el.check('roles:edit')") 79 @PreAuthorize("@el.check('roles:edit')")
79 - public ServerResult editMenu(@RequestBody @Validated AdminRoleVO roleVO) {  
80 - return ServerResult.success(); 80 + public ServerResult authMenu(@RequestBody @Validated AdminAuthRoleVO roleVO) {
  81 + return roleService.authMenu(roleVO);
81 } 82 }
82 83
83 @Log("删除角色") 84 @Log("删除角色")
@@ -85,6 +86,6 @@ public class RoleController { @@ -85,6 +86,6 @@ public class RoleController {
85 @PostMapping(value = "/delete") 86 @PostMapping(value = "/delete")
86 @PreAuthorize("@el.check('roles:del')") 87 @PreAuthorize("@el.check('roles:del')")
87 public ServerResult delete(@RequestBody @Validated AdminRoleQueryVO queryVO) { 88 public ServerResult delete(@RequestBody @Validated AdminRoleQueryVO queryVO) {
88 - return ServerResult.success(); 89 + return roleService.deleteById(queryVO);
89 } 90 }
90 } 91 }
src/main/java/com/order/erp/controller/UserController.java 0 → 100644
  1 +package com.order.erp.controller;
  2 +
  3 +import com.order.erp.common.constant.ServerResult;
  4 +import com.order.erp.config.DataScope;
  5 +import com.order.erp.domain.vo.admin.AdminAuthUserVO;
  6 +import com.order.erp.domain.vo.admin.AdminUserQueryVO;
  7 +import com.order.erp.domain.vo.admin.AdminUserVO;
  8 +import com.order.erp.log.Log;
  9 +import com.order.erp.service.admin.AdminUserService;
  10 +import io.swagger.annotations.Api;
  11 +import io.swagger.annotations.ApiOperation;
  12 +import org.springframework.beans.factory.annotation.Value;
  13 +import org.springframework.security.access.prepost.PreAuthorize;
  14 +import org.springframework.validation.annotation.Validated;
  15 +import org.springframework.web.bind.annotation.*;
  16 +import org.springframework.web.multipart.MultipartFile;
  17 +
  18 +import javax.annotation.Resource;
  19 +
  20 +/**
  21 + * @date 2018-11-23
  22 + */
  23 +@Api(tags = "系统:用户管理")
  24 +@RestController
  25 +@RequestMapping("/order/erp/users")
  26 +public class UserController {
  27 +
  28 + @Value("${rsa.private_key}")
  29 + private String privateKey;
  30 +
  31 + @Resource
  32 + private AdminUserService userService;
  33 +
  34 + @Resource
  35 + private DataScope dataScope;
  36 +
  37 + @Log("查询用户")
  38 + @ApiOperation("查询用户")
  39 + @PostMapping(value = "list_by_page")
  40 + @PreAuthorize("@el.check('user:list')")
  41 + public ServerResult listByPage(@RequestBody @Validated AdminUserQueryVO queryVO) {
  42 + return userService.list(queryVO);
  43 + }
  44 +
  45 + @Log("授权角色")
  46 + @ApiOperation("授权角色")
  47 + @PostMapping(value = "/auth_role")
  48 + @PreAuthorize("@el.check('user:add')")
  49 + public ServerResult authRole(@RequestBody @Validated AdminAuthUserVO userVO) {
  50 + return userService.authRole(userVO);
  51 + }
  52 +
  53 + @Log("新增用户")
  54 + @ApiOperation("新增用户")
  55 + @PostMapping(value = "/add")
  56 + @PreAuthorize("@el.check('user:add')")
  57 + public ServerResult add(@RequestBody @Validated AdminUserVO userVO) {
  58 + return userService.add(userVO);
  59 + }
  60 +
  61 + @Log("修改用户")
  62 + @ApiOperation("修改用户")
  63 + @PostMapping(value = "/edit")
  64 + @PreAuthorize("@el.check('user:edit')")
  65 + public ServerResult edit(@RequestBody @Validated AdminUserVO userVO) {
  66 + return userService.edit(userVO);
  67 + }
  68 +
  69 + @Log("修改用户:个人中心")
  70 + @ApiOperation("修改用户:个人中心")
  71 + @PostMapping(value = "/center")
  72 + public ServerResult center(@RequestBody @Validated AdminUserVO userVO) {
  73 + return ServerResult.success();
  74 + }
  75 +
  76 + @Log("删除用户")
  77 + @ApiOperation("删除用户")
  78 + @PostMapping(value = "/delete")
  79 + @PreAuthorize("@el.check('user:del')")
  80 + public ServerResult delete(@RequestBody @Validated AdminUserQueryVO queryVO) {
  81 + return userService.deleteById(queryVO);
  82 + }
  83 +
  84 + @ApiOperation("修改密码")
  85 + @PostMapping(value = "/updatePass")
  86 + public ServerResult updatePass(@RequestBody @Validated AdminUserQueryVO queryVO) {
  87 + return ServerResult.success();
  88 + }
  89 +
  90 + @ApiOperation("修改头像")
  91 + @PostMapping(value = "/updateAvatar")
  92 + public ServerResult updateAvatar(@RequestParam MultipartFile file) {
  93 + return ServerResult.success();
  94 + }
  95 +
  96 + @Log("修改邮箱")
  97 + @ApiOperation("修改邮箱")
  98 + @PostMapping(value = "/updateEmail")
  99 + public ServerResult updateEmail(@RequestBody @Validated AdminUserQueryVO queryVO) {
  100 + return ServerResult.success();
  101 + }
  102 +}
src/main/java/com/order/erp/domain/dto/BaseDO.java
1 package com.order.erp.domain.dto; 1 package com.order.erp.domain.dto;
2 2
3 -import cn.hutool.core.date.DatePattern;  
4 -import com.fasterxml.jackson.annotation.JsonFormat; 3 +import com.baomidou.mybatisplus.annotation.FieldFill;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.baomidou.mybatisplus.annotation.TableLogic;
5 import lombok.AllArgsConstructor; 6 import lombok.AllArgsConstructor;
6 import lombok.Data; 7 import lombok.Data;
7 import lombok.NoArgsConstructor; 8 import lombok.NoArgsConstructor;
8 import lombok.experimental.SuperBuilder; 9 import lombok.experimental.SuperBuilder;
  10 +import org.apache.ibatis.type.LocalDateTimeTypeHandler;
9 11
10 import java.io.Serializable; 12 import java.io.Serializable;
11 import java.time.LocalDateTime; 13 import java.time.LocalDateTime;
@@ -20,28 +22,32 @@ public class BaseDO implements Serializable { @@ -20,28 +22,32 @@ public class BaseDO implements Serializable {
20 /** 22 /**
21 * 创建时间 23 * 创建时间
22 */ 24 */
23 - @JsonFormat(timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN) 25 + @TableField(fill = FieldFill.INSERT, typeHandler = LocalDateTimeTypeHandler.class)
24 private LocalDateTime createTime; 26 private LocalDateTime createTime;
25 27
26 /** 28 /**
27 * 创建人 29 * 创建人
28 */ 30 */
  31 + @TableField(fill = FieldFill.INSERT)
29 private String createBy; 32 private String createBy;
30 33
31 /** 34 /**
32 * 修改时间 35 * 修改时间
33 */ 36 */
34 - @JsonFormat(timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN) 37 + @TableField(fill = FieldFill.INSERT_UPDATE, typeHandler = LocalDateTimeTypeHandler.class)
35 private LocalDateTime modifyTime; 38 private LocalDateTime modifyTime;
36 39
37 /** 40 /**
38 * 修改人 41 * 修改人
39 */ 42 */
  43 + @TableField(fill = FieldFill.INSERT_UPDATE)
40 private String modifyBy; 44 private String modifyBy;
41 45
42 /** 46 /**
43 * 是否可用 10-可用 20-删除 30-禁用 47 * 是否可用 10-可用 20-删除 30-禁用
44 */ 48 */
  49 + @TableLogic
  50 + @TableField(fill = FieldFill.INSERT)
45 private Integer enableFlag; 51 private Integer enableFlag;
46 52
47 /** 53 /**
src/main/java/com/order/erp/domain/vo/admin/AdminAuthRoleVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.admin;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import javax.validation.constraints.NotNull;
  7 +import java.io.Serializable;
  8 +import java.util.Set;
  9 +
  10 +/**
  11 + * @author makejava
  12 + * @since 2023-08-30 17:51:48
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class AdminAuthRoleVO implements Serializable {
  21 +
  22 + /**
  23 + * 角色id
  24 + */
  25 + @NotNull(message = "角色id不能为空")
  26 + private Long roleId;
  27 +
  28 + /**
  29 + * 菜单id
  30 + */
  31 + @NotNull(message = "菜单ids不能为空")
  32 + private Set<Long> menuIds;
  33 +}
src/main/java/com/order/erp/domain/vo/admin/AdminAuthUserVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.admin;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import javax.validation.constraints.NotNull;
  7 +import java.io.Serializable;
  8 +import java.util.Set;
  9 +
  10 +/**
  11 + * @author makejava
  12 + * @since 2023-08-30 17:51:48
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class AdminAuthUserVO implements Serializable {
  21 +
  22 + /**
  23 + * 用户id
  24 + */
  25 + @NotNull(message = "用户id不能为空")
  26 + private Long userId;
  27 +
  28 + /**
  29 + * 角色id
  30 + */
  31 + @NotNull(message = "角色id不能为空")
  32 + private Set<Long> roleIds;
  33 +}
src/main/java/com/order/erp/domain/vo/admin/AdminDeptResultVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.admin;
  2 +
  3 +import cn.hutool.core.date.DatePattern;
  4 +import com.fasterxml.jackson.annotation.JsonFormat;
  5 +import lombok.*;
  6 +import lombok.experimental.SuperBuilder;
  7 +
  8 +import java.io.Serializable;
  9 +import java.time.LocalDateTime;
  10 +
  11 +/**
  12 + * 角色表(AdminRole)实体类
  13 + *
  14 + * @author makejava
  15 + * @since 2023-08-30 17:51:48
  16 + */
  17 +@Data
  18 +@AllArgsConstructor
  19 +@ToString
  20 +@NoArgsConstructor
  21 +@EqualsAndHashCode(callSuper = false)
  22 +@SuperBuilder
  23 +public class AdminDeptResultVO implements Serializable {
  24 +
  25 + private Long id;
  26 +
  27 + /**
  28 + * 岗位名称
  29 + */
  30 + private String name;
  31 +
  32 + /**
  33 + * 上级部门
  34 + */
  35 + private Long pid;
  36 +
  37 + /**
  38 + * 子部门数目
  39 + */
  40 + private Integer subCount;
  41 +
  42 + /**
  43 + * 排序
  44 + */
  45 + private Integer deptSort;
  46 +
  47 +
  48 +}
src/main/java/com/order/erp/domain/vo/admin/AdminJobResultVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.admin;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * @author makejava
  10 + * @since 2023-08-30 17:51:48
  11 + */
  12 +@Data
  13 +@AllArgsConstructor
  14 +@ToString
  15 +@NoArgsConstructor
  16 +@EqualsAndHashCode(callSuper = false)
  17 +@SuperBuilder
  18 +public class AdminJobResultVO implements Serializable {
  19 +
  20 + private Long id;
  21 +
  22 + /**
  23 + * 岗位名称
  24 + */
  25 + private String name;
  26 +
  27 + /**
  28 + * 排序
  29 + */
  30 + private Integer sort;
  31 +
  32 +
  33 +}
src/main/java/com/order/erp/domain/vo/admin/AdminMenuResult.java 0 → 100644
  1 +package com.order.erp.domain.vo.admin;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.time.LocalDateTime;
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * @author xms
  12 + */
  13 +@Data
  14 +@AllArgsConstructor
  15 +@ToString
  16 +@NoArgsConstructor
  17 +@EqualsAndHashCode(callSuper = false)
  18 +@SuperBuilder
  19 +public class AdminMenuResult implements Serializable {
  20 +
  21 + private Long id;
  22 + /**
  23 + * 上级菜单ID
  24 + */
  25 + private Long pid;
  26 +
  27 + /**
  28 + * 子菜单数目
  29 + */
  30 + private Integer subCount;
  31 +
  32 + /**
  33 + * 类型,目录、菜单、按钮
  34 + */
  35 + private Integer type;
  36 +
  37 + /**
  38 + * 菜单标题
  39 + */
  40 + private String title;
  41 +
  42 + /**
  43 + * 菜单名称
  44 + */
  45 + private String name;
  46 +
  47 + /**
  48 + * 组件
  49 + */
  50 + private String component;
  51 +
  52 + /**
  53 + * 排序
  54 + */
  55 + private Integer menuSort;
  56 +
  57 + /**
  58 + * 图标
  59 + */
  60 + private String icon;
  61 +
  62 + /**
  63 + * 路径
  64 + */
  65 + private String path;
  66 +
  67 + /**
  68 + * 是否为外链 0:否,1:是
  69 + */
  70 + private Integer iFrame;
  71 +
  72 + /**
  73 + * cache
  74 + */
  75 + private Integer cache;
  76 +
  77 + /**
  78 + * 权限
  79 + */
  80 + private String permission;
  81 +
  82 + /**
  83 + * 是否隐藏
  84 + */
  85 + private Integer hidden;
  86 +
  87 + private List<AdminMenuResult> children;
  88 +
  89 + private LocalDateTime createTime;
  90 +}
src/main/java/com/order/erp/domain/vo/admin/AdminMenuVO.java
@@ -26,6 +26,10 @@ public class AdminMenuVO implements Serializable { @@ -26,6 +26,10 @@ public class AdminMenuVO implements Serializable {
26 */ 26 */
27 private Long pid; 27 private Long pid;
28 /** 28 /**
  29 + * 菜单标题
  30 + */
  31 + private String title;
  32 + /**
29 * 菜单名称 33 * 菜单名称
30 */ 34 */
31 private String name; 35 private String name;
src/main/java/com/order/erp/domain/vo/admin/AdminRoleVO.java
@@ -25,14 +25,11 @@ public class AdminRoleVO implements Serializable { @@ -25,14 +25,11 @@ public class AdminRoleVO implements Serializable {
25 * 角色名称 25 * 角色名称
26 */ 26 */
27 private String name; 27 private String name;
  28 +
28 /** 29 /**
29 - * 备注  
30 - */  
31 - private String remark;  
32 - /**  
33 - * 权限 30 + * 描述
34 */ 31 */
35 - private String permission; 32 + private String description;
36 /** 33 /**
37 * 数据权限类型 全部 、 本级 、 自定义 34 * 数据权限类型 全部 、 本级 、 自定义
38 */ 35 */
src/main/java/com/order/erp/domain/vo/admin/AdminUserResultVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.admin;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.time.LocalDateTime;
  8 +
  9 +/**
  10 + * 角色表(AdminRole)实体类
  11 + *
  12 + * @author makejava
  13 + * @since 2023-08-30 17:51:48
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +@EqualsAndHashCode(callSuper = false)
  20 +@SuperBuilder
  21 +public class AdminUserResultVO implements Serializable {
  22 +
  23 + private Long id;
  24 +
  25 + /**
  26 + * 部门id
  27 + */
  28 + private Long deptId;
  29 +
  30 + /**
  31 + * 用户名称
  32 + */
  33 + private String userName;
  34 +
  35 + /**
  36 + * 用户昵称
  37 + */
  38 + private String nickName;
  39 +
  40 + /**
  41 + * 性别
  42 + */
  43 + private String gender;
  44 +
  45 + /**
  46 + * 手机号码
  47 + */
  48 + private String phone;
  49 +
  50 + /**
  51 + * 邮箱
  52 + */
  53 + private String email;
  54 +
  55 + /**
  56 + * 头像地址
  57 + */
  58 + private String avatarName;
  59 +
  60 + /**
  61 + * 头像真实路径
  62 + */
  63 + private String avatarPath;
  64 +
  65 + /**
  66 + * 密码
  67 + */
  68 + private String password;
  69 +
  70 + /**
  71 + * 是否为admin账号
  72 + */
  73 + private Boolean isAdmin;
  74 +
  75 + /**
  76 + * 修改密码的时间
  77 + */
  78 + private LocalDateTime pwdResetTime;
  79 +
  80 +
  81 +}
src/main/java/com/order/erp/domain/vo/admin/AdminUserVO.java
@@ -4,6 +4,7 @@ import lombok.*; @@ -4,6 +4,7 @@ import lombok.*;
4 import lombok.experimental.SuperBuilder; 4 import lombok.experimental.SuperBuilder;
5 5
6 import java.io.Serializable; 6 import java.io.Serializable;
  7 +import java.time.LocalDateTime;
7 8
8 /** 9 /**
9 * 用户表(AdminUser)实体类 10 * 用户表(AdminUser)实体类
@@ -21,34 +22,61 @@ public class AdminUserVO implements Serializable { @@ -21,34 +22,61 @@ public class AdminUserVO implements Serializable {
21 private static final long serialVersionUID = 840682837180084937L; 22 private static final long serialVersionUID = 840682837180084937L;
22 23
23 private Long id; 24 private Long id;
  25 +
  26 + /**
  27 + * 部门id
  28 + */
  29 + private Long deptId;
  30 +
24 /** 31 /**
25 * 用户名称 32 * 用户名称
26 */ 33 */
27 private String userName; 34 private String userName;
  35 +
28 /** 36 /**
29 * 用户昵称 37 * 用户昵称
30 */ 38 */
31 private String nickName; 39 private String nickName;
  40 +
32 /** 41 /**
33 * 性别 42 * 性别
34 */ 43 */
35 - private String sex; 44 + private String gender;
  45 +
36 /** 46 /**
37 - * 工作性质 47 + * 手机号码
38 */ 48 */
39 - private String workerType; 49 + private String phone;
  50 +
40 /** 51 /**
41 * 邮箱 52 * 邮箱
42 */ 53 */
43 private String email; 54 private String email;
  55 +
44 /** 56 /**
45 - * 手机号 57 + * 头像地址
46 */ 58 */
47 - private String phone; 59 + private String avatarName;
  60 +
  61 + /**
  62 + * 头像真实路径
  63 + */
  64 + private String avatarPath;
  65 +
48 /** 66 /**
49 * 密码 67 * 密码
50 */ 68 */
51 private String password; 69 private String password;
52 70
  71 + /**
  72 + * 是否为admin账号
  73 + */
  74 + private Boolean isAdmin;
  75 +
  76 + /**
  77 + * 修改密码的时间
  78 + */
  79 + private LocalDateTime pwdResetTime;
  80 +
53 81
54 } 82 }
src/main/java/com/order/erp/service/admin/AdminMenuService.java
@@ -31,6 +31,13 @@ public interface AdminMenuService extends IService&lt;AdminMenuDO&gt; { @@ -31,6 +31,13 @@ public interface AdminMenuService extends IService&lt;AdminMenuDO&gt; {
31 ServerResult list(AdminMenuQueryVO adminMenuQueryVO); 31 ServerResult list(AdminMenuQueryVO adminMenuQueryVO);
32 32
33 /** 33 /**
  34 + *
  35 + * @param adminMenuQueryVO
  36 + * @return
  37 + */
  38 + ServerResult all(AdminMenuQueryVO adminMenuQueryVO);
  39 +
  40 + /**
34 * 新增数据 41 * 新增数据
35 * 42 *
36 * @param adminMenuVO 数据VO 43 * @param adminMenuVO 数据VO
src/main/java/com/order/erp/service/admin/AdminRoleService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
4 import com.order.erp.common.constant.ServerResult; 4 import com.order.erp.common.constant.ServerResult;
5 import com.order.erp.domain.dto.admin.AdminRoleDO; 5 import com.order.erp.domain.dto.admin.AdminRoleDO;
6 import com.order.erp.domain.vo.UserVO; 6 import com.order.erp.domain.vo.UserVO;
  7 +import com.order.erp.domain.vo.admin.AdminAuthRoleVO;
7 import com.order.erp.domain.vo.admin.AdminRoleQueryVO; 8 import com.order.erp.domain.vo.admin.AdminRoleQueryVO;
8 import com.order.erp.domain.vo.admin.AdminRoleVO; 9 import com.order.erp.domain.vo.admin.AdminRoleVO;
9 import org.springframework.security.core.GrantedAuthority; 10 import org.springframework.security.core.GrantedAuthority;
@@ -63,6 +64,14 @@ public interface AdminRoleService extends IService&lt;AdminRoleDO&gt; { @@ -63,6 +64,14 @@ public interface AdminRoleService extends IService&lt;AdminRoleDO&gt; {
63 ServerResult edit(AdminRoleVO adminRoleVO); 64 ServerResult edit(AdminRoleVO adminRoleVO);
64 65
65 /** 66 /**
  67 + * 角色-菜单-授权
  68 + *
  69 + * @param adminAuthRoleVO
  70 + * @return
  71 + */
  72 + ServerResult authMenu(AdminAuthRoleVO adminAuthRoleVO);
  73 +
  74 + /**
66 * 通过主键删除数据 75 * 通过主键删除数据
67 * 76 *
68 * @param adminRoleQueryVO 筛选条件 77 * @param adminRoleQueryVO 筛选条件
src/main/java/com/order/erp/service/admin/AdminUserService.java
@@ -39,6 +39,13 @@ public interface AdminUserService extends IService&lt;AdminUserDO&gt; { @@ -39,6 +39,13 @@ public interface AdminUserService extends IService&lt;AdminUserDO&gt; {
39 ServerResult add(AdminUserVO adminUserVO); 39 ServerResult add(AdminUserVO adminUserVO);
40 40
41 /** 41 /**
  42 + *
  43 + * @param adminUserVO
  44 + * @return
  45 + */
  46 + ServerResult authRole(AdminAuthUserVO adminUserVO);
  47 +
  48 + /**
42 * 修改数据 49 * 修改数据
43 * 50 *
44 * @param adminUserVO 数据VO 51 * @param adminUserVO 数据VO
src/main/java/com/order/erp/service/admin/impl/AdminDeptServiceImpl.java
@@ -2,20 +2,29 @@ package com.order.erp.service.admin.impl; @@ -2,20 +2,29 @@ package com.order.erp.service.admin.impl;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.collection.CollUtil; 4 import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.metadata.IPage;
  8 +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  9 +import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  10 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 11 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 import com.order.erp.common.constant.Constant; 12 import com.order.erp.common.constant.Constant;
8 import com.order.erp.common.constant.ServerResult; 13 import com.order.erp.common.constant.ServerResult;
  14 +import com.order.erp.domain.dto.BaseDO;
9 import com.order.erp.domain.dto.admin.AdminDeptDO; 15 import com.order.erp.domain.dto.admin.AdminDeptDO;
10 import com.order.erp.domain.vo.admin.AdminDeptQueryVO; 16 import com.order.erp.domain.vo.admin.AdminDeptQueryVO;
  17 +import com.order.erp.domain.vo.admin.AdminDeptResultVO;
11 import com.order.erp.domain.vo.admin.AdminDeptVO; 18 import com.order.erp.domain.vo.admin.AdminDeptVO;
12 import com.order.erp.mapper.admin.AdminDeptMapper; 19 import com.order.erp.mapper.admin.AdminDeptMapper;
13 import com.order.erp.service.admin.AdminDeptService; 20 import com.order.erp.service.admin.AdminDeptService;
14 import lombok.extern.slf4j.Slf4j; 21 import lombok.extern.slf4j.Slf4j;
  22 +import org.springframework.beans.BeanUtils;
15 import org.springframework.stereotype.Service; 23 import org.springframework.stereotype.Service;
16 24
17 import java.util.List; 25 import java.util.List;
18 import java.util.Objects; 26 import java.util.Objects;
  27 +import java.util.stream.Collectors;
19 28
20 /** 29 /**
21 * 部门表(AdminDept)表服务实现类 30 * 部门表(AdminDept)表服务实现类
@@ -50,13 +59,38 @@ public class AdminDeptServiceImpl extends ServiceImpl&lt;AdminDeptMapper, AdminDept @@ -50,13 +59,38 @@ public class AdminDeptServiceImpl extends ServiceImpl&lt;AdminDeptMapper, AdminDept
50 /** 59 /**
51 * 分页查询 60 * 分页查询
52 * 61 *
53 - * @param adminDeptQueryVO 筛选条件 62 + * @param queryVO 筛选条件
54 * @return 查询结果 63 * @return 查询结果
55 */ 64 */
56 @Override 65 @Override
57 - public ServerResult list(AdminDeptQueryVO adminDeptQueryVO) { 66 + public ServerResult list(AdminDeptQueryVO queryVO) {
  67 +
  68 + LambdaQueryWrapper<AdminDeptDO> queryWrapper = buildQueryByParam(queryVO);
  69 + Page page = new Page<>(queryVO.getPageNo(), queryVO.getPageSize());
  70 + IPage<AdminDeptDO> iPage = page(page, queryWrapper);
58 71
59 - return null; 72 + Page<AdminDeptResultVO> webVOPage = new Page<>();
  73 + List<AdminDeptDO> adminDeptDOS = iPage.getRecords();
  74 + if (CollectionUtils.isNotEmpty(adminDeptDOS)) {
  75 + List<AdminDeptResultVO> queryVos = adminDeptDOS.stream().map(x -> {
  76 + AdminDeptResultVO resultVO = new AdminDeptResultVO();
  77 + BeanUtils.copyProperties(x, resultVO);
  78 + return resultVO;
  79 + }).collect(Collectors.toList());
  80 + webVOPage.setRecords(queryVos);
  81 + }
  82 + BeanUtils.copyProperties(page, webVOPage, "records");
  83 + return ServerResult.success(webVOPage);
  84 + }
  85 +
  86 + /**
  87 + * @param queryVO
  88 + * @return
  89 + */
  90 + private LambdaQueryWrapper<AdminDeptDO> buildQueryByParam(AdminDeptQueryVO queryVO) {
  91 + return new LambdaQueryWrapper<AdminDeptDO>()
  92 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  93 + .eq(StringUtils.isNotBlank(queryVO.getName()), AdminDeptDO::getName, queryVO.getName());
60 } 94 }
61 95
62 /** 96 /**
src/main/java/com/order/erp/service/admin/impl/AdminJobServiceImpl.java
@@ -2,20 +2,29 @@ package com.order.erp.service.admin.impl; @@ -2,20 +2,29 @@ package com.order.erp.service.admin.impl;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.collection.CollUtil; 4 import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.metadata.IPage;
  8 +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  9 +import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  10 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 11 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 import com.order.erp.common.constant.Constant; 12 import com.order.erp.common.constant.Constant;
8 import com.order.erp.common.constant.ServerResult; 13 import com.order.erp.common.constant.ServerResult;
  14 +import com.order.erp.domain.dto.BaseDO;
9 import com.order.erp.domain.dto.admin.AdminJobDO; 15 import com.order.erp.domain.dto.admin.AdminJobDO;
10 import com.order.erp.domain.vo.admin.AdminJobQueryVO; 16 import com.order.erp.domain.vo.admin.AdminJobQueryVO;
  17 +import com.order.erp.domain.vo.admin.AdminJobResultVO;
11 import com.order.erp.domain.vo.admin.AdminJobVO; 18 import com.order.erp.domain.vo.admin.AdminJobVO;
12 import com.order.erp.mapper.admin.AdminJobMapper; 19 import com.order.erp.mapper.admin.AdminJobMapper;
13 import com.order.erp.service.admin.AdminJobService; 20 import com.order.erp.service.admin.AdminJobService;
14 import lombok.extern.slf4j.Slf4j; 21 import lombok.extern.slf4j.Slf4j;
  22 +import org.springframework.beans.BeanUtils;
15 import org.springframework.stereotype.Service; 23 import org.springframework.stereotype.Service;
16 24
17 import java.util.List; 25 import java.util.List;
18 import java.util.Objects; 26 import java.util.Objects;
  27 +import java.util.stream.Collectors;
19 28
20 /** 29 /**
21 * 岗位表(AdminJob)表服务实现类 30 * 岗位表(AdminJob)表服务实现类
@@ -50,13 +59,39 @@ public class AdminJobServiceImpl extends ServiceImpl&lt;AdminJobMapper, AdminJobDO&gt; @@ -50,13 +59,39 @@ public class AdminJobServiceImpl extends ServiceImpl&lt;AdminJobMapper, AdminJobDO&gt;
50 /** 59 /**
51 * 分页查询 60 * 分页查询
52 * 61 *
53 - * @param adminJobQueryVO 筛选条件 62 + * @param queryVO 筛选条件
54 * @return 查询结果 63 * @return 查询结果
55 */ 64 */
56 @Override 65 @Override
57 - public ServerResult list(AdminJobQueryVO adminJobQueryVO) { 66 + public ServerResult list(AdminJobQueryVO queryVO) {
  67 +
  68 + LambdaQueryWrapper<AdminJobDO> queryWrapper = buildQueryByParam(queryVO);
  69 + Page page = new Page<>(queryVO.getPageNo(), queryVO.getPageSize());
  70 + IPage<AdminJobDO> iPage = page(page, queryWrapper);
  71 +
  72 + Page<AdminJobResultVO> webVOPage = new Page<>();
  73 + List<AdminJobDO> adminJobDOList = iPage.getRecords();
  74 + if (CollectionUtils.isNotEmpty(adminJobDOList)) {
  75 + List<AdminJobResultVO> queryVos = adminJobDOList.stream().map(x -> {
  76 + AdminJobResultVO resultVO = new AdminJobResultVO();
  77 + BeanUtils.copyProperties(x, resultVO);
  78 + return resultVO;
  79 + }).collect(Collectors.toList());
  80 + webVOPage.setRecords(queryVos);
  81 + }
  82 + BeanUtils.copyProperties(page, webVOPage, "records");
  83 + return ServerResult.success(webVOPage);
  84 + }
  85 +
58 86
59 - return null; 87 + /**
  88 + * @param queryVO
  89 + * @return
  90 + */
  91 + private LambdaQueryWrapper<AdminJobDO> buildQueryByParam(AdminJobQueryVO queryVO) {
  92 + return new LambdaQueryWrapper<AdminJobDO>()
  93 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  94 + .eq(StringUtils.isNotBlank(queryVO.getName()), AdminJobDO::getName, queryVO.getName());
60 } 95 }
61 96
62 /** 97 /**
src/main/java/com/order/erp/service/admin/impl/AdminMenuServiceImpl.java
@@ -2,20 +2,25 @@ package com.order.erp.service.admin.impl; @@ -2,20 +2,25 @@ package com.order.erp.service.admin.impl;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.collection.CollUtil; 4 import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
6 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 8 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 import com.order.erp.common.constant.Constant; 9 import com.order.erp.common.constant.Constant;
8 import com.order.erp.common.constant.ServerResult; 10 import com.order.erp.common.constant.ServerResult;
  11 +import com.order.erp.domain.dto.BaseDO;
9 import com.order.erp.domain.dto.admin.AdminMenuDO; 12 import com.order.erp.domain.dto.admin.AdminMenuDO;
10 import com.order.erp.domain.vo.admin.AdminMenuQueryVO; 13 import com.order.erp.domain.vo.admin.AdminMenuQueryVO;
  14 +import com.order.erp.domain.vo.admin.AdminMenuResult;
11 import com.order.erp.domain.vo.admin.AdminMenuVO; 15 import com.order.erp.domain.vo.admin.AdminMenuVO;
12 import com.order.erp.mapper.admin.AdminMenuMapper; 16 import com.order.erp.mapper.admin.AdminMenuMapper;
13 import com.order.erp.service.admin.AdminMenuService; 17 import com.order.erp.service.admin.AdminMenuService;
14 import lombok.extern.slf4j.Slf4j; 18 import lombok.extern.slf4j.Slf4j;
  19 +import org.springframework.beans.BeanUtils;
15 import org.springframework.stereotype.Service; 20 import org.springframework.stereotype.Service;
16 21
17 -import java.util.List;  
18 -import java.util.Objects; 22 +import java.util.*;
  23 +import java.util.stream.Collectors;
19 24
20 /** 25 /**
21 * 角色表(AdminMenu)表服务实现类 26 * 角色表(AdminMenu)表服务实现类
@@ -59,6 +64,50 @@ public class AdminMenuServiceImpl extends ServiceImpl&lt;AdminMenuMapper, AdminMenu @@ -59,6 +64,50 @@ public class AdminMenuServiceImpl extends ServiceImpl&lt;AdminMenuMapper, AdminMenu
59 return null; 64 return null;
60 } 65 }
61 66
  67 + @Override
  68 + public ServerResult all(AdminMenuQueryVO adminMenuQueryVO) {
  69 + List<AdminMenuDO> menuDOList = list(new LambdaQueryWrapper<AdminMenuDO>().eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN));
  70 +
  71 + if (CollectionUtils.isEmpty(menuDOList)) {
  72 + return ServerResult.success();
  73 + }
  74 +
  75 + return ServerResult.success(buildTree(menuDOList));
  76 + }
  77 +
  78 + /**
  79 + * @param menuDOList
  80 + * @return
  81 + */
  82 + private List<AdminMenuResult> buildTree(List<AdminMenuDO> menuDOList) {
  83 + List<AdminMenuResult> menuDtos = menuDOList.stream().map(x -> {
  84 + AdminMenuResult result = new AdminMenuResult();
  85 + BeanUtils.copyProperties(x, result);
  86 + return result;
  87 + }).collect(Collectors.toList());
  88 +
  89 + List<AdminMenuResult> trees = new ArrayList<>();
  90 + Set<Long> ids = new HashSet<>();
  91 + for (AdminMenuResult menuDTO : menuDtos) {
  92 + if (Objects.nonNull(menuDTO.getPid())) {
  93 + trees.add(menuDTO);
  94 + }
  95 + for (AdminMenuResult it : menuDtos) {
  96 + if (Objects.nonNull(it.getPid()) && it.getPid().equals(menuDTO.getId())) {
  97 + if (menuDTO.getChildren() == null) {
  98 + menuDTO.setChildren(new ArrayList<>());
  99 + }
  100 + menuDTO.getChildren().add(it);
  101 + ids.add(it.getId());
  102 + }
  103 + }
  104 + }
  105 + if (trees.size() == 0) {
  106 + trees = menuDtos.stream().filter(s -> !ids.contains(s.getId())).collect(Collectors.toList());
  107 + }
  108 + return trees;
  109 + }
  110 +
62 /** 111 /**
63 * 新增数据 112 * 新增数据
64 * 113 *
src/main/java/com/order/erp/service/admin/impl/AdminRoleServiceImpl.java
@@ -11,15 +11,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,15 +11,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
11 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 11 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
12 import com.order.erp.common.constant.Constant; 12 import com.order.erp.common.constant.Constant;
13 import com.order.erp.common.constant.ServerResult; 13 import com.order.erp.common.constant.ServerResult;
  14 +import com.order.erp.common.utils.TransactionHelper;
14 import com.order.erp.domain.dto.BaseDO; 15 import com.order.erp.domain.dto.BaseDO;
15 import com.order.erp.domain.dto.admin.AdminMenuDO; 16 import com.order.erp.domain.dto.admin.AdminMenuDO;
16 import com.order.erp.domain.dto.admin.AdminRoleDO; 17 import com.order.erp.domain.dto.admin.AdminRoleDO;
17 import com.order.erp.domain.dto.admin.AdminRoleMenuDO; 18 import com.order.erp.domain.dto.admin.AdminRoleMenuDO;
18 import com.order.erp.domain.vo.UserVO; 19 import com.order.erp.domain.vo.UserVO;
19 -import com.order.erp.domain.vo.admin.AdminRoleQueryVO;  
20 -import com.order.erp.domain.vo.admin.AdminRoleResultVO;  
21 -import com.order.erp.domain.vo.admin.AdminRoleVO;  
22 -import com.order.erp.domain.vo.admin.RoleSmallVO; 20 +import com.order.erp.domain.vo.admin.*;
23 import com.order.erp.mapper.admin.AdminRoleMapper; 21 import com.order.erp.mapper.admin.AdminRoleMapper;
24 import com.order.erp.service.admin.AdminMenuService; 22 import com.order.erp.service.admin.AdminMenuService;
25 import com.order.erp.service.admin.AdminRoleMenuService; 23 import com.order.erp.service.admin.AdminRoleMenuService;
@@ -55,6 +53,9 @@ public class AdminRoleServiceImpl extends ServiceImpl&lt;AdminRoleMapper, AdminRole @@ -55,6 +53,9 @@ public class AdminRoleServiceImpl extends ServiceImpl&lt;AdminRoleMapper, AdminRole
55 @Resource 53 @Resource
56 private AdminMenuService menuService; 54 private AdminMenuService menuService;
57 55
  56 + @Resource
  57 + private TransactionHelper transactionHelper;
  58 +
58 59
59 /** 60 /**
60 * 通过ID查询单条数据 61 * 通过ID查询单条数据
@@ -134,7 +135,6 @@ public class AdminRoleServiceImpl extends ServiceImpl&lt;AdminRoleMapper, AdminRole @@ -134,7 +135,6 @@ public class AdminRoleServiceImpl extends ServiceImpl&lt;AdminRoleMapper, AdminRole
134 */ 135 */
135 @Override 136 @Override
136 public ServerResult add(AdminRoleVO adminRoleVO) { 137 public ServerResult add(AdminRoleVO adminRoleVO) {
137 - //todo 校验  
138 if (Objects.nonNull(adminRoleVO.getId())) { 138 if (Objects.nonNull(adminRoleVO.getId())) {
139 adminRoleVO.setId(null); 139 adminRoleVO.setId(null);
140 } 140 }
@@ -164,6 +164,30 @@ public class AdminRoleServiceImpl extends ServiceImpl&lt;AdminRoleMapper, AdminRole @@ -164,6 +164,30 @@ public class AdminRoleServiceImpl extends ServiceImpl&lt;AdminRoleMapper, AdminRole
164 return ServerResult.success(); 164 return ServerResult.success();
165 } 165 }
166 166
  167 + @Override
  168 + public ServerResult authMenu(AdminAuthRoleVO adminAuthRoleVO) {
  169 + AdminRoleDO roleDO = getById(adminAuthRoleVO.getRoleId());
  170 + if (Objects.isNull(roleDO)) {
  171 + return ServerResult.fail("角色不存在");
  172 + }
  173 + List<AdminRoleMenuDO> list = adminAuthRoleVO.getMenuIds().stream().map(x -> {
  174 + return AdminRoleMenuDO.builder().roleId(adminAuthRoleVO.getRoleId()).menuId(x).build();
  175 + }).collect(Collectors.toList());
  176 + if (CollectionUtils.isEmpty(list)) {
  177 + return ServerResult.success();
  178 + }
  179 + try {
  180 + transactionHelper.run(() -> {
  181 + roleMenuService.remove(new LambdaQueryWrapper<AdminRoleMenuDO>().eq(AdminRoleMenuDO::getRoleId, adminAuthRoleVO.getRoleId()));
  182 + roleMenuService.saveBatch(list);
  183 + });
  184 + } catch (Exception e) {
  185 + log.error("授权异常:e:{}", e.getMessage());
  186 + }
  187 +
  188 + return ServerResult.success();
  189 + }
  190 +
167 /** 191 /**
168 * 通过主键删除数据 192 * 通过主键删除数据
169 * 193 *
src/main/java/com/order/erp/service/admin/impl/AdminUserServiceImpl.java
@@ -4,7 +4,10 @@ import cn.hutool.core.bean.BeanUtil; @@ -4,7 +4,10 @@ import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.collection.CollUtil; 4 import cn.hutool.core.collection.CollUtil;
5 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 5 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.metadata.IPage;
7 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 8 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  9 +import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  10 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
8 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 11 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9 import com.canrd.shop.common.constant.ServerResultCode; 12 import com.canrd.shop.common.constant.ServerResultCode;
10 import com.order.erp.common.constant.Constant; 13 import com.order.erp.common.constant.Constant;
@@ -12,6 +15,7 @@ import com.order.erp.common.constant.ServerResult; @@ -12,6 +15,7 @@ import com.order.erp.common.constant.ServerResult;
12 import com.order.erp.common.exception.BusinessException; 15 import com.order.erp.common.exception.BusinessException;
13 import com.order.erp.common.utils.ImgCaptchaUtils; 16 import com.order.erp.common.utils.ImgCaptchaUtils;
14 import com.order.erp.common.utils.RedisUtil; 17 import com.order.erp.common.utils.RedisUtil;
  18 +import com.order.erp.common.utils.TransactionHelper;
15 import com.order.erp.domain.dto.BaseDO; 19 import com.order.erp.domain.dto.BaseDO;
16 import com.order.erp.domain.dto.admin.*; 20 import com.order.erp.domain.dto.admin.*;
17 import com.order.erp.domain.vo.UserVO; 21 import com.order.erp.domain.vo.UserVO;
@@ -28,6 +32,7 @@ import org.springframework.security.authentication.AuthenticationManager; @@ -28,6 +32,7 @@ import org.springframework.security.authentication.AuthenticationManager;
28 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; 32 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
29 import org.springframework.security.core.Authentication; 33 import org.springframework.security.core.Authentication;
30 import org.springframework.security.core.context.SecurityContextHolder; 34 import org.springframework.security.core.context.SecurityContextHolder;
  35 +import org.springframework.security.crypto.password.PasswordEncoder;
31 import org.springframework.stereotype.Service; 36 import org.springframework.stereotype.Service;
32 37
33 import javax.annotation.Resource; 38 import javax.annotation.Resource;
@@ -78,6 +83,12 @@ public class AdminUserServiceImpl extends ServiceImpl&lt;AdminUserMapper, AdminUser @@ -78,6 +83,12 @@ public class AdminUserServiceImpl extends ServiceImpl&lt;AdminUserMapper, AdminUser
78 @Resource 83 @Resource
79 private AdminRoleService roleService; 84 private AdminRoleService roleService;
80 85
  86 + @Resource
  87 + private PasswordEncoder passwordEncoder;
  88 +
  89 + @Resource
  90 + private TransactionHelper transactionHelper;
  91 +
81 /** 92 /**
82 * 通过ID查询单条数据 93 * 通过ID查询单条数据
83 * <p> 94 * <p>
@@ -100,13 +111,40 @@ public class AdminUserServiceImpl extends ServiceImpl&lt;AdminUserMapper, AdminUser @@ -100,13 +111,40 @@ public class AdminUserServiceImpl extends ServiceImpl&lt;AdminUserMapper, AdminUser
100 /** 111 /**
101 * 分页查询 112 * 分页查询
102 * 113 *
103 - * @param adminUserQueryVO 筛选条件 114 + * @param queryVO 筛选条件
104 * @return 查询结果 115 * @return 查询结果
105 */ 116 */
106 @Override 117 @Override
107 - public ServerResult list(AdminUserQueryVO adminUserQueryVO) { 118 + public ServerResult list(AdminUserQueryVO queryVO) {
  119 +
  120 + LambdaQueryWrapper<AdminUserDO> queryWrapper = buildQueryByParam(queryVO);
  121 + Page page = new Page<>(queryVO.getPageNo(), queryVO.getPageSize());
  122 + IPage<AdminUserDO> iPage = page(page, queryWrapper);
  123 +
  124 + Page<AdminUserResultVO> webVOPage = new Page<>();
  125 + List<AdminUserDO> adminDeptDOS = iPage.getRecords();
  126 + if (CollectionUtils.isNotEmpty(adminDeptDOS)) {
  127 + List<AdminUserResultVO> queryVos = adminDeptDOS.stream().map(x -> {
  128 + AdminUserResultVO resultVO = new AdminUserResultVO();
  129 + BeanUtils.copyProperties(x, resultVO);
  130 + return resultVO;
  131 + }).collect(Collectors.toList());
  132 + webVOPage.setRecords(queryVos);
  133 + }
  134 + BeanUtils.copyProperties(page, webVOPage, "records");
  135 + return ServerResult.success(webVOPage);
  136 + }
108 137
109 - return ServerResult.success(); 138 + /**
  139 + * @param queryVO
  140 + * @return
  141 + */
  142 + private LambdaQueryWrapper<AdminUserDO> buildQueryByParam(AdminUserQueryVO queryVO) {
  143 + return new LambdaQueryWrapper<AdminUserDO>()
  144 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  145 + .eq(StringUtils.isNotBlank(queryVO.getUserName()), AdminUserDO::getUserName, queryVO.getUserName())
  146 + .eq(StringUtils.isNotBlank(queryVO.getPhone()), AdminUserDO::getPhone, queryVO.getPhone())
  147 + .eq(StringUtils.isNotBlank(queryVO.getEmail()), AdminUserDO::getEmail, queryVO.getEmail());
110 } 148 }
111 149
112 /** 150 /**
@@ -122,12 +160,36 @@ public class AdminUserServiceImpl extends ServiceImpl&lt;AdminUserMapper, AdminUser @@ -122,12 +160,36 @@ public class AdminUserServiceImpl extends ServiceImpl&lt;AdminUserMapper, AdminUser
122 adminUserVO.setId(null); 160 adminUserVO.setId(null);
123 } 161 }
124 AdminUserDO adminUserDo = BeanUtil.copyProperties(adminUserVO, AdminUserDO.class); 162 AdminUserDO adminUserDo = BeanUtil.copyProperties(adminUserVO, AdminUserDO.class);
125 - 163 + adminUserDo.setPassword(passwordEncoder.encode("123456"));
126 save(adminUserDo); 164 save(adminUserDo);
127 165
128 return ServerResult.success(); 166 return ServerResult.success();
129 } 167 }
130 168
  169 + @Override
  170 + public ServerResult authRole(AdminAuthUserVO adminUserVO) {
  171 + AdminUserDO userDO = getById(adminUserVO.getUserId());
  172 + if (Objects.isNull(userDO)) {
  173 + return ServerResult.fail("用户不存在");
  174 + }
  175 + List<AdminUserRoleDO> list = adminUserVO.getRoleIds().stream().map(x -> {
  176 + return AdminUserRoleDO.builder().userId(adminUserVO.getUserId()).roleId(x).build();
  177 + }).collect(Collectors.toList());
  178 + if (CollectionUtils.isEmpty(list)) {
  179 + return ServerResult.success();
  180 + }
  181 + try {
  182 + transactionHelper.run(() -> {
  183 + userRoleService.remove(new LambdaQueryWrapper<AdminUserRoleDO>().eq(AdminUserRoleDO::getUserId, adminUserVO.getUserId()));
  184 + userRoleService.saveBatch(list);
  185 + });
  186 + } catch (Exception e) {
  187 + log.error("授权异常:e:{}", e.getMessage());
  188 + }
  189 +
  190 + return ServerResult.success();
  191 + }
  192 +
131 /** 193 /**
132 * 修改数据 194 * 修改数据
133 * 195 *