Commit 5410b72f876f575d67ba99630eead1ab448ff57a
1 parent
69a3e8e7
init: 系统管理相关
Showing
24 changed files
with
936 additions
and
55 deletions
src/main/java/com/order/erp/config/AdminMetaObjectHandler.java
1 | 1 | package com.order.erp.config; |
2 | 2 | |
3 | 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 | 6 | import lombok.extern.slf4j.Slf4j; |
5 | 7 | import org.apache.ibatis.reflection.MetaObject; |
8 | +import org.springframework.security.core.userdetails.UserDetails; | |
6 | 9 | import org.springframework.stereotype.Component; |
7 | 10 | |
8 | 11 | import java.time.LocalDateTime; |
... | ... | @@ -26,27 +29,27 @@ public class AdminMetaObjectHandler implements MetaObjectHandler { |
26 | 29 | LocalDateTime now = LocalDateTime.now(); |
27 | 30 | this.strictInsertFill(metaObject, CREATE_TIME, LocalDateTime.class, now); |
28 | 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 | 44 | @Override |
42 | 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 | 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 | 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 | 1 | package com.order.erp.controller; |
2 | 2 | |
3 | 3 | import com.order.erp.common.constant.ServerResult; |
4 | +import com.order.erp.domain.vo.admin.AdminAuthRoleVO; | |
4 | 5 | import com.order.erp.domain.vo.admin.AdminRoleQueryVO; |
5 | 6 | import com.order.erp.domain.vo.admin.AdminRoleVO; |
6 | 7 | import com.order.erp.log.Log; |
... | ... | @@ -61,7 +62,7 @@ public class RoleController { |
61 | 62 | @PostMapping(value = "/add") |
62 | 63 | @PreAuthorize("@el.check('roles:add')") |
63 | 64 | public ServerResult add(@RequestBody @Validated AdminRoleVO roleVO) { |
64 | - return ServerResult.success(); | |
65 | + return roleService.add(roleVO); | |
65 | 66 | } |
66 | 67 | |
67 | 68 | @Log("修改角色") |
... | ... | @@ -69,15 +70,15 @@ public class RoleController { |
69 | 70 | @PostMapping(value = "/edit") |
70 | 71 | @PreAuthorize("@el.check('roles:edit')") |
71 | 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 | 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 | 84 | @Log("删除角色") |
... | ... | @@ -85,6 +86,6 @@ public class RoleController { |
85 | 86 | @PostMapping(value = "/delete") |
86 | 87 | @PreAuthorize("@el.check('roles:del')") |
87 | 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 | 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 | 6 | import lombok.AllArgsConstructor; |
6 | 7 | import lombok.Data; |
7 | 8 | import lombok.NoArgsConstructor; |
8 | 9 | import lombok.experimental.SuperBuilder; |
10 | +import org.apache.ibatis.type.LocalDateTimeTypeHandler; | |
9 | 11 | |
10 | 12 | import java.io.Serializable; |
11 | 13 | import java.time.LocalDateTime; |
... | ... | @@ -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 | 26 | private LocalDateTime createTime; |
25 | 27 | |
26 | 28 | /** |
27 | 29 | * 创建人 |
28 | 30 | */ |
31 | + @TableField(fill = FieldFill.INSERT) | |
29 | 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 | 38 | private LocalDateTime modifyTime; |
36 | 39 | |
37 | 40 | /** |
38 | 41 | * 修改人 |
39 | 42 | */ |
43 | + @TableField(fill = FieldFill.INSERT_UPDATE) | |
40 | 44 | private String modifyBy; |
41 | 45 | |
42 | 46 | /** |
43 | 47 | * 是否可用 10-可用 20-删除 30-禁用 |
44 | 48 | */ |
49 | + @TableLogic | |
50 | + @TableField(fill = FieldFill.INSERT) | |
45 | 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
src/main/java/com/order/erp/domain/vo/admin/AdminRoleVO.java
... | ... | @@ -25,14 +25,11 @@ public class AdminRoleVO implements Serializable { |
25 | 25 | * 角色名称 |
26 | 26 | */ |
27 | 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 | 4 | import lombok.experimental.SuperBuilder; |
5 | 5 | |
6 | 6 | import java.io.Serializable; |
7 | +import java.time.LocalDateTime; | |
7 | 8 | |
8 | 9 | /** |
9 | 10 | * 用户表(AdminUser)实体类 |
... | ... | @@ -21,34 +22,61 @@ public class AdminUserVO implements Serializable { |
21 | 22 | private static final long serialVersionUID = 840682837180084937L; |
22 | 23 | |
23 | 24 | private Long id; |
25 | + | |
26 | + /** | |
27 | + * 部门id | |
28 | + */ | |
29 | + private Long deptId; | |
30 | + | |
24 | 31 | /** |
25 | 32 | * 用户名称 |
26 | 33 | */ |
27 | 34 | private String userName; |
35 | + | |
28 | 36 | /** |
29 | 37 | * 用户昵称 |
30 | 38 | */ |
31 | 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 | 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 | 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<AdminMenuDO> { |
31 | 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 | 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 | 4 | import com.order.erp.common.constant.ServerResult; |
5 | 5 | import com.order.erp.domain.dto.admin.AdminRoleDO; |
6 | 6 | import com.order.erp.domain.vo.UserVO; |
7 | +import com.order.erp.domain.vo.admin.AdminAuthRoleVO; | |
7 | 8 | import com.order.erp.domain.vo.admin.AdminRoleQueryVO; |
8 | 9 | import com.order.erp.domain.vo.admin.AdminRoleVO; |
9 | 10 | import org.springframework.security.core.GrantedAuthority; |
... | ... | @@ -63,6 +64,14 @@ public interface AdminRoleService extends IService<AdminRoleDO> { |
63 | 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 | 77 | * @param adminRoleQueryVO 筛选条件 | ... | ... |
src/main/java/com/order/erp/service/admin/AdminUserService.java
... | ... | @@ -39,6 +39,13 @@ public interface AdminUserService extends IService<AdminUserDO> { |
39 | 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 | 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 | 2 | |
3 | 3 | import cn.hutool.core.bean.BeanUtil; |
4 | 4 | import cn.hutool.core.collection.CollUtil; |
5 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
5 | 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 | 11 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
7 | 12 | import com.order.erp.common.constant.Constant; |
8 | 13 | import com.order.erp.common.constant.ServerResult; |
14 | +import com.order.erp.domain.dto.BaseDO; | |
9 | 15 | import com.order.erp.domain.dto.admin.AdminDeptDO; |
10 | 16 | import com.order.erp.domain.vo.admin.AdminDeptQueryVO; |
17 | +import com.order.erp.domain.vo.admin.AdminDeptResultVO; | |
11 | 18 | import com.order.erp.domain.vo.admin.AdminDeptVO; |
12 | 19 | import com.order.erp.mapper.admin.AdminDeptMapper; |
13 | 20 | import com.order.erp.service.admin.AdminDeptService; |
14 | 21 | import lombok.extern.slf4j.Slf4j; |
22 | +import org.springframework.beans.BeanUtils; | |
15 | 23 | import org.springframework.stereotype.Service; |
16 | 24 | |
17 | 25 | import java.util.List; |
18 | 26 | import java.util.Objects; |
27 | +import java.util.stream.Collectors; | |
19 | 28 | |
20 | 29 | /** |
21 | 30 | * 部门表(AdminDept)表服务实现类 |
... | ... | @@ -50,13 +59,38 @@ public class AdminDeptServiceImpl extends ServiceImpl<AdminDeptMapper, AdminDept |
50 | 59 | /** |
51 | 60 | * 分页查询 |
52 | 61 | * |
53 | - * @param adminDeptQueryVO 筛选条件 | |
62 | + * @param queryVO 筛选条件 | |
54 | 63 | * @return 查询结果 |
55 | 64 | */ |
56 | 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 | 2 | |
3 | 3 | import cn.hutool.core.bean.BeanUtil; |
4 | 4 | import cn.hutool.core.collection.CollUtil; |
5 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
5 | 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 | 11 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
7 | 12 | import com.order.erp.common.constant.Constant; |
8 | 13 | import com.order.erp.common.constant.ServerResult; |
14 | +import com.order.erp.domain.dto.BaseDO; | |
9 | 15 | import com.order.erp.domain.dto.admin.AdminJobDO; |
10 | 16 | import com.order.erp.domain.vo.admin.AdminJobQueryVO; |
17 | +import com.order.erp.domain.vo.admin.AdminJobResultVO; | |
11 | 18 | import com.order.erp.domain.vo.admin.AdminJobVO; |
12 | 19 | import com.order.erp.mapper.admin.AdminJobMapper; |
13 | 20 | import com.order.erp.service.admin.AdminJobService; |
14 | 21 | import lombok.extern.slf4j.Slf4j; |
22 | +import org.springframework.beans.BeanUtils; | |
15 | 23 | import org.springframework.stereotype.Service; |
16 | 24 | |
17 | 25 | import java.util.List; |
18 | 26 | import java.util.Objects; |
27 | +import java.util.stream.Collectors; | |
19 | 28 | |
20 | 29 | /** |
21 | 30 | * 岗位表(AdminJob)表服务实现类 |
... | ... | @@ -50,13 +59,39 @@ public class AdminJobServiceImpl extends ServiceImpl<AdminJobMapper, AdminJobDO> |
50 | 59 | /** |
51 | 60 | * 分页查询 |
52 | 61 | * |
53 | - * @param adminJobQueryVO 筛选条件 | |
62 | + * @param queryVO 筛选条件 | |
54 | 63 | * @return 查询结果 |
55 | 64 | */ |
56 | 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 | 2 | |
3 | 3 | import cn.hutool.core.bean.BeanUtil; |
4 | 4 | import cn.hutool.core.collection.CollUtil; |
5 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
5 | 6 | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
7 | +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | |
6 | 8 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
7 | 9 | import com.order.erp.common.constant.Constant; |
8 | 10 | import com.order.erp.common.constant.ServerResult; |
11 | +import com.order.erp.domain.dto.BaseDO; | |
9 | 12 | import com.order.erp.domain.dto.admin.AdminMenuDO; |
10 | 13 | import com.order.erp.domain.vo.admin.AdminMenuQueryVO; |
14 | +import com.order.erp.domain.vo.admin.AdminMenuResult; | |
11 | 15 | import com.order.erp.domain.vo.admin.AdminMenuVO; |
12 | 16 | import com.order.erp.mapper.admin.AdminMenuMapper; |
13 | 17 | import com.order.erp.service.admin.AdminMenuService; |
14 | 18 | import lombok.extern.slf4j.Slf4j; |
19 | +import org.springframework.beans.BeanUtils; | |
15 | 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 | 26 | * 角色表(AdminMenu)表服务实现类 |
... | ... | @@ -59,6 +64,50 @@ public class AdminMenuServiceImpl extends ServiceImpl<AdminMenuMapper, AdminMenu |
59 | 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 | 11 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
12 | 12 | import com.order.erp.common.constant.Constant; |
13 | 13 | import com.order.erp.common.constant.ServerResult; |
14 | +import com.order.erp.common.utils.TransactionHelper; | |
14 | 15 | import com.order.erp.domain.dto.BaseDO; |
15 | 16 | import com.order.erp.domain.dto.admin.AdminMenuDO; |
16 | 17 | import com.order.erp.domain.dto.admin.AdminRoleDO; |
17 | 18 | import com.order.erp.domain.dto.admin.AdminRoleMenuDO; |
18 | 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 | 21 | import com.order.erp.mapper.admin.AdminRoleMapper; |
24 | 22 | import com.order.erp.service.admin.AdminMenuService; |
25 | 23 | import com.order.erp.service.admin.AdminRoleMenuService; |
... | ... | @@ -55,6 +53,9 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole |
55 | 53 | @Resource |
56 | 54 | private AdminMenuService menuService; |
57 | 55 | |
56 | + @Resource | |
57 | + private TransactionHelper transactionHelper; | |
58 | + | |
58 | 59 | |
59 | 60 | /** |
60 | 61 | * 通过ID查询单条数据 |
... | ... | @@ -134,7 +135,6 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole |
134 | 135 | */ |
135 | 136 | @Override |
136 | 137 | public ServerResult add(AdminRoleVO adminRoleVO) { |
137 | - //todo 校验 | |
138 | 138 | if (Objects.nonNull(adminRoleVO.getId())) { |
139 | 139 | adminRoleVO.setId(null); |
140 | 140 | } |
... | ... | @@ -164,6 +164,30 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole |
164 | 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 | 4 | import cn.hutool.core.collection.CollUtil; |
5 | 5 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
6 | 6 | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
7 | +import com.baomidou.mybatisplus.core.metadata.IPage; | |
7 | 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 | 11 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
9 | 12 | import com.canrd.shop.common.constant.ServerResultCode; |
10 | 13 | import com.order.erp.common.constant.Constant; |
... | ... | @@ -12,6 +15,7 @@ import com.order.erp.common.constant.ServerResult; |
12 | 15 | import com.order.erp.common.exception.BusinessException; |
13 | 16 | import com.order.erp.common.utils.ImgCaptchaUtils; |
14 | 17 | import com.order.erp.common.utils.RedisUtil; |
18 | +import com.order.erp.common.utils.TransactionHelper; | |
15 | 19 | import com.order.erp.domain.dto.BaseDO; |
16 | 20 | import com.order.erp.domain.dto.admin.*; |
17 | 21 | import com.order.erp.domain.vo.UserVO; |
... | ... | @@ -28,6 +32,7 @@ import org.springframework.security.authentication.AuthenticationManager; |
28 | 32 | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
29 | 33 | import org.springframework.security.core.Authentication; |
30 | 34 | import org.springframework.security.core.context.SecurityContextHolder; |
35 | +import org.springframework.security.crypto.password.PasswordEncoder; | |
31 | 36 | import org.springframework.stereotype.Service; |
32 | 37 | |
33 | 38 | import javax.annotation.Resource; |
... | ... | @@ -78,6 +83,12 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser |
78 | 83 | @Resource |
79 | 84 | private AdminRoleService roleService; |
80 | 85 | |
86 | + @Resource | |
87 | + private PasswordEncoder passwordEncoder; | |
88 | + | |
89 | + @Resource | |
90 | + private TransactionHelper transactionHelper; | |
91 | + | |
81 | 92 | /** |
82 | 93 | * 通过ID查询单条数据 |
83 | 94 | * <p> |
... | ... | @@ -100,13 +111,40 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser |
100 | 111 | /** |
101 | 112 | * 分页查询 |
102 | 113 | * |
103 | - * @param adminUserQueryVO 筛选条件 | |
114 | + * @param queryVO 筛选条件 | |
104 | 115 | * @return 查询结果 |
105 | 116 | */ |
106 | 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<AdminUserMapper, AdminUser |
122 | 160 | adminUserVO.setId(null); |
123 | 161 | } |
124 | 162 | AdminUserDO adminUserDo = BeanUtil.copyProperties(adminUserVO, AdminUserDO.class); |
125 | - | |
163 | + adminUserDo.setPassword(passwordEncoder.encode("123456")); | |
126 | 164 | save(adminUserDo); |
127 | 165 | |
128 | 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 | * | ... | ... |