From d037b228fc9f0e867215be1ba2bf28ddbd1e4c0c Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 20 Nov 2020 09:51:06 +0800 Subject: [PATCH 01/31] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF=E8=AF=9D?= =?UTF-8?q?=E9=A2=98=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=B1=8F=E8=94=BD=E4=BF=A1=E6=81=AF?= =?UTF-8?q?,=E5=B1=8F=E8=94=BD=E7=90=86=E7=94=B1=E5=89=8D=E9=9D=A2?= =?UTF-8?q?=E6=8B=BC=E6=8E=A5=20"=E8=AF=9D=E9=A2=98=E5=B7=B2=E5=B1=8F?= =?UTF-8?q?=E8=94=BD=EF=BC=9A"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/modules/topic/service/impl/ResiTopicServiceImpl.java | 2 +- .../src/main/java/com/epmet/modules/utils/ModuleConstant.java | 2 ++ 2 files changed, 3 insertions(+), 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 a6a4139ffc..0188bb1a92 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 @@ -707,7 +707,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl records = resiTopicOperationDao.selectList(queryWrapper); if(null != records && records.size() > NumConstant.ZERO){ - hiddenDetailDTO.setHiddenReason(records.get(0).getOperationReason()); + hiddenDetailDTO.setHiddenReason(String.format("%s%s",ModuleConstant.HIDDEN_TOPIC_REASON_PREFIX,records.get(0).getOperationReason())); hiddenDetailDTO.setHiddenDateTime(records.get(0).getCreatedTime().getTime()/NumConstant.ONE_THOUSAND); ResiGroupMemberInfoRedisDTO hiddenBy = resiGroupMemberRedis.get(topicDetail.getGroupId(),records.get(0).getCreatedBy()); 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 9fa1359bdf..94cc6c4caf 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 @@ -329,5 +329,7 @@ public interface ModuleConstant extends Constant { String CLOSED_TOPIC_REASON_PREFIX = "话题已关闭:"; + String HIDDEN_TOPIC_REASON_PREFIX = "话题已屏蔽:"; + String CREATE_ISSUE_ERROR = "创建议题失败"; } From 7608d289570746f94fedf3e05ced83c8eacad2ee Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 10:02:01 +0800 Subject: [PATCH 02/31] =?UTF-8?q?=E5=BE=BD=E7=AB=A0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/UserIdAndBadgeIdResultDTO.java | 17 +++++++++++++++++ .../java/com/epmet/dao/ResiUserBadgeDao.java | 3 ++- .../service/impl/UserBadgeServiceImpl.java | 10 ++++++++-- .../main/resources/mapper/ResiUserBadgeDao.xml | 4 ++-- 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserIdAndBadgeIdResultDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserIdAndBadgeIdResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserIdAndBadgeIdResultDTO.java new file mode 100644 index 0000000000..e4bbba6566 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserIdAndBadgeIdResultDTO.java @@ -0,0 +1,17 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/20 上午9:54 + */ +@Data +public class UserIdAndBadgeIdResultDTO implements Serializable { + + private String userId; + + private String badgeId; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/ResiUserBadgeDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/ResiUserBadgeDao.java index 0ff7ee2c0d..310adb2330 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/ResiUserBadgeDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/ResiUserBadgeDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.ResiUserBadgeDTO; +import com.epmet.dto.result.UserIdAndBadgeIdResultDTO; import com.epmet.entity.ResiUserBadgeEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -43,6 +44,6 @@ public interface ResiUserBadgeDao extends BaseDao { */ void insertResiUserBadge(@Param("badges")List badges); - List selectUserIds(); + List selectUserIds(); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java index 44e1ac34ff..d6f7cfb7b8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java @@ -150,7 +150,7 @@ public class UserBadgeServiceImpl implements UserBadgeService { */ @Override public void initPartyMemberBadge(String userId,TokenDto tokenDto){ - List userIds = resiUserBadgeDao.selectUserIds(); + List userIds = resiUserBadgeDao.selectUserIds(); List badges = new ArrayList<>(); String partyBadgeId = badgeDao.getPartyBadgeId(null); if (StringUtils.isEmpty(userId)) { @@ -159,7 +159,13 @@ public class UserBadgeServiceImpl implements UserBadgeService { return; } if (!CollectionUtils.isEmpty(userIds)) { - userIds.stream().forEach(u -> partyMemberUserIds.stream().filter(p -> u.equals(p.getUserId())).forEach(p -> p.setReStatus(true))); + userIds.forEach(u -> { + partyMemberUserIds.forEach(p -> { + if (u.getUserId().equals(p.getUserId()) && u.getBadgeId().equals(partyBadgeId)){ + p.setReStatus(true); + } + }); + }); } List reUserIds = partyMemberUserIds.stream().filter(p -> !p.getReStatus()).map(p -> p.getUserId()).collect(Collectors.toList()); List userBaseInfoResultDTOS = userBaseInfoService.queryUserBaseInfo(reUserIds); diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/ResiUserBadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/ResiUserBadgeDao.xml index d67b6d08d0..912e6ed558 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/ResiUserBadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/ResiUserBadgeDao.xml @@ -41,8 +41,8 @@ - + SELECT USER_ID,BADGE_ID FROM resi_user_badge WHERE DEL_FLAG = 0 From aad2545c730ace162c5b173e5cac0d5cd0314e32 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 10:04:08 +0800 Subject: [PATCH 03/31] =?UTF-8?q?=E5=BE=BD=E7=AB=A0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/service/impl/UserBadgeServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java index d6f7cfb7b8..1cb0b2dbe8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java @@ -168,6 +168,9 @@ public class UserBadgeServiceImpl implements UserBadgeService { }); } List reUserIds = partyMemberUserIds.stream().filter(p -> !p.getReStatus()).map(p -> p.getUserId()).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(reUserIds)){ + return; + } List userBaseInfoResultDTOS = userBaseInfoService.queryUserBaseInfo(reUserIds); if (CollectionUtils.isEmpty(userBaseInfoResultDTOS)) { log.error("未查询到党员基本信息......"); From 61336b19989b7f71d606bad2b8014b54c88036f2 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 10:51:51 +0800 Subject: [PATCH 04/31] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E8=AF=A6=E6=83=85=EF=BC=8C=E5=8E=86=E5=8F=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/ApplicationDetailWorkFormDTO.java | 22 +++++++ .../form/ApplicationHistoryWorkFormDTO.java | 21 +++++++ .../ApplicationDetailWorkResultDTO.java | 62 ++++++++++++++++++ .../ApplicationHistoryWorkResultDTO.java | 53 ++++++++++++++++ .../dto/result/TopicInfoWorkResultDTO.java | 61 ++++++++++++++++++ .../gov-issue/gov-issue-server/pom.xml | 6 ++ .../controller/IssueAuditController.java | 32 +++++++++- .../epmet/dao/IssueApplicationHistoryDao.java | 10 +++ .../IssueApplicationHistoryService.java | 20 ++++++ .../IssueApplicationHistoryServiceImpl.java | 63 ++++++++++++++++++- .../mapper/IssueApplicationHistoryDao.xml | 15 +++++ .../ApplicationDetailCopyResultDTO.java | 9 +++ .../result/ApplicationDetailResultDTO.java | 10 +++ .../dto/group/result/TopicInfoResultDTO.java | 6 ++ .../group/feign/ResiGroupOpenFeignClient.java | 13 +++- .../ResiGroupOpenFeignClientFallback.java | 7 +++ .../service/impl/GroupIssueServiceImpl.java | 2 + 17 files changed, 409 insertions(+), 3 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailWorkFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryWorkFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailWorkResultDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryWorkResultDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoWorkResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailWorkFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailWorkFormDTO.java new file mode 100644 index 0000000000..7f586308d7 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailWorkFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/18 下午5:52 + */ +@Data +public class ApplicationDetailWorkFormDTO implements Serializable { + + private static final long serialVersionUID = 2611468185891863016L; + + public interface ApplicationDetailWork{} + + @NotBlank(message = "issueApplicationId不能为空",groups = {ApplicationDetailWork.class}) + private String issueApplicationId; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryWorkFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryWorkFormDTO.java new file mode 100644 index 0000000000..123a5236ff --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryWorkFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/19 下午2:05 + */ +@Data +public class ApplicationHistoryWorkFormDTO implements Serializable { + + private static final long serialVersionUID = -1609931427461117171L; + + public interface ApplicationHistoryWork{} + + @NotBlank(message = "议题ID不能为空",groups = {ApplicationHistoryWork.class}) + private String issueId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailWorkResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailWorkResultDTO.java new file mode 100644 index 0000000000..5e58db1a8f --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailWorkResultDTO.java @@ -0,0 +1,62 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/18 下午5:51 + */ +@Data +public class ApplicationDetailWorkResultDTO implements Serializable { + + private static final long serialVersionUID = 7351552491300420108L; + + /** + * 申请ID + */ + private String issueApplicationId; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 所属网格名称 + */ + private String gridName; + + /** + * 议题发起人 + */ + private String issuePublisher; + + /** + * 话题相关信息 + */ + private TopicInfoWorkResultDTO topicInfo; + + /** + * 议题建议 + */ + private String issueSuggestion; + + /** + * 议题发起人电话 + */ + private String issuePublisherMobile; + + + + public ApplicationDetailWorkResultDTO() { + this.issueApplicationId = ""; + this.issueTitle = ""; + this.gridName = ""; + this.issuePublisher = ""; + this.topicInfo = new TopicInfoWorkResultDTO(); + this.issuePublisherMobile = ""; + this.issueSuggestion = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryWorkResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryWorkResultDTO.java new file mode 100644 index 0000000000..ffbfcf483d --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryWorkResultDTO.java @@ -0,0 +1,53 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/19 下午2:08 + */ +@Data +public class ApplicationHistoryWorkResultDTO implements Serializable { + + private static final long serialVersionUID = 6310909348304378438L; + + /** + * 审核历史表id + */ + private String historyId; + + /** + * under_auditing:待审核; approved:已通过, rejected:已驳回 + */ + private String actionType; + + /** + * 操作时间戳 + */ + private Long operateTime; + + /** + * 驳回理由或者审核通过理由 + */ + private String reason; + + /** + * 工作人员姓名 + */ + private String staffName; + + @JsonIgnore + private String userId; + + public ApplicationHistoryWorkResultDTO() { + this.historyId = ""; + this.actionType = ""; + this.operateTime = NumConstant.ZERO_L; + this.reason = ""; + this.staffName = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoWorkResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoWorkResultDTO.java new file mode 100644 index 0000000000..261b5a1672 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoWorkResultDTO.java @@ -0,0 +1,61 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:14 上午 + */ +@Data +public class TopicInfoWorkResultDTO implements Serializable { + + private static final long serialVersionUID = -3445869627210569553L; + + /** + * 话题id + */ + private String topicId; + + /** + * 话题发表人昵称 + */ + private String publishedUser; + + /** + * 话题发表时间戳 + */ + private Long publishedTime; + + /** + * 话题内容 + */ + private String topicContent; + + /** + * 话题图片集合 + */ + private List topicImgs; + + /** + * 话题发表人电话 + */ + private String topicPublishMobile; + + @JsonIgnore + private String topicUserId; + + public TopicInfoWorkResultDTO() { + this.topicId = ""; + this.publishedUser = ""; + this.publishedTime = NumConstant.ZERO_L; + this.topicContent = ""; + this.topicImgs = new ArrayList<>(); + this.topicPublishMobile = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml index 0b00f44d12..091f3221de 100644 --- a/epmet-module/gov-issue/gov-issue-server/pom.xml +++ b/epmet-module/gov-issue/gov-issue-server/pom.xml @@ -90,6 +90,12 @@ 2.0.0 compile + + com.epmet + epmet-user-client + 2.0.0 + compile + diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java index 1defc33d48..399168e861 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java @@ -2,10 +2,14 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.form.ApplicationDetailWorkFormDTO; +import com.epmet.dto.form.ApplicationHistoryWorkFormDTO; import com.epmet.constant.IssueConstant; import com.epmet.dto.form.IssueAppQueryFormDTO; import com.epmet.dto.form.IssueApplicationIdFormDTO; +import com.epmet.dto.result.ApplicationDetailWorkResultDTO; import com.epmet.dto.result.ApplicationHistoryResDTO; +import com.epmet.dto.result.ApplicationHistoryWorkResultDTO; import com.epmet.dto.result.IssueApplicationResDTO; import com.epmet.service.IssueApplicationHistoryService; import com.epmet.service.IssueApplicationService; @@ -34,6 +38,8 @@ public class IssueAuditController { /** * @param formDTO * @author yinzuomei + * @description 待审核|| 已驳回 列表 + * @Date 2020/11/18 17:28 * @description 待审核列表 * @Date 2020/11/18 17:28 **/ @@ -48,7 +54,7 @@ public class IssueAuditController { * @param formDTO * @author yinzuomei * @description 已驳回 列表 - * @Date 2020/11/18 17:28 + * @Date 2020/11/18 17:28 **/ @PostMapping("rejectedlist") public Result> queryRejectedList(@RequestBody IssueAppQueryFormDTO formDTO) { @@ -81,4 +87,28 @@ public class IssueAuditController { ValidatorUtils.validateEntity(formDTO); return new Result>().ok(issueApplicationHistoryService.queryByIssueApplicationId(formDTO.getIssueApplicationId())); } + + /** + * @Description 待审核||已驳回 申请详情  + * @Param applicationDetailWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + @PostMapping("applicationdetail") + public Result applicationDetailWork(@RequestBody ApplicationDetailWorkFormDTO applicationDetailWorkFormDTO){ + ValidatorUtils.validateEntity(applicationDetailWorkFormDTO, ApplicationDetailWorkFormDTO.ApplicationDetailWork.class); + return new Result().ok(issueApplicationHistoryService.applicationDetailWork(applicationDetailWorkFormDTO)); + } + + /** + * @Description 议题详情- 根据issueId查询审核历史 + * @Param applicationHistoryWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + @PostMapping("issueaudithistory") + public Result> applicationHistoryWork(@RequestBody ApplicationHistoryWorkFormDTO applicationHistoryWorkFormDTO){ + ValidatorUtils.validateEntity(applicationHistoryWorkFormDTO,ApplicationHistoryWorkFormDTO.ApplicationHistoryWork.class); + return new Result>().ok(issueApplicationHistoryService.applicationHistoryWork(applicationHistoryWorkFormDTO)); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationHistoryDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationHistoryDao.java index e2639185b3..8c2eaecb6c 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationHistoryDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationHistoryDao.java @@ -19,8 +19,10 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.result.ApplicationHistoryResDTO; +import com.epmet.dto.result.ApplicationHistoryWorkResultDTO; import com.epmet.entity.IssueApplicationHistoryEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -40,4 +42,12 @@ public interface IssueApplicationHistoryDao extends BaseDao selectListByIssueApplicationId(String issueApplicationId); + + /** + * @Description 查询议题审核历史 + * @Param issueId + * @author zxc + * @date 2020/11/20 上午9:39 + */ + List applicationHistoryWork(@Param("issueId")String issueId); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationHistoryService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationHistoryService.java index b0d7aed3eb..bce61424fb 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationHistoryService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationHistoryService.java @@ -20,7 +20,11 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IssueApplicationHistoryDTO; +import com.epmet.dto.form.ApplicationDetailWorkFormDTO; +import com.epmet.dto.form.ApplicationHistoryWorkFormDTO; +import com.epmet.dto.result.ApplicationDetailWorkResultDTO; import com.epmet.dto.result.ApplicationHistoryResDTO; +import com.epmet.dto.result.ApplicationHistoryWorkResultDTO; import com.epmet.entity.IssueApplicationHistoryEntity; import java.util.List; @@ -101,4 +105,20 @@ public interface IssueApplicationHistoryService extends BaseService queryByIssueApplicationId(String issueApplicationId); + + /** + * @Description 待审核||已驳回 申请详情  + * @Param applicationDetailWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + ApplicationDetailWorkResultDTO applicationDetailWork(ApplicationDetailWorkFormDTO applicationDetailWorkFormDTO); + + /** + * @Description 议题详情- 根据issueId查询审核历史 + * @Param applicationHistoryWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + List applicationHistoryWork(ApplicationHistoryWorkFormDTO applicationHistoryWorkFormDTO); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationHistoryServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationHistoryServiceImpl.java index 1772e9a2e5..97c20b3352 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationHistoryServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationHistoryServiceImpl.java @@ -21,20 +21,32 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IssueApplicationHistoryDao; import com.epmet.dto.IssueApplicationHistoryDTO; -import com.epmet.dto.result.ApplicationHistoryResDTO; +import com.epmet.dto.form.ApplicationDetailWorkFormDTO; +import com.epmet.dto.form.ApplicationHistoryWorkFormDTO; +import com.epmet.dto.result.*; import com.epmet.entity.IssueApplicationHistoryEntity; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.service.IssueApplicationHistoryService; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 话题转议题审核历史表 @@ -45,6 +57,11 @@ import java.util.Map; @Service public class IssueApplicationHistoryServiceImpl extends BaseServiceImpl implements IssueApplicationHistoryService { + @Autowired + private ResiGroupOpenFeignClient resiGroupOpenFeignClient; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -108,4 +125,48 @@ public class IssueApplicationHistoryServiceImpl extends BaseServiceImpl result = resiGroupOpenFeignClient.applicationDetail(formDTO); + if (!result.success()){ + throw new RenException("工作端查询待审核||已驳回 申请详情失败......"); + } + if (null == result.getData()){ + return new ApplicationDetailWorkResultDTO(); + } + ApplicationDetailWorkResultDTO applicationDetailWorkResultDTO = ConvertUtils.sourceToTarget(result.getData(), ApplicationDetailWorkResultDTO.class); + TopicInfoWorkResultDTO topicInfoWorkResultDTO = ConvertUtils.sourceToTarget(result.getData().getTopicInfo(), TopicInfoWorkResultDTO.class); + applicationDetailWorkResultDTO.setTopicInfo(topicInfoWorkResultDTO); + return applicationDetailWorkResultDTO; + } + + /** + * @Description 议题详情- 根据issueId查询审核历史 + * @Param applicationHistoryWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + @Override + public List applicationHistoryWork(ApplicationHistoryWorkFormDTO applicationHistoryWorkFormDTO) { + List result = baseDao.applicationHistoryWork(applicationHistoryWorkFormDTO.getIssueId()); + if (CollectionUtils.isEmpty(result)){ + return new ArrayList<>(); + } + List userIds = result.stream().map(m -> m.getUserId()).collect(Collectors.toList()); + Result> listResult = epmetUserOpenFeignClient.queryUserBaseInfo(userIds); + if (!listResult.success()){ + throw new RenException("议题审核历史查询用户基本信息失败......"); + } + result.forEach(r -> listResult.getData().stream().filter(u -> r.getUserId().equals(u.getUserId())).forEach(u -> r.setStaffName(u.getRealName()))); + return result; + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationHistoryDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationHistoryDao.xml index cee15d1297..76c12d7381 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationHistoryDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationHistoryDao.xml @@ -19,4 +19,19 @@ iah.CREATED_TIME DESC + + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplicationDetailCopyResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplicationDetailCopyResultDTO.java index 49aed62fe9..537b8ddcc7 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplicationDetailCopyResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplicationDetailCopyResultDTO.java @@ -33,8 +33,16 @@ public class ApplicationDetailCopyResultDTO implements Serializable { */ private String issuePublisher; + /** + * 议题建议 + */ private String issueSuggestion; + /** + * 议题发起人电话 + */ + private String issuePublisherMobile; + /** * 话题相关信息 */ @@ -47,5 +55,6 @@ public class ApplicationDetailCopyResultDTO implements Serializable { this.issueSuggestion = ""; this.issuePublisher = ""; this.topicInfo = new TopicInfoResultDTO(); + this.issuePublisherMobile = ""; } } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplicationDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplicationDetailResultDTO.java index fb92ad47cf..2c86595653 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplicationDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplicationDetailResultDTO.java @@ -38,8 +38,16 @@ public class ApplicationDetailResultDTO implements Serializable { */ private TopicInfoResultDTO topicInfo; + /** + * 议题建议 + */ private String issueSuggestion; + /** + * 议题发起人电话 + */ + private String issuePublisherMobile; + private String gridId; private String topicId; @@ -52,5 +60,7 @@ public class ApplicationDetailResultDTO implements Serializable { this.gridName = ""; this.issuePublisher = ""; this.topicInfo = new TopicInfoResultDTO(); + this.issueSuggestion = ""; + this.issuePublisherMobile = ""; } } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/TopicInfoResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/TopicInfoResultDTO.java index f348482143..49ec851463 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/TopicInfoResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/TopicInfoResultDTO.java @@ -42,6 +42,11 @@ public class TopicInfoResultDTO implements Serializable { */ private List topicImgs; + /** + * 话题发表人电话 + */ + private String topicPublishMobile; + @JsonIgnore private String topicUserId; @@ -51,5 +56,6 @@ public class TopicInfoResultDTO implements Serializable { this.publishedTime = NumConstant.ZERO_L; this.topicContent = ""; this.topicImgs = new ArrayList<>(); + this.topicPublishMobile = ""; } } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index ba705a5893..0650373fe0 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -2,7 +2,9 @@ package com.epmet.resi.group.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; @@ -71,4 +73,13 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/topic/select-my-create-topic") Result> selectMyCreateTopic(@RequestBody TopicIdListFormDTO topicIdListFormDTO); -} + + /** + * @Description 待审核||已驳回 申请详情 + * @Param applicationDetailFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @PostMapping("resi/group/groupissue/applicationdetail") + Result applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO); + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 636acafb0e..4b8f0cdd64 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -3,7 +3,9 @@ package com.epmet.resi.group.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; @@ -49,4 +51,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result> selectMyCreateTopic(TopicIdListFormDTO topicIdListFormDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectMyCreateTopic", topicIdListFormDTO); } + + @Override + public Result applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "applicationDetail", applicationDetailFormDTO); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/GroupIssueServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/GroupIssueServiceImpl.java index 283de3e222..82117b6a86 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/GroupIssueServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/GroupIssueServiceImpl.java @@ -80,9 +80,11 @@ public class GroupIssueServiceImpl implements GroupIssueService { listResult.getData().forEach(user -> { if (user.getUserId().equals(data.getUserId())){ data.setIssuePublisher(user.getDistrict().concat("-").concat(user.getSurname()).concat(getMrOrMs(user.getGender()))); + data.setIssuePublisherMobile(user.getMobile()); } if (user.getUserId().equals(topicInfoResultDTO.getTopicUserId())){ topicInfoResultDTO.setPublishedUser(user.getDistrict().concat("-").concat(user.getSurname()).concat(getMrOrMs(user.getGender()))); + topicInfoResultDTO.setTopicPublishMobile(user.getMobile()); } }); List gridIds = new ArrayList<>(); From 5311a12228d1fc480d1330ecfcabda701aed793d Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 20 Nov 2020 10:54:13 +0800 Subject: [PATCH 05/31] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/service/impl/UserBadgeServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java index 1cb0b2dbe8..208611a01f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java @@ -278,7 +278,7 @@ public class UserBadgeServiceImpl implements UserBadgeService { private void validateParams(CertificationAddFormDTO certificationAddFormDTO, AuthFieldFormDTO authFieldFormDTO) { List authFieldResultDTOS = this.authField(authFieldFormDTO); if (CollectionUtils.isEmpty(authFieldResultDTOS)) { - throw new RenException("该徽章配置配置错误"); + throw new RenException("该徽章配置配置错误,参数参数:{}", JSON.toJSONString(authFieldFormDTO)); } Set requiredColumns = authFieldResultDTOS.stream() .filter(o -> NumConstant.ONE_STR.equals(o.getIsRequired())) From 8979c301d01fdf6de573fe0e220b9dff2c649127 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 11:01:13 +0800 Subject: [PATCH 06/31] =?UTF-8?q?=E5=86=B2=E7=AA=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index c3523ba490..62a36931cd 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -139,7 +139,6 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/topic/myparttopic") Result selectMyPartTopic(@RequestBody MyPartIssueFormDTO myPartIssueFormDTO); -} /** * @Description 待审核||已驳回 申请详情 @@ -149,4 +148,4 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/groupissue/applicationdetail") Result applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO); - } +} From cee30082bba707a84b0d082e7fce98d564e15b32 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 13:35:43 +0800 Subject: [PATCH 07/31] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E5=8A=A0=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/IssueAuditController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java index 399168e861..eae6791990 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java @@ -1,10 +1,12 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.RequirePermission; +import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.constant.IssueConstant; import com.epmet.dto.form.ApplicationDetailWorkFormDTO; import com.epmet.dto.form.ApplicationHistoryWorkFormDTO; -import com.epmet.constant.IssueConstant; import com.epmet.dto.form.IssueAppQueryFormDTO; import com.epmet.dto.form.IssueApplicationIdFormDTO; import com.epmet.dto.result.ApplicationDetailWorkResultDTO; @@ -106,6 +108,7 @@ public class IssueAuditController { * @author zxc * @date 2020/11/19 下午2:26 */ + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL) @PostMapping("issueaudithistory") public Result> applicationHistoryWork(@RequestBody ApplicationHistoryWorkFormDTO applicationHistoryWorkFormDTO){ ValidatorUtils.validateEntity(applicationHistoryWorkFormDTO,ApplicationHistoryWorkFormDTO.ApplicationHistoryWork.class); From e063404c8e2591029f7b438bad9ed0a5da233e67 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 20 Nov 2020 13:43:39 +0800 Subject: [PATCH 08/31] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/IssueAuditionFormDTO.java | 41 +++++ .../form/IssueShiftedFromTopicFormDTO.java | 41 +++-- ...picShiftedToIssueApplicationResultDTO.java | 44 ++++++ .../epmet/feign/GovIssueOpenFeignClient.java | 35 +++++ .../GovIssueOpenFeignClientFallBack.java | 37 +++++ .../IssueApplicationController.java | 14 ++ .../com/epmet/controller/IssueController.java | 29 +++- .../epmet/dao/IssueCustomerParameterDao.java | 10 +- .../service/IssueApplicationService.java | 1 + .../IssueCustomerParameterService.java | 9 ++ .../java/com/epmet/service/IssueService.java | 22 +++ .../impl/IssueApplicationServiceImpl.java | 4 +- .../IssueCustomerParameterServiceImpl.java | 12 ++ .../epmet/service/impl/IssueServiceImpl.java | 106 +++++++++++-- .../java/com/epmet/utils/ModuleConstants.java | 29 ++++ .../mapper/IssueCustomerParameterDao.xml | 9 ++ .../ResiTopicShiftIssueInitResultDTO.java | 10 ++ .../topic/service/ResiTopicService.java | 10 ++ .../service/impl/ResiTopicServiceImpl.java | 143 +++++++++++++++++- .../epmet/modules/utils/ModuleConstant.java | 7 + 20 files changed, 585 insertions(+), 28 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAuditionFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/FirstTopicShiftedToIssueApplicationResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAuditionFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAuditionFormDTO.java new file mode 100644 index 0000000000..1eb9b86791 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAuditionFormDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Description 工作人员审核议题结果传参 + * @ClassName IssueAuditionFormDTO + * @Auth wangc + * @Date 2020-11-19 10:29 + */ +@Data +public class IssueAuditionFormDTO implements Serializable { + + private static final long serialVersionUID = 5794088085884822811L; + + /** + * 申请id + */ + @NotBlank(message = "议题申请Id不能为空") + private String issueApplicationId; + + /** + * 同意备注 驳回理由 + */ + private String reason; + + /** + * approved:审核通过, rejected:驳回 + */ + @NotBlank(message = "审核结果不能为空") + private String actionType; + + /** + * 工作人员名称 + */ + private String staffName; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java index 399062ece8..0cf6a438aa 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java @@ -1,9 +1,12 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import javax.validation.Valid; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -17,86 +20,100 @@ import java.util.Date; public class IssueShiftedFromTopicFormDTO implements Serializable { private static final long serialVersionUID = -5744319584210140289L; + public interface IssueGenerationGroup extends CustomerClientShowGroup{} + + public interface PublicIssueGroup extends CustomerClientShowGroup{} + /** * 话题Id * */ - @NotBlank(message = "话题Id不能为空") + @NotBlank(message = "话题Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String topicId; /** * 议题名称 * */ - @NotBlank(message = "议题名称不能为空") + @NotBlank(message = "议题名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String issueTitle; /** * 建议 * */ - @NotBlank(message = "议题建议不能为空") + @NotBlank(message = "议题建议不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String suggestion; /** * 议题发起人Id * */ - @NotBlank(message = "议题发起人Id不能为空") + @NotBlank(message = "议题发起/审核人Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String userId; /** * 客户Id * */ - @NotBlank(message = "客户不能为空") + @NotBlank(message = "客户不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String customerId; /** * 网格Id * */ - @NotBlank(message = "网格Id不能为空") + @NotBlank(message = "网格Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String gridId; /** * AgencyId当前话题所在机构Id * */ - @NotBlank(message = "机关Id不能为空") + @NotBlank(message = "机关Id不能为空",groups = {IssueGenerationGroup.class}) private String orgId; /** * 所属机关 eg:11:22:33(本机关以及上级所有机关ID) * */ - @NotBlank(message = "所属机关全路径不能为空") + @NotBlank(message = "所属机关全路径不能为空",groups = {IssueGenerationGroup.class}) private String orgIdPath; /** * 当前话题所在网格名称 - 对应议题流程的处理部门 * */ - @NotBlank(message = "网格名称不能为空") + @NotBlank(message = "网格名称不能为空",groups = {IssueGenerationGroup.class}) private String orgName; /** * 议题创建时间 * */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull(message = "创建时间不能为空",groups = {IssueGenerationGroup.class}) private Date createdTime; /** * 小组名称 - 对应议题流程的小组名称(文案) * */ - @NotBlank(message = "小组名称不能为空") + @NotBlank(message = "小组名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String groupName; /** * 话题发起人名称 -对应议题流程的话题发起人(文案) * */ - @NotBlank(message = "话题发起人不能为空") + @NotBlank(message = "话题发起人不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String topicAuthor; /** * 议题发起人(组长)名称 - 对应议题流程的组长名称(文案) * */ - @NotBlank(message = "组长不能为空") + @NotBlank(message = "组长不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String issueAuthor; /** * 应表决数 * */ + @NotNull(message = "应表决数不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private Integer votableCount; + + /** + * 议题审核参数 + */ + private IssueAuditionFormDTO audition; + + @NotNull(message = "小组Id不能为空",groups = {IssueGenerationGroup.class}) + private String groupId; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/FirstTopicShiftedToIssueApplicationResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/FirstTopicShiftedToIssueApplicationResultDTO.java new file mode 100644 index 0000000000..df37c1eec1 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/FirstTopicShiftedToIssueApplicationResultDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 话题首次提交转议题时的返参 注意:只是首次,二次提交统一调用重新编辑提交接口 + * @ClassName FirstTopicShiftedToIssueApplicationResultDTO + * @Auth wangc + * @Date 2020-11-18 16:50 + */ +@Data +public class FirstTopicShiftedToIssueApplicationResultDTO implements Serializable { + private static final long serialVersionUID = 329020301144053656L; + + public interface SwitchRequiredGroup extends CustomerClientShowGroup{} + + public interface AllowAuditionGroup extends CustomerClientShowGroup{} + + public interface ForbidAuditionGroup extends CustomerClientShowGroup{} + + /** + * 已开启审核:open; 无需审核:close + */ + @NotBlank(message = "审核开关不能为空",groups = {SwitchRequiredGroup.class,AllowAuditionGroup.class,ForbidAuditionGroup.class}) + private String auditSwitch; + + /** + * 如果无需审核,直接生成议题,返回议题Id + * 如果需要审核,该属性为空 + */ + @NotBlank(message = "议题Id不能为空",groups = {ForbidAuditionGroup.class}) + private String issueId; + + /** + * 如果需要审核,生成议题申请记录,返回申请Id + * 如果无需审核,该属性为空 + */ + @NotBlank(message = "议题审核Id不能为空",groups = {AllowAuditionGroup.class}) + private String issueApplicationId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index a2ed3fb36e..0e87badf8a 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -3,6 +3,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IssueDTO; +import com.epmet.dto.IssueApplicationDTO; import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -19,10 +20,13 @@ import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO; import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -165,4 +169,35 @@ public interface GovIssueOpenFeignClient { **/ @PostMapping(value = "/gov/issue/issueapplicationhistory/querybyissueapplicationid",consumes = MediaType.APPLICATION_JSON_VALUE) Result> queryByIssueApplicationId(@RequestBody IssueApplicationIdFormDTO formDTO); + + /** + * @Description 根据条件查询议题申请信息 + * @param params + * @return com.epmet.commons.tools.utils.Result> + * @author wangc + * @date 2020.11.18 15:47 + */ + @GetMapping("/gov/issue/issueapplication/list") + Result> list(@RequestParam Map params); + + /** + * @Description 话题转移提接口 这里的逻辑包含 + * 是否需要审核 ,如无需审核,直接生成Issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + @PostMapping(value = "/gov/issue/issue/topic-shift-issue") + Result topicShiftedToIssueV2(@RequestBody IssueShiftedFromTopicFormDTO param); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index bc3bfa8fe6..2842fd826f 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IssueDTO; +import com.epmet.dto.IssueApplicationDTO; import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -21,6 +22,7 @@ import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO; import org.springframework.stereotype.Component; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -145,4 +147,39 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> queryByIssueApplicationId(IssueApplicationIdFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "queryByIssueApplicationId", formDTO); } + + /** + * @Description 根据条件查询议题申请信息 + * @param params + * @return com.epmet.commons.tools.utils.Result> + * @author wangc + * @date 2020.11.18 15:47 + */ + @Override + public Result> list(Map params) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "list", params); + } + + /** + * @Description 话题转移提接口 这里的逻辑包含 + * 是否需要审核 ,如无需审核,直接生成Issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + @Override + public Result topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO param) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "topicShiftedToIssueV2", param); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java index 8cfafb1287..7d03d01ca0 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java @@ -136,4 +136,18 @@ public class IssueApplicationController { List list=issueApplicationService.listIssueApp(formDTO); return new Result>().ok(list); } + /** + * @Description 根据条件查询议题申请信息 + * @param params + * @return com.epmet.commons.tools.utils.Result> + * @author wangc + * @date 2020.11.18 15:47 + */ + @GetMapping("list") + public Result> list(@RequestParam Map params){ + //此处限制必须传条件,不允许全查 + AssertUtils.isMapEmpty(params); + return new Result>().ok(issueApplicationService.list(params)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java index 7c159b6e3d..8ccb30aa15 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java @@ -5,7 +5,6 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.IssueDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.excel.IssueExcel; import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO; import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO; @@ -76,10 +75,36 @@ public class IssueController { **/ @PostMapping(value = "topicshiftissue") public Result issueShiftedToTopic(@RequestBody IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO){ - ValidatorUtils.validateEntity(issueShiftedFromTopicFormDTO); + ValidatorUtils.validateEntity(issueShiftedFromTopicFormDTO, IssueShiftedFromTopicFormDTO.IssueGenerationGroup.class); return new Result().ok(issueService.issueShiftedToTopic(issueShiftedFromTopicFormDTO)); } + /** + * @Description 话题转移提接口 这里的逻辑包含 + * 是否需要审核 ,如无需审核,直接生成Issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + @PostMapping(value = "topic-shift-issue") + public Result topicShiftedToIssueV2(@RequestBody IssueShiftedFromTopicFormDTO param){ + ValidatorUtils.validateEntity(param, IssueShiftedFromTopicFormDTO.PublicIssueGroup.class); + return new Result().ok( + issueService.topicShiftedToIssueV2(param) + ); + } + /** * @Description 获取表决中议题列表 * @param issueListFormDTO diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCustomerParameterDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCustomerParameterDao.java index 2aa4bb50e9..4e20988279 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCustomerParameterDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCustomerParameterDao.java @@ -51,5 +51,13 @@ public interface IssueCustomerParameterDao extends BaseDao { **/ String issueShiftedToTopic(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO); + /** + * @Description 话题转移提接口 这里的逻辑包含 + * 是否需要审核 ,如无需审核,直接生成Issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param issueShiftedFromTopicFormDTO + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO); + /** * @Description 表决中列表 * @param issueListForm @@ -276,4 +296,6 @@ public interface IssueService extends BaseService { * @return java.util.List */ List getClosedListByGroup(AllIssueFormDTO formDTO); + + //FirstTopicShiftedToIssueApplicationResultDTO TopicShiftedToIssueFirstly(); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java index 429bfad66e..7109d22494 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java @@ -36,6 +36,7 @@ import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO; import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO; import com.epmet.service.IssueApplicationService; import com.github.pagehelper.PageHelper; +import com.epmet.utils.ModuleConstants; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -71,10 +72,11 @@ public class IssueApplicationServiceImpl extends BaseServiceImpl getWrapper(Map params){ String id = (String)params.get(FieldConstant.ID_HUMP); + String topicId = (String)params.get(ModuleConstants.FIELD_JAVA_TOPIC_ID); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - + wrapper.eq(StringUtils.isNotBlank(topicId), ModuleConstants.FIELD_SQL_TOPIC_ID, topicId); return wrapper; } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCustomerParameterServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCustomerParameterServiceImpl.java index 4048fec972..e068798d59 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCustomerParameterServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCustomerParameterServiceImpl.java @@ -163,4 +163,16 @@ public class IssueCustomerParameterServiceImpl extends BaseServiceImpl implements IssueService { + protected static final Logger logger = LoggerFactory.getLogger(IssueServiceImpl.class); + @Autowired private IssueDao issueDao; @Autowired @@ -93,9 +91,6 @@ public class IssueServiceImpl extends BaseServiceImpl imp private GovOrgOpenFeignClient govOrgOpenFeignClient; @Autowired private ResiGroupOpenFeignClient resiGroupOpenFeignClient; - - protected static final Logger logger = LoggerFactory.getLogger(IssueServiceImpl.class); - @Autowired private IssueProcessService issueProcessService; @Autowired @@ -103,11 +98,17 @@ public class IssueServiceImpl extends BaseServiceImpl imp @Autowired private IssueProjectRelationService issueProjectRelationService; @Autowired - private IssueVoteStatisticalDao issueVoteStatisticalDao; + private IssueCustomerParameterService configurationParameterService; + @Autowired + private IssueApplicationService applicationService; + @Autowired + private IssueApplicationHistoryService historyService; @Autowired private EpmetUserFeignClient epmetUserFeignClient; @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + + @Value("${openapi.scan.server.url}") private String scanApiUrl; @Value("${openapi.scan.method.textSyncScan}") @@ -295,6 +296,89 @@ public class IssueServiceImpl extends BaseServiceImpl imp throw new RenException(ModuleConstants.FAILURE_TO_ADD_ISSUE); } + /** + * @Description 话题转移提接口,这里的逻辑包含: + * 是否需要审核 ,如无需审核,直接生成issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + @Override + public FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO param) { + FirstTopicShiftedToIssueApplicationResultDTO result = new FirstTopicShiftedToIssueApplicationResultDTO(); + + //0.判断此次来源是否审核,是居民端还是工作端 + boolean isStaffAudition = null != param.getAudition(); + //初始化缺省状态 : 审核中 + String defaultStatusUnderAuditing = isStaffAudition ? param.getAudition().getActionType() : ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING; + //1.查询该客户下是否开启议题审核 + boolean ifOpen = !StringUtils.equals(ModuleConstants.AUDIT_SWITCH_CLOSE,configurationParameterService.checkIssueAuditSwitchIfOpen(param.getCustomerId())); + result.setAuditSwitch(ifOpen ? ModuleConstants.AUDIT_SWITCH_OPEN : ModuleConstants.AUDIT_SWITCH_CLOSE); + //2.居民段组长提交议题审核 + if(ifOpen || isStaffAudition){ + //默认打开 + //2.1查询是否存在application记录 + Map applicationParam = new HashMap<>();applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID,param.getTopicId()); + List applicationList = applicationService.list(applicationParam); + List applyIds = new LinkedList<>(); + if(CollectionUtils.isEmpty(applicationList)){ + //首次提交 新增application + IssueApplicationDTO newApplication = ConvertUtils.sourceToTarget(param,IssueApplicationDTO.class); + newApplication.setApplyStatus(defaultStatusUnderAuditing); + applicationService.save(newApplication); + applyIds.add(newApplication.getId()); + }else{ + //重新提交 更新application + if(applicationList.size() > NumConstant.ONE){ + logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}",param.getTopicId()); + } + applicationList.forEach(apply -> { + IssueApplicationDTO carrier = new IssueApplicationDTO(); + carrier.setId(apply.getId()); + carrier.setApplyStatus(defaultStatusUnderAuditing); + carrier.setSuggestion(isStaffAudition ? apply.getSuggestion() : param.getSuggestion()); + carrier.setIssueTitle(isStaffAudition ? apply.getIssueTitle() : param.getIssueTitle()); + applicationService.update(carrier); + + applyIds.add(apply.getId()); + }); + } + //新增history + applyIds.forEach(id -> { + IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO(); + history.setActionType(defaultStatusUnderAuditing); + history.setCreatedTime(param.getCreatedTime()); + history.setCustomerId(param.getCustomerId()); + history.setIssueApplicationId(id); + history.setReason(isStaffAudition ? param.getAudition().getReason() : null); + history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null); + + historyService.save(history); + }); + + result.setIssueApplicationId(applyIds.iterator().next()); + } + //当无需审核或审核同意时,生成议题 + //注意,如果是二次提交申请,且此时审核开关被关闭,则无需更新application状态以及新增history记录 + if(!ifOpen || StringUtils.equals(ModuleConstants.AUDITION_TYPE_APPROVAL,defaultStatusUnderAuditing)){ + ValidatorUtils.validateEntity(param, IssueShiftedFromTopicFormDTO.IssueGenerationGroup.class); + result.setIssueId(issueShiftedToTopic(param)); + } + + return result; + } + /** * @Description 表决中列表 * @param issueListForm diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java index 7418ccfdf8..2bc79654d6 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java @@ -22,6 +22,11 @@ public interface ModuleConstants { * */ String ISSUE_STATUS_CLOSED = "closed"; + /** + * 议题审核状态 审核中 + */ + String ISSUE_APPLICATION_STATUS_UNDER_AUDITING = "under_auditing"; + /** * 议题来源:居民段话题 * */ @@ -81,6 +86,10 @@ public interface ModuleConstants { String FIELD_JAVA_STATISTICAL_DATE = "statisticalDate"; + String FIELD_SQL_TOPIC_ID = "TOPIC_ID"; + + String FIELD_JAVA_TOPIC_ID = "topicId"; + /** * 议题表决态度 赞成 * */ @@ -109,4 +118,24 @@ public interface ModuleConstants { * */ String CREATED_BY_SYSTEM = "system"; + /** + * 议题审核动作 通过 + */ + String AUDITION_TYPE_APPROVAL = "approved"; + + /** + * 议题审核动作 驳回 + */ + String AUDITION_TYPE_REJECT = "rejected"; + + /** + * 议题审核开关 开启 + */ + String AUDIT_SWITCH_OPEN = "open"; + + /** + * 议题审核开关 关闭 + */ + String AUDIT_SWITCH_CLOSE = "close"; + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCustomerParameterDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCustomerParameterDao.xml index f4fd66235a..bdf0c549db 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCustomerParameterDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCustomerParameterDao.xml @@ -30,5 +30,14 @@ WHERE CUSTOMER_ID = #{customerId} + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicShiftIssueInitResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicShiftIssueInitResultDTO.java index 3984b68fa5..8dbd5c2e35 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicShiftIssueInitResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicShiftIssueInitResultDTO.java @@ -44,4 +44,14 @@ public class ResiTopicShiftIssueInitResultDTO implements Serializable { * 话题发布时间 * */ private Long releaseTime; + + /** + * 申请id 需要调用issue服务生成一条application或者拿到历史application(有且仅有一条)再返回 + */ + private String issueApplicationId; + + /** + * 审核状态。under_auditting:审核中,approved:通过,rejected:驳回 不会有approved状态,因为已经转议题的话题不能再触发转议题 + */ + private String applyStatus; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index c907cd80c4..bf66a029e5 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO; import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.modules.topic.entity.ResiTopicEntity; import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO; @@ -248,6 +249,15 @@ public interface ResiTopicService extends BaseService { **/ void shiftIssue(ResiTopicTurnIssueFromDTO topicTurnIssueFromDTO); + /** + * @Description 话题转议题 添加内容审核 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.20 10:26 + */ + FirstTopicShiftedToIssueApplicationResultDTO shiftIssueV2(ResiTopicTurnIssueFromDTO param); + /** * @Description 政府端查看议题详情时的话题相关信息 * @param govTopicIssueInfoFormDTO 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 b2edfcbd19..9a26415681 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 @@ -36,12 +36,18 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.OrgInfoConstant; import com.epmet.dto.CustomerGridDTO; +import com.epmet.dto.IssueApplicationDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.dto.result.CommonDataFilterResultDTO; +import com.epmet.dto.result.IssueInitiatorResultDTO; +import com.epmet.dto.result.UserResiInfoResultDTO; +import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.modules.constant.GroupMemberConstant; import com.epmet.modules.constant.ResiGroupRedisKeys; import com.epmet.modules.feign.EpmetUserFeignClient; @@ -152,6 +158,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl param = new HashMap<>(); param.put(ModuleConstant.FILED_TOPIC_ID_HUMP,topicIdFormDTO.getTopicId()); + Result> record = issueOpenFeignClient.list(param); + if(!record.success()){ + log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,查询转议题提交记录失败,话题Id:{}",topicIdFormDTO.getTopicId()); + throw new RenException(ModuleConstant.FAILED_QUERY_ISSUE_APPLICATION_RECORD); + } + if(!CollectionUtils.isEmpty(record.getData())){ + if(record.getData().size() > NumConstant.ONE){ + log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,查出多条转移提提交记录,话题Id:{}",topicIdFormDTO.getTopicId()); + } + result.setIssueApplicationId(record.getData().get(NumConstant.ZERO).getId()); + result.setApplyStatus(record.getData().get(NumConstant.ZERO).getApplyStatus()); + } + return result; } throw new RenException(ModuleConstant.FAILED_QUERY_TOPIC_INFO); } @@ -1354,6 +1378,123 @@ public class ResiTopicServiceImpl extends BaseServiceImpl textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScan); + if (!textSyncScanResult.success()) { + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + log.error(String.format(TopicConstant.SHIFT_ISSUE, issueTitle, suggestion)); + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + } + FirstTopicShiftedToIssueApplicationResultDTO result = null; + + //1.统一时间(群组服务 -> 议题服务) + Date now = new Date(); + //2.调用gov-org获取数据权限 + ResiTopicAndGroupResultDTO group = baseDao.getGroupInfoByTopicId(topicTurnIssueFromDTO.getTopicId()); + 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())); + issueInfo.setGroupId(group.getGroupId()); + //4.调用gov-issue新增议题 + Result issueResult = issueOpenFeignClient.topicShiftedToIssueV2(issueInfo); + if (issueResult == null || !issueResult.success() || null == issueResult.getData()) { + throw new RenException(ModuleConstant.CREATE_ISSUE_ERROR); + } + + result = issueResult.getData(); + ValidatorUtils.validateEntity(result, FirstTopicShiftedToIssueApplicationResultDTO.SwitchRequiredGroup.class); + if(StringUtils.equals("close",result.getAuditSwitch()))ValidatorUtils.validateEntity(result, FirstTopicShiftedToIssueApplicationResultDTO.ForbidAuditionGroup.class);else ValidatorUtils.validateEntity(result, FirstTopicShiftedToIssueApplicationResultDTO.AllowAuditionGroup.class); + + //5.修改话题shiftIssue字段 + ResiTopicEntity topic2Upd = new ResiTopicEntity(); + topic2Upd.setId(topicTurnIssueFromDTO.getTopicId()); + topic2Upd.setUpdatedBy(topicTurnIssueFromDTO.getUserId()); + topic2Upd.setShiftIssue(Boolean.TRUE); + topic2Upd.setIssueId(issueResult.getData().getIssueId()); + 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); + } + } else 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); + } + + } + + return result; + + } + /** * @Description 政府端查看议题详情时的话题相关信息 * @param govTopicIssueInfoFormDTO 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 9fa1359bdf..92ed858aef 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 @@ -287,6 +287,11 @@ public interface ModuleConstant extends Constant { * */ String DATE_FORMAT_PARSE_FAILURE = "日期格式转换失败,异常信息:%s"; + /** + * 查询转议题提交记录失败 + */ + String FAILED_QUERY_ISSUE_APPLICATION_RECORD = "查询转议题提交记录失败"; + /** * 话题转议题失败 * */ @@ -325,6 +330,8 @@ public interface ModuleConstant extends Constant { String FILED_TOPIC_ID = "TOPIC_ID"; + String FILED_TOPIC_ID_HUMP = "topicId"; + String FIELD_OPERATION_TYPE = "OPERATION_TYPE"; String CLOSED_TOPIC_REASON_PREFIX = "话题已关闭:"; From 01a42497c34f0af8efe6b1f1a80ce7d5f4da0281 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 14:05:55 +0800 Subject: [PATCH 09/31] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=BE=BD=E7=AB=A0?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/redis/UserBadgeRedis.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java index 16644fa332..13a8dd8b2c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java @@ -178,7 +178,7 @@ public class UserBadgeRedis { * @date 2020.11.05 13:37 */ public long pushOrRemoveUserBadge4List(String userId, String badgeId, String customerId) { - List orient = obtainUserBadge2List(userId,customerId); + List orient = redisUtils.lrange(UserRedisKeys.getResiUserBadgeKey(customerId,userId), NumConstant.ZERO, NumConstant.ONE_NEG, UserBadgeUnitFormDTO.class); UserBadgeUnitFormDTO unit = null; if (!CollectionUtils.isEmpty(orient)) { @@ -206,7 +206,7 @@ public class UserBadgeRedis { if (poolOpt.isPresent()) unit = ConvertUtils.sourceToTarget(poolOpt.get(), UserBadgeUnitFormDTO.class); else return NumConstant.ZERO; } - redisUtils.leftPush(UserRedisKeys.getResiUserBadgeKey(customerId, userId), unit); + redisUtils.leftPush(UserRedisKeys.getResiUserBadgeKey(customerId, userId), unit,-1); return NumConstant.ONE; } From 2c7e78572d55d1e990c03c840067c166be1eedc4 Mon Sep 17 00:00:00 2001 From: wxz Date: Fri, 20 Nov 2020 14:46:09 +0800 Subject: [PATCH 10/31] =?UTF-8?q?=E5=8A=A0=E4=B8=AA=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/modules/group/service/impl/ResiGroupServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 04718f2add..e5507ab766 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -526,6 +526,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl Date: Fri, 20 Nov 2020 14:48:57 +0800 Subject: [PATCH 11/31] =?UTF-8?q?=E5=88=A0=E9=99=A4x=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ResiGroupServiceImpl.java | 1358 ----------------- 1 file changed, 1358 deletions(-) delete mode 100644 epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java deleted file mode 100644 index e5507ab766..0000000000 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ /dev/null @@ -1,1358 +0,0 @@ -/** - * Copyright 2018 人人开源 https://www.renren.io - *

- * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - *

- * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - *

- * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.epmet.modules.group.service.impl; - -import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.constant.AppClientConstant; -import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; -import com.epmet.commons.tools.constant.FieldConstant; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.exception.EpmetErrorCode; -import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.scan.param.ImgScanParamDTO; -import com.epmet.commons.tools.scan.param.ImgTaskDTO; -import com.epmet.commons.tools.scan.param.TextScanParamDTO; -import com.epmet.commons.tools.scan.param.TextTaskDTO; -import com.epmet.commons.tools.scan.result.SyncScanResult; -import com.epmet.commons.tools.security.user.LoginUserUtil; -import com.epmet.commons.tools.utils.*; -import com.epmet.constant.ReadFlagConstant; -import com.epmet.dto.form.*; -import com.epmet.dto.result.UserResiInfoResultDTO; -import com.epmet.dto.result.UserRoleResultDTO; -import com.epmet.feign.EpmetMessageOpenFeignClient; -import com.epmet.modules.constant.UserMessageConstant; -import com.epmet.modules.feign.EpmetMessageFeignClient; -import com.epmet.modules.feign.EpmetUserFeignClient; -import com.epmet.modules.feign.GovOrgFeignClient; -import com.epmet.modules.group.dao.GroupEditSubmitRecordDao; -import com.epmet.modules.group.dao.ResiGroupDao; -import com.epmet.modules.group.dao.ResiGroupOperationDao; -import com.epmet.modules.group.entity.GroupEditSubmitRecordEntity; -import com.epmet.modules.group.entity.ResiGroupEntity; -import com.epmet.modules.group.entity.ResiGroupOperationEntity; -import com.epmet.modules.group.redis.ResiGroupRedis; -import com.epmet.modules.group.service.ResiGroupOperationService; -import com.epmet.modules.group.service.ResiGroupService; -import com.epmet.modules.group.service.ResiGroupStatisticalService; -import com.epmet.modules.member.dao.GroupMemeberOperationDao; -import com.epmet.modules.member.dao.ResiGroupMemberDao; -import com.epmet.modules.member.redis.ResiGroupMemberRedis; -import com.epmet.modules.member.service.GroupMemeberOperationService; -import com.epmet.modules.member.service.ResiGroupMemberService; -import com.epmet.modules.utils.ModuleConstant; -import com.epmet.resi.group.constant.*; -import com.epmet.resi.group.dto.UserRoleDTO; -import com.epmet.resi.group.dto.group.*; -import com.epmet.resi.group.dto.group.form.GridIdFormDTO; -import com.epmet.resi.group.dto.group.form.ShouldVoteCountFormDTO; -import com.epmet.resi.group.dto.group.form.*; -import com.epmet.resi.group.dto.group.result.*; -import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO; -import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; -import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO; -import com.github.pagehelper.PageHelper; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; - -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.stream.Collectors; - -/** - * 群组信息表 - * - * @author generator generator@elink-cn.com - * @since v1.0.0 2020-03-28 - */ -@Service -public class ResiGroupServiceImpl extends BaseServiceImpl implements ResiGroupService { - private Logger logger = LoggerFactory.getLogger(getClass()); - - @Autowired - private ResiGroupMemberService resiGroupMemberService; - - @Autowired - private ResiGroupOperationService resiGroupOperationService; - - @Autowired - private EpmetUserFeignClient epmetUserFeignClient; - - @Autowired - private GroupMemeberOperationService groupMemeberOperationService; - - @Autowired - private ResiGroupStatisticalService resiGroupStatisticalService; - - @Autowired - private ResiGroupOperationDao resiGroupOperationDao; - - @Autowired - private ResiGroupMemberDao resiGroupMemberDao; - - @Autowired - private GroupMemeberOperationDao groupMemeberOperationDao; - - @Autowired - private ResiGroupRedis resiGroupRedis; - - @Autowired - private ResiGroupMemberRedis resiGroupMemberRedis; - - @Autowired - private GovOrgFeignClient govOrgFeignClient; - - @Autowired - private EpmetMessageFeignClient epmetMessageFeignClient; - - @Autowired - private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; - - @Autowired - private ResiGroupDao resiGroupDao; - - @Autowired - private GroupEditSubmitRecordDao groupEditSubmitRecordDao; - - @Autowired - private LoginUserUtil loginUserUtil; - - @Autowired - private CpUserDetailRedis sysUserInfoRedis; - - @Value("${openapi.scan.server.url}") - private String scanApiUrl; - - @Value("${openapi.scan.method.textSyncScan}") - private String textSyncScanMethod; - - @Value("${openapi.scan.method.imgSyncScan}") - private String imgSyncScanMethod; - - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, ResiGroupDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, ResiGroupDTO.class); - } - - private QueryWrapper getWrapper(Map params) { - String id = (String) params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public ResiGroupDTO get(String id) { - ResiGroupEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, ResiGroupDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(ResiGroupDTO dto) { - ResiGroupEntity entity = ConvertUtils.sourceToTarget(dto, ResiGroupEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(ResiGroupDTO dto) { - ResiGroupEntity entity = ConvertUtils.sourceToTarget(dto, ResiGroupEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } - - /** - * @param myGroupFormDTO - * @return com.epmet.commons.tools.utils.Result> - * @Author yinzuomei - * @Description 我的小组查询(包含我创建的小组+我加入的小组),以各组的最新话题时间有近到远排序) - * @Date 2020/3/28 20:37 - **/ - @Override - public List getMyGroup(MyGroupFormDTO myGroupFormDTO) { - int pageIndex = (myGroupFormDTO.getPageNo() - NumConstant.ONE) * myGroupFormDTO.getPageSize(); - myGroupFormDTO.setPageNo(pageIndex); - List myGroupList = baseDao.selectListMyGroup(myGroupFormDTO); - if (null == myGroupList || myGroupList.size() < 1) { - logger.info(String.format("我的小组查询为空,selectListMyGroup入参%s", JSON.toJSONString(myGroupFormDTO))); - return new ArrayList<>(); - } - return myGroupList; - } - - /** - * @param recommendGroupFormDTO - * @return com.epmet.commons.tools.utils.Result> - * @Author yinzuomei - * @Description 推荐组列表查询 - * @Date 2020/3/28 19:53 - **/ - @Override - public List getRecommendGroup(RecommendGroupFormDTO recommendGroupFormDTO) { - int pageIndex = (recommendGroupFormDTO.getPageNo() - NumConstant.ONE) * recommendGroupFormDTO.getPageSize(); - recommendGroupFormDTO.setPageNo(pageIndex); - //显示当前网格内所有当前用户还未加入的组,以组的人数由高到低排序;如果人数相同,以最新话题的时间有近到远排序 - List recommendGroupList = baseDao.selectListRecommendGroup(recommendGroupFormDTO); - if (null == recommendGroupList || recommendGroupList.size() == 0) { - logger.info(String.format("推荐小组查询为空,selectListRecommendGroup入参%s", JSON.toJSONString(recommendGroupFormDTO))); - return new ArrayList<>(); - } - for (RecommendGroupResultDTO recommendGroupResultDTO : recommendGroupList) { - GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationService.selectLatestRecord(recommendGroupResultDTO.getGroupId(), - recommendGroupFormDTO.getUserId()); - if (null != groupMemeberOperationDTO) { - recommendGroupResultDTO.setStatus(groupMemeberOperationDTO.getOperateStatus()); - } - } - return recommendGroupList; - } - - /** - * @param createdFormDTO - * @return com.epmet.commons.tools.utils.Result> - * @Author yinzuomei - * @Description 我创建的小组 - * @Date 2020/3/28 22:01 - **/ - @Override - public List getCreated(CreatedFormDTO createdFormDTO) { - int pageIndex = (createdFormDTO.getPageNo() - NumConstant.ONE) * createdFormDTO.getPageSize(); - createdFormDTO.setPageNo(pageIndex); - List createdResultDTOList = baseDao.selectListMyCreated(createdFormDTO); - if (null == createdResultDTOList || createdResultDTOList.size() == 0) { - logger.info(String.format("我创建的小组查询为空,selectListMyCreated入参%s", JSON.toJSONString(createdFormDTO))); - return new ArrayList<>(); - } - return createdResultDTOList; - } - - /** - * @param modifyGroupFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 修改组信息 - * @Date 2020/3/28 22:27 - **/ - @Transactional(rollbackFor = Exception.class) - @Override - public void modifyGroup(ModifyGroupFormDTO modifyGroupFormDTO) { - //校验是否是群主 - ResiGroupMemberDTO groupMemberDTO = resiGroupMemberService.getResiGroupMember(modifyGroupFormDTO.getGroupId(), modifyGroupFormDTO.getUserId()); - if (null == groupMemberDTO || ModuleConstant.GROUP_MEMBER.equals(groupMemberDTO.getGroupLeaderFlag())) { - logger.info(String.format("修改小组信息异常:%s",EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getMsg())); - throw new RenException(EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getCode()); - } - if (StringUtils.isBlank(modifyGroupFormDTO.getGroupHeadPhoto()) - && StringUtils.isBlank(modifyGroupFormDTO.getGroupName()) - && StringUtils.isBlank(modifyGroupFormDTO.getGroupIntroduction())) { - logger.info("小组信息未发生变更,无需更改"); - return; - } - int updatedRows = baseDao.modifyGroupInfo(modifyGroupFormDTO); - if (1 == updatedRows) { - logger.info("修改小组信息成功"); - }else{ - logger.error(String.format("修改小组信息失败,updatedRows=%s",updatedRows)); - } - } - - /** - * @param groupSummarizeFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 查看小组管理界面信息 - * @Date 2020/3/29 17:52 - **/ - @Override - public GroupSummarizeResultDTO getGroupSummarize(GroupSummarizeFormDTO groupSummarizeFormDTO) { - GroupSummarizeResultDTO groupSummarizeResultDTO = baseDao.selectGroupSummarize(groupSummarizeFormDTO); - if (null == groupSummarizeResultDTO) { - logger.warn(String.format("查看小组管理界面信息异常,userId=%s,groupId=%s",groupSummarizeFormDTO.getUserId(),groupSummarizeFormDTO.getGroupId())); - return new GroupSummarizeResultDTO(); - } - //获取组长信息 - Result groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupSummarizeFormDTO.getGroupId()); - if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { - groupSummarizeResultDTO.setLeaderName(groupLeaderUserInfo.getData().getShowName()); - } else { - logger.warn(String.format("查看小组管理界面信息错误,获取组长注册信息失败,接口返参%s",JSON.toJSONString(groupLeaderUserInfo))); - groupSummarizeResultDTO.setLeaderName(""); - } - return groupSummarizeResultDTO; - } - - /** - * @param groupId - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 根据组id查询组长信息 - * @Date 2020/3/30 15:07 - **/ - private Result getGroupLeaderUserInfo(String groupId) { - //群主名称需要调用feign查询 - ResiGroupEntity resiGroupEntity = baseDao.selectById(groupId); - if (null == resiGroupEntity) { - return new Result<>(); - } - ResiGroupMemberDTO groupMemberDTO = baseDao.selectGroupLeader(groupId); - if (null == groupMemberDTO) { - return new Result<>(); - } - UserResiInfoFormDTO resiUserInfoFormDTO = new UserResiInfoFormDTO(); - resiUserInfoFormDTO.setCustomerId(resiGroupEntity.getCustomerId()); - resiUserInfoFormDTO.setUserId(groupMemberDTO.getCustomerUserId()); - return epmetUserFeignClient.getUserResiInfoDTO(resiUserInfoFormDTO); - } - - /** - * @param applyCreateGroupFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 创建小组 - * @Date 2020/3/29 19:26 - **/ - @Transactional(rollbackFor = Exception.class) - @Override - public void applyCreateGroup(ApplyCreateGroupFormDTO applyCreateGroupFormDTO) { - //1、校验是否同名 - List resiGroupEntityList = this.getResiGroupEntityList(applyCreateGroupFormDTO); - if (null != resiGroupEntityList && resiGroupEntityList.size() > 0) { - logger.info(String.format("创建小组异常:%s",EpmetErrorCode.GROUP_ALREADY_EXISTED.getMsg())); - throw new RenException(EpmetErrorCode.GROUP_ALREADY_EXISTED.getCode()); - } - - //2.内容检查 - scanGroupEditContent(applyCreateGroupFormDTO.getGroupName(), - applyCreateGroupFormDTO.getGroupIntroduction(), - applyCreateGroupFormDTO.getGroupHeadPhoto()); - - //3.1、查询当前申请人的身份,生成对应格式的消息内容 - UserRoleDTO userRoleDTO = this.checkPartyMemberOrWarmHeated(applyCreateGroupFormDTO.getApp(), - applyCreateGroupFormDTO.getUserId(), - applyCreateGroupFormDTO.getCustomerId(), - applyCreateGroupFormDTO.getGridId()); - if (!NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag()) && !NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())) { - logger.info(String.format("创建小组异常:%s",EpmetErrorCode.CANNOT_CREATE_GROUP.getMsg())); - throw new RenException(EpmetErrorCode.CANNOT_CREATE_GROUP.getCode()); - } - String roleName = ""; - if(NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag())){ - roleName = ModuleConstant.PARTYMEMBER; - }else if(NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())){ - roleName = ModuleConstant.WAREMHEARTED_RESI; - } - - //3.2、插入一条待审核的组信息 - ResiGroupEntity resiGroupEntity = this.structureResiGroupEntity(applyCreateGroupFormDTO); - insert(resiGroupEntity); - //4.获取居民注册信息 - UserResiInfoFormDTO resiParam = new UserResiInfoFormDTO(); - resiParam.setCustomerId(applyCreateGroupFormDTO.getCustomerId()); - resiParam.setUserId(applyCreateGroupFormDTO.getUserId()); - Result resiResult = - epmetUserFeignClient.getUserResiInfoDTO(resiParam); - String userName = ""; - if(resiResult.success() && null != resiResult.getData()){ - userName = (StringUtils.isBlank(resiResult.getData().getSurname()) ? "" : resiResult.getData().getSurname()) - + (StringUtils.isBlank(resiResult.getData().getName()) ? "" :resiResult.getData().getName()); - } - userName = StringUtils.isBlank(userName) ? ModuleConstant.UNKNOWN : userName; - String msg = String.format(UserMessageConstant.CREATION_OF_GROUP_MESSAGE_TEMPLATE,roleName,userName,applyCreateGroupFormDTO.getGroupName()); - //4.2、插入一条待审核的操作记录 - ResiGroupOperationDTO resiGroupOperation = new ResiGroupOperationDTO(); - resiGroupOperation.setResiGroupId(resiGroupEntity.getId()); - resiGroupOperation.setState(GroupStateConstant.GROUP_UNDER_AUDITTING); - resiGroupOperation.setOperateUserId(applyCreateGroupFormDTO.getUserId()); - resiGroupOperation.setMessageText(msg); - resiGroupOperation.setReadFlag(ModuleConstant.UNREAD); - resiGroupOperationService.save(resiGroupOperation); - //5、插入一群成员信息(群主) - ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO(); - resiGroupMemberDTO.setCustomerUserId(applyCreateGroupFormDTO.getUserId()); - resiGroupMemberDTO.setResiGroupId(resiGroupEntity.getId()); - resiGroupMemberDTO.setGroupLeaderFlag(LeaderFlagConstant.GROUP_LEADER); - resiGroupMemberDTO.setStatus(MemberStateConstant.UNDER_AUDITTING); - resiGroupMemberDTO.setEnterGroupType(EnterGroupTypeConstant.CREATED); - resiGroupMemberService.save(resiGroupMemberDTO); - //6、插入一条入群记录(群主的) - GroupMemeberOperationDTO groupMemeberOperationDTO = new GroupMemeberOperationDTO(); - groupMemeberOperationDTO.setCustomerUserId(applyCreateGroupFormDTO.getUserId()); - groupMemeberOperationDTO.setGroupId(resiGroupEntity.getId()); - groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.UNDER_AUDITTING); - groupMemeberOperationDTO.setOperateUserId(applyCreateGroupFormDTO.getUserId()); - groupMemeberOperationDTO.setEnterGroupType(EnterGroupTypeConstant.CREATED); - groupMemeberOperationService.save(groupMemeberOperationDTO); - //7、群初始统计记录 - /*UserRoleDTO userRoleDTO = this.checkPartyMemberOrWarmHeated(applyCreateGroupFormDTO.getApp(), - applyCreateGroupFormDTO.getUserId(), - applyCreateGroupFormDTO.getCustomerId(), - applyCreateGroupFormDTO.getGridId());*/ - ResiGroupStatisticalDTO resiGroupStatisticalDTO = new ResiGroupStatisticalDTO(); - resiGroupStatisticalDTO.setResiGroupId(resiGroupEntity.getId()); - resiGroupStatisticalDTO.setTotalMembers(NumConstant.ONE); - resiGroupStatisticalDTO.setTotalNormalMemebers(NumConstant.ONE); - resiGroupStatisticalDTO.setTotalTopics(NumConstant.ZERO); - resiGroupStatisticalDTO.setTotalIssues(NumConstant.ZERO); - if (NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag())) { - resiGroupStatisticalDTO.setTotalPartyMembers(NumConstant.ONE); - } else { - resiGroupStatisticalDTO.setTotalPartyMembers(NumConstant.ZERO); - } - if (NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())) { - resiGroupStatisticalDTO.setTotalEarnestMemebers(NumConstant.ONE); - } else { - resiGroupStatisticalDTO.setTotalEarnestMemebers(NumConstant.ZERO); - } - resiGroupStatisticalService.save(resiGroupStatisticalDTO); - //发送消息:创建小组 - sendMsgResi2Gov(UserMessageConstant.CREATE_GROUP_APPLYING_MSG_TITLE,msg,applyCreateGroupFormDTO.getGridId(),applyCreateGroupFormDTO.getUserId(),applyCreateGroupFormDTO.getCustomerId()); - //更新政府端:工作-基层治理-群组管理reddot - resiGroupRedis.addWorkGrassrootsGroupRedDotValue(applyCreateGroupFormDTO.getGridId()); - } - - - private void setWorkGrassrootsGroupRedDot(String gridId) { - try{ - - }catch(Exception e){ - e.printStackTrace(); - } - } - - /** - * @param applyCreateGroupFormDTO - * @return java.util.List - * @Author yinzuomei - * @Description 查询是否存在相同名字的群 - * @Date 2020/3/30 16:01 - **/ - private List getResiGroupEntityList(ApplyCreateGroupFormDTO applyCreateGroupFormDTO) { - List list = baseDao.checkResiGroupName(applyCreateGroupFormDTO); - return list; - } - - /** - * @param initApplyGroupFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 加入小组界面初始化 - * @Date 2020/3/30 10:17 - **/ - @Override - public void initApplyGroup(InitApplyGroupFormDTO initApplyGroupFormDTO) { - UserResiInfoFormDTO resiUserInfoFormDTO = new UserResiInfoFormDTO(); - resiUserInfoFormDTO.setUserId(initApplyGroupFormDTO.getUserId()); - resiUserInfoFormDTO.setCustomerId(initApplyGroupFormDTO.getCustomerId()); - Result result = epmetUserFeignClient.getUserResiInfoDTO(resiUserInfoFormDTO); - if (!result.success() || null == result.getData() || StringUtils.isBlank(result.getData().getRegMobile())) { - logger.info(String.format("加入小组界面初始化查询成功,当前用户非注册居民,epmet-user-server接口入参%s,返回%s",JSON.toJSONString(resiUserInfoFormDTO),JSON.toJSONString(result))); - throw new RenException(EpmetErrorCode.CANNOT_JOIN_GROUP.getCode()); - } - } - - private ResiGroupEntity structureResiGroupEntity(ApplyCreateGroupFormDTO applyCreateGroupFormDTO) { - ResiGroupEntity resiGroupEntity = new ResiGroupEntity(); - resiGroupEntity.setCustomerId(applyCreateGroupFormDTO.getCustomerId()); - resiGroupEntity.setGridId(applyCreateGroupFormDTO.getGridId()); - resiGroupEntity.setGroupHeadPhoto(applyCreateGroupFormDTO.getGroupHeadPhoto()); - resiGroupEntity.setGroupName(applyCreateGroupFormDTO.getGroupName()); - resiGroupEntity.setGroupIntroduction(applyCreateGroupFormDTO.getGroupIntroduction()); - resiGroupEntity.setCreatedBy(applyCreateGroupFormDTO.getUserId()); - resiGroupEntity.setState(GroupStateConstant.GROUP_UNDER_AUDITTING); - return resiGroupEntity; - } - - /** - * @param initApplyCreatedGroupFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 校验用户是否是热心居民或者党员 - * @Date 2020/3/30 15:50 - **/ - @Override - public void initApplyCreatedGroup(InitApplyCreatedGroupFormDTO initApplyCreatedGroupFormDTO) { - UserRoleDTO userRoleDTO = this.checkPartyMemberOrWarmHeated(initApplyCreatedGroupFormDTO.getApp(), - initApplyCreatedGroupFormDTO.getUserId(), - initApplyCreatedGroupFormDTO.getCustomerId(), - initApplyCreatedGroupFormDTO.getGridId()); - if (!NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag()) && !NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())) { - logger.info(String.format("创建小组界面初始化查询成功,用户角色列表%s",JSON.toJSONString(userRoleDTO))); - throw new RenException(EpmetErrorCode.CANNOT_CREATE_GROUP.getCode()); - } - } - - - /** - * @param agreeApplyGroupFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 审核群申请-测试用后面会放到政府端 - * @Date 2020/3/31 12:44 - **/ - @Override - @Transactional(rollbackFor = Exception.class) - public Result agreeApplyGroup(AgreeApplyGroupFormDTO agreeApplyGroupFormDTO) { - //1、更新组的状态 - ResiGroupDTO resiGroupDTO = this.get(agreeApplyGroupFormDTO.getGroupId()); - resiGroupDTO.setState(GroupStateConstant.GROUP_APPROVED); - this.update(resiGroupDTO); - //2、更新组的申请记录改为已通过 - ResiGroupOperationDTO resiGroupOperation = resiGroupOperationDao.selectGroupApplyRecord(agreeApplyGroupFormDTO.getGroupId()); - resiGroupOperation.setState(GroupStateConstant.GROUP_APPROVED); - resiGroupOperation.setOperateUserId(agreeApplyGroupFormDTO.getUserId()); - resiGroupOperationService.update(resiGroupOperation); - //3、将群主在群成员的状态改为已通过 - ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectLeaderMember(agreeApplyGroupFormDTO.getGroupId()); - resiGroupMemberDTO.setStatus(MemberStateConstant.APPROVED); - resiGroupMemberService.update(resiGroupMemberDTO); - //4、更新群主的出入群记录改为已通过 - GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationDao.selectLeaderRecord(agreeApplyGroupFormDTO.getGroupId()); - groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.APPROVED); - groupMemeberOperationDTO.setOperateUserId(agreeApplyGroupFormDTO.getUserId()); - groupMemeberOperationService.update(groupMemeberOperationDTO); - //5、给用户发送消息???待定 - //6、新增小组缓存信息、组员缓存信息 - Map param = new HashMap<>(); - param.put(ModuleConstant.RESI_GROUP_ID, resiGroupDTO.getId()); - param.put(FieldConstant.DEL_FLAG,NumConstant.ZERO_STR); - List statisticalList = resiGroupStatisticalService.list(param); - if (null != statisticalList && statisticalList.size() > 0) { - ResiGroupInfoRedisDTO groupRedis = transferToGroupInfoRedis(resiGroupDTO, statisticalList.get(0)); - resiGroupRedis.set(groupRedis); - - ResiGroupMemberInfoRedisDTO memberRedis = new ResiGroupMemberInfoRedisDTO(); - memberRedis.setUserId(resiGroupMemberDTO.getCustomerUserId()); - memberRedis.setGroupLeaderFlag(ModuleConstant.GROUP_LEADER); - memberRedis.setEnterGroupType(resiGroupMemberDTO.getEnterGroupType()); - memberRedis.setMemberStatus(resiGroupMemberDTO.getStatus()); - memberRedis.setGroupId(resiGroupMemberDTO.getResiGroupId()); - - UserResiInfoFormDTO userParam = new UserResiInfoFormDTO(); - userParam.setUserId(resiGroupMemberDTO.getCustomerUserId()); - userParam.setCustomerId(resiGroupDTO.getCustomerId()); - Result userInfo = - epmetUserFeignClient.getUserResiInfoDTO(userParam); - if(userInfo.success() && null != userInfo.getData()){ - memberRedis.setUserShowName(userInfo.getData().getShowName()); - memberRedis.setUserHeadPhoto(userInfo.getData().getHeadPhoto()); - memberRedis.setMemberMobile(userInfo.getData().getRegMobile()); - }else{ - logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND); - } - resiGroupMemberRedis.set(memberRedis); - } else { - /* - 当没有查询到组统计信息时,需要自己封装统计信息 - @param UserRoleFormDTO::getApp - @param UserRoleFormDTO::getCustomerId - @param UserRoleFormDTO::getUserId - @param UserRoleFormDTO::getGridId - 查询用户身份信息[热心居民/党员] - epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); - */ - logger.warn(ModuleConstant.NO_SUCH_GROUP_STASTICAL_INFO); - } - //发送消息 - UserMessageFormDTO userMessageFormDTO = new UserMessageFormDTO(); - userMessageFormDTO.setUserId(resiGroupDTO.getCreatedBy()); - userMessageFormDTO.setTitle(UserMessageConstant.AUDITED_GROUP_APPLYING_TITLE); - userMessageFormDTO.setReadFlag(ModuleConstant.UNREAD); - userMessageFormDTO.setApp(ModuleConstant.APP_RESI); - userMessageFormDTO.setGridId(resiGroupDTO.getGridId()); - userMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); - userMessageFormDTO.setMessageContent(String.format(UserMessageConstant.AGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName())); - if(!epmetMessageFeignClient.saveUserMessage(userMessageFormDTO).success()){ - logger.warn(String.format(ModuleConstant.FAILED_SEND_MESSAGE,String.format(UserMessageConstant.AGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName()))); - } - //发送微信订阅消息 - WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO(); - wxSubscribeMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); - wxSubscribeMessageFormDTO.setUserId(resiGroupDTO.getCreatedBy()); - wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI); - wxSubscribeMessageFormDTO.setGridId(resiGroupDTO.getGridId()); - wxSubscribeMessageFormDTO.setBehaviorType(UserMessageConstant.WX_APPLY_CREATE_GROUP_BEHAVIOR); - wxSubscribeMessageFormDTO.setMessageContent(String.format(UserMessageConstant.AGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName())); - wxSubscribeMessageFormDTO.setMessageTime(new Date()); - List msgList = new ArrayList<>(); - msgList.add(wxSubscribeMessageFormDTO); - epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); - //更新政府端:工作-基层治理-党员认证reddot - resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(resiGroupDTO.getGridId()); - return new Result(); - } - - /** - * @param disAgreeApplyGroupFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 审核(拒绝)群申请-测试用后面会放到政府端 - * @Date 2020/3/31 13:22 - **/ - @Override - @Transactional(rollbackFor = Exception.class) - public Result disagreeApplyGroup(DisAgreeApplyGroupFormDTO disAgreeApplyGroupFormDTO) { - //1、更新组的状态 - ResiGroupDTO resiGroupDTO = this.get(disAgreeApplyGroupFormDTO.getGroupId()); - resiGroupDTO.setState(GroupStateConstant.GROUP_REJECTED); - this.update(resiGroupDTO); - //2、更新组的申请记录改为已通过 - ResiGroupOperationDTO resiGroupOperation = resiGroupOperationDao.selectGroupApplyRecord(disAgreeApplyGroupFormDTO.getGroupId()); - resiGroupOperation.setState(GroupStateConstant.GROUP_REJECTED); - resiGroupOperation.setOperateUserId(disAgreeApplyGroupFormDTO.getUserId()); - resiGroupOperation.setOperateReason(disAgreeApplyGroupFormDTO.getRejectReason()); - resiGroupOperationService.update(resiGroupOperation); - //3、将群主在群成员的状态改为已通过 - ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectLeaderMember(disAgreeApplyGroupFormDTO.getGroupId()); - resiGroupMemberDTO.setStatus(MemberStateConstant.REJECTED); - resiGroupMemberService.update(resiGroupMemberDTO); - //4、更新群主的出入群记录改为已通过 - GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationDao.selectLeaderRecord(disAgreeApplyGroupFormDTO.getGroupId()); - groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.REJECTED); - groupMemeberOperationDTO.setOperateUserId(disAgreeApplyGroupFormDTO.getUserId()); - groupMemeberOperationService.update(groupMemeberOperationDTO); - //5、给用户发送消息???待定 - UserMessageFormDTO userMessageFormDTO = new UserMessageFormDTO(); - userMessageFormDTO.setUserId(resiGroupDTO.getCreatedBy()); - userMessageFormDTO.setTitle(UserMessageConstant.AUDITED_GROUP_APPLYING_TITLE); - userMessageFormDTO.setReadFlag(ModuleConstant.UNREAD); - userMessageFormDTO.setApp(ModuleConstant.APP_RESI); - userMessageFormDTO.setGridId(resiGroupDTO.getGridId()); - userMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); - userMessageFormDTO.setMessageContent(String.format(UserMessageConstant.DISAGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName(),disAgreeApplyGroupFormDTO.getRejectReason())); - if(!epmetMessageFeignClient.saveUserMessage(userMessageFormDTO).success()){ - logger.warn(String.format(ModuleConstant.FAILED_SEND_MESSAGE,String.format(UserMessageConstant.DISAGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName(),disAgreeApplyGroupFormDTO.getRejectReason()))); - } - - //发送微信订阅消息 - WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO(); - wxSubscribeMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); - wxSubscribeMessageFormDTO.setUserId(resiGroupDTO.getCreatedBy()); - wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI); - wxSubscribeMessageFormDTO.setGridId(resiGroupDTO.getGridId()); - wxSubscribeMessageFormDTO.setBehaviorType(UserMessageConstant.WX_APPLY_CREATE_GROUP_BEHAVIOR); - wxSubscribeMessageFormDTO.setMessageContent(String.format(UserMessageConstant.DISAGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName(),disAgreeApplyGroupFormDTO.getRejectReason())); - wxSubscribeMessageFormDTO.setMessageTime(new Date()); - List msgList = new ArrayList<>(); - msgList.add(wxSubscribeMessageFormDTO); - epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); - - //更新政府端:工作-基层治理-党员认证reddot - resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(resiGroupDTO.getGridId()); - return new Result(); - } - - /** - * @param app - * @param userId - * @param customerId - * @param gridId - * @return boolean - * @Author yinzuomei - * @Description 用户拥有党员或者热心居民标签返回true, 没有权限返回false - * @Date 2020/3/30 16:33 - **/ - @Override - public UserRoleDTO checkPartyMemberOrWarmHeated(String app, String userId, String customerId, String gridId) { - UserRoleDTO userRoleDTO = new UserRoleDTO(); - UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO(); - userRoleFormDTO.setApp(app); - userRoleFormDTO.setCustomerId(customerId); - userRoleFormDTO.setUserId(userId); - userRoleFormDTO.setGridId(gridId); - logger.info(String.format("用户同意邀请进组,获取当前用户所有角色入参:%s", JSON.toJSONString(userRoleFormDTO))); - Result> userRoleListResult = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); - if (!userRoleListResult.success()) { - logger.error("获取用户角色feign调用失败" + userRoleListResult.getMsg()); - return userRoleDTO; - } - List userRoleList = userRoleListResult.getData(); - if (null == userRoleList || userRoleList.size() == 0) { - return userRoleDTO; - } - for (UserRoleResultDTO userRoleResultDTO : userRoleList) { - if (EpmetRoleKeyConstant.PARTYMEMBER.equals(userRoleResultDTO.getRoleKey())) { - userRoleDTO.setPartymemberFlag(NumConstant.ONE_STR); - } - if (EpmetRoleKeyConstant.WARMHEARTED.equals(userRoleResultDTO.getRoleKey())) { - userRoleDTO.setWarmHeartedFlag(NumConstant.ONE_STR); - } - if (EpmetRoleKeyConstant.REGISTERED_RESI.equals(userRoleResultDTO.getRoleKey())) { - userRoleDTO.setRegisteredResiFlag(NumConstant.ONE_STR); - } - } - logger.info(String.format("用户同意邀请进组,获取当前用户所有角色返参:%s",JSON.toJSONString(userRoleDTO))); - return userRoleDTO; - } - - @Override - public Result> audited(GroupAuditedFromDTO formDTO) { - Result> result = new Result<>(); - //查询条件 - int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); - formDTO.setPageNo(pageIndex); - //获取审核列表 - List resultList = baseDao.selectAuditedGroupList(formDTO); - - return result.ok(resultList); - } - - @Override - public Result> getGroupsInGrid(GroupAuditedFromDTO formDTO) { - List resultList = new ArrayList<>(); - //查询条件 - int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); - formDTO.setPageNo(pageIndex); - List list = baseDao.selectGroupsByGridId(formDTO); - list.forEach(group -> { - GroupsInGridResultDTO groupsInGridResultDTO = new GroupsInGridResultDTO(); - if (MemberStateConstant.REJECTED.equals(group.getState())) { - groupsInGridResultDTO.setGroupId(group.getId()); - groupsInGridResultDTO.setGroupName(group.getGroupName()); - groupsInGridResultDTO.setGroupHeadPhoto(group.getGroupHeadPhoto()); - groupsInGridResultDTO.setStatus(group.getState()); - groupsInGridResultDTO.setTotalMember(NumConstant.ZERO); - groupsInGridResultDTO.setTotalPartyMember(NumConstant.ZERO); - resultList.add(groupsInGridResultDTO); - } else if(MemberStateConstant.APPROVED.equals(group.getState())) { - //缓存中获取组信息 - ResiGroupInfoRedisDTO resiGroupInfoRedisDTO = resiGroupRedis.get(group.getId()); - groupsInGridResultDTO.setGroupId(resiGroupInfoRedisDTO.getGroupId()); - groupsInGridResultDTO.setGroupName(resiGroupInfoRedisDTO.getGroupName()); - groupsInGridResultDTO.setGroupHeadPhoto(resiGroupInfoRedisDTO.getGroupHeadPhoto()); - groupsInGridResultDTO.setStatus(resiGroupInfoRedisDTO.getGroupState()); - groupsInGridResultDTO.setTotalMember(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalMembers()); - groupsInGridResultDTO.setTotalPartyMember(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalPartyMembers()); - resultList.add(groupsInGridResultDTO); - } - - - }); - - return new Result>().ok(resultList); - } - - @Override - public Result getGovGroupSummarize(GovGroupSummarizeFromDTO formDTO) { - GovGroupSummarizeResultDTO resultDTO = new GovGroupSummarizeResultDTO(); - //从缓存中获取组相关信息 - ResiGroupInfoRedisDTO resiGroupInfoRedisDTO = resiGroupRedis.get(formDTO.getGroupId()); - resultDTO.setGroupId(resiGroupInfoRedisDTO.getGroupId()); - resultDTO.setGroupHeadPhoto(resiGroupInfoRedisDTO.getGroupHeadPhoto()); - resultDTO.setGroupIntroduction(resiGroupInfoRedisDTO.getGroupIntroduction()); - resultDTO.setGroupName(resiGroupInfoRedisDTO.getGroupName()); - resultDTO.setTotalMember(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalMembers()); - resultDTO.setTotalTopics(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalTopics()); - - //获取组长信息 - Result groupLeaderUserInfo = this.getGroupLeaderUserInfo(formDTO.getGroupId()); - if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { - resultDTO.setLeaderName(groupLeaderUserInfo.getData().getShowName()); - } else { - logger.info("组长注册信息查询失败" + groupLeaderUserInfo.getMsg()); - } - - return new Result().ok(resultDTO); - } - - /** - * @return ResiGroupInfoRedisDTO - * @Description 将ResiGroupDTO与ResiGroupStatisticalDTO转换成ResiGroupInfoRedisDTO - * @Param ResiGroupDTO - * @Param ResiGroupStatisticalDTO - * @Author wangc - * @Date 2020.04.13 16:36 - **/ - private ResiGroupInfoRedisDTO transferToGroupInfoRedis(ResiGroupDTO groupDTO, ResiGroupStatisticalDTO statisticalDTO) { - - ResiGroupStatisticalInfoRedisDTO statisticalObjct = - ConvertUtils.sourceToTarget(statisticalDTO, ResiGroupStatisticalInfoRedisDTO.class); - statisticalObjct.setTotalEarnestMembers(statisticalDTO.getTotalEarnestMemebers()); - statisticalObjct.setTotalNormalMembers(statisticalDTO.getTotalNormalMemebers()); - ResiGroupInfoRedisDTO targetObject = - ConvertUtils.sourceToTarget(groupDTO, ResiGroupInfoRedisDTO.class); - targetObject.setGroupId(groupDTO.getId()); - targetObject.setGroupState(groupDTO.getState()); - SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN); - if (null != groupDTO.getLatestTopicPublishDate()) { - targetObject.setLatestTopicPublishDate(format.format(groupDTO.getLatestTopicPublishDate())); - } - targetObject.setGroupStatisticalInfo(statisticalObjct); - return targetObject; - } - - /** - * @Description 查询待审核的小组 (不从缓存中取,这时还没有成功建组,缓存中没有组数据) - * @Param ApplyingGroupsFormDTO - * @return Result> - * @Author wangc - * @Date 2020.04.18 10:18 - **/ - @Override - public Result> getApplyingGroups(ApplyingGroupsFormDTO params){ - if(null == params.getPageNo()){ - throw new RenException(ModuleConstant.PAGE_INDEX_NOT_NULL); - } - params.setPageNo((params.getPageNo() - NumConstant.ONE) * params.getPageSize()); - return new Result>().ok(baseDao.getApplyingGroupsByCustIdAndGridId(params)); - } - - /** - * @Description 建组申请详情 已审核(更新已读未读标识)/未审核 - * @Param AgreeApplyGroupFormDTO - * @return Result - * @Author wangc - * @Date 2020.04.19 23:32 - **/ - @Override - public Result getApplyingGroupDetail(CommonGroupIdFromDTO groupId){ - //1.查询小组信息 - //注意,这里查询出的组申请详情中,无论是已审核还是未审核,都是将该组信息关联到初始化组时状态为[待审核、审核通过、拒绝]其中之一的组操作记录上,并读取审核的已读未读信息,上述三种状态在一个组的所有操作记录当中只可能存在一种,与之后的屏蔽、取消屏蔽、关闭无关,如果查出多条说明建组的逻辑有问题 - ApplyingGroupDetailResultDTO detail = baseDao.getApplyingGroupDetailByGroupId(groupId.getGroupId()); - //2.查询用户信息(TODO 先走数据库,之后改成走缓存) - List userId = new ArrayList<>(); - userId.add(detail.getLeaderId()); - Result> userInfoResult = - epmetUserFeignClient.getUserResiInfoList(new UserResiInfoListFormDTO(userId)); - if(userInfoResult.success() && null != userInfoResult.getData() && userInfoResult.getData().size() >= 1){ - //姓氏+先生/女士 注:在数据库中拼接成[街道+显示名称]默认格式,故要进行截取 - //detail.setGroupLeaderName(userInfoResult.getData().get(0).getShowName().split("-")[NumConstant.ONE]); - //姓氏+名称 - detail.setGroupLeaderName(userInfoResult.getData().get(0).getSurname() + userInfoResult.getData().get(0).getName()); - detail.setStreet(userInfoResult.getData().get(0).getStreet()); - StringBuffer buffer = new StringBuffer(detail.getStreet()); - buffer.append(StringUtils.isBlank(buffer) ? "" : "-"); - detail.setGroupLeaderName(buffer.append(detail.getGroupLeaderName()).toString()); - }else{ - logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND); - } - //3.未读改成已读 - if(StringUtils.equals(detail.getReadFlag(),ModuleConstant.UNREAD)){ - ResiGroupOperationEntity operationEntity = new ResiGroupOperationEntity(); - operationEntity.setId(detail.getOperationId()); - operationEntity.setReadFlag(ModuleConstant.READ); - operationEntity.setUpdatedBy(groupId.getUserId()); - resiGroupOperationDao.updateById(operationEntity); - } - //4.将组长用户Id隐藏 - detail.setLeaderId(null); - detail.setOperationId(null); - - return new Result().ok(ConvertUtils.sourceToTarget(detail, ApplyingGroupDetailResult2DTO.class)); - } - - @Override - public List queryGroupProcessingCount(List gridIdList) { - List list=new ArrayList<>(); - for(String gridId:gridIdList){ - GroupProcessingCountResultDTO resultDTO=new GroupProcessingCountResultDTO(); - resultDTO.setGridId(gridId); - Integer auditingCreateGroupCount=resiGroupRedis.getWorkGrassrootsGroupRedDotValue(gridId); - Integer auditingGroupEditRecordCount=groupEditSubmitRecordDao.selectCountAuditingRec(gridId); - Integer auditingCount=auditingCreateGroupCount+auditingGroupEditRecordCount; - if (null == auditingCount) { - resultDTO.setCount(0); - } else { - resultDTO.setCount(auditingCount); - } - list.add(resultDTO); - } - return list; - } - - - /** - * @Description 查询一个网格下面所有组Id - * @param gridId - * @return List - * @author wangc - * @date 2020.05.14 10:54 - **/ - @Override - public List getGroupIdByGridId(String gridId) { - if(StringUtils.isBlank(gridId)) return null; - return baseDao.getGroupIdByGridId(gridId); - } - - /** - * @Description 返回 Map> - * @param gridIdList - * @return Map> - * @author wangc - * @date 2020.05.22 09:27 - **/ - @Override - public Map> getGroupIdsByGridIdList(List gridIdList) { - if(null == gridIdList || gridIdList.size() < NumConstant.ONE) - return null; - Map> result = new HashMap<>(); - List groups = new ArrayList<>(); - Map> groupMap - = groups.stream().collect(Collectors.groupingBy(ResiGroupDTO::getGridId)); - groupMap.forEach((k,v)->{ - Set groupIds = - v.stream().map(ResiGroupDTO::getId).collect(Collectors.toSet()); - result.put(k,groupIds); - }); - - return result; - } - - /** - * @Description 校验用户是否加入小组 - * @param gridId - * @author zxc - */ - @Override - public CheckJoinTeamResultDTO checkjointeam(GridIdFormDTO gridId) { - CheckJoinTeamResultDTO checkJoinTeamResultDTO = new CheckJoinTeamResultDTO(); - Integer joinTeamCounts = baseDao.checkjointeam(gridId); - if (joinTeamCounts==NumConstant.ZERO){//未加入任何小组(当前网格下) - checkJoinTeamResultDTO.setVoteAuthorization(false); - }else { - checkJoinTeamResultDTO.setVoteAuthorization(true); - } - return checkJoinTeamResultDTO; - } - - /** - * @Description 获取应表决数 - * @param formDTO - * @author zxc - */ - @Override - public ShouldVoteCountResultDTO shouldVoteCount(ShouldVoteCountFormDTO formDTO) { - //网格下所有加过组的人数 - Integer shouldVoteCount = baseDao.shouldVoteCount(formDTO).getShouldVoteCount(); - Integer outGroupCount = baseDao.getOutGroupCount(formDTO); - ShouldVoteCountResultDTO result = new ShouldVoteCountResultDTO(); - result.setShouldVoteCount(shouldVoteCount-outGroupCount); - return result; - } - - @Override - public List recommendedList(RecommendedListFormDTO formDTO) { - - //显示当前网格内所有当前用户还未加入的组,以组的人数由高到低排序;如果人数相同,以话题数由多到少排序 - List recommendGroupList = baseDao.selectListRecommendList(formDTO); - recommendGroupList.forEach(dto -> { - Result groupLeaderUserInfo = this.getGroupLeaderUserInfo(dto.getGroupId()); - if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { - dto.setLeaderName(groupLeaderUserInfo.getData().getShowName()); - } else { - logger.warn("组长注册信息查询失败" + groupLeaderUserInfo.getMsg()); - } - }); - return recommendGroupList; - } - - /** - * @Description 给加入此网格的网格长发送消息 - * @param msg - * @param gridId - * @param userId - * @author wangc - * @date 2020.04.29 22:49 - **/ - private void sendMsgResi2Gov(String title,String msg,String gridId,String userId,String customerId){ - //1.查询加入当前网格下的人员 customer_staff_grid - CommonGridIdFormDTO commonGridIdFormDTO = new CommonGridIdFormDTO(); - commonGridIdFormDTO.setGridId(gridId); - commonGridIdFormDTO.setUserId(userId); - Result> gridstaffs = - govOrgFeignClient.getGridStaffs(commonGridIdFormDTO); - //2.查询这些人是否有管理员身份且未被禁用 staff_role customer_staff - if(gridstaffs.success() && null != gridstaffs.getData() && gridstaffs.getData().size() > 0){ - RolesUsersListFormDTO rolesUsersListFormDTO = new RolesUsersListFormDTO(); - rolesUsersListFormDTO.setCustomerId(customerId); - List roleKeys = new ArrayList(); - roleKeys.add(ModuleConstant.STAFF_ROLE_GRID_MANAGER); - rolesUsersListFormDTO.setRoleKeys(roleKeys); - rolesUsersListFormDTO.setUserIds(gridstaffs.getData()); - Result> staffRoles = - epmetUserFeignClient.specificRolesStaffs(rolesUsersListFormDTO); - //3.发送消息 - if(staffRoles.success() && null != staffRoles.getData() && staffRoles.getData().size() > 0){ - List msgList = new ArrayList<>(); - List subscribeList = new ArrayList<>(); - for(String to : staffRoles.getData()){ - //站内信 - UserMessageFormDTO msgObj = new UserMessageFormDTO(); - msgObj.setApp(ModuleConstant.APP_GOV); - msgObj.setCustomerId(customerId); - msgObj.setGridId(gridId); - msgObj.setMessageContent(msg); - msgObj.setReadFlag(ReadFlagConstant.UN_READ); - msgObj.setTitle(title); - msgObj.setUserId(to); - msgList.add(msgObj); - //微信订阅 - WxSubscribeMessageFormDTO subscribeDTO = new WxSubscribeMessageFormDTO(); - subscribeDTO.setClientType(ModuleConstant.APP_GOV); - subscribeDTO.setGridId(gridId); - subscribeDTO.setCustomerId(customerId); - subscribeDTO.setUserId(to); - subscribeDTO.setBehaviorType(UserMessageConstant.WX_CREATE_GROUP_BEHAVIOR); - subscribeDTO.setMessageContent(msg); - subscribeDTO.setMessageTime(new Date()); - subscribeList.add(subscribeDTO); - } - if (subscribeList.size() > NumConstant.ZERO){ - epmetMessageOpenFeignClient.sendWxSubscribeMessage(subscribeList); - } - Result result = epmetMessageFeignClient.saveUserMessageList(msgList); - if(result.success()){ - return; - } - } - } - logger.warn(String.format(ModuleConstant.FAILED_SEND_MESSAGE,msg)); - - } - - @Override - public GroupDetailResultDTO getGroupDetail(String groupId) { - GroupDetailResultDTO groupDetail = new GroupDetailResultDTO(); - - // 1.拼装组基本信息 - GroupEditSubmitRecordEntity ler = groupEditSubmitRecordDao.getLatestEditSubmitRecord(groupId); - - if (ler != null) { - groupDetail.setAuditStatus(ler.getAuditStatus()); - groupDetail.setRemark(ler.getRemark()); - } - - if (ler != null && GroupAuditStatusConstant.UNDER_AUDITING.equals(ler.getAuditStatus())) { - // 审核中,显示待审核内容 - groupDetail.setGroupHeadPhoto(ler.getGroupHeadPhoto()); - groupDetail.setGroupName(ler.getGroupName()); - groupDetail.setGroupIntroduction(ler.getGroupIntroduction()); - } else { - // 不在审核中,直接显示组信息 - ResiGroupEntity resiGroupEntity = resiGroupDao.selectById(groupId); - if (resiGroupEntity == null) { - return null; - } - - groupDetail.setGroupHeadPhoto(resiGroupEntity.getGroupHeadPhoto()); - groupDetail.setGroupName(resiGroupEntity.getGroupName()); - groupDetail.setGroupIntroduction(resiGroupEntity.getGroupIntroduction()); - } - - // 2.编辑次数及其限制 - groupDetail.setEditNumLimit(GroupLimitConstant.EDIT_NUM_LIMIT_MONTH); - Date now = new Date(); - int usedEditNum = groupEditSubmitRecordDao.countEditNum(groupId, DateUtils.getMonthStart(now), DateUtils.getMonthEnd(now)); - groupDetail.setAvaliableEditNum(GroupLimitConstant.EDIT_NUM_LIMIT_MONTH - usedEditNum); - - // 审核状态 - // 是否可编辑 - boolean editable = true; - - if (GroupLimitConstant.EDIT_NUM_LIMIT_MONTH <= usedEditNum) { - // 达到最大编辑次数了 - editable = false; - } - - if (ler != null && GroupAuditStatusConstant.UNDER_AUDITING.equals(ler.getAuditStatus())) { - // 提交了,还没审核完 - editable = false; - } - - groupDetail.setEditable(editable); - return groupDetail; - } - - @Override - public void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction, String editUserId) { - // 1.判断小组是否存在,判断是否已经在"待审核"状态 - ResiGroupEntity group = resiGroupDao.selectById(groupId); - if (group == null) { - throw new RenException(EpmetErrorCode.GROUP_NOT_EXISTS.getCode(), EpmetErrorCode.GROUP_NOT_EXISTS.getMsg()); - } - - // 判断是否是组长 - ResiGroupMemberDTO groupLeader = resiGroupMemberDao.selectLeaderMember(groupId); - if (groupLeader == null || !groupLeader.getCustomerUserId().equals(editUserId)) { - String msg = "只有该组的组长才可以编辑组信息"; - throw new RenException(EpmetErrorCode.GROUP_EDIT_ERROR.getCode(), msg, msg, RenException.MessageMode.CODE_INTERNAL_EXTERNAL); - } - - // 2.判断是否可以提交编辑 - GroupEditSubmitRecordEntity lre = groupEditSubmitRecordDao.getLatestEditSubmitRecord(groupId); - if (lre != null && GroupAuditStatusConstant.UNDER_AUDITING.equals(lre.getAuditStatus())) { - // 在待审核状态,不允许再次提交编辑 - throw new RenException(EpmetErrorCode.GROUP_IN_AUDITING.getCode(), EpmetErrorCode.GROUP_IN_AUDITING.getMsg()); - } - - if (resiGroupDao.countExistsGroupNameBeforeEdit(groupId, group.getGridId(), groupName) > 0) { - // 已存在组名,拒绝提交 - throw new RenException(EpmetErrorCode.GROUP_ALREADY_EXISTED.getCode(), EpmetErrorCode.GROUP_ALREADY_EXISTED.getMsg()); - } - - Date now = new Date(); - int usedEditNum = groupEditSubmitRecordDao.countEditNum(groupId, DateUtils.getMonthStart(now), DateUtils.getMonthEnd(now)); - if (GroupLimitConstant.EDIT_NUM_LIMIT_MONTH <= usedEditNum) { - // 达到最大编辑次数了 - throw new RenException(EpmetErrorCode.GROUP_EDIT_NUM_LIMITED.getCode(), EpmetErrorCode.GROUP_EDIT_NUM_LIMITED.getMsg()); - } - - // 3.内容检查 - scanGroupEditContent(groupName, groupIntroduction, groupHeadPhoto); - - String app = loginUserUtil.getLoginUserApp(); - String userId = loginUserUtil.getLoginUserId(); - String messageText = generateGroupEditMessageText(app, userId, group.getCustomerId(), group.getGridId(), groupName); - - // 4.创建编辑提交记录 - GroupEditSubmitRecordEntity editRecord = new GroupEditSubmitRecordEntity(); - editRecord.setAuditStatus(GroupAuditStatusConstant.UNDER_AUDITING); - editRecord.setCustomerId(group.getCustomerId()); - editRecord.setGridId(group.getGridId()); - editRecord.setGroupHeadPhoto(groupHeadPhoto); - editRecord.setGroupIntroduction(groupIntroduction); - editRecord.setGroupId(groupId); - editRecord.setGroupName(groupName); - editRecord.setReadFlag(ReadFlagConstant.UN_READ); - editRecord.setMessageText(messageText); - - if (groupEditSubmitRecordDao.insert(editRecord) == 0) { - throw new RenException(EpmetErrorCode.GROUP_EDIT_ERROR.getCode(), EpmetErrorCode.GROUP_EDIT_ERROR.getMsg()); - } - - resiGroupRedis.addWorkGrassrootsGroupRedDotValue(group.getGridId()); - - } - - /** - * 生成组信息编辑简介文本:xxx申请编辑组信息,请审核 - * @param app - * @param userId - * @param customerId - * @param gridId - * @param groupName - * @return - */ - private String generateGroupEditMessageText(String app, String userId, String customerId, String gridId, String groupName) { - List resiRoles = getResiRoles(app, customerId, userId, gridId); - boolean isPartymember = false; - boolean isWarmhearted = false; - for (UserRoleResultDTO role : resiRoles) { - if (EpmetRoleKeyConstant.WARMHEARTED.equals(role.getRoleKey())) { - isWarmhearted = true; - } - if (EpmetRoleKeyConstant.PARTYMEMBER.equals(role.getRoleKey())) { - isPartymember = true; - } - } - if (!isWarmhearted && isPartymember) { - throw new RenException(EpmetErrorCode.CANNOT_CREATE_GROUP.getCode(), "只有党员和热心居民才能创建和编辑小组"); - } - String roleName = ""; - if (isPartymember) { - roleName = ModuleConstant.PARTYMEMBER; - } else if (isWarmhearted) { - roleName = ModuleConstant.WAREMHEARTED_RESI; - } - - //3.获取居民注册信息 - UserResiInfoFormDTO resiParam = new UserResiInfoFormDTO(); - resiParam.setCustomerId(customerId); - resiParam.setUserId(userId); - Result resiResult = - epmetUserFeignClient.getUserResiInfoDTO(resiParam); - String userName = ""; - if (resiResult.success() && null != resiResult.getData()) { - userName = (StringUtils.isBlank(resiResult.getData().getSurname()) ? "" : resiResult.getData().getSurname()) - + (StringUtils.isBlank(resiResult.getData().getName()) ? "" : resiResult.getData().getName()); - } - userName = StringUtils.isBlank(userName) ? ModuleConstant.UNKNOWN : userName; - return String.format(UserMessageConstant.EDIT_OF_GROUP_MESSAGE_TEMPLATE, roleName, userName, groupName); - } - - /** - * 查询居民的角色列表 - * @param app - * @param customerId - * @param userId - * @param gridId - * @return - */ - private List getResiRoles(String app, String customerId, String userId, String gridId) { - UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO(); - userRoleFormDTO.setApp(app); - userRoleFormDTO.setCustomerId(customerId); - userRoleFormDTO.setUserId(userId); - userRoleFormDTO.setGridId(gridId); - Result> rolesResult = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); - - if (! rolesResult.success()) { - logger.error("修改组信息:查询居民角色失败,详情:{}", rolesResult.getInternalMsg()); - throw new RenException(EpmetErrorCode.GROUP_EDIT_ERROR.getCode(), "查询居民角色失败"); - } else { - List roles = rolesResult.getData(); - if (CollectionUtils.isEmpty(roles)) { - roles = new ArrayList<>(); - } - return roles; - } - } - - /** - * 内容检查 - * @param groupName - * @param groupIntroduction - * @param groupHeadPhoto - */ - private void scanGroupEditContent(String groupName, String groupIntroduction, String groupHeadPhoto) { - // 文本内容审核 - TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); - TextTaskDTO taskDTO = new TextTaskDTO(); - String content = groupName.concat("-").concat(groupIntroduction); - taskDTO.setContent(content); - taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); - textScanParamDTO.getTasks().add(taskDTO); - Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); - if (!textSyncScanResult.success()) { - logger.error("调用内容审核服务审核文本发生错误:{}", textSyncScanResult.getInternalMsg()); - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - } else { - if (!textSyncScanResult.getData().isAllPass()) { - throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode(), EpmetErrorCode.TEXT_SCAN_FAILED.getMsg()); - } - } - - // 图片内容审核 - ImgScanParamDTO imgScanParamDTO = new ImgScanParamDTO(); - ImgTaskDTO task = new ImgTaskDTO(); - task.setDataId(UUID.randomUUID().toString().replace("-", "")); - task.setUrl(groupHeadPhoto); - imgScanParamDTO.getTasks().add(task); - - Result imgScanResult = ScanContentUtils.imgSyncScan(scanApiUrl.concat(imgSyncScanMethod), imgScanParamDTO); - if (!imgScanResult.success()){ - logger.error("调用内容审核服务审核图片发生错误:{}", textSyncScanResult.getInternalMsg()); - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - } else { - if (!textSyncScanResult.getData().isAllPass()) { - throw new RenException(EpmetErrorCode.IMG_SCAN_FAILED.getCode(), EpmetErrorCode.IMG_SCAN_FAILED.getMsg()); - } - } - } - - /** - * @Description 工作端 查询组变更待审核列表 - * @param param - * @return - * @author wangc - * @date 2020.11.03 10:19 - */ - @Override - public List getEditAuditingList(CommonGridAndPageFormDTO param) { - return Optional.ofNullable(PageHelper.startPage(null == param.getPageNo() ? NumConstant.ONE : param.getPageNo() , null == param.getPageSize() ? NumConstant.TWELVE : param.getPageSize()) - .doSelectPage(() -> { - groupEditSubmitRecordDao.selectGroupEditApplyList(param.getGridId());}).getResult()).orElse(new LinkedList<>()) - .stream().map(o -> { return (ApplyingGroupResultDTO)o; }).collect(Collectors.toList()); - } - - /** - * @Description 查询小组修改信息的详情内容 不加事务! - * @param param - * @return com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO - * @author wangc - * @date 2020.11.03 14:10 - */ - @Override - public GroupEditionDetailResultDTO getEditAuditingDetail(GovGroupSummarizeFromDTO param) { - GroupEditSubmitRecordEntity edit = groupEditSubmitRecordDao.selectEditDetail(param.getGroupId(),null); - if(null == edit) { - logger.error("com.epmet.modules.group.service.impl.ResiGroupServiceImpl.getEditAuditingDetail,未找到小组变更信息记录,传参:{}",JSON.toJSONString(param)); - return null;} - //取消未读状态 - GroupEditSubmitRecordEntity _update = new GroupEditSubmitRecordEntity(); - _update.setId(edit.getId());_update.setReadFlag(ModuleConstant.READ); - groupEditSubmitRecordDao.updateById(_update); - GroupEditionDetailResultDTO result = ConvertUtils.sourceToTarget(edit, GroupEditionDetailResultDTO.class); - result.setGroupLeaderName(resiGroupRedis.getFullName(edit.getCreatedBy())); - return result; - } - - /** - * @Description 工作人员提交审核 - * @param param - * @return void - * @author wangc - * @date 2020.11.03 16:02 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void auditEdit(GroupEditionAuditFormDTO param) { - if(StringUtils.equals(param.getAuditResult(),ModuleConstant.AUDITING_OPERATION_REJECT) && StringUtils.isBlank(param.getRemark())){ - throw new RenException("拒绝理由不能为空"); - } - GroupEditSubmitRecordEntity edit = groupEditSubmitRecordDao.selectEditDetail(param.getGroupId(),null); - if(null == edit){ - logger.error("com.epmet.modules.group.service.impl.ResiGroupServiceImpl.auditEdit,找不到待审核的组更新记录,传参:{}",JSON.toJSONString(param)); - throw new RenException("找不到待审核的组更新记录"); - } - - int affectedRows = groupEditSubmitRecordDao.updateAuditResult(param.getGroupId(),param.getStaffId(),param.getAuditResult(),param.getRemark()); - if(affectedRows <= NumConstant.ZERO){ - logger.error("com.epmet.modules.group.service.impl.ResiGroupServiceImpl.auditEdit,更新组编辑记录时受影响行数小于1,传参:{}",JSON.toJSONString(param)); - throw new RenException("更新组编辑记录时受影响行数小于1"); - } - if(!StringUtils.equals(param.getAuditResult(),ModuleConstant.AUDITING_OPERATION_REJECT)){ - //同意 - ResiGroupEntity _update = ConvertUtils.sourceToTarget(edit,ResiGroupEntity.class); - _update.setId(param.getGroupId()); - baseDao.updateById(_update); - } - resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(edit.getGridId()); - resiGroupRedis.delGroup(param.getGroupId()); - } - -} From d95d31f073e3cde9f6d4cc5e6203d43a7cf37748 Mon Sep 17 00:00:00 2001 From: wxz Date: Fri, 20 Nov 2020 14:51:06 +0800 Subject: [PATCH 12/31] =?UTF-8?q?=E6=81=A2=E5=A4=8Dx=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ResiGroupServiceImpl.java | 1358 +++++++++++++++++ 1 file changed, 1358 insertions(+) create mode 100644 epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java new file mode 100644 index 0000000000..e5507ab766 --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -0,0 +1,1358 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.modules.group.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.scan.param.ImgScanParamDTO; +import com.epmet.commons.tools.scan.param.ImgTaskDTO; +import com.epmet.commons.tools.scan.param.TextScanParamDTO; +import com.epmet.commons.tools.scan.param.TextTaskDTO; +import com.epmet.commons.tools.scan.result.SyncScanResult; +import com.epmet.commons.tools.security.user.LoginUserUtil; +import com.epmet.commons.tools.utils.*; +import com.epmet.constant.ReadFlagConstant; +import com.epmet.dto.form.*; +import com.epmet.dto.result.UserResiInfoResultDTO; +import com.epmet.dto.result.UserRoleResultDTO; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.modules.constant.UserMessageConstant; +import com.epmet.modules.feign.EpmetMessageFeignClient; +import com.epmet.modules.feign.EpmetUserFeignClient; +import com.epmet.modules.feign.GovOrgFeignClient; +import com.epmet.modules.group.dao.GroupEditSubmitRecordDao; +import com.epmet.modules.group.dao.ResiGroupDao; +import com.epmet.modules.group.dao.ResiGroupOperationDao; +import com.epmet.modules.group.entity.GroupEditSubmitRecordEntity; +import com.epmet.modules.group.entity.ResiGroupEntity; +import com.epmet.modules.group.entity.ResiGroupOperationEntity; +import com.epmet.modules.group.redis.ResiGroupRedis; +import com.epmet.modules.group.service.ResiGroupOperationService; +import com.epmet.modules.group.service.ResiGroupService; +import com.epmet.modules.group.service.ResiGroupStatisticalService; +import com.epmet.modules.member.dao.GroupMemeberOperationDao; +import com.epmet.modules.member.dao.ResiGroupMemberDao; +import com.epmet.modules.member.redis.ResiGroupMemberRedis; +import com.epmet.modules.member.service.GroupMemeberOperationService; +import com.epmet.modules.member.service.ResiGroupMemberService; +import com.epmet.modules.utils.ModuleConstant; +import com.epmet.resi.group.constant.*; +import com.epmet.resi.group.dto.UserRoleDTO; +import com.epmet.resi.group.dto.group.*; +import com.epmet.resi.group.dto.group.form.GridIdFormDTO; +import com.epmet.resi.group.dto.group.form.ShouldVoteCountFormDTO; +import com.epmet.resi.group.dto.group.form.*; +import com.epmet.resi.group.dto.group.result.*; +import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; +import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO; +import com.github.pagehelper.PageHelper; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 群组信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-28 + */ +@Service +public class ResiGroupServiceImpl extends BaseServiceImpl implements ResiGroupService { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private ResiGroupMemberService resiGroupMemberService; + + @Autowired + private ResiGroupOperationService resiGroupOperationService; + + @Autowired + private EpmetUserFeignClient epmetUserFeignClient; + + @Autowired + private GroupMemeberOperationService groupMemeberOperationService; + + @Autowired + private ResiGroupStatisticalService resiGroupStatisticalService; + + @Autowired + private ResiGroupOperationDao resiGroupOperationDao; + + @Autowired + private ResiGroupMemberDao resiGroupMemberDao; + + @Autowired + private GroupMemeberOperationDao groupMemeberOperationDao; + + @Autowired + private ResiGroupRedis resiGroupRedis; + + @Autowired + private ResiGroupMemberRedis resiGroupMemberRedis; + + @Autowired + private GovOrgFeignClient govOrgFeignClient; + + @Autowired + private EpmetMessageFeignClient epmetMessageFeignClient; + + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + + @Autowired + private ResiGroupDao resiGroupDao; + + @Autowired + private GroupEditSubmitRecordDao groupEditSubmitRecordDao; + + @Autowired + private LoginUserUtil loginUserUtil; + + @Autowired + private CpUserDetailRedis sysUserInfoRedis; + + @Value("${openapi.scan.server.url}") + private String scanApiUrl; + + @Value("${openapi.scan.method.textSyncScan}") + private String textSyncScanMethod; + + @Value("${openapi.scan.method.imgSyncScan}") + private String imgSyncScanMethod; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, ResiGroupDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, ResiGroupDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public ResiGroupDTO get(String id) { + ResiGroupEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, ResiGroupDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(ResiGroupDTO dto) { + ResiGroupEntity entity = ConvertUtils.sourceToTarget(dto, ResiGroupEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(ResiGroupDTO dto) { + ResiGroupEntity entity = ConvertUtils.sourceToTarget(dto, ResiGroupEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * @param myGroupFormDTO + * @return com.epmet.commons.tools.utils.Result> + * @Author yinzuomei + * @Description 我的小组查询(包含我创建的小组+我加入的小组),以各组的最新话题时间有近到远排序) + * @Date 2020/3/28 20:37 + **/ + @Override + public List getMyGroup(MyGroupFormDTO myGroupFormDTO) { + int pageIndex = (myGroupFormDTO.getPageNo() - NumConstant.ONE) * myGroupFormDTO.getPageSize(); + myGroupFormDTO.setPageNo(pageIndex); + List myGroupList = baseDao.selectListMyGroup(myGroupFormDTO); + if (null == myGroupList || myGroupList.size() < 1) { + logger.info(String.format("我的小组查询为空,selectListMyGroup入参%s", JSON.toJSONString(myGroupFormDTO))); + return new ArrayList<>(); + } + return myGroupList; + } + + /** + * @param recommendGroupFormDTO + * @return com.epmet.commons.tools.utils.Result> + * @Author yinzuomei + * @Description 推荐组列表查询 + * @Date 2020/3/28 19:53 + **/ + @Override + public List getRecommendGroup(RecommendGroupFormDTO recommendGroupFormDTO) { + int pageIndex = (recommendGroupFormDTO.getPageNo() - NumConstant.ONE) * recommendGroupFormDTO.getPageSize(); + recommendGroupFormDTO.setPageNo(pageIndex); + //显示当前网格内所有当前用户还未加入的组,以组的人数由高到低排序;如果人数相同,以最新话题的时间有近到远排序 + List recommendGroupList = baseDao.selectListRecommendGroup(recommendGroupFormDTO); + if (null == recommendGroupList || recommendGroupList.size() == 0) { + logger.info(String.format("推荐小组查询为空,selectListRecommendGroup入参%s", JSON.toJSONString(recommendGroupFormDTO))); + return new ArrayList<>(); + } + for (RecommendGroupResultDTO recommendGroupResultDTO : recommendGroupList) { + GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationService.selectLatestRecord(recommendGroupResultDTO.getGroupId(), + recommendGroupFormDTO.getUserId()); + if (null != groupMemeberOperationDTO) { + recommendGroupResultDTO.setStatus(groupMemeberOperationDTO.getOperateStatus()); + } + } + return recommendGroupList; + } + + /** + * @param createdFormDTO + * @return com.epmet.commons.tools.utils.Result> + * @Author yinzuomei + * @Description 我创建的小组 + * @Date 2020/3/28 22:01 + **/ + @Override + public List getCreated(CreatedFormDTO createdFormDTO) { + int pageIndex = (createdFormDTO.getPageNo() - NumConstant.ONE) * createdFormDTO.getPageSize(); + createdFormDTO.setPageNo(pageIndex); + List createdResultDTOList = baseDao.selectListMyCreated(createdFormDTO); + if (null == createdResultDTOList || createdResultDTOList.size() == 0) { + logger.info(String.format("我创建的小组查询为空,selectListMyCreated入参%s", JSON.toJSONString(createdFormDTO))); + return new ArrayList<>(); + } + return createdResultDTOList; + } + + /** + * @param modifyGroupFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 修改组信息 + * @Date 2020/3/28 22:27 + **/ + @Transactional(rollbackFor = Exception.class) + @Override + public void modifyGroup(ModifyGroupFormDTO modifyGroupFormDTO) { + //校验是否是群主 + ResiGroupMemberDTO groupMemberDTO = resiGroupMemberService.getResiGroupMember(modifyGroupFormDTO.getGroupId(), modifyGroupFormDTO.getUserId()); + if (null == groupMemberDTO || ModuleConstant.GROUP_MEMBER.equals(groupMemberDTO.getGroupLeaderFlag())) { + logger.info(String.format("修改小组信息异常:%s",EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getMsg())); + throw new RenException(EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getCode()); + } + if (StringUtils.isBlank(modifyGroupFormDTO.getGroupHeadPhoto()) + && StringUtils.isBlank(modifyGroupFormDTO.getGroupName()) + && StringUtils.isBlank(modifyGroupFormDTO.getGroupIntroduction())) { + logger.info("小组信息未发生变更,无需更改"); + return; + } + int updatedRows = baseDao.modifyGroupInfo(modifyGroupFormDTO); + if (1 == updatedRows) { + logger.info("修改小组信息成功"); + }else{ + logger.error(String.format("修改小组信息失败,updatedRows=%s",updatedRows)); + } + } + + /** + * @param groupSummarizeFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 查看小组管理界面信息 + * @Date 2020/3/29 17:52 + **/ + @Override + public GroupSummarizeResultDTO getGroupSummarize(GroupSummarizeFormDTO groupSummarizeFormDTO) { + GroupSummarizeResultDTO groupSummarizeResultDTO = baseDao.selectGroupSummarize(groupSummarizeFormDTO); + if (null == groupSummarizeResultDTO) { + logger.warn(String.format("查看小组管理界面信息异常,userId=%s,groupId=%s",groupSummarizeFormDTO.getUserId(),groupSummarizeFormDTO.getGroupId())); + return new GroupSummarizeResultDTO(); + } + //获取组长信息 + Result groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupSummarizeFormDTO.getGroupId()); + if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { + groupSummarizeResultDTO.setLeaderName(groupLeaderUserInfo.getData().getShowName()); + } else { + logger.warn(String.format("查看小组管理界面信息错误,获取组长注册信息失败,接口返参%s",JSON.toJSONString(groupLeaderUserInfo))); + groupSummarizeResultDTO.setLeaderName(""); + } + return groupSummarizeResultDTO; + } + + /** + * @param groupId + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 根据组id查询组长信息 + * @Date 2020/3/30 15:07 + **/ + private Result getGroupLeaderUserInfo(String groupId) { + //群主名称需要调用feign查询 + ResiGroupEntity resiGroupEntity = baseDao.selectById(groupId); + if (null == resiGroupEntity) { + return new Result<>(); + } + ResiGroupMemberDTO groupMemberDTO = baseDao.selectGroupLeader(groupId); + if (null == groupMemberDTO) { + return new Result<>(); + } + UserResiInfoFormDTO resiUserInfoFormDTO = new UserResiInfoFormDTO(); + resiUserInfoFormDTO.setCustomerId(resiGroupEntity.getCustomerId()); + resiUserInfoFormDTO.setUserId(groupMemberDTO.getCustomerUserId()); + return epmetUserFeignClient.getUserResiInfoDTO(resiUserInfoFormDTO); + } + + /** + * @param applyCreateGroupFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 创建小组 + * @Date 2020/3/29 19:26 + **/ + @Transactional(rollbackFor = Exception.class) + @Override + public void applyCreateGroup(ApplyCreateGroupFormDTO applyCreateGroupFormDTO) { + //1、校验是否同名 + List resiGroupEntityList = this.getResiGroupEntityList(applyCreateGroupFormDTO); + if (null != resiGroupEntityList && resiGroupEntityList.size() > 0) { + logger.info(String.format("创建小组异常:%s",EpmetErrorCode.GROUP_ALREADY_EXISTED.getMsg())); + throw new RenException(EpmetErrorCode.GROUP_ALREADY_EXISTED.getCode()); + } + + //2.内容检查 + scanGroupEditContent(applyCreateGroupFormDTO.getGroupName(), + applyCreateGroupFormDTO.getGroupIntroduction(), + applyCreateGroupFormDTO.getGroupHeadPhoto()); + + //3.1、查询当前申请人的身份,生成对应格式的消息内容 + UserRoleDTO userRoleDTO = this.checkPartyMemberOrWarmHeated(applyCreateGroupFormDTO.getApp(), + applyCreateGroupFormDTO.getUserId(), + applyCreateGroupFormDTO.getCustomerId(), + applyCreateGroupFormDTO.getGridId()); + if (!NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag()) && !NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())) { + logger.info(String.format("创建小组异常:%s",EpmetErrorCode.CANNOT_CREATE_GROUP.getMsg())); + throw new RenException(EpmetErrorCode.CANNOT_CREATE_GROUP.getCode()); + } + String roleName = ""; + if(NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag())){ + roleName = ModuleConstant.PARTYMEMBER; + }else if(NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())){ + roleName = ModuleConstant.WAREMHEARTED_RESI; + } + + //3.2、插入一条待审核的组信息 + ResiGroupEntity resiGroupEntity = this.structureResiGroupEntity(applyCreateGroupFormDTO); + insert(resiGroupEntity); + //4.获取居民注册信息 + UserResiInfoFormDTO resiParam = new UserResiInfoFormDTO(); + resiParam.setCustomerId(applyCreateGroupFormDTO.getCustomerId()); + resiParam.setUserId(applyCreateGroupFormDTO.getUserId()); + Result resiResult = + epmetUserFeignClient.getUserResiInfoDTO(resiParam); + String userName = ""; + if(resiResult.success() && null != resiResult.getData()){ + userName = (StringUtils.isBlank(resiResult.getData().getSurname()) ? "" : resiResult.getData().getSurname()) + + (StringUtils.isBlank(resiResult.getData().getName()) ? "" :resiResult.getData().getName()); + } + userName = StringUtils.isBlank(userName) ? ModuleConstant.UNKNOWN : userName; + String msg = String.format(UserMessageConstant.CREATION_OF_GROUP_MESSAGE_TEMPLATE,roleName,userName,applyCreateGroupFormDTO.getGroupName()); + //4.2、插入一条待审核的操作记录 + ResiGroupOperationDTO resiGroupOperation = new ResiGroupOperationDTO(); + resiGroupOperation.setResiGroupId(resiGroupEntity.getId()); + resiGroupOperation.setState(GroupStateConstant.GROUP_UNDER_AUDITTING); + resiGroupOperation.setOperateUserId(applyCreateGroupFormDTO.getUserId()); + resiGroupOperation.setMessageText(msg); + resiGroupOperation.setReadFlag(ModuleConstant.UNREAD); + resiGroupOperationService.save(resiGroupOperation); + //5、插入一群成员信息(群主) + ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO(); + resiGroupMemberDTO.setCustomerUserId(applyCreateGroupFormDTO.getUserId()); + resiGroupMemberDTO.setResiGroupId(resiGroupEntity.getId()); + resiGroupMemberDTO.setGroupLeaderFlag(LeaderFlagConstant.GROUP_LEADER); + resiGroupMemberDTO.setStatus(MemberStateConstant.UNDER_AUDITTING); + resiGroupMemberDTO.setEnterGroupType(EnterGroupTypeConstant.CREATED); + resiGroupMemberService.save(resiGroupMemberDTO); + //6、插入一条入群记录(群主的) + GroupMemeberOperationDTO groupMemeberOperationDTO = new GroupMemeberOperationDTO(); + groupMemeberOperationDTO.setCustomerUserId(applyCreateGroupFormDTO.getUserId()); + groupMemeberOperationDTO.setGroupId(resiGroupEntity.getId()); + groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.UNDER_AUDITTING); + groupMemeberOperationDTO.setOperateUserId(applyCreateGroupFormDTO.getUserId()); + groupMemeberOperationDTO.setEnterGroupType(EnterGroupTypeConstant.CREATED); + groupMemeberOperationService.save(groupMemeberOperationDTO); + //7、群初始统计记录 + /*UserRoleDTO userRoleDTO = this.checkPartyMemberOrWarmHeated(applyCreateGroupFormDTO.getApp(), + applyCreateGroupFormDTO.getUserId(), + applyCreateGroupFormDTO.getCustomerId(), + applyCreateGroupFormDTO.getGridId());*/ + ResiGroupStatisticalDTO resiGroupStatisticalDTO = new ResiGroupStatisticalDTO(); + resiGroupStatisticalDTO.setResiGroupId(resiGroupEntity.getId()); + resiGroupStatisticalDTO.setTotalMembers(NumConstant.ONE); + resiGroupStatisticalDTO.setTotalNormalMemebers(NumConstant.ONE); + resiGroupStatisticalDTO.setTotalTopics(NumConstant.ZERO); + resiGroupStatisticalDTO.setTotalIssues(NumConstant.ZERO); + if (NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag())) { + resiGroupStatisticalDTO.setTotalPartyMembers(NumConstant.ONE); + } else { + resiGroupStatisticalDTO.setTotalPartyMembers(NumConstant.ZERO); + } + if (NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())) { + resiGroupStatisticalDTO.setTotalEarnestMemebers(NumConstant.ONE); + } else { + resiGroupStatisticalDTO.setTotalEarnestMemebers(NumConstant.ZERO); + } + resiGroupStatisticalService.save(resiGroupStatisticalDTO); + //发送消息:创建小组 + sendMsgResi2Gov(UserMessageConstant.CREATE_GROUP_APPLYING_MSG_TITLE,msg,applyCreateGroupFormDTO.getGridId(),applyCreateGroupFormDTO.getUserId(),applyCreateGroupFormDTO.getCustomerId()); + //更新政府端:工作-基层治理-群组管理reddot + resiGroupRedis.addWorkGrassrootsGroupRedDotValue(applyCreateGroupFormDTO.getGridId()); + } + + + private void setWorkGrassrootsGroupRedDot(String gridId) { + try{ + + }catch(Exception e){ + e.printStackTrace(); + } + } + + /** + * @param applyCreateGroupFormDTO + * @return java.util.List + * @Author yinzuomei + * @Description 查询是否存在相同名字的群 + * @Date 2020/3/30 16:01 + **/ + private List getResiGroupEntityList(ApplyCreateGroupFormDTO applyCreateGroupFormDTO) { + List list = baseDao.checkResiGroupName(applyCreateGroupFormDTO); + return list; + } + + /** + * @param initApplyGroupFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 加入小组界面初始化 + * @Date 2020/3/30 10:17 + **/ + @Override + public void initApplyGroup(InitApplyGroupFormDTO initApplyGroupFormDTO) { + UserResiInfoFormDTO resiUserInfoFormDTO = new UserResiInfoFormDTO(); + resiUserInfoFormDTO.setUserId(initApplyGroupFormDTO.getUserId()); + resiUserInfoFormDTO.setCustomerId(initApplyGroupFormDTO.getCustomerId()); + Result result = epmetUserFeignClient.getUserResiInfoDTO(resiUserInfoFormDTO); + if (!result.success() || null == result.getData() || StringUtils.isBlank(result.getData().getRegMobile())) { + logger.info(String.format("加入小组界面初始化查询成功,当前用户非注册居民,epmet-user-server接口入参%s,返回%s",JSON.toJSONString(resiUserInfoFormDTO),JSON.toJSONString(result))); + throw new RenException(EpmetErrorCode.CANNOT_JOIN_GROUP.getCode()); + } + } + + private ResiGroupEntity structureResiGroupEntity(ApplyCreateGroupFormDTO applyCreateGroupFormDTO) { + ResiGroupEntity resiGroupEntity = new ResiGroupEntity(); + resiGroupEntity.setCustomerId(applyCreateGroupFormDTO.getCustomerId()); + resiGroupEntity.setGridId(applyCreateGroupFormDTO.getGridId()); + resiGroupEntity.setGroupHeadPhoto(applyCreateGroupFormDTO.getGroupHeadPhoto()); + resiGroupEntity.setGroupName(applyCreateGroupFormDTO.getGroupName()); + resiGroupEntity.setGroupIntroduction(applyCreateGroupFormDTO.getGroupIntroduction()); + resiGroupEntity.setCreatedBy(applyCreateGroupFormDTO.getUserId()); + resiGroupEntity.setState(GroupStateConstant.GROUP_UNDER_AUDITTING); + return resiGroupEntity; + } + + /** + * @param initApplyCreatedGroupFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 校验用户是否是热心居民或者党员 + * @Date 2020/3/30 15:50 + **/ + @Override + public void initApplyCreatedGroup(InitApplyCreatedGroupFormDTO initApplyCreatedGroupFormDTO) { + UserRoleDTO userRoleDTO = this.checkPartyMemberOrWarmHeated(initApplyCreatedGroupFormDTO.getApp(), + initApplyCreatedGroupFormDTO.getUserId(), + initApplyCreatedGroupFormDTO.getCustomerId(), + initApplyCreatedGroupFormDTO.getGridId()); + if (!NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag()) && !NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())) { + logger.info(String.format("创建小组界面初始化查询成功,用户角色列表%s",JSON.toJSONString(userRoleDTO))); + throw new RenException(EpmetErrorCode.CANNOT_CREATE_GROUP.getCode()); + } + } + + + /** + * @param agreeApplyGroupFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 审核群申请-测试用后面会放到政府端 + * @Date 2020/3/31 12:44 + **/ + @Override + @Transactional(rollbackFor = Exception.class) + public Result agreeApplyGroup(AgreeApplyGroupFormDTO agreeApplyGroupFormDTO) { + //1、更新组的状态 + ResiGroupDTO resiGroupDTO = this.get(agreeApplyGroupFormDTO.getGroupId()); + resiGroupDTO.setState(GroupStateConstant.GROUP_APPROVED); + this.update(resiGroupDTO); + //2、更新组的申请记录改为已通过 + ResiGroupOperationDTO resiGroupOperation = resiGroupOperationDao.selectGroupApplyRecord(agreeApplyGroupFormDTO.getGroupId()); + resiGroupOperation.setState(GroupStateConstant.GROUP_APPROVED); + resiGroupOperation.setOperateUserId(agreeApplyGroupFormDTO.getUserId()); + resiGroupOperationService.update(resiGroupOperation); + //3、将群主在群成员的状态改为已通过 + ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectLeaderMember(agreeApplyGroupFormDTO.getGroupId()); + resiGroupMemberDTO.setStatus(MemberStateConstant.APPROVED); + resiGroupMemberService.update(resiGroupMemberDTO); + //4、更新群主的出入群记录改为已通过 + GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationDao.selectLeaderRecord(agreeApplyGroupFormDTO.getGroupId()); + groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.APPROVED); + groupMemeberOperationDTO.setOperateUserId(agreeApplyGroupFormDTO.getUserId()); + groupMemeberOperationService.update(groupMemeberOperationDTO); + //5、给用户发送消息???待定 + //6、新增小组缓存信息、组员缓存信息 + Map param = new HashMap<>(); + param.put(ModuleConstant.RESI_GROUP_ID, resiGroupDTO.getId()); + param.put(FieldConstant.DEL_FLAG,NumConstant.ZERO_STR); + List statisticalList = resiGroupStatisticalService.list(param); + if (null != statisticalList && statisticalList.size() > 0) { + ResiGroupInfoRedisDTO groupRedis = transferToGroupInfoRedis(resiGroupDTO, statisticalList.get(0)); + resiGroupRedis.set(groupRedis); + + ResiGroupMemberInfoRedisDTO memberRedis = new ResiGroupMemberInfoRedisDTO(); + memberRedis.setUserId(resiGroupMemberDTO.getCustomerUserId()); + memberRedis.setGroupLeaderFlag(ModuleConstant.GROUP_LEADER); + memberRedis.setEnterGroupType(resiGroupMemberDTO.getEnterGroupType()); + memberRedis.setMemberStatus(resiGroupMemberDTO.getStatus()); + memberRedis.setGroupId(resiGroupMemberDTO.getResiGroupId()); + + UserResiInfoFormDTO userParam = new UserResiInfoFormDTO(); + userParam.setUserId(resiGroupMemberDTO.getCustomerUserId()); + userParam.setCustomerId(resiGroupDTO.getCustomerId()); + Result userInfo = + epmetUserFeignClient.getUserResiInfoDTO(userParam); + if(userInfo.success() && null != userInfo.getData()){ + memberRedis.setUserShowName(userInfo.getData().getShowName()); + memberRedis.setUserHeadPhoto(userInfo.getData().getHeadPhoto()); + memberRedis.setMemberMobile(userInfo.getData().getRegMobile()); + }else{ + logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND); + } + resiGroupMemberRedis.set(memberRedis); + } else { + /* + 当没有查询到组统计信息时,需要自己封装统计信息 + @param UserRoleFormDTO::getApp + @param UserRoleFormDTO::getCustomerId + @param UserRoleFormDTO::getUserId + @param UserRoleFormDTO::getGridId + 查询用户身份信息[热心居民/党员] + epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); + */ + logger.warn(ModuleConstant.NO_SUCH_GROUP_STASTICAL_INFO); + } + //发送消息 + UserMessageFormDTO userMessageFormDTO = new UserMessageFormDTO(); + userMessageFormDTO.setUserId(resiGroupDTO.getCreatedBy()); + userMessageFormDTO.setTitle(UserMessageConstant.AUDITED_GROUP_APPLYING_TITLE); + userMessageFormDTO.setReadFlag(ModuleConstant.UNREAD); + userMessageFormDTO.setApp(ModuleConstant.APP_RESI); + userMessageFormDTO.setGridId(resiGroupDTO.getGridId()); + userMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); + userMessageFormDTO.setMessageContent(String.format(UserMessageConstant.AGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName())); + if(!epmetMessageFeignClient.saveUserMessage(userMessageFormDTO).success()){ + logger.warn(String.format(ModuleConstant.FAILED_SEND_MESSAGE,String.format(UserMessageConstant.AGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName()))); + } + //发送微信订阅消息 + WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO(); + wxSubscribeMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); + wxSubscribeMessageFormDTO.setUserId(resiGroupDTO.getCreatedBy()); + wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI); + wxSubscribeMessageFormDTO.setGridId(resiGroupDTO.getGridId()); + wxSubscribeMessageFormDTO.setBehaviorType(UserMessageConstant.WX_APPLY_CREATE_GROUP_BEHAVIOR); + wxSubscribeMessageFormDTO.setMessageContent(String.format(UserMessageConstant.AGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName())); + wxSubscribeMessageFormDTO.setMessageTime(new Date()); + List msgList = new ArrayList<>(); + msgList.add(wxSubscribeMessageFormDTO); + epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + //更新政府端:工作-基层治理-党员认证reddot + resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(resiGroupDTO.getGridId()); + return new Result(); + } + + /** + * @param disAgreeApplyGroupFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 审核(拒绝)群申请-测试用后面会放到政府端 + * @Date 2020/3/31 13:22 + **/ + @Override + @Transactional(rollbackFor = Exception.class) + public Result disagreeApplyGroup(DisAgreeApplyGroupFormDTO disAgreeApplyGroupFormDTO) { + //1、更新组的状态 + ResiGroupDTO resiGroupDTO = this.get(disAgreeApplyGroupFormDTO.getGroupId()); + resiGroupDTO.setState(GroupStateConstant.GROUP_REJECTED); + this.update(resiGroupDTO); + //2、更新组的申请记录改为已通过 + ResiGroupOperationDTO resiGroupOperation = resiGroupOperationDao.selectGroupApplyRecord(disAgreeApplyGroupFormDTO.getGroupId()); + resiGroupOperation.setState(GroupStateConstant.GROUP_REJECTED); + resiGroupOperation.setOperateUserId(disAgreeApplyGroupFormDTO.getUserId()); + resiGroupOperation.setOperateReason(disAgreeApplyGroupFormDTO.getRejectReason()); + resiGroupOperationService.update(resiGroupOperation); + //3、将群主在群成员的状态改为已通过 + ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectLeaderMember(disAgreeApplyGroupFormDTO.getGroupId()); + resiGroupMemberDTO.setStatus(MemberStateConstant.REJECTED); + resiGroupMemberService.update(resiGroupMemberDTO); + //4、更新群主的出入群记录改为已通过 + GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationDao.selectLeaderRecord(disAgreeApplyGroupFormDTO.getGroupId()); + groupMemeberOperationDTO.setOperateStatus(MemberStateConstant.REJECTED); + groupMemeberOperationDTO.setOperateUserId(disAgreeApplyGroupFormDTO.getUserId()); + groupMemeberOperationService.update(groupMemeberOperationDTO); + //5、给用户发送消息???待定 + UserMessageFormDTO userMessageFormDTO = new UserMessageFormDTO(); + userMessageFormDTO.setUserId(resiGroupDTO.getCreatedBy()); + userMessageFormDTO.setTitle(UserMessageConstant.AUDITED_GROUP_APPLYING_TITLE); + userMessageFormDTO.setReadFlag(ModuleConstant.UNREAD); + userMessageFormDTO.setApp(ModuleConstant.APP_RESI); + userMessageFormDTO.setGridId(resiGroupDTO.getGridId()); + userMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); + userMessageFormDTO.setMessageContent(String.format(UserMessageConstant.DISAGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName(),disAgreeApplyGroupFormDTO.getRejectReason())); + if(!epmetMessageFeignClient.saveUserMessage(userMessageFormDTO).success()){ + logger.warn(String.format(ModuleConstant.FAILED_SEND_MESSAGE,String.format(UserMessageConstant.DISAGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName(),disAgreeApplyGroupFormDTO.getRejectReason()))); + } + + //发送微信订阅消息 + WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO(); + wxSubscribeMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); + wxSubscribeMessageFormDTO.setUserId(resiGroupDTO.getCreatedBy()); + wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI); + wxSubscribeMessageFormDTO.setGridId(resiGroupDTO.getGridId()); + wxSubscribeMessageFormDTO.setBehaviorType(UserMessageConstant.WX_APPLY_CREATE_GROUP_BEHAVIOR); + wxSubscribeMessageFormDTO.setMessageContent(String.format(UserMessageConstant.DISAGREE_CREATING_GROUP_MSG_TEMPLATE,resiGroupDTO.getGroupName(),disAgreeApplyGroupFormDTO.getRejectReason())); + wxSubscribeMessageFormDTO.setMessageTime(new Date()); + List msgList = new ArrayList<>(); + msgList.add(wxSubscribeMessageFormDTO); + epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + + //更新政府端:工作-基层治理-党员认证reddot + resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(resiGroupDTO.getGridId()); + return new Result(); + } + + /** + * @param app + * @param userId + * @param customerId + * @param gridId + * @return boolean + * @Author yinzuomei + * @Description 用户拥有党员或者热心居民标签返回true, 没有权限返回false + * @Date 2020/3/30 16:33 + **/ + @Override + public UserRoleDTO checkPartyMemberOrWarmHeated(String app, String userId, String customerId, String gridId) { + UserRoleDTO userRoleDTO = new UserRoleDTO(); + UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO(); + userRoleFormDTO.setApp(app); + userRoleFormDTO.setCustomerId(customerId); + userRoleFormDTO.setUserId(userId); + userRoleFormDTO.setGridId(gridId); + logger.info(String.format("用户同意邀请进组,获取当前用户所有角色入参:%s", JSON.toJSONString(userRoleFormDTO))); + Result> userRoleListResult = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); + if (!userRoleListResult.success()) { + logger.error("获取用户角色feign调用失败" + userRoleListResult.getMsg()); + return userRoleDTO; + } + List userRoleList = userRoleListResult.getData(); + if (null == userRoleList || userRoleList.size() == 0) { + return userRoleDTO; + } + for (UserRoleResultDTO userRoleResultDTO : userRoleList) { + if (EpmetRoleKeyConstant.PARTYMEMBER.equals(userRoleResultDTO.getRoleKey())) { + userRoleDTO.setPartymemberFlag(NumConstant.ONE_STR); + } + if (EpmetRoleKeyConstant.WARMHEARTED.equals(userRoleResultDTO.getRoleKey())) { + userRoleDTO.setWarmHeartedFlag(NumConstant.ONE_STR); + } + if (EpmetRoleKeyConstant.REGISTERED_RESI.equals(userRoleResultDTO.getRoleKey())) { + userRoleDTO.setRegisteredResiFlag(NumConstant.ONE_STR); + } + } + logger.info(String.format("用户同意邀请进组,获取当前用户所有角色返参:%s",JSON.toJSONString(userRoleDTO))); + return userRoleDTO; + } + + @Override + public Result> audited(GroupAuditedFromDTO formDTO) { + Result> result = new Result<>(); + //查询条件 + int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + formDTO.setPageNo(pageIndex); + //获取审核列表 + List resultList = baseDao.selectAuditedGroupList(formDTO); + + return result.ok(resultList); + } + + @Override + public Result> getGroupsInGrid(GroupAuditedFromDTO formDTO) { + List resultList = new ArrayList<>(); + //查询条件 + int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + formDTO.setPageNo(pageIndex); + List list = baseDao.selectGroupsByGridId(formDTO); + list.forEach(group -> { + GroupsInGridResultDTO groupsInGridResultDTO = new GroupsInGridResultDTO(); + if (MemberStateConstant.REJECTED.equals(group.getState())) { + groupsInGridResultDTO.setGroupId(group.getId()); + groupsInGridResultDTO.setGroupName(group.getGroupName()); + groupsInGridResultDTO.setGroupHeadPhoto(group.getGroupHeadPhoto()); + groupsInGridResultDTO.setStatus(group.getState()); + groupsInGridResultDTO.setTotalMember(NumConstant.ZERO); + groupsInGridResultDTO.setTotalPartyMember(NumConstant.ZERO); + resultList.add(groupsInGridResultDTO); + } else if(MemberStateConstant.APPROVED.equals(group.getState())) { + //缓存中获取组信息 + ResiGroupInfoRedisDTO resiGroupInfoRedisDTO = resiGroupRedis.get(group.getId()); + groupsInGridResultDTO.setGroupId(resiGroupInfoRedisDTO.getGroupId()); + groupsInGridResultDTO.setGroupName(resiGroupInfoRedisDTO.getGroupName()); + groupsInGridResultDTO.setGroupHeadPhoto(resiGroupInfoRedisDTO.getGroupHeadPhoto()); + groupsInGridResultDTO.setStatus(resiGroupInfoRedisDTO.getGroupState()); + groupsInGridResultDTO.setTotalMember(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalMembers()); + groupsInGridResultDTO.setTotalPartyMember(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalPartyMembers()); + resultList.add(groupsInGridResultDTO); + } + + + }); + + return new Result>().ok(resultList); + } + + @Override + public Result getGovGroupSummarize(GovGroupSummarizeFromDTO formDTO) { + GovGroupSummarizeResultDTO resultDTO = new GovGroupSummarizeResultDTO(); + //从缓存中获取组相关信息 + ResiGroupInfoRedisDTO resiGroupInfoRedisDTO = resiGroupRedis.get(formDTO.getGroupId()); + resultDTO.setGroupId(resiGroupInfoRedisDTO.getGroupId()); + resultDTO.setGroupHeadPhoto(resiGroupInfoRedisDTO.getGroupHeadPhoto()); + resultDTO.setGroupIntroduction(resiGroupInfoRedisDTO.getGroupIntroduction()); + resultDTO.setGroupName(resiGroupInfoRedisDTO.getGroupName()); + resultDTO.setTotalMember(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalMembers()); + resultDTO.setTotalTopics(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalTopics()); + + //获取组长信息 + Result groupLeaderUserInfo = this.getGroupLeaderUserInfo(formDTO.getGroupId()); + if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { + resultDTO.setLeaderName(groupLeaderUserInfo.getData().getShowName()); + } else { + logger.info("组长注册信息查询失败" + groupLeaderUserInfo.getMsg()); + } + + return new Result().ok(resultDTO); + } + + /** + * @return ResiGroupInfoRedisDTO + * @Description 将ResiGroupDTO与ResiGroupStatisticalDTO转换成ResiGroupInfoRedisDTO + * @Param ResiGroupDTO + * @Param ResiGroupStatisticalDTO + * @Author wangc + * @Date 2020.04.13 16:36 + **/ + private ResiGroupInfoRedisDTO transferToGroupInfoRedis(ResiGroupDTO groupDTO, ResiGroupStatisticalDTO statisticalDTO) { + + ResiGroupStatisticalInfoRedisDTO statisticalObjct = + ConvertUtils.sourceToTarget(statisticalDTO, ResiGroupStatisticalInfoRedisDTO.class); + statisticalObjct.setTotalEarnestMembers(statisticalDTO.getTotalEarnestMemebers()); + statisticalObjct.setTotalNormalMembers(statisticalDTO.getTotalNormalMemebers()); + ResiGroupInfoRedisDTO targetObject = + ConvertUtils.sourceToTarget(groupDTO, ResiGroupInfoRedisDTO.class); + targetObject.setGroupId(groupDTO.getId()); + targetObject.setGroupState(groupDTO.getState()); + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN); + if (null != groupDTO.getLatestTopicPublishDate()) { + targetObject.setLatestTopicPublishDate(format.format(groupDTO.getLatestTopicPublishDate())); + } + targetObject.setGroupStatisticalInfo(statisticalObjct); + return targetObject; + } + + /** + * @Description 查询待审核的小组 (不从缓存中取,这时还没有成功建组,缓存中没有组数据) + * @Param ApplyingGroupsFormDTO + * @return Result> + * @Author wangc + * @Date 2020.04.18 10:18 + **/ + @Override + public Result> getApplyingGroups(ApplyingGroupsFormDTO params){ + if(null == params.getPageNo()){ + throw new RenException(ModuleConstant.PAGE_INDEX_NOT_NULL); + } + params.setPageNo((params.getPageNo() - NumConstant.ONE) * params.getPageSize()); + return new Result>().ok(baseDao.getApplyingGroupsByCustIdAndGridId(params)); + } + + /** + * @Description 建组申请详情 已审核(更新已读未读标识)/未审核 + * @Param AgreeApplyGroupFormDTO + * @return Result + * @Author wangc + * @Date 2020.04.19 23:32 + **/ + @Override + public Result getApplyingGroupDetail(CommonGroupIdFromDTO groupId){ + //1.查询小组信息 + //注意,这里查询出的组申请详情中,无论是已审核还是未审核,都是将该组信息关联到初始化组时状态为[待审核、审核通过、拒绝]其中之一的组操作记录上,并读取审核的已读未读信息,上述三种状态在一个组的所有操作记录当中只可能存在一种,与之后的屏蔽、取消屏蔽、关闭无关,如果查出多条说明建组的逻辑有问题 + ApplyingGroupDetailResultDTO detail = baseDao.getApplyingGroupDetailByGroupId(groupId.getGroupId()); + //2.查询用户信息(TODO 先走数据库,之后改成走缓存) + List userId = new ArrayList<>(); + userId.add(detail.getLeaderId()); + Result> userInfoResult = + epmetUserFeignClient.getUserResiInfoList(new UserResiInfoListFormDTO(userId)); + if(userInfoResult.success() && null != userInfoResult.getData() && userInfoResult.getData().size() >= 1){ + //姓氏+先生/女士 注:在数据库中拼接成[街道+显示名称]默认格式,故要进行截取 + //detail.setGroupLeaderName(userInfoResult.getData().get(0).getShowName().split("-")[NumConstant.ONE]); + //姓氏+名称 + detail.setGroupLeaderName(userInfoResult.getData().get(0).getSurname() + userInfoResult.getData().get(0).getName()); + detail.setStreet(userInfoResult.getData().get(0).getStreet()); + StringBuffer buffer = new StringBuffer(detail.getStreet()); + buffer.append(StringUtils.isBlank(buffer) ? "" : "-"); + detail.setGroupLeaderName(buffer.append(detail.getGroupLeaderName()).toString()); + }else{ + logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND); + } + //3.未读改成已读 + if(StringUtils.equals(detail.getReadFlag(),ModuleConstant.UNREAD)){ + ResiGroupOperationEntity operationEntity = new ResiGroupOperationEntity(); + operationEntity.setId(detail.getOperationId()); + operationEntity.setReadFlag(ModuleConstant.READ); + operationEntity.setUpdatedBy(groupId.getUserId()); + resiGroupOperationDao.updateById(operationEntity); + } + //4.将组长用户Id隐藏 + detail.setLeaderId(null); + detail.setOperationId(null); + + return new Result().ok(ConvertUtils.sourceToTarget(detail, ApplyingGroupDetailResult2DTO.class)); + } + + @Override + public List queryGroupProcessingCount(List gridIdList) { + List list=new ArrayList<>(); + for(String gridId:gridIdList){ + GroupProcessingCountResultDTO resultDTO=new GroupProcessingCountResultDTO(); + resultDTO.setGridId(gridId); + Integer auditingCreateGroupCount=resiGroupRedis.getWorkGrassrootsGroupRedDotValue(gridId); + Integer auditingGroupEditRecordCount=groupEditSubmitRecordDao.selectCountAuditingRec(gridId); + Integer auditingCount=auditingCreateGroupCount+auditingGroupEditRecordCount; + if (null == auditingCount) { + resultDTO.setCount(0); + } else { + resultDTO.setCount(auditingCount); + } + list.add(resultDTO); + } + return list; + } + + + /** + * @Description 查询一个网格下面所有组Id + * @param gridId + * @return List + * @author wangc + * @date 2020.05.14 10:54 + **/ + @Override + public List getGroupIdByGridId(String gridId) { + if(StringUtils.isBlank(gridId)) return null; + return baseDao.getGroupIdByGridId(gridId); + } + + /** + * @Description 返回 Map> + * @param gridIdList + * @return Map> + * @author wangc + * @date 2020.05.22 09:27 + **/ + @Override + public Map> getGroupIdsByGridIdList(List gridIdList) { + if(null == gridIdList || gridIdList.size() < NumConstant.ONE) + return null; + Map> result = new HashMap<>(); + List groups = new ArrayList<>(); + Map> groupMap + = groups.stream().collect(Collectors.groupingBy(ResiGroupDTO::getGridId)); + groupMap.forEach((k,v)->{ + Set groupIds = + v.stream().map(ResiGroupDTO::getId).collect(Collectors.toSet()); + result.put(k,groupIds); + }); + + return result; + } + + /** + * @Description 校验用户是否加入小组 + * @param gridId + * @author zxc + */ + @Override + public CheckJoinTeamResultDTO checkjointeam(GridIdFormDTO gridId) { + CheckJoinTeamResultDTO checkJoinTeamResultDTO = new CheckJoinTeamResultDTO(); + Integer joinTeamCounts = baseDao.checkjointeam(gridId); + if (joinTeamCounts==NumConstant.ZERO){//未加入任何小组(当前网格下) + checkJoinTeamResultDTO.setVoteAuthorization(false); + }else { + checkJoinTeamResultDTO.setVoteAuthorization(true); + } + return checkJoinTeamResultDTO; + } + + /** + * @Description 获取应表决数 + * @param formDTO + * @author zxc + */ + @Override + public ShouldVoteCountResultDTO shouldVoteCount(ShouldVoteCountFormDTO formDTO) { + //网格下所有加过组的人数 + Integer shouldVoteCount = baseDao.shouldVoteCount(formDTO).getShouldVoteCount(); + Integer outGroupCount = baseDao.getOutGroupCount(formDTO); + ShouldVoteCountResultDTO result = new ShouldVoteCountResultDTO(); + result.setShouldVoteCount(shouldVoteCount-outGroupCount); + return result; + } + + @Override + public List recommendedList(RecommendedListFormDTO formDTO) { + + //显示当前网格内所有当前用户还未加入的组,以组的人数由高到低排序;如果人数相同,以话题数由多到少排序 + List recommendGroupList = baseDao.selectListRecommendList(formDTO); + recommendGroupList.forEach(dto -> { + Result groupLeaderUserInfo = this.getGroupLeaderUserInfo(dto.getGroupId()); + if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { + dto.setLeaderName(groupLeaderUserInfo.getData().getShowName()); + } else { + logger.warn("组长注册信息查询失败" + groupLeaderUserInfo.getMsg()); + } + }); + return recommendGroupList; + } + + /** + * @Description 给加入此网格的网格长发送消息 + * @param msg + * @param gridId + * @param userId + * @author wangc + * @date 2020.04.29 22:49 + **/ + private void sendMsgResi2Gov(String title,String msg,String gridId,String userId,String customerId){ + //1.查询加入当前网格下的人员 customer_staff_grid + CommonGridIdFormDTO commonGridIdFormDTO = new CommonGridIdFormDTO(); + commonGridIdFormDTO.setGridId(gridId); + commonGridIdFormDTO.setUserId(userId); + Result> gridstaffs = + govOrgFeignClient.getGridStaffs(commonGridIdFormDTO); + //2.查询这些人是否有管理员身份且未被禁用 staff_role customer_staff + if(gridstaffs.success() && null != gridstaffs.getData() && gridstaffs.getData().size() > 0){ + RolesUsersListFormDTO rolesUsersListFormDTO = new RolesUsersListFormDTO(); + rolesUsersListFormDTO.setCustomerId(customerId); + List roleKeys = new ArrayList(); + roleKeys.add(ModuleConstant.STAFF_ROLE_GRID_MANAGER); + rolesUsersListFormDTO.setRoleKeys(roleKeys); + rolesUsersListFormDTO.setUserIds(gridstaffs.getData()); + Result> staffRoles = + epmetUserFeignClient.specificRolesStaffs(rolesUsersListFormDTO); + //3.发送消息 + if(staffRoles.success() && null != staffRoles.getData() && staffRoles.getData().size() > 0){ + List msgList = new ArrayList<>(); + List subscribeList = new ArrayList<>(); + for(String to : staffRoles.getData()){ + //站内信 + UserMessageFormDTO msgObj = new UserMessageFormDTO(); + msgObj.setApp(ModuleConstant.APP_GOV); + msgObj.setCustomerId(customerId); + msgObj.setGridId(gridId); + msgObj.setMessageContent(msg); + msgObj.setReadFlag(ReadFlagConstant.UN_READ); + msgObj.setTitle(title); + msgObj.setUserId(to); + msgList.add(msgObj); + //微信订阅 + WxSubscribeMessageFormDTO subscribeDTO = new WxSubscribeMessageFormDTO(); + subscribeDTO.setClientType(ModuleConstant.APP_GOV); + subscribeDTO.setGridId(gridId); + subscribeDTO.setCustomerId(customerId); + subscribeDTO.setUserId(to); + subscribeDTO.setBehaviorType(UserMessageConstant.WX_CREATE_GROUP_BEHAVIOR); + subscribeDTO.setMessageContent(msg); + subscribeDTO.setMessageTime(new Date()); + subscribeList.add(subscribeDTO); + } + if (subscribeList.size() > NumConstant.ZERO){ + epmetMessageOpenFeignClient.sendWxSubscribeMessage(subscribeList); + } + Result result = epmetMessageFeignClient.saveUserMessageList(msgList); + if(result.success()){ + return; + } + } + } + logger.warn(String.format(ModuleConstant.FAILED_SEND_MESSAGE,msg)); + + } + + @Override + public GroupDetailResultDTO getGroupDetail(String groupId) { + GroupDetailResultDTO groupDetail = new GroupDetailResultDTO(); + + // 1.拼装组基本信息 + GroupEditSubmitRecordEntity ler = groupEditSubmitRecordDao.getLatestEditSubmitRecord(groupId); + + if (ler != null) { + groupDetail.setAuditStatus(ler.getAuditStatus()); + groupDetail.setRemark(ler.getRemark()); + } + + if (ler != null && GroupAuditStatusConstant.UNDER_AUDITING.equals(ler.getAuditStatus())) { + // 审核中,显示待审核内容 + groupDetail.setGroupHeadPhoto(ler.getGroupHeadPhoto()); + groupDetail.setGroupName(ler.getGroupName()); + groupDetail.setGroupIntroduction(ler.getGroupIntroduction()); + } else { + // 不在审核中,直接显示组信息 + ResiGroupEntity resiGroupEntity = resiGroupDao.selectById(groupId); + if (resiGroupEntity == null) { + return null; + } + + groupDetail.setGroupHeadPhoto(resiGroupEntity.getGroupHeadPhoto()); + groupDetail.setGroupName(resiGroupEntity.getGroupName()); + groupDetail.setGroupIntroduction(resiGroupEntity.getGroupIntroduction()); + } + + // 2.编辑次数及其限制 + groupDetail.setEditNumLimit(GroupLimitConstant.EDIT_NUM_LIMIT_MONTH); + Date now = new Date(); + int usedEditNum = groupEditSubmitRecordDao.countEditNum(groupId, DateUtils.getMonthStart(now), DateUtils.getMonthEnd(now)); + groupDetail.setAvaliableEditNum(GroupLimitConstant.EDIT_NUM_LIMIT_MONTH - usedEditNum); + + // 审核状态 + // 是否可编辑 + boolean editable = true; + + if (GroupLimitConstant.EDIT_NUM_LIMIT_MONTH <= usedEditNum) { + // 达到最大编辑次数了 + editable = false; + } + + if (ler != null && GroupAuditStatusConstant.UNDER_AUDITING.equals(ler.getAuditStatus())) { + // 提交了,还没审核完 + editable = false; + } + + groupDetail.setEditable(editable); + return groupDetail; + } + + @Override + public void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction, String editUserId) { + // 1.判断小组是否存在,判断是否已经在"待审核"状态 + ResiGroupEntity group = resiGroupDao.selectById(groupId); + if (group == null) { + throw new RenException(EpmetErrorCode.GROUP_NOT_EXISTS.getCode(), EpmetErrorCode.GROUP_NOT_EXISTS.getMsg()); + } + + // 判断是否是组长 + ResiGroupMemberDTO groupLeader = resiGroupMemberDao.selectLeaderMember(groupId); + if (groupLeader == null || !groupLeader.getCustomerUserId().equals(editUserId)) { + String msg = "只有该组的组长才可以编辑组信息"; + throw new RenException(EpmetErrorCode.GROUP_EDIT_ERROR.getCode(), msg, msg, RenException.MessageMode.CODE_INTERNAL_EXTERNAL); + } + + // 2.判断是否可以提交编辑 + GroupEditSubmitRecordEntity lre = groupEditSubmitRecordDao.getLatestEditSubmitRecord(groupId); + if (lre != null && GroupAuditStatusConstant.UNDER_AUDITING.equals(lre.getAuditStatus())) { + // 在待审核状态,不允许再次提交编辑 + throw new RenException(EpmetErrorCode.GROUP_IN_AUDITING.getCode(), EpmetErrorCode.GROUP_IN_AUDITING.getMsg()); + } + + if (resiGroupDao.countExistsGroupNameBeforeEdit(groupId, group.getGridId(), groupName) > 0) { + // 已存在组名,拒绝提交 + throw new RenException(EpmetErrorCode.GROUP_ALREADY_EXISTED.getCode(), EpmetErrorCode.GROUP_ALREADY_EXISTED.getMsg()); + } + + Date now = new Date(); + int usedEditNum = groupEditSubmitRecordDao.countEditNum(groupId, DateUtils.getMonthStart(now), DateUtils.getMonthEnd(now)); + if (GroupLimitConstant.EDIT_NUM_LIMIT_MONTH <= usedEditNum) { + // 达到最大编辑次数了 + throw new RenException(EpmetErrorCode.GROUP_EDIT_NUM_LIMITED.getCode(), EpmetErrorCode.GROUP_EDIT_NUM_LIMITED.getMsg()); + } + + // 3.内容检查 + scanGroupEditContent(groupName, groupIntroduction, groupHeadPhoto); + + String app = loginUserUtil.getLoginUserApp(); + String userId = loginUserUtil.getLoginUserId(); + String messageText = generateGroupEditMessageText(app, userId, group.getCustomerId(), group.getGridId(), groupName); + + // 4.创建编辑提交记录 + GroupEditSubmitRecordEntity editRecord = new GroupEditSubmitRecordEntity(); + editRecord.setAuditStatus(GroupAuditStatusConstant.UNDER_AUDITING); + editRecord.setCustomerId(group.getCustomerId()); + editRecord.setGridId(group.getGridId()); + editRecord.setGroupHeadPhoto(groupHeadPhoto); + editRecord.setGroupIntroduction(groupIntroduction); + editRecord.setGroupId(groupId); + editRecord.setGroupName(groupName); + editRecord.setReadFlag(ReadFlagConstant.UN_READ); + editRecord.setMessageText(messageText); + + if (groupEditSubmitRecordDao.insert(editRecord) == 0) { + throw new RenException(EpmetErrorCode.GROUP_EDIT_ERROR.getCode(), EpmetErrorCode.GROUP_EDIT_ERROR.getMsg()); + } + + resiGroupRedis.addWorkGrassrootsGroupRedDotValue(group.getGridId()); + + } + + /** + * 生成组信息编辑简介文本:xxx申请编辑组信息,请审核 + * @param app + * @param userId + * @param customerId + * @param gridId + * @param groupName + * @return + */ + private String generateGroupEditMessageText(String app, String userId, String customerId, String gridId, String groupName) { + List resiRoles = getResiRoles(app, customerId, userId, gridId); + boolean isPartymember = false; + boolean isWarmhearted = false; + for (UserRoleResultDTO role : resiRoles) { + if (EpmetRoleKeyConstant.WARMHEARTED.equals(role.getRoleKey())) { + isWarmhearted = true; + } + if (EpmetRoleKeyConstant.PARTYMEMBER.equals(role.getRoleKey())) { + isPartymember = true; + } + } + if (!isWarmhearted && isPartymember) { + throw new RenException(EpmetErrorCode.CANNOT_CREATE_GROUP.getCode(), "只有党员和热心居民才能创建和编辑小组"); + } + String roleName = ""; + if (isPartymember) { + roleName = ModuleConstant.PARTYMEMBER; + } else if (isWarmhearted) { + roleName = ModuleConstant.WAREMHEARTED_RESI; + } + + //3.获取居民注册信息 + UserResiInfoFormDTO resiParam = new UserResiInfoFormDTO(); + resiParam.setCustomerId(customerId); + resiParam.setUserId(userId); + Result resiResult = + epmetUserFeignClient.getUserResiInfoDTO(resiParam); + String userName = ""; + if (resiResult.success() && null != resiResult.getData()) { + userName = (StringUtils.isBlank(resiResult.getData().getSurname()) ? "" : resiResult.getData().getSurname()) + + (StringUtils.isBlank(resiResult.getData().getName()) ? "" : resiResult.getData().getName()); + } + userName = StringUtils.isBlank(userName) ? ModuleConstant.UNKNOWN : userName; + return String.format(UserMessageConstant.EDIT_OF_GROUP_MESSAGE_TEMPLATE, roleName, userName, groupName); + } + + /** + * 查询居民的角色列表 + * @param app + * @param customerId + * @param userId + * @param gridId + * @return + */ + private List getResiRoles(String app, String customerId, String userId, String gridId) { + UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO(); + userRoleFormDTO.setApp(app); + userRoleFormDTO.setCustomerId(customerId); + userRoleFormDTO.setUserId(userId); + userRoleFormDTO.setGridId(gridId); + Result> rolesResult = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); + + if (! rolesResult.success()) { + logger.error("修改组信息:查询居民角色失败,详情:{}", rolesResult.getInternalMsg()); + throw new RenException(EpmetErrorCode.GROUP_EDIT_ERROR.getCode(), "查询居民角色失败"); + } else { + List roles = rolesResult.getData(); + if (CollectionUtils.isEmpty(roles)) { + roles = new ArrayList<>(); + } + return roles; + } + } + + /** + * 内容检查 + * @param groupName + * @param groupIntroduction + * @param groupHeadPhoto + */ + private void scanGroupEditContent(String groupName, String groupIntroduction, String groupHeadPhoto) { + // 文本内容审核 + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + TextTaskDTO taskDTO = new TextTaskDTO(); + String content = groupName.concat("-").concat(groupIntroduction); + taskDTO.setContent(content); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + textScanParamDTO.getTasks().add(taskDTO); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()) { + logger.error("调用内容审核服务审核文本发生错误:{}", textSyncScanResult.getInternalMsg()); + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode(), EpmetErrorCode.TEXT_SCAN_FAILED.getMsg()); + } + } + + // 图片内容审核 + ImgScanParamDTO imgScanParamDTO = new ImgScanParamDTO(); + ImgTaskDTO task = new ImgTaskDTO(); + task.setDataId(UUID.randomUUID().toString().replace("-", "")); + task.setUrl(groupHeadPhoto); + imgScanParamDTO.getTasks().add(task); + + Result imgScanResult = ScanContentUtils.imgSyncScan(scanApiUrl.concat(imgSyncScanMethod), imgScanParamDTO); + if (!imgScanResult.success()){ + logger.error("调用内容审核服务审核图片发生错误:{}", textSyncScanResult.getInternalMsg()); + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.IMG_SCAN_FAILED.getCode(), EpmetErrorCode.IMG_SCAN_FAILED.getMsg()); + } + } + } + + /** + * @Description 工作端 查询组变更待审核列表 + * @param param + * @return + * @author wangc + * @date 2020.11.03 10:19 + */ + @Override + public List getEditAuditingList(CommonGridAndPageFormDTO param) { + return Optional.ofNullable(PageHelper.startPage(null == param.getPageNo() ? NumConstant.ONE : param.getPageNo() , null == param.getPageSize() ? NumConstant.TWELVE : param.getPageSize()) + .doSelectPage(() -> { + groupEditSubmitRecordDao.selectGroupEditApplyList(param.getGridId());}).getResult()).orElse(new LinkedList<>()) + .stream().map(o -> { return (ApplyingGroupResultDTO)o; }).collect(Collectors.toList()); + } + + /** + * @Description 查询小组修改信息的详情内容 不加事务! + * @param param + * @return com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO + * @author wangc + * @date 2020.11.03 14:10 + */ + @Override + public GroupEditionDetailResultDTO getEditAuditingDetail(GovGroupSummarizeFromDTO param) { + GroupEditSubmitRecordEntity edit = groupEditSubmitRecordDao.selectEditDetail(param.getGroupId(),null); + if(null == edit) { + logger.error("com.epmet.modules.group.service.impl.ResiGroupServiceImpl.getEditAuditingDetail,未找到小组变更信息记录,传参:{}",JSON.toJSONString(param)); + return null;} + //取消未读状态 + GroupEditSubmitRecordEntity _update = new GroupEditSubmitRecordEntity(); + _update.setId(edit.getId());_update.setReadFlag(ModuleConstant.READ); + groupEditSubmitRecordDao.updateById(_update); + GroupEditionDetailResultDTO result = ConvertUtils.sourceToTarget(edit, GroupEditionDetailResultDTO.class); + result.setGroupLeaderName(resiGroupRedis.getFullName(edit.getCreatedBy())); + return result; + } + + /** + * @Description 工作人员提交审核 + * @param param + * @return void + * @author wangc + * @date 2020.11.03 16:02 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void auditEdit(GroupEditionAuditFormDTO param) { + if(StringUtils.equals(param.getAuditResult(),ModuleConstant.AUDITING_OPERATION_REJECT) && StringUtils.isBlank(param.getRemark())){ + throw new RenException("拒绝理由不能为空"); + } + GroupEditSubmitRecordEntity edit = groupEditSubmitRecordDao.selectEditDetail(param.getGroupId(),null); + if(null == edit){ + logger.error("com.epmet.modules.group.service.impl.ResiGroupServiceImpl.auditEdit,找不到待审核的组更新记录,传参:{}",JSON.toJSONString(param)); + throw new RenException("找不到待审核的组更新记录"); + } + + int affectedRows = groupEditSubmitRecordDao.updateAuditResult(param.getGroupId(),param.getStaffId(),param.getAuditResult(),param.getRemark()); + if(affectedRows <= NumConstant.ZERO){ + logger.error("com.epmet.modules.group.service.impl.ResiGroupServiceImpl.auditEdit,更新组编辑记录时受影响行数小于1,传参:{}",JSON.toJSONString(param)); + throw new RenException("更新组编辑记录时受影响行数小于1"); + } + if(!StringUtils.equals(param.getAuditResult(),ModuleConstant.AUDITING_OPERATION_REJECT)){ + //同意 + ResiGroupEntity _update = ConvertUtils.sourceToTarget(edit,ResiGroupEntity.class); + _update.setId(param.getGroupId()); + baseDao.updateById(_update); + } + resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(edit.getGridId()); + resiGroupRedis.delGroup(param.getGroupId()); + } + +} From 9f73be0db07ad7e30648761f70650dbf0bc52eb5 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 20 Nov 2020 14:55:02 +0800 Subject: [PATCH 13/31] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF=E8=AF=9D?= =?UTF-8?q?=E9=A2=98=E8=BD=AC=E8=AE=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../topic/form/ResiTopicTurnIssueFromDTO.java | 8 +-- .../topic/controller/ResiTopicController.java | 30 +++++++++ .../service/impl/ResiTopicServiceImpl.java | 64 ++++++++++--------- 3 files changed, 68 insertions(+), 34 deletions(-) diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java index 2800af1736..6238190998 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java @@ -18,24 +18,24 @@ public class ResiTopicTurnIssueFromDTO implements Serializable { /** * 议题名称 * */ - @NotBlank(message = "议题名称不能为空") + @NotBlank(message = "议题名称不能为空" ) private String issueTitle; /** * 话题Id * */ - @NotBlank(message = "话题Id不能为空") + @NotBlank(message = "话题Id不能为空" ) private String topicId; /** * 建议 * */ - @NotBlank(message = "建议不能为空") + @NotBlank(message = "建议不能为空" ) private String suggestion; /** * 用户Id * */ - @NotBlank(message = "用户Id不能为空") + @NotBlank(message = "用户Id不能为空" ) private String userId; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index 4c7d08ba93..0015e79113 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO; import com.epmet.modules.topic.service.ResiTopicService; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; @@ -236,6 +237,35 @@ public class ResiTopicController { return new Result(); } + /** + * @Description 话题转议题 + * @param topicTurnIssueFromDTO + * @param tokenDto + * @author wangc + * @date 2020.05.13 19:08 + **/ + @PostMapping("turnintoissuev2") + public Result turnIntoIssueV2(@LoginUser TokenDto tokenDto, @RequestBody ResiTopicTurnIssueFromDTO topicTurnIssueFromDTO){ + topicTurnIssueFromDTO.setUserId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(topicTurnIssueFromDTO); + return new Result().ok(topicService.shiftIssueV2(topicTurnIssueFromDTO)); + } + + /** + * @Description 话题转议题-重新编辑提交 + * @param tokenDto + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.11.20 14:19 + */ + @PostMapping("editissueapplication") + public Result editIssueApplication(@LoginUser TokenDto tokenDto, @RequestBody ResiTopicTurnIssueFromDTO param){ + param.setUserId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(param); + return new Result().ok(topicService.shiftIssueV2(param)); + } + /** * @Description 政府端查看议题详情时的话题相关信息 * @param govTopicIssueInfoFormDTO 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 9a26415681..3023465da1 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 @@ -1457,39 +1457,43 @@ public class ResiTopicServiceImpl extends BaseServiceImpl Date: Fri, 20 Nov 2020 15:00:18 +0800 Subject: [PATCH 14/31] =?UTF-8?q?=E6=88=91=E5=8F=91=E8=B5=B7=E7=9A=84?= =?UTF-8?q?=E8=AE=AE=E9=A2=98=E8=A1=A8=E5=86=B3=E4=B8=AD=20url=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../person/controller/IssueController.java | 2 +- .../service/impl/UserBadgeServiceImpl.java | 25 ------------------- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java index 1119d95bc3..e4757758f7 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java @@ -63,7 +63,7 @@ public class IssueController { * @author zxc * @date 2020/11/11 9:24 上午 */ - @PostMapping("my-pub-issues/auditing") + @PostMapping("my-pub-issues/voting") public Result> myPubIssuesAuditing(@LoginUser TokenDto tokenDto, @RequestBody MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO){ ValidatorUtils.validateEntity(myPubIssuesAuditingFormDTO, MyPubIssuesAuditingFormDTO.MyPubIssuesAuditing.class); return new Result>().ok(issueService.myPubIssuesAuditing(tokenDto,myPubIssuesAuditingFormDTO)); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java index 208611a01f..a0d4b75a41 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java @@ -289,31 +289,6 @@ public class UserBadgeServiceImpl implements UserBadgeService { } } - /** - * @Description 站内信发送——提交徽章认证 - * @Param form - * @author zxc - * @date 2020/11/10 9:04 上午 - */ - public void sendMessageByUser(UserBadgeCertificateRecordDTO form) { - List msgList = new ArrayList<>(); - UserMessageFormDTO formDTO = new UserMessageFormDTO(); - formDTO.setApp(BadgeConstant.RESI); - formDTO.setCustomerId(form.getCustomerId()); - formDTO.setGridId(form.getGridId()); - UserBadgeListResultDTO userBadgeListResultDTO = userBadgeDao.selectBadgeByBadgeId(form.getCustomerId(), form.getBadgeId()); - if (null == userBadgeListResultDTO){ - log.error(BadgeConstant.GET_BADGE_NAME_FAILURE); - return; - } - formDTO.setMessageContent(String.format(BadgeConstant.MESSAGE_CONTENT,userBadgeListResultDTO.getBadgeName())); - formDTO.setTitle(BadgeConstant.AUTH_TITLE); - formDTO.setReadFlag(BadgeConstant.READ_FLAG); - formDTO.setUserId(form.getUserId()); - msgList.add(formDTO); - Result result = messageFeignClient.saveUserMessageList(msgList); - } - /** * @Description 发送验证码 * @Param badgeSendCodeFormDTO From 0a40ab20884c0a665e5cc443a625f85d8b4d79eb Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 15:14:59 +0800 Subject: [PATCH 15/31] =?UTF-8?q?=E5=BE=BD=E7=AB=A0=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/UserBadgeDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml index dfb53c3363..74183a1073 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml @@ -52,10 +52,10 @@ sort FROM ( SELECT * FROM badge - WHERE CUSTOMER_ID = #{customerId} AND DEL_FLAG = '0' + WHERE CUSTOMER_ID = #{customerId} AND DEL_FLAG = '0' AND BADGE_STATUS = 'online' UNION ALL SELECT * FROM badge a - WHERE CUSTOMER_ID = 'default' AND a.DEL_FLAG = '0' AND BADGE_STATUS = 'online' + WHERE CUSTOMER_ID = 'default' AND a.DEL_FLAG = '0' AND NOT EXISTS ( SELECT ID FROM badge b WHERE CUSTOMER_ID = #{customerId} AND a.ID = b.ID)) t ORDER BY From bdc4867ec297fe0510b897a74638f57928cb81f4 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 20 Nov 2020 15:17:47 +0800 Subject: [PATCH 16/31] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AF=E5=BE=85?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E3=80=81=E5=B7=B2=E9=A9=B3=E5=9B=9E=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9D=83=E9=99=90=E6=A0=A1=E9=AA=8C=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/IssueAuditController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java index eae6791990..e038b18ce5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java @@ -45,6 +45,7 @@ public class IssueAuditController { * @description 待审核列表 * @Date 2020/11/18 17:28 **/ + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_AUDITING_LIST) @PostMapping("underauditinglist") public Result> queryUnderAuditingList(@RequestBody IssueAppQueryFormDTO formDTO) { formDTO.setApplyStatus(IssueConstant.UNDER_AUDITING); @@ -58,6 +59,7 @@ public class IssueAuditController { * @description 已驳回 列表 * @Date 2020/11/18 17:28 **/ + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_REJECTED_LIST) @PostMapping("rejectedlist") public Result> queryRejectedList(@RequestBody IssueAppQueryFormDTO formDTO) { formDTO.setApplyStatus(IssueConstant.REJECTED); From 1a788b6b31cbf6ee010565d38e030ed5e1357706 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 15:31:20 +0800 Subject: [PATCH 17/31] =?UTF-8?q?=E5=86=B2=E7=AA=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/feign/ResiGroupOpenFeignClient.java | 17 ----------------- .../ResiGroupOpenFeignClientFallback.java | 4 ---- .../com/epmet/modules/utils/ModuleConstant.java | 4 ---- .../epmet/feign/EpmetUserOpenFeignClient.java | 9 --------- .../EpmetUserOpenFeignClientFallback.java | 5 ----- 5 files changed, 39 deletions(-) diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index be5b0c1b62..ae5a202988 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -115,23 +115,6 @@ public interface ResiGroupOpenFeignClient { @PostMapping("/resi/group/group/gov-audit-edit") Result govAuditEdit(@RequestBody GroupEditionAuditFormDTO param); - - /** - * @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合 - * @author sun - */ - @PostMapping(value = "/resi/group/comment/topictoissuelist") - Result> topicToIssueList(MyPartProjectsFormDTO formDTO); - - /** - * @Description 查询话题所属小组名 - * @Param groupInfoFormDTO - * @author zxc - * @date 2020/11/11 1:36 下午 - */ - @PostMapping("resi/group/group/groupinfo") - Result> selectGroupInfo(@RequestBody GroupInfoFormDTO groupInfoFormDTO); - /** * @Description 个人中心-我参与过的话题 * @param param diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 701a291f08..ea2d09922b 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -75,10 +75,6 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "govAuditEdit", param); } - @Override - public Result> topicToIssueList(MyPartProjectsFormDTO formDTO) { - return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicToIssueList", formDTO); - } @Override public Result> selectGroupInfo(GroupInfoFormDTO groupInfoFormDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectGroupInfo", groupInfoFormDTO); 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 7e634e016e..7fec6adb3f 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 @@ -358,8 +358,4 @@ public interface ModuleConstant extends Constant { * 群邀请二维码跳转页面 */ String CODE_INVITE_PAGE = "pages/group/group/invitation/invitation"; - - String HIDDEN_TOPIC_REASON_PREFIX = "话题已屏蔽:"; - - String CREATE_ISSUE_ERROR = "创建议题失败"; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 24ee23c8c2..5d24564ae9 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -402,15 +402,6 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/customerstaff/getstaffbasicinfo") Result getStaffBasicInfo(@RequestBody StaffBasicInfoFromDTO fromDTO); - /** - * @Description 根据角色key查询具有该key的所有角色列表 - * @return - * @author wxz - * @date 2020.11.17 16:20 - */ - @PostMapping("/epmetuser/govstaffrole/list-roles-by-rolekey/{role-key}") - Result> listRolesByRoleKey(@PathVariable("role-key") String roleKey); - /** * @Description 个人中心-我的建议列表 * @param dto diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index e980430918..ec8c7b4efc 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -278,11 +278,6 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffBasicInfo", fromDTO); } - @Override - public Result> listRolesByRoleKey(String roleKey) { - return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "listRolesByRoleKey", roleKey); - } - @Override public Result> myAdviceList(MyAdviceListFormDTO dto) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "myAdviceList", dto); From 4e117ec2d0e44c364fa8cadaf481d689d1b2e99d Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 20 Nov 2020 15:35:35 +0800 Subject: [PATCH 18/31] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=94=A8=E6=88=B7=E5=BE=BD=E7=AB=A0=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E7=94=A8=E6=88=B7=E6=98=AF=E7=82=B9=E4=BA=AE=E7=8A=B6?= =?UTF-8?q?=E6=80=81=EF=BC=8C=E4=BD=86=E6=98=AF=E5=AE=A2=E6=88=B7=E7=9A=84?= =?UTF-8?q?=E5=BE=BD=E7=AB=A0=E8=A2=AB=E4=B8=8B=E7=BA=BF=EF=BC=8C=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E4=B8=AD=E4=B8=8D=E4=BC=9A=E5=87=BA=E7=8E=B0=E6=AD=A4?= =?UTF-8?q?=E5=BE=BD=E7=AB=A0=EF=BC=8C=E4=BD=86=E6=98=AF=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E4=B8=AD=E4=BE=9D=E7=84=B6=E5=AD=98=E5=9C=A8=EF=BC=8C?= =?UTF-8?q?=E4=B8=94=E6=98=AF=E7=82=B9=E4=BA=AE=E7=8A=B6=E6=80=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/UserBadgeDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml index 74183a1073..5a7e8e6c6b 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml @@ -219,7 +219,7 @@ badgeInfo.BADGE_ICON FROM resi_user_badge userBadge - LEFT JOIN ( + INNER JOIN ( SELECT id AS badgeId, CUSTOMER_ID, From 9140cef87112420c9c59d2982f026ddbab5b414d Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 20 Nov 2020 15:41:59 +0800 Subject: [PATCH 19/31] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/feign/ResiGroupOpenFeignClient.java | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 5197cf9b93..0a2718b0c5 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -1,18 +1,11 @@ package com.epmet.resi.group.feign; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.CommonGridAndPageFormDTO; -import com.epmet.resi.group.dto.group.form.GovGroupSummarizeFromDTO; -import com.epmet.resi.group.dto.group.form.GroupEditionAuditFormDTO; -import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; -import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; -import org.springframework.cloud.openfeign.FeignClient; - import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; -import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; +import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; +import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; +import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; @@ -23,10 +16,6 @@ import com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO; import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO; import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import java.util.List; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -120,7 +109,6 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/topic/myparttopic") Result selectMyPartTopic(@RequestBody MyPartIssueFormDTO myPartIssueFormDTO); -} /** * @Description 待审核||已驳回 申请详情 @@ -130,4 +118,4 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/groupissue/applicationdetail") Result applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO); - } +} From 3fc38ecffa26e310ceeb07335b6f41ddaa3cb1a5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 20 Nov 2020 15:50:39 +0800 Subject: [PATCH 20/31] =?UTF-8?q?issue=5Fapplication=E3=80=81issue=5Fappli?= =?UTF-8?q?cation=5Fhistory=20=E6=96=B0=E5=A2=9Eauto=5Fpassed:=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/IssueApplicationDTO.java | 2 +- .../src/main/java/com/epmet/dto/IssueApplicationHistoryDTO.java | 1 + .../src/main/java/com/epmet/entity/IssueApplicationEntity.java | 2 +- .../java/com/epmet/entity/IssueApplicationHistoryEntity.java | 1 + .../db/migration/V0.0.4__issue_audit_addautopassed.sql | 2 ++ 5 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.4__issue_audit_addautopassed.sql diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationDTO.java index ed743d720d..ceb24d7d18 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationDTO.java @@ -55,7 +55,7 @@ public class IssueApplicationDTO implements Serializable { private String suggestion; /** - * 审核状态:under_auditing:待审核;approved:通过;rejected:驳回 + * 审核状态:under_auditing:待审核;approved:通过;rejected:驳回;自动通过:auto_passed */ private String applyStatus; diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationHistoryDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationHistoryDTO.java index fdde89c383..b81e50b7f8 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationHistoryDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationHistoryDTO.java @@ -53,6 +53,7 @@ public class IssueApplicationHistoryDTO implements Serializable { * under_auditing:待审核; * approved:审核通过; * rejected:驳回; + * auto_passed:自动通过 */ private String actionType; diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationEntity.java index d117c370e9..1b68f2852c 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationEntity.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationEntity.java @@ -51,7 +51,7 @@ public class IssueApplicationEntity extends BaseEpmetEntity { private String suggestion; /** - * 审核状态:under_auditing:待审核;approved:通过;rejected:驳回 + * 审核状态:under_auditing:待审核;approved:通过;rejected:驳回;自动通过:auto_passed */ private String applyStatus; diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationHistoryEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationHistoryEntity.java index 983dd8e550..516334333e 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationHistoryEntity.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationHistoryEntity.java @@ -49,6 +49,7 @@ public class IssueApplicationHistoryEntity extends BaseEpmetEntity { * under_auditing:待审核; * approved:审核通过; * rejected:驳回; + * auto_passed:自动通过 */ private String actionType; diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.4__issue_audit_addautopassed.sql b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.4__issue_audit_addautopassed.sql new file mode 100644 index 0000000000..9917d87b41 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.4__issue_audit_addautopassed.sql @@ -0,0 +1,2 @@ +ALTER TABLE issue_application MODIFY APPLY_STATUS VARCHAR(32) NOT NULL comment '审核状态:under_auditing:待审核;approved:通过;rejected:驳回;自动通过:auto_passed'; +alter table issue_application_history modify ACTION_TYPE varchar(32) not null comment 'under_auditing:提交审核;approved:审核通过,rejected:驳回;auto_passed:自动通过'; \ No newline at end of file From 4c9f872ecf5a43275272922f3e109dcae5249c79 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 20 Nov 2020 15:51:06 +0800 Subject: [PATCH 21/31] =?UTF-8?q?=E5=BE=BD=E7=AB=A0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/UserBadgeServiceImpl.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java index a0d4b75a41..5995748dc9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java @@ -88,20 +88,12 @@ public class UserBadgeServiceImpl implements UserBadgeService { userBadgeListResultDTOS.forEach(badge -> { if (u.getBadgeId().equals(badge.getBadgeId())){ badge.setBadgeIcon(u.getBadgeIcon()); + u.setUpdatedTime(badge.getUpdatedTime()); u.setStatus(true); } }); }); - List noOpenBadge = new ArrayList<>(); - redisUserBadgeList.forEach(u -> { - if (!u.getStatus()){ - noOpenBadge.add(u); - } - }); - if (!CollectionUtils.isEmpty(noOpenBadge)){ - userBadgeListResultDTOS.addAll(noOpenBadge); - } - return userBadgeListResultDTOS.stream().sorted(Comparator.comparing(UserBadgeListResultDTO::getIsOpened,Comparator.reverseOrder()).thenComparing(UserBadgeListResultDTO::getUpdatedTime,Comparator.reverseOrder()).thenComparing(UserBadgeListResultDTO::getSort)).collect(Collectors.toList()); + return redisUserBadgeList.stream().sorted(Comparator.comparing(UserBadgeListResultDTO::getStatus,Comparator.reverseOrder()).thenComparing(UserBadgeListResultDTO::getUpdatedTime,Comparator.reverseOrder()).thenComparing(UserBadgeListResultDTO::getSort)).collect(Collectors.toList()); } /** From 9c160e329073c017bff480d2319664a31fa0230a Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 20 Nov 2020 16:00:48 +0800 Subject: [PATCH 22/31] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/feign/ResiGroupOpenFeignClient.java | 50 ++----------------- .../ResiGroupOpenFeignClientFallback.java | 33 +----------- .../group/controller/ResiGroupController.java | 14 ------ .../group/service/ResiGroupService.java | 9 ---- .../service/impl/ResiGroupServiceImpl.java | 5 -- 5 files changed, 5 insertions(+), 106 deletions(-) diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index ddc95f4925..cf7090528a 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -1,18 +1,11 @@ package com.epmet.resi.group.feign; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.CommonGridAndPageFormDTO; -import com.epmet.resi.group.dto.group.form.GovGroupSummarizeFromDTO; -import com.epmet.resi.group.dto.group.form.GroupEditionAuditFormDTO; -import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; -import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; -import org.springframework.cloud.openfeign.FeignClient; - import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; -import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; +import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; +import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; +import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; @@ -23,38 +16,11 @@ import com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO; import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO; import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import java.util.List; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.CommonGridAndPageFormDTO; -import com.epmet.resi.group.dto.group.form.GovGroupSummarizeFromDTO; -import com.epmet.resi.group.dto.group.form.GroupEditionAuditFormDTO; -import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; -import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.CreateGroupCodeFormDTO; import org.springframework.cloud.openfeign.FeignClient; - -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import java.util.List; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import java.util.List; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -68,16 +34,6 @@ import java.util.List; //@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class,url = "localhost:8095") public interface ResiGroupOpenFeignClient { - /** - * @Description 创建群组二维码 - * @param dto - * @return com.epmet.commons.tools.utils.Result - * @Author liushaowen - * @Date 2020/11/13 16:33 - */ - @PostMapping(value = "/resi/group/resigroupcode/creategroupcode", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) - Result createGroupCode(@RequestBody CreateGroupCodeFormDTO dto); - /** * @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合 * @author sun diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 438e49b3f7..bb711ad29d 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -3,24 +3,10 @@ package com.epmet.resi.group.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.CommonGridAndPageFormDTO; -import com.epmet.resi.group.dto.group.form.GovGroupSummarizeFromDTO; -import com.epmet.resi.group.dto.group.form.GroupEditionAuditFormDTO; +import com.epmet.resi.group.dto.group.form.*; +import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.CreateGroupCodeFormDTO; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; -import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; @@ -28,10 +14,6 @@ import com.epmet.resi.group.dto.topic.form.MyPartIssueFormDTO; import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.CreateGroupCodeFormDTO; import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; @@ -47,17 +29,6 @@ import java.util.List; */ @Component public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClient { - /** - * @param dto - * @return com.epmet.commons.tools.utils.Result - * @Description 创建群组二维码 - * @Author liushaowen - * @Date 2020/11/13 16:33 - */ - @Override - public Result createGroupCode(CreateGroupCodeFormDTO dto) { - return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "createGroupCode", dto); - } @Override public Result> topicToIssueList(MyPartProjectsFormDTO formDTO) { diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java index 714b2fee5f..4d772e0c90 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java @@ -426,20 +426,6 @@ public class ResiGroupController { return new Result(); } - - /** - * @param formDTO - * @author yinzuomei - * @description 组长开启/关闭入群审核 - * @Date 2020/11/17 14:18 - **/ - @PostMapping("editauditswitch") - public Result editAuditSwitch(@RequestBody EditAuditSwitchFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO,EditAuditSwitchFormDTO.AddUserShowGroup.class); - resiGroupService.editAuditSwitch(formDTO); - return new Result(); - } - /** * @Description 查询话题所属小组名 * @Param groupInfoFormDTO diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java index 9ce03e5ee3..e064e35424 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java @@ -327,15 +327,6 @@ public interface ResiGroupService extends BaseService { */ void auditEdit(GroupEditionAuditFormDTO param); - /** - * @return void - * @param formDTO - * @author yinzuomei - * @description 组长开启/关闭入群审核 - * @Date 2020/11/17 14:18 - **/ - void editAuditSwitch(EditAuditSwitchFormDTO formDTO); - /** * @Description 查询话题所属小组名 * @Param groupInfoFormDTO diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index b74efa6bb7..d9cd61d880 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -164,11 +164,6 @@ public class ResiGroupServiceImpl extends BaseServiceImpl Date: Mon, 23 Nov 2020 10:03:15 +0800 Subject: [PATCH 23/31] =?UTF-8?q?=E5=BE=BD=E7=AB=A0=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=8F=90=E4=BA=A4=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dao/UserBadgeCertificateRecordDao.java | 12 +++++++++++- .../epmet/service/impl/UserBadgeServiceImpl.java | 16 +++++++++++++++- .../mapper/UserBadgeCertificateRecordDao.xml | 12 ++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBadgeCertificateRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBadgeCertificateRecordDao.java index f7f4dba91c..2d73b4bac6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBadgeCertificateRecordDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBadgeCertificateRecordDao.java @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.UserBadgeCertificateRecordEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 用户认证徽章记录表 @@ -29,5 +30,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface UserBadgeCertificateRecordDao extends BaseDao { - + + /** + * @Description 查询是否已存在记录 + * @Param badgeId + * @Param userId + * @author zxc + * @date 2020/11/23 上午9:50 + */ + Integer selectIsExist(@Param("badgeId")String badgeId,@Param("userId")String userId); + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java index 5995748dc9..6edee9eff0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java @@ -65,6 +65,8 @@ public class UserBadgeServiceImpl implements UserBadgeService { private EpmetUserOpenFeignClient epmetUserOpenFeignClient; @Autowired private BadgeCertificationConfigDao badgeCertificationConfigDao; + @Autowired + private UserBadgeCertificateRecordDao userBadgeCertificateRecordDao; /** * @Description 查询已经点亮的徽章 @@ -84,6 +86,8 @@ public class UserBadgeServiceImpl implements UserBadgeService { if (CollectionUtils.isEmpty(userBadgeListResultDTOS)){ return redisUserBadgeList.stream().sorted(Comparator.comparing(UserBadgeListResultDTO::getSort)).collect(Collectors.toList()); } + List result = new ArrayList<>(); + result.addAll(userBadgeListResultDTOS); redisUserBadgeList.forEach(u -> { userBadgeListResultDTOS.forEach(badge -> { if (u.getBadgeId().equals(badge.getBadgeId())){ @@ -93,7 +97,13 @@ public class UserBadgeServiceImpl implements UserBadgeService { } }); }); - return redisUserBadgeList.stream().sorted(Comparator.comparing(UserBadgeListResultDTO::getStatus,Comparator.reverseOrder()).thenComparing(UserBadgeListResultDTO::getUpdatedTime,Comparator.reverseOrder()).thenComparing(UserBadgeListResultDTO::getSort)).collect(Collectors.toList()); + Map> collect = redisUserBadgeList.stream().collect(Collectors.groupingBy(UserBadgeListResultDTO::getStatus)); + List noIsLight = collect.get(false); + if (CollectionUtils.isEmpty(noIsLight)){ + return result; + } + result.addAll(noIsLight.stream().sorted(Comparator.comparing(UserBadgeListResultDTO::getSort)).collect(Collectors.toList())); + return result; } /** @@ -233,6 +243,10 @@ public class UserBadgeServiceImpl implements UserBadgeService { @Override @Transactional(rollbackFor = Exception.class) public Result authBadgeRecord(CertificationAddFormDTO certificationAddFormDTO) { + Integer recordCount = userBadgeCertificateRecordDao.selectIsExist(certificationAddFormDTO.getBadgeId(), certificationAddFormDTO.getUserId()); + if (recordCount>NumConstant.ZERO){ + throw new RenException("不允许重复提交审核"); + } log.info(JSON.toJSONString(certificationAddFormDTO)); AuthFieldFormDTO authFieldFormDTO = new AuthFieldFormDTO(); authFieldFormDTO.setCustomerId(certificationAddFormDTO.getCustomerId()); diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeCertificateRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeCertificateRecordDao.xml index a2f59e8b8e..2a58027d9c 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeCertificateRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeCertificateRecordDao.xml @@ -28,5 +28,17 @@ + + + \ No newline at end of file From 8a9d6e1909725691551c18a291a83ccc58b27a63 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 23 Nov 2020 10:07:21 +0800 Subject: [PATCH 24/31] =?UTF-8?q?=E6=97=A7=E6=8E=A5=E5=8F=A3=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/CustomerGridServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 1d6676e96f..df895b4f11 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -566,6 +566,10 @@ public class CustomerGridServiceImpl extends BaseServiceImpl> getGridListByGridIds(List gridIdList) { Result> result = new Result>(); + if (gridIdList.size() < NumConstant.ONE) { + logger.error("根据网格Id集合获取网格列表信息-传入的网格Id集合为空数组!"); + return result; + } List list = baseDao.selectGridByIds(gridIdList); return result.ok(list); } From 6235c4e92058987468c5c514aecd9903992c3785 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 23 Nov 2020 10:50:19 +0800 Subject: [PATCH 25/31] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83-?= =?UTF-8?q?=E6=88=91=E5=8F=91=E8=B5=B7=E7=9A=84=E8=AE=AE=E9=A2=98-?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=B8=AD=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/dto/form/PageFormDTO.java | 27 ++++++++ .../dto/form/UserPubAuditingIssueFormDTO.java | 20 ++++++ .../result/UserPubAuditingIssueResDTO.java | 62 +++++++++++++++++++ .../epmet/feign/GovIssueOpenFeignClient.java | 9 +++ .../GovIssueOpenFeignClientFallBack.java | 11 ++++ .../IssueApplicationController.java | 14 +++++ .../com/epmet/dao/IssueApplicationDao.java | 10 +++ .../service/IssueApplicationService.java | 11 +++- .../impl/IssueApplicationServiceImpl.java | 14 +++++ .../resources/mapper/IssueApplicationDao.xml | 24 +++++++ .../group/feign/ResiGroupOpenFeignClient.java | 5 ++ .../ResiGroupOpenFeignClientFallback.java | 18 +++--- .../group/controller/ResiGroupController.java | 17 ++++- .../epmet/modules/group/dao/ResiGroupDao.java | 8 +++ .../group/service/ResiGroupService.java | 9 +++ .../service/impl/ResiGroupServiceImpl.java | 17 +++++ .../resources/mapper/group/ResiGroupDao.xml | 11 ++++ .../result/UserPubAuditingIssueResultDTO.java | 51 +++++++++++++++ .../person/controller/IssueController.java | 20 ++++-- .../modules/person/service/IssueService.java | 16 +++-- .../person/service/impl/IssueServiceImpl.java | 61 ++++++++++++++++-- 21 files changed, 409 insertions(+), 26 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserPubAuditingIssueFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/UserPubAuditingIssueResDTO.java create mode 100644 epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/UserPubAuditingIssueResultDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java new file mode 100644 index 0000000000..134124f512 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.commons.tools.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 分页通用类 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/20 17:02 + */ +@Data +public class PageFormDTO { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotNull(message = "页码不能为空", groups = AddUserInternalGroup.class) + private Integer pageNo; + + @NotNull(message = "每页数量不能为空", groups = AddUserInternalGroup.class) + private Integer pageSize; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserPubAuditingIssueFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserPubAuditingIssueFormDTO.java new file mode 100644 index 0000000000..99b52b0b63 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserPubAuditingIssueFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 用户发起的议题列表-审核中列表 入参 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/23 9:05 + */ +@Data +public class UserPubAuditingIssueFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = 6520349189385929988L; + @NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class) + private String userId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/UserPubAuditingIssueResDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/UserPubAuditingIssueResDTO.java new file mode 100644 index 0000000000..9b47e5dda9 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/UserPubAuditingIssueResDTO.java @@ -0,0 +1,62 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 用户发起的议题列表-审核中列表 返参 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/20 16:23 + */ +@Data +public class UserPubAuditingIssueResDTO implements Serializable { + private static final long serialVersionUID = -6452959808958252729L; + + /** + * 申请id + */ + private String issueApplicationId; + + /** + * under_auditing:待审核; rejected:驳回 + */ + private String applyStatus; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 转议题时输入的建议 + */ + private String issueSuggestion; + + /** + * 网格名称: 组织-网格 + */ + private String gridName; + + /** + * 小组名称 + */ + private String groupName; + + /** + * 发起时间戳 + */ + private Long publishTime; + + + /** + * 网格id + */ + private String gridId; + + /** + * 小组id + */ + private String groupId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 0e87badf8a..739c70da34 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -200,4 +200,13 @@ public interface GovIssueOpenFeignClient { */ @PostMapping(value = "/gov/issue/issue/topic-shift-issue") Result topicShiftedToIssueV2(@RequestBody IssueShiftedFromTopicFormDTO param); + + /** + * @param fomrDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:21 + **/ + @PostMapping(value = "/gov/issue/issueapplication/queryuserpubauditingissues") + Result> queryUserPubAuditingIssues(@RequestBody UserPubAuditingIssueFormDTO fomrDTO); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index 2842fd826f..ea59c6d349 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -182,4 +182,15 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO param) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "topicShiftedToIssueV2", param); } + + /** + * @param fomrDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:21 + **/ + @Override + public Result> queryUserPubAuditingIssues(UserPubAuditingIssueFormDTO fomrDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "queryUserPubAuditingIssues", fomrDTO); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java index 7d03d01ca0..63f5af6117 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java @@ -17,6 +17,7 @@ package com.epmet.controller; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -26,7 +27,9 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IssueApplicationDTO; import com.epmet.dto.form.IssueAppQueryFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; import com.epmet.dto.result.IssueApplicationResDTO; +import com.epmet.dto.result.UserPubAuditingIssueResDTO; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; @@ -150,4 +153,15 @@ public class IssueApplicationController { return new Result>().ok(issueApplicationService.list(params)); } + /** + * @param fomrDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:35 + **/ + @PostMapping("queryuserpubauditingissues") + public Result> queryUserPubAuditingIssues(@RequestBody UserPubAuditingIssueFormDTO fomrDTO) { + ValidatorUtils.validateEntity(fomrDTO, PageFormDTO.AddUserInternalGroup.class); + return new Result>().ok(issueApplicationService.queryUserPubAuditingIssues(fomrDTO)); + } } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java index efe02e3c0b..6e0a65b5a0 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java @@ -19,7 +19,9 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.IssueAppQueryFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; import com.epmet.dto.result.IssueApplicationResDTO; +import com.epmet.dto.result.UserPubAuditingIssueResDTO; import com.epmet.entity.IssueApplicationEntity; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; @@ -52,4 +54,12 @@ public interface IssueApplicationDao extends BaseDao { * @Date 2020/11/18 16:28 **/ List selectList(IssueAppQueryFormDTO formDTO); + + /** + * @param formDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:37 + **/ + List selectUserPubAuditingIssues(UserPubAuditingIssueFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationService.java index 6681af810b..2ece400620 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationService.java @@ -21,8 +21,9 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IssueApplicationDTO; import com.epmet.dto.form.IssueAppQueryFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; import com.epmet.dto.result.IssueApplicationResDTO; -import com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO; +import com.epmet.dto.result.UserPubAuditingIssueResDTO; import com.epmet.entity.IssueApplicationEntity; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; @@ -134,4 +135,12 @@ public interface IssueApplicationService extends BaseService listIssueApp(IssueAppQueryFormDTO formDTO); + + /** + * @param fomrDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:35 + **/ + List queryUserPubAuditingIssues(UserPubAuditingIssueFormDTO fomrDTO); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java index 7109d22494..885b6840a8 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java @@ -26,7 +26,9 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IssueApplicationDao; import com.epmet.dto.IssueApplicationDTO; import com.epmet.dto.form.IssueAppQueryFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; import com.epmet.dto.result.IssueApplicationResDTO; +import com.epmet.dto.result.UserPubAuditingIssueResDTO; import com.epmet.entity.IssueApplicationEntity; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; @@ -120,6 +122,18 @@ public class IssueApplicationServiceImpl extends BaseServiceImpl queryUserPubAuditingIssues(UserPubAuditingIssueFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(),formDTO.getPageSize()); + return baseDao.selectUserPubAuditingIssues(formDTO); + } + /** * @Description 待审核||已驳回 申请详情 * @Param applicationDetailFormDTO diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml index 20a25f9f90..d525dd9b8d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml @@ -39,4 +39,28 @@ ORDER BY ia.UPDATED_TIME DESC + + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 0a2718b0c5..fbd57bfbde 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -2,6 +2,7 @@ package com.epmet.resi.group.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; @@ -21,6 +22,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.HashMap; import java.util.List; /** @@ -118,4 +120,7 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/groupissue/applicationdetail") Result applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO); + + @PostMapping("resi/group/group/getgroupinfo") + Result> getGroupInfo(@RequestBody List groupIds); } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index ff1df0075e..3e21743ce4 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -3,17 +3,11 @@ package com.epmet.resi.group.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.CommonGridAndPageFormDTO; -import com.epmet.resi.group.dto.group.form.GovGroupSummarizeFromDTO; -import com.epmet.resi.group.dto.group.form.GroupEditionAuditFormDTO; +import com.epmet.resi.group.dto.group.ResiGroupDTO; +import com.epmet.resi.group.dto.group.form.*; +import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; -import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; -import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; @@ -26,6 +20,7 @@ import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.stereotype.Component; +import java.util.HashMap; import java.util.List; /** @@ -85,4 +80,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "applicationDetail", applicationDetailFormDTO); } + + @Override + public Result> getGroupInfo(List groupIds) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getGroupInfo", groupIds); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java index d9f1b60ead..793cdbb83b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java @@ -25,12 +25,18 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.modules.group.service.ResiGroupService; import com.epmet.modules.group.service.ResiGroupStatisticalService; import com.epmet.resi.group.dto.group.GroupProcessingCountResultDTO; +import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.group.dto.member.form.ResiIdentityFormDTO; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.HashMap; import java.util.List; @@ -433,4 +439,13 @@ public class ResiGroupController { public Result> selectGroupInfo(@RequestBody GroupInfoFormDTO groupInfoFormDTO){ return new Result>().ok(resiGroupService.selectGroupInfo(groupInfoFormDTO)); } + + @PostMapping("getgroupinfo") + public Result> getGroupInfo(@RequestBody List groupIds) { + if (CollectionUtils.isEmpty(groupIds)) { + return new Result>().ok(new HashMap<>()); + } + return new Result>().ok(resiGroupService.getGroupInfo(groupIds)); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java index 363210b6ec..cdb6a245a9 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java @@ -218,4 +218,12 @@ public interface ResiGroupDao extends BaseDao { * @date 2020/11/11 1:36 下午 */ List selectGroupInfo(@Param("topicIds")List userIds); + + /** + * @param groupIds + * @author yinzuomei + * @description + * @Date 2020/11/23 10:07 + **/ + List selectListByIds(@Param("groupIds") List groupIds); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java index bea33897d6..fa1768d946 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java @@ -28,6 +28,7 @@ import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -332,4 +333,12 @@ public interface ResiGroupService extends BaseService { * @date 2020/11/11 1:36 下午 */ List selectGroupInfo(GroupInfoFormDTO groupInfoFormDTO); + + /** + * @param groupIds + * @author yinzuomei + * @description 查询小组基本信息 ,返回map + * @Date 2020/11/23 10:03 + **/ + HashMap getGroupInfo(List groupIds); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 3c628bdf81..b2aae6f9b5 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -82,6 +82,7 @@ import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -1064,6 +1065,22 @@ public class ResiGroupServiceImpl extends BaseServiceImpl getGroupInfo(List groupIds) { + List list=baseDao.selectListByIds(groupIds); + if(CollectionUtils.isEmpty(list)){ + return new HashMap<>(); + } + HashMap maps = (HashMap) list.stream().collect(Collectors.toMap(ResiGroupDTO::getId,Function.identity())); + return maps; + } + @Override public GroupDetailResultDTO getGroupDetail(String groupId) { GroupDetailResultDTO groupDetail = new GroupDetailResultDTO(); diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml index 95a6b66ce3..46f25e51bf 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml @@ -459,4 +459,15 @@ AND ta.DEL_FLAG = '0' AND rt.ID = #{topicId} + + diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/UserPubAuditingIssueResultDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/UserPubAuditingIssueResultDTO.java new file mode 100644 index 0000000000..1bce77f907 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/UserPubAuditingIssueResultDTO.java @@ -0,0 +1,51 @@ +package com.epmet.resi.mine.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 个人中心-我发起的议题列表-审核中列表 返给前端DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/23 10:36 + */ +@Data +public class UserPubAuditingIssueResultDTO implements Serializable { + private static final long serialVersionUID = -7083622810147837717L; + /** + * 申请id + */ + private String issueApplicationId; + + /** + * under_auditing:待审核; rejected:驳回 + */ + private String applyStatus; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 转议题时输入的建议 + */ + private String issueSuggestion; + + /** + * 网格名称: 组织-网格 + */ + private String gridName; + + /** + * 小组名称 + */ + private String groupName; + + /** + * 发起时间戳 + */ + private Long publishTime; + +} diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java index e4757758f7..c6375670b1 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java @@ -1,18 +1,16 @@ package com.epmet.modules.person.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; -import com.epmet.dto.result.MyPartIssuesResultDTO; -import com.epmet.dto.result.MyPartProjectsResultDTO; -import com.epmet.dto.result.MyPubIssuesAuditingResultDTO; -import com.epmet.dto.result.MyPubIssuesClosedResultDTO; -import com.epmet.dto.result.MyPubIssuesShiftProjectResultDTO; +import com.epmet.dto.result.*; import com.epmet.modules.person.service.IssueService; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.mine.dto.result.UserPubAuditingIssueResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -94,4 +92,16 @@ public class IssueController { formDTO.setUserId(loginUserUtil.getLoginUserId()); return new Result>().ok(issueService.getMyPubIssuesClosed(formDTO)); } + + /** + * @param fomrDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-审核中列表 + * @Date 2020/11/23 9:07 + **/ + @PostMapping("my-pub-issues/auditinglist") + public Result> getMyPubAuditingIssues(@RequestBody PageFormDTO fomrDTO) { + ValidatorUtils.validateEntity(fomrDTO, PageFormDTO.AddUserInternalGroup.class); + return new Result>().ok(issueService.getMyPubAuditingIssues(fomrDTO)); + } } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java index b04c5082a3..b78ec5d664 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java @@ -1,13 +1,11 @@ package com.epmet.modules.person.service; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; -import com.epmet.dto.result.MyPartIssuesResultDTO; -import com.epmet.dto.result.MyPartProjectsResultDTO; -import com.epmet.dto.result.MyPubIssuesAuditingResultDTO; -import com.epmet.dto.result.MyPubIssuesClosedResultDTO; -import com.epmet.dto.result.MyPubIssuesShiftProjectResultDTO; +import com.epmet.dto.result.*; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.mine.dto.result.UserPubAuditingIssueResultDTO; import java.util.List; @@ -55,4 +53,12 @@ public interface IssueService { * @Date 2020/11/11 13:48 **/ List getMyPubIssuesClosed(MyPubIssuesAuditingFormDTO formDTO); + + /** + * @param fomrDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-审核中列表 + * @Date 2020/11/23 9:08 + **/ + List getMyPubAuditingIssues(PageFormDTO fomrDTO); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java index c5f6e6757d..f4fbf8f8ce 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java @@ -1,24 +1,30 @@ package com.epmet.modules.person.service.impl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.security.user.LoginUserUtil; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.IssueOpenConstant; import com.epmet.dto.IssueDTO; import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.MyPartIssuesFormDTO; import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; import com.epmet.dto.result.*; import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.modules.person.service.IssueService; +import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.mine.dto.result.UserPubAuditingIssueResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -27,10 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -50,7 +53,8 @@ public class IssueServiceImpl implements IssueService { private GovProjectOpenFeignClient govProjectOpenFeignClient; @Autowired private GovOrgOpenFeignClient govOrgOpenFeignClient; - + @Autowired + private LoginUserUtil loginUserUtil; /** * @Description 个人中心-我参与的议题列表 @@ -256,4 +260,51 @@ public class IssueServiceImpl implements IssueService { } return resultDTOList; } + + /** + * @param fomrDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-审核中列表 + * @Date 2020/11/23 9:08 + **/ + @Override + public List getMyPubAuditingIssues(PageFormDTO fomrDTO) { + UserPubAuditingIssueFormDTO userPubAuditingIssueFormDTO=new UserPubAuditingIssueFormDTO(); + userPubAuditingIssueFormDTO.setUserId(loginUserUtil.getLoginUserId()); + userPubAuditingIssueFormDTO.setPageNo(fomrDTO.getPageNo()); + userPubAuditingIssueFormDTO.setPageSize(fomrDTO.getPageSize()); + Result> resultList = issueOpenFeignClient.queryUserPubAuditingIssues(userPubAuditingIssueFormDTO); + if (!resultList.success() || CollectionUtils.isEmpty(resultList.getData())) { + return new ArrayList<>(); + } + List list = resultList.getData(); + //网格id 、 小组id + Set gridIds = new HashSet<>(); + Set groupIds = new HashSet<>(); + list.forEach(userPubAuditingIssueResDTO -> { + gridIds.add(userPubAuditingIssueResDTO.getGridId()); + groupIds.add(userPubAuditingIssueResDTO.getGroupId()); + }); + //查询网格名称、 小组名称 + Result> gridNameList = govOrgOpenFeignClient.getGridListByGridIds(new ArrayList<>(gridIds)); + if (!gridNameList.success() || CollectionUtils.isEmpty(gridNameList.getData())) { + logger.warn("个人中心-我发起的议题列表-审核中列表,查询网格名称失败......"); + } else { + //赋值 + list.forEach(resDTO -> { + gridNameList.getData().stream().filter(o -> resDTO.getGridId().equals(o.getGridId())).forEach(o -> resDTO.setGridName(o.getGridName())); + }); + } + //查询话题来源小组名称 + Result> groupInfoMapRes = resiGroupOpenFeignClient.getGroupInfo(new ArrayList<>(groupIds)); + if (!groupInfoMapRes.success() || CollectionUtils.isEmpty(groupInfoMapRes.getData())) { + logger.warn("个人中心-我发起的议题列表-审核中列表,查询小组信息失败......"); + } else { + //赋值 + list.forEach(resDTO -> { + resDTO.setGroupName(null == groupInfoMapRes.getData().get(resDTO.getGroupId()) ? "" : groupInfoMapRes.getData().get(resDTO.getGroupId()).getGroupName()); + }); + } + return ConvertUtils.sourceToTarget(list,UserPubAuditingIssueResultDTO.class); + } } From 0c9515018d77a55f4f19f622a1b9e9ebe8350eda Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 23 Nov 2020 10:57:26 +0800 Subject: [PATCH 26/31] =?UTF-8?q?=E5=BE=BD=E7=AB=A0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml index 5a7e8e6c6b..80ea8028b6 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml @@ -37,6 +37,7 @@ AND ub.CERTIFICATION_AUTID_STATUS = 'approved' AND b.CUSTOMER_ID = 'default' AND b.BADGE_STATUS = 'online' + AND ub.IS_OPENED = 1 AND ub.USER_ID = #{userId} ORDER BY ub.UPDATED_TIME DESC From acd1cee757e1b6363bd834fff7d76c5605a8fe0e Mon Sep 17 00:00:00 2001 From: wangchao Date: Mon, 23 Nov 2020 12:45:26 +0800 Subject: [PATCH 27/31] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/IssueDTO.java | 2 + .../epmet/dto/form/CommonGridIdFormDTO.java | 2 +- .../form/IssueShiftedFromTopicFormDTO.java | 7 + .../epmet/feign/GovIssueOpenFeignClient.java | 4 +- .../controller/IssueAuditController.java | 21 +- .../com/epmet/dao/IssueApplicationDao.java | 4 + .../java/com/epmet/service/IssueService.java | 5 +- .../impl/IssueApplicationServiceImpl.java | 6 +- .../epmet/service/impl/IssueServiceImpl.java | 214 ++++++++++++++---- .../java/com/epmet/utils/ModuleConstants.java | 8 +- .../resources/mapper/IssueApplicationDao.xml | 8 + .../src/main/resources/mapper/IssueDao.xml | 11 +- .../epmet/feign/GovOrgOpenFeignClient.java | 9 + .../GovOrgOpenFeignClientFallback.java | 6 + .../dto/topic/form/IssueAuditionFormDTO.java | 40 ++++ .../form/IssueShiftedFromTopicFormDTO.java | 125 ++++++++++ .../topic/form/ResiTopicTurnIssueFromDTO.java | 26 ++- .../group/feign/ResiGroupOpenFeignClient.java | 15 +- .../ResiGroupOpenFeignClientFallback.java | 12 +- .../topic/controller/ResiTopicController.java | 12 + .../topic/service/ResiTopicService.java | 12 +- .../service/impl/ResiTopicServiceImpl.java | 90 +++++++- 22 files changed, 548 insertions(+), 91 deletions(-) create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java index 0da96662ee..5e7a6c8fdb 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java @@ -158,4 +158,6 @@ public class IssueDTO implements Serializable { * 议题转项目后-对应的项目id */ private String projectId; + + private String issueId; } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java index 93dcda291b..f29b90be72 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java @@ -21,5 +21,5 @@ public class CommonGridIdFormDTO implements Serializable { @NotBlank(message = "网格Id不能为空") private String gridId; - + private String userId; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java index 0cf6a438aa..9eefc723f8 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java @@ -48,6 +48,11 @@ public class IssueShiftedFromTopicFormDTO implements Serializable { @NotBlank(message = "议题发起/审核人Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String userId; + /** + * 当userId为工作端审核人员时,该项存议题发起人 + */ + private String issueAuthorId; + /** * 客户Id * */ @@ -116,4 +121,6 @@ public class IssueShiftedFromTopicFormDTO implements Serializable { @NotNull(message = "小组Id不能为空",groups = {IssueGenerationGroup.class}) private String groupId; + + private String issueId; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 0e87badf8a..4b8662dc8a 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -34,8 +34,8 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:37 */ -@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) -// @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") +//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) + @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") public interface GovIssueOpenFeignClient { /** diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java index e038b18ce5..d6519fb6e9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java @@ -1,25 +1,22 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.enums.RequirePermissionEnum; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.IssueConstant; -import com.epmet.dto.form.ApplicationDetailWorkFormDTO; -import com.epmet.dto.form.ApplicationHistoryWorkFormDTO; -import com.epmet.dto.form.IssueAppQueryFormDTO; -import com.epmet.dto.form.IssueApplicationIdFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.ApplicationDetailWorkResultDTO; import com.epmet.dto.result.ApplicationHistoryResDTO; import com.epmet.dto.result.ApplicationHistoryWorkResultDTO; import com.epmet.dto.result.IssueApplicationResDTO; import com.epmet.service.IssueApplicationHistoryService; import com.epmet.service.IssueApplicationService; +import com.epmet.service.IssueService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -36,7 +33,8 @@ public class IssueAuditController { private IssueApplicationService issueApplicationService; @Autowired private IssueApplicationHistoryService issueApplicationHistoryService; - + @Autowired + private IssueService issueService; /** * @param formDTO * @author yinzuomei @@ -116,4 +114,9 @@ public class IssueAuditController { ValidatorUtils.validateEntity(applicationHistoryWorkFormDTO,ApplicationHistoryWorkFormDTO.ApplicationHistoryWork.class); return new Result>().ok(issueApplicationHistoryService.applicationHistoryWork(applicationHistoryWorkFormDTO)); } + + @PostMapping("audit") + public Result audit(@LoginUser TokenDto token, @RequestBody IssueAuditionFormDTO param){ + return new Result().ok(issueService.audit(token,param)); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java index efe02e3c0b..fe8935d2ac 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java @@ -18,12 +18,14 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueApplicationDTO; import com.epmet.dto.form.IssueAppQueryFormDTO; import com.epmet.dto.result.IssueApplicationResDTO; import com.epmet.entity.IssueApplicationEntity; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -52,4 +54,6 @@ public interface IssueApplicationDao extends BaseDao { * @Date 2020/11/18 16:28 **/ List selectList(IssueAppQueryFormDTO formDTO); + + List selectByTopicId(@Param("topicId") String topicId); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java index a9f9ed6337..0c58cfc807 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java @@ -2,6 +2,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.IssueDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -152,6 +153,8 @@ public interface IssueService extends BaseService { */ FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO); + String audit(TokenDto token, IssueAuditionFormDTO param); + /** * @Description 表决中列表 * @param issueListForm @@ -296,6 +299,4 @@ public interface IssueService extends BaseService { * @return java.util.List */ List getClosedListByGroup(AllIssueFormDTO formDTO); - - //FirstTopicShiftedToIssueApplicationResultDTO TopicShiftedToIssueFirstly(); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java index 7109d22494..ff32c5b6a3 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java @@ -65,9 +65,9 @@ public class IssueApplicationServiceImpl extends BaseServiceImpl list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, IssueApplicationDTO.class); + //List entityList = baseDao.selectByTopicId(getWrapper(params)); + return baseDao.selectByTopicId((String)params.get(ModuleConstants.FIELD_JAVA_TOPIC_ID)); + //return ConvertUtils.sourceToTarget(entityList, IssueApplicationDTO.class); } private QueryWrapper getWrapper(Map params){ diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 4d2af92f70..6cc96a4dd5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -13,6 +13,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; @@ -23,7 +24,6 @@ import com.epmet.constant.UserMessageConstant; import com.epmet.dao.IssueDao; import com.epmet.dao.IssueProcessDao; import com.epmet.dao.IssueProjectRelationDao; -import com.epmet.dao.IssueVoteStatisticalDao; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -41,6 +41,7 @@ import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO; import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; +import com.epmet.resi.group.dto.topic.form.ResiTopicTurnIssueFromDTO; import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; @@ -106,6 +107,8 @@ public class IssueServiceImpl extends BaseServiceImpl imp @Autowired private EpmetUserFeignClient epmetUserFeignClient; @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; + @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; @@ -287,6 +290,8 @@ public class IssueServiceImpl extends BaseServiceImpl imp issueVoteDetailRedis.set(voteInitCache); //4.该网格下表决中议题总数量+1 govIssueRedis.addWorkGrassrootsIssueRedDotValue(issueShiftedFromTopicFormDTO.getGridId()); + + if(StringUtils.isNotBlank(issueShiftedFromTopicFormDTO.getIssueId())) issueDTO.setId(issueShiftedFromTopicFormDTO.getIssueId()); return issueDTO.getId(); } logger.warn(String.format( @@ -315,70 +320,183 @@ public class IssueServiceImpl extends BaseServiceImpl imp * @date 2020.11.19 10:02 */ @Override + @Transactional(rollbackFor = Exception.class) public FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO param) { FirstTopicShiftedToIssueApplicationResultDTO result = new FirstTopicShiftedToIssueApplicationResultDTO(); //0.判断此次来源是否审核,是居民端还是工作端 boolean isStaffAudition = null != param.getAudition(); - //初始化缺省状态 : 审核中 - String defaultStatusUnderAuditing = isStaffAudition ? param.getAudition().getActionType() : ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING; //1.查询该客户下是否开启议题审核 - boolean ifOpen = !StringUtils.equals(ModuleConstants.AUDIT_SWITCH_CLOSE,configurationParameterService.checkIssueAuditSwitchIfOpen(param.getCustomerId())); + //为了防止当工作人员审核时,议题审核开关被关闭,这时统一视为审核开启,将工作端的审核动作继续进行 + boolean ifOpen = isStaffAudition ? true : + !StringUtils.equals(ModuleConstants.AUDIT_SWITCH_CLOSE,configurationParameterService.checkIssueAuditSwitchIfOpen(param.getCustomerId())); + + //初始化缺省状态 : 审核中 + String defaultStatusUnderAuditing = isStaffAudition ? param.getAudition().getActionType() : + ( ifOpen ? ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING: ModuleConstants.AUDITION_TYPE_AUTO_PASSED); + result.setAuditSwitch(ifOpen ? ModuleConstants.AUDIT_SWITCH_OPEN : ModuleConstants.AUDIT_SWITCH_CLOSE); - //2.居民段组长提交议题审核 - if(ifOpen || isStaffAudition){ - //默认打开 - //2.1查询是否存在application记录 - Map applicationParam = new HashMap<>();applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID,param.getTopicId()); - List applicationList = applicationService.list(applicationParam); - List applyIds = new LinkedList<>(); - if(CollectionUtils.isEmpty(applicationList)){ - //首次提交 新增application - IssueApplicationDTO newApplication = ConvertUtils.sourceToTarget(param,IssueApplicationDTO.class); - newApplication.setApplyStatus(defaultStatusUnderAuditing); - applicationService.save(newApplication); - applyIds.add(newApplication.getId()); - }else{ - //重新提交 更新application - if(applicationList.size() > NumConstant.ONE){ - logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}",param.getTopicId()); + + //2.居民端组长提交议题审核 + + //默认打开 + //2.1查询是否存在application记录 + Map applicationParam = new HashMap<>(); + applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID, param.getTopicId()); + List applicationList = applicationService.list(applicationParam); + List applyIds = new LinkedList<>(); + //没有历史提交记录 + if (CollectionUtils.isEmpty(applicationList)) { + //审核开关开启 + if(ifOpen) { + //首次提交 新增application + IssueApplicationDTO newApplication = ConvertUtils.sourceToTarget(param, IssueApplicationDTO.class); + newApplication.setApplyStatus(defaultStatusUnderAuditing); + newApplication.setId(UUID.randomUUID().toString().replace("-", "")); + applicationService.save(newApplication); + applyIds.add(newApplication.getId()); + } + } else { + //重新提交 或 工作端审核议题 更新application + if (applicationList.size() > NumConstant.ONE) + logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}", param.getTopicId()); + } - applicationList.forEach(apply -> { - IssueApplicationDTO carrier = new IssueApplicationDTO(); - carrier.setId(apply.getId()); - carrier.setApplyStatus(defaultStatusUnderAuditing); - carrier.setSuggestion(isStaffAudition ? apply.getSuggestion() : param.getSuggestion()); - carrier.setIssueTitle(isStaffAudition ? apply.getIssueTitle() : param.getIssueTitle()); - applicationService.update(carrier); - - applyIds.add(apply.getId()); - }); - } - //新增history - applyIds.forEach(id -> { - IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO(); - history.setActionType(defaultStatusUnderAuditing); - history.setCreatedTime(param.getCreatedTime()); - history.setCustomerId(param.getCustomerId()); - history.setIssueApplicationId(id); - history.setReason(isStaffAudition ? param.getAudition().getReason() : null); - history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null); - - historyService.save(history); - }); + applicationList.forEach(apply -> { + IssueApplicationDTO carrier = new IssueApplicationDTO(); + carrier.setId(apply.getId()); + carrier.setApplyStatus(defaultStatusUnderAuditing); + carrier.setSuggestion(!isStaffAudition ? apply.getSuggestion() : param.getSuggestion()); + carrier.setIssueTitle(!isStaffAudition ? apply.getIssueTitle() : param.getIssueTitle()); + carrier.setPassedReason(isStaffAudition ? param.getAudition().getReason() : null); + carrier.setIssueId(isStaffAudition ? param.getIssueId() : null); + carrier.setUpdatedTime(param.getCreatedTime()); + carrier.setUpdatedBy(param.getUserId()); + applicationService.update(carrier); + + applyIds.add(apply.getId()); + }); + //新增history + applyIds.forEach(id -> { + + IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO(); + history.setActionType(defaultStatusUnderAuditing); + history.setCreatedTime(param.getCreatedTime()); + history.setCustomerId(param.getCustomerId()); + history.setIssueApplicationId(id); + history.setReason(isStaffAudition ? param.getAudition().getReason() : null); + history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null); + + historyService.save(history); + if(!ifOpen){ + IssueApplicationHistoryDTO repeatApplyRecord = new IssueApplicationHistoryDTO(); + repeatApplyRecord.setActionType(ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING); + repeatApplyRecord.setCreatedTime(param.getCreatedTime()); + repeatApplyRecord.setCustomerId(param.getCustomerId()); + repeatApplyRecord.setIssueApplicationId(id); + + historyService.save(repeatApplyRecord); + } + }); - result.setIssueApplicationId(applyIds.iterator().next()); - } - //当无需审核或审核同意时,生成议题 - //注意,如果是二次提交申请,且此时审核开关被关闭,则无需更新application状态以及新增history记录 + result.setIssueApplicationId(applyIds.iterator().next()); + + + //只有当审核开关关闭 或 工作端人员审核通过时才生成议题 if(!ifOpen || StringUtils.equals(ModuleConstants.AUDITION_TYPE_APPROVAL,defaultStatusUnderAuditing)){ ValidatorUtils.validateEntity(param, IssueShiftedFromTopicFormDTO.IssueGenerationGroup.class); + if(isStaffAudition) param.setUserId(param.getIssueAuthorId()); result.setIssueId(issueShiftedToTopic(param)); } return result; } + @Override + @Transactional(rollbackFor = Exception.class) + public String audit(TokenDto token, IssueAuditionFormDTO param) { + + if (StringUtils.isNotBlank(param.getReason())) { + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + TextTaskDTO taskDTO = new TextTaskDTO(); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + taskDTO.setContent(param.getReason()); + textScanParamDTO.getTasks().add(taskDTO); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()){ + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + } + + Date unifiedDate = new Date(); + + IssueApplicationDTO application = applicationService.get(param.getIssueApplicationId()); + if(null == application) throw new RenException("没有相应的议题申请信息"); + + IssueApplicationDTO app2update = new IssueApplicationDTO(); + app2update.setId(param.getIssueApplicationId()); + app2update.setApplyStatus(param.getActionType()); + app2update.setUpdatedBy(token.getUserId()); + app2update.setUpdatedTime(unifiedDate); + + IssueApplicationHistoryDTO history2add = new IssueApplicationHistoryDTO(); + history2add.setIssueApplicationId(param.getIssueApplicationId()); + history2add.setReason(param.getReason()); + history2add.setActionType(param.getActionType()); + history2add.setCreatedTime(unifiedDate); + history2add.setCreatedBy(token.getUserId()); + history2add.setCustomerId(application.getCustomerId()); + + //historyService.save(history2add); + + //if(!StringUtils.equals(ModuleConstants.AUDITION_TYPE_REJECT,param.getActionType())){ + app2update.setPassedReason(param.getReason()); + ResiTopicTurnIssueFromDTO form = new ResiTopicTurnIssueFromDTO(); + form.setActionType(param.getActionType()); + form.setUnifiedDate(unifiedDate);form.setUserId(application.getCreatedBy());form.setTopicId(application.getTopicId());form.setIssueId(UUID.randomUUID().toString().replaceAll("-", "")); + + Result topicInfo = resiGroupOpenFeignClient.fetchTopicInfoWhenAuditIssue(form); + if(topicInfo.success() && null != topicInfo.getData()){ + CommonGridIdFormDTO grid = new CommonGridIdFormDTO(); + grid.setGridId(application.getGridId()); + grid.setUserId(token.getUserId()); + Result dataFilter = govOrgOpenFeignClient.gridDataFilter(grid); + if(dataFilter.success() && null != dataFilter.getData()){ + com.epmet.resi.group.dto.topic.form.IssueShiftedFromTopicFormDTO issueParam = topicInfo.getData(); + IssueShiftedFromTopicFormDTO issueParam2 = + ConvertUtils.sourceToTarget(issueParam, IssueShiftedFromTopicFormDTO.class); + issueParam2.setOrgId(dataFilter.getData().getAgencyId()); + issueParam2.setOrgIdPath(dataFilter.getData().getOrgIdPath()); + issueParam2.setOrgName(dataFilter.getData().getOrgName()); + + issueParam2.setIssueTitle(application.getIssueTitle());issueParam2.setSuggestion(application.getSuggestion()); + //staffName + StaffBasicInfoFromDTO staffParam = new StaffBasicInfoFromDTO(); staffParam.setStaffId(token.getUserId()); + Result staffBasicInfo = userOpenFeignClient.getStaffBasicInfo(staffParam); + if(staffBasicInfo.success() && null != staffBasicInfo.getData()) { + param.setStaffName(staffBasicInfo.getData().getRealName()); + } + issueParam2.setAudition(param); + FirstTopicShiftedToIssueApplicationResultDTO issueResult = topicShiftedToIssueV2(issueParam2); + app2update.setIssueId(issueResult.getIssueId()); + + } + }else throw new RenException(topicInfo.getInternalMsg()); + + + + + //} + //applicationService.update(app2update); + + + return app2update.getIssueId(); + } + /** * @Description 表决中列表 * @param issueListForm diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java index 2bc79654d6..9cc727dc1d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java @@ -26,7 +26,6 @@ public interface ModuleConstants { * 议题审核状态 审核中 */ String ISSUE_APPLICATION_STATUS_UNDER_AUDITING = "under_auditing"; - /** * 议题来源:居民段话题 * */ @@ -123,6 +122,13 @@ public interface ModuleConstants { */ String AUDITION_TYPE_APPROVAL = "approved"; + /** + * 当议题开关关闭时,申请和申请历史的状态为自动通过 + * 如果是首次提交,不生成申请和申请历史记录 + * 该值只适用于二次提交时,审核开关被关闭的情况 + */ + String AUDITION_TYPE_AUTO_PASSED = "auto_passed"; + /** * 议题审核动作 驳回 */ diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml index 20a25f9f90..447f2122e1 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml @@ -39,4 +39,12 @@ ORDER BY ia.UPDATED_TIME DESC + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml index 7eeb9a28f7..9c4b676771 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml @@ -127,7 +127,16 @@ revision - #{id}, + + + #{issueId}, + + + #{id}, + + + + #{issueStatus}, diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 16201827cc..2dab8452b3 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -305,4 +305,13 @@ public interface GovOrgOpenFeignClient { @PostMapping("/gov/org/customergrid/getcustomergridbygridid") Result getCustomerGridByGridId(@RequestBody CustomerGridFormDTO customerGridFormDTO); + /** + * @param gridForm + * @return Result + * @Author wangc + * @Description 获取网格所需要的数据权限内容 + * @Date 2020/3/30 10:45 + **/ + @PostMapping("/gov/org/customergrid/griddatafilter") + Result gridDataFilter(CommonGridIdFormDTO gridForm); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 477ed6ea6f..4776dec9b6 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -177,4 +177,10 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { public Result getCustomerGridByGridId(CustomerGridFormDTO customerGridFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getCustomerGridByGridId", customerGridFormDTO); } + + @Override + public Result gridDataFilter(CommonGridIdFormDTO gridForm) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "gridDataFilter", gridForm); + + } } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java new file mode 100644 index 0000000000..fd66274090 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java @@ -0,0 +1,40 @@ +package com.epmet.resi.group.dto.topic.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 工作人员审核议题结果传参 + * @ClassName IssueAuditionFormDTO + * @Auth wangc + * @Date 2020-11-19 10:29 + */ +@Data +public class IssueAuditionFormDTO implements Serializable { + + private static final long serialVersionUID = 5794088085884822811L; + + /** + * 申请id + */ + @NotBlank(message = "议题申请Id不能为空") + private String issueApplicationId; + + /** + * 同意备注 驳回理由 + */ + private String reason; + + /** + * approved:审核通过, rejected:驳回 + */ + @NotBlank(message = "审核结果不能为空") + private String actionType; + + /** + * 工作人员名称 + */ + private String staffName; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java new file mode 100644 index 0000000000..6eba4678d7 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java @@ -0,0 +1,125 @@ +package com.epmet.resi.group.dto.topic.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +/** + * @Description 话题转议题时的参数 + * @ClassName IssueShiftedFromTopicFormDTO + * @Auth wangc + * @Date 2020-05-13 09:27 + */ +@Data +public class IssueShiftedFromTopicFormDTO implements Serializable { + private static final long serialVersionUID = -5744319584210140289L; + + public interface IssueGenerationGroup extends CustomerClientShowGroup{} + + public interface PublicIssueGroup extends CustomerClientShowGroup{} + + /** + * 话题Id + * */ + @NotBlank(message = "话题Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String topicId; + + /** + * 议题名称 + * */ + @NotBlank(message = "议题名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String issueTitle; + + /** + * 建议 + * */ + @NotBlank(message = "议题建议不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String suggestion; + + /** + * 议题发起人Id + * */ + @NotBlank(message = "议题发起/审核人Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String userId; + + /** + * 当userId为工作端审核人员时,该项存议题发起人 + */ + private String issueAuthorId; + + /** + * 客户Id + * */ + @NotBlank(message = "客户不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String customerId; + + /** + * 网格Id + * */ + @NotBlank(message = "网格Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String gridId; + + /** + * AgencyId当前话题所在机构Id + * */ + @NotBlank(message = "机关Id不能为空",groups = {IssueGenerationGroup.class}) + private String orgId; + + /** + * 所属机关 eg:11:22:33(本机关以及上级所有机关ID) + * */ + @NotBlank(message = "所属机关全路径不能为空",groups = {IssueGenerationGroup.class}) + private String orgIdPath; + + /** + * 当前话题所在网格名称 - 对应议题流程的处理部门 + * */ + @NotBlank(message = "网格名称不能为空",groups = {IssueGenerationGroup.class}) + private String orgName; + + /** + * 议题创建时间 + * */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull(message = "创建时间不能为空",groups = {IssueGenerationGroup.class}) + private Date createdTime; + + /** + * 小组名称 - 对应议题流程的小组名称(文案) + * */ + @NotBlank(message = "小组名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String groupName; + + /** + * 话题发起人名称 -对应议题流程的话题发起人(文案) + * */ + @NotBlank(message = "话题发起人不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String topicAuthor; + + /** + * 议题发起人(组长)名称 - 对应议题流程的组长名称(文案) + * */ + @NotBlank(message = "组长不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String issueAuthor; + + /** + * 应表决数 + * */ + @NotNull(message = "应表决数不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private Integer votableCount; + + /** + * 议题审核参数 + */ + private IssueAuditionFormDTO audition; + + @NotNull(message = "小组Id不能为空",groups = {IssueGenerationGroup.class}) + private String groupId; + + private String issueId; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java index 6238190998..6dda8c8b41 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.Date; /** * @Description 话题转议题时前端传参 @@ -17,25 +18,32 @@ public class ResiTopicTurnIssueFromDTO implements Serializable { /** * 议题名称 - * */ - @NotBlank(message = "议题名称不能为空" ) + */ + @NotBlank(message = "议题名称不能为空") private String issueTitle; /** * 话题Id - * */ - @NotBlank(message = "话题Id不能为空" ) + */ + @NotBlank(message = "话题Id不能为空") private String topicId; /** * 建议 - * */ - @NotBlank(message = "建议不能为空" ) + */ + @NotBlank(message = "建议不能为空") private String suggestion; /** * 用户Id - * */ - @NotBlank(message = "用户Id不能为空" ) + */ + @NotBlank(message = "用户Id不能为空") private String userId; -} + + private String issueId; + + private Date unifiedDate; + + private String actionType; + +} \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 0a2718b0c5..0103bd0a67 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -1,5 +1,6 @@ package com.epmet.resi.group.feign; + import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.form.*; @@ -8,9 +9,7 @@ import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; -import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; -import com.epmet.resi.group.dto.topic.form.MyPartIssueFormDTO; -import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO; +import com.epmet.resi.group.dto.topic.form.*; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO; import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO; @@ -118,4 +117,14 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/groupissue/applicationdetail") Result applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO); + + /** + * @Description 工作端审核议题同意时,查询相关话题的基本信息 + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.11.23 03:08 + */ + @PostMapping("resi/group/topic/fetchtopicinfowhenauditissue") + Result fetchTopicInfoWhenAuditIssue(@RequestBody ResiTopicTurnIssueFromDTO param); } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index ff1df0075e..0f5347c9a7 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -8,17 +8,12 @@ import com.epmet.resi.group.dto.group.form.GovGroupSummarizeFromDTO; import com.epmet.resi.group.dto.group.form.GroupEditionAuditFormDTO; import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; -import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; -import com.epmet.resi.group.dto.topic.form.MyPartIssueFormDTO; -import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO; +import com.epmet.resi.group.dto.topic.form.*; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO; import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; @@ -85,4 +80,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "applicationDetail", applicationDetailFormDTO); } + + @Override + public Result fetchTopicInfoWhenAuditIssue(ResiTopicTurnIssueFromDTO param) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "fetchTopicInfoWhenAuditIssue",param); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index 19aed166d8..820dbc5821 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -266,6 +266,18 @@ public class ResiTopicController { return new Result().ok(topicService.shiftIssueV2(param)); } + /** + * @Description 工作端审核议题同意时,查询相关话题的基本信息 + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.11.23 03:08 + */ + @PostMapping("fetchtopicinfowhenauditissue") + public Result fetchTopicInfoWhenAuditIssue(@RequestBody ResiTopicTurnIssueFromDTO param){ + return new Result().ok(topicService.getIssueInfoWhenAudit(param)); + } + /** * @Description 政府端查看议题详情时的话题相关信息 * @param govTopicIssueInfoFormDTO diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 26115713eb..53140e4fef 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; + import com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO; import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.modules.topic.entity.ResiTopicEntity; @@ -257,7 +258,16 @@ public interface ResiTopicService extends BaseService { * @date 2020.11.20 10:26 */ FirstTopicShiftedToIssueApplicationResultDTO shiftIssueV2(ResiTopicTurnIssueFromDTO param); - + + /** + * @Description 工作端审核议题通过时获取一些议题相关信息 + * @param param + * @return com.epmet.resi.group.dto.topic.form.ResiTopicTurnIssueFromDTO + * @author wangc + * @date 2020.11.20 18:09 + */ + IssueShiftedFromTopicFormDTO getIssueInfoWhenAudit(ResiTopicTurnIssueFromDTO param); + /** * @Description 政府端查看议题详情时的话题相关信息 * @param govTopicIssueInfoFormDTO 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 b39a18e782..a67c06a938 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 @@ -85,6 +85,7 @@ import com.epmet.resi.group.dto.topic.TopicInfoDTO; import com.epmet.resi.group.dto.topic.form.CheckTopicPublisherFormDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; import com.epmet.resi.group.dto.topic.form.*; +import com.epmet.resi.group.dto.topic.form.IssueShiftedFromTopicFormDTO; import com.epmet.resi.group.dto.topic.result.CheckTopicPublisherResultDTO; import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; import com.epmet.resi.group.dto.topic.result.*; @@ -100,6 +101,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.swing.text.html.Option; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -1286,15 +1288,17 @@ public class ResiTopicServiceImpl extends BaseServiceImpl param = new HashMap<>(); param.put(ModuleConstant.FILED_TOPIC_ID_HUMP,topicIdFormDTO.getTopicId()); Result> record = issueOpenFeignClient.list(param); if(!record.success()){ - log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,查询转议题提交记录失败,话题Id:{}",topicIdFormDTO.getTopicId()); + log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,,话题Id:{}",topicIdFormDTO.getTopicId()); throw new RenException(ModuleConstant.FAILED_QUERY_ISSUE_APPLICATION_RECORD); } + result.setIssueApplicationId(ModuleConstant.EMPTY_STR); + result.setApplyStatus(ModuleConstant.EMPTY_STR); if(!CollectionUtils.isEmpty(record.getData())){ if(record.getData().size() > NumConstant.ONE){ log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,查出多条转移提提交记录,话题Id:{}",topicIdFormDTO.getTopicId()); } - result.setIssueApplicationId(record.getData().get(NumConstant.ZERO).getId()); - result.setApplyStatus(record.getData().get(NumConstant.ZERO).getApplyStatus()); + result.setIssueApplicationId(Optional.ofNullable(record.getData().get(NumConstant.ZERO).getId()).orElse(ModuleConstant.EMPTY_STR)); + result.setApplyStatus(Optional.ofNullable(record.getData().get(NumConstant.ZERO).getApplyStatus()).orElse(ModuleConstant.EMPTY_STR)); } return result; } @@ -1335,6 +1339,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl 议题服务) Date now = new Date(); //2.调用gov-org获取数据权限 @@ -1354,7 +1359,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl dataFilterResult = govOrgFeignClient.gridDataFilter(dataFilterParam); if(dataFilterResult.success() && null != dataFilterResult.getData()){ - IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class); + com.epmet.dto.form.IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO, com.epmet.dto.form.IssueShiftedFromTopicFormDTO .class); issueInfo.setCreatedTime(now); issueInfo.setGridId(group.getGridId()); issueInfo.setCustomerId(group.getCustomerId()); @@ -1463,7 +1468,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl dataFilterResult = govOrgFeignClient.gridDataFilter(dataFilterParam); if(dataFilterResult.success() && null != dataFilterResult.getData()){ - IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class); + com.epmet.dto.form.IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO, com.epmet.dto.form.IssueShiftedFromTopicFormDTO .class); issueInfo.setCreatedTime(now); issueInfo.setGridId(group.getGridId()); issueInfo.setCustomerId(group.getCustomerId()); @@ -1529,6 +1534,81 @@ public class ResiTopicServiceImpl extends BaseServiceImpl Date: Mon, 23 Nov 2020 12:51:05 +0800 Subject: [PATCH 28/31] =?UTF-8?q?openFeign=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/feign/GovIssueOpenFeignClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 2274ec0366..a974ae1109 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -34,8 +34,8 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:37 */ -//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) - @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") +@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) +//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") public interface GovIssueOpenFeignClient { /** From a859a7a3646b1d934f9a8cf672f203eb71a72c15 Mon Sep 17 00:00:00 2001 From: wangchao Date: Mon, 23 Nov 2020 13:19:37 +0800 Subject: [PATCH 29/31] =?UTF-8?q?mybatis=20sql=E8=BF=87=E6=BB=A4=E5=99=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/FieldMetaObjectHandler.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java index a5ea6a1a37..8dbb4881f5 100644 --- a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java +++ b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java @@ -25,7 +25,9 @@ import org.apache.ibatis.reflection.MetaObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.swing.text.html.Option; import java.util.Date; +import java.util.Optional; /** * 公共字段,自动填充值 @@ -80,15 +82,16 @@ public class FieldMetaObjectHandler implements MetaObjectHandler { } public Object getCreatedByFieldValue(MetaObject metaObject) { - Object value = loginUserUtil.getLoginUserId(); - if (value == null) { + Object value = null; + if (metaObject.hasGetter(FieldConstant.CREATED_BY_HUMP)) { value = metaObject.getValue(FieldConstant.CREATED_BY_HUMP); } if (value == null) { - value = Constant.APP_USER_FLAG; + + value = Optional.ofNullable(loginUserUtil.getLoginUserId()).orElse(Constant.APP_USER_FLAG); } - } + return value; } @@ -115,15 +118,15 @@ public class FieldMetaObjectHandler implements MetaObjectHandler { } public Object getUpdatedByFieldValue(MetaObject metaObject) { - Object value = loginUserUtil.getLoginUserId(); - if (value == null) { + Object value = null; + if (metaObject.hasGetter(FieldConstant.UPDATED_BY_HUMP)) { value = metaObject.getValue(FieldConstant.UPDATED_BY_HUMP); } if (value == null) { - value = Constant.APP_USER_FLAG; + value = Optional.ofNullable(loginUserUtil.getLoginUserId()).orElse(Constant.APP_USER_FLAG); } - } + return value; } From 9e085cc604e17547dc96e2416cbfe60f9137d8fd Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 23 Nov 2020 13:47:59 +0800 Subject: [PATCH 30/31] =?UTF-8?q?feign=E8=B0=83=E7=94=A8=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/IssueServiceImpl.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 64e1268adc..64c1d9361b 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -129,6 +129,9 @@ public class IssueServiceImpl implements IssueService { @Override public VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId) { Result votingTrendResultDTOResult = govIssueFeignClient.votingTrend(issueId); + if (!votingTrendResultDTOResult.success()){ + throw new RenException("查询议题表决折线图失败"); + } return votingTrendResultDTOResult.getData(); } @@ -172,7 +175,11 @@ public class IssueServiceImpl implements IssueService { GridIdFormDTO gridIdFormDTO = new GridIdFormDTO(); gridIdFormDTO.setGridId(gridId.getGridId()); gridIdFormDTO.setUserId(tokenDto.getUserId()); - CheckJoinTeamResultDTO check = resiGroupFeignClient.checkjointeam(gridIdFormDTO).getData(); + Result checkJoinTeam = resiGroupFeignClient.checkjointeam(gridIdFormDTO); + if (!checkJoinTeam.success()){ + throw new RenException("查询校验用户是否加入小组失败"); + } + CheckJoinTeamResultDTO check = checkJoinTeam.getData(); //未加入小组 if (check.getVoteAuthorization()==false){ voteResultDTOResult.setVoteFlag(false); @@ -180,7 +187,11 @@ public class IssueServiceImpl implements IssueService { voteResultDTOResult.setOppositionCount(NumConstant.ZERO); voteResultDTOResult.setSupportCount(NumConstant.ZERO); }else { - voteResultDTOResult = govIssueFeignClient.voteCount(issueId).getData(); + Result voteResult = govIssueFeignClient.voteCount(issueId); + if (!voteResult.success()){ + throw new RenException("查询表决中议题详情——支持、反对数失败"); + } + voteResultDTOResult = voteResult.getData(); voteResultDTOResult.setVoteAuthorization(check.getVoteAuthorization()); } return voteResultDTOResult; From 79e4db6e264046fea17272e8316fb5db8817aa8c Mon Sep 17 00:00:00 2001 From: wangchao Date: Mon, 23 Nov 2020 14:01:15 +0800 Subject: [PATCH 31/31] =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E6=96=B0=E5=A2=9Eapplication=5Fhistory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/IssueServiceImpl.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 6cc96a4dd5..2bc157531b 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -345,6 +345,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID, param.getTopicId()); List applicationList = applicationService.list(applicationParam); List applyIds = new LinkedList<>(); + boolean ifRepeat = false; //没有历史提交记录 if (CollectionUtils.isEmpty(applicationList)) { //审核开关开启 @@ -358,6 +359,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp } } else { //重新提交 或 工作端审核议题 更新application + if(!isStaffAudition) ifRepeat = true; if (applicationList.size() > NumConstant.ONE) logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}", param.getTopicId()); @@ -376,19 +378,21 @@ public class IssueServiceImpl extends BaseServiceImpl imp applyIds.add(apply.getId()); }); + + if(!ifRepeat) { //新增history applyIds.forEach(id -> { - IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO(); - history.setActionType(defaultStatusUnderAuditing); - history.setCreatedTime(param.getCreatedTime()); - history.setCustomerId(param.getCustomerId()); - history.setIssueApplicationId(id); - history.setReason(isStaffAudition ? param.getAudition().getReason() : null); - history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null); + IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO(); + history.setActionType(defaultStatusUnderAuditing); + history.setCreatedTime(param.getCreatedTime()); + history.setCustomerId(param.getCustomerId()); + history.setIssueApplicationId(id); + history.setReason(isStaffAudition ? param.getAudition().getReason() : null); + history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null); - historyService.save(history); - if(!ifOpen){ + historyService.save(history); + if (!ifOpen) { IssueApplicationHistoryDTO repeatApplyRecord = new IssueApplicationHistoryDTO(); repeatApplyRecord.setActionType(ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING); repeatApplyRecord.setCreatedTime(param.getCreatedTime()); @@ -399,6 +403,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp } }); + } result.setIssueApplicationId(applyIds.iterator().next());