Commit 4ba064d8b3e4ed1cc7b15fdda50ca4880bf1cbcc

Authored by jason
1 parent 9d6a0469

抽取 activiti 到module-bpm-activiti, 为接入flowable 准备

Showing 232 changed files with 873 additions and 811 deletions

Too many changes.

To preserve performance only 100 of 232 files are displayed.

... ... @@ -13,6 +13,7 @@
13 13 <module>yudao-admin-server</module>
14 14 <module>yudao-user-server</module>
15 15 <module>yudao-core-service</module>
  16 + <module>yudao-module-bpm</module>
16 17 </modules>
17 18  
18 19 <name>${artifactId}</name>
... ...
yudao-admin-server/pom.xml
... ... @@ -44,9 +44,10 @@
44 44 <artifactId>yudao-spring-boot-starter-biz-data-permission</artifactId>
45 45 </dependency>
46 46  
  47 + <!-- 默认引入bpm-activiti. 可以替换为bpm-flowable -->
47 48 <dependency>
48 49 <groupId>cn.iocoder.boot</groupId>
49   - <artifactId>yudao-spring-boot-starter-activiti</artifactId>
  50 + <artifactId>yudao-module-bpm-activiti</artifactId>
50 51 </dependency>
51 52  
52 53 <!-- Web 相关 -->
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiacces
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogExcelVO.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierror
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 5 import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants;
6   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  6 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
7 7 import com.alibaba.excel.annotation.ExcelProperty;
8 8 import lombok.Data;
9 9  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderExcelVO.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  3 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
4 4 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
5 5 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundExcelVO.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  3 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
4 4 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
5 5 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/convert/app/PayAppConvert.java
... ... @@ -2,8 +2,6 @@ package cn.iocoder.yudao.adminserver.modules.pay.convert.app;
2 2  
3 3 import java.util.*;
4 4  
5   -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserPageItemRespVO;
6   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
7 5 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
8 6 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
9 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/SysAuthController.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.auth;
3 3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.*;
4 4 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysAuthConvert;
5 5 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;
6   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.MenuTypeEnum;
8 8 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysAuthService;
9 9 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/SysUserSessionController.java
... ... @@ -3,13 +3,15 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.auth;
3 3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageItemRespVO;
4 4 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;
5 5 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysUserSessionConvert;
6   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService;
8 8 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
9 9 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
10 10 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;
11 11 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
12 12 import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;
  13 +import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
  14 +import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
