From d9ffcf899de19f2b9eb59b35db664ac61f0a6633 Mon Sep 17 00:00:00 2001 From: wangchao Date: Mon, 25 May 2020 15:12:07 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=AF=9D=E9=A2=98=E8=BD=AC=E8=AE=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/modules/topic/service/impl/ResiTopicServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index ebcabd61cb..9889f3b9a7 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -1078,6 +1078,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl Date: Mon, 25 May 2020 15:15:05 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=AF=9D=E9=A2=98=E8=BD=AC=E8=AE=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/modules/topic/service/impl/ResiTopicServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 9889f3b9a7..d60d161e6b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -1078,12 +1078,12 @@ public class ResiTopicServiceImpl extends BaseServiceImpl Date: Mon, 25 May 2020 15:43:47 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=80=80=E5=9B=9Ebug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/ProjectStaffDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml index 8fe0e2d5f4..ebeb87a063 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml @@ -34,7 +34,7 @@ + SELECT + COUNT(*) AS issueCount + FROM + issue + WHERE + del_flag = 0 + AND source_id = #{topicId} + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/GovIssueFeignClient.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/GovIssueFeignClient.java index d9f7c146b1..1b9622fb8e 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/GovIssueFeignClient.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/GovIssueFeignClient.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.IssueShiftedFromTopicFormDTO; import com.epmet.modules.feign.fallback.GovIssueFeignClientFallBack; +import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; @@ -26,4 +27,12 @@ public interface GovIssueFeignClient { **/ @PostMapping(value = "gov/issue/issue/topicshiftissue", consumes = MediaType.APPLICATION_JSON_VALUE) Result issueShiftedToTopic(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO); + + /** + * @Description 校验话题是否已转议题 + * @param formDTO + * @author zxc + */ + @PostMapping(value = "gov/issue/issue/checktopicshiftissue", consumes = MediaType.APPLICATION_JSON_VALUE) + Result checkTopicShiftIssue(TopicInfoFormDTO formDTO); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/fallback/GovIssueFeignClientFallBack.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/fallback/GovIssueFeignClientFallBack.java index b3cc109467..d518647f76 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/fallback/GovIssueFeignClientFallBack.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/fallback/GovIssueFeignClientFallBack.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.IssueShiftedFromTopicFormDTO; import com.epmet.modules.feign.GovIssueFeignClient; +import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import org.springframework.stereotype.Component; /** @@ -20,4 +21,9 @@ public class GovIssueFeignClientFallBack implements GovIssueFeignClient { public Result issueShiftedToTopic(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "issueShiftedToTopic", issueShiftedFromTopicFormDTO); } + + @Override + public Result checkTopicShiftIssue(TopicInfoFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "checkTopicShiftIssue", formDTO); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index d60d161e6b..9c6ecbc007 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -1025,67 +1025,72 @@ public class ResiTopicServiceImpl extends BaseServiceImpl dataFilterResult = - govOrgFeignClient.gridDataFilter(dataFilterParam); - if(dataFilterResult.success() && null != dataFilterResult.getData()){ - IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class); - issueInfo.setCreatedTime(now); - issueInfo.setGridId(group.getGridId()); - issueInfo.setCustomerId(group.getCustomerId()); - issueInfo.setOrgId(dataFilterResult.getData().getAgencyId()); - issueInfo.setOrgIdPath(dataFilterResult.getData().getOrgIdPath()); - issueInfo.setOrgName(dataFilterResult.getData().getOrgName()); - //3.获取小组名称、话题作者、议题发起人 - ResiGroupMemberInfoRedisDTO topicAuthor = resiGroupMemberRedis.get(group.getGroupId(), group.getTopicAuthorId()); - issueInfo.setTopicAuthor(null == topicAuthor ? ModuleConstant.EMPTY_STR : topicAuthor.getUserShowName()); - ResiGroupMemberInfoRedisDTO issueAuthor = resiGroupMemberRedis.get(group.getGroupId(),topicTurnIssueFromDTO.getUserId()); - issueInfo.setIssueAuthor(null == issueAuthor ? ModuleConstant.EMPTY_STR : issueAuthor.getUserShowName()); - ResiGroupInfoRedisDTO groupCache = resiGroupRedis.get(group.getGroupId()); - issueInfo.setGroupName(null == groupCache ? ModuleConstant.EMPTY_STR : groupCache.getGroupName()); - issueInfo.setVotableCount(resiGroupMemberService.gridResiCount(group.getGridId())); - //4.调用gov-issue新增议题 - Result issueResult = govIssueFeignClient.issueShiftedToTopic(issueInfo); - //5.修改话题shiftIssue字段 - if(issueResult.success() && StringUtils.isNotBlank(issueResult.getData())){ - ResiTopicEntity topic2Upd = new ResiTopicEntity(); - topic2Upd.setId(topicTurnIssueFromDTO.getTopicId()); - topic2Upd.setUpdatedBy(topicTurnIssueFromDTO.getUserId()); - topic2Upd.setShiftIssue(Boolean.TRUE); - topic2Upd.setIssueId(issueResult.getData()); - topic2Upd.setUpdatedTime(now); - int topicResult = baseDao.updateOne(topic2Upd); - //6.新增话题操作记录 - if(topicResult == NumConstant.ONE) { - ResiTopicOperationEntity operation = new ResiTopicOperationEntity(); - operation.setCreatedTime(now); - operation.setCreatedBy(topicTurnIssueFromDTO.getUserId()); - operation.setTopicId(topicTurnIssueFromDTO.getTopicId()); - operation.setOperationType(ModuleConstant.TOPIC_OPERATION_TYPE_SHIFT_ISSUE); - int operationResult = resiTopicOperationDao.insertOneByParams(operation); - if(operationResult != NumConstant.ONE){ - logger.warn(ModuleConstant.FAILURE_TO_ADD_TOPIC_OPERATION); - } - } - //7.更新组统计信息 议题数量+1 - resiGroupStatisticalDao.incryTotalIssues(group.getGroupId()); - if(null != groupCache && null != groupCache.getGroupStatisticalInfo()){ - groupCache.getGroupStatisticalInfo().setTotalIssues( - null == groupCache.getGroupStatisticalInfo().getTotalIssues() ? NumConstant.ONE - : groupCache.getGroupStatisticalInfo().getTotalIssues() + NumConstant.ONE - ); - resiGroupRedis.set(groupCache); + if(null == group) { + throw new RenException(ModuleConstant.FAILURE_TO_TURN_ISSUE); + } + TopicInfoFormDTO topicId = new TopicInfoFormDTO(); + topicId.setTopicId(topicTurnIssueFromDTO.getTopicId()); + Integer issueCount = govIssueFeignClient.checkTopicShiftIssue(topicId).getData(); + if (issueCount != NumConstant.ZERO){ + throw new RenException(ModuleConstant.ALREADY_SHIFT_ISSUE); + } + CommonGridIdFormDTO dataFilterParam = new CommonGridIdFormDTO(); + dataFilterParam.setUserId(topicTurnIssueFromDTO.getUserId()); + dataFilterParam.setGridId(group.getGridId()); + Result dataFilterResult = + govOrgFeignClient.gridDataFilter(dataFilterParam); + if(dataFilterResult.success() && null != dataFilterResult.getData()){ + IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class); + issueInfo.setCreatedTime(now); + issueInfo.setGridId(group.getGridId()); + issueInfo.setCustomerId(group.getCustomerId()); + issueInfo.setOrgId(dataFilterResult.getData().getAgencyId()); + issueInfo.setOrgIdPath(dataFilterResult.getData().getOrgIdPath()); + issueInfo.setOrgName(dataFilterResult.getData().getOrgName()); + //3.获取小组名称、话题作者、议题发起人 + ResiGroupMemberInfoRedisDTO topicAuthor = resiGroupMemberRedis.get(group.getGroupId(), group.getTopicAuthorId()); + issueInfo.setTopicAuthor(null == topicAuthor ? ModuleConstant.EMPTY_STR : topicAuthor.getUserShowName()); + ResiGroupMemberInfoRedisDTO issueAuthor = resiGroupMemberRedis.get(group.getGroupId(),topicTurnIssueFromDTO.getUserId()); + issueInfo.setIssueAuthor(null == issueAuthor ? ModuleConstant.EMPTY_STR : issueAuthor.getUserShowName()); + ResiGroupInfoRedisDTO groupCache = resiGroupRedis.get(group.getGroupId()); + issueInfo.setGroupName(null == groupCache ? ModuleConstant.EMPTY_STR : groupCache.getGroupName()); + issueInfo.setVotableCount(resiGroupMemberService.gridResiCount(group.getGridId())); + //4.调用gov-issue新增议题 + Result issueResult = govIssueFeignClient.issueShiftedToTopic(issueInfo); + //5.修改话题shiftIssue字段 + if(issueResult.success() && StringUtils.isNotBlank(issueResult.getData())){ + ResiTopicEntity topic2Upd = new ResiTopicEntity(); + topic2Upd.setId(topicTurnIssueFromDTO.getTopicId()); + topic2Upd.setUpdatedBy(topicTurnIssueFromDTO.getUserId()); + topic2Upd.setShiftIssue(Boolean.TRUE); + topic2Upd.setIssueId(issueResult.getData()); + topic2Upd.setUpdatedTime(now); + int topicResult = baseDao.updateOne(topic2Upd); + //6.新增话题操作记录 + if(topicResult == NumConstant.ONE) { + ResiTopicOperationEntity operation = new ResiTopicOperationEntity(); + operation.setCreatedTime(now); + operation.setCreatedBy(topicTurnIssueFromDTO.getUserId()); + operation.setTopicId(topicTurnIssueFromDTO.getTopicId()); + operation.setOperationType(ModuleConstant.TOPIC_OPERATION_TYPE_SHIFT_ISSUE); + int operationResult = resiTopicOperationDao.insertOneByParams(operation); + if(operationResult != NumConstant.ONE){ + logger.warn(ModuleConstant.FAILURE_TO_ADD_TOPIC_OPERATION); } - logger.warn(ModuleConstant.FAILURE_TO_UPDATE_TOPIC); - } + //7.更新组统计信息 议题数量+1 + resiGroupStatisticalDao.incryTotalIssues(group.getGroupId()); + if(null != groupCache && null != groupCache.getGroupStatisticalInfo()){ + groupCache.getGroupStatisticalInfo().setTotalIssues( + null == groupCache.getGroupStatisticalInfo().getTotalIssues() ? NumConstant.ONE + : groupCache.getGroupStatisticalInfo().getTotalIssues() + NumConstant.ONE + ); + resiGroupRedis.set(groupCache); + } + logger.warn(ModuleConstant.FAILURE_TO_UPDATE_TOPIC); + } - return; } - throw new RenException(ModuleConstant.FAILURE_TO_TURN_ISSUE); } /** diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java index e152122a75..f077980f7f 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java @@ -311,4 +311,6 @@ public interface ModuleConstant extends Constant { * 组状态 审核中 * */ String GROUP_STATUS_UNDER_AUDITTING = "under_auditting"; + + String ALREADY_SHIFT_ISSUE = "话题已转议题,请勿重复操作"; }