From 2b0b9235fce02290ba2c1be43363ba7e8c65d85b Mon Sep 17 00:00:00 2001 From: zhaokai Date: Tue, 23 Jun 2026 17:35:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(domain):=20=E6=B7=BB=E5=8A=A0=E9=A2=86?= =?UTF-8?q?=E5=9F=9F=E5=B7=A5=E4=BD=9C=E4=BA=A4=E6=8E=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/facade/ZcloudDomainFacadeImpl.java | 33 +++ .../domain/command/DomainWorkChangeExe.java | 243 ++++++++++++++++++ .../command/query/DomainWorkQueryExe.java | 124 +++++++++ .../domain/domain/config/MessageConfig.java | 5 + .../mapper/DomainDepartmentMapper.java | 5 + .../mapper/DomainDepartmentUserMapper.java | 9 + .../persistence/mapper/DomainGroupMapper.java | 5 + .../mapper/DomainGroupUserMapper.java | 9 + .../DomainDepartmentRepository.java | 4 + .../DomainDepartmentUserRepository.java | 6 + .../repository/DomainGroupRepository.java | 4 + .../repository/DomainGroupUserRepository.java | 6 + .../impl/DomainDepartmentRepositoryImpl.java | 10 + .../DomainDepartmentUserRepositoryImpl.java | 15 ++ .../impl/DomainGroupRepositoryImpl.java | 10 + .../impl/DomainGroupUserRepositoryImpl.java | 15 ++ .../mapper/DomainDepartmentMapper.xml | 19 ++ .../mapper/DomainDepartmentUserMapper.xml | 31 +++ .../resources/mapper/DomainGroupMapper.xml | 27 ++ .../mapper/DomainGroupUserMapper.xml | 31 +++ 20 files changed, 611 insertions(+) create mode 100644 web-adapter/src/main/java/com/zcloud/domain/facade/ZcloudDomainFacadeImpl.java create mode 100644 web-app/src/main/java/com/zcloud/domain/command/DomainWorkChangeExe.java create mode 100644 web-app/src/main/java/com/zcloud/domain/command/query/DomainWorkQueryExe.java diff --git a/web-adapter/src/main/java/com/zcloud/domain/facade/ZcloudDomainFacadeImpl.java b/web-adapter/src/main/java/com/zcloud/domain/facade/ZcloudDomainFacadeImpl.java new file mode 100644 index 0000000..7ca411e --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/domain/facade/ZcloudDomainFacadeImpl.java @@ -0,0 +1,33 @@ +package com.zcloud.domain.facade; + +import com.alibaba.cola.dto.MultiResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.domain.command.DomainWorkChangeExe; +import com.zcloud.domain.command.query.DomainWorkQueryExe; +import com.zcloud.gbscommon.zclouddomain.facade.ZcloudDomainFacade; +import com.zcloud.gbscommon.zclouddomain.request.DomainQry; +import com.zcloud.gbscommon.zclouddomain.request.DomainWorkChangeCmd; +import com.zcloud.gbscommon.zclouddomain.response.DomainListByUserCO; +import lombok.AllArgsConstructor; +import org.apache.dubbo.config.annotation.DubboService; + +import javax.annotation.Resource; + +@DubboService +public class ZcloudDomainFacadeImpl implements ZcloudDomainFacade { + @Resource + private DomainWorkQueryExe domainWorkQueryExe; + @Resource + private DomainWorkChangeExe domainWorkChangeExe; + + @Override + public MultiResponse listManagerByUserId(DomainQry domainQry) { + return MultiResponse.of(domainWorkQueryExe.execute(domainQry)); + } + + @Override + public SingleResponse updateRiskWorkChange(DomainWorkChangeCmd domainWorkChangeCmd) { + domainWorkChangeExe.execute(domainWorkChangeCmd); + return SingleResponse.buildSuccess(); + } +} diff --git a/web-app/src/main/java/com/zcloud/domain/command/DomainWorkChangeExe.java b/web-app/src/main/java/com/zcloud/domain/command/DomainWorkChangeExe.java new file mode 100644 index 0000000..4e33167 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/domain/command/DomainWorkChangeExe.java @@ -0,0 +1,243 @@ +package com.zcloud.domain.command; + +import cn.hutool.json.JSONUtil; +import com.alibaba.cola.dto.SingleResponse; +import com.alibaba.cola.exception.BizException; +import com.alibaba.fastjson.JSONObject; +import com.jjb.saas.message.client.message.facede.MessageFacade; +import com.jjb.saas.message.client.message.request.MessageSendCmd; +import com.jjb.saas.message.client.message.request.MessageTargetCmd; +import com.zcloud.domain.domain.config.MessageConfig; +import com.zcloud.domain.persistence.dataobject.DomainDepartmentDO; +import com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO; +import com.zcloud.domain.persistence.dataobject.DomainGroupDO; +import com.zcloud.domain.persistence.dataobject.DomainGroupUserDO; +import com.zcloud.domain.persistence.repository.DomainDepartmentRepository; +import com.zcloud.domain.persistence.repository.DomainDepartmentUserRepository; +import com.zcloud.domain.persistence.repository.DomainGroupRepository; +import com.zcloud.domain.persistence.repository.DomainGroupUserRepository; +import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil; +import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent; +import com.zcloud.gbscommon.utils.UuidUtil; +import com.zcloud.gbscommon.zclouddomain.request.DomainWorkChangeCmd; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * 领域工作交接执行器 + */ +@Slf4j +@Component +@AllArgsConstructor +public class DomainWorkChangeExe { + private final DomainDepartmentRepository domainDepartmentRepository; + private final DomainDepartmentUserRepository domainDepartmentUserRepository; + private final DomainGroupRepository domainGroupRepository; + private final DomainGroupUserRepository domainGroupUserRepository; + private final TodoListEventPusherUtil todoListEventPusherUtil; + private final MessageConfig messageConfig; + @DubboReference + private MessageFacade messageFacade; + + @Transactional(rollbackFor = Exception.class) + public void execute(DomainWorkChangeCmd domainWorkChangeCmd) { + checkParam(domainWorkChangeCmd); + if (changeDomainDepartment(domainWorkChangeCmd)) { + return; + } + if (changeDomainDepartmentUser(domainWorkChangeCmd)) { + return; + } + if (changeDomainGroup(domainWorkChangeCmd)) { + return; + } + if (changeDomainGroupUser(domainWorkChangeCmd)) { + return; + } + throw new BizException("未找到对应的领域交接工作"); + } + + private void checkParam(DomainWorkChangeCmd domainWorkChangeCmd) { + if (domainWorkChangeCmd == null || StringUtils.isBlank(domainWorkChangeCmd.getWorkId())) { + throw new BizException("工作标识不能为空"); + } + if (domainWorkChangeCmd.getOldUserId() == null) { + throw new BizException("原交接人员不能为空"); + } + if (domainWorkChangeCmd.getUserId() == null) { + throw new BizException("新交接人员不能为空"); + } + } + + private boolean changeDomainDepartment(DomainWorkChangeCmd domainWorkChangeCmd) { + DomainDepartmentDO domainDepartmentDO = domainDepartmentRepository.getByWorkId(domainWorkChangeCmd.getWorkId()); + if (domainDepartmentDO == null) { + return false; + } + if (!Objects.equals(domainDepartmentDO.getMasterUserId(), domainWorkChangeCmd.getOldUserId())) { + log.warn("领域负责人交接跳过,当前负责人已变更,workId:{}, oldUserId:{}, dbUserId:{}", + domainWorkChangeCmd.getWorkId(), domainWorkChangeCmd.getOldUserId(), domainDepartmentDO.getMasterUserId()); + return true; + } + domainDepartmentDO.setMasterUserId(domainWorkChangeCmd.getUserId()); + if (domainWorkChangeCmd.getDeptId() != null) { + domainDepartmentDO.setMasterDepartmentId(domainWorkChangeCmd.getDeptId()); + } + domainDepartmentRepository.updateById(domainDepartmentDO); + sendWorkChangeMessage(domainWorkChangeCmd, domainDepartmentDO.getId(), "领域负责人", buildDomainDepartmentContent(domainDepartmentDO)); + return true; + } + + private boolean changeDomainDepartmentUser(DomainWorkChangeCmd domainWorkChangeCmd) { + DomainDepartmentUserDO domainDepartmentUserDO = domainDepartmentUserRepository.getByWorkId(domainWorkChangeCmd.getWorkId()); + if (domainDepartmentUserDO == null) { + return false; + } + if (!Objects.equals(domainDepartmentUserDO.getUserId(), domainWorkChangeCmd.getOldUserId())) { + log.warn("领域审核人员交接跳过,当前审核人员已变更,workId:{}, oldUserId:{}, dbUserId:{}", + domainWorkChangeCmd.getWorkId(), domainWorkChangeCmd.getOldUserId(), domainDepartmentUserDO.getUserId()); + return true; + } + Long duplicateCount = domainDepartmentUserRepository.countByDomainDepartmentIdAndUserId( + domainDepartmentUserDO.getDomainDepartmentId(), domainWorkChangeCmd.getUserId(), domainDepartmentUserDO.getId()); + if (duplicateCount != null && duplicateCount > 0) { + throw new BizException("新交接人员已存在于该领域审核人员中"); + } + domainDepartmentUserDO.setUserId(domainWorkChangeCmd.getUserId()); + if (domainWorkChangeCmd.getDeptId() != null) { + domainDepartmentUserDO.setDepartmentId(domainWorkChangeCmd.getDeptId()); + } + domainDepartmentUserRepository.updateById(domainDepartmentUserDO); + DomainDepartmentDO domainDepartmentDO = domainDepartmentRepository.getInfoByUUID(domainDepartmentUserDO.getDomainDepartmentId()); + sendWorkChangeMessage(domainWorkChangeCmd, domainDepartmentUserDO.getId(), "领域审核人员", buildDomainDepartmentContent(domainDepartmentDO)); + return true; + } + + private boolean changeDomainGroup(DomainWorkChangeCmd domainWorkChangeCmd) { + DomainGroupDO domainGroupDO = domainGroupRepository.getByWorkId(domainWorkChangeCmd.getWorkId()); + if (domainGroupDO == null) { + return false; + } + if (!Objects.equals(domainGroupDO.getTeamUserId(), domainWorkChangeCmd.getOldUserId())) { + log.warn("领域组组长交接跳过,当前组长已变更,workId:{}, oldUserId:{}, dbUserId:{}", + domainWorkChangeCmd.getWorkId(), domainWorkChangeCmd.getOldUserId(), domainGroupDO.getTeamUserId()); + return true; + } + domainGroupDO.setTeamUserId(domainWorkChangeCmd.getUserId()); + if (domainWorkChangeCmd.getDeptId() != null) { + domainGroupDO.setTeamDepartmentId(domainWorkChangeCmd.getDeptId()); + } + if (domainWorkChangeCmd.getCorpId() != null) { + domainGroupDO.setCorpinfoId(domainWorkChangeCmd.getCorpId()); + } + domainGroupRepository.updateById(domainGroupDO); + sendWorkChangeMessage(domainWorkChangeCmd, domainGroupDO.getId(), "领域组组长", buildDomainGroupContent(domainGroupDO)); + return true; + } + + private boolean changeDomainGroupUser(DomainWorkChangeCmd domainWorkChangeCmd) { + DomainGroupUserDO domainGroupUserDO = domainGroupUserRepository.getByWorkId(domainWorkChangeCmd.getWorkId()); + if (domainGroupUserDO == null) { + return false; + } + if (!Objects.equals(domainGroupUserDO.getUserId(), domainWorkChangeCmd.getOldUserId())) { + log.warn("领域组成员交接跳过,当前成员已变更,workId:{}, oldUserId:{}, dbUserId:{}", + domainWorkChangeCmd.getWorkId(), domainWorkChangeCmd.getOldUserId(), domainGroupUserDO.getUserId()); + return true; + } + Long duplicateCount = domainGroupUserRepository.countByDomainGroupIdAndUserId( + domainGroupUserDO.getDomainGroupId(), domainWorkChangeCmd.getUserId(), domainGroupUserDO.getId()); + if (duplicateCount != null && duplicateCount > 0) { + throw new BizException("新交接人员已存在于该领域组成员中"); + } + domainGroupUserDO.setUserId(domainWorkChangeCmd.getUserId()); + if (domainWorkChangeCmd.getDeptId() != null) { + domainGroupUserDO.setDepartmentId(domainWorkChangeCmd.getDeptId()); + } + domainGroupUserRepository.updateById(domainGroupUserDO); + DomainGroupDO domainGroupDO = domainGroupRepository.getInfoByGroupId(domainGroupUserDO.getDomainGroupId()); + sendWorkChangeMessage(domainWorkChangeCmd, domainGroupUserDO.getId(), "领域组成员", buildDomainGroupContent(domainGroupDO)); + return true; + } + + private void sendWorkChangeMessage(DomainWorkChangeCmd domainWorkChangeCmd, Long foreignKey, String workProject, String workContent) { + try { + MessageSendCmd messageSendCmd = new MessageSendCmd(); + messageSendCmd.setBusinessId(UuidUtil.get32UUID()); + MessageTargetCmd messageTargetCmd = new MessageTargetCmd(); + messageTargetCmd.setUserId(domainWorkChangeCmd.getUserId()); + messageSendCmd.setTargetCmd(messageTargetCmd); + messageSendCmd.setSourceCode(resolveSourceCode(workProject)); + messageSendCmd.setNeedTokenEnum(false); + messageSendCmd.setParams(buildSendParams(domainWorkChangeCmd, workProject, workContent)); + log.info("领域工作交接发送消息参数:{}", JSONUtil.toJsonStr(messageSendCmd)); + SingleResponse response = messageFacade.send(messageSendCmd); + log.info("领域工作交接发送消息结果:{}", JSONUtil.toJsonStr(response)); + + /* TodoListAddEvent event = new TodoListAddEvent(); + event.setTitle("您有一条【领域工作】待处理"); + event.setContent(workProject + "交接待处理"); + event.setForeignKey(foreignKey); + event.setForeignSubsidiaryKey(foreignKey); + event.setReceiveUser(domainWorkChangeCmd.getUserId()); + event.setPcFlag(1); + event.setAppFlag(0); + event.setOtherParams(new JSONObject()); + todoListEventPusherUtil.sendMessageAddEvent(event);*/ + } catch (Exception e) { + log.error("领域工作交接发送消息失败", e); + } + } + + private String resolveSourceCode(String workProject) { + if ("领域负责人".equals(workProject) || "领域审核人员".equals(workProject)) { + return StringUtils.defaultIfEmpty(messageConfig.getDomainWorkChange(), messageConfig.getScoreTaskAssign()); + } + return StringUtils.defaultIfEmpty(messageConfig.getDomainWorkChange(), messageConfig.getTaskAssign()); + } + + private Map buildSendParams(DomainWorkChangeCmd domainWorkChangeCmd, String workProject, String workContent) { + Map sendParams = new HashMap<>(); + sendParams.put("oldUserId", domainWorkChangeCmd.getOldUserId()); + sendParams.put("newUserId", domainWorkChangeCmd.getUserId()); + sendParams.put("newUserName", domainWorkChangeCmd.getUserName()); + sendParams.put("workProject", workProject); + sendParams.put("workContent", workContent); + sendParams.put("DomainDepartment", workContent); + return sendParams; + } + + private String buildDomainDepartmentContent(DomainDepartmentDO domainDepartmentDO) { + if (domainDepartmentDO == null) { + return "领域配置"; + } + if (StringUtils.isNotEmpty(domainDepartmentDO.getDomainTypeName())) { + return domainDepartmentDO.getDomainTypeName(); + } + if (StringUtils.isNotEmpty(domainDepartmentDO.getMasterDepartmentName())) { + return domainDepartmentDO.getMasterDepartmentName(); + } + return StringUtils.defaultIfEmpty(domainDepartmentDO.getDomainType(), "领域配置"); + } + + private String buildDomainGroupContent(DomainGroupDO domainGroupDO) { + if (domainGroupDO == null) { + return "领域组配置"; + } + if (StringUtils.isNotEmpty(domainGroupDO.getDomainGroupName())) { + return domainGroupDO.getDomainGroupName(); + } + if (StringUtils.isNotEmpty(domainGroupDO.getDomainTypeName())) { + return domainGroupDO.getDomainTypeName(); + } + return StringUtils.defaultIfEmpty(domainGroupDO.getDomainType(), "领域组配置"); + } +} diff --git a/web-app/src/main/java/com/zcloud/domain/command/query/DomainWorkQueryExe.java b/web-app/src/main/java/com/zcloud/domain/command/query/DomainWorkQueryExe.java new file mode 100644 index 0000000..de37b64 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/domain/command/query/DomainWorkQueryExe.java @@ -0,0 +1,124 @@ +package com.zcloud.domain.command.query; + +import com.zcloud.domain.persistence.dataobject.DomainDepartmentDO; +import com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO; +import com.zcloud.domain.persistence.dataobject.DomainGroupDO; +import com.zcloud.domain.persistence.dataobject.DomainGroupUserDO; +import com.zcloud.domain.persistence.repository.DomainDepartmentRepository; +import com.zcloud.domain.persistence.repository.DomainDepartmentUserRepository; +import com.zcloud.domain.persistence.repository.DomainGroupRepository; +import com.zcloud.domain.persistence.repository.DomainGroupUserRepository; +import com.zcloud.gbscommon.zclouddomain.request.DomainQry; +import com.zcloud.gbscommon.zclouddomain.response.DomainListByUserCO; +import lombok.AllArgsConstructor; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +/** + * 领域待交接工作查询执行器 + */ +@Component +@AllArgsConstructor +public class DomainWorkQueryExe { + private final DomainDepartmentRepository domainDepartmentRepository; + private final DomainDepartmentUserRepository domainDepartmentUserRepository; + private final DomainGroupRepository domainGroupRepository; + private final DomainGroupUserRepository domainGroupUserRepository; + + public List execute(DomainQry domainQry) { + List result = new ArrayList<>(); + if (domainQry == null || domainQry.getUserId() == null || domainQry.getCorpinfoId() == null) { + return result; + } + result.addAll(listDomainDepartmentWork(domainQry)); + result.addAll(listDomainDepartmentUserWork(domainQry)); + result.addAll(listDomainGroupWork(domainQry)); + result.addAll(listDomainGroupUserWork(domainQry)); + return result; + } + + private List listDomainDepartmentWork(DomainQry domainQry) { + List domainDepartmentList = domainDepartmentRepository.listWorkByUserId(domainQry.getUserId(), domainQry.getCorpinfoId()); + List result = new ArrayList<>(); + for (DomainDepartmentDO domainDepartmentDO : domainDepartmentList) { + DomainDepartmentDO info = domainDepartmentRepository.getInfoByUUID(domainDepartmentDO.getDomainDepartmentId()); + DomainListByUserCO data = new DomainListByUserCO(); + data.setWorkId(domainDepartmentDO.getDomainDepartmentId()); + data.setWorkProject("领域负责人"); + data.setWorkContent(buildDomainDepartmentContent(info == null ? domainDepartmentDO : info)); + result.add(data); + } + return result; + } + + private List listDomainDepartmentUserWork(DomainQry domainQry) { + List domainDepartmentUserList = domainDepartmentUserRepository.listWorkByUserId(domainQry.getUserId(), domainQry.getCorpinfoId()); + List result = new ArrayList<>(); + for (DomainDepartmentUserDO domainDepartmentUserDO : domainDepartmentUserList) { + DomainDepartmentDO domainDepartmentDO = domainDepartmentRepository.getInfoByUUID(domainDepartmentUserDO.getDomainDepartmentId()); + DomainListByUserCO data = new DomainListByUserCO(); + data.setWorkId(domainDepartmentUserDO.getDomainDepartmentUserId()); + data.setWorkProject("领域审核人员"); + data.setWorkContent(buildDomainDepartmentContent(domainDepartmentDO)); + result.add(data); + } + return result; + } + + private List listDomainGroupWork(DomainQry domainQry) { + List domainGroupList = domainGroupRepository.listWorkByUserId(domainQry.getUserId(), domainQry.getCorpinfoId()); + List result = new ArrayList<>(); + for (DomainGroupDO domainGroupDO : domainGroupList) { + DomainGroupDO info = domainGroupRepository.getInfoByGroupId(domainGroupDO.getDomainGroupId()); + DomainListByUserCO data = new DomainListByUserCO(); + data.setWorkId(domainGroupDO.getDomainGroupId()); + data.setWorkProject("领域组组长"); + data.setWorkContent(buildDomainGroupContent(info == null ? domainGroupDO : info)); + result.add(data); + } + return result; + } + + private List listDomainGroupUserWork(DomainQry domainQry) { + List domainGroupUserList = domainGroupUserRepository.listWorkByUserId(domainQry.getUserId(), domainQry.getCorpinfoId()); + List result = new ArrayList<>(); + for (DomainGroupUserDO domainGroupUserDO : domainGroupUserList) { + DomainGroupDO domainGroupDO = domainGroupRepository.getInfoByGroupId(domainGroupUserDO.getDomainGroupId()); + DomainListByUserCO data = new DomainListByUserCO(); + data.setWorkId(domainGroupUserDO.getDomainGroupUserId()); + data.setWorkProject("领域组成员"); + data.setWorkContent(buildDomainGroupContent(domainGroupDO)); + result.add(data); + } + return result; + } + + private String buildDomainDepartmentContent(DomainDepartmentDO domainDepartmentDO) { + if (domainDepartmentDO == null) { + return "领域配置"; + } + if (StringUtils.isNotEmpty(domainDepartmentDO.getDomainTypeName())) { + return domainDepartmentDO.getDomainTypeName(); + } + if (StringUtils.isNotEmpty(domainDepartmentDO.getMasterDepartmentName())) { + return domainDepartmentDO.getMasterDepartmentName(); + } + return StringUtils.defaultIfEmpty(domainDepartmentDO.getDomainType(), "领域配置"); + } + + private String buildDomainGroupContent(DomainGroupDO domainGroupDO) { + if (domainGroupDO == null) { + return "领域组配置"; + } + if (StringUtils.isNotEmpty(domainGroupDO.getDomainGroupName())) { + return domainGroupDO.getDomainGroupName(); + } + if (StringUtils.isNotEmpty(domainGroupDO.getDomainTypeName())) { + return domainGroupDO.getDomainTypeName(); + } + return StringUtils.defaultIfEmpty(domainGroupDO.getDomainType(), "领域组配置"); + } +} diff --git a/web-domain/src/main/java/com/zcloud/domain/domain/config/MessageConfig.java b/web-domain/src/main/java/com/zcloud/domain/domain/config/MessageConfig.java index 5e7e330..1c4b9d4 100644 --- a/web-domain/src/main/java/com/zcloud/domain/domain/config/MessageConfig.java +++ b/web-domain/src/main/java/com/zcloud/domain/domain/config/MessageConfig.java @@ -31,4 +31,9 @@ public class MessageConfig { * 评分任务待分配 */ private String scoreTaskAssign; + + /** + * 领域工作交接通知 + */ + private String domainWorkChange; } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainDepartmentMapper.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainDepartmentMapper.java index a9c9c47..0dd4aac 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainDepartmentMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainDepartmentMapper.java @@ -6,6 +6,7 @@ import com.jjb.saas.framework.datascope.annotation.DataScope; import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.domain.persistence.dataobject.DomainDepartmentDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -29,5 +30,9 @@ public interface DomainDepartmentMapper extends BaseMapper { List listAll(Map params); DomainDepartmentDO getInfoByUUID(String domainDepartmentId); + + List listWorkByUserId(@Param("userId") Long userId, @Param("corpinfoId") Long corpinfoId); + + DomainDepartmentDO getByWorkId(@Param("workId") String workId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainDepartmentUserMapper.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainDepartmentUserMapper.java index dcf950e..090fb1f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainDepartmentUserMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainDepartmentUserMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -20,5 +21,13 @@ public interface DomainDepartmentUserMapper extends BaseMapper getListByDomainDepartmentId(String domainDepartmentId); IPage listPage(IPage iPage, Map params); + + List listWorkByUserId(@Param("userId") Long userId, @Param("corpinfoId") Long corpinfoId); + + DomainDepartmentUserDO getByWorkId(@Param("workId") String workId); + + Long countByDomainDepartmentIdAndUserId(@Param("domainDepartmentId") String domainDepartmentId, + @Param("userId") Long userId, + @Param("excludeId") Long excludeId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainGroupMapper.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainGroupMapper.java index 88f3242..84ed311 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainGroupMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainGroupMapper.java @@ -6,6 +6,7 @@ import com.jjb.saas.framework.datascope.annotation.DataScope; import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.domain.persistence.dataobject.DomainGroupDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -29,5 +30,9 @@ public interface DomainGroupMapper extends BaseMapper { List listAll(Map params); DomainGroupDO getInfoByGroupId(String domainGroupId); + + List listWorkByUserId(@Param("userId") Long userId, @Param("corpinfoId") Long corpinfoId); + + DomainGroupDO getByWorkId(@Param("workId") String workId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainGroupUserMapper.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainGroupUserMapper.java index 857d78f..8f18077 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainGroupUserMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/DomainGroupUserMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zcloud.domain.persistence.dataobject.DomainGroupUserDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -20,5 +21,13 @@ public interface DomainGroupUserMapper extends BaseMapper { List getListByGroupId(String domainGroupId); IPage listPage(IPage iPage, Map params); + + List listWorkByUserId(@Param("userId") Long userId, @Param("corpinfoId") Long corpinfoId); + + DomainGroupUserDO getByWorkId(@Param("workId") String workId); + + Long countByDomainGroupIdAndUserId(@Param("domainGroupId") String domainGroupId, + @Param("userId") Long userId, + @Param("excludeId") Long excludeId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainDepartmentRepository.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainDepartmentRepository.java index 9a20c86..694ae88 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainDepartmentRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainDepartmentRepository.java @@ -24,5 +24,9 @@ public interface DomainDepartmentRepository extends BaseRepository listAll(Map params); DomainDepartmentDO getInfoByUUID(String domainDepartmentId); + + List listWorkByUserId(Long userId, Long corpinfoId); + + DomainDepartmentDO getByWorkId(String workId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainDepartmentUserRepository.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainDepartmentUserRepository.java index 2051065..494e07f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainDepartmentUserRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainDepartmentUserRepository.java @@ -19,5 +19,11 @@ public interface DomainDepartmentUserRepository extends BaseRepository getListByDomainDepartmentId(String domainDepartmentId); + + List listWorkByUserId(Long userId, Long corpinfoId); + + DomainDepartmentUserDO getByWorkId(String workId); + + Long countByDomainDepartmentIdAndUserId(String domainDepartmentId, Long userId, Long excludeId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainGroupRepository.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainGroupRepository.java index cd9254d..05c0f15 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainGroupRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainGroupRepository.java @@ -26,5 +26,9 @@ public interface DomainGroupRepository extends BaseRepository { DomainGroupDO getInfoByGroupId(String domainGroupId); + List listWorkByUserId(Long userId, Long corpinfoId); + + DomainGroupDO getByWorkId(String workId); + } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainGroupUserRepository.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainGroupUserRepository.java index e1688cd..c874fad 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainGroupUserRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/DomainGroupUserRepository.java @@ -20,5 +20,11 @@ public interface DomainGroupUserRepository extends BaseRepository getListByGroupId(String domainGroupId); + List listWorkByUserId(Long userId, Long corpinfoId); + + DomainGroupUserDO getByWorkId(String workId); + + Long countByDomainGroupIdAndUserId(String domainGroupId, Long userId, Long excludeId); + } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainDepartmentRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainDepartmentRepositoryImpl.java index 2a8e6b3..187b98f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainDepartmentRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainDepartmentRepositoryImpl.java @@ -68,5 +68,15 @@ public class DomainDepartmentRepositoryImpl extends BaseRepositoryImpl listWorkByUserId(Long userId, Long corpinfoId) { + return domainDepartmentMapper.listWorkByUserId(userId, corpinfoId); + } + + @Override + public DomainDepartmentDO getByWorkId(String workId) { + return domainDepartmentMapper.getByWorkId(workId); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainDepartmentUserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainDepartmentUserRepositoryImpl.java index 3a73a2e..60a54f0 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainDepartmentUserRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainDepartmentUserRepositoryImpl.java @@ -45,5 +45,20 @@ public class DomainDepartmentUserRepositoryImpl extends BaseRepositoryImpl getListByDomainDepartmentId(String domainDepartmentId) { return domainDepartmentUserMapper.getListByDomainDepartmentId(domainDepartmentId); } + + @Override + public List listWorkByUserId(Long userId, Long corpinfoId) { + return domainDepartmentUserMapper.listWorkByUserId(userId, corpinfoId); + } + + @Override + public DomainDepartmentUserDO getByWorkId(String workId) { + return domainDepartmentUserMapper.getByWorkId(workId); + } + + @Override + public Long countByDomainDepartmentIdAndUserId(String domainDepartmentId, Long userId, Long excludeId) { + return domainDepartmentUserMapper.countByDomainDepartmentIdAndUserId(domainDepartmentId, userId, excludeId); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainGroupRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainGroupRepositoryImpl.java index fee947b..29ecbca 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainGroupRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainGroupRepositoryImpl.java @@ -66,5 +66,15 @@ public class DomainGroupRepositoryImpl extends BaseRepositoryImpl listWorkByUserId(Long userId, Long corpinfoId) { + return domainGroupMapper.listWorkByUserId(userId, corpinfoId); + } + + @Override + public DomainGroupDO getByWorkId(String workId) { + return domainGroupMapper.getByWorkId(workId); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainGroupUserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainGroupUserRepositoryImpl.java index 7ccdf72..e74250b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainGroupUserRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/DomainGroupUserRepositoryImpl.java @@ -46,5 +46,20 @@ public class DomainGroupUserRepositoryImpl extends BaseRepositoryImpl getListByGroupId(String domainGroupId) { return domainGroupUserMapper.getListByGroupId(domainGroupId); } + + @Override + public List listWorkByUserId(Long userId, Long corpinfoId) { + return domainGroupUserMapper.listWorkByUserId(userId, corpinfoId); + } + + @Override + public DomainGroupUserDO getByWorkId(String workId) { + return domainGroupUserMapper.getByWorkId(workId); + } + + @Override + public Long countByDomainGroupIdAndUserId(String domainGroupId, Long userId, Long excludeId) { + return domainGroupUserMapper.countByDomainGroupIdAndUserId(domainGroupId, userId, excludeId); + } } diff --git a/web-infrastructure/src/main/resources/mapper/DomainDepartmentMapper.xml b/web-infrastructure/src/main/resources/mapper/DomainDepartmentMapper.xml index b25a670..341c895 100644 --- a/web-infrastructure/src/main/resources/mapper/DomainDepartmentMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/DomainDepartmentMapper.xml @@ -49,5 +49,24 @@ where dd.delete_enum = 'FALSE' and dd.domain_department_id = #{domainDepartmentId} + + + + diff --git a/web-infrastructure/src/main/resources/mapper/DomainDepartmentUserMapper.xml b/web-infrastructure/src/main/resources/mapper/DomainDepartmentUserMapper.xml index c553609..c8870fa 100644 --- a/web-infrastructure/src/main/resources/mapper/DomainDepartmentUserMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/DomainDepartmentUserMapper.xml @@ -24,5 +24,36 @@ and ddu.domain_department_id = #{params.domainDepartmentId} order by ddu.create_time desc + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/DomainGroupMapper.xml b/web-infrastructure/src/main/resources/mapper/DomainGroupMapper.xml index c8c69d2..752e537 100644 --- a/web-infrastructure/src/main/resources/mapper/DomainGroupMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/DomainGroupMapper.xml @@ -70,5 +70,32 @@ left join user u on dg.team_user_id = u.id and u.delete_enum = 'false' where dg.delete_enum = 'false' and dg.domain_group_id=#{domainGroupId} + + + + diff --git a/web-infrastructure/src/main/resources/mapper/DomainGroupUserMapper.xml b/web-infrastructure/src/main/resources/mapper/DomainGroupUserMapper.xml index 6d588ce..8a102b4 100644 --- a/web-infrastructure/src/main/resources/mapper/DomainGroupUserMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/DomainGroupUserMapper.xml @@ -24,5 +24,36 @@ group by dgu.id order by dgu.create_time desc + + + + + +