|
|
@ -1025,66 +1025,72 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi |
|
|
|
Date now = new Date(); |
|
|
|
//2.调用gov-org获取数据权限
|
|
|
|
ResiTopicAndGroupResultDTO group = baseDao.getGroupInfoByTopicId(topicTurnIssueFromDTO.getTopicId()); |
|
|
|
if(null != group){ |
|
|
|
CommonGridIdFormDTO dataFilterParam = new CommonGridIdFormDTO(); |
|
|
|
dataFilterParam.setUserId(topicTurnIssueFromDTO.getUserId()); |
|
|
|
dataFilterParam.setGridId(group.getGridId()); |
|
|
|
Result<CommonDataFilterResultDTO> 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<String> 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<CommonDataFilterResultDTO> 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<String> 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); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
throw new RenException(ModuleConstant.FAILURE_TO_TURN_ISSUE); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|