From afa0d623dba39989d66e03dbc1e7359076583fd5 Mon Sep 17 00:00:00 2001
From: jason <2667446@qq.com>
Date: Thu, 27 Jan 2022 22:08:34 +0800
Subject: [PATCH] 增加 bpm-core-service 多模块
---
pom.xml | 22 ++++++++++++++++++++++
yudao-admin-server/pom.xml | 5 ++++-
yudao-dependencies/pom.xml | 7 ++++++-
yudao-module-bpm/yudao-module-bpm-activiti/pom.xml | 5 ++++-
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java | 85 -------------------------------------------------------------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java | 31 -------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java | 14 --------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java | 31 -------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java | 19 -------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupSimpleRespVO.java | 21 ---------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java | 18 ------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java | 37 -------------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmUserGroupDO.java | 52 ----------------------------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmUserGroupMapper.java | 32 --------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java | 4 ----
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java | 7 +++----
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java | 6 +++---
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehavior.java | 10 +++++-----
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupService.java | 82 ----------------------------------------------------------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmTaskAssignRuleServiceImpl.java | 9 +++------
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java | 111 ---------------------------------------------------------------------------------------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehaviorTest.java | 12 ++++++------
yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java | 134 --------------------------------------------------------------------------------------------------------------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/clean.sql | 36 ------------------------------------
yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/create_tables.sql | 608 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yudao-module-bpm/yudao-module-bpm-core-service/pom.xml | 6 +++++-
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-api/pom.xml | 20 ++++++++++++++++++++
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 | 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 | 17 +++++++++++++++++
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/pom.xml | 35 +++++++++++++++++++++++++++++++++++
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 | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 | 31 +++++++++++++++++++++++++++++++
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 | 14 ++++++++++++++
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 | 34 ++++++++++++++++++++++++++++++++++
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 | 19 +++++++++++++++++++
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 | 21 +++++++++++++++++++++
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 | 18 ++++++++++++++++++
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 | 40 ++++++++++++++++++++++++++++++++++++++++
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 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
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 | 32 ++++++++++++++++++++++++++++++++
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 | 10 ++++++++++
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 | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/java/cn/iocoder/yudao/adminserver/BaseDbUnitTest.java | 39 +++++++++++++++++++++++++++++++++++++++
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 | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application-unit-test.yaml | 38 ++++++++++++++++++++++++++++++++++++++
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application.yaml | 35 +++++++++++++++++++++++++++++++++++
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/logback-spring.xml | 4 ++++
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/clean.sql | 2 ++
yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/create_tables.sql | 14 ++++++++++++++
51 files changed, 997 insertions(+), 1343 deletions(-)
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupSimpleRespVO.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmUserGroupDO.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmUserGroupMapper.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupService.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java
delete mode 100644 yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java
create mode 100644 yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-api/pom.xml
create mode 100644 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
create mode 100644 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
create mode 100644 yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/pom.xml
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 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
create mode 100644 yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/java/cn/iocoder/yudao/adminserver/BaseDbUnitTest.java
create mode 100644 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
create mode 100644 yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application-unit-test.yaml
create mode 100644 yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application.yaml
create mode 100644 yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/logback-spring.xml
create mode 100644 yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/clean.sql
create mode 100644 yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/create_tables.sql
diff --git a/pom.xml b/pom.xml
index 4b7c953..61e1b33 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,6 +27,9 @@
${java.version}
${java.version}
3.0.0-M5
+ 3.8.0
+ 1.18.20
+ 1.4.1.Final
UTF-8
@@ -52,6 +55,25 @@
maven-surefire-plugin
${maven-surefire-plugin.version}
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+ org.mapstruct
+ mapstruct-processor
+ ${mapstruct.version}
+
+
+
+
diff --git a/yudao-admin-server/pom.xml b/yudao-admin-server/pom.xml
index 3553b38..be72f79 100644
--- a/yudao-admin-server/pom.xml
+++ b/yudao-admin-server/pom.xml
@@ -49,7 +49,10 @@
cn.iocoder.boot
yudao-module-bpm-activiti
-
+
+ cn.iocoder.boot
+ yudao-module-bpm-core-service-impl
+
cn.iocoder.boot
diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml
index 7aa4096..512fefd 100644
--- a/yudao-dependencies/pom.xml
+++ b/yudao-dependencies/pom.xml
@@ -410,7 +410,12 @@
cn.iocoder.boot
- yudao-module-bpm-core-service
+ yudao-module-bpm-core-service-impl
+ ${revision}
+
+
+ cn.iocoder.boot
+ yudao-module-bpm-core-service-api
${revision}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/pom.xml b/yudao-module-bpm/yudao-module-bpm-activiti/pom.xml
index 775bdf6..a131ab0 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/pom.xml
+++ b/yudao-module-bpm/yudao-module-bpm-activiti/pom.xml
@@ -19,6 +19,10 @@
cn.iocoder.boot
yudao-core-service
+
+ cn.iocoder.boot
+ yudao-module-bpm-core-service-api
+
cn.iocoder.boot
@@ -26,5 +30,4 @@
test
-
\ No newline at end of file
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java
deleted file mode 100644
index ea5fafd..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmUserGroupController.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmUserGroupConvert;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
-import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.validation.Valid;
-import java.util.List;
-
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-
-@Api(tags = "用户组")
-@RestController
-@RequestMapping("/bpm/user-group")
-@Validated
-public class BpmUserGroupController {
-
- @Resource
- private BpmUserGroupService userGroupService;
-
- @PostMapping("/create")
- @ApiOperation("创建用户组")
- @PreAuthorize("@ss.hasPermission('bpm:user-group:create')")
- public CommonResult createUserGroup(@Valid @RequestBody BpmUserGroupCreateReqVO createReqVO) {
- return success(userGroupService.createUserGroup(createReqVO));
- }
-
- @PutMapping("/update")
- @ApiOperation("更新用户组")
- @PreAuthorize("@ss.hasPermission('bpm:user-group:update')")
- public CommonResult updateUserGroup(@Valid @RequestBody BpmUserGroupUpdateReqVO updateReqVO) {
- userGroupService.updateUserGroup(updateReqVO);
- return success(true);
- }
-
- @DeleteMapping("/delete")
- @ApiOperation("删除用户组")
- @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
- @PreAuthorize("@ss.hasPermission('bpm:user-group:delete')")
- public CommonResult deleteUserGroup(@RequestParam("id") Long id) {
- userGroupService.deleteUserGroup(id);
- return success(true);
- }
-
- @GetMapping("/get")
- @ApiOperation("获得用户组")
- @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
- @PreAuthorize("@ss.hasPermission('bpm:user-group:query')")
- public CommonResult getUserGroup(@RequestParam("id") Long id) {
- BpmUserGroupDO userGroup = userGroupService.getUserGroup(id);
- return success(BpmUserGroupConvert.INSTANCE.convert(userGroup));
- }
-
- @GetMapping("/page")
- @ApiOperation("获得用户组分页")
- @PreAuthorize("@ss.hasPermission('bpm:user-group:query')")
- public CommonResult> getUserGroupPage(@Valid BpmUserGroupPageReqVO pageVO) {
- PageResult pageResult = userGroupService.getUserGroupPage(pageVO);
- return success(BpmUserGroupConvert.INSTANCE.convertPage(pageResult));
- }
-
- @GetMapping("/list-all-simple")
- @ApiOperation(value = "获取用户组精简信息列表", notes = "只包含被开启的用户组,主要用于前端的下拉选项")
- public CommonResult> getSimpleUserGroups() {
- // 获用户门列表,只要开启状态的
- List list = userGroupService.getUserGroupListByStatus(CommonStatusEnum.ENABLE.getStatus());
- // 排序后,返回给前端
- return success(BpmUserGroupConvert.INSTANCE.convertList2(list));
- }
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java
deleted file mode 100644
index 9914260..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupBaseVO.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
-import javax.validation.constraints.*;
-
-/**
-* 用户组 Base VO,提供给添加、修改、详细的子 VO 使用
-* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
-*/
-@Data
-public class BpmUserGroupBaseVO {
-
- @ApiModelProperty(value = "组名", required = true, example = "芋道")
- @NotNull(message = "组名不能为空")
- private String name;
-
- @ApiModelProperty(value = "描述", required = true, example = "芋道源码")
- @NotNull(message = "描述不能为空")
- private String description;
-
- @ApiModelProperty(value = "成员编号数组", required = true, example = "1,2,3")
- @NotNull(message = "成员编号数组不能为空")
- private Set memberUserIds;
-
- @ApiModelProperty(value = "状态", required = true, example = "1")
- @NotNull(message = "状态不能为空")
- private Integer status;
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java
deleted file mode 100644
index 44114ac..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
-import javax.validation.constraints.*;
-
-@ApiModel("用户组创建 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmUserGroupCreateReqVO extends BpmUserGroupBaseVO {
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java
deleted file mode 100644
index 6a4497a..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel("用户组分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmUserGroupPageReqVO extends PageParam {
-
- @ApiModelProperty(value = "组名", example = "芋道")
- private String name;
-
- @ApiModelProperty(value = "状态", example = "1")
- private Integer status;
-
- @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- @ApiModelProperty(value = "开始创建时间")
- private Date beginCreateTime;
-
- @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- @ApiModelProperty(value = "结束创建时间")
- private Date endCreateTime;
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java
deleted file mode 100644
index 523bb60..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupRespVO.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
-
-@ApiModel("用户组 Response VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmUserGroupRespVO extends BpmUserGroupBaseVO {
-
- @ApiModelProperty(value = "编号", required = true, example = "1024")
- private Long id;
-
- @ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupSimpleRespVO.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupSimpleRespVO.java
deleted file mode 100644
index fb427d0..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupSimpleRespVO.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@ApiModel("用户组精简信息 Response VO")
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-public class BpmUserGroupSimpleRespVO {
-
- @ApiModelProperty(value = "用户组编号", required = true, example = "1024")
- private Long id;
-
- @ApiModelProperty(value = "用户组名字", required = true, example = "芋道")
- private String name;
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java
deleted file mode 100644
index 00a32bd..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
-import javax.validation.constraints.*;
-
-@ApiModel("用户组更新 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmUserGroupUpdateReqVO extends BpmUserGroupBaseVO {
-
- @ApiModelProperty(value = "编号", required = true, example = "1024")
- @NotNull(message = "编号不能为空")
- private Long id;
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java
deleted file mode 100644
index 4e7cd99..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.definition;
-
-import java.util.*;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-
-import org.mapstruct.Mapper;
-import org.mapstruct.Named;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 用户组 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface BpmUserGroupConvert {
-
- BpmUserGroupConvert INSTANCE = Mappers.getMapper(BpmUserGroupConvert.class);
-
- BpmUserGroupDO convert(BpmUserGroupCreateReqVO bean);
-
- BpmUserGroupDO convert(BpmUserGroupUpdateReqVO bean);
-
- BpmUserGroupRespVO convert(BpmUserGroupDO bean);
-
- List convertList(List list);
-
- PageResult convertPage(PageResult page);
-
- @Named("convertList2")
- List convertList2(List list);
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmUserGroupDO.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmUserGroupDO.java
deleted file mode 100644
index d433c65..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmUserGroupDO.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition;
-
-import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.*;
-
-import java.util.Set;
-
-/**
- * Bpm 用户组
- *
- * @author 芋道源码
- */
-@TableName(value = "bpm_user_group", autoResultMap = true)
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class BpmUserGroupDO extends BaseDO {
-
- /**
- * 编号,自增
- */
- @TableId
- private Long id;
- /**
- * 组名
- */
- private String name;
- /**
- * 描述
- */
- private String description;
- /**
- * 状态
- *
- * 枚举 {@link CommonStatusEnum}
- */
- private Integer status;
- /**
- * 成员用户编号数组
- */
- @TableField(typeHandler = JsonLongSetTypeHandler.class)
- private Set memberUserIds;
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmUserGroupMapper.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmUserGroupMapper.java
deleted file mode 100644
index f524fef..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmUserGroupMapper.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * 用户组 Mapper
- *
- * @author 芋道源码
- */
-@Mapper
-public interface BpmUserGroupMapper extends BaseMapperX {
-
- default PageResult selectPage(BpmUserGroupPageReqVO reqVO) {
- return selectPage(reqVO, new LambdaQueryWrapperX()
- .likeIfPresent(BpmUserGroupDO::getName, reqVO.getName())
- .eqIfPresent(BpmUserGroupDO::getStatus, reqVO.getStatus())
- .betweenIfPresent(BpmUserGroupDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
- .orderByDesc(BpmUserGroupDO::getId));
- }
-
- default List selectListByStatus(Integer status) {
- return selectList(BpmUserGroupDO::getStatus, status);
- }
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java
index e2a0ff3..771a04f 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java
+++ b/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 {
ErrorCode FORM_NOT_EXISTS = new ErrorCode(1009010000, "动态表单不存在");
ErrorCode FORM_FIELD_REPEAT = new ErrorCode(1009010000, "表单项({}) 和 ({}) 使用了相同的字段名({})");
- // ========== 用户组模块 1-009-011-000 ==========
- ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1009011000, "用户组不存在");
- ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1009011001, "名字为【{}】的用户组已被禁用");
-
}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java
index 4e0938d..72210a3 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java
+++ b/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
import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.identity.EmptyUserGroupManager;
import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.listener.BpmTackActivitiEventListener;
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService;
import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
-import org.activiti.api.runtime.shared.identity.UserGroupManager;
import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.annotation.Bean;
@@ -60,14 +59,14 @@ public class BpmActivitiConfiguration {
public BpmActivityBehaviorFactory bpmActivityBehaviorFactory(BpmTaskAssignRuleService taskRuleService,
SysPermissionCoreService permissionCoreService,
SysDeptCoreService deptCoreService,
- BpmUserGroupService userGroupService,
+ BpmUserGroupServiceApi userGroupServiceApi,
SysUserCoreService userCoreService,
List scripts) {
BpmActivityBehaviorFactory bpmActivityBehaviorFactory = new BpmActivityBehaviorFactory();
bpmActivityBehaviorFactory.setBpmTaskRuleService(taskRuleService);
bpmActivityBehaviorFactory.setPermissionCoreService(permissionCoreService);
bpmActivityBehaviorFactory.setDeptCoreService(deptCoreService);
- bpmActivityBehaviorFactory.setUserGroupService(userGroupService);
+ bpmActivityBehaviorFactory.setUserGroupServiceApi(userGroupServiceApi);
bpmActivityBehaviorFactory.setUserCoreService(userCoreService);
bpmActivityBehaviorFactory.setScripts(scripts);
return bpmActivityBehaviorFactory;
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java
index 2107fb7..c426a23 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java
+++ b/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
import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService;
import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
@@ -34,7 +34,7 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
@Setter
private SysDeptCoreService deptCoreService;
@Setter
- private BpmUserGroupService userGroupService;
+ private BpmUserGroupServiceApi userGroupServiceApi;
@Setter
private SysUserCoreService userCoreService;
@Setter
@@ -46,7 +46,7 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
userTaskActivityBehavior.setBpmTaskRuleService(bpmTaskRuleService);
userTaskActivityBehavior.setPermissionCoreService(permissionCoreService);
userTaskActivityBehavior.setDeptCoreService(deptCoreService);
- userTaskActivityBehavior.setUserGroupService(userGroupService);
+ userTaskActivityBehavior.setUserGroupServiceApi(userGroupServiceApi);
userTaskActivityBehavior.setSysUserCoreService(userCoreService);
userTaskActivityBehavior.setScripts(scripts);
return userTaskActivityBehavior;
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehavior.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehavior.java
index 69624d7..e2beba8 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehavior.java
+++ b/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;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO;
import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
@@ -30,7 +30,7 @@ import java.util.*;
import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.TASK_ASSIGN_SCRIPT_NOT_EXISTS;
import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.TASK_CREATE_FAIL_NO_CANDIDATE_USER;
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.*;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString;
@@ -53,7 +53,7 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior {
@Setter
private SysDeptCoreService deptCoreService;
@Setter
- private BpmUserGroupService userGroupService;
+ private BpmUserGroupServiceApi userGroupServiceApi;
@Setter
private SysUserCoreService sysUserCoreService;
/**
@@ -156,7 +156,7 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior {
}
private Set calculateTaskCandidateUsersByUserGroup(TaskEntity task, BpmTaskAssignRuleDO rule) {
- List userGroups = userGroupService.getUserGroupList(rule.getOptions());
+ List userGroups = userGroupServiceApi.getUserGroupList(rule.getOptions());
Set userIds = new HashSet<>();
userGroups.forEach(bpmUserGroupDO -> userIds.addAll(bpmUserGroupDO.getMemberUserIds()));
return userIds;
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupService.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupService.java
deleted file mode 100644
index f1fd4de..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupService.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
-
-import java.util.*;
-import javax.validation.*;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-
-/**
- * 用户组 Service 接口
- *
- * @author 芋道源码
- */
-public interface BpmUserGroupService {
-
- /**
- * 创建用户组
- *
- * @param createReqVO 创建信息
- * @return 编号
- */
- Long createUserGroup(@Valid BpmUserGroupCreateReqVO createReqVO);
-
- /**
- * 更新用户组
- *
- * @param updateReqVO 更新信息
- */
- void updateUserGroup(@Valid BpmUserGroupUpdateReqVO updateReqVO);
-
- /**
- * 删除用户组
- *
- * @param id 编号
- */
- void deleteUserGroup(Long id);
-
- /**
- * 获得用户组
- *
- * @param id 编号
- * @return 用户组
- */
- BpmUserGroupDO getUserGroup(Long id);
-
- /**
- * 获得用户组列表
- *
- * @param ids 编号
- * @return 用户组列表
- */
- List getUserGroupList(Collection ids);
-
- /**
- * 获得指定状态的用户组列表
- *
- * @param status 状态
- * @return 用户组列表
- */
- List getUserGroupListByStatus(Integer status);
-
- /**
- * 获得用户组分页
- *
- * @param pageReqVO 分页查询
- * @return 用户组分页
- */
- PageResult getUserGroupPage(BpmUserGroupPageReqVO pageReqVO);
-
- /**
- * 校验用户组们是否有效。如下情况,视为无效:
- * 1. 用户组编号不存在
- * 2. 用户组被禁用
- *
- * @param ids 用户组编号数组
- */
- void validUserGroups(Set ids);
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmTaskAssignRuleServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmTaskAssignRuleServiceImpl.java
index 82afa94..dac572f 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmTaskAssignRuleServiceImpl.java
+++ b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmTaskAssignRuleServiceImpl.java
@@ -1,8 +1,6 @@
package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.ListUtil;
-import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
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
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
-
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;
import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysPostCoreService;
@@ -65,7 +62,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
@Resource
private SysUserCoreService userCoreService;
@Resource
- private BpmUserGroupService userGroupService;
+ private BpmUserGroupServiceApi userGroupServiceApi;
@Resource
private SysDictDataCoreService dictDataCoreService;
@@ -191,7 +188,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
} else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER.getType())) {
userCoreService.validUsers(options);
} else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) {
- userGroupService.validUserGroups(options);
+ userGroupServiceApi.validUserGroups(options);
} else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) {
dictDataCoreService.validDictDatas(SysDictTypeConstants.BPM_TASK_ASSIGN_SCRIPT,
CollectionUtils.convertSet(options, String::valueOf));
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java
deleted file mode 100644
index 8a342b0..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmUserGroupConvert;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
-import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_IS_DISABLE;
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS;
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-
-/**
- * 用户组 Service 实现类
- *
- * @author 芋道源码
- */
-@Service
-@Validated
-public class BpmUserGroupServiceImpl implements BpmUserGroupService {
-
- @Resource
- private BpmUserGroupMapper userGroupMapper;
-
- @Override
- public Long createUserGroup(BpmUserGroupCreateReqVO createReqVO) {
- // 插入
- BpmUserGroupDO userGroup = BpmUserGroupConvert.INSTANCE.convert(createReqVO);
- userGroupMapper.insert(userGroup);
- // 返回
- return userGroup.getId();
- }
-
- @Override
- public void updateUserGroup(BpmUserGroupUpdateReqVO updateReqVO) {
- // 校验存在
- this.validateUserGroupExists(updateReqVO.getId());
- // 更新
- BpmUserGroupDO updateObj = BpmUserGroupConvert.INSTANCE.convert(updateReqVO);
- userGroupMapper.updateById(updateObj);
- }
-
- @Override
- public void deleteUserGroup(Long id) {
- // 校验存在
- this.validateUserGroupExists(id);
- // 删除
- userGroupMapper.deleteById(id);
- }
-
- private void validateUserGroupExists(Long id) {
- if (userGroupMapper.selectById(id) == null) {
- throw exception(USER_GROUP_NOT_EXISTS);
- }
- }
-
- @Override
- public BpmUserGroupDO getUserGroup(Long id) {
- return userGroupMapper.selectById(id);
- }
-
- @Override
- public List getUserGroupList(Collection ids) {
- return userGroupMapper.selectBatchIds(ids);
- }
-
- @Override
- public List getUserGroupListByStatus(Integer status) {
- return userGroupMapper.selectListByStatus(status);
- }
-
- @Override
- public PageResult getUserGroupPage(BpmUserGroupPageReqVO pageReqVO) {
- return userGroupMapper.selectPage(pageReqVO);
- }
-
- @Override
- public void validUserGroups(Set ids) {
- if (CollUtil.isEmpty(ids)) {
- return;
- }
- // 获得用户组信息
- List userGroups = userGroupMapper.selectBatchIds(ids);
- Map userGroupMap = CollectionUtils.convertMap(userGroups, BpmUserGroupDO::getId);
- // 校验
- ids.forEach(id -> {
- BpmUserGroupDO userGroup = userGroupMap.get(id);
- if (userGroup == null) {
- throw exception(USER_GROUP_NOT_EXISTS);
- }
- if (!CommonStatusEnum.ENABLE.getStatus().equals(userGroup.getStatus())) {
- throw exception(USER_GROUP_IS_DISABLE, userGroup.getName());
- }
- });
- }
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehaviorTest.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehaviorTest.java
index 8212b28..b9b9a14 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehaviorTest.java
+++ b/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
import cn.hutool.core.map.MapUtil;
import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleScriptEnum;
import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO;
import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
@@ -44,7 +44,7 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
@Mock
private SysDeptCoreService deptCoreService;
@Mock
- private BpmUserGroupService userGroupService;
+ private BpmUserGroupServiceApi userGroupServiceApi;
@Mock
private SysUserCoreService userCoreService;
@@ -135,9 +135,9 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
BpmTaskAssignRuleDO rule = new BpmTaskAssignRuleDO().setOptions(asSet(1L, 2L))
.setType(BpmTaskAssignRuleTypeEnum.USER_GROUP.getType());
// mock 方法
- BpmUserGroupDO userGroup1 = randomPojo(BpmUserGroupDO.class, o -> o.setMemberUserIds(asSet(11L, 12L)));
- BpmUserGroupDO userGroup2 = randomPojo(BpmUserGroupDO.class, o -> o.setMemberUserIds(asSet(21L, 22L)));
- when(userGroupService.getUserGroupList(eq(rule.getOptions()))).thenReturn(Arrays.asList(userGroup1, userGroup2));
+ BpmUserGroupDTO userGroup1 = randomPojo(BpmUserGroupDTO.class, o -> o.setMemberUserIds(asSet(11L, 12L)));
+ BpmUserGroupDTO userGroup2 = randomPojo(BpmUserGroupDTO.class, o -> o.setMemberUserIds(asSet(21L, 22L)));
+ when(userGroupServiceApi.getUserGroupList(eq(rule.getOptions()))).thenReturn(Arrays.asList(userGroup1, userGroup2));
mockGetUserMap(asSet(11L, 12L, 21L, 22L));
// 调用
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java b/yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java
deleted file mode 100644
index a8704dd..0000000
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
-
-import cn.hutool.core.date.DateUtil;
-import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl.BpmUserGroupServiceImpl;
-import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.date.DateUtils;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.annotation.Import;
-
-import javax.annotation.Resource;
-
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS;
-import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
-import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
-import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
-import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
-import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
-* {@link BpmUserGroupServiceImpl} 的单元测试类
-*
-* @author 芋道源码
-*/
-@Import(BpmUserGroupServiceImpl.class)
-public class BpmUserGroupServiceTest extends BaseDbUnitTest {
-
- @Resource
- private BpmUserGroupServiceImpl userGroupService;
-
- @Resource
- private BpmUserGroupMapper userGroupMapper;
-
- @Test
- public void testCreateUserGroup_success() {
- // 准备参数
- BpmUserGroupCreateReqVO reqVO = randomPojo(BpmUserGroupCreateReqVO.class);
-
- // 调用
- Long userGroupId = userGroupService.createUserGroup(reqVO);
- // 断言
- assertNotNull(userGroupId);
- // 校验记录的属性是否正确
- BpmUserGroupDO userGroup = userGroupMapper.selectById(userGroupId);
- assertPojoEquals(reqVO, userGroup);
- }
-
- @Test
- public void testUpdateUserGroup_success() {
- // mock 数据
- BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class);
- userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据
- // 准备参数
- BpmUserGroupUpdateReqVO reqVO = randomPojo(BpmUserGroupUpdateReqVO.class, o -> {
- o.setId(dbUserGroup.getId()); // 设置更新的 ID
- });
-
- // 调用
- userGroupService.updateUserGroup(reqVO);
- // 校验是否更新正确
- BpmUserGroupDO userGroup = userGroupMapper.selectById(reqVO.getId()); // 获取最新的
- assertPojoEquals(reqVO, userGroup);
- }
-
- @Test
- public void testUpdateUserGroup_notExists() {
- // 准备参数
- BpmUserGroupUpdateReqVO reqVO = randomPojo(BpmUserGroupUpdateReqVO.class);
-
- // 调用, 并断言异常
- assertServiceException(() -> userGroupService.updateUserGroup(reqVO), USER_GROUP_NOT_EXISTS);
- }
-
- @Test
- public void testDeleteUserGroup_success() {
- // mock 数据
- BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class);
- userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据
- // 准备参数
- Long id = dbUserGroup.getId();
-
- // 调用
- userGroupService.deleteUserGroup(id);
- // 校验数据不存在了
- assertNull(userGroupMapper.selectById(id));
- }
-
- @Test
- public void testDeleteUserGroup_notExists() {
- // 准备参数
- Long id = randomLongId();
-
- // 调用, 并断言异常
- assertServiceException(() -> userGroupService.deleteUserGroup(id), USER_GROUP_NOT_EXISTS);
- }
-
- @Test
- public void testGetUserGroupPage() {
- // mock 数据
- BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到
- o.setName("芋道源码");
- o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(DateUtils.buildTime(2021, 11, 11));
- });
- userGroupMapper.insert(dbUserGroup);
- // 测试 name 不匹配
- userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName("芋道")));
- // 测试 status 不匹配
- userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
- // 测试 createTime 不匹配
- userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setCreateTime(DateUtils.buildTime(2021, 12, 12))));
- // 准备参数
- BpmUserGroupPageReqVO reqVO = new BpmUserGroupPageReqVO();
- reqVO.setName("源码");
- reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setBeginCreateTime(DateUtils.buildTime(2021, 11, 10));
- reqVO.setEndCreateTime(DateUtils.buildTime(2021, 11, 12));
-
- // 调用
- PageResult pageResult = userGroupService.getUserGroupPage(reqVO);
- // 断言
- assertEquals(1, pageResult.getTotal());
- assertEquals(1, pageResult.getList().size());
- assertPojoEquals(dbUserGroup, pageResult.getList().get(0));
- }
-
-}
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/clean.sql b/yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/clean.sql
index b565553..c14acfe 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/clean.sql
+++ b/yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/clean.sql
@@ -1,38 +1,2 @@
--- inf 开头的 DB
-DELETE FROM "inf_config";
-DELETE FROM "inf_file";
-DELETE FROM "inf_job";
-DELETE FROM "inf_job_log";
-DELETE FROM "inf_api_access_log";
-DELETE FROM "inf_api_error_log";
-
--- sys 开头的 DB
-DELETE FROM "sys_dept";
-DELETE FROM "sys_dict_data";
-DELETE FROM "sys_role";
-DELETE FROM "sys_role_menu";
-DELETE FROM "sys_menu";
-DELETE FROM "sys_user_role";
-DELETE FROM "sys_dict_type";
-DELETE FROM "sys_user_session";
-DELETE FROM "sys_post";
-DELETE FROM "sys_login_log";
-DELETE FROM "sys_operate_log";
-DELETE FROM "sys_user";
-DELETE FROM "sys_sms_channel";
-DELETE FROM "sys_sms_template";
-DELETE FROM "sys_sms_log";
-DELETE FROM "sys_error_code";
-DELETE FROM "sys_social_user";
-DELETE FROM "sys_tenant";
-
--- pay 开头的 DB
-DELETE FROM pay_merchant;
-DELETE FROM pay_app;
-DELETE FROM pay_channel;
-DELETE FROM pay_order;
-DELETE FROM pay_refund;
-
-- bpm 开头的 DB
DELETE FROM "bpm_form";
-DELETE FROM "bpm_user_group";
diff --git a/yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/create_tables.sql b/yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/create_tables.sql
index 9b2f0d6..8b6433e 100644
--- a/yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/create_tables.sql
+++ b/yudao-module-bpm/yudao-module-bpm-activiti/src/test/resources/sql/create_tables.sql
@@ -1,597 +1,3 @@
--- inf 开头的 DB
-
-CREATE TABLE IF NOT EXISTS "inf_config" (
- "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "group" varchar(50) NOT NULL,
- "type" tinyint NOT NULL,
- "name" varchar(100) NOT NULL DEFAULT '',
- "key" varchar(100) NOT NULL DEFAULT '',
- "value" varchar(500) NOT NULL DEFAULT '',
- "sensitive" bit NOT NULL,
- "remark" varchar(500) DEFAULT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '参数配置表';
-
-CREATE TABLE IF NOT EXISTS "inf_file" (
- "id" varchar(188) NOT NULL,
- "type" varchar(63) DEFAULT NULL,
- "content" blob NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- "tenant_id" bigint not null default '0',
- PRIMARY KEY ("id")
-) COMMENT '文件表';
-
-CREATE TABLE IF NOT EXISTS "inf_job" (
- "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY COMMENT '任务编号',
- "name" varchar(32) NOT NULL COMMENT '任务名称',
- "status" tinyint(4) NOT NULL COMMENT '任务状态',
- "handler_name" varchar(64) NOT NULL COMMENT '处理器的名字',
- "handler_param" varchar(255) DEFAULT NULL COMMENT '处理器的参数',
- "cron_expression" varchar(32) NOT NULL COMMENT 'CRON 表达式',
- "retry_count" int(11) NOT NULL DEFAULT '0' COMMENT '重试次数',
- "retry_interval" int(11) NOT NULL DEFAULT '0' COMMENT '重试间隔',
- "monitor_timeout" int(11) NOT NULL DEFAULT '0' COMMENT '监控超时时间',
- "creator" varchar(64) DEFAULT '' COMMENT '创建者',
- "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- "updater" varchar(64) DEFAULT '' COMMENT '更新者',
- "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- "deleted" bit NOT NULL DEFAULT FALSE COMMENT '是否删除',
- PRIMARY KEY ("id")
-) COMMENT='定时任务表';
-
-CREATE TABLE IF NOT EXISTS "inf_job_log" (
- "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY COMMENT '日志编号',
- "job_id" bigint(20) NOT NULL COMMENT '任务编号',
- "handler_name" varchar(64) NOT NULL COMMENT '处理器的名字',
- "handler_param" varchar(255) DEFAULT NULL COMMENT '处理器的参数',
- "execute_index" tinyint(4) NOT NULL DEFAULT '1' COMMENT '第几次执行',
- "begin_time" datetime NOT NULL COMMENT '开始执行时间',
- "end_time" datetime DEFAULT NULL COMMENT '结束执行时间',
- "duration" int(11) DEFAULT NULL COMMENT '执行时长',
- "status" tinyint(4) NOT NULL COMMENT '任务状态',
- "result" varchar(4000) DEFAULT '' COMMENT '结果数据',
- "creator" varchar(64) DEFAULT '' COMMENT '创建者',
- "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- "updater" varchar(64) DEFAULT '' COMMENT '更新者',
- "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- "deleted" bit(1) NOT NULL DEFAULT FALSE COMMENT '是否删除',
- PRIMARY KEY ("id")
-)COMMENT='定时任务日志表';
-
--- sys 开头的 DB
-
-CREATE TABLE IF NOT EXISTS "sys_dept" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "name" varchar(30) NOT NULL DEFAULT '',
- "parent_id" bigint NOT NULL DEFAULT '0',
- "sort" int NOT NULL DEFAULT '0',
- "leader_user_id" bigint DEFAULT NULL,
- "phone" varchar(11) DEFAULT NULL,
- "email" varchar(50) DEFAULT NULL,
- "status" tinyint NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- "tenant_id" bigint not null default '0',
- PRIMARY KEY ("id")
-) COMMENT '部门表';
-
-CREATE TABLE IF NOT EXISTS "sys_dict_data" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "sort" int NOT NULL DEFAULT '0',
- "label" varchar(100) NOT NULL DEFAULT '',
- "value" varchar(100) NOT NULL DEFAULT '',
- "dict_type" varchar(100) NOT NULL DEFAULT '',
- "status" tinyint NOT NULL DEFAULT '0',
- "remark" varchar(500) DEFAULT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '字典数据表';
-
-CREATE TABLE IF NOT EXISTS "sys_role" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "name" varchar(30) NOT NULL,
- "code" varchar(100) NOT NULL,
- "sort" int NOT NULL,
- "data_scope" tinyint NOT NULL DEFAULT '1',
- "data_scope_dept_ids" varchar(500) NOT NULL DEFAULT '',
- "status" tinyint NOT NULL,
- "type" tinyint NOT NULL,
- "remark" varchar(500) DEFAULT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '角色信息表';
-
-CREATE TABLE IF NOT EXISTS "sys_role_menu" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "role_id" bigint NOT NULL,
- "menu_id" bigint NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '角色和菜单关联表';
-
-CREATE TABLE IF NOT EXISTS "sys_menu" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "name" varchar(50) NOT NULL,
- "permission" varchar(100) NOT NULL DEFAULT '',
- "menu_type" tinyint NOT NULL,
- "sort" int NOT NULL DEFAULT '0',
- "parent_id" bigint NOT NULL DEFAULT '0',
- "path" varchar(200) DEFAULT '',
- "icon" varchar(100) DEFAULT '#',
- "component" varchar(255) DEFAULT NULL,
- "status" tinyint NOT NULL DEFAULT '0',
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '菜单权限表';
-
-CREATE TABLE IF NOT EXISTS "sys_user_role" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "user_id" bigint NOT NULL,
- "role_id" bigint NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp DEFAULT NULL,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp DEFAULT NULL,
- "deleted" bit DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '用户和角色关联表';
-
-CREATE TABLE IF NOT EXISTS "sys_dict_type" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "name" varchar(100) NOT NULL DEFAULT '',
- "type" varchar(100) NOT NULL DEFAULT '',
- "status" tinyint NOT NULL DEFAULT '0',
- "remark" varchar(500) DEFAULT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '字典类型表';
-
-CREATE TABLE IF NOT EXISTS `sys_user_session` (
- `id` varchar(32) NOT NULL,
- `user_id` bigint DEFAULT NULL,
- "user_type" tinyint NOT NULL,
- `username` varchar(50) NOT NULL DEFAULT '',
- `user_ip` varchar(50) DEFAULT NULL,
- `user_agent` varchar(512) DEFAULT NULL,
- `session_timeout` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updater` varchar(64) DEFAULT '' ,
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- "tenant_id" bigint not null default '0',
- PRIMARY KEY (`id`)
-) COMMENT '用户在线 Session';
-
-CREATE TABLE IF NOT EXISTS "sys_post" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "code" varchar(64) NOT NULL,
- "name" varchar(50) NOT NULL,
- "sort" integer NOT NULL,
- "status" tinyint NOT NULL,
- "remark" varchar(500) DEFAULT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- "tenant_id" bigint not null default '0',
- PRIMARY KEY ("id")
-) COMMENT '岗位信息表';
-
-CREATE TABLE IF NOT EXISTS "sys_notice" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "title" varchar(50) NOT NULL COMMENT '公告标题',
- "content" text NOT NULL COMMENT '公告内容',
- "notice_type" tinyint NOT NULL COMMENT '公告类型(1通知 2公告)',
- "status" tinyint NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)',
- "creator" varchar(64) DEFAULT '' COMMENT '创建者',
- "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- "updater" varchar(64) DEFAULT '' COMMENT '更新者',
- "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- "deleted" bit NOT NULL DEFAULT 0 COMMENT '是否删除',
- "tenant_id" bigint not null default '0',
- PRIMARY KEY("id")
-) COMMENT '通知公告表';
-
-CREATE TABLE IF NOT EXISTS `sys_login_log` (
- `id` bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- `log_type` bigint(4) NOT NULL,
- "user_id" bigint not null default '0',
- "user_type" tinyint NOT NULL,
- `trace_id` varchar(64) NOT NULL DEFAULT '',
- `username` varchar(50) NOT NULL DEFAULT '',
- `result` tinyint(4) NOT NULL,
- `user_ip` varchar(50) NOT NULL,
- `user_agent` varchar(512) NOT NULL,
- `creator` varchar(64) DEFAULT '',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updater` varchar(64) DEFAULT '',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- `deleted` bit(1) NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`)
-) COMMENT ='系统访问记录';
-
-CREATE TABLE IF NOT EXISTS `sys_operate_log` (
- `id` bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- `trace_id` varchar(64) NOT NULL DEFAULT '',
- `user_id` bigint(20) NOT NULL,
- `module` varchar(50) NOT NULL,
- `name` varchar(50) NOT NULL,
- `operate_type` bigint(4) NOT NULL DEFAULT '0',
- `content` varchar(2000) NOT NULL DEFAULT '',
- `exts` varchar(512) NOT NULL DEFAULT '',
- `request_method` varchar(16) DEFAULT '',
- `request_url` varchar(255) DEFAULT '',
- `user_ip` varchar(50) DEFAULT NULL,
- `user_agent` varchar(200) DEFAULT NULL,
- `java_method` varchar(512) NOT NULL DEFAULT '',
- `java_method_args` varchar(8000) DEFAULT '',
- `start_time` datetime NOT NULL,
- `duration` int(11) NOT NULL,
- `result_code` int(11) NOT NULL DEFAULT '0',
- `result_msg` varchar(512) DEFAULT '',
- `result_data` varchar(4000) DEFAULT '',
- `creator` varchar(64) DEFAULT '',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updater` varchar(64) DEFAULT '',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- `deleted` bit(1) NOT NULL DEFAULT '0',
- "tenant_id" bigint not null default '0',
- PRIMARY KEY (`id`)
-) COMMENT ='操作日志记录';
-
-CREATE TABLE IF NOT EXISTS "sys_user" (
- "id" bigint not null GENERATED BY DEFAULT AS IDENTITY,
- "username" varchar(30) not null,
- "password" varchar(100) not null default '',
- "nickname" varchar(30) not null,
- "remark" varchar(500) default null,
- "dept_id" bigint default null,
- "post_ids" varchar(255) default null,
- "email" varchar(50) default '',
- "mobile" varchar(11) default '',
- "sex" tinyint default '0',
- "avatar" varchar(100) default '',
- "status" tinyint not null default '0',
- "login_ip" varchar(50) default '',
- "login_date" timestamp default null,
- "creator" varchar(64) default '',
- "create_time" timestamp not null default current_timestamp,
- "updater" varchar(64) default '',
- "update_time" timestamp not null default current_timestamp,
- "deleted" bit not null default false,
- "tenant_id" bigint not null default '0',
- primary key ("id")
-) comment '用户信息表';
-
-CREATE TABLE IF NOT EXISTS "inf_api_access_log" (
- "id" bigint not null GENERATED BY DEFAULT AS IDENTITY,
- "trace_id" varchar(64) not null default '',
- "user_id" bigint not null default '0',
- "user_type" tinyint not null default '0',
- "application_name" varchar(50) not null,
- "request_method" varchar(16) not null default '',
- "request_url" varchar(255) not null default '',
- "request_params" varchar(8000) not null default '',
- "user_ip" varchar(50) not null,
- "user_agent" varchar(512) not null,
- "begin_time" timestamp not null,
- "end_time" timestamp not null,
- "duration" integer not null,
- "result_code" integer not null default '0',
- "result_msg" varchar(512) default '',
- "creator" varchar(64) default '',
- "create_time" timestamp not null default current_timestamp,
- "updater" varchar(64) default '',
- "update_time" timestamp not null default current_timestamp,
- "deleted" bit not null default false,
- "tenant_id" bigint not null default '0',
- primary key ("id")
-) COMMENT 'API 访问日志表';
-
-CREATE TABLE IF NOT EXISTS "inf_api_error_log" (
- "id" bigint not null GENERATED BY DEFAULT AS IDENTITY,
- "trace_id" varchar(64) not null,
- "user_id" bigint not null default '0',
- "user_type" tinyint not null default '0',
- "application_name" varchar(50) not null,
- "request_method" varchar(16) not null,
- "request_url" varchar(255) not null,
- "request_params" varchar(8000) not null,
- "user_ip" varchar(50) not null,
- "user_agent" varchar(512) not null,
- "exception_time" timestamp not null,
- "exception_name" varchar(128) not null default '',
- "exception_message" clob not null,
- "exception_root_cause_message" clob not null,
- "exception_stack_trace" clob not null,
- "exception_class_name" varchar(512) not null,
- "exception_file_name" varchar(512) not null,
- "exception_method_name" varchar(512) not null,
- "exception_line_number" integer not null,
- "process_status" tinyint not null,
- "process_time" timestamp default null,
- "process_user_id" bigint default '0',
- "creator" varchar(64) default '',
- "create_time" timestamp not null default current_timestamp,
- "updater" varchar(64) default '',
- "update_time" timestamp not null default current_timestamp,
- "deleted" bit not null default false,
- "tenant_id" bigint not null default '0',
- primary key ("id")
-) COMMENT '系统异常日志';
-
-CREATE TABLE IF NOT EXISTS "sys_sms_channel" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "signature" varchar(10) NOT NULL,
- "code" varchar(63) NOT NULL,
- "status" tinyint NOT NULL,
- "remark" varchar(255) DEFAULT NULL,
- "api_key" varchar(63) NOT NULL,
- "api_secret" varchar(63) DEFAULT NULL,
- "callback_url" varchar(255) DEFAULT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '短信渠道';
-
-CREATE TABLE IF NOT EXISTS "sys_sms_template" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "type" tinyint NOT NULL,
- "status" tinyint NOT NULL,
- "code" varchar(63) NOT NULL,
- "name" varchar(63) NOT NULL,
- "content" varchar(255) NOT NULL,
- "params" varchar(255) NOT NULL,
- "remark" varchar(255) DEFAULT NULL,
- "api_template_id" varchar(63) NOT NULL,
- "channel_id" bigint NOT NULL,
- "channel_code" varchar(63) NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '短信模板';
-
-CREATE TABLE IF NOT EXISTS "sys_sms_log" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "channel_id" bigint NOT NULL,
- "channel_code" varchar(63) NOT NULL,
- "template_id" bigint NOT NULL,
- "template_code" varchar(63) NOT NULL,
- "template_type" tinyint NOT NULL,
- "template_content" varchar(255) NOT NULL,
- "template_params" varchar(255) NOT NULL,
- "api_template_id" varchar(63) NOT NULL,
- "mobile" varchar(11) NOT NULL,
- "user_id" bigint DEFAULT '0',
- "user_type" tinyint DEFAULT '0',
- "send_status" tinyint NOT NULL DEFAULT '0',
- "send_time" timestamp DEFAULT NULL,
- "send_code" int DEFAULT NULL,
- "send_msg" varchar(255) DEFAULT NULL,
- "api_send_code" varchar(63) DEFAULT NULL,
- "api_send_msg" varchar(255) DEFAULT NULL,
- "api_request_id" varchar(255) DEFAULT NULL,
- "api_serial_no" varchar(255) DEFAULT NULL,
- "receive_status" tinyint NOT NULL DEFAULT '0',
- "receive_time" timestamp DEFAULT NULL,
- "api_receive_code" varchar(63) DEFAULT NULL,
- "api_receive_msg" varchar(255) DEFAULT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '短信日志';
-
-CREATE TABLE IF NOT EXISTS "sys_error_code" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "type" tinyint NOT NULL DEFAULT '0',
- "application_name" varchar(50) NOT NULL,
- "code" int NOT NULL DEFAULT '0',
- "message" varchar(512) NOT NULL DEFAULT '',
- "memo" varchar(512) DEFAULT '',
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '错误码表';
-
-CREATE TABLE IF NOT EXISTS "sys_social_user" (
- "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "user_id" bigint NOT NULL,
- "user_type" tinyint NOT NULL DEFAULT '0',
- "type" tinyint NOT NULL,
- "openid" varchar(32) NOT NULL,
- "token" varchar(256) DEFAULT NULL,
- "union_id" varchar(32) NOT NULL,
- "raw_token_info" varchar(1024) NOT NULL,
- "nickname" varchar(32) NOT NULL,
- "avatar" varchar(255) DEFAULT NULL,
- "raw_user_info" varchar(1024) NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '社交用户';
-
-CREATE TABLE IF NOT EXISTS "sys_tenant" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "name" varchar(63) NOT NULL,
- "contact_name" varchar(255) NOT NULL,
- "contact_mobile" varchar(255),
- "status" tinyint NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '租户';
-
-
-CREATE TABLE IF NOT EXISTS "pay_merchant"
-(
- "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "no" varchar(32) NOT NULL,
- "name" varchar(64) NOT NULL,
- "short_name" varchar(64) NOT NULL,
- "status" tinyint NOT NULL,
- "remark" varchar(255) DEFAULT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- "deleted" bit(1) NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT '支付商户信息';
-
--- bpm 开头的 DB
-
-CREATE TABLE IF NOT EXISTS "pay_app" (
- "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "name" varchar(64) NOT NULL,
- "status" tinyint NOT NULL,
- "remark" varchar(255) DEFAULT NULL,
- `pay_notify_url` varchar(1024) NOT NULL,
- `refund_notify_url` varchar(1024) NOT NULL,
- `merchant_id` bigint(20) NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- "deleted" bit(1) NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT = '支付应用信息';
-
-CREATE TABLE IF NOT EXISTS "pay_channel" (
- "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "code" varchar(32) NOT NULL,
- "status" tinyint(4) NOT NULL,
- "remark" varchar(255) DEFAULT NULL,
- "fee_rate" double NOT NULL DEFAULT 0,
- "merchant_id" bigint(20) NOT NULL,
- "app_id" bigint(20) NOT NULL,
- "config" varchar(10240) NOT NULL,
- "creator" varchar(64) NULL DEFAULT '',
- "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) NULL DEFAULT '',
- "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- "deleted" bit(1) NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT = '支付渠道';
-
-CREATE TABLE IF NOT EXISTS `pay_order` (
- "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- `merchant_id` bigint(20) NOT NULL,
- `app_id` bigint(20) NOT NULL,
- `channel_id` bigint(20) DEFAULT NULL,
- `channel_code` varchar(32) DEFAULT NULL,
- `merchant_order_id` varchar(64) NOT NULL,
- `subject` varchar(32) NOT NULL,
- `body` varchar(128) NOT NULL,
- `notify_url` varchar(1024) NOT NULL,
- `notify_status` tinyint(4) NOT NULL,
- `amount` bigint(20) NOT NULL,
- `channel_fee_rate` double DEFAULT 0,
- `channel_fee_amount` bigint(20) DEFAULT 0,
- `status` tinyint(4) NOT NULL,
- `user_ip` varchar(50) NOT NULL,
- `expire_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `success_time` datetime(0) DEFAULT CURRENT_TIMESTAMP,
- `notify_time` datetime(0) DEFAULT CURRENT_TIMESTAMP,
- `success_extension_id` bigint(20) DEFAULT NULL COMMENT '支付成功的订单拓展单编号',
- `refund_status` tinyint(4) NOT NULL,
- `refund_times` tinyint(4) NOT NULL,
- `refund_amount` bigint(20) NOT NULL,
- `channel_user_id` varchar(255) DEFAULT NULL,
- `channel_order_no` varchar(64) DEFAULT NULL,
- `creator` varchar(64) DEFAULT '',
- `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updater` varchar(64) DEFAULT '',
- `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- `deleted` bit(1) NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT = '支付订单';
-
-CREATE TABLE IF NOT EXISTS `pay_refund` (
- "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- `merchant_id` bigint(20) NOT NULL,
- `app_id` bigint(20) NOT NULL,
- `channel_id` bigint(20) NOT NULL,
- `channel_code` varchar(32) NOT NULL,
- `order_id` bigint(20) NOT NULL,
- `trade_no` varchar(64) NOT NULL,
- `merchant_order_id` varchar(64) NOT NULL,
- `merchant_refund_no` varchar(64) NOT NULL,
- `notify_url` varchar(1024) NOT NULL,
- `notify_status` tinyint(4) NOT NULL,
- `status` tinyint(4) NOT NULL,
- `type` tinyint(4) NOT NULL,
- `pay_amount` bigint(20) NOT NULL,
- `refund_amount` bigint(20) NOT NULL,
- `reason` varchar(256) NOT NULL,
- `user_ip` varchar(50) NULL DEFAULT NULL,
- `channel_order_no` varchar(64) NOT NULL,
- `channel_refund_no` varchar(64) NULL DEFAULT NULL,
- `channel_error_code` varchar(128) NULL DEFAULT NULL,
- `channel_error_msg` varchar(256) NULL DEFAULT NULL,
- `channel_extras` varchar(1024) NULL DEFAULT NULL,
- `expire_time` datetime(0) NULL DEFAULT NULL,
- `success_time` datetime(0) NULL DEFAULT NULL,
- `notify_time` datetime(0) NULL DEFAULT NULL,
- `creator` varchar(64) NULL DEFAULT '',
- `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updater` varchar(64) NULL DEFAULT '',
- `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- `deleted` bit(1) NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-) COMMENT = '退款订单';
-
-- bpm 开头的 DB
CREATE TABLE IF NOT EXISTS "bpm_form" (
@@ -608,17 +14,3 @@ CREATE TABLE IF NOT EXISTS "bpm_form" (
"deleted" bit NOT NULL DEFAULT FALSE,
PRIMARY KEY ("id")
) COMMENT '动态表单';
-
-CREATE TABLE IF NOT EXISTS "bpm_user_group" (
- "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- "name" varchar(63) NOT NULL,
- "description" varchar(255) NOT NULL,
- "status" tinyint NOT NULL,
- "member_user_ids" varchar(255) NOT NULL,
- "creator" varchar(64) DEFAULT '',
- "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updater" varchar(64) DEFAULT '',
- "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "deleted" bit NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
- ) COMMENT '用户组';
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/pom.xml b/yudao-module-bpm/yudao-module-bpm-core-service/pom.xml
index b61a9db..aa81886 100644
--- a/yudao-module-bpm/yudao-module-bpm-core-service/pom.xml
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/pom.xml
@@ -8,7 +8,11 @@
${revision}
4.0.0
-
+ pom
+
+ yudao-module-bpm-core-service-api
+ yudao-module-bpm-core-service-impl
+
yudao-module-bpm-core-service
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-api/pom.xml b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-api/pom.xml
new file mode 100644
index 0000000..fb5a4f0
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-api/pom.xml
@@ -0,0 +1,20 @@
+
+
+
+ yudao-module-bpm-core-service
+ cn.iocoder.boot
+ ${revision}
+
+ 4.0.0
+
+ yudao-module-bpm-core-service-api
+
+
+
+ org.projectlombok
+ lombok
+
+
+
\ No newline at end of file
diff --git a/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 b/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
new file mode 100644
index 0000000..c834869
--- /dev/null
+++ b/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,0 +1,32 @@
+package cn.iocoder.yudao.coreservice.modules.bpm.api.group;
+
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Bpm 用户组 API 接口
+ *
+ * @author jason
+ */
+public interface BpmUserGroupServiceApi {
+
+ /**
+ * 获得用户组列表
+ *
+ * @param ids 编号
+ * @return 用户组列表
+ */
+ List getUserGroupList(Collection ids);
+
+ /**
+ * 校验用户组们是否有效。如下情况,视为无效:
+ * 1. 用户组编号不存在
+ * 2. 用户组被禁用
+ *
+ * @param ids 用户组编号数组
+ */
+ void validUserGroups(Set ids);
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..b850425
--- /dev/null
+++ b/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,0 +1,17 @@
+package cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto;
+
+import lombok.Data;
+
+import java.util.Set;
+/**
+ * Bpm 用户组 DTO
+ *
+ * @author jason
+ */
+@Data
+public class BpmUserGroupDTO {
+ /**
+ * 成员用户编号数组
+ */
+ private Set memberUserIds;
+}
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/pom.xml b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/pom.xml
new file mode 100644
index 0000000..1712458
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/pom.xml
@@ -0,0 +1,35 @@
+
+
+
+ yudao-module-bpm-core-service
+ cn.iocoder.boot
+ ${revision}
+
+ 4.0.0
+
+ yudao-module-bpm-core-service-impl
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-web
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-security
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-mybatis
+
+
+ cn.iocoder.boot
+ yudao-module-bpm-core-service-api
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-test
+
+
+
\ No newline at end of file
diff --git a/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 b/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
new file mode 100644
index 0000000..b789ba9
--- /dev/null
+++ b/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,0 +1,61 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.api;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmUserGroupConvert;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO;
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
+import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_IS_DISABLE;
+import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+
+/**
+ * Bpm 用户组 API 接口 实现类
+ *
+ * @author jason
+ */
+@Service
+public class BpmUserGroupServiceApiImpl implements BpmUserGroupServiceApi {
+
+ @Resource
+ private BpmUserGroupMapper userGroupMapper;
+
+ @Override
+ public List getUserGroupList(Collection ids) {
+ return BpmUserGroupConvert.INSTANCE.convertList3(userGroupMapper.selectBatchIds(ids));
+ }
+
+
+ @Override
+ public void validUserGroups(Set ids) {
+
+ if (CollUtil.isEmpty(ids)) {
+ return;
+ }
+ // 获得用户组信息
+ List userGroups = userGroupMapper.selectBatchIds(ids);
+ Map userGroupMap = CollectionUtils.convertMap(userGroups, BpmUserGroupDO::getId);
+ // 校验
+ ids.forEach(id -> {
+ BpmUserGroupDO userGroup = userGroupMap.get(id);
+ if (userGroup == null) {
+ throw ServiceExceptionUtil.exception(USER_GROUP_NOT_EXISTS);
+ }
+ if (!CommonStatusEnum.ENABLE.getStatus().equals(userGroup.getStatus())) {
+ throw exception(USER_GROUP_IS_DISABLE, userGroup.getName());
+ }
+ });
+ }
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..ea5fafd
--- /dev/null
+++ b/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
@@ -0,0 +1,85 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition;
+
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupRespVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmUserGroupConvert;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
+import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Api(tags = "用户组")
+@RestController
+@RequestMapping("/bpm/user-group")
+@Validated
+public class BpmUserGroupController {
+
+ @Resource
+ private BpmUserGroupService userGroupService;
+
+ @PostMapping("/create")
+ @ApiOperation("创建用户组")
+ @PreAuthorize("@ss.hasPermission('bpm:user-group:create')")
+ public CommonResult createUserGroup(@Valid @RequestBody BpmUserGroupCreateReqVO createReqVO) {
+ return success(userGroupService.createUserGroup(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @ApiOperation("更新用户组")
+ @PreAuthorize("@ss.hasPermission('bpm:user-group:update')")
+ public CommonResult updateUserGroup(@Valid @RequestBody BpmUserGroupUpdateReqVO updateReqVO) {
+ userGroupService.updateUserGroup(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @ApiOperation("删除用户组")
+ @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
+ @PreAuthorize("@ss.hasPermission('bpm:user-group:delete')")
+ public CommonResult deleteUserGroup(@RequestParam("id") Long id) {
+ userGroupService.deleteUserGroup(id);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @ApiOperation("获得用户组")
+ @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
+ @PreAuthorize("@ss.hasPermission('bpm:user-group:query')")
+ public CommonResult getUserGroup(@RequestParam("id") Long id) {
+ BpmUserGroupDO userGroup = userGroupService.getUserGroup(id);
+ return success(BpmUserGroupConvert.INSTANCE.convert(userGroup));
+ }
+
+ @GetMapping("/page")
+ @ApiOperation("获得用户组分页")
+ @PreAuthorize("@ss.hasPermission('bpm:user-group:query')")
+ public CommonResult> getUserGroupPage(@Valid BpmUserGroupPageReqVO pageVO) {
+ PageResult pageResult = userGroupService.getUserGroupPage(pageVO);
+ return success(BpmUserGroupConvert.INSTANCE.convertPage(pageResult));
+ }
+
+ @GetMapping("/list-all-simple")
+ @ApiOperation(value = "获取用户组精简信息列表", notes = "只包含被开启的用户组,主要用于前端的下拉选项")
+ public CommonResult> getSimpleUserGroups() {
+ // 获用户门列表,只要开启状态的
+ List list = userGroupService.getUserGroupListByStatus(CommonStatusEnum.ENABLE.getStatus());
+ // 排序后,返回给前端
+ return success(BpmUserGroupConvert.INSTANCE.convertList2(list));
+ }
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..9914260
--- /dev/null
+++ b/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
@@ -0,0 +1,31 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.annotations.*;
+import javax.validation.constraints.*;
+
+/**
+* 用户组 Base VO,提供给添加、修改、详细的子 VO 使用
+* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
+*/
+@Data
+public class BpmUserGroupBaseVO {
+
+ @ApiModelProperty(value = "组名", required = true, example = "芋道")
+ @NotNull(message = "组名不能为空")
+ private String name;
+
+ @ApiModelProperty(value = "描述", required = true, example = "芋道源码")
+ @NotNull(message = "描述不能为空")
+ private String description;
+
+ @ApiModelProperty(value = "成员编号数组", required = true, example = "1,2,3")
+ @NotNull(message = "成员编号数组不能为空")
+ private Set memberUserIds;
+
+ @ApiModelProperty(value = "状态", required = true, example = "1")
+ @NotNull(message = "状态不能为空")
+ private Integer status;
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..44114ac
--- /dev/null
+++ b/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
@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.annotations.*;
+import javax.validation.constraints.*;
+
+@ApiModel("用户组创建 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class BpmUserGroupCreateReqVO extends BpmUserGroupBaseVO {
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..303a349
--- /dev/null
+++ b/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
@@ -0,0 +1,34 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.date.DateUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@ApiModel("用户组分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class BpmUserGroupPageReqVO extends PageParam {
+
+ @ApiModelProperty(value = "组名", example = "芋道")
+ private String name;
+
+ @ApiModelProperty(value = "状态", example = "1")
+ private Integer status;
+
+ @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ @ApiModelProperty(value = "开始创建时间")
+ private Date beginCreateTime;
+
+ @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ @ApiModelProperty(value = "结束创建时间")
+ private Date endCreateTime;
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..523bb60
--- /dev/null
+++ b/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
@@ -0,0 +1,19 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.annotations.*;
+
+@ApiModel("用户组 Response VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class BpmUserGroupRespVO extends BpmUserGroupBaseVO {
+
+ @ApiModelProperty(value = "编号", required = true, example = "1024")
+ private Long id;
+
+ @ApiModelProperty(value = "创建时间", required = true)
+ private Date createTime;
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..fb427d0
--- /dev/null
+++ b/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
@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@ApiModel("用户组精简信息 Response VO")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class BpmUserGroupSimpleRespVO {
+
+ @ApiModelProperty(value = "用户组编号", required = true, example = "1024")
+ private Long id;
+
+ @ApiModelProperty(value = "用户组名字", required = true, example = "芋道")
+ private String name;
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..00a32bd
--- /dev/null
+++ b/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
@@ -0,0 +1,18 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.annotations.*;
+import javax.validation.constraints.*;
+
+@ApiModel("用户组更新 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class BpmUserGroupUpdateReqVO extends BpmUserGroupBaseVO {
+
+ @ApiModelProperty(value = "编号", required = true, example = "1024")
+ @NotNull(message = "编号不能为空")
+ private Long id;
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..7f7e9af
--- /dev/null
+++ b/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
@@ -0,0 +1,40 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.convert.definition;
+
+import java.util.*;
+
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupRespVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
+import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.Named;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 用户组 Convert
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface BpmUserGroupConvert {
+
+ BpmUserGroupConvert INSTANCE = Mappers.getMapper(BpmUserGroupConvert.class);
+
+ BpmUserGroupDO convert(BpmUserGroupCreateReqVO bean);
+
+ BpmUserGroupDO convert(BpmUserGroupUpdateReqVO bean);
+
+ BpmUserGroupRespVO convert(BpmUserGroupDO bean);
+
+ List convertList(List list);
+
+ PageResult convertPage(PageResult page);
+
+ @Named("convertList2")
+ List convertList2(List list);
+
+ List convertList3(List list);
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..d433c65
--- /dev/null
+++ b/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
@@ -0,0 +1,52 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition;
+
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.util.Set;
+
+/**
+ * Bpm 用户组
+ *
+ * @author 芋道源码
+ */
+@TableName(value = "bpm_user_group", autoResultMap = true)
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BpmUserGroupDO extends BaseDO {
+
+ /**
+ * 编号,自增
+ */
+ @TableId
+ private Long id;
+ /**
+ * 组名
+ */
+ private String name;
+ /**
+ * 描述
+ */
+ private String description;
+ /**
+ * 状态
+ *
+ * 枚举 {@link CommonStatusEnum}
+ */
+ private Integer status;
+ /**
+ * 成员用户编号数组
+ */
+ @TableField(typeHandler = JsonLongSetTypeHandler.class)
+ private Set memberUserIds;
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..f524fef
--- /dev/null
+++ b/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
@@ -0,0 +1,32 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition;
+
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 用户组 Mapper
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface BpmUserGroupMapper extends BaseMapperX {
+
+ default PageResult selectPage(BpmUserGroupPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .likeIfPresent(BpmUserGroupDO::getName, reqVO.getName())
+ .eqIfPresent(BpmUserGroupDO::getStatus, reqVO.getStatus())
+ .betweenIfPresent(BpmUserGroupDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
+ .orderByDesc(BpmUserGroupDO::getId));
+ }
+
+ default List selectListByStatus(Integer status) {
+ return selectList(BpmUserGroupDO::getStatus, status);
+ }
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..5fd230c
--- /dev/null
+++ b/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,0 +1,10 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.enums;
+
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+
+public interface BpmErrorCodeConstants {
+ // ========== 用户组模块 1-009-011-000 ==========
+ ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1009011000, "用户组不存在");
+ ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1009011001, "名字为【{}】的用户组已被禁用");
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..5d84865
--- /dev/null
+++ b/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
@@ -0,0 +1,64 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
+
+import java.util.*;
+import javax.validation.*;
+
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+
+/**
+ * 用户组 Service 接口
+ *
+ * @author 芋道源码
+ */
+public interface BpmUserGroupService {
+
+ /**
+ * 创建用户组
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createUserGroup(@Valid BpmUserGroupCreateReqVO createReqVO);
+
+ /**
+ * 更新用户组
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateUserGroup(@Valid BpmUserGroupUpdateReqVO updateReqVO);
+
+ /**
+ * 删除用户组
+ *
+ * @param id 编号
+ */
+ void deleteUserGroup(Long id);
+
+ /**
+ * 获得用户组
+ *
+ * @param id 编号
+ * @return 用户组
+ */
+ BpmUserGroupDO getUserGroup(Long id);
+
+ /**
+ * 获得指定状态的用户组列表
+ *
+ * @param status 状态
+ * @return 用户组列表
+ */
+ List getUserGroupListByStatus(Integer status);
+
+ /**
+ * 获得用户组分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 用户组分页
+ */
+ PageResult getUserGroupPage(BpmUserGroupPageReqVO pageReqVO);
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..7de593c
--- /dev/null
+++ b/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
@@ -0,0 +1,88 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmUserGroupConvert;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper;
+import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
+import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_IS_DISABLE;
+import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+
+/**
+ * 用户组 Service 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class BpmUserGroupServiceImpl implements BpmUserGroupService {
+
+ @Resource
+ private BpmUserGroupMapper userGroupMapper;
+
+ @Override
+ public Long createUserGroup(BpmUserGroupCreateReqVO createReqVO) {
+ // 插入
+ BpmUserGroupDO userGroup = BpmUserGroupConvert.INSTANCE.convert(createReqVO);
+ userGroupMapper.insert(userGroup);
+ // 返回
+ return userGroup.getId();
+ }
+
+ @Override
+ public void updateUserGroup(BpmUserGroupUpdateReqVO updateReqVO) {
+ // 校验存在
+ this.validateUserGroupExists(updateReqVO.getId());
+ // 更新
+ BpmUserGroupDO updateObj = BpmUserGroupConvert.INSTANCE.convert(updateReqVO);
+ userGroupMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteUserGroup(Long id) {
+ // 校验存在
+ this.validateUserGroupExists(id);
+ // 删除
+ userGroupMapper.deleteById(id);
+ }
+
+ private void validateUserGroupExists(Long id) {
+ if (userGroupMapper.selectById(id) == null) {
+ throw ServiceExceptionUtil.exception(USER_GROUP_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public BpmUserGroupDO getUserGroup(Long id) {
+ return userGroupMapper.selectById(id);
+ }
+
+
+ @Override
+ public List getUserGroupListByStatus(Integer status) {
+ return userGroupMapper.selectListByStatus(status);
+ }
+
+ @Override
+ public PageResult getUserGroupPage(BpmUserGroupPageReqVO pageReqVO) {
+ return userGroupMapper.selectPage(pageReqVO);
+ }
+
+}
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/java/cn/iocoder/yudao/adminserver/BaseDbUnitTest.java b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/java/cn/iocoder/yudao/adminserver/BaseDbUnitTest.java
new file mode 100644
index 0000000..5f7daed
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/java/cn/iocoder/yudao/adminserver/BaseDbUnitTest.java
@@ -0,0 +1,39 @@
+package cn.iocoder.yudao.adminserver;
+
+import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration;
+import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration;
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
+import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Import;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.jdbc.Sql;
+
+/**
+ * 依赖内存 DB 的单元测试
+ *
+ * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法
+ *
+ * @author 芋道源码
+ */
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class)
+@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件
+@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB
+public class BaseDbUnitTest {
+
+ @Import({
+ // DB 配置类
+ YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类
+ DataSourceAutoConfiguration.class, // Spring DB 自动配置类
+ DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类
+ DruidDataSourceAutoConfigure.class, // Druid 自动配置类
+ // MyBatis 配置类
+ YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类
+ MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类
+ })
+ public static class Application {
+ }
+
+}
diff --git a/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 b/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
new file mode 100644
index 0000000..ff16838
--- /dev/null
+++ b/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
@@ -0,0 +1,131 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
+
+import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper;
+import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl.BpmUserGroupServiceImpl;
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.date.DateUtils;
+import cn.iocoder.yudao.framework.test.core.util.AssertUtils;
+import cn.iocoder.yudao.framework.test.core.util.RandomUtils;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.context.annotation.Import;
+
+import javax.annotation.Resource;
+
+import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
+
+/**
+* {@link BpmUserGroupServiceImpl} 的单元测试类
+*
+* @author 芋道源码
+*/
+@Import(BpmUserGroupServiceImpl.class)
+public class BpmUserGroupServiceTest extends BaseDbUnitTest {
+
+ @Resource
+ private BpmUserGroupServiceImpl userGroupService;
+
+ @Resource
+ private BpmUserGroupMapper userGroupMapper;
+
+ @Test
+ public void testCreateUserGroup_success() {
+ // 准备参数
+ BpmUserGroupCreateReqVO reqVO = RandomUtils.randomPojo(BpmUserGroupCreateReqVO.class);
+
+ // 调用
+ Long userGroupId = userGroupService.createUserGroup(reqVO);
+ // 断言
+ Assertions.assertNotNull(userGroupId);
+ // 校验记录的属性是否正确
+ BpmUserGroupDO userGroup = userGroupMapper.selectById(userGroupId);
+ AssertUtils.assertPojoEquals(reqVO, userGroup);
+ }
+
+ @Test
+ public void testUpdateUserGroup_success() {
+ // mock 数据
+ BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class);
+ userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据
+ // 准备参数
+ BpmUserGroupUpdateReqVO reqVO = RandomUtils.randomPojo(BpmUserGroupUpdateReqVO.class, o -> {
+ o.setId(dbUserGroup.getId()); // 设置更新的 ID
+ });
+
+ // 调用
+ userGroupService.updateUserGroup(reqVO);
+ // 校验是否更新正确
+ BpmUserGroupDO userGroup = userGroupMapper.selectById(reqVO.getId()); // 获取最新的
+ AssertUtils.assertPojoEquals(reqVO, userGroup);
+ }
+
+ @Test
+ public void testUpdateUserGroup_notExists() {
+ // 准备参数
+ BpmUserGroupUpdateReqVO reqVO = RandomUtils.randomPojo(BpmUserGroupUpdateReqVO.class);
+
+ // 调用, 并断言异常
+ AssertUtils.assertServiceException(() -> userGroupService.updateUserGroup(reqVO), USER_GROUP_NOT_EXISTS);
+ }
+
+ @Test
+ public void testDeleteUserGroup_success() {
+ // mock 数据
+ BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class);
+ userGroupMapper.insert(dbUserGroup);// @Sql: 先插入出一条存在的数据
+ // 准备参数
+ Long id = dbUserGroup.getId();
+
+ // 调用
+ userGroupService.deleteUserGroup(id);
+ // 校验数据不存在了
+ Assertions.assertNull(userGroupMapper.selectById(id));
+ }
+
+ @Test
+ public void testDeleteUserGroup_notExists() {
+ // 准备参数
+ Long id = RandomUtils.randomLongId();
+
+ // 调用, 并断言异常
+ AssertUtils.assertServiceException(() -> userGroupService.deleteUserGroup(id), USER_GROUP_NOT_EXISTS);
+ }
+
+ @Test
+ public void testGetUserGroupPage() {
+ // mock 数据
+ BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到
+ o.setName("芋道源码");
+ o.setStatus(CommonStatusEnum.ENABLE.getStatus());
+ o.setCreateTime(DateUtils.buildTime(2021, 11, 11));
+ });
+ userGroupMapper.insert(dbUserGroup);
+ // 测试 name 不匹配
+ userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName("芋道")));
+ // 测试 status 不匹配
+ userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
+ // 测试 createTime 不匹配
+ userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setCreateTime(DateUtils.buildTime(2021, 12, 12))));
+ // 准备参数
+ BpmUserGroupPageReqVO reqVO = new BpmUserGroupPageReqVO();
+ reqVO.setName("源码");
+ reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
+ reqVO.setBeginCreateTime(DateUtils.buildTime(2021, 11, 10));
+ reqVO.setEndCreateTime(DateUtils.buildTime(2021, 11, 12));
+
+ // 调用
+ PageResult pageResult = userGroupService.getUserGroupPage(reqVO);
+ // 断言
+ Assertions.assertEquals(1, pageResult.getTotal());
+ Assertions.assertEquals(1, pageResult.getList().size());
+ AssertUtils.assertPojoEquals(dbUserGroup, pageResult.getList().get(0));
+ }
+
+}
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application-unit-test.yaml b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application-unit-test.yaml
new file mode 100644
index 0000000..ddad7ac
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application-unit-test.yaml
@@ -0,0 +1,38 @@
+spring:
+ main:
+ lazy-initialization: true # 开启懒加载,加快速度
+ banner-mode: off # 单元测试,禁用 Banner
+
+--- #################### 数据库相关配置 ####################
+
+spring:
+ # 数据源配置项
+ datasource:
+ name: ruoyi-vue-pro
+ url: jdbc:h2:mem:testdb;MODE=MYSQL;DATABASE_TO_UPPER=false; # MODE 使用 MySQL 模式;DATABASE_TO_UPPER 配置表和字段使用小写
+ driver-class-name: org.h2.Driver
+ username: sa
+ password:
+ schema: classpath:sql/create_tables.sql # MySQL 转 H2 的语句,使用 https://www.jooq.org/translate/ 工具
+ druid:
+ async-init: true # 单元测试,异步初始化 Druid 连接池,提升启动速度
+ initial-size: 1 # 单元测试,配置为 1,提升启动速度
+
+mybatis:
+ lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试
+
+--- #################### 定时任务相关配置 ####################
+
+--- #################### 配置中心相关配置 ####################
+
+--- #################### 服务保障相关配置 ####################
+
+# Lock4j 配置项(单元测试,禁用 Lock4j)
+
+# Resilience4j 配置项
+
+--- #################### 监控相关配置 ####################
+
+--- #################### 芋道相关配置 ####################
+
+# 芋道配置项,设置当前项目所有自定义的配置
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application.yaml b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application.yaml
new file mode 100644
index 0000000..2cfbb1a
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/application.yaml
@@ -0,0 +1,35 @@
+spring:
+ application:
+ name: yudao-module-bpm-service
+
+ # Jackson 配置项
+ jackson:
+ serialization:
+ write-dates-as-timestamps: true # 设置 Date 的格式,使用时间戳
+ write-date-timestamps-as-nanoseconds: false # 设置不使用 nanoseconds 的格式。例如说 1611460870.401,而是直接 1611460870401
+ write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳
+ fail-on-empty-beans: false # 允许序列化无属性的 Bean
+
+# MyBatis Plus 的配置项
+mybatis-plus:
+ configuration:
+ map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印日志
+ global-config:
+ db-config:
+ id-type: AUTO # 自增 ID
+ logic-delete-value: 1 # 逻辑已删除值(默认为 1)
+ logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
+ mapper-locations: classpath*:mapper/*.xml
+ type-aliases-package: ${yudao.core-service.base-package}.modules.*.dal.dataobject
+
+--- #################### 芋道相关配置 ####################
+
+yudao:
+ info:
+ version: 1.0.0
+ base-package: cn.iocoder.yudao.adminserver
+ core-service:
+ base-package: cn.iocoder.yudao.coreservice
+
+debug: false
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/logback-spring.xml b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/logback-spring.xml
new file mode 100644
index 0000000..daf756b
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/logback-spring.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/clean.sql b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/clean.sql
new file mode 100644
index 0000000..45b43e0
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/clean.sql
@@ -0,0 +1,2 @@
+-- bpm 开头的 DB
+DELETE FROM "bpm_user_group";
diff --git a/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/create_tables.sql b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/create_tables.sql
new file mode 100644
index 0000000..da5b9a6
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-core-service/yudao-module-bpm-core-service-impl/src/test/resources/sql/create_tables.sql
@@ -0,0 +1,14 @@
+-- bpm 开头的 DB
+CREATE TABLE IF NOT EXISTS "bpm_user_group" (
+ "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+ "name" varchar(63) NOT NULL,
+ "description" varchar(255) NOT NULL,
+ "status" tinyint NOT NULL,
+ "member_user_ids" varchar(255) NOT NULL,
+ "creator" varchar(64) DEFAULT '',
+ "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "updater" varchar(64) DEFAULT '',
+ "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "deleted" bit NOT NULL DEFAULT FALSE,
+ PRIMARY KEY ("id")
+ ) COMMENT '用户组';
--
libgit2 0.21.4