13 15 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
14 16 import cn.iocoder.yudao.framework.common.pojo.PageResult;
15 17 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
... ... @@ -38,9 +40,10 @@ public class SysUserSessionController {
38 40 @Resource
39 41 private SysUserSessionCoreService userSessionCoreService;
40 42 @Resource
41   - private SysUserService userService;
  43 + private SysUserCoreService userCoreService;
  44 +
42 45 @Resource
43   - private SysDeptService deptService;
  46 + private SysDeptCoreService deptCoreService;
44 47  
45 48 @GetMapping("/page")
46 49 @ApiOperation("获得 Session 分页列表")
... ... @@ -50,9 +53,9 @@ public class SysUserSessionController {
50 53 PageResult<SysUserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO);
51 54  
52 55 // 获得拼接需要的数据
53   - Map<Long, SysUserDO> userMap = userService.getUserMap(
  56 + Map<Long, SysUserDO> userMap = userCoreService.getUserMap(
54 57 convertList(pageResult.getList(), SysUserSessionDO::getUserId));
55   - Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(
  58 + Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(
56 59 convertList(userMap.values(), SysUserDO::getDeptId));
57 60 // 拼接结果返回
58 61 List<SysUserSessionPageItemRespVO> sessionList = new ArrayList<>(pageResult.getList().size());
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/dept/SysDeptController.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.controller.dept;
2 2  
  3 +import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
3 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.*;
6 7 import cn.iocoder.yudao.adminserver.modules.system.convert.dept.SysDeptConvert;
7   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
8 9 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
9 10 import io.swagger.annotations.Api;
10 11 import io.swagger.annotations.ApiImplicitParam;
... ... @@ -29,6 +30,9 @@ public class SysDeptController {
29 30 @Resource
30 31 private SysDeptService deptService;
31 32  
  33 + @Resource
  34 + private SysDeptCoreService deptCoreService;
  35 +
32 36 @PostMapping("create")
33 37 @ApiOperation("创建部门")
34 38 @PreAuthorize("@ss.hasPermission('system:dept:create')")
... ... @@ -80,7 +84,7 @@ public class SysDeptController {
80 84 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
81 85 @PreAuthorize("@ss.hasPermission('system:dept:query')")
82 86 public CommonResult<SysDeptRespVO> getDept(@RequestParam("id") Long id) {
83   - return success(SysDeptConvert.INSTANCE.convert(deptService.getDept(id)));
  87 + return success(SysDeptConvert.INSTANCE.convert(deptCoreService.getDept(id)));
84 88 }
85 89  
86 90 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/dept/SysPostController.java
... ... @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
7 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 8 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.*;
9 9 import cn.iocoder.yudao.adminserver.modules.system.convert.dept.SysPostConvert;
10   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  10 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
11 11 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService;
12 12 import io.swagger.annotations.Api;
13 13 import io.swagger.annotations.ApiImplicitParam;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/dept/vo/post/SysPostExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post;
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/dict/vo/data/SysDictDataExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data;
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/dict/vo/type/SysDictTypeExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type;
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/logger/SysOperateLogController.java
... ... @@ -9,6 +9,7 @@ import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOper
9 9 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysOperateLogService;
10 10 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
11 11 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  12 +import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
12 13 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
13 14 import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 15 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
... ... @@ -44,7 +45,7 @@ public class SysOperateLogController {
44 45 @Resource
45 46 private SysOperateLogService operateLogService;
46 47 @Resource
47   - private SysUserService userService;
  48 + private SysUserCoreService userCoreService;
48 49  
49 50 @GetMapping("/page")
50 51 @ApiOperation("查看操作日志分页列表")
... ... @@ -54,7 +55,7 @@ public class SysOperateLogController {
54 55  
55 56 // 获得拼接需要的数据
56 57 Collection<Long> userIds = CollectionUtils.convertList(pageResult.getList(), SysOperateLogDO::getUserId);
57   - Map<Long, SysUserDO> userMap = userService.getUserMap(userIds);
  58 + Map<Long, SysUserDO> userMap = userCoreService.getUserMap(userIds);
58 59 // 拼接数据
59 60 List<SysOperateLogRespVO> list = new ArrayList<>(pageResult.getList().size());
60 61 pageResult.getList().forEach(operateLog -> {
... ... @@ -75,7 +76,7 @@ public class SysOperateLogController {
75 76  
76 77 // 获得拼接需要的数据
77 78 Collection<Long> userIds = CollectionUtils.convertList(list, SysOperateLogDO::getUserId);
78   - Map<Long, SysUserDO> userMap = userService.getUserMap(userIds);
  79 + Map<Long, SysUserDO> userMap = userCoreService.getUserMap(userIds);
79 80 // 拼接数据
80 81 List<SysOperateLogExcelVO> excelDataList = SysOperateLogConvert.INSTANCE.convertList(list, userMap);
81 82 // 输出
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/logger/vo/loginlog/SysLoginLogExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlo
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/logger/vo/operatelog/SysOperateLogExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operate
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/permission/SysRoleController.java
... ... @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
7 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 8 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.*;
9 9 import cn.iocoder.yudao.adminserver.modules.system.convert.permission.SysRoleConvert;
10   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  10 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
11 11 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService;
12 12 import io.swagger.annotations.Api;
13 13 import io.swagger.annotations.ApiImplicitParam;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/permission/vo/role/SysRoleExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.rol
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/sms/vo/log/SysSmsLogExcelVO.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log;
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 5 import cn.iocoder.yudao.framework.excel.core.convert.JsonConvert;
6   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  6 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
7 7 import com.alibaba.excel.annotation.ExcelProperty;
8 8 import lombok.Data;
9 9  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/sms/vo/template/SysSmsTemplateExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template;
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/SysUserController.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.controller.user;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4   -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO;
5   -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptSimpleRespVO;
6 4 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*;
7   -import cn.iocoder.yudao.adminserver.modules.system.convert.dept.SysDeptConvert;
8 5 import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert;
9   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
10   -import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
  6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
11 7 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
12 8 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
13 9 import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;
  10 +import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
14 11 import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
15 12 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
16 13 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
17 14 import cn.iocoder.yudao.framework.common.pojo.PageResult;
18   -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
19 15 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
20 16 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
21 17 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
... ... @@ -50,7 +46,7 @@ public class SysUserController {
50 46 @Resource
51 47 private SysUserCoreService userCoreService;
52 48 @Resource
53   - private SysDeptService deptService;
  49 + private SysDeptCoreService deptCoreService;
54 50  
55 51 @PostMapping("/create")
56 52 @ApiOperation("新增用户")
... ... @@ -105,7 +101,7 @@ public class SysUserController {
105 101  
106 102 // 获得拼接需要的数据
107 103 Collection<Long> deptIds = convertList(pageResult.getList(), SysUserDO::getDeptId);
108   - Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(deptIds);
  104 + Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(deptIds);
109 105 // 拼接结果返回
110 106 List<SysUserPageItemRespVO> userList = new ArrayList<>(pageResult.getList().size());
111 107 pageResult.getList().forEach(user -> {
... ... @@ -144,8 +140,8 @@ public class SysUserController {
144 140  
145 141 // 获得拼接需要的数据
146 142 Collection<Long> deptIds = convertList(users, SysUserDO::getDeptId);
147   - Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(deptIds);
148   - Map<Long, SysUserDO> deptLeaderUserMap = userService.getUserMap(convertSet(deptMap.values(), SysDeptDO::getLeaderUserId));
  143 + Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(deptIds);
  144 + Map<Long, SysUserDO> deptLeaderUserMap = userCoreService.getUserMap(convertSet(deptMap.values(), SysDeptDO::getLeaderUserId));
149 145 // 拼接数据
150 146 List<SysUserExcelVO> excelUsers = new ArrayList<>(users.size());
151 147 users.forEach(user -> {
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/SysUserProfileController.java
... ... @@ -5,16 +5,16 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.Sy
5 5 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
9   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
10   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
11   -import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
12 8 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService;
13 9 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
14 10 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService;
15 11 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  12 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
  13 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
  14 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
16 15 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;
17 16 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  17 +import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
18 18 import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService;
19 19 import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
20 20 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
... ... @@ -48,7 +48,8 @@ public class SysUserProfileController {
48 48 @Resource
49 49 private SysUserCoreService userCoreService;
50 50 @Resource
51   - private SysDeptService deptService;
  51 + private SysDeptCoreService deptCoreService;
  52 +
52 53 @Resource
53 54 private SysPostService postService;
54 55 @Resource
... ... @@ -69,7 +70,7 @@ public class SysUserProfileController {
69 70 resp.setRoles(SysUserConvert.INSTANCE.convertList(userRoles));
70 71 // 获得部门信息
71 72 if (user.getDeptId() != null) {
72   - SysDeptDO dept = deptService.getDept(user.getDeptId());
  73 + SysDeptDO dept = deptCoreService.getDept(user.getDeptId());
73 74 resp.setDept(SysUserConvert.INSTANCE.convert02(dept));
74 75 }
75 76 // 获得岗位信息
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/vo/user/SysUserExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user;
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/vo/user/SysUserImportExcelVO.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user;
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  5 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.AllArgsConstructor;
8 8 import lombok.Builder;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/auth/SysAuthConvert.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.system.convert.auth;
3 3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthMenuRespVO;
4 4 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthPermissionInfoRespVO;
5 5 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;
6   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.MenuIdEnum;
8 8 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
9 9 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/dept/SysDeptConvert.java
... ... @@ -4,7 +4,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDe
4 4 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptRespVO;
5 5 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptSimpleRespVO;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptUpdateReqVO;
7   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
8 8 import org.mapstruct.Mapper;
9 9 import org.mapstruct.factory.Mappers;
10 10  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/dept/SysPostConvert.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.system.convert.dept;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 4 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.*;
5   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
6 6 import org.mapstruct.Mapper;
7 7 import org.mapstruct.factory.Mappers;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/permission/SysRoleConvert.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.convert.permission;
2 2  
3 3 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.*;
4   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
5 5 import org.mapstruct.Mapper;
6 6 import org.mapstruct.factory.Mappers;
7 7  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/user/SysUserConvert.java
... ... @@ -4,9 +4,9 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.Sy
4 4 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO;
5 5 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*;
7   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
9   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
  9 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
10 10 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;
11 11 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
12 12 import org.mapstruct.Mapper;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/dept/SysDeptMapper.java
... ... @@ -3,11 +3,9 @@ package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept;
3 3 import cn.iocoder.yudao.adminserver.modules.tool.enums.SqlConstants;
4 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
7 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
9 8 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
10   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
11 9 import org.apache.ibatis.annotations.Mapper;
12 10  
13 11 import java.util.Date;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/dept/SysPostMapper.java
... ... @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostExportReqVO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostPageReqVO;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
9 9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
10 10 import org.apache.ibatis.annotations.Mapper;
11 11  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/permission/SysRoleMapper.java
... ... @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleExportReqVO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRolePageReqVO;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
9 9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
10 10 import org.apache.ibatis.annotations.Mapper;
11 11 import org.springframework.lang.Nullable;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/permission/SysUserRoleMapper.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysUserRoleDO;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO;
5 5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 6 import org.apache.ibatis.annotations.Mapper;
7 7  
... ... @@ -20,9 +20,6 @@ public interface SysUserRoleMapper extends BaseMapperX&lt;SysUserRoleDO&gt; {
20 20 return selectList(new QueryWrapper<SysUserRoleDO>().eq("role_id", roleId));
21 21 }
22 22  
23   - default List<SysUserRoleDO> selectListByRoleIds(Collection<Long> roleIds) {
24   - return selectList("role_id", roleIds);
25   - }
26 23  
27 24 default void insertList(Long userId, Collection<Long> roleIds) {
28 25 List<SysUserRoleDO> list = roleIds.stream().map(roleId -> {
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/framework/datapermission/config/SysDataPermissionConfiguration.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.framework.datapermission.config;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
4 4 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
5 5 import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRuleCustomizer;
6 6 import org.springframework.context.annotation.Bean;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/impl/SysAuthServiceImpl.java
... ... @@ -6,7 +6,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAu
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialLogin2ReqVO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialLoginReqVO;
8 8 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysAuthConvert;
9   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  9 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
10 10 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum;
11 11 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum;
12 12 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysAuthService;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/SysDeptService.java
... ... @@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
4 4 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptCreateReqVO;
5 5 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptUpdateReqVO;
7   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
8 8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 9  
10 10 import java.util.Collection;
... ... @@ -46,27 +46,6 @@ public interface SysDeptService {
46 46 */
47 47 void deleteDept(Long id);
48 48  
49   - /**
50   - * 获得指定编号的部门列表
51   - *
52   - * @param ids 部门编号数组
53   - * @return 部门列表
54   - */
55   - List<SysDeptDO> getSimpleDepts(Collection<Long> ids);
56   -
57   - /**
58   - * 获得指定编号的部门 Map
59   - *
60   - * @param ids 部门编号数组
61   - * @return 部门 Map
62   - */
63   - default Map<Long, SysDeptDO> getDeptMap(Collection<Long> ids) {
64   - if (CollUtil.isEmpty(ids)) {
65   - return Collections.emptyMap();
66   - }
67   - List<SysDeptDO> list = getSimpleDepts(ids);
68   - return CollectionUtils.convertMap(list, SysDeptDO::getId);
69   - }
70 49  
71 50 /**
72 51 * 筛选部门列表
... ... @@ -77,22 +56,6 @@ public interface SysDeptService {
77 56 List<SysDeptDO> getSimpleDepts(SysDeptListReqVO reqVO);
78 57  
79 58 /**
80   - * 获得部门信息
81   - *
82   - * @param id 部门编号
83   - * @return 部门信息
84   - */
85   - SysDeptDO getDept(Long id);
86   -
87   - /**
88   - * 获得部门信息数组
89   - *
90   - * @param ids 部门编号数组
91   - * @return 部门信息数组
92   - */
93   - List<SysDeptDO> getDepts(Collection<Long> ids);
94   -
95   - /**
96 59 * 获得所有子部门,从缓存中
97 60 *
98 61 * @param parentId 部门编号
... ... @@ -101,13 +64,4 @@ public interface SysDeptService {
101 64 */
102 65 List<SysDeptDO> getDeptsByParentIdFromCache(Long parentId, boolean recursive);
103 66  
104   - /**
105   - * 校验部门们是否有效。如下情况,视为无效:
106   - * 1. 部门编号不存在
107   - * 2. 部门被禁用
108   - *
109   - * @param ids 角色编号数组
110   - */
111   - void validDepts(Collection<Long> ids);
112   -
113 67 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/SysPostService.java
... ... @@ -6,7 +6,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPo
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostExportReqVO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostPageReqVO;
8 8 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostUpdateReqVO;
9   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  9 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
10 10 import org.springframework.lang.Nullable;
11 11  
12 12 import java.util.Collection;
... ... @@ -86,13 +86,4 @@ public interface SysPostService {
86 86 */
87 87 SysPostDO getPost(Long id);
88 88  
89   - /**
90   - * 校验岗位们是否有效。如下情况,视为无效:
91   - * 1. 岗位编号不存在
92   - * 2. 岗位被禁用
93   - *
94   - * @param ids 岗位编号数组
95   - */
96   - void validPosts(Collection<Long> ids);
97   -
98 89 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/impl/SysDeptServiceImpl.java
... ... @@ -10,7 +10,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDe
10 10 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptUpdateReqVO;
11 11 import cn.iocoder.yudao.adminserver.modules.system.convert.dept.SysDeptConvert;
12 12 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept.SysDeptMapper;
13   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  13 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
14 14 import cn.iocoder.yudao.adminserver.modules.system.enums.dept.DeptIdEnum;
15 15 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.dept.SysDeptProducer;
16 16 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
... ... @@ -160,11 +160,6 @@ public class SysDeptServiceImpl implements SysDeptService {
160 160 }
161 161  
162 162 @Override
163   - public List<SysDeptDO> getSimpleDepts(Collection<Long> ids) {
164   - return deptMapper.selectBatchIds(ids);
165   - }
166   -
167   - @Override
168 163 public List<SysDeptDO> getSimpleDepts(SysDeptListReqVO reqVO) {
169 164 return deptMapper.selectList(reqVO);
170 165 }
... ... @@ -182,26 +177,6 @@ public class SysDeptServiceImpl implements SysDeptService {
182 177 return result;
183 178 }
184 179  
185   - @Override
186   - public void validDepts(Collection<Long> ids) {
187   - if (CollUtil.isEmpty(ids)) {
188   - return;
189   - }
190   - // 获得科室信息
191   - List<SysDeptDO> depts = deptMapper.selectBatchIds(ids);
192   - Map<Long, SysDeptDO> deptMap = CollectionUtils.convertMap(depts, SysDeptDO::getId);
193   - // 校验
194   - ids.forEach(id -> {
195   - SysDeptDO dept = deptMap.get(id);
196   - if (dept == null) {
197   - throw exception(DEPT_NOT_FOUND);
198   - }
199   - if (!CommonStatusEnum.ENABLE.getStatus().equals(dept.getStatus())) {
200   - throw exception(DEPT_NOT_ENABLE, dept.getName());
201   - }
202   - });
203   - }
204   -
205 180 /**
206 181 * 递归获取所有的子部门,添加到 result 结果
207 182 *
... ... @@ -227,16 +202,6 @@ public class SysDeptServiceImpl implements SysDeptService {
227 202 recursiveCount - 1, parentDeptMap));
228 203 }
229 204  
230   - @Override
231   - public SysDeptDO getDept(Long id) {
232   - return deptMapper.selectById(id);
233   - }
234   -
235   - @Override
236   - public List<SysDeptDO> getDepts(Collection<Long> ids) {
237   - return deptMapper.selectBatchIds(ids);
238   - }
239   -
240 205 private void checkCreateOrUpdate(Long id, Long parentId, String name) {
241 206 // 校验自己存在
242 207 checkDeptExists(id);
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/impl/SysPostServiceImpl.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.service.dept.impl;
2 2  
3   -import cn.hutool.core.collection.CollUtil;
4   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
5   -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 3 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
7 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 5 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostCreateReqVO;
... ... @@ -11,16 +8,14 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPo
11 8 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostUpdateReqVO;
12 9 import cn.iocoder.yudao.adminserver.modules.system.convert.dept.SysPostConvert;
13 10 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept.SysPostMapper;
14   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
15 12 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService;
16   -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
17 13 import org.springframework.stereotype.Service;
18 14 import org.springframework.validation.annotation.Validated;
19 15  
20 16 import javax.annotation.Resource;
21 17 import java.util.Collection;
22 18 import java.util.List;
23   -import java.util.Map;
24 19  
25 20 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;
26 21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
... ... @@ -84,26 +79,6 @@ public class SysPostServiceImpl implements SysPostService {
84 79 return postMapper.selectById(id);
85 80 }
86 81  
87   - @Override
88   - public void validPosts(Collection<Long> ids) {
89   - if (CollUtil.isEmpty(ids)) {
90   - return;
91   - }
92   - // 获得岗位信息
93   - List<SysPostDO> posts = postMapper.selectBatchIds(ids);
94   - Map<Long, SysPostDO> postMap = CollectionUtils.convertMap(posts, SysPostDO::getId);
95   - // 校验
96   - ids.forEach(id -> {
97   - SysPostDO post = postMap.get(id);
98   - if (post == null) {
99   - throw exception(POST_NOT_FOUND);
100   - }
101   - if (!CommonStatusEnum.ENABLE.getStatus().equals(post.getStatus())) {
102   - throw exception(POST_NOT_ENABLE, post.getName());
103   - }
104   - });
105   - }
106   -
107 82 private void checkCreateOrUpdate(Long id, String name, String code) {
108 83 // 校验自己存在
109 84 checkPostExists(id);
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dict/SysDictDataService.java
... ... @@ -79,14 +79,4 @@ public interface SysDictDataService {
79 79 */
80 80 int countByDictType(String dictType);
81 81  
82   - /**
83   - * 校验字典数据们是否有效。如下情况,视为无效:
84   - * 1. 字典数据不存在
85   - * 2. 字典数据被禁用
86   - *
87   - * @param dictType 字典类型
88   - * @param values 字典数据值的数组
89   - */
90   - void validDictDatas(String dictType, Collection<String> values);
91   -
92 82 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dict/impl/SysDictDataServiceImpl.java
... ... @@ -134,25 +134,6 @@ public class SysDictDataServiceImpl implements SysDictDataService {
134 134 return dictDataMapper.selectCountByDictType(dictType);
135 135 }
136 136  
137   - @Override
138   - public void validDictDatas(String dictType, Collection<String> values) {
139   - if (CollUtil.isEmpty(values)) {
140   - return;
141   - }
142   - // 获得字典数据信息
143   - List<SysDictDataDO> dictDatas = dictDataMapper.selectByDictTypeAndValues(dictType, values);
144   - Map<String, SysDictDataDO> dictDataMap = CollectionUtils.convertMap(dictDatas, SysDictDataDO::getValue);
145   - // 校验
146   - values.forEach(value -> {
147   - SysDictDataDO dictData = dictDataMap.get(value);
148   - if (dictData == null) {
149   - throw exception(DICT_DATA_NOT_EXISTS);
150   - }
151   - if (!CommonStatusEnum.ENABLE.getStatus().equals(dictData.getStatus())) {
152   - throw exception(DICT_DATA_NOT_ENABLE, dictData.getLabel());
153   - }
154   - });
155   - }
156 137  
157 138 private void checkCreateOrUpdate(Long id, String value, String dictType) {
158 139 // 校验自己存在
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/SysPermissionService.java
... ... @@ -78,14 +78,6 @@ public interface SysPermissionService extends SecurityPermissionFrameworkService
78 78 Set<Long> getUserRoleIdListByRoleId(Long roleId);
79 79  
80 80 /**
81   - * 获得拥有多个角色的用户编号集合
82   - *
83   - * @param roleIds 角色编号集合
84   - * @return 用户编号集合
85   - */
86   - Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds);
87   -
88   - /**
89 81 * 设置用户角色
90 82 *
91 83 * @param userId 角色编号
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/SysRoleService.java
... ... @@ -5,7 +5,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role
5 5 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleExportReqVO;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRolePageReqVO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleUpdateReqVO;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
9 9 import org.springframework.lang.Nullable;
10 10  
11 11 import java.util.Collection;
... ... @@ -129,13 +129,6 @@ public interface SysRoleService {
129 129 */
130 130 List<SysRoleDO> getRoleList(SysRoleExportReqVO reqVO);
131 131  
132   - /**
133   - * 校验角色们是否有效。如下情况,视为无效:
134   - * 1. 角色编号不存在
135   - * 2. 角色被禁用
136   - *
137   - * @param ids 角色编号数组
138   - */
139   - void validRoles(Collection<Long> ids);
  132 +
140 133  
141 134 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/impl/SysPermissionServiceImpl.java
... ... @@ -3,11 +3,11 @@ package cn.iocoder.yudao.adminserver.modules.system.service.permission.impl;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.collection.CollectionUtil;
5 5 import cn.hutool.core.util.ArrayUtil;
6   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
9 9 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleMenuDO;
10   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysUserRoleDO;
  10 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO;
11 11 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission.SysRoleMenuMapper;
12 12 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission.SysUserRoleMapper;
13 13 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.permission.SysPermissionProducer;
... ... @@ -227,11 +227,7 @@ public class SysPermissionServiceImpl implements SysPermissionService {
227 227 SysUserRoleDO::getRoleId);
228 228 }
229 229  
230   - @Override
231   - public Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds) {
232   - return CollectionUtils.convertSet(userRoleMapper.selectListByRoleIds(roleIds),
233   - SysUserRoleDO::getRoleId);
234   - }
  230 +
235 231  
236 232 @Override
237 233 public void assignUserRole(Long userId, Set<Long> roleIds) {
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/impl/SysRoleServiceImpl.java
... ... @@ -3,9 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.system.service.permission.impl;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.collection.CollectionUtil;
5 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6   -import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
7 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8   -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 7 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
10 8 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleCreateReqVO;
11 9 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleExportReqVO;
... ... @@ -13,7 +11,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role
13 11 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleUpdateReqVO;
14 12 import cn.iocoder.yudao.adminserver.modules.system.convert.permission.SysRoleConvert;
15 13 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission.SysRoleMapper;
16   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  14 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
17 15 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.RoleCodeEnum;
18 16 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.SysRoleTypeEnum;
19 17 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.permission.SysRoleProducer;
... ... @@ -34,7 +32,6 @@ import org.springframework.util.StringUtils;
34 32 import javax.annotation.PostConstruct;
35 33 import javax.annotation.Resource;
36 34 import java.util.*;
37   -import java.util.function.Consumer;
38 35 import java.util.stream.Collectors;
39 36  
40 37 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;
... ... @@ -241,26 +238,6 @@ public class SysRoleServiceImpl implements SysRoleService {
241 238 return roleMapper.listRoles(reqVO);
242 239 }
243 240  
244   - @Override
245   - public void validRoles(Collection<Long> ids) {
246   - if (CollUtil.isEmpty(ids)) {
247   - return;
248   - }
249   - // 获得角色信息
250   - List<SysRoleDO> roles = roleMapper.selectBatchIds(ids);
251   - Map<Long, SysRoleDO> roleMap = CollectionUtils.convertMap(roles, SysRoleDO::getId);
252   - // 校验
253   - ids.forEach(id -> {
254   - SysRoleDO role = roleMap.get(id);
255   - if (role == null) {
256   - throw exception(ROLE_NOT_EXISTS);
257   - }
258   - if (!CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())) {
259   - throw exception(ROLE_IS_DISABLE, role.getName());
260   - }
261   - });
262   - }
263   -
264 241 /**
265 242 * 校验角色的唯一字段是否重复
266 243 *
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/user/SysUserService.java
... ... @@ -120,26 +120,7 @@ public interface SysUserService {
120 120 */
121 121 List<SysUserDO> getUsers(SysUserExportReqVO reqVO);
122 122  
123   - /**
124   - * 获得用户列表
125   - *
126   - * @param ids 用户编号数组
127   - * @return 用户列表
128   - */
129   - List<SysUserDO> getUsers(Collection<Long> ids);
130 123  
131   - /**
132   - * 获得用户 Map
133   - *
134   - * @param ids 用户编号数组
135   - * @return 用户 Map
136   - */
137   - default Map<Long, SysUserDO> getUserMap(Collection<Long> ids) {
138   - if (CollUtil.isEmpty(ids)) {
139   - return new HashMap<>();
140   - }
141   - return CollectionUtils.convertMap(getUsers(ids), SysUserDO::getId);
142   - }
143 124  
144 125 /**
145 126 * 获得用户列表,基于昵称模糊匹配
... ... @@ -174,29 +155,4 @@ public interface SysUserService {
174 155 */
175 156 List<SysUserDO> getUsersByStatus(Integer status);
176 157  
177   - /**
178   - * 获得指定岗位的用户数组
179   - *
180   - * @param postIds 岗位数组
181   - * @return 用户数组
182   - */
183   - List<SysUserDO> getUsersByPostIds(Collection<Long> postIds);
184   -
185   - /**
186   - * 获得指定部门的用户数组
187   - *
188   - * @param deptIds 部门数组
189   - * @return 用户数组
190   - */
191   - List<SysUserDO> getUsersByDeptIds(Collection<Long> deptIds);
192   -
193   - /**
194   - * 校验用户们是否有效。如下情况,视为无效:
195   - * 1. 用户编号不存在
196   - * 2. 用户被禁用
197   - *
198   - * @param ids 用户编号数组
199   - */
200   - void validUsers(Set<Long> ids);
201   -
202 158 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/user/impl/SysUserServiceImpl.java
... ... @@ -8,8 +8,8 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.Sy
8 8 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO;
9 9 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*;
10 10 import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert;
11   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
12   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
  12 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
13 13 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user.SysUserMapper;
14 14 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
15 15 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService;
... ... @@ -17,6 +17,7 @@ import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermiss
17 17 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
18 18 import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService;
19 19 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  20 +import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
20 21 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
21 22 import cn.iocoder.yudao.framework.common.exception.ServiceException;
22 23 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ... @@ -52,6 +53,9 @@ public class SysUserServiceImpl implements SysUserService {
52 53  
53 54 @Resource
54 55 private SysDeptService deptService;
  56 +
  57 + @Resource
  58 + private SysDeptCoreService deptCoreService;
55 59 @Resource
56 60 private SysPostService postService;
57 61 @Resource
... ... @@ -174,18 +178,6 @@ public class SysUserServiceImpl implements SysUserService {
174 178 return userMapper.selectList(reqVO, this.getDeptCondition(reqVO.getDeptId()));
175 179 }
176 180  
177   - @Override
178   - public List<SysUserDO> getUsers(Collection<Long> ids) {
179   - if (CollUtil.isEmpty(ids)) {
180   - return Collections.emptyList();
181   - }
182   - return userMapper.selectBatchIds(ids);
183   - }
184   -
185   - @Override
186   - public Map<Long, SysUserDO> getUserMap(Collection<Long> ids) {
187   - return SysUserService.super.getUserMap(ids);
188   - }
189 181  
190 182 @Override
191 183 public List<SysUserDO> getUsersByNickname(String nickname) {
... ... @@ -299,7 +291,7 @@ public class SysUserServiceImpl implements SysUserService {
299 291 if (deptId == null) { // 允许不选择
300 292 return;
301 293 }
302   - SysDeptDO dept = deptService.getDept(deptId);
  294 + SysDeptDO dept = deptCoreService.getDept(deptId);
303 295 if (dept == null) {
304 296 throw exception(DEPT_NOT_FOUND);
305 297 }
... ... @@ -389,44 +381,4 @@ public class SysUserServiceImpl implements SysUserService {
389 381 return userMapper.selectListByStatus(status);
390 382 }
391 383  
392   - @Override
393   - public List<SysUserDO> getUsersByPostIds(Collection<Long> postIds) {
394   - if (CollUtil.isEmpty(postIds)) {
395   - return Collections.emptyList();
396   - }
397   - // 过滤不符合条件的
398   - // TODO 芋艿:暂时只能内存过滤。解决方案:1、新建一个关联表;2、基于 where + 函数;3、json 字段,适合 mysql 8+ 版本
399   - List<SysUserDO> users = userMapper.selectList();
400   - users.removeIf(user -> !CollUtil.containsAny(user.getPostIds(), postIds));
401   - return users;
402   - }
403   -
404   - @Override
405   - public List<SysUserDO> getUsersByDeptIds(Collection<Long> deptIds) {
406   - if (CollUtil.isEmpty(deptIds)) {
407   - return Collections.emptyList();
408   - }
409   - return userMapper.selectListByDeptIds(deptIds);
410   - }
411   -
412   - @Override
413   - public void validUsers(Set<Long> ids) {
414   - if (CollUtil.isEmpty(ids)) {
415   - return;
416   - }
417   - // 获得岗位信息
418   - List<SysUserDO> users = userMapper.selectBatchIds(ids);
419   - Map<Long, SysUserDO> userMap = CollectionUtils.convertMap(users, SysUserDO::getId);
420   - // 校验
421   - ids.forEach(id -> {
422   - SysUserDO user = userMap.get(id);
423   - if (user == null) {
424   - throw exception(USER_NOT_EXISTS);
425   - }
426   - if (!CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus())) {
427   - throw exception(USER_IS_DISABLE, user.getNickname());
428   - }
429   - });
430   - }
431   -
432 384 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoExcelVO.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo;
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 5 import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants;
6   -import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
  6 +import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
7 7 import com.alibaba.excel.annotation.ExcelProperty;
8 8 import lombok.Data;
9 9  
... ...
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmFormServiceTest.java deleted
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
2   -
3   -import cn.hutool.core.util.RandomUtil;
4   -import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormCreateReqVO;
6   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormPageReqVO;
7   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormUpdateReqVO;
8   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmFormDO;
9   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmFormMapper;
10   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmFormFieldRespDTO;
11   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl.BpmFormServiceImpl;
12   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
13   -import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
14   -import org.junit.jupiter.api.Test;
15   -import org.springframework.context.annotation.Import;
16   -
17   -import javax.annotation.Resource;
18   -
19   -import java.util.ArrayList;
20   -import java.util.Arrays;
21   -import java.util.Collections;
22   -import java.util.List;
23   -import java.util.function.Consumer;
24   -import java.util.function.Function;
25   -import java.util.stream.Collectors;
26   -import java.util.stream.Stream;
27   -
28   -import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.FORM_NOT_EXISTS;
29   -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
30   -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
31   -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
32   -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
33   -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
34   -import static org.junit.jupiter.api.Assertions.*;
35   -
36   -/**
37   - * {@link BpmFormServiceImpl} 的单元测试类
38   - *
39   - * @author 芋道源码
40   - */
41   -@Import(BpmFormServiceImpl.class)
42   -public class BpmFormServiceTest extends BaseDbUnitTest {
43   -
44   - @Resource
45   - private BpmFormServiceImpl formService;
46   -
47   - @Resource
48   - private BpmFormMapper formMapper;
49   -
50   - @Test
51   - public void testCreateForm_success() {
52   - // 准备参数
53   - BpmFormCreateReqVO reqVO = randomPojo(BpmFormCreateReqVO.class, o -> {
54   - o.setConf("{}");
55   - o.setFields(randomFields());
56   - });
57   -
58   - // 调用
59   - Long formId = formService.createForm(reqVO);
60   - // 断言
61   - assertNotNull(formId);
62   - // 校验记录的属性是否正确
63   - BpmFormDO form = formMapper.selectById(formId);
64   - assertPojoEquals(reqVO, form);
65   - }
66   -
67   - @Test
68   - public void testUpdateForm_success() {
69   - // mock 数据
70   - BpmFormDO dbForm = randomPojo(BpmFormDO.class, o -> {
71   - o.setConf("{}");
72   - o.setFields(randomFields());
73   - });
74   - formMapper.insert(dbForm);// @Sql: 先插入出一条存在的数据
75   - // 准备参数
76   - BpmFormUpdateReqVO reqVO = randomPojo(BpmFormUpdateReqVO.class, o -> {
77   - o.setId(dbForm.getId()); // 设置更新的 ID
78   - o.setConf("{'yudao': 'yuanma'}");
79   - o.setFields(randomFields());
80   - });
81   -
82   - // 调用
83   - formService.updateForm(reqVO);
84   - // 校验是否更新正确
85   - BpmFormDO form = formMapper.selectById(reqVO.getId()); // 获取最新的
86   - assertPojoEquals(reqVO, form);
87   - }
88   -
89   - @Test
90   - public void testUpdateForm_notExists() {
91   - // 准备参数
92   - BpmFormUpdateReqVO reqVO = randomPojo(BpmFormUpdateReqVO.class, o -> {
93   - o.setConf("{'yudao': 'yuanma'}");
94   - o.setFields(randomFields());
95   - });
96   -
97   - // 调用, 并断言异常
98   - assertServiceException(() -> formService.updateForm(reqVO), FORM_NOT_EXISTS);
99   - }
100   -
101   - @Test
102   - public void testDeleteForm_success() {
103   - // mock 数据
104   - BpmFormDO dbForm = randomPojo(BpmFormDO.class);
105   - formMapper.insert(dbForm);// @Sql: 先插入出一条存在的数据
106   - // 准备参数
107   - Long id = dbForm.getId();
108   -
109   - // 调用
110   - formService.deleteForm(id);
111   - // 校验数据不存在了
112   - assertNull(formMapper.selectById(id));
113   - }
114   -
115   - @Test
116   - public void testDeleteForm_notExists() {
117   - // 准备参数
118   - Long id = randomLongId();
119   -
120   - // 调用, 并断言异常
121   - assertServiceException(() -> formService.deleteForm(id), FORM_NOT_EXISTS);
122   - }
123   -
124   - @Test
125   - public void testGetFormPage() {
126   - // mock 数据
127   - BpmFormDO dbForm = randomPojo(BpmFormDO.class, o -> { // 等会查询到
128   - o.setName("芋道源码");
129   - });
130   - formMapper.insert(dbForm);
131   - // 测试 name 不匹配
132   - formMapper.insert(cloneIgnoreId(dbForm, o -> o.setName("源码")));
133   - // 准备参数
134   - BpmFormPageReqVO reqVO = new BpmFormPageReqVO();
135   - reqVO.setName("芋道");
136   -
137   - // 调用
138   - PageResult<BpmFormDO> pageResult = formService.getFormPage(reqVO);
139   - // 断言
140   - assertEquals(1, pageResult.getTotal());
141   - assertEquals(1, pageResult.getList().size());
142   - assertPojoEquals(dbForm, pageResult.getList().get(0));
143   - }
144   -
145   - private List<String> randomFields() {
146   - int size = RandomUtil.randomInt(1, 3);
147   - return Stream.iterate(0, i -> i).limit(size)
148   - .map(i -> JsonUtils.toJsonString(randomPojo(BpmFormFieldRespDTO.class)))
149   - .collect(Collectors.toList());
150   - }
151   -
152   -}
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java deleted
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
2   -
3   -import cn.hutool.core.date.DateUtil;
4   -import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
6   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
7   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
8   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
9   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper;
10   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl.BpmUserGroupServiceImpl;
11   -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
12   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
13   -import cn.iocoder.yudao.framework.common.util.date.DateUtils;
14   -import org.junit.jupiter.api.Test;
15   -import org.springframework.context.annotation.Import;
16   -
17   -import javax.annotation.Resource;
18   -
19   -import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS;
20   -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
21   -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
22   -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
23   -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
24   -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
25   -import static org.junit.jupiter.api.Assertions.*;
26   -
27   -/**
28   -* {@link BpmUserGroupServiceImpl} 的单元测试类
29   -*
30   -* @author 芋道源码
31   -*/
32   -@Import(BpmUserGroupServiceImpl.class)
33   -public class BpmUserGroupServiceTest extends BaseDbUnitTest {
34   -
35   - @Resource
36   - private BpmUserGroupServiceImpl userGroupService;
37   -
38   - @Resource
39   - private BpmUserGroupMapper userGroupMapper;
40   -
41   - @Test
42   - public void testCreateUserGroup_success() {
43   - // 准备参数
44   - BpmUserGroupCreateReqVO reqVO = randomPojo(BpmUserGroupCreateReqVO.class);
45   -
46   - // 调用
47   - Long userGroupId = userGroupService.createUserGroup(reqVO);
48   - // 断言
49   - assertNotNull(userGroupId);
50   - // 校验记录的属性是否正确
51   - BpmUserGroupDO userGroup = userGroupMapper.selectById(userGroupId);
52   - assertPojoEquals(reqVO, userGroup);
53   - }
54   -
55   - @Test
56   - public void testUpdateUserGroup_success() {
57   - // mock 数据
58   - BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class);
59   - userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据
60   - // 准备参数
61   - BpmUserGroupUpdateReqVO reqVO = randomPojo(BpmUserGroupUpdateReqVO.class, o -> {
62   - o.setId(dbUserGroup.getId()); // 设置更新的 ID
63   - });
64   -
65   - // 调用
66   - userGroupService.updateUserGroup(reqVO);
67   - // 校验是否更新正确
68   - BpmUserGroupDO userGroup = userGroupMapper.selectById(reqVO.getId()); // 获取最新的
69   - assertPojoEquals(reqVO, userGroup);
70   - }
71   -
72   - @Test
73   - public void testUpdateUserGroup_notExists() {
74   - // 准备参数
75   - BpmUserGroupUpdateReqVO reqVO = randomPojo(BpmUserGroupUpdateReqVO.class);
76   -
77   - // 调用, 并断言异常
78   - assertServiceException(() -> userGroupService.updateUserGroup(reqVO), USER_GROUP_NOT_EXISTS);
79   - }
80   -
81   - @Test
82   - public void testDeleteUserGroup_success() {
83   - // mock 数据
84   - BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class);
85   - userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据
86   - // 准备参数
87   - Long id = dbUserGroup.getId();
88   -
89   - // 调用
90   - userGroupService.deleteUserGroup(id);
91   - // 校验数据不存在了
92   - assertNull(userGroupMapper.selectById(id));
93   - }
94   -
95   - @Test
96   - public void testDeleteUserGroup_notExists() {
97   - // 准备参数
98   - Long id = randomLongId();
99   -
100   - // 调用, 并断言异常
101   - assertServiceException(() -> userGroupService.deleteUserGroup(id), USER_GROUP_NOT_EXISTS);
102   - }
103   -
104   - @Test
105   - public void testGetUserGroupPage() {
106   - // mock 数据
107   - BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到
108   - o.setName("芋道源码");
109   - o.setStatus(CommonStatusEnum.ENABLE.getStatus());
110   - o.setCreateTime(DateUtils.buildTime(2021, 11, 11));
111   - });
112   - userGroupMapper.insert(dbUserGroup);
113   - // 测试 name 不匹配
114   - userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName("芋道")));
115   - // 测试 status 不匹配
116   - userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
117   - // 测试 createTime 不匹配
118   - userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setCreateTime(DateUtils.buildTime(2021, 12, 12))));
119   - // 准备参数
120   - BpmUserGroupPageReqVO reqVO = new BpmUserGroupPageReqVO();
121   - reqVO.setName("源码");
122   - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
123   - reqVO.setBeginCreateTime(DateUtils.buildTime(2021, 11, 10));
124   - reqVO.setEndCreateTime(DateUtils.buildTime(2021, 11, 12));
125   -
126   - // 调用
127   - PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(reqVO);
128   - // 断言
129   - assertEquals(1, pageResult.getTotal());
130   - assertEquals(1, pageResult.getList().size());
131   - assertPojoEquals(dbUserGroup, pageResult.getList().get(0));
132   - }
133   -
134   -}
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/SysDeptServiceTest.java
... ... @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 5 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptCreateReqVO;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptUpdateReqVO;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
9 9 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept.SysDeptMapper;
10 10 import cn.iocoder.yudao.adminserver.modules.system.enums.dept.DeptIdEnum;
11 11 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.dept.SysDeptProducer;
... ...
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/SysPostServiceTest.java
... ... @@ -7,7 +7,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPo
7 7 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostExportReqVO;
8 8 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostPageReqVO;
9 9 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostUpdateReqVO;
10   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  10 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
11 11 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept.SysPostMapper;
12 12 import cn.iocoder.yudao.adminserver.modules.system.service.dept.impl.SysPostServiceImpl;
13 13 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
... ...
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/SysPermissionServiceTest.java
... ... @@ -2,10 +2,10 @@ package cn.iocoder.yudao.adminserver.modules.system.service.permission;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
5   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
6   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
  6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleMenuDO;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysUserRoleDO;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO;
9 9 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission.SysRoleMenuMapper;
10 10 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission.SysUserRoleMapper;
11 11 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.permission.SysPermissionProducer;
... ...
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/SysRoleServiceTest.java
... ... @@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.security.core.enums.DataScopeEnum;
8 8 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleCreateReqVO;
9 9 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRolePageReqVO;
10 10 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleUpdateReqVO;
11   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
  11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
12 12 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission.SysRoleMapper;
13 13 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.SysRoleTypeEnum;
14 14 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.permission.SysRoleProducer;
... ...
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/user/SysUserServiceImplTest.java
... ... @@ -6,8 +6,8 @@ import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
6 6 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO;
7 7 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO;
8 8 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*;
9   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
10   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
  9 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
  10 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
11 11 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user.SysUserMapper;
12 12 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
13 13 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService;
... ... @@ -16,11 +16,11 @@ import cn.iocoder.yudao.adminserver.modules.system.service.user.impl.SysUserServ
16 16 import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService;
17 17 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
18 18 import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;
  19 +import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
19 20 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
20 21 import cn.iocoder.yudao.framework.common.pojo.PageResult;
21 22 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
22 23 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
23   -import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
24 24 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
25 25 import org.junit.jupiter.api.Test;
26 26 import org.mockito.stubbing.Answer;
... ... @@ -42,7 +42,6 @@ import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEq
42 42 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
43 43 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
44 44 import static java.util.Collections.singleton;
45   -import static java.util.Collections.singletonList;
46 45 import static org.assertj.core.util.Lists.newArrayList;
47 46 import static org.junit.jupiter.api.Assertions.assertEquals;
48 47 import static org.junit.jupiter.api.Assertions.assertNull;
... ... @@ -65,6 +64,9 @@ public class SysUserServiceImplTest extends BaseDbUnitTest {
65 64  
66 65 @MockBean
67 66 private SysDeptService deptService;
  67 +
  68 + @MockBean
  69 + private SysDeptCoreService deptCoreService;
68 70 @MockBean
69 71 private SysPostService postService;
70 72 @MockBean
... ... @@ -86,7 +88,7 @@ public class SysUserServiceImplTest extends BaseDbUnitTest {
86 88 o.setId(reqVO.getDeptId());
87 89 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
88 90 });
89   - when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
  91 + when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept);
90 92 // mock postService 的方法
91 93 List<SysPostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId ->
92 94 randomPojo(SysPostDO.class, o -> {
... ... @@ -122,7 +124,7 @@ public class SysUserServiceImplTest extends BaseDbUnitTest {
122 124 o.setId(reqVO.getDeptId());
123 125 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
124 126 });
125   - when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
  127 + when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept);
126 128 // mock postService 的方法
127 129 List<SysPostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId ->
128 130 randomPojo(SysPostDO.class, o -> {
... ... @@ -357,7 +359,7 @@ public class SysUserServiceImplTest extends BaseDbUnitTest {
357 359 o.setId(importUser.getDeptId());
358 360 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
359 361 });
360   - when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
  362 + when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept);
361 363 // mock passwordEncoder 的方法
362 364 when(passwordEncoder.encode(eq("yudaoyuanma"))).thenReturn("java");
363 365  
... ... @@ -391,7 +393,7 @@ public class SysUserServiceImplTest extends BaseDbUnitTest {
391 393 o.setId(importUser.getDeptId());
392 394 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
393 395 });
394   - when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
  396 + when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept);
395 397  
396 398 // 调用
397 399 SysUserImportRespVO respVO = userService.importUsers(newArrayList(importUser), false);
... ... @@ -421,7 +423,7 @@ public class SysUserServiceImplTest extends BaseDbUnitTest {
421 423 o.setId(importUser.getDeptId());
422 424 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
423 425 });
424   - when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
  426 + when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept);
425 427  
426 428 // 调用
427 429 SysUserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true);
... ... @@ -528,7 +530,7 @@ public class SysUserServiceImplTest extends BaseDbUnitTest {
528 530 o.setId(deptId);
529 531 o.setStatus(CommonStatusEnum.DISABLE.getStatus());
530 532 });
531   - when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
  533 + when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept);
532 534  
533 535 // 调用,校验异常
534 536 assertServiceException(() -> userService.checkDeptEnable(deptId),
... ... @@ -580,22 +582,22 @@ public class SysUserServiceImplTest extends BaseDbUnitTest {
580 582 verify(passwordEncoder, times(1)).matches(eq(oldPassword), eq(user.getPassword()));
581 583 }
582 584  
583   - @Test
584   - public void testUsersByPostIds() {
585   - // 准备参数
586   - Collection<Long> postIds = asSet(10L, 20L);
587   - // mock 方法
588   - SysUserDO user1 = randomSysUserDO(o -> o.setPostIds(asSet(10L, 30L)));
589   - userMapper.insert(user1);
590   - SysUserDO user2 = randomSysUserDO(o -> o.setPostIds(singleton(100L)));
591   - userMapper.insert(user2);
592   -
593   - // 调用
594   - List<SysUserDO> result = userService.getUsersByPostIds(postIds);
595   - // 断言
596   - assertEquals(1, result.size());
597   - assertEquals(user1, result.get(0));
598   - }
  585 +// @Test //TODO jason 已经移到userCoreService.getUsersByPostIds
  586 +// public void testUsersByPostIds() {
  587 +// // 准备参数
  588 +// Collection<Long> postIds = asSet(10L, 20L);
  589 +// // mock 方法
  590 +// SysUserDO user1 = randomSysUserDO(o -> o.setPostIds(asSet(10L, 30L)));
  591 +// userMapper.insert(user1);
  592 +// SysUserDO user2 = randomSysUserDO(o -> o.setPostIds(singleton(100L)));
  593 +// userMapper.insert(user2);
  594 +//
  595 +// // 调用
  596 +// List<SysUserDO> result = userService.getUsersByPostIds(postIds);
  597 +// // 断言
  598 +// assertEquals(1, result.size());
  599 +// assertEquals(user1, result.get(0));
  600 +// }
599 601  
600 602 // ========== 随机对象 ==========
601 603  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/dept/SysDeptDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/dept/SysDeptDO.java
1   -package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept;
  1 +package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept;
2 2  
3 3 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
4 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/dept/SysPostDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/dept/SysPostDO.java
1   -package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept;
  1 +package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept;
2 2  
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/permission/SysRoleDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/permission/SysRoleDO.java
1   -package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission;
  1 +package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission;
2 2  
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 5 import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
6 6 import cn.iocoder.yudao.framework.security.core.enums.DataScopeEnum;
7   -import cn.iocoder.yudao.adminserver.modules.system.enums.permission.RoleCodeEnum;
8   -import cn.iocoder.yudao.adminserver.modules.system.enums.permission.SysRoleTypeEnum;
9 7 import com.baomidou.mybatisplus.annotation.TableField;
10 8 import com.baomidou.mybatisplus.annotation.TableId;
11 9 import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -36,7 +34,7 @@ public class SysRoleDO extends BaseDO {
36 34 /**
37 35 * 角色标识
38 36 *
39   - * 枚举 {@link RoleCodeEnum}
  37 + * 枚举
40 38 */
41 39 private String code;
42 40 /**
... ... @@ -52,7 +50,7 @@ public class SysRoleDO extends BaseDO {
52 50 /**
53 51 * 角色类型
54 52 *
55   - * 枚举 {@link SysRoleTypeEnum}
  53 + * 枚举
56 54 */
57 55 private Integer type;
58 56 /**
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/permission/SysUserRoleDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/permission/SysUserRoleDO.java
1   -package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission;
  1 +package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import com.baomidou.mybatisplus.annotation.TableId;
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/dept/SysDeptCoreMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dept;
  2 +
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import org.apache.ibatis.annotations.Mapper;
  6 +
  7 +@Mapper
  8 +public interface SysDeptCoreMapper extends BaseMapperX<SysDeptDO> {
  9 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/dept/SysPostCoreMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dept;
  2 +
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import org.apache.ibatis.annotations.Mapper;
  6 +
  7 +@Mapper
  8 +public interface SysPostCoreMapper extends BaseMapperX<SysPostDO> {
  9 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/permission/SysRoleCoreMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.permission;
  2 +
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import org.apache.ibatis.annotations.Mapper;
  6 +
  7 +@Mapper
  8 +public interface SysRoleCoreMapper extends BaseMapperX<SysRoleDO> {
  9 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/permission/SysUserRoleCoreMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.permission;
  2 +
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import org.apache.ibatis.annotations.Mapper;
  6 +
  7 +import java.util.Collection;
  8 +import java.util.List;
  9 +
  10 +@Mapper
  11 +public interface SysUserRoleCoreMapper extends BaseMapperX<SysUserRoleDO> {
  12 +
  13 + default List<SysUserRoleDO> selectListByRoleIds(Collection<Long> roleIds) {
  14 + return selectList(SysUserRoleDO::getRoleId, roleIds);
  15 + }
  16 +
  17 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/user/SysUserCoreMapper.java
... ... @@ -5,7 +5,13 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 6 import org.apache.ibatis.annotations.Mapper;
7 7  
  8 +import java.util.Collection;
  9 +import java.util.List;
  10 +
8 11 @Mapper
9 12 public interface SysUserCoreMapper extends BaseMapperX<SysUserDO> {
10 13  
  14 + default List<SysUserDO> selectListByDeptIds(Collection<Long> deptIds) {
  15 + return selectList(SysUserDO::getDeptId, deptIds);
  16 + }
11 17 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/enums/SysDictTypeConstants.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/SysDictTypeConstants.java
1   -package cn.iocoder.yudao.adminserver.modules.system.enums;
  1 +package cn.iocoder.yudao.coreservice.modules.system.enums;
2 2  
3 3 /**
4 4 * System 字典类型的枚举类
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/SysErrorCodeConstants.java
... ... @@ -22,4 +22,24 @@ public interface SysErrorCodeConstants {
22 22 ErrorCode SOCIAL_AUTH_FAILURE = new ErrorCode(1006002000, "社交授权失败,原因是:{}");
23 23 ErrorCode SOCIAL_UNBIND_NOT_SELF = new ErrorCode(1006002001, "社交解绑失败,非当前用户绑定");
24 24  
  25 + // ========== 用户模块 1006003000 ==========
  26 + ErrorCode USER_NOT_EXISTS = new ErrorCode(1006003000, "用户不存在");
  27 + ErrorCode USER_IS_DISABLE = new ErrorCode(1006003001, "名字为【{}】的用户已被禁用");
  28 +
  29 + // ========== 部门模块 1006004000 ==========
  30 + ErrorCode DEPT_NOT_FOUND = new ErrorCode(1006004000, "当前部门不存在");
  31 + ErrorCode DEPT_NOT_ENABLE = new ErrorCode(1006004001, "部门不处于开启状态,不允许选择");
  32 +
  33 + // ========== 角色模块 1006005000 ==========
  34 + ErrorCode ROLE_NOT_EXISTS = new ErrorCode(1006005000, "角色不存在");
  35 + ErrorCode ROLE_IS_DISABLE = new ErrorCode(1006005001, "名字为【{}】的角色已被禁用");
  36 +
  37 + // ========== 字典类型 1006006000 ==========
  38 + ErrorCode DICT_DATA_NOT_EXISTS = new ErrorCode(1006006000, "当前字典数据不存在");
  39 + ErrorCode DICT_DATA_NOT_ENABLE = new ErrorCode(1006006001, "字典数据({})不处于开启状态,不允许选择");
  40 +
  41 + // ========== 岗位模块 1006007000 ==========
  42 + ErrorCode POST_NOT_FOUND = new ErrorCode(1006007000, "当前岗位不存在");
  43 + ErrorCode POST_NOT_ENABLE = new ErrorCode(1006007001, "岗位({}) 不处于开启状态,不允许选择");
  44 +
25 45 }
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dept/SysDeptCoreService.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.service.dept;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
  5 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  6 +
  7 +import java.util.Collection;
  8 +import java.util.Collections;
  9 +import java.util.List;
  10 +import java.util.Map;
  11 +
  12 +public interface SysDeptCoreService {
  13 + /**
  14 + * 获得部门信息数组
  15 + *
  16 + * @param ids 部门编号数组
  17 + * @return 部门信息数组
  18 + */
  19 + List<SysDeptDO> getDepts(Collection<Long> ids);
  20 +
  21 + /**
  22 + * 获得部门信息
  23 + *
  24 + * @param id 部门编号
  25 + * @return 部门信息
  26 + */
  27 + SysDeptDO getDept(Long id);
  28 +
  29 + /**
  30 + * 校验部门们是否有效。如下情况,视为无效:
  31 + * 1. 部门编号不存在
  32 + * 2. 部门被禁用
  33 + *
  34 + * @param ids 角色编号数组
  35 + */
  36 + void validDepts(Collection<Long> ids);
  37 +
  38 + /**
  39 + * 获得指定编号的部门列表
  40 + *
  41 + * @param ids 部门编号数组
  42 + * @return 部门列表
  43 + */
  44 + List<SysDeptDO> getSimpleDepts(Collection<Long> ids);
  45 +
  46 + /**
  47 + * 获得指定编号的部门 Map
  48 + *
  49 + * @param ids 部门编号数组
  50 + * @return 部门 Map
  51 + */
  52 + default Map<Long, SysDeptDO> getDeptMap(Collection<Long> ids) {
  53 + if (CollUtil.isEmpty(ids)) {
  54 + return Collections.emptyMap();
  55 + }
  56 + List<SysDeptDO> list = getSimpleDepts(ids);
  57 + return CollectionUtils.convertMap(list, SysDeptDO::getId);
  58 + }
  59 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dept/SysPostCoreService.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.service.dept;
  2 +
  3 +import java.util.Collection;
  4 +
  5 +/**
  6 + * 岗位 Core Service 接口
  7 + *
  8 + * @author 芋道源码
  9 + */
  10 +public interface SysPostCoreService {
  11 + /**
  12 + * 校验岗位们是否有效。如下情况,视为无效:
  13 + * 1. 岗位编号不存在
  14 + * 2. 岗位被禁用
  15 + *
  16 + * @param ids 岗位编号数组
  17 + */
  18 + void validPosts(Collection<Long> ids);
  19 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dept/impl/SysDeptCoreServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.service.dept.impl;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dept.SysDeptCoreMapper;
  6 +import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
  7 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  8 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  9 +import lombok.extern.slf4j.Slf4j;
  10 +import org.springframework.stereotype.Service;
  11 +import org.springframework.validation.annotation.Validated;
  12 +
  13 +import javax.annotation.Resource;
  14 +import java.util.Collection;
  15 +import java.util.List;
  16 +import java.util.Map;
  17 +
  18 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.DEPT_NOT_ENABLE;
  19 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.DEPT_NOT_FOUND;
  20 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  21 +
  22 +/**
  23 + * 部门 Core Service 实现类
  24 + *
  25 + * @author 芋道源码
  26 + */
  27 +@Service
  28 +@Slf4j
  29 +public class SysDeptCoreServiceImpl implements SysDeptCoreService {
  30 +
  31 + @Resource
  32 + private SysDeptCoreMapper deptCoreMapper;
  33 +
  34 + @Override
  35 + public List<SysDeptDO> getDepts(Collection<Long> ids) {
  36 + return deptCoreMapper.selectBatchIds(ids);
  37 + }
  38 +
  39 + @Override
  40 + public SysDeptDO getDept(Long id) {
  41 + return deptCoreMapper.selectById(id);
  42 + }
  43 +
  44 + @Override
  45 + public void validDepts(Collection<Long> ids) {
  46 + if (CollUtil.isEmpty(ids)) {
  47 + return;
  48 + }
  49 + // 获得科室信息
  50 + List<SysDeptDO> depts = deptCoreMapper.selectBatchIds(ids);
  51 + Map<Long, SysDeptDO> deptMap = CollectionUtils.convertMap(depts, SysDeptDO::getId);
  52 + // 校验
  53 + ids.forEach(id -> {
  54 + SysDeptDO dept = deptMap.get(id);
  55 + if (dept == null) {
  56 + throw exception(DEPT_NOT_FOUND);
  57 + }
  58 + if (!CommonStatusEnum.ENABLE.getStatus().equals(dept.getStatus())) {
  59 + throw exception(DEPT_NOT_ENABLE, dept.getName());
  60 + }
  61 + });
  62 + }
  63 +
  64 + @Override
  65 + public List<SysDeptDO> getSimpleDepts(Collection<Long> ids) {
  66 + return deptCoreMapper.selectBatchIds(ids);
  67 + }
  68 +
  69 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dept/impl/SysPostCoreServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.service.dept.impl;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dept.SysPostCoreMapper;
  6 +import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysPostCoreService;
  7 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  8 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  9 +import org.springframework.stereotype.Service;
  10 +
  11 +import javax.annotation.Resource;
  12 +import java.util.Collection;
  13 +import java.util.List;
  14 +import java.util.Map;
  15 +
  16 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.POST_NOT_ENABLE;
  17 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.POST_NOT_FOUND;
  18 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  19 +
  20 +/**
  21 + * 岗位 Core Service 实现类
  22 + *
  23 + * @author 芋道源码
  24 + */
  25 +@Service
  26 +public class SysPostCoreServiceImpl implements SysPostCoreService {
  27 +
  28 + @Resource
  29 + private SysPostCoreMapper sysPostCoreMapper;
  30 +
  31 + @Override
  32 + public void validPosts(Collection<Long> ids) {
  33 + if (CollUtil.isEmpty(ids)) {
  34 + return;
  35 + }
  36 + // 获得岗位信息
  37 + List<SysPostDO> posts = sysPostCoreMapper.selectBatchIds(ids);
  38 + Map<Long, SysPostDO> postMap = CollectionUtils.convertMap(posts, SysPostDO::getId);
  39 + // 校验
  40 + ids.forEach(id -> {
  41 + SysPostDO post = postMap.get(id);
  42 + if (post == null) {
  43 + throw exception(POST_NOT_FOUND);
  44 + }
  45 + if (!CommonStatusEnum.ENABLE.getStatus().equals(post.getStatus())) {
  46 + throw exception(POST_NOT_ENABLE, post.getName());
  47 + }
  48 + });
  49 + }
  50 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dict/SysDictDataCoreService.java
... ... @@ -2,6 +2,8 @@ package cn.iocoder.yudao.coreservice.modules.system.service.dict;
2 2  
3 3 import cn.iocoder.yudao.framework.dict.core.service.DictDataFrameworkService;
4 4  
  5 +import java.util.Collection;
  6 +
5 7 /**
6 8 * 字典数据 Service 接口
7 9 *
... ... @@ -14,4 +16,14 @@ public interface SysDictDataCoreService extends DictDataFrameworkService {
14 16 */
15 17 void initLocalCache();
16 18  
  19 + /**
  20 + * 校验字典数据们是否有效。如下情况,视为无效:
  21 + * 1. 字典数据不存在
  22 + * 2. 字典数据被禁用
  23 + *
  24 + * @param dictType 字典类型
  25 + * @param values 字典数据值的数组
  26 + */
  27 + void validDictDatas(String dictType, Collection<String> values);
  28 +
17 29 }
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dict/impl/SysDictDataCoreServiceImpl.java
... ... @@ -5,8 +5,11 @@ import cn.iocoder.yudao.coreservice.modules.system.convert.dict.SysDictDataCoreC
5 5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
6 6 import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dict.SysDictDataCoreMapper;
7 7 import cn.iocoder.yudao.coreservice.modules.system.service.dict.SysDictDataCoreService;
  8 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  9 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
8 10 import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO;
9 11 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  12 +import com.google.common.collect.ImmutableMap;
10 13 import com.google.common.collect.ImmutableTable;
11 14 import lombok.extern.slf4j.Slf4j;
12 15 import org.springframework.scheduling.annotation.Scheduled;
... ... @@ -14,9 +17,11 @@ import org.springframework.stereotype.Service;
14 17  
15 18 import javax.annotation.PostConstruct;
16 19 import javax.annotation.Resource;
17   -import java.util.Comparator;
18   -import java.util.Date;
19   -import java.util.List;
  20 +import java.util.*;
  21 +
  22 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.DICT_DATA_NOT_ENABLE;
  23 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.DICT_DATA_NOT_EXISTS;
  24 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
20 25  
21 26 /**
22 27 * 字典数据 Service 实现类
... ... @@ -119,4 +124,22 @@ public class SysDictDataCoreServiceImpl implements SysDictDataCoreService {
119 124 return SysDictDataCoreConvert.INSTANCE.convertList03(labelDictDataCache.row(type).values());
120 125 }
121 126  
  127 + @Override
  128 + public void validDictDatas(String dictType, Collection<String> values) {
  129 + if (CollUtil.isEmpty(values)) {
  130 + return;
  131 + }
  132 + ImmutableMap<String, SysDictDataDO> dictDataMap = valueDictDataCache.row(dictType);
  133 + // 校验
  134 + values.forEach(value -> {
  135 + SysDictDataDO dictData = dictDataMap.get(value);
  136 + if (dictData == null) {
  137 + throw exception(DICT_DATA_NOT_EXISTS);
  138 + }
  139 + if (!CommonStatusEnum.ENABLE.getStatus().equals(dictData.getStatus())) {
  140 + throw exception(DICT_DATA_NOT_ENABLE, dictData.getLabel());
  141 + }
  142 + });
  143 + }
  144 +
122 145 }
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/permission/SysPermissionCoreService.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.service.permission;
  2 +
  3 +import java.util.Collection;
  4 +import java.util.Set;
  5 +/**
  6 + * 权限 Core Service 接口
  7 + *
  8 + * 提供用户-角色、角色-菜单、角色-部门的关联权限处理
  9 + *
  10 + * @author 芋道源码
  11 + */
  12 +public interface SysPermissionCoreService {
  13 + /**
  14 + * 获得拥有多个角色的用户编号集合
  15 + *
  16 + * @param roleIds 角色编号集合
  17 + * @return 用户编号集合
  18 + */
  19 + Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds);
  20 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/permission/SysRoleCoreService.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.service.permission;
  2 +
  3 +import java.util.Collection;
  4 +
  5 +/**
  6 + * 角色 Core Service 接口
  7 + *
  8 + * @author 芋道源码
  9 + */
  10 +public interface SysRoleCoreService {
  11 + /**
  12 + * 校验角色们是否有效。如下情况,视为无效:
  13 + * 1. 角色编号不存在
  14 + * 2. 角色被禁用
  15 + *
  16 + * @param ids 角色编号数组
  17 + */
  18 + void validRoles(Collection<Long> ids);
  19 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/permission/impl/SysPermissionCoreServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.service.permission.impl;
  2 +
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.permission.SysUserRoleCoreMapper;
  5 +import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService;
  6 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +import javax.annotation.Resource;
  10 +import java.util.Collection;
  11 +import java.util.Set;
  12 +/**
  13 + * 权限 Core Service 实现类
  14 + *
  15 + * @author 芋道源码
  16 + */
  17 +@Service
  18 +public class SysPermissionCoreServiceImpl implements SysPermissionCoreService {
  19 +
  20 + @Resource
  21 + private SysUserRoleCoreMapper userRoleCoreMapper;
  22 +
  23 + @Override
  24 + public Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds) {
  25 + return CollectionUtils.convertSet(userRoleCoreMapper.selectListByRoleIds(roleIds),
  26 + SysUserRoleDO::getRoleId);
  27 + }
  28 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/permission/impl/SysRoleCoreServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.system.service.permission.impl;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.permission.SysRoleCoreMapper;
  6 +import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysRoleCoreService;
  7 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  8 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  9 +import org.springframework.stereotype.Service;
  10 +
  11 +import javax.annotation.Resource;
  12 +import java.util.Collection;
  13 +import java.util.List;
  14 +import java.util.Map;
  15 +
  16 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.ROLE_IS_DISABLE;
  17 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.ROLE_NOT_EXISTS;
  18 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  19 +
  20 +/**
  21 + * 角色 Core Service 实现类
  22 + *
  23 + * @author 芋道源码
  24 + */
  25 +@Service
  26 +public class SysRoleCoreServiceImpl implements SysRoleCoreService {
  27 +
  28 + @Resource
  29 + private SysRoleCoreMapper sysRoleCoreMapper;
  30 +
  31 + @Override
  32 + public void validRoles(Collection<Long> ids) {
  33 + if (CollUtil.isEmpty(ids)) {
  34 + return;
  35 + }
  36 + // 获得角色信息
  37 + List<SysRoleDO> roles = sysRoleCoreMapper.selectBatchIds(ids);
  38 + Map<Long, SysRoleDO> roleMap = CollectionUtils.convertMap(roles, SysRoleDO::getId);
  39 + // 校验
  40 + ids.forEach(id -> {
  41 + SysRoleDO role = roleMap.get(id);
  42 + if (role == null) {
  43 + throw exception(ROLE_NOT_EXISTS);
  44 + }
  45 + if (!CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())) {
  46 + throw exception(ROLE_IS_DISABLE, role.getName());
  47 + }
  48 + });
  49 + }
  50 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/user/SysUserCoreService.java
1 1 package cn.iocoder.yudao.coreservice.modules.system.service.user;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  5 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  6 +
  7 +import java.util.*;
4 8  
5 9 /**
6 10 * 后台用户 Service Core 接口
... ... @@ -17,4 +21,50 @@ public interface SysUserCoreService {
17 21 */
18 22 SysUserDO getUser(Long id);
19 23  
  24 + /**
  25 + * 获得指定部门的用户数组
  26 + *
  27 + * @param deptIds 部门数组
  28 + * @return 用户数组
  29 + */
  30 + List<SysUserDO> getUsersByDeptIds(Collection<Long> deptIds);
  31 +
  32 + /**
  33 + * 获得指定岗位的用户数组
  34 + *
  35 + * @param postIds 岗位数组
  36 + * @return 用户数组
  37 + */
  38 + List<SysUserDO> getUsersByPostIds(Collection<Long> postIds);
  39 +
  40 + /**
  41 + * 获得用户列表
  42 + *
  43 + * @param ids 用户编号数组
  44 + * @return 用户列表
  45 + */
  46 + List<SysUserDO> getUsers(Collection<Long> ids);
  47 +
  48 + /**
  49 + * 校验用户们是否有效。如下情况,视为无效:
  50 + * 1. 用户编号不存在
  51 + * 2. 用户被禁用
  52 + *
  53 + * @param ids 用户编号数组
  54 + */
  55 + void validUsers(Set<Long> ids);
  56 +
  57 + /**
  58 + * 获得用户 Map
  59 + *
  60 + * @param ids 用户编号数组
  61 + * @return 用户 Map
  62 + */
  63 + default Map<Long, SysUserDO> getUserMap(Collection<Long> ids) {
  64 + if (CollUtil.isEmpty(ids)) {
  65 + return new HashMap<>();
  66 + }
  67 + return CollectionUtils.convertMap(getUsers(ids), SysUserDO::getId);
  68 + }
  69 +
20 70 }
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/user/impl/SysUserCoreServiceImpl.java
1 1 package cn.iocoder.yudao.coreservice.modules.system.service.user.impl;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
4 5 import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.user.SysUserCoreMapper;
5 6 import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
  7 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  8 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
6 9 import org.springframework.stereotype.Service;
7 10  
8 11 import javax.annotation.Resource;
  12 +import java.util.*;
  13 +
  14 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.USER_IS_DISABLE;
  15 +import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.USER_NOT_EXISTS;
  16 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
9 17  
10 18 /**
11 19 * 后台用户 Service Core 实现
... ... @@ -23,4 +31,52 @@ public class SysUserCoreServiceImpl implements SysUserCoreService {
23 31 return userCoreMapper.selectById(id);
24 32 }
25 33  
  34 + @Override
  35 + public List<SysUserDO> getUsersByDeptIds(Collection<Long> deptIds) {
  36 + if (CollUtil.isEmpty(deptIds)) {
  37 + return Collections.emptyList();
  38 + }
  39 + return userCoreMapper.selectListByDeptIds(deptIds);
  40 + }
  41 +
  42 + @Override
  43 + public List<SysUserDO> getUsersByPostIds(Collection<Long> postIds) {
  44 + if (CollUtil.isEmpty(postIds)) {
  45 + return Collections.emptyList();
  46 + }
  47 + // 过滤不符合条件的
  48 + // TODO 芋艿:暂时只能内存过滤。解决方案:1、新建一个关联表;2、基于 where + 函数;3、json 字段,适合 mysql 8+ 版本
  49 + List<SysUserDO> users = userCoreMapper.selectList();
  50 + users.removeIf(user -> !CollUtil.containsAny(user.getPostIds(), postIds));
  51 + return users;
  52 + }
  53 +
  54 + @Override
  55 + public List<SysUserDO> getUsers(Collection<Long> ids) {
  56 + if (CollUtil.isEmpty(ids)) {
  57 + return Collections.emptyList();
  58 + }
  59 + return userCoreMapper.selectBatchIds(ids);
  60 + }
  61 +
  62 + @Override
  63 + public void validUsers(Set<Long> ids) {
  64 + if (CollUtil.isEmpty(ids)) {
  65 + return;
  66 + }
  67 + // 获得岗位信息
  68 + List<SysUserDO> users = userCoreMapper.selectBatchIds(ids);
  69 + Map<Long, SysUserDO> userMap = CollectionUtils.convertMap(users, SysUserDO::getId);
  70 + // 校验
  71 + ids.forEach(id -> {
  72 + SysUserDO user = userMap.get(id);
  73 + if (user == null) {
  74 + throw exception(USER_NOT_EXISTS);
  75 + }
  76 + if (!CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus())) {
  77 + throw exception(USER_IS_DISABLE, user.getNickname());
  78 + }
  79 + });
  80 + }
  81 +
26 82 }
... ...
yudao-dependencies/pom.xml
... ... @@ -43,6 +43,7 @@
43 43 <mockito-inline.version>3.6.28</mockito-inline.version>
44 44 <!-- Bpm 工作流相关 -->
45 45 <activiti.version>7.1.0.M6</activiti.version>
  46 + <flowable.version>6.7.0</flowable.version>
46 47 <!-- 工具类相关 -->
47 48 <lombok.version>1.18.20</lombok.version>
48 49 <mapstruct.version>1.4.1.Final</mapstruct.version>
... ... @@ -396,6 +397,33 @@
396 397 <artifactId>activiti-image-generator</artifactId>
397 398 <version>${activiti.version}</version>
398 399 </dependency>
  400 + <!-- 工作流相关 flowable -->
  401 + <dependency>
  402 + <groupId>org.flowable</groupId>
  403 + <artifactId>flowable-spring-boot-starter-basic</artifactId>
  404 + <version>${flowable.version}</version>
  405 + </dependency>
  406 + <dependency>
  407 + <groupId>org.flowable</groupId>
  408 + <artifactId>flowable-spring-boot-starter-actuator</artifactId>
  409 + <version>${flowable.version}</version>
  410 + </dependency>
  411 + <dependency>
  412 + <groupId>cn.iocoder.boot</groupId>
  413 + <artifactId>yudao-module-bpm-core-service</artifactId>
  414 + <version>${revision}</version>
  415 + </dependency>
  416 + <dependency>
  417 + <groupId>cn.iocoder.boot</groupId>
  418 + <artifactId>yudao-module-bpm-activiti</artifactId>
  419 + <version>${revision}</version>
  420 + </dependency>
  421 + <dependency>
  422 + <groupId>cn.iocoder.boot</groupId>
  423 + <artifactId>yudao-module-bpm-flowable</artifactId>
  424 + <version>${revision}</version>
  425 + </dependency>
  426 + <!-- 工作流相关结束 -->
399 427  
400 428 <!-- 工具类相关 -->
401 429 <dependency>
... ...
yudao-module-bpm/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <artifactId>yudao</artifactId>
  7 + <groupId>cn.iocoder.boot</groupId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <packaging>pom</packaging>
  11 + <modules>
  12 + <module>yudao-module-bpm-flowable</module>
  13 + <module>yudao-module-bpm-activiti</module>
  14 + <module>yudao-module-bpm-core-service</module>
  15 + </modules>
  16 + <modelVersion>4.0.0</modelVersion>
  17 + <artifactId>yudao-module-bpm</artifactId>
  18 +</project>
0 19 \ No newline at end of file
... ...
yudao-module-bpm/yudao-module-bpm-activiti/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <artifactId>yudao-module-bpm</artifactId>
  7 + <groupId>cn.iocoder.boot</groupId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 +
  12 + <artifactId>yudao-module-bpm-activiti</artifactId>
  13 + <dependencies>
  14 + <dependency>
  15 + <groupId>cn.iocoder.boot</groupId>
  16 + <artifactId>yudao-spring-boot-starter-activiti</artifactId>
  17 + </dependency>
  18 + <dependency>
  19 + <groupId>cn.iocoder.boot</groupId>
  20 + <artifactId>yudao-core-service</artifactId>
  21 + </dependency>
  22 + <!-- Test 测试相关 -->
  23 + <dependency>
  24 + <groupId>cn.iocoder.boot</groupId>
  25 + <artifactId>yudao-spring-boot-starter-test</artifactId>
  26 + <scope>test</scope>
  27 + </dependency>
  28 + </dependencies>
  29 +
  30 +</project>
0 31 \ No newline at end of file
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmFormController.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmFormController.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmModelController.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmModelController.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmProcessDefinitionController.http renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmProcessDefinitionController.http
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmProcessDefinitionController.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmProcessDefinitionController.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmTaskAssignRuleController.http renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmTaskAssignRuleController.http
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmTaskAssignRuleController.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmTaskAssignRuleController.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java
... ... @@ -7,9 +7,6 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.B
7 7 import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmUserGroupConvert;
8 8 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
9 9 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
10   -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserSimpleRespVO;
11   -import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert;
12   -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
13 10 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
14 11 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
15 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ... @@ -22,7 +19,6 @@ import org.springframework.web.bind.annotation.*;
22 19  
23 20 import javax.annotation.Resource;
24 21 import javax.validation.Valid;
25   -
26 22 import java.util.List;
27 23  
28 24 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormBaseVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormBaseVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormCreateReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormCreateReqVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormPageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormPageReqVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormRespVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormSimpleRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormSimpleRespVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormUpdateReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormUpdateReqVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java