diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserOrgServiceApi.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserOrgServiceApi.java
new file mode 100644
index 000000000..b5052dba4
--- /dev/null
+++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserOrgServiceApi.java
@@ -0,0 +1,23 @@
+package cn.stylefeng.roses.kernel.sys.api;
+
+import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO;
+
+/**
+ * 单独编写用户和组织机构关系的Api
+ *
+ * @author fengshuonan
+ * @since 2023/6/18 23:14
+ */
+public interface SysUserOrgServiceApi {
+
+ /**
+ * 获取用户的主要任职信息
+ *
+ * 返回一条结果,只返回主部门的信息
+ *
+ * @author fengshuonan
+ * @since 2023/6/11 21:07
+ */
+ UserOrgDTO getUserMainOrgInfo(Long userId);
+
+}
diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java
index d1550cf2e..4a02218b4 100644
--- a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java
+++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java
@@ -46,16 +46,6 @@ public interface SysUserServiceApi {
*/
SimpleUserDTO getUserInfoByUserId(Long userId);
- /**
- * 获取用户的主要任职信息
- *
- * 返回一条结果,只返回主部门的信息
- *
- * @author fengshuonan
- * @since 2023/6/11 21:07
- */
- UserOrgDTO getUserMainOrgInfo(Long userId);
-
/**
* 获取用户绑定的组织机构列表,主要任职部门和次要任职部门都返回
*
diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/UserOrgFormatProcess.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/UserOrgFormatProcess.java
index ede4fa6e1..b9a5b128c 100644
--- a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/UserOrgFormatProcess.java
+++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/UserOrgFormatProcess.java
@@ -3,7 +3,7 @@ package cn.stylefeng.roses.kernel.sys.api.format;
import cn.hutool.core.convert.Convert;
import cn.hutool.extra.spring.SpringUtil;
import cn.stylefeng.roses.kernel.rule.format.BaseSimpleFieldFormatProcess;
-import cn.stylefeng.roses.kernel.sys.api.SysUserServiceApi;
+import cn.stylefeng.roses.kernel.sys.api.SysUserOrgServiceApi;
/**
* 用户所属组织机构的信息包装
@@ -27,9 +27,9 @@ public class UserOrgFormatProcess extends BaseSimpleFieldFormatProcess {
Long userId = Convert.toLong(businessId);
- SysUserServiceApi sysUserServiceApi = SpringUtil.getBean(SysUserServiceApi.class);
+ SysUserOrgServiceApi sysUserOrgServiceApi = SpringUtil.getBean(SysUserOrgServiceApi.class);
- return sysUserServiceApi.getUserMainOrgInfo(userId);
+ return sysUserOrgServiceApi.getUserMainOrgInfo(userId);
}
}
diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/biz/UserIntegrationService.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/biz/UserIntegrationService.java
index fe6b00a0e..33f092885 100644
--- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/biz/UserIntegrationService.java
+++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/biz/UserIntegrationService.java
@@ -6,7 +6,6 @@ import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.sys.api.SysUserServiceApi;
-import cn.stylefeng.roses.kernel.sys.api.exception.SysException;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.SimpleUserDTO;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserValidateDTO;
@@ -29,8 +28,6 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
-import static cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserOrgExceptionEnum.MAIN_FLAG_COUNT_ERROR;
-
/**
* 用户相关的综合业务
*
@@ -87,26 +84,6 @@ public class UserIntegrationService implements SysUserServiceApi {
return simpleUserDTO;
}
- @Override
- public UserOrgDTO getUserMainOrgInfo(Long userId) {
-
- if (userId == null) {
- return null;
- }
-
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(SysUserOrg::getUserId, userId);
- queryWrapper.eq(SysUserOrg::getMainFlag, YesOrNotEnum.Y.getCode());
- List sysUserOrgList = sysUserOrgService.list(queryWrapper);
- if (sysUserOrgList.size() > 1) {
- throw new SysException(MAIN_FLAG_COUNT_ERROR, userId);
- }
-
- // 获取到用户的主部门信息
- SysUserOrg sysUserOrg = sysUserOrgList.get(0);
- return UserOrgFactory.createUserOrgDetailInfo(sysUserOrg);
- }
-
@Override
public List getUserOrgList(Long userId) {
diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/SysUserOrgService.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/SysUserOrgService.java
index 3ded38725..d8fae0208 100644
--- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/SysUserOrgService.java
+++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/SysUserOrgService.java
@@ -1,6 +1,7 @@
package cn.stylefeng.roses.kernel.sys.modular.user.service;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
+import cn.stylefeng.roses.kernel.sys.api.SysUserOrgServiceApi;
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserOrg;
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserOrgRequest;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -13,7 +14,7 @@ import java.util.List;
* @author fengshuonan
* @date 2023/06/10 21:26
*/
-public interface SysUserOrgService extends IService {
+public interface SysUserOrgService extends IService, SysUserOrgServiceApi {
/**
* 新增
diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java
index c8a16e51a..c6c1d6179 100644
--- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java
+++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java
@@ -9,9 +9,12 @@ import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveOrgCallbackApi;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveUserCallbackApi;
+import cn.stylefeng.roses.kernel.sys.api.exception.SysException;
import cn.stylefeng.roses.kernel.sys.api.exception.enums.OrgExceptionEnum;
+import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO;
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserOrg;
import cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserOrgExceptionEnum;
+import cn.stylefeng.roses.kernel.sys.modular.user.factory.UserOrgFactory;
import cn.stylefeng.roses.kernel.sys.modular.user.mapper.SysUserOrgMapper;
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserOrgRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserOrgService;
@@ -24,6 +27,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Set;
+import static cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserOrgExceptionEnum.MAIN_FLAG_COUNT_ERROR;
+
/**
* 用户组织机构关联业务实现层
*
@@ -116,6 +121,26 @@ public class SysUserOrgServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(SysUserOrg::getUserId, userId);
+ queryWrapper.eq(SysUserOrg::getMainFlag, YesOrNotEnum.Y.getCode());
+ List sysUserOrgList = this.list(queryWrapper);
+ if (sysUserOrgList.size() > 1) {
+ throw new SysException(MAIN_FLAG_COUNT_ERROR, userId);
+ }
+
+ // 获取到用户的主部门信息
+ SysUserOrg sysUserOrg = sysUserOrgList.get(0);
+ return UserOrgFactory.createUserOrgDetailInfo(sysUserOrg);
+ }
+
/**
* 获取信息
*
diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java
index 3fe13392a..e145f4236 100644
--- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java
+++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java
@@ -152,7 +152,7 @@ public class SysUserServiceImpl extends ServiceImpl impl
// 遍历查询结果,增加对用户部门信息的返回
for (SysUser record : sysUserPage.getRecords()) {
- record.setUserOrgDTO(sysUserServiceApi.getUserMainOrgInfo(record.getUserId()));
+ record.setUserOrgDTO(sysUserOrgService.getUserMainOrgInfo(record.getUserId()));
}
return PageResultFactory.createPageResult(sysUserPage);