From 396c045704e273c1fd2b25dbfc32e1bc7a3680fc Mon Sep 17 00:00:00 2001 From: zhaokai Date: Thu, 6 Nov 2025 15:50:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BC=81=E4=B8=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=B8=AD=E5=8F=B0=E9=A6=96=E9=A1=B5=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E4=BC=81=E4=B8=9A=EF=BC=8C=E9=83=A8=E9=97=A8=EF=BC=8C?= =?UTF-8?q?=E5=B2=97=E4=BD=8D=EF=BC=8C=E7=94=A8=E6=88=B7=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=92=8C=E5=88=A0=E9=99=A4=E6=97=B6=EF=BC=8C=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=AF=B9=E5=BA=94redis=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/info/web/CorpInfoController.java | 7 ++++ .../basic/info/command/CorpInfoRemoveExe.java | 10 +++++ .../basic/info/command/CorpInfoUpdateExe.java | 9 +++++ .../info/command/DepartmentRemoveExe.java | 39 +++++++++++++++++-- .../info/command/DepartmentUpdateExe.java | 9 +++++ .../basic/info/command/PostRemoveExe.java | 20 +++++++++- .../basic/info/command/PostUpdateExe.java | 16 +++++++- .../basic/info/command/UserRemoveExe.java | 9 +++++ .../basic/info/command/UserUpdateExe.java | 7 ++++ .../convertor/CorpInfoCoConvertor.java | 3 ++ .../info/command/query/CorpInfoQueryExe.java | 21 ++++++++++ .../info/service/CorpInfoServiceImpl.java | 8 ++++ .../basic/info/api/CorpInfoServiceI.java | 3 ++ .../basic/info/dto/CorpUserMiddleQry.java | 38 ++++++++++++++++++ .../dto/clientobject/CorpUserMiddleCO.java | 39 +++++++++++++++++++ .../repository/DepartmentRepository.java | 5 +++ .../repository/PostRepository.java | 2 + .../repository/UserRepository.java | 5 +++ .../impl/CorpInfoRepositoryImpl.java | 6 ++- .../impl/DepartmentRepositoryImpl.java | 16 ++++++++ .../repository/impl/PostRepositoryImpl.java | 8 ++++ .../repository/impl/UserRepositoryImpl.java | 31 +++++++++++++++ 22 files changed, 303 insertions(+), 8 deletions(-) create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/CorpUserMiddleQry.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserMiddleCO.java diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java b/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java index adc72aa..3573531 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java @@ -11,6 +11,7 @@ import com.zcloud.basic.info.api.CorpInfoServiceI; import com.zcloud.basic.info.dto.*; import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO; import com.zcloud.basic.info.dto.clientobject.CorpInfoCO; +import com.zcloud.basic.info.dto.clientobject.CorpUserMiddleCO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -109,5 +110,11 @@ public class CorpInfoController { return SingleResponse.buildSuccess(); } + @ApiOperation("企业用户中台-首页分页列表") + @PostMapping("/corpUserMiddlePage") + public PageResponse corpUserMiddlePage(@Validated @RequestBody CorpUserMiddleQry qry) { + return corpInfoService.corpUserMiddlePage(qry); + } + } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoRemoveExe.java index cfc04f1..f9433ee 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoRemoveExe.java @@ -2,7 +2,10 @@ package com.zcloud.basic.info.command; import com.alibaba.cola.exception.BizException; import com.zcloud.basic.info.domain.gateway.CorpInfoGateway; +import com.zcloud.gbscommon.utils.Const; +import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -17,6 +20,8 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class CorpInfoRemoveExe { private final CorpInfoGateway corpInfoGateway; + @Autowired + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { @@ -24,6 +29,8 @@ public class CorpInfoRemoveExe { if (!res) { throw new BizException("删除失败"); } + //删除redis数据 + zcloudRedisUtil.del(Const.REDIS_CORP_PREFIX+id); return true; } @@ -33,6 +40,9 @@ public class CorpInfoRemoveExe { if (!res) { throw new BizException("删除失败"); } + for (Long id : ids) { + zcloudRedisUtil.del(Const.REDIS_CORP_PREFIX+id); + } return true; } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoUpdateExe.java index 7956e90..245c796 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoUpdateExe.java @@ -10,9 +10,12 @@ import com.zcloud.basic.info.dto.CorpInfoUpdateCmd; import com.zcloud.basic.info.dto.CorpInfoUpdateUseFlagCmd; import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO; import com.zcloud.basic.info.persistence.repository.CorpInfoRepository; +import com.zcloud.gbscommon.utils.Const; +import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import lombok.extern.slf4j.Slf4j; @@ -31,6 +34,8 @@ public class CorpInfoUpdateExe { private final CorpInfoRepository corpInfoRepository; @DubboReference private TenantFacade tenantFacade; + @Autowired + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public void execute(CorpInfoUpdateCmd corpInfoUpdateCmd) { @@ -40,6 +45,8 @@ public class CorpInfoUpdateExe { if (!res) { throw new BizException("修改失败"); } + //删除redis数据 + zcloudRedisUtil.del(Const.REDIS_CORP_PREFIX+corpInfoUpdateCmd.getId()); } public void changeCompanyName(CorpInfoUpdateCmd corpInfoUpdateCmd) { @@ -49,6 +56,8 @@ public class CorpInfoUpdateExe { BeanUtils.copyProperties(corpInfoUpdateCmd, corpInfoE); corpInfoGateway.changeCompanyName(corpInfoE); + //删除redis数据 + zcloudRedisUtil.del(Const.REDIS_CORP_PREFIX+corpInfoUpdateCmd.getId()); // OtaPlatformUserUpdateCmd otaUpdateCmd = new OtaPlatformUserUpdateCmd(); // otaUpdateCmd.setAccount(corpInfoE.getCorpName()); diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentRemoveExe.java index bfe7cba..e8ce870 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentRemoveExe.java @@ -3,20 +3,27 @@ package com.zcloud.basic.info.command; import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.exception.BizException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jjb.saas.system.client.dept.facade.DeptFacade; import com.zcloud.basic.info.domain.gateway.DepartmentGateway; import com.zcloud.basic.info.dto.clientobject.DepartmentCO; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.basic.info.persistence.repository.DepartmentRepository; +import com.zcloud.basic.info.persistence.repository.UserRepository; +import com.zcloud.gbscommon.utils.Const; import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -30,33 +37,57 @@ import java.util.Map; public class DepartmentRemoveExe { private final DepartmentGateway departmentGateway; private final DepartmentRepository departmentRepository; + private final UserRepository userRepository; @DubboReference private DeptFacade deptFacade; + @Autowired + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { - + DepartmentDO departmentDO = departmentRepository.getById(id); + if(departmentDO == null){ + throw new BizException("部门信息不存在"); + } // departmentGateway Map parmas =new HashMap<>(); parmas.put("eqParentId", id); - PageResponse pageResponse = departmentRepository.listPage(parmas); - if(CollUtil.isNotEmpty(pageResponse.getData())){ + Long departmentCount = departmentRepository.countByParams(parmas); + if(departmentCount>0){ throw new BizException("请先删除下级部门"); } + + Boolean b = userRepository.checkUserDepartment(id); + if(b){ + throw new BizException("部门有相应人员,请解除相关部门信息后删除"); + } boolean res = departmentGateway.deletedDepartmentById(id); if (!res) { throw new BizException("删除失败"); } - + //删除redis数据 + zcloudRedisUtil.del(Const.REDIS_DEPT_PREFIX+id); return true; } @Transactional(rollbackFor = Exception.class) public boolean execute(Long[] ids) { + if (ids == null || ids.length == 0) { + return true; + } + + Boolean b = userRepository.checkUserDepartment(ids); + if(b){ + throw new BizException("部门有相应人员,请解除相关部门信息后删除"); + } boolean res = departmentGateway.deletedDepartmentByIds(ids); if (!res) { throw new BizException("删除失败"); } + // 批量删除 Redis 缓存 - 循环处理每个ID + for (Long id : ids) { + zcloudRedisUtil.del(Const.REDIS_DEPT_PREFIX + id); + } return true; } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentUpdateExe.java index a262fb2..7c88f0f 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentUpdateExe.java @@ -9,10 +9,13 @@ import com.zcloud.basic.info.domain.model.FacadeDepartmentE; import com.zcloud.basic.info.dto.DepartmentUpdateCmd; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.basic.info.persistence.repository.DepartmentRepository; +import com.zcloud.gbscommon.utils.Const; +import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -33,6 +36,8 @@ public class DepartmentUpdateExe { private final DepartmentRepository departmentRepository; @DubboReference private DeptFacade deptFacade; + @Autowired + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public void execute(DepartmentUpdateCmd departmentUpdateCmd) { @@ -51,6 +56,10 @@ public class DepartmentUpdateExe { FacadeUpdateDeptCmd deptCmd = new FacadeUpdateDeptCmd(); BeanUtils.copyProperties(deptE, deptCmd); + + //删除redis数据 + zcloudRedisUtil.del(Const.REDIS_DEPT_PREFIX+departmentDO.getCorpinfoId()+":"+departmentUpdateCmd.getId()); + // deptFacade.updateDept(deptCmd); if(!departmentDO.getName().equals(departmentE.getName())){ //TODO 名字不一样,发送mq diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/PostRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/PostRemoveExe.java index 370051c..52237e4 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/PostRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/PostRemoveExe.java @@ -1,16 +1,25 @@ package com.zcloud.basic.info.command; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zcloud.basic.info.domain.gateway.PostDepartmentGateway; import com.zcloud.basic.info.domain.gateway.PostGateway; import com.alibaba.cola.exception.BizException; +import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; +import com.zcloud.basic.info.persistence.dataobject.PostDO; import com.zcloud.basic.info.persistence.dataobject.UserDO; +import com.zcloud.basic.info.persistence.repository.PostRepository; import com.zcloud.basic.info.persistence.repository.UserRepository; +import com.zcloud.gbscommon.utils.Const; +import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -25,6 +34,9 @@ public class PostRemoveExe { private final PostGateway postGateway; private final PostDepartmentGateway postDepartmentGateway; private final UserRepository userRepository; + private final PostRepository postRepository; + @Autowired + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { @@ -42,16 +54,16 @@ public class PostRemoveExe { if (!res) { throw new BizException("删除失败"); } + //删除redis数据 + zcloudRedisUtil.del(Const.REDIS_POST_PREFIX+id); return true; } @Transactional(rollbackFor = Exception.class) public boolean execute(Long[] ids) { - if (ids == null || ids.length == 0) { throw new BizException("岗位ID不能为空"); } - // 这段代码后续放到user的方法中, 校验是否有人员使用该岗位 QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.in("post_id", ids); @@ -66,6 +78,10 @@ public class PostRemoveExe { if (!res) { throw new BizException("删除失败"); } + for (Long id : ids) { + zcloudRedisUtil.del(Const.REDIS_POST_PREFIX+id); + } + return true; } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/PostUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/PostUpdateExe.java index 8d47794..c454e50 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/PostUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/PostUpdateExe.java @@ -7,8 +7,13 @@ import com.zcloud.basic.info.domain.gateway.PostGateway; import com.zcloud.basic.info.domain.model.PostDepartmentE; import com.zcloud.basic.info.domain.model.PostE; import com.zcloud.basic.info.dto.PostUpdateCmd; +import com.zcloud.basic.info.persistence.dataobject.PostDO; +import com.zcloud.basic.info.persistence.repository.PostRepository; +import com.zcloud.gbscommon.utils.Const; +import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -26,9 +31,15 @@ import java.util.List; public class PostUpdateExe { private final PostGateway postGateway; private final PostDepartmentGateway postDepartmentGateway; - + private final PostRepository postRepository; + @Autowired + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public void execute(PostUpdateCmd postUpdateCmd) { + PostDO postDO = postRepository.getById(postUpdateCmd.getId()); + if (postDO == null) { + throw new BizException("岗位不存在"); + } PostE postE = new PostE(); BeanUtils.copyProperties(postUpdateCmd, postE); boolean res = postGateway.update(postE); @@ -67,6 +78,9 @@ public class PostUpdateExe { if (!res) { throw new BizException("修改失败"); } + //删除redis数据 + zcloudRedisUtil.del(Const.REDIS_POST_PREFIX+postDO.getId()); + } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java index 035af9f..360a1d8 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java @@ -2,7 +2,10 @@ package com.zcloud.basic.info.command; import com.alibaba.cola.exception.BizException; import com.zcloud.basic.info.domain.gateway.UserGateway; +import com.zcloud.gbscommon.utils.Const; +import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -18,6 +21,8 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class UserRemoveExe { private final UserGateway userGateway; + @Autowired + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { @@ -25,6 +30,7 @@ public class UserRemoveExe { if(!res){ throw new BizException("删除失败"); } + zcloudRedisUtil.del(Const.REDIS_USER_PREFIX+id); return true; } @@ -34,6 +40,9 @@ public class UserRemoveExe { if(!res){ throw new BizException("删除失败"); } + for (Long id : ids) { + zcloudRedisUtil.del(Const.REDIS_USER_PREFIX+id); + } return true; } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java index 7fd3346..1565943 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java @@ -4,8 +4,11 @@ import com.alibaba.cola.exception.BizException; import com.zcloud.basic.info.domain.gateway.UserGateway; import com.zcloud.basic.info.domain.model.UserE; import com.zcloud.basic.info.dto.UserUpdateCmd; +import com.zcloud.gbscommon.utils.Const; +import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -21,6 +24,8 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class UserUpdateExe { private final UserGateway userGateway; + @Autowired + private ZcloudRedisUtil zcloudRedisUtil; @Transactional(rollbackFor = Exception.class) public void execute(UserUpdateCmd userUpdateCmd) { @@ -30,6 +35,8 @@ public class UserUpdateExe { if (!res) { throw new BizException("修改失败"); } + //删除redis数据 + zcloudRedisUtil.del(Const.REDIS_USER_PREFIX+userUpdateCmd.getId()); } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/CorpInfoCoConvertor.java b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/CorpInfoCoConvertor.java index c2903fe..7001183 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/CorpInfoCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/CorpInfoCoConvertor.java @@ -4,6 +4,7 @@ import com.zcloud.basic.info.domain.model.CorpDepartmentE; import com.zcloud.basic.info.domain.model.DepartmentE; import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO; import com.zcloud.basic.info.dto.clientobject.CorpInfoCO; +import com.zcloud.basic.info.dto.clientobject.CorpUserMiddleCO; import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.gbscommon.zcloudcorp.response.ZcloudCorpInfoCO; @@ -33,5 +34,7 @@ public interface CorpInfoCoConvertor { List converCorpInfoToCorpDepartCOs(List corpInfoList); List converCOsToDubboCOs(List data); + + List converDOsToMiddleCOs(List data); } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java index 1e1b381..b4ab3a1 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java @@ -9,12 +9,16 @@ import com.zcloud.basic.info.domain.model.CorpInfoE; import com.zcloud.basic.info.domain.model.DepartmentE; import com.zcloud.basic.info.dto.CorpDepartmentQry; import com.zcloud.basic.info.dto.CorpInfoPageQry; +import com.zcloud.basic.info.dto.CorpUserMiddleQry; import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO; import com.zcloud.basic.info.dto.clientobject.CorpInfoCO; +import com.zcloud.basic.info.dto.clientobject.CorpUserMiddleCO; import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.basic.info.persistence.repository.CorpInfoRepository; import com.zcloud.basic.info.persistence.repository.DepartmentRepository; +import com.zcloud.basic.info.persistence.repository.PostRepository; +import com.zcloud.basic.info.persistence.repository.UserRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; @@ -39,6 +43,8 @@ public class CorpInfoQueryExe { private final CorpInfoRepository corpInfoRepository; private final CorpInfoCoConvertor corpInfoCoConvertor; private final DepartmentRepository departmentRepository; + private final PostRepository postRepository; + private final UserRepository userRepository; /** @@ -85,5 +91,20 @@ public class CorpInfoQueryExe { return PageResponse.of(corpDepartmentCOList, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + + public PageResponse corpUserMiddlePage(CorpUserMiddleQry qry) { + Map parmas = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = corpInfoRepository.listPage(parmas); + List examCenterCOS = corpInfoCoConvertor.converDOsToMiddleCOs(pageResponse.getData()); + examCenterCOS.forEach(info->{ + info.setDepartMentCount(departmentRepository.getCountByCorpInfoId(info.getId())); + info.setPostCount(postRepository.getCountByCorpInfoId(info.getId())); + info.setUserCount(userRepository.getCountByCorpInfoId(info.getId())); +// info.setMiddleUserCount(departmentRepository.getCountByCorpInfoId(info.getId())); + }); + + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + + } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java b/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java index 422d759..4e0d571 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.zcloud.basic.info.dto.*; import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO; import com.zcloud.basic.info.dto.clientobject.CorpInfoCO; import com.zcloud.basic.info.domain.enums.UserTypeEnum; +import com.zcloud.basic.info.dto.clientobject.CorpUserMiddleCO; import com.zcloud.gbscommon.utils.Tools; import org.apache.shiro.crypto.hash.SimpleHash; import lombok.AllArgsConstructor; @@ -98,5 +99,12 @@ public class CorpInfoServiceImpl implements CorpInfoServiceI { public void changeEnableFlag(CorpInfoUpdateUseFlagCmd corpInfoUpdateUseFlagCmd) { corpInfoUpdateExe.changeEnableFlag(corpInfoUpdateUseFlagCmd); } + + @Override + public PageResponse corpUserMiddlePage(CorpUserMiddleQry qry) { + + return corpInfoQueryExe.corpUserMiddlePage(qry); + + } } diff --git a/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java b/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java index a43d183..ab8bffb 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java +++ b/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java @@ -5,6 +5,7 @@ import com.alibaba.cola.dto.SingleResponse; import com.zcloud.basic.info.dto.*; import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO; import com.zcloud.basic.info.dto.clientobject.CorpInfoCO; +import com.zcloud.basic.info.dto.clientobject.CorpUserMiddleCO; import java.util.List; @@ -34,5 +35,7 @@ public interface CorpInfoServiceI { void changeCompanyName(CorpInfoUpdateCmd corpInfoUpdateCmd); void changeEnableFlag(CorpInfoUpdateUseFlagCmd corpInfoUpdateUseFlagCmd); + + PageResponse corpUserMiddlePage(CorpUserMiddleQry qry); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/CorpUserMiddleQry.java b/web-client/src/main/java/com/zcloud/basic/info/dto/CorpUserMiddleQry.java new file mode 100644 index 0000000..fcb6b68 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/CorpUserMiddleQry.java @@ -0,0 +1,38 @@ +package com.zcloud.basic.info.dto; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * web-client + * + * @Author zhaokai + * @Date 2025-10-30 10:10:48 + */ +@Data +public class CorpUserMiddleQry extends PageQuery { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + /** + * 名称模糊查询 + */ + @ApiModelProperty(value = "分公司名称", name = "likeCorpName") + private String likeCorpName; + + @ApiModelProperty(value = "企业类型,0-普通企业,1-集团单位,2-股份单位,3-相关方企业,4-货主单位,5-驻港单位", name = "eqType") + private String eqType; + + +} + diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserMiddleCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserMiddleCO.java new file mode 100644 index 0000000..43ce49e --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserMiddleCO.java @@ -0,0 +1,39 @@ +package com.zcloud.basic.info.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * web-client + * + * @Author zhaokai + * @Date 2025-10-30 10:10:48 + */ +@Data +public class CorpUserMiddleCO extends ClientObject { + //主键 + @ApiModelProperty(value = "企业主键") + private Long id; + @ApiModelProperty(value = "企业名称") + private String corpName; + //企业类型(0-普通企业,1-集团单位,2-股份单位,3-相关方企业,4-货主单位,5-驻港单位) + @ApiModelProperty(value = "企业类型(0-普通企业,1-集团单位,2-股份单位,3-相关方企业,4-货主单位,5-驻港单位)") + private Integer type; + + + @ApiModelProperty(value = "部门数") + private Long departMentCount; + + @ApiModelProperty(value = "岗位数") + private Long postCount; + + @ApiModelProperty(value = "用户数") + private Long userCount; + + @ApiModelProperty(value = "中台用户数") + private Long middleUserCount; + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/DepartmentRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/DepartmentRepository.java index 1257a3e..63b801c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/DepartmentRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/DepartmentRepository.java @@ -20,5 +20,10 @@ public interface DepartmentRepository extends BaseRepository { List listTree(Map parmas); List listByParams(Map departParmas); + + Long countByParams(Map parmas); + + Long getCountByCorpInfoId(Long id); + } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/PostRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/PostRepository.java index b347c37..14de37a 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/PostRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/PostRepository.java @@ -21,5 +21,7 @@ public interface PostRepository extends BaseRepository { MultiResponse list(Map params); SingleResponse getInfoById(Long id); + + Long getCountByCorpInfoId(Long id); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java index 3c40e4c..8506d58 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java @@ -18,5 +18,10 @@ public interface UserRepository extends BaseRepository { List listAll(Map params); + + Long getCountByCorpInfoId(Long id); + + Boolean checkUserDepartment(Long id); + Boolean checkUserDepartment(Long[] ids); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/CorpInfoRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/CorpInfoRepositoryImpl.java index 974833b..0fb93f3 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/CorpInfoRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/CorpInfoRepositoryImpl.java @@ -1,5 +1,6 @@ package com.zcloud.basic.info.persistence.repository.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.cola.dto.PageResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -35,7 +36,10 @@ public class CorpInfoRepositoryImpl extends BaseRepositoryImpl iPage = new Query().getPage(params); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); - queryWrapper.in("type", CorpTypeEnum.getCodesByEnterpriseType((Integer) params.get("enterpriseType"))); + List enterpriseType = CorpTypeEnum.getCodesByEnterpriseType((Integer) params.get("enterpriseType")); + if(CollUtil.isNotEmpty(enterpriseType)){ + queryWrapper.in("type",enterpriseType ); + } IPage result = corpInfoMapper.selectPage(iPage, queryWrapper); return PageHelper.pageToResponse(result, result.getRecords()); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java index 37c203b..504c878 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java @@ -62,5 +62,21 @@ public class DepartmentRepositoryImpl extends BaseRepositoryImpl departmentDOList = departmentMapper.selectList(queryWrapper); return departmentDOList; } + + @Override + public Long countByParams(Map parmas) { + IPage iPage = new Query().getPage(parmas); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, parmas); + queryWrapper.orderByDesc("create_time"); + return departmentMapper.selectCount(queryWrapper); + } + + @Override + public Long getCountByCorpInfoId(Long id) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("corpinfo_id", id); + return departmentMapper.selectCount(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/PostRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/PostRepositoryImpl.java index 9ff212f..d0e1f90 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/PostRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/PostRepositoryImpl.java @@ -2,6 +2,7 @@ package com.zcloud.basic.info.persistence.repository.impl; import com.alibaba.cola.dto.MultiResponse; import com.jjb.saas.framework.repository.common.PageHelper; +import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.basic.info.persistence.dataobject.PostDO; import com.zcloud.basic.info.persistence.mapper.PostMapper; import com.zcloud.basic.info.persistence.repository.PostRepository; @@ -63,5 +64,12 @@ public class PostRepositoryImpl extends BaseRepositoryImpl i public SingleResponse getInfoById(Long id) { return SingleResponse.of(postMapper.selectById(id)); } + + @Override + public Long getCountByCorpInfoId(Long id) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("corpinfo_id", id); + return postMapper.selectCount(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java index 03ad5c2..a15bf54 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java @@ -1,11 +1,13 @@ package com.zcloud.basic.info.persistence.repository.impl; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; +import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO; import com.zcloud.basic.info.persistence.dataobject.UserDO; import com.zcloud.basic.info.persistence.mapper.UserMapper; @@ -43,5 +45,34 @@ public class UserRepositoryImpl extends BaseRepositoryImpl i public List listAll(Map params) { return userMapper.selectListAll(params); } + + @Override + public Long getCountByCorpInfoId(Long id) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("corpinfo_id", id); + return userMapper.selectCount(queryWrapper); + } + + @Override + public Boolean checkUserDepartment(Long id) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("department_id", id); + Long userCount = userMapper.selectCount(queryWrapper); + if(userCount>0){ + return true; + } + return false; + } + + @Override + public Boolean checkUserDepartment(Long[] ids) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.in("department_id", ids); + Long userCount = userMapper.selectCount(queryWrapper); + if(userCount>0){ + return true; + } + return false; + } }