Commit afa0d623dba39989d66e03dbc1e7359076583fd5
1 parent
1c266988
增加 bpm-core-service 多模块
Showing
38 changed files
with
401 additions
and
747 deletions
pom.xml
| @@ -27,6 +27,9 @@ | @@ -27,6 +27,9 @@ | ||
| 27 | <maven.compiler.source>${java.version}</maven.compiler.source> | 27 | <maven.compiler.source>${java.version}</maven.compiler.source> |
| 28 | <maven.compiler.target>${java.version}</maven.compiler.target> | 28 | <maven.compiler.target>${java.version}</maven.compiler.target> |
| 29 | <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> | 29 | <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> |
| 30 | + <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version> | ||
| 31 | + <lombok.version>1.18.20</lombok.version> | ||
| 32 | + <mapstruct.version>1.4.1.Final</mapstruct.version> | ||
| 30 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 33 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| 31 | </properties> | 34 | </properties> |
| 32 | 35 | ||
| @@ -52,6 +55,25 @@ | @@ -52,6 +55,25 @@ | ||
| 52 | <artifactId>maven-surefire-plugin</artifactId> | 55 | <artifactId>maven-surefire-plugin</artifactId> |
| 53 | <version>${maven-surefire-plugin.version}</version> | 56 | <version>${maven-surefire-plugin.version}</version> |
| 54 | </plugin> | 57 | </plugin> |
| 58 | + <plugin> | ||
| 59 | + <groupId>org.apache.maven.plugins</groupId> | ||
| 60 | + <artifactId>maven-compiler-plugin</artifactId> | ||
| 61 | + <version>${maven-compiler-plugin.version}</version> | ||
| 62 | + <configuration> | ||
| 63 | + <annotationProcessorPaths> | ||
| 64 | + <path> | ||
| 65 | + <groupId>org.projectlombok</groupId> | ||
| 66 | + <artifactId>lombok</artifactId> | ||
| 67 | + <version>${lombok.version}</version> | ||
| 68 | + </path> | ||
| 69 | + <path> | ||
| 70 | + <groupId>org.mapstruct</groupId> | ||
| 71 | + <artifactId>mapstruct-processor</artifactId> | ||
| 72 | + <version>${mapstruct.version}</version> | ||
| 73 | + </path> | ||
| 74 | + </annotationProcessorPaths> | ||
| 75 | + </configuration> | ||
| 76 | + </plugin> | ||
| 55 | </plugins> | 77 | </plugins> |
| 56 | </pluginManagement> | 78 | </pluginManagement> |
| 57 | </build> | 79 | </build> |
yudao-admin-server/pom.xml
| @@ -49,7 +49,10 @@ | @@ -49,7 +49,10 @@ | ||
| 49 | <groupId>cn.iocoder.boot</groupId> | 49 | <groupId>cn.iocoder.boot</groupId> |
| 50 | <artifactId>yudao-module-bpm-activiti</artifactId> | 50 | <artifactId>yudao-module-bpm-activiti</artifactId> |
| 51 | </dependency> | 51 | </dependency> |
| 52 | - | 52 | + <dependency> |
| 53 | + <groupId>cn.iocoder.boot</groupId> | ||
| 54 | + <artifactId>yudao-module-bpm-core-service-impl</artifactId> | ||
| 55 | + </dependency> | ||
| 53 | <!-- Web 相关 --> | 56 | <!-- Web 相关 --> |
| 54 | <dependency> | 57 | <dependency> |
| 55 | <groupId>cn.iocoder.boot</groupId> | 58 | <groupId>cn.iocoder.boot</groupId> |
yudao-dependencies/pom.xml
| @@ -410,7 +410,12 @@ | @@ -410,7 +410,12 @@ | ||
| 410 | </dependency> | 410 | </dependency> |
| 411 | <dependency> | 411 | <dependency> |
| 412 | <groupId>cn.iocoder.boot</groupId> | 412 | <groupId>cn.iocoder.boot</groupId> |
| 413 | - <artifactId>yudao-module-bpm-core-service</artifactId> | 413 | + <artifactId>yudao-module-bpm-core-service-impl</artifactId> |
| 414 | + <version>${revision}</version> | ||
| 415 | + </dependency> | ||
| 416 | + <dependency> | ||
| 417 | + <groupId>cn.iocoder.boot</groupId> | ||
| 418 | + <artifactId>yudao-module-bpm-core-service-api</artifactId> | ||
| 414 | <version>${revision}</version> | 419 | <version>${revision}</version> |
| 415 | </dependency> | 420 | </dependency> |
| 416 | <dependency> | 421 | <dependency> |
yudao-module-bpm/yudao-module-bpm-activiti/pom.xml
| @@ -19,6 +19,10 @@ | @@ -19,6 +19,10 @@ | ||
| 19 | <groupId>cn.iocoder.boot</groupId> | 19 | <groupId>cn.iocoder.boot</groupId> |
| 20 | <artifactId>yudao-core-service</artifactId> | 20 | <artifactId>yudao-core-service</artifactId> |
| 21 | </dependency> | 21 | </dependency> |
| 22 | + <dependency> | ||
| 23 | + <groupId>cn.iocoder.boot</groupId> | ||
| 24 | + <artifactId>yudao-module-bpm-core-service-api</artifactId> | ||
| 25 | + </dependency> | ||
| 22 | <!-- Test 测试相关 --> | 26 | <!-- Test 测试相关 --> |
| 23 | <dependency> | 27 | <dependency> |
| 24 | <groupId>cn.iocoder.boot</groupId> | 28 | <groupId>cn.iocoder.boot</groupId> |
| @@ -26,5 +30,4 @@ | @@ -26,5 +30,4 @@ | ||
| 26 | <scope>test</scope> | 30 | <scope>test</scope> |
| 27 | </dependency> | 31 | </dependency> |
| 28 | </dependencies> | 32 | </dependencies> |
| 29 | - | ||
| 30 | </project> | 33 | </project> |
| 31 | \ No newline at end of file | 34 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java
| @@ -57,8 +57,4 @@ public interface BpmErrorCodeConstants { | @@ -57,8 +57,4 @@ public interface BpmErrorCodeConstants { | ||
| 57 | ErrorCode FORM_NOT_EXISTS = new ErrorCode(1009010000, "动态表单不存在"); | 57 | ErrorCode FORM_NOT_EXISTS = new ErrorCode(1009010000, "动态表单不存在"); |
| 58 | ErrorCode FORM_FIELD_REPEAT = new ErrorCode(1009010000, "表单项({}) 和 ({}) 使用了相同的字段名({})"); | 58 | ErrorCode FORM_FIELD_REPEAT = new ErrorCode(1009010000, "表单项({}) 和 ({}) 使用了相同的字段名({})"); |
| 59 | 59 | ||
| 60 | - // ========== 用户组模块 1-009-011-000 ========== | ||
| 61 | - ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1009011000, "用户组不存在"); | ||
| 62 | - ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1009011001, "名字为【{}】的用户组已被禁用"); | ||
| 63 | - | ||
| 64 | } | 60 | } |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java
| @@ -6,11 +6,10 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.Bp | @@ -6,11 +6,10 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.Bp | ||
| 6 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.identity.EmptyUserGroupManager; | 6 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.identity.EmptyUserGroupManager; |
| 7 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.listener.BpmTackActivitiEventListener; | 7 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.listener.BpmTackActivitiEventListener; |
| 8 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; |
| 9 | -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService; | 9 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; |
| 10 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; | 10 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; |
| 11 | import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService; | 11 | import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService; |
| 12 | import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; | 12 | import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; |
| 13 | -import org.activiti.api.runtime.shared.identity.UserGroupManager; | ||
| 14 | import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer; | 13 | import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer; |
| 15 | import org.springframework.context.ApplicationEventPublisher; | 14 | import org.springframework.context.ApplicationEventPublisher; |
| 16 | import org.springframework.context.annotation.Bean; | 15 | import org.springframework.context.annotation.Bean; |
| @@ -60,14 +59,14 @@ public class BpmActivitiConfiguration { | @@ -60,14 +59,14 @@ public class BpmActivitiConfiguration { | ||
| 60 | public BpmActivityBehaviorFactory bpmActivityBehaviorFactory(BpmTaskAssignRuleService taskRuleService, | 59 | public BpmActivityBehaviorFactory bpmActivityBehaviorFactory(BpmTaskAssignRuleService taskRuleService, |
| 61 | SysPermissionCoreService permissionCoreService, | 60 | SysPermissionCoreService permissionCoreService, |
| 62 | SysDeptCoreService deptCoreService, | 61 | SysDeptCoreService deptCoreService, |
| 63 | - BpmUserGroupService userGroupService, | 62 | + BpmUserGroupServiceApi userGroupServiceApi, |
| 64 | SysUserCoreService userCoreService, | 63 | SysUserCoreService userCoreService, |
| 65 | List<BpmTaskAssignScript> scripts) { | 64 | List<BpmTaskAssignScript> scripts) { |
| 66 | BpmActivityBehaviorFactory bpmActivityBehaviorFactory = new BpmActivityBehaviorFactory(); | 65 | BpmActivityBehaviorFactory bpmActivityBehaviorFactory = new BpmActivityBehaviorFactory(); |
| 67 | bpmActivityBehaviorFactory.setBpmTaskRuleService(taskRuleService); | 66 | bpmActivityBehaviorFactory.setBpmTaskRuleService(taskRuleService); |
| 68 | bpmActivityBehaviorFactory.setPermissionCoreService(permissionCoreService); | 67 | bpmActivityBehaviorFactory.setPermissionCoreService(permissionCoreService); |
| 69 | bpmActivityBehaviorFactory.setDeptCoreService(deptCoreService); | 68 | bpmActivityBehaviorFactory.setDeptCoreService(deptCoreService); |
| 70 | - bpmActivityBehaviorFactory.setUserGroupService(userGroupService); | 69 | + bpmActivityBehaviorFactory.setUserGroupServiceApi(userGroupServiceApi); |
| 71 | bpmActivityBehaviorFactory.setUserCoreService(userCoreService); | 70 | bpmActivityBehaviorFactory.setUserCoreService(userCoreService); |
| 72 | bpmActivityBehaviorFactory.setScripts(scripts); | 71 | bpmActivityBehaviorFactory.setScripts(scripts); |
| 73 | return bpmActivityBehaviorFactory; | 72 | return bpmActivityBehaviorFactory; |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java
| @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript; | 3 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript; |
| 4 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; | 4 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; |
| 5 | -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService; | 5 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; |
| 6 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; | 6 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; |
| 7 | import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService; | 7 | import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService; |
| 8 | import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; | 8 | import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; |
| @@ -34,7 +34,7 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory { | @@ -34,7 +34,7 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory { | ||
| 34 | @Setter | 34 | @Setter |
| 35 | private SysDeptCoreService deptCoreService; | 35 | private SysDeptCoreService deptCoreService; |
| 36 | @Setter | 36 | @Setter |
| 37 | - private BpmUserGroupService userGroupService; | 37 | + private BpmUserGroupServiceApi userGroupServiceApi; |
| 38 | @Setter | 38 | @Setter |
| 39 | private SysUserCoreService userCoreService; | 39 | private SysUserCoreService userCoreService; |
| 40 | @Setter | 40 | @Setter |
| @@ -46,7 +46,7 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory { | @@ -46,7 +46,7 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory { | ||
| 46 | userTaskActivityBehavior.setBpmTaskRuleService(bpmTaskRuleService); | 46 | userTaskActivityBehavior.setBpmTaskRuleService(bpmTaskRuleService); |
| 47 | userTaskActivityBehavior.setPermissionCoreService(permissionCoreService); | 47 | userTaskActivityBehavior.setPermissionCoreService(permissionCoreService); |
| 48 | userTaskActivityBehavior.setDeptCoreService(deptCoreService); | 48 | userTaskActivityBehavior.setDeptCoreService(deptCoreService); |
| 49 | - userTaskActivityBehavior.setUserGroupService(userGroupService); | 49 | + userTaskActivityBehavior.setUserGroupServiceApi(userGroupServiceApi); |
| 50 | userTaskActivityBehavior.setSysUserCoreService(userCoreService); | 50 | userTaskActivityBehavior.setSysUserCoreService(userCoreService); |
| 51 | userTaskActivityBehavior.setScripts(scripts); | 51 | userTaskActivityBehavior.setScripts(scripts); |
| 52 | return userTaskActivityBehavior; | 52 | return userTaskActivityBehavior; |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehavior.java
| @@ -4,11 +4,11 @@ import cn.hutool.core.collection.CollUtil; | @@ -4,11 +4,11 @@ import cn.hutool.core.collection.CollUtil; | ||
| 4 | import cn.hutool.core.util.RandomUtil; | 4 | import cn.hutool.core.util.RandomUtil; |
| 5 | import cn.hutool.core.util.StrUtil; | 5 | import cn.hutool.core.util.StrUtil; |
| 6 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; | 6 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; |
| 7 | -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO; | ||
| 8 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; | 7 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; |
| 9 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript; | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript; |
| 10 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; | 9 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; |
| 11 | -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService; | 10 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; |
| 11 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO; | ||
| 12 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; | 12 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; |
| 13 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; | 13 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; |
| 14 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; | 14 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; |
| @@ -30,7 +30,7 @@ import java.util.*; | @@ -30,7 +30,7 @@ import java.util.*; | ||
| 30 | 30 | ||
| 31 | import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.TASK_ASSIGN_SCRIPT_NOT_EXISTS; | 31 | import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.TASK_ASSIGN_SCRIPT_NOT_EXISTS; |
| 32 | import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.TASK_CREATE_FAIL_NO_CANDIDATE_USER; | 32 | import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.TASK_CREATE_FAIL_NO_CANDIDATE_USER; |
| 33 | -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.*; | 33 | +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 34 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | 34 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; |
| 35 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | 35 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; |
| 36 | import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; | 36 | import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; |
| @@ -53,7 +53,7 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior { | @@ -53,7 +53,7 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior { | ||
| 53 | @Setter | 53 | @Setter |
| 54 | private SysDeptCoreService deptCoreService; | 54 | private SysDeptCoreService deptCoreService; |
| 55 | @Setter | 55 | @Setter |
| 56 | - private BpmUserGroupService userGroupService; | 56 | + private BpmUserGroupServiceApi userGroupServiceApi; |
| 57 | @Setter | 57 | @Setter |
| 58 | private SysUserCoreService sysUserCoreService; | 58 | private SysUserCoreService sysUserCoreService; |
| 59 | /** | 59 | /** |
| @@ -156,7 +156,7 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior { | @@ -156,7 +156,7 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior { | ||
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | private Set<Long> calculateTaskCandidateUsersByUserGroup(TaskEntity task, BpmTaskAssignRuleDO rule) { | 158 | private Set<Long> calculateTaskCandidateUsersByUserGroup(TaskEntity task, BpmTaskAssignRuleDO rule) { |
| 159 | - List<BpmUserGroupDO> userGroups = userGroupService.getUserGroupList(rule.getOptions()); | 159 | + List<BpmUserGroupDTO> userGroups = userGroupServiceApi.getUserGroupList(rule.getOptions()); |
| 160 | Set<Long> userIds = new HashSet<>(); | 160 | Set<Long> userIds = new HashSet<>(); |
| 161 | userGroups.forEach(bpmUserGroupDO -> userIds.addAll(bpmUserGroupDO.getMemberUserIds())); | 161 | userGroups.forEach(bpmUserGroupDO -> userIds.addAll(bpmUserGroupDO.getMemberUserIds())); |
| 162 | return userIds; | 162 | return userIds; |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmTaskAssignRuleServiceImpl.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl; |
| 2 | 2 | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | -import cn.hutool.core.collection.ListUtil; | ||
| 5 | -import cn.hutool.core.util.ArrayUtil; | ||
| 6 | import cn.hutool.core.util.ObjectUtil; | 4 | import cn.hutool.core.util.ObjectUtil; |
| 7 | import cn.hutool.core.util.StrUtil; | 5 | import cn.hutool.core.util.StrUtil; |
| 8 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleCreateReqVO; | 6 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleCreateReqVO; |
| @@ -15,8 +13,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRu | @@ -15,8 +13,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRu | ||
| 15 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService; | 13 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService; |
| 16 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService; | 14 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService; |
| 17 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; | 15 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; |
| 18 | -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService; | ||
| 19 | - | 16 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; |
| 20 | import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; | 17 | import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; |
| 21 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; | 18 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; |
| 22 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysPostCoreService; | 19 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysPostCoreService; |
| @@ -65,7 +62,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { | @@ -65,7 +62,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { | ||
| 65 | @Resource | 62 | @Resource |
| 66 | private SysUserCoreService userCoreService; | 63 | private SysUserCoreService userCoreService; |
| 67 | @Resource | 64 | @Resource |
| 68 | - private BpmUserGroupService userGroupService; | 65 | + private BpmUserGroupServiceApi userGroupServiceApi; |
| 69 | @Resource | 66 | @Resource |
| 70 | private SysDictDataCoreService dictDataCoreService; | 67 | private SysDictDataCoreService dictDataCoreService; |
| 71 | 68 | ||
| @@ -191,7 +188,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { | @@ -191,7 +188,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { | ||
| 191 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER.getType())) { | 188 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER.getType())) { |
| 192 | userCoreService.validUsers(options); | 189 | userCoreService.validUsers(options); |
| 193 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) { | 190 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) { |
| 194 | - userGroupService.validUserGroups(options); | 191 | + userGroupServiceApi.validUserGroups(options); |
| 195 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) { | 192 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) { |
| 196 | dictDataCoreService.validDictDatas(SysDictTypeConstants.BPM_TASK_ASSIGN_SCRIPT, | 193 | dictDataCoreService.validDictDatas(SysDictTypeConstants.BPM_TASK_ASSIGN_SCRIPT, |
| 197 | CollectionUtils.convertSet(options, String::valueOf)); | 194 | CollectionUtils.convertSet(options, String::valueOf)); |
yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehaviorTest.java
| @@ -2,12 +2,12 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio | @@ -2,12 +2,12 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio | ||
| 2 | 2 | ||
| 3 | import cn.hutool.core.map.MapUtil; | 3 | import cn.hutool.core.map.MapUtil; |
| 4 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; | 4 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; |
| 5 | -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO; | ||
| 6 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; | 5 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; |
| 7 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleScriptEnum; | 6 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleScriptEnum; |
| 8 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript; | 7 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript; |
| 9 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; |
| 10 | -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService; | 9 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; |
| 10 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO; | ||
| 11 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; | 11 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; |
| 12 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; | 12 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; |
| 13 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; | 13 | import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; |
| @@ -44,7 +44,7 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest { | @@ -44,7 +44,7 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest { | ||
| 44 | @Mock | 44 | @Mock |
| 45 | private SysDeptCoreService deptCoreService; | 45 | private SysDeptCoreService deptCoreService; |
| 46 | @Mock | 46 | @Mock |
| 47 | - private BpmUserGroupService userGroupService; | 47 | + private BpmUserGroupServiceApi userGroupServiceApi; |
| 48 | @Mock | 48 | @Mock |
| 49 | private SysUserCoreService userCoreService; | 49 | private SysUserCoreService userCoreService; |
| 50 | 50 | ||
| @@ -135,9 +135,9 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest { | @@ -135,9 +135,9 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest { | ||
| 135 | BpmTaskAssignRuleDO rule = new BpmTaskAssignRuleDO().setOptions(asSet(1L, 2L)) | 135 | BpmTaskAssignRuleDO rule = new BpmTaskAssignRuleDO().setOptions(asSet(1L, 2L)) |
| 136 | .setType(BpmTaskAssignRuleTypeEnum.USER_GROUP.getType()); | 136 | .setType(BpmTaskAssignRuleTypeEnum.USER_GROUP.getType()); |
| 137 | // mock 方法 | 137 | // mock 方法 |
| 138 | - BpmUserGroupDO userGroup1 = randomPojo(BpmUserGroupDO.class, o -> o.setMemberUserIds(asSet(11L, 12L))); | ||
| 139 | - BpmUserGroupDO userGroup2 = randomPojo(BpmUserGroupDO.class, o -> o.setMemberUserIds(asSet(21L, 22L))); | ||
| 140 | - when(userGroupService.getUserGroupList(eq(rule.getOptions()))).thenReturn(Arrays.asList(userGroup1, userGroup2)); | 138 | + BpmUserGroupDTO userGroup1 = randomPojo(BpmUserGroupDTO.class, o -> o.setMemberUserIds(asSet(11L, 12L))); |
| 139 | + BpmUserGroupDTO userGroup2 = randomPojo(BpmUserGroupDTO.class, o -> o.setMemberUserIds(asSet(21L, 22L))); | ||
| 140 | + when(userGroupServiceApi.getUserGroupList(eq(rule.getOptions()))).thenReturn(Arrays.asList(userGroup1, userGroup2)); | ||
| 141 | mockGetUserMap(asSet(11L, 12L, 21L, 22L)); | 141 | mockGetUserMap(asSet(11L, 12L, 21L, 22L)); |
| 142 | 142 | ||
| 143 | // 调用 | 143 | // 调用 |
yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/clean.sql
| 1 | --- inf 开头的 DB | ||
| 2 | -DELETE FROM "inf_config"; | ||
| 3 | -DELETE FROM "inf_file"; | ||
| 4 | -DELETE FROM "inf_job"; | ||
| 5 | -DELETE FROM "inf_job_log"; | ||
| 6 | -DELETE FROM "inf_api_access_log"; | ||
| 7 | -DELETE FROM "inf_api_error_log"; | ||
| 8 | - | ||
| 9 | --- sys 开头的 DB | ||
| 10 | -DELETE FROM "sys_dept"; | ||
| 11 | -DELETE FROM "sys_dict_data"; | ||
| 12 | -DELETE FROM "sys_role"; | ||
| 13 | -DELETE FROM "sys_role_menu"; | ||
| 14 | -DELETE FROM "sys_menu"; | ||
| 15 | -DELETE FROM "sys_user_role"; | ||
| 16 | -DELETE FROM "sys_dict_type"; | ||
| 17 | -DELETE FROM "sys_user_session"; | ||
| 18 | -DELETE FROM "sys_post"; | ||
| 19 | -DELETE FROM "sys_login_log"; | ||
| 20 | -DELETE FROM "sys_operate_log"; | ||
| 21 | -DELETE FROM "sys_user"; | ||
| 22 | -DELETE FROM "sys_sms_channel"; | ||
| 23 | -DELETE FROM "sys_sms_template"; | ||
| 24 | -DELETE FROM "sys_sms_log"; | ||
| 25 | -DELETE FROM "sys_error_code"; | ||
| 26 | -DELETE FROM "sys_social_user"; | ||
| 27 | -DELETE FROM "sys_tenant"; | ||
| 28 | - | ||
| 29 | --- pay 开头的 DB | ||
| 30 | -DELETE FROM pay_merchant; | ||
| 31 | -DELETE FROM pay_app; | ||
| 32 | -DELETE FROM pay_channel; | ||
| 33 | -DELETE FROM pay_order; | ||
| 34 | -DELETE FROM pay_refund; | ||
| 35 | - | ||
| 36 | -- bpm 开头的 DB | 1 | -- bpm 开头的 DB |
| 37 | DELETE FROM "bpm_form"; | 2 | DELETE FROM "bpm_form"; |
| 38 | -DELETE FROM "bpm_user_group"; |
yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/create_tables.sql
| 1 | --- inf 开头的 DB | ||
| 2 | - | ||
| 3 | -CREATE TABLE IF NOT EXISTS "inf_config" ( | ||
| 4 | - "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 5 | - "group" varchar(50) NOT NULL, | ||
| 6 | - "type" tinyint NOT NULL, | ||
| 7 | - "name" varchar(100) NOT NULL DEFAULT '', | ||
| 8 | - "key" varchar(100) NOT NULL DEFAULT '', | ||
| 9 | - "value" varchar(500) NOT NULL DEFAULT '', | ||
| 10 | - "sensitive" bit NOT NULL, | ||
| 11 | - "remark" varchar(500) DEFAULT NULL, | ||
| 12 | - "creator" varchar(64) DEFAULT '', | ||
| 13 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 14 | - "updater" varchar(64) DEFAULT '', | ||
| 15 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 16 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 17 | - PRIMARY KEY ("id") | ||
| 18 | -) COMMENT '参数配置表'; | ||
| 19 | - | ||
| 20 | -CREATE TABLE IF NOT EXISTS "inf_file" ( | ||
| 21 | - "id" varchar(188) NOT NULL, | ||
| 22 | - "type" varchar(63) DEFAULT NULL, | ||
| 23 | - "content" blob NOT NULL, | ||
| 24 | - "creator" varchar(64) DEFAULT '', | ||
| 25 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 26 | - "updater" varchar(64) DEFAULT '', | ||
| 27 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 28 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 29 | - "tenant_id" bigint not null default '0', | ||
| 30 | - PRIMARY KEY ("id") | ||
| 31 | -) COMMENT '文件表'; | ||
| 32 | - | ||
| 33 | -CREATE TABLE IF NOT EXISTS "inf_job" ( | ||
| 34 | - "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY COMMENT '任务编号', | ||
| 35 | - "name" varchar(32) NOT NULL COMMENT '任务名称', | ||
| 36 | - "status" tinyint(4) NOT NULL COMMENT '任务状态', | ||
| 37 | - "handler_name" varchar(64) NOT NULL COMMENT '处理器的名字', | ||
| 38 | - "handler_param" varchar(255) DEFAULT NULL COMMENT '处理器的参数', | ||
| 39 | - "cron_expression" varchar(32) NOT NULL COMMENT 'CRON 表达式', | ||
| 40 | - "retry_count" int(11) NOT NULL DEFAULT '0' COMMENT '重试次数', | ||
| 41 | - "retry_interval" int(11) NOT NULL DEFAULT '0' COMMENT '重试间隔', | ||
| 42 | - "monitor_timeout" int(11) NOT NULL DEFAULT '0' COMMENT '监控超时时间', | ||
| 43 | - "creator" varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 44 | - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 45 | - "updater" varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 46 | - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 47 | - "deleted" bit NOT NULL DEFAULT FALSE COMMENT '是否删除', | ||
| 48 | - PRIMARY KEY ("id") | ||
| 49 | -) COMMENT='定时任务表'; | ||
| 50 | - | ||
| 51 | -CREATE TABLE IF NOT EXISTS "inf_job_log" ( | ||
| 52 | - "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY COMMENT '日志编号', | ||
| 53 | - "job_id" bigint(20) NOT NULL COMMENT '任务编号', | ||
| 54 | - "handler_name" varchar(64) NOT NULL COMMENT '处理器的名字', | ||
| 55 | - "handler_param" varchar(255) DEFAULT NULL COMMENT '处理器的参数', | ||
| 56 | - "execute_index" tinyint(4) NOT NULL DEFAULT '1' COMMENT '第几次执行', | ||
| 57 | - "begin_time" datetime NOT NULL COMMENT '开始执行时间', | ||
| 58 | - "end_time" datetime DEFAULT NULL COMMENT '结束执行时间', | ||
| 59 | - "duration" int(11) DEFAULT NULL COMMENT '执行时长', | ||
| 60 | - "status" tinyint(4) NOT NULL COMMENT '任务状态', | ||
| 61 | - "result" varchar(4000) DEFAULT '' COMMENT '结果数据', | ||
| 62 | - "creator" varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 63 | - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 64 | - "updater" varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 65 | - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 66 | - "deleted" bit(1) NOT NULL DEFAULT FALSE COMMENT '是否删除', | ||
| 67 | - PRIMARY KEY ("id") | ||
| 68 | -)COMMENT='定时任务日志表'; | ||
| 69 | - | ||
| 70 | --- sys 开头的 DB | ||
| 71 | - | ||
| 72 | -CREATE TABLE IF NOT EXISTS "sys_dept" ( | ||
| 73 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 74 | - "name" varchar(30) NOT NULL DEFAULT '', | ||
| 75 | - "parent_id" bigint NOT NULL DEFAULT '0', | ||
| 76 | - "sort" int NOT NULL DEFAULT '0', | ||
| 77 | - "leader_user_id" bigint DEFAULT NULL, | ||
| 78 | - "phone" varchar(11) DEFAULT NULL, | ||
| 79 | - "email" varchar(50) DEFAULT NULL, | ||
| 80 | - "status" tinyint NOT NULL, | ||
| 81 | - "creator" varchar(64) DEFAULT '', | ||
| 82 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 83 | - "updater" varchar(64) DEFAULT '', | ||
| 84 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 85 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 86 | - "tenant_id" bigint not null default '0', | ||
| 87 | - PRIMARY KEY ("id") | ||
| 88 | -) COMMENT '部门表'; | ||
| 89 | - | ||
| 90 | -CREATE TABLE IF NOT EXISTS "sys_dict_data" ( | ||
| 91 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 92 | - "sort" int NOT NULL DEFAULT '0', | ||
| 93 | - "label" varchar(100) NOT NULL DEFAULT '', | ||
| 94 | - "value" varchar(100) NOT NULL DEFAULT '', | ||
| 95 | - "dict_type" varchar(100) NOT NULL DEFAULT '', | ||
| 96 | - "status" tinyint NOT NULL DEFAULT '0', | ||
| 97 | - "remark" varchar(500) DEFAULT NULL, | ||
| 98 | - "creator" varchar(64) DEFAULT '', | ||
| 99 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 100 | - "updater" varchar(64) DEFAULT '', | ||
| 101 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 102 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 103 | - PRIMARY KEY ("id") | ||
| 104 | -) COMMENT '字典数据表'; | ||
| 105 | - | ||
| 106 | -CREATE TABLE IF NOT EXISTS "sys_role" ( | ||
| 107 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 108 | - "name" varchar(30) NOT NULL, | ||
| 109 | - "code" varchar(100) NOT NULL, | ||
| 110 | - "sort" int NOT NULL, | ||
| 111 | - "data_scope" tinyint NOT NULL DEFAULT '1', | ||
| 112 | - "data_scope_dept_ids" varchar(500) NOT NULL DEFAULT '', | ||
| 113 | - "status" tinyint NOT NULL, | ||
| 114 | - "type" tinyint NOT NULL, | ||
| 115 | - "remark" varchar(500) DEFAULT NULL, | ||
| 116 | - "creator" varchar(64) DEFAULT '', | ||
| 117 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 118 | - "updater" varchar(64) DEFAULT '', | ||
| 119 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 120 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 121 | - PRIMARY KEY ("id") | ||
| 122 | -) COMMENT '角色信息表'; | ||
| 123 | - | ||
| 124 | -CREATE TABLE IF NOT EXISTS "sys_role_menu" ( | ||
| 125 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 126 | - "role_id" bigint NOT NULL, | ||
| 127 | - "menu_id" bigint NOT NULL, | ||
| 128 | - "creator" varchar(64) DEFAULT '', | ||
| 129 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 130 | - "updater" varchar(64) DEFAULT '', | ||
| 131 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 132 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 133 | - PRIMARY KEY ("id") | ||
| 134 | -) COMMENT '角色和菜单关联表'; | ||
| 135 | - | ||
| 136 | -CREATE TABLE IF NOT EXISTS "sys_menu" ( | ||
| 137 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 138 | - "name" varchar(50) NOT NULL, | ||
| 139 | - "permission" varchar(100) NOT NULL DEFAULT '', | ||
| 140 | - "menu_type" tinyint NOT NULL, | ||
| 141 | - "sort" int NOT NULL DEFAULT '0', | ||
| 142 | - "parent_id" bigint NOT NULL DEFAULT '0', | ||
| 143 | - "path" varchar(200) DEFAULT '', | ||
| 144 | - "icon" varchar(100) DEFAULT '#', | ||
| 145 | - "component" varchar(255) DEFAULT NULL, | ||
| 146 | - "status" tinyint NOT NULL DEFAULT '0', | ||
| 147 | - "creator" varchar(64) DEFAULT '', | ||
| 148 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 149 | - "updater" varchar(64) DEFAULT '', | ||
| 150 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 151 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 152 | - PRIMARY KEY ("id") | ||
| 153 | -) COMMENT '菜单权限表'; | ||
| 154 | - | ||
| 155 | -CREATE TABLE IF NOT EXISTS "sys_user_role" ( | ||
| 156 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 157 | - "user_id" bigint NOT NULL, | ||
| 158 | - "role_id" bigint NOT NULL, | ||
| 159 | - "creator" varchar(64) DEFAULT '', | ||
| 160 | - "create_time" timestamp DEFAULT NULL, | ||
| 161 | - "updater" varchar(64) DEFAULT '', | ||
| 162 | - "update_time" timestamp DEFAULT NULL, | ||
| 163 | - "deleted" bit DEFAULT FALSE, | ||
| 164 | - PRIMARY KEY ("id") | ||
| 165 | -) COMMENT '用户和角色关联表'; | ||
| 166 | - | ||
| 167 | -CREATE TABLE IF NOT EXISTS "sys_dict_type" ( | ||
| 168 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 169 | - "name" varchar(100) NOT NULL DEFAULT '', | ||
| 170 | - "type" varchar(100) NOT NULL DEFAULT '', | ||
| 171 | - "status" tinyint NOT NULL DEFAULT '0', | ||
| 172 | - "remark" varchar(500) DEFAULT NULL, | ||
| 173 | - "creator" varchar(64) DEFAULT '', | ||
| 174 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 175 | - "updater" varchar(64) DEFAULT '', | ||
| 176 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 177 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 178 | - PRIMARY KEY ("id") | ||
| 179 | -) COMMENT '字典类型表'; | ||
| 180 | - | ||
| 181 | -CREATE TABLE IF NOT EXISTS `sys_user_session` ( | ||
| 182 | - `id` varchar(32) NOT NULL, | ||
| 183 | - `user_id` bigint DEFAULT NULL, | ||
| 184 | - "user_type" tinyint NOT NULL, | ||
| 185 | - `username` varchar(50) NOT NULL DEFAULT '', | ||
| 186 | - `user_ip` varchar(50) DEFAULT NULL, | ||
| 187 | - `user_agent` varchar(512) DEFAULT NULL, | ||
| 188 | - `session_timeout` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 189 | - "creator" varchar(64) DEFAULT '', | ||
| 190 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 191 | - `updater` varchar(64) DEFAULT '' , | ||
| 192 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 193 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 194 | - "tenant_id" bigint not null default '0', | ||
| 195 | - PRIMARY KEY (`id`) | ||
| 196 | -) COMMENT '用户在线 Session'; | ||
| 197 | - | ||
| 198 | -CREATE TABLE IF NOT EXISTS "sys_post" ( | ||
| 199 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 200 | - "code" varchar(64) NOT NULL, | ||
| 201 | - "name" varchar(50) NOT NULL, | ||
| 202 | - "sort" integer NOT NULL, | ||
| 203 | - "status" tinyint NOT NULL, | ||
| 204 | - "remark" varchar(500) DEFAULT NULL, | ||
| 205 | - "creator" varchar(64) DEFAULT '', | ||
| 206 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 207 | - "updater" varchar(64) DEFAULT '', | ||
| 208 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 209 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 210 | - "tenant_id" bigint not null default '0', | ||
| 211 | - PRIMARY KEY ("id") | ||
| 212 | -) COMMENT '岗位信息表'; | ||
| 213 | - | ||
| 214 | -CREATE TABLE IF NOT EXISTS "sys_notice" ( | ||
| 215 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 216 | - "title" varchar(50) NOT NULL COMMENT '公告标题', | ||
| 217 | - "content" text NOT NULL COMMENT '公告内容', | ||
| 218 | - "notice_type" tinyint NOT NULL COMMENT '公告类型(1通知 2公告)', | ||
| 219 | - "status" tinyint NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', | ||
| 220 | - "creator" varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 221 | - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 222 | - "updater" varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 223 | - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 224 | - "deleted" bit NOT NULL DEFAULT 0 COMMENT '是否删除', | ||
| 225 | - "tenant_id" bigint not null default '0', | ||
| 226 | - PRIMARY KEY("id") | ||
| 227 | -) COMMENT '通知公告表'; | ||
| 228 | - | ||
| 229 | -CREATE TABLE IF NOT EXISTS `sys_login_log` ( | ||
| 230 | - `id` bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 231 | - `log_type` bigint(4) NOT NULL, | ||
| 232 | - "user_id" bigint not null default '0', | ||
| 233 | - "user_type" tinyint NOT NULL, | ||
| 234 | - `trace_id` varchar(64) NOT NULL DEFAULT '', | ||
| 235 | - `username` varchar(50) NOT NULL DEFAULT '', | ||
| 236 | - `result` tinyint(4) NOT NULL, | ||
| 237 | - `user_ip` varchar(50) NOT NULL, | ||
| 238 | - `user_agent` varchar(512) NOT NULL, | ||
| 239 | - `creator` varchar(64) DEFAULT '', | ||
| 240 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 241 | - `updater` varchar(64) DEFAULT '', | ||
| 242 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 243 | - `deleted` bit(1) NOT NULL DEFAULT '0', | ||
| 244 | - PRIMARY KEY (`id`) | ||
| 245 | -) COMMENT ='系统访问记录'; | ||
| 246 | - | ||
| 247 | -CREATE TABLE IF NOT EXISTS `sys_operate_log` ( | ||
| 248 | - `id` bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 249 | - `trace_id` varchar(64) NOT NULL DEFAULT '', | ||
| 250 | - `user_id` bigint(20) NOT NULL, | ||
| 251 | - `module` varchar(50) NOT NULL, | ||
| 252 | - `name` varchar(50) NOT NULL, | ||
| 253 | - `operate_type` bigint(4) NOT NULL DEFAULT '0', | ||
| 254 | - `content` varchar(2000) NOT NULL DEFAULT '', | ||
| 255 | - `exts` varchar(512) NOT NULL DEFAULT '', | ||
| 256 | - `request_method` varchar(16) DEFAULT '', | ||
| 257 | - `request_url` varchar(255) DEFAULT '', | ||
| 258 | - `user_ip` varchar(50) DEFAULT NULL, | ||
| 259 | - `user_agent` varchar(200) DEFAULT NULL, | ||
| 260 | - `java_method` varchar(512) NOT NULL DEFAULT '', | ||
| 261 | - `java_method_args` varchar(8000) DEFAULT '', | ||
| 262 | - `start_time` datetime NOT NULL, | ||
| 263 | - `duration` int(11) NOT NULL, | ||
| 264 | - `result_code` int(11) NOT NULL DEFAULT '0', | ||
| 265 | - `result_msg` varchar(512) DEFAULT '', | ||
| 266 | - `result_data` varchar(4000) DEFAULT '', | ||
| 267 | - `creator` varchar(64) DEFAULT '', | ||
| 268 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 269 | - `updater` varchar(64) DEFAULT '', | ||
| 270 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 271 | - `deleted` bit(1) NOT NULL DEFAULT '0', | ||
| 272 | - "tenant_id" bigint not null default '0', | ||
| 273 | - PRIMARY KEY (`id`) | ||
| 274 | -) COMMENT ='操作日志记录'; | ||
| 275 | - | ||
| 276 | -CREATE TABLE IF NOT EXISTS "sys_user" ( | ||
| 277 | - "id" bigint not null GENERATED BY DEFAULT AS IDENTITY, | ||
| 278 | - "username" varchar(30) not null, | ||
| 279 | - "password" varchar(100) not null default '', | ||
| 280 | - "nickname" varchar(30) not null, | ||
| 281 | - "remark" varchar(500) default null, | ||
| 282 | - "dept_id" bigint default null, | ||
| 283 | - "post_ids" varchar(255) default null, | ||
| 284 | - "email" varchar(50) default '', | ||
| 285 | - "mobile" varchar(11) default '', | ||
| 286 | - "sex" tinyint default '0', | ||
| 287 | - "avatar" varchar(100) default '', | ||
| 288 | - "status" tinyint not null default '0', | ||
| 289 | - "login_ip" varchar(50) default '', | ||
| 290 | - "login_date" timestamp default null, | ||
| 291 | - "creator" varchar(64) default '', | ||
| 292 | - "create_time" timestamp not null default current_timestamp, | ||
| 293 | - "updater" varchar(64) default '', | ||
| 294 | - "update_time" timestamp not null default current_timestamp, | ||
| 295 | - "deleted" bit not null default false, | ||
| 296 | - "tenant_id" bigint not null default '0', | ||
| 297 | - primary key ("id") | ||
| 298 | -) comment '用户信息表'; | ||
| 299 | - | ||
| 300 | -CREATE TABLE IF NOT EXISTS "inf_api_access_log" ( | ||
| 301 | - "id" bigint not null GENERATED BY DEFAULT AS IDENTITY, | ||
| 302 | - "trace_id" varchar(64) not null default '', | ||
| 303 | - "user_id" bigint not null default '0', | ||
| 304 | - "user_type" tinyint not null default '0', | ||
| 305 | - "application_name" varchar(50) not null, | ||
| 306 | - "request_method" varchar(16) not null default '', | ||
| 307 | - "request_url" varchar(255) not null default '', | ||
| 308 | - "request_params" varchar(8000) not null default '', | ||
| 309 | - "user_ip" varchar(50) not null, | ||
| 310 | - "user_agent" varchar(512) not null, | ||
| 311 | - "begin_time" timestamp not null, | ||
| 312 | - "end_time" timestamp not null, | ||
| 313 | - "duration" integer not null, | ||
| 314 | - "result_code" integer not null default '0', | ||
| 315 | - "result_msg" varchar(512) default '', | ||
| 316 | - "creator" varchar(64) default '', | ||
| 317 | - "create_time" timestamp not null default current_timestamp, | ||
| 318 | - "updater" varchar(64) default '', | ||
| 319 | - "update_time" timestamp not null default current_timestamp, | ||
| 320 | - "deleted" bit not null default false, | ||
| 321 | - "tenant_id" bigint not null default '0', | ||
| 322 | - primary key ("id") | ||
| 323 | -) COMMENT 'API 访问日志表'; | ||
| 324 | - | ||
| 325 | -CREATE TABLE IF NOT EXISTS "inf_api_error_log" ( | ||
| 326 | - "id" bigint not null GENERATED BY DEFAULT AS IDENTITY, | ||
| 327 | - "trace_id" varchar(64) not null, | ||
| 328 | - "user_id" bigint not null default '0', | ||
| 329 | - "user_type" tinyint not null default '0', | ||
| 330 | - "application_name" varchar(50) not null, | ||
| 331 | - "request_method" varchar(16) not null, | ||
| 332 | - "request_url" varchar(255) not null, | ||
| 333 | - "request_params" varchar(8000) not null, | ||
| 334 | - "user_ip" varchar(50) not null, | ||
| 335 | - "user_agent" varchar(512) not null, | ||
| 336 | - "exception_time" timestamp not null, | ||
| 337 | - "exception_name" varchar(128) not null default '', | ||
| 338 | - "exception_message" clob not null, | ||
| 339 | - "exception_root_cause_message" clob not null, | ||
| 340 | - "exception_stack_trace" clob not null, | ||
| 341 | - "exception_class_name" varchar(512) not null, | ||
| 342 | - "exception_file_name" varchar(512) not null, | ||
| 343 | - "exception_method_name" varchar(512) not null, | ||
| 344 | - "exception_line_number" integer not null, | ||
| 345 | - "process_status" tinyint not null, | ||
| 346 | - "process_time" timestamp default null, | ||
| 347 | - "process_user_id" bigint default '0', | ||
| 348 | - "creator" varchar(64) default '', | ||
| 349 | - "create_time" timestamp not null default current_timestamp, | ||
| 350 | - "updater" varchar(64) default '', | ||
| 351 | - "update_time" timestamp not null default current_timestamp, | ||
| 352 | - "deleted" bit not null default false, | ||
| 353 | - "tenant_id" bigint not null default '0', | ||
| 354 | - primary key ("id") | ||
| 355 | -) COMMENT '系统异常日志'; | ||
| 356 | - | ||
| 357 | -CREATE TABLE IF NOT EXISTS "sys_sms_channel" ( | ||
| 358 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 359 | - "signature" varchar(10) NOT NULL, | ||
| 360 | - "code" varchar(63) NOT NULL, | ||
| 361 | - "status" tinyint NOT NULL, | ||
| 362 | - "remark" varchar(255) DEFAULT NULL, | ||
| 363 | - "api_key" varchar(63) NOT NULL, | ||
| 364 | - "api_secret" varchar(63) DEFAULT NULL, | ||
| 365 | - "callback_url" varchar(255) DEFAULT NULL, | ||
| 366 | - "creator" varchar(64) DEFAULT '', | ||
| 367 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 368 | - "updater" varchar(64) DEFAULT '', | ||
| 369 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 370 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 371 | - PRIMARY KEY ("id") | ||
| 372 | -) COMMENT '短信渠道'; | ||
| 373 | - | ||
| 374 | -CREATE TABLE IF NOT EXISTS "sys_sms_template" ( | ||
| 375 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 376 | - "type" tinyint NOT NULL, | ||
| 377 | - "status" tinyint NOT NULL, | ||
| 378 | - "code" varchar(63) NOT NULL, | ||
| 379 | - "name" varchar(63) NOT NULL, | ||
| 380 | - "content" varchar(255) NOT NULL, | ||
| 381 | - "params" varchar(255) NOT NULL, | ||
| 382 | - "remark" varchar(255) DEFAULT NULL, | ||
| 383 | - "api_template_id" varchar(63) NOT NULL, | ||
| 384 | - "channel_id" bigint NOT NULL, | ||
| 385 | - "channel_code" varchar(63) NOT NULL, | ||
| 386 | - "creator" varchar(64) DEFAULT '', | ||
| 387 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 388 | - "updater" varchar(64) DEFAULT '', | ||
| 389 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 390 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 391 | - PRIMARY KEY ("id") | ||
| 392 | -) COMMENT '短信模板'; | ||
| 393 | - | ||
| 394 | -CREATE TABLE IF NOT EXISTS "sys_sms_log" ( | ||
| 395 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 396 | - "channel_id" bigint NOT NULL, | ||
| 397 | - "channel_code" varchar(63) NOT NULL, | ||
| 398 | - "template_id" bigint NOT NULL, | ||
| 399 | - "template_code" varchar(63) NOT NULL, | ||
| 400 | - "template_type" tinyint NOT NULL, | ||
| 401 | - "template_content" varchar(255) NOT NULL, | ||
| 402 | - "template_params" varchar(255) NOT NULL, | ||
| 403 | - "api_template_id" varchar(63) NOT NULL, | ||
| 404 | - "mobile" varchar(11) NOT NULL, | ||
| 405 | - "user_id" bigint DEFAULT '0', | ||
| 406 | - "user_type" tinyint DEFAULT '0', | ||
| 407 | - "send_status" tinyint NOT NULL DEFAULT '0', | ||
| 408 | - "send_time" timestamp DEFAULT NULL, | ||
| 409 | - "send_code" int DEFAULT NULL, | ||
| 410 | - "send_msg" varchar(255) DEFAULT NULL, | ||
| 411 | - "api_send_code" varchar(63) DEFAULT NULL, | ||
| 412 | - "api_send_msg" varchar(255) DEFAULT NULL, | ||
| 413 | - "api_request_id" varchar(255) DEFAULT NULL, | ||
| 414 | - "api_serial_no" varchar(255) DEFAULT NULL, | ||
| 415 | - "receive_status" tinyint NOT NULL DEFAULT '0', | ||
| 416 | - "receive_time" timestamp DEFAULT NULL, | ||
| 417 | - "api_receive_code" varchar(63) DEFAULT NULL, | ||
| 418 | - "api_receive_msg" varchar(255) DEFAULT NULL, | ||
| 419 | - "creator" varchar(64) DEFAULT '', | ||
| 420 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 421 | - "updater" varchar(64) DEFAULT '', | ||
| 422 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 423 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 424 | - PRIMARY KEY ("id") | ||
| 425 | -) COMMENT '短信日志'; | ||
| 426 | - | ||
| 427 | -CREATE TABLE IF NOT EXISTS "sys_error_code" ( | ||
| 428 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 429 | - "type" tinyint NOT NULL DEFAULT '0', | ||
| 430 | - "application_name" varchar(50) NOT NULL, | ||
| 431 | - "code" int NOT NULL DEFAULT '0', | ||
| 432 | - "message" varchar(512) NOT NULL DEFAULT '', | ||
| 433 | - "memo" varchar(512) DEFAULT '', | ||
| 434 | - "creator" varchar(64) DEFAULT '', | ||
| 435 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 436 | - "updater" varchar(64) DEFAULT '', | ||
| 437 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 438 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 439 | - PRIMARY KEY ("id") | ||
| 440 | -) COMMENT '错误码表'; | ||
| 441 | - | ||
| 442 | -CREATE TABLE IF NOT EXISTS "sys_social_user" ( | ||
| 443 | - "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 444 | - "user_id" bigint NOT NULL, | ||
| 445 | - "user_type" tinyint NOT NULL DEFAULT '0', | ||
| 446 | - "type" tinyint NOT NULL, | ||
| 447 | - "openid" varchar(32) NOT NULL, | ||
| 448 | - "token" varchar(256) DEFAULT NULL, | ||
| 449 | - "union_id" varchar(32) NOT NULL, | ||
| 450 | - "raw_token_info" varchar(1024) NOT NULL, | ||
| 451 | - "nickname" varchar(32) NOT NULL, | ||
| 452 | - "avatar" varchar(255) DEFAULT NULL, | ||
| 453 | - "raw_user_info" varchar(1024) NOT NULL, | ||
| 454 | - "creator" varchar(64) DEFAULT '', | ||
| 455 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 456 | - "updater" varchar(64) DEFAULT '', | ||
| 457 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 458 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 459 | - PRIMARY KEY ("id") | ||
| 460 | -) COMMENT '社交用户'; | ||
| 461 | - | ||
| 462 | -CREATE TABLE IF NOT EXISTS "sys_tenant" ( | ||
| 463 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 464 | - "name" varchar(63) NOT NULL, | ||
| 465 | - "contact_name" varchar(255) NOT NULL, | ||
| 466 | - "contact_mobile" varchar(255), | ||
| 467 | - "status" tinyint NOT NULL, | ||
| 468 | - "creator" varchar(64) DEFAULT '', | ||
| 469 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 470 | - "updater" varchar(64) DEFAULT '', | ||
| 471 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 472 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 473 | - PRIMARY KEY ("id") | ||
| 474 | -) COMMENT '租户'; | ||
| 475 | - | ||
| 476 | - | ||
| 477 | -CREATE TABLE IF NOT EXISTS "pay_merchant" | ||
| 478 | -( | ||
| 479 | - "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 480 | - "no" varchar(32) NOT NULL, | ||
| 481 | - "name" varchar(64) NOT NULL, | ||
| 482 | - "short_name" varchar(64) NOT NULL, | ||
| 483 | - "status" tinyint NOT NULL, | ||
| 484 | - "remark" varchar(255) DEFAULT NULL, | ||
| 485 | - "creator" varchar(64) DEFAULT '', | ||
| 486 | - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 487 | - "updater" varchar(64) DEFAULT '', | ||
| 488 | - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 489 | - "deleted" bit(1) NOT NULL DEFAULT FALSE, | ||
| 490 | - PRIMARY KEY ("id") | ||
| 491 | -) COMMENT '支付商户信息'; | ||
| 492 | - | ||
| 493 | --- bpm 开头的 DB | ||
| 494 | - | ||
| 495 | -CREATE TABLE IF NOT EXISTS "pay_app" ( | ||
| 496 | - "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 497 | - "name" varchar(64) NOT NULL, | ||
| 498 | - "status" tinyint NOT NULL, | ||
| 499 | - "remark" varchar(255) DEFAULT NULL, | ||
| 500 | - `pay_notify_url` varchar(1024) NOT NULL, | ||
| 501 | - `refund_notify_url` varchar(1024) NOT NULL, | ||
| 502 | - `merchant_id` bigint(20) NOT NULL, | ||
| 503 | - "creator" varchar(64) DEFAULT '', | ||
| 504 | - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 505 | - "updater" varchar(64) DEFAULT '', | ||
| 506 | - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 507 | - "deleted" bit(1) NOT NULL DEFAULT FALSE, | ||
| 508 | - PRIMARY KEY ("id") | ||
| 509 | -) COMMENT = '支付应用信息'; | ||
| 510 | - | ||
| 511 | -CREATE TABLE IF NOT EXISTS "pay_channel" ( | ||
| 512 | - "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 513 | - "code" varchar(32) NOT NULL, | ||
| 514 | - "status" tinyint(4) NOT NULL, | ||
| 515 | - "remark" varchar(255) DEFAULT NULL, | ||
| 516 | - "fee_rate" double NOT NULL DEFAULT 0, | ||
| 517 | - "merchant_id" bigint(20) NOT NULL, | ||
| 518 | - "app_id" bigint(20) NOT NULL, | ||
| 519 | - "config" varchar(10240) NOT NULL, | ||
| 520 | - "creator" varchar(64) NULL DEFAULT '', | ||
| 521 | - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 522 | - "updater" varchar(64) NULL DEFAULT '', | ||
| 523 | - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 524 | - "deleted" bit(1) NOT NULL DEFAULT FALSE, | ||
| 525 | - PRIMARY KEY ("id") | ||
| 526 | -) COMMENT = '支付渠道'; | ||
| 527 | - | ||
| 528 | -CREATE TABLE IF NOT EXISTS `pay_order` ( | ||
| 529 | - "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 530 | - `merchant_id` bigint(20) NOT NULL, | ||
| 531 | - `app_id` bigint(20) NOT NULL, | ||
| 532 | - `channel_id` bigint(20) DEFAULT NULL, | ||
| 533 | - `channel_code` varchar(32) DEFAULT NULL, | ||
| 534 | - `merchant_order_id` varchar(64) NOT NULL, | ||
| 535 | - `subject` varchar(32) NOT NULL, | ||
| 536 | - `body` varchar(128) NOT NULL, | ||
| 537 | - `notify_url` varchar(1024) NOT NULL, | ||
| 538 | - `notify_status` tinyint(4) NOT NULL, | ||
| 539 | - `amount` bigint(20) NOT NULL, | ||
| 540 | - `channel_fee_rate` double DEFAULT 0, | ||
| 541 | - `channel_fee_amount` bigint(20) DEFAULT 0, | ||
| 542 | - `status` tinyint(4) NOT NULL, | ||
| 543 | - `user_ip` varchar(50) NOT NULL, | ||
| 544 | - `expire_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 545 | - `success_time` datetime(0) DEFAULT CURRENT_TIMESTAMP, | ||
| 546 | - `notify_time` datetime(0) DEFAULT CURRENT_TIMESTAMP, | ||
| 547 | - `success_extension_id` bigint(20) DEFAULT NULL COMMENT '支付成功的订单拓展单编号', | ||
| 548 | - `refund_status` tinyint(4) NOT NULL, | ||
| 549 | - `refund_times` tinyint(4) NOT NULL, | ||
| 550 | - `refund_amount` bigint(20) NOT NULL, | ||
| 551 | - `channel_user_id` varchar(255) DEFAULT NULL, | ||
| 552 | - `channel_order_no` varchar(64) DEFAULT NULL, | ||
| 553 | - `creator` varchar(64) DEFAULT '', | ||
| 554 | - `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 555 | - `updater` varchar(64) DEFAULT '', | ||
| 556 | - `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 557 | - `deleted` bit(1) NOT NULL DEFAULT FALSE, | ||
| 558 | - PRIMARY KEY ("id") | ||
| 559 | -) COMMENT = '支付订单'; | ||
| 560 | - | ||
| 561 | -CREATE TABLE IF NOT EXISTS `pay_refund` ( | ||
| 562 | - "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 563 | - `merchant_id` bigint(20) NOT NULL, | ||
| 564 | - `app_id` bigint(20) NOT NULL, | ||
| 565 | - `channel_id` bigint(20) NOT NULL, | ||
| 566 | - `channel_code` varchar(32) NOT NULL, | ||
| 567 | - `order_id` bigint(20) NOT NULL, | ||
| 568 | - `trade_no` varchar(64) NOT NULL, | ||
| 569 | - `merchant_order_id` varchar(64) NOT NULL, | ||
| 570 | - `merchant_refund_no` varchar(64) NOT NULL, | ||
| 571 | - `notify_url` varchar(1024) NOT NULL, | ||
| 572 | - `notify_status` tinyint(4) NOT NULL, | ||
| 573 | - `status` tinyint(4) NOT NULL, | ||
| 574 | - `type` tinyint(4) NOT NULL, | ||
| 575 | - `pay_amount` bigint(20) NOT NULL, | ||
| 576 | - `refund_amount` bigint(20) NOT NULL, | ||
| 577 | - `reason` varchar(256) NOT NULL, | ||
| 578 | - `user_ip` varchar(50) NULL DEFAULT NULL, | ||
| 579 | - `channel_order_no` varchar(64) NOT NULL, | ||
| 580 | - `channel_refund_no` varchar(64) NULL DEFAULT NULL, | ||
| 581 | - `channel_error_code` varchar(128) NULL DEFAULT NULL, | ||
| 582 | - `channel_error_msg` varchar(256) NULL DEFAULT NULL, | ||
| 583 | - `channel_extras` varchar(1024) NULL DEFAULT NULL, | ||
| 584 | - `expire_time` datetime(0) NULL DEFAULT NULL, | ||
| 585 | - `success_time` datetime(0) NULL DEFAULT NULL, | ||
| 586 | - `notify_time` datetime(0) NULL DEFAULT NULL, | ||
| 587 | - `creator` varchar(64) NULL DEFAULT '', | ||
| 588 | - `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 589 | - `updater` varchar(64) NULL DEFAULT '', | ||
| 590 | - `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
| 591 | - `deleted` bit(1) NOT NULL DEFAULT FALSE, | ||
| 592 | - PRIMARY KEY ("id") | ||
| 593 | -) COMMENT = '退款订单'; | ||
| 594 | - | ||
| 595 | -- bpm 开头的 DB | 1 | -- bpm 开头的 DB |
| 596 | 2 | ||
| 597 | CREATE TABLE IF NOT EXISTS "bpm_form" ( | 3 | CREATE TABLE IF NOT EXISTS "bpm_form" ( |
| @@ -608,17 +14,3 @@ CREATE TABLE IF NOT EXISTS "bpm_form" ( | @@ -608,17 +14,3 @@ CREATE TABLE IF NOT EXISTS "bpm_form" ( | ||
| 608 | "deleted" bit NOT NULL DEFAULT FALSE, | 14 | "deleted" bit NOT NULL DEFAULT FALSE, |
| 609 | PRIMARY KEY ("id") | 15 | PRIMARY KEY ("id") |
| 610 | ) COMMENT '动态表单'; | 16 | ) COMMENT '动态表单'; |
| 611 | - | ||
| 612 | -CREATE TABLE IF NOT EXISTS "bpm_user_group" ( | ||
| 613 | - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 614 | - "name" varchar(63) NOT NULL, | ||
| 615 | - "description" varchar(255) NOT NULL, | ||
| 616 | - "status" tinyint NOT NULL, | ||
| 617 | - "member_user_ids" varchar(255) NOT NULL, | ||
| 618 | - "creator" varchar(64) DEFAULT '', | ||
| 619 | - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 620 | - "updater" varchar(64) DEFAULT '', | ||
| 621 | - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 622 | - "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 623 | - PRIMARY KEY ("id") | ||
| 624 | - ) COMMENT '用户组'; |
yudao-module-bpm/yudao-module-bpm-core-service/pom.xml
| @@ -8,7 +8,11 @@ | @@ -8,7 +8,11 @@ | ||
| 8 | <version>${revision}</version> | 8 | <version>${revision}</version> |
| 9 | </parent> | 9 | </parent> |
| 10 | <modelVersion>4.0.0</modelVersion> | 10 | <modelVersion>4.0.0</modelVersion> |
| 11 | - | 11 | + <packaging>pom</packaging> |
| 12 | + <modules> | ||
| 13 | + <module>yudao-module-bpm-core-service-api</module> | ||
| 14 | + <module>yudao-module-bpm-core-service-impl</module> | ||
| 15 | + </modules> | ||
| 12 | <artifactId>yudao-module-bpm-core-service</artifactId> | 16 | <artifactId>yudao-module-bpm-core-service</artifactId> |
| 13 | 17 | ||
| 14 | 18 |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-api/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-core-service</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-core-service-api</artifactId> | ||
| 13 | + | ||
| 14 | + <dependencies> | ||
| 15 | + <dependency> | ||
| 16 | + <groupId>org.projectlombok</groupId> | ||
| 17 | + <artifactId>lombok</artifactId> | ||
| 18 | + </dependency> | ||
| 19 | + </dependencies> | ||
| 20 | +</project> | ||
| 0 | \ No newline at end of file | 21 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-api/src/main/java/cn/iocoder/yudao/coreservice/modules/bpm/api/group/BpmUserGroupServiceApi.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.bpm.api.group; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO; | ||
| 4 | + | ||
| 5 | +import java.util.Collection; | ||
| 6 | +import java.util.List; | ||
| 7 | +import java.util.Set; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * Bpm 用户组 API 接口 | ||
| 11 | + * | ||
| 12 | + * @author jason | ||
| 13 | + */ | ||
| 14 | +public interface BpmUserGroupServiceApi { | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 获得用户组列表 | ||
| 18 | + * | ||
| 19 | + * @param ids 编号 | ||
| 20 | + * @return 用户组列表 | ||
| 21 | + */ | ||
| 22 | + List<BpmUserGroupDTO> getUserGroupList(Collection<Long> ids); | ||
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * 校验用户组们是否有效。如下情况,视为无效: | ||
| 26 | + * 1. 用户组编号不存在 | ||
| 27 | + * 2. 用户组被禁用 | ||
| 28 | + * | ||
| 29 | + * @param ids 用户组编号数组 | ||
| 30 | + */ | ||
| 31 | + void validUserGroups(Set<Long> ids); | ||
| 32 | +} |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-api/src/main/java/cn/iocoder/yudao/coreservice/modules/bpm/api/group/dto/BpmUserGroupDTO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | + | ||
| 5 | +import java.util.Set; | ||
| 6 | +/** | ||
| 7 | + * Bpm 用户组 DTO | ||
| 8 | + * | ||
| 9 | + * @author jason | ||
| 10 | + */ | ||
| 11 | +@Data | ||
| 12 | +public class BpmUserGroupDTO { | ||
| 13 | + /** | ||
| 14 | + * 成员用户编号数组 | ||
| 15 | + */ | ||
| 16 | + private Set<Long> memberUserIds; | ||
| 17 | +} |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/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-core-service</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-core-service-impl</artifactId> | ||
| 13 | + <dependencies> | ||
| 14 | + <dependency> | ||
| 15 | + <groupId>cn.iocoder.boot</groupId> | ||
| 16 | + <artifactId>yudao-spring-boot-starter-web</artifactId> | ||
| 17 | + </dependency> | ||
| 18 | + <dependency> | ||
| 19 | + <groupId>cn.iocoder.boot</groupId> | ||
| 20 | + <artifactId>yudao-spring-boot-starter-security</artifactId> | ||
| 21 | + </dependency> | ||
| 22 | + <dependency> | ||
| 23 | + <groupId>cn.iocoder.boot</groupId> | ||
| 24 | + <artifactId>yudao-spring-boot-starter-mybatis</artifactId> | ||
| 25 | + </dependency> | ||
| 26 | + <dependency> | ||
| 27 | + <groupId>cn.iocoder.boot</groupId> | ||
| 28 | + <artifactId>yudao-module-bpm-core-service-api</artifactId> | ||
| 29 | + </dependency> | ||
| 30 | + <dependency> | ||
| 31 | + <groupId>cn.iocoder.boot</groupId> | ||
| 32 | + <artifactId>yudao-spring-boot-starter-test</artifactId> | ||
| 33 | + </dependency> | ||
| 34 | + </dependencies> | ||
| 35 | +</project> | ||
| 0 | \ No newline at end of file | 36 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/api/BpmUserGroupServiceApiImpl.java
0 → 100644
| 1 | +package cn.iocoder.yudao.adminserver.modules.bpm.api; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmUserGroupConvert; | ||
| 5 | +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO; | ||
| 6 | +import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper; | ||
| 7 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; | ||
| 8 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO; | ||
| 9 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 10 | +import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; | ||
| 11 | +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||
| 12 | +import org.springframework.stereotype.Service; | ||
| 13 | + | ||
| 14 | +import javax.annotation.Resource; | ||
| 15 | +import java.util.Collection; | ||
| 16 | +import java.util.List; | ||
| 17 | +import java.util.Map; | ||
| 18 | +import java.util.Set; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_IS_DISABLE; | ||
| 21 | +import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS; | ||
| 22 | +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 23 | + | ||
| 24 | +/** | ||
| 25 | + * Bpm 用户组 API 接口 实现类 | ||
| 26 | + * | ||
| 27 | + * @author jason | ||
| 28 | + */ | ||
| 29 | +@Service | ||
| 30 | +public class BpmUserGroupServiceApiImpl implements BpmUserGroupServiceApi { | ||
| 31 | + | ||
| 32 | + @Resource | ||
| 33 | + private BpmUserGroupMapper userGroupMapper; | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public List<BpmUserGroupDTO> getUserGroupList(Collection<Long> ids) { | ||
| 37 | + return BpmUserGroupConvert.INSTANCE.convertList3(userGroupMapper.selectBatchIds(ids)); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + | ||
| 41 | + @Override | ||
| 42 | + public void validUserGroups(Set<Long> ids) { | ||
| 43 | + | ||
| 44 | + if (CollUtil.isEmpty(ids)) { | ||
| 45 | + return; | ||
| 46 | + } | ||
| 47 | + // 获得用户组信息 | ||
| 48 | + List<BpmUserGroupDO> userGroups = userGroupMapper.selectBatchIds(ids); | ||
| 49 | + Map<Long, BpmUserGroupDO> userGroupMap = CollectionUtils.convertMap(userGroups, BpmUserGroupDO::getId); | ||
| 50 | + // 校验 | ||
| 51 | + ids.forEach(id -> { | ||
| 52 | + BpmUserGroupDO userGroup = userGroupMap.get(id); | ||
| 53 | + if (userGroup == null) { | ||
| 54 | + throw ServiceExceptionUtil.exception(USER_GROUP_NOT_EXISTS); | ||
| 55 | + } | ||
| 56 | + if (!CommonStatusEnum.ENABLE.getStatus().equals(userGroup.getStatus())) { | ||
| 57 | + throw exception(USER_GROUP_IS_DISABLE, userGroup.getName()); | ||
| 58 | + } | ||
| 59 | + }); | ||
| 60 | + } | ||
| 61 | +} |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group; |
| 2 | 2 | ||
| 3 | -import lombok.*; | ||
| 4 | -import java.util.*; | ||
| 5 | -import io.swagger.annotations.*; | ||
| 6 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | +import cn.iocoder.yudao.framework.common.util.date.DateUtils; | ||
| 5 | +import io.swagger.annotations.ApiModel; | ||
| 6 | +import io.swagger.annotations.ApiModelProperty; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.EqualsAndHashCode; | ||
| 9 | +import lombok.ToString; | ||
| 7 | import org.springframework.format.annotation.DateTimeFormat; | 10 | import org.springframework.format.annotation.DateTimeFormat; |
| 8 | 11 | ||
| 9 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | 12 | +import java.util.Date; |
| 10 | 13 | ||
| 11 | @ApiModel("用户组分页 Request VO") | 14 | @ApiModel("用户组分页 Request VO") |
| 12 | @Data | 15 | @Data |
| @@ -20,11 +23,11 @@ public class BpmUserGroupPageReqVO extends PageParam { | @@ -20,11 +23,11 @@ public class BpmUserGroupPageReqVO extends PageParam { | ||
| 20 | @ApiModelProperty(value = "状态", example = "1") | 23 | @ApiModelProperty(value = "状态", example = "1") |
| 21 | private Integer status; | 24 | private Integer status; |
| 22 | 25 | ||
| 23 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | 26 | + @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 24 | @ApiModelProperty(value = "开始创建时间") | 27 | @ApiModelProperty(value = "开始创建时间") |
| 25 | private Date beginCreateTime; | 28 | private Date beginCreateTime; |
| 26 | 29 | ||
| 27 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | 30 | + @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 28 | @ApiModelProperty(value = "结束创建时间") | 31 | @ApiModelProperty(value = "结束创建时间") |
| 29 | private Date endCreateTime; | 32 | private Date endCreateTime; |
| 30 | 33 |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupSimpleRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupSimpleRespVO.java
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java
| @@ -6,6 +6,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.B | @@ -6,6 +6,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.B | ||
| 6 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupRespVO; | 6 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupRespVO; |
| 7 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO; | 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; | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO; |
| 9 | +import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO; | ||
| 9 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 10 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 10 | 11 | ||
| 11 | import org.mapstruct.Mapper; | 12 | import org.mapstruct.Mapper; |
| @@ -34,4 +35,6 @@ public interface BpmUserGroupConvert { | @@ -34,4 +35,6 @@ public interface BpmUserGroupConvert { | ||
| 34 | 35 | ||
| 35 | @Named("convertList2") | 36 | @Named("convertList2") |
| 36 | List<BpmUserGroupRespVO> convertList2(List<BpmUserGroupDO> list); | 37 | List<BpmUserGroupRespVO> convertList2(List<BpmUserGroupDO> list); |
| 38 | + | ||
| 39 | + List<BpmUserGroupDTO> convertList3(List<BpmUserGroupDO> list); | ||
| 37 | } | 40 | } |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmUserGroupDO.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmUserGroupDO.java
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmUserGroupMapper.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmUserGroupMapper.java
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java
0 → 100644
| 1 | +package cn.iocoder.yudao.adminserver.modules.bpm.enums; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.exception.ErrorCode; | ||
| 4 | + | ||
| 5 | +public interface BpmErrorCodeConstants { | ||
| 6 | + // ========== 用户组模块 1-009-011-000 ========== | ||
| 7 | + ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1009011000, "用户组不存在"); | ||
| 8 | + ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1009011001, "名字为【{}】的用户组已被禁用"); | ||
| 9 | + | ||
| 10 | +} |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupService.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupService.java
| @@ -47,14 +47,6 @@ public interface BpmUserGroupService { | @@ -47,14 +47,6 @@ public interface BpmUserGroupService { | ||
| 47 | BpmUserGroupDO getUserGroup(Long id); | 47 | BpmUserGroupDO getUserGroup(Long id); |
| 48 | 48 | ||
| 49 | /** | 49 | /** |
| 50 | - * 获得用户组列表 | ||
| 51 | - * | ||
| 52 | - * @param ids 编号 | ||
| 53 | - * @return 用户组列表 | ||
| 54 | - */ | ||
| 55 | - List<BpmUserGroupDO> getUserGroupList(Collection<Long> ids); | ||
| 56 | - | ||
| 57 | - /** | ||
| 58 | * 获得指定状态的用户组列表 | 50 | * 获得指定状态的用户组列表 |
| 59 | * | 51 | * |
| 60 | * @param status 状态 | 52 | * @param status 状态 |
| @@ -69,14 +61,4 @@ public interface BpmUserGroupService { | @@ -69,14 +61,4 @@ public interface BpmUserGroupService { | ||
| 69 | * @return 用户组分页 | 61 | * @return 用户组分页 |
| 70 | */ | 62 | */ |
| 71 | PageResult<BpmUserGroupDO> getUserGroupPage(BpmUserGroupPageReqVO pageReqVO); | 63 | PageResult<BpmUserGroupDO> getUserGroupPage(BpmUserGroupPageReqVO pageReqVO); |
| 72 | - | ||
| 73 | - /** | ||
| 74 | - * 校验用户组们是否有效。如下情况,视为无效: | ||
| 75 | - * 1. 用户组编号不存在 | ||
| 76 | - * 2. 用户组被禁用 | ||
| 77 | - * | ||
| 78 | - * @param ids 用户组编号数组 | ||
| 79 | - */ | ||
| 80 | - void validUserGroups(Set<Long> ids); | ||
| 81 | - | ||
| 82 | } | 64 | } |
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java
| @@ -9,6 +9,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUse | @@ -9,6 +9,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUse | ||
| 9 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper; | 9 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper; |
| 10 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService; | 10 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService; |
| 11 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 11 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 12 | +import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; | ||
| 12 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 13 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 13 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | 14 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 14 | import org.springframework.stereotype.Service; | 15 | import org.springframework.stereotype.Service; |
| @@ -64,7 +65,7 @@ public class BpmUserGroupServiceImpl implements BpmUserGroupService { | @@ -64,7 +65,7 @@ public class BpmUserGroupServiceImpl implements BpmUserGroupService { | ||
| 64 | 65 | ||
| 65 | private void validateUserGroupExists(Long id) { | 66 | private void validateUserGroupExists(Long id) { |
| 66 | if (userGroupMapper.selectById(id) == null) { | 67 | if (userGroupMapper.selectById(id) == null) { |
| 67 | - throw exception(USER_GROUP_NOT_EXISTS); | 68 | + throw ServiceExceptionUtil.exception(USER_GROUP_NOT_EXISTS); |
| 68 | } | 69 | } |
| 69 | } | 70 | } |
| 70 | 71 | ||
| @@ -73,10 +74,6 @@ public class BpmUserGroupServiceImpl implements BpmUserGroupService { | @@ -73,10 +74,6 @@ public class BpmUserGroupServiceImpl implements BpmUserGroupService { | ||
| 73 | return userGroupMapper.selectById(id); | 74 | return userGroupMapper.selectById(id); |
| 74 | } | 75 | } |
| 75 | 76 | ||
| 76 | - @Override | ||
| 77 | - public List<BpmUserGroupDO> getUserGroupList(Collection<Long> ids) { | ||
| 78 | - return userGroupMapper.selectBatchIds(ids); | ||
| 79 | - } | ||
| 80 | 77 | ||
| 81 | @Override | 78 | @Override |
| 82 | public List<BpmUserGroupDO> getUserGroupListByStatus(Integer status) { | 79 | public List<BpmUserGroupDO> getUserGroupListByStatus(Integer status) { |
| @@ -88,24 +85,4 @@ public class BpmUserGroupServiceImpl implements BpmUserGroupService { | @@ -88,24 +85,4 @@ public class BpmUserGroupServiceImpl implements BpmUserGroupService { | ||
| 88 | return userGroupMapper.selectPage(pageReqVO); | 85 | return userGroupMapper.selectPage(pageReqVO); |
| 89 | } | 86 | } |
| 90 | 87 | ||
| 91 | - @Override | ||
| 92 | - public void validUserGroups(Set<Long> ids) { | ||
| 93 | - if (CollUtil.isEmpty(ids)) { | ||
| 94 | - return; | ||
| 95 | - } | ||
| 96 | - // 获得用户组信息 | ||
| 97 | - List<BpmUserGroupDO> userGroups = userGroupMapper.selectBatchIds(ids); | ||
| 98 | - Map<Long, BpmUserGroupDO> userGroupMap = CollectionUtils.convertMap(userGroups, BpmUserGroupDO::getId); | ||
| 99 | - // 校验 | ||
| 100 | - ids.forEach(id -> { | ||
| 101 | - BpmUserGroupDO userGroup = userGroupMap.get(id); | ||
| 102 | - if (userGroup == null) { | ||
| 103 | - throw exception(USER_GROUP_NOT_EXISTS); | ||
| 104 | - } | ||
| 105 | - if (!CommonStatusEnum.ENABLE.getStatus().equals(userGroup.getStatus())) { | ||
| 106 | - throw exception(USER_GROUP_IS_DISABLE, userGroup.getName()); | ||
| 107 | - } | ||
| 108 | - }); | ||
| 109 | - } | ||
| 110 | - | ||
| 111 | } | 88 | } |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/java/cn/iocoder/yudao/adminserver/BaseDbUnitTest.java
0 → 100644
| 1 | +package cn.iocoder.yudao.adminserver; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; | ||
| 5 | +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; | ||
| 6 | +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; | ||
| 7 | +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; | ||
| 8 | +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; | ||
| 9 | +import org.springframework.boot.test.context.SpringBootTest; | ||
| 10 | +import org.springframework.context.annotation.Import; | ||
| 11 | +import org.springframework.test.context.ActiveProfiles; | ||
| 12 | +import org.springframework.test.context.jdbc.Sql; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * 依赖内存 DB 的单元测试 | ||
| 16 | + * | ||
| 17 | + * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法 | ||
| 18 | + * | ||
| 19 | + * @author 芋道源码 | ||
| 20 | + */ | ||
| 21 | +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class) | ||
| 22 | +@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 | ||
| 23 | +@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB | ||
| 24 | +public class BaseDbUnitTest { | ||
| 25 | + | ||
| 26 | + @Import({ | ||
| 27 | + // DB 配置类 | ||
| 28 | + YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 | ||
| 29 | + DataSourceAutoConfiguration.class, // Spring DB 自动配置类 | ||
| 30 | + DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 | ||
| 31 | + DruidDataSourceAutoConfigure.class, // Druid 自动配置类 | ||
| 32 | + // MyBatis 配置类 | ||
| 33 | + YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 | ||
| 34 | + MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 | ||
| 35 | + }) | ||
| 36 | + public static class Application { | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | +} |
yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java renamed to yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.definition; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.definition; |
| 2 | 2 | ||
| 3 | -import cn.hutool.core.date.DateUtil; | ||
| 4 | import cn.iocoder.yudao.adminserver.BaseDbUnitTest; | 3 | import cn.iocoder.yudao.adminserver.BaseDbUnitTest; |
| 5 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO; | 4 | 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; | 5 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO; |
| @@ -11,6 +10,9 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl.BpmUserG | @@ -11,6 +10,9 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl.BpmUserG | ||
| 11 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 10 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 12 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 11 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 13 | import cn.iocoder.yudao.framework.common.util.date.DateUtils; | 12 | import cn.iocoder.yudao.framework.common.util.date.DateUtils; |
| 13 | +import cn.iocoder.yudao.framework.test.core.util.AssertUtils; | ||
| 14 | +import cn.iocoder.yudao.framework.test.core.util.RandomUtils; | ||
| 15 | +import org.junit.jupiter.api.Assertions; | ||
| 14 | import org.junit.jupiter.api.Test; | 16 | import org.junit.jupiter.api.Test; |
| 15 | import org.springframework.context.annotation.Import; | 17 | import org.springframework.context.annotation.Import; |
| 16 | 18 | ||
| @@ -18,11 +20,6 @@ import javax.annotation.Resource; | @@ -18,11 +20,6 @@ import javax.annotation.Resource; | ||
| 18 | 20 | ||
| 19 | import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS; | 21 | 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; | 22 | 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 | 23 | ||
| 27 | /** | 24 | /** |
| 28 | * {@link BpmUserGroupServiceImpl} 的单元测试类 | 25 | * {@link BpmUserGroupServiceImpl} 的单元测试类 |
| @@ -41,24 +38,24 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { | @@ -41,24 +38,24 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { | ||
| 41 | @Test | 38 | @Test |
| 42 | public void testCreateUserGroup_success() { | 39 | public void testCreateUserGroup_success() { |
| 43 | // 准备参数 | 40 | // 准备参数 |
| 44 | - BpmUserGroupCreateReqVO reqVO = randomPojo(BpmUserGroupCreateReqVO.class); | 41 | + BpmUserGroupCreateReqVO reqVO = RandomUtils.randomPojo(BpmUserGroupCreateReqVO.class); |
| 45 | 42 | ||
| 46 | // 调用 | 43 | // 调用 |
| 47 | Long userGroupId = userGroupService.createUserGroup(reqVO); | 44 | Long userGroupId = userGroupService.createUserGroup(reqVO); |
| 48 | // 断言 | 45 | // 断言 |
| 49 | - assertNotNull(userGroupId); | 46 | + Assertions.assertNotNull(userGroupId); |
| 50 | // 校验记录的属性是否正确 | 47 | // 校验记录的属性是否正确 |
| 51 | BpmUserGroupDO userGroup = userGroupMapper.selectById(userGroupId); | 48 | BpmUserGroupDO userGroup = userGroupMapper.selectById(userGroupId); |
| 52 | - assertPojoEquals(reqVO, userGroup); | 49 | + AssertUtils.assertPojoEquals(reqVO, userGroup); |
| 53 | } | 50 | } |
| 54 | 51 | ||
| 55 | @Test | 52 | @Test |
| 56 | public void testUpdateUserGroup_success() { | 53 | public void testUpdateUserGroup_success() { |
| 57 | // mock 数据 | 54 | // mock 数据 |
| 58 | - BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class); | 55 | + BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class); |
| 59 | userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据 | 56 | userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据 |
| 60 | // 准备参数 | 57 | // 准备参数 |
| 61 | - BpmUserGroupUpdateReqVO reqVO = randomPojo(BpmUserGroupUpdateReqVO.class, o -> { | 58 | + BpmUserGroupUpdateReqVO reqVO = RandomUtils.randomPojo(BpmUserGroupUpdateReqVO.class, o -> { |
| 62 | o.setId(dbUserGroup.getId()); // 设置更新的 ID | 59 | o.setId(dbUserGroup.getId()); // 设置更新的 ID |
| 63 | }); | 60 | }); |
| 64 | 61 | ||
| @@ -66,22 +63,22 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { | @@ -66,22 +63,22 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { | ||
| 66 | userGroupService.updateUserGroup(reqVO); | 63 | userGroupService.updateUserGroup(reqVO); |
| 67 | // 校验是否更新正确 | 64 | // 校验是否更新正确 |
| 68 | BpmUserGroupDO userGroup = userGroupMapper.selectById(reqVO.getId()); // 获取最新的 | 65 | BpmUserGroupDO userGroup = userGroupMapper.selectById(reqVO.getId()); // 获取最新的 |
| 69 | - assertPojoEquals(reqVO, userGroup); | 66 | + AssertUtils.assertPojoEquals(reqVO, userGroup); |
| 70 | } | 67 | } |
| 71 | 68 | ||
| 72 | @Test | 69 | @Test |
| 73 | public void testUpdateUserGroup_notExists() { | 70 | public void testUpdateUserGroup_notExists() { |
| 74 | // 准备参数 | 71 | // 准备参数 |
| 75 | - BpmUserGroupUpdateReqVO reqVO = randomPojo(BpmUserGroupUpdateReqVO.class); | 72 | + BpmUserGroupUpdateReqVO reqVO = RandomUtils.randomPojo(BpmUserGroupUpdateReqVO.class); |
| 76 | 73 | ||
| 77 | // 调用, 并断言异常 | 74 | // 调用, 并断言异常 |
| 78 | - assertServiceException(() -> userGroupService.updateUserGroup(reqVO), USER_GROUP_NOT_EXISTS); | 75 | + AssertUtils.assertServiceException(() -> userGroupService.updateUserGroup(reqVO), USER_GROUP_NOT_EXISTS); |
| 79 | } | 76 | } |
| 80 | 77 | ||
| 81 | @Test | 78 | @Test |
| 82 | public void testDeleteUserGroup_success() { | 79 | public void testDeleteUserGroup_success() { |
| 83 | // mock 数据 | 80 | // mock 数据 |
| 84 | - BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class); | 81 | + BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class); |
| 85 | userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据 | 82 | userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据 |
| 86 | // 准备参数 | 83 | // 准备参数 |
| 87 | Long id = dbUserGroup.getId(); | 84 | Long id = dbUserGroup.getId(); |
| @@ -89,22 +86,22 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { | @@ -89,22 +86,22 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { | ||
| 89 | // 调用 | 86 | // 调用 |
| 90 | userGroupService.deleteUserGroup(id); | 87 | userGroupService.deleteUserGroup(id); |
| 91 | // 校验数据不存在了 | 88 | // 校验数据不存在了 |
| 92 | - assertNull(userGroupMapper.selectById(id)); | 89 | + Assertions.assertNull(userGroupMapper.selectById(id)); |
| 93 | } | 90 | } |
| 94 | 91 | ||
| 95 | @Test | 92 | @Test |
| 96 | public void testDeleteUserGroup_notExists() { | 93 | public void testDeleteUserGroup_notExists() { |
| 97 | // 准备参数 | 94 | // 准备参数 |
| 98 | - Long id = randomLongId(); | 95 | + Long id = RandomUtils.randomLongId(); |
| 99 | 96 | ||
| 100 | // 调用, 并断言异常 | 97 | // 调用, 并断言异常 |
| 101 | - assertServiceException(() -> userGroupService.deleteUserGroup(id), USER_GROUP_NOT_EXISTS); | 98 | + AssertUtils.assertServiceException(() -> userGroupService.deleteUserGroup(id), USER_GROUP_NOT_EXISTS); |
| 102 | } | 99 | } |
| 103 | 100 | ||
| 104 | @Test | 101 | @Test |
| 105 | public void testGetUserGroupPage() { | 102 | public void testGetUserGroupPage() { |
| 106 | // mock 数据 | 103 | // mock 数据 |
| 107 | - BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到 | 104 | + BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到 |
| 108 | o.setName("芋道源码"); | 105 | o.setName("芋道源码"); |
| 109 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | 106 | o.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 110 | o.setCreateTime(DateUtils.buildTime(2021, 11, 11)); | 107 | o.setCreateTime(DateUtils.buildTime(2021, 11, 11)); |
| @@ -126,9 +123,9 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { | @@ -126,9 +123,9 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { | ||
| 126 | // 调用 | 123 | // 调用 |
| 127 | PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(reqVO); | 124 | PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(reqVO); |
| 128 | // 断言 | 125 | // 断言 |
| 129 | - assertEquals(1, pageResult.getTotal()); | ||
| 130 | - assertEquals(1, pageResult.getList().size()); | ||
| 131 | - assertPojoEquals(dbUserGroup, pageResult.getList().get(0)); | 126 | + Assertions.assertEquals(1, pageResult.getTotal()); |
| 127 | + Assertions.assertEquals(1, pageResult.getList().size()); | ||
| 128 | + AssertUtils.assertPojoEquals(dbUserGroup, pageResult.getList().get(0)); | ||
| 132 | } | 129 | } |
| 133 | 130 | ||
| 134 | } | 131 | } |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application-unit-test.yaml
0 → 100644
| 1 | +spring: | ||
| 2 | + main: | ||
| 3 | + lazy-initialization: true # 开启懒加载,加快速度 | ||
| 4 | + banner-mode: off # 单元测试,禁用 Banner | ||
| 5 | + | ||
| 6 | +--- #################### 数据库相关配置 #################### | ||
| 7 | + | ||
| 8 | +spring: | ||
| 9 | + # 数据源配置项 | ||
| 10 | + datasource: | ||
| 11 | + name: ruoyi-vue-pro | ||
| 12 | + url: jdbc:h2:mem:testdb;MODE=MYSQL;DATABASE_TO_UPPER=false; # MODE 使用 MySQL 模式;DATABASE_TO_UPPER 配置表和字段使用小写 | ||
| 13 | + driver-class-name: org.h2.Driver | ||
| 14 | + username: sa | ||
| 15 | + password: | ||
| 16 | + schema: classpath:sql/create_tables.sql # MySQL 转 H2 的语句,使用 https://www.jooq.org/translate/ 工具 | ||
| 17 | + druid: | ||
| 18 | + async-init: true # 单元测试,异步初始化 Druid 连接池,提升启动速度 | ||
| 19 | + initial-size: 1 # 单元测试,配置为 1,提升启动速度 | ||
| 20 | + | ||
| 21 | +mybatis: | ||
| 22 | + lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试 | ||
| 23 | + | ||
| 24 | +--- #################### 定时任务相关配置 #################### | ||
| 25 | + | ||
| 26 | +--- #################### 配置中心相关配置 #################### | ||
| 27 | + | ||
| 28 | +--- #################### 服务保障相关配置 #################### | ||
| 29 | + | ||
| 30 | +# Lock4j 配置项(单元测试,禁用 Lock4j) | ||
| 31 | + | ||
| 32 | +# Resilience4j 配置项 | ||
| 33 | + | ||
| 34 | +--- #################### 监控相关配置 #################### | ||
| 35 | + | ||
| 36 | +--- #################### 芋道相关配置 #################### | ||
| 37 | + | ||
| 38 | +# 芋道配置项,设置当前项目所有自定义的配置 |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application.yaml
0 → 100644
| 1 | +spring: | ||
| 2 | + application: | ||
| 3 | + name: yudao-module-bpm-service | ||
| 4 | + | ||
| 5 | + # Jackson 配置项 | ||
| 6 | + jackson: | ||
| 7 | + serialization: | ||
| 8 | + write-dates-as-timestamps: true # 设置 Date 的格式,使用时间戳 | ||
| 9 | + write-date-timestamps-as-nanoseconds: false # 设置不使用 nanoseconds 的格式。例如说 1611460870.401,而是直接 1611460870401 | ||
| 10 | + write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳 | ||
| 11 | + fail-on-empty-beans: false # 允许序列化无属性的 Bean | ||
| 12 | + | ||
| 13 | +# MyBatis Plus 的配置项 | ||
| 14 | +mybatis-plus: | ||
| 15 | + configuration: | ||
| 16 | + map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 | ||
| 17 | + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印日志 | ||
| 18 | + global-config: | ||
| 19 | + db-config: | ||
| 20 | + id-type: AUTO # 自增 ID | ||
| 21 | + logic-delete-value: 1 # 逻辑已删除值(默认为 1) | ||
| 22 | + logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) | ||
| 23 | + mapper-locations: classpath*:mapper/*.xml | ||
| 24 | + type-aliases-package: ${yudao.core-service.base-package}.modules.*.dal.dataobject | ||
| 25 | + | ||
| 26 | +--- #################### 芋道相关配置 #################### | ||
| 27 | + | ||
| 28 | +yudao: | ||
| 29 | + info: | ||
| 30 | + version: 1.0.0 | ||
| 31 | + base-package: cn.iocoder.yudao.adminserver | ||
| 32 | + core-service: | ||
| 33 | + base-package: cn.iocoder.yudao.coreservice | ||
| 34 | + | ||
| 35 | +debug: false |
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/logback-spring.xml
0 → 100644
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/clean.sql
0 → 100644
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/create_tables.sql
0 → 100644
| 1 | +-- bpm 开头的 DB | ||
| 2 | +CREATE TABLE IF NOT EXISTS "bpm_user_group" ( | ||
| 3 | + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 4 | + "name" varchar(63) NOT NULL, | ||
| 5 | + "description" varchar(255) NOT NULL, | ||
| 6 | + "status" tinyint NOT NULL, | ||
| 7 | + "member_user_ids" varchar(255) NOT NULL, | ||
| 8 | + "creator" varchar(64) DEFAULT '', | ||
| 9 | + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 10 | + "updater" varchar(64) DEFAULT '', | ||
| 11 | + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 12 | + "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 13 | + PRIMARY KEY ("id") | ||
| 14 | + ) COMMENT '用户组'; |