diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java index 9ddd2f9c8e..40375042b9 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java @@ -87,6 +87,12 @@ public enum RequirePermissionEnum { WORK_GRASSROOTS_ISSUE_SHIFT_PROJECT("work_grassroots_issue_shift_project", "基层治理:议题管理:转项目","转项目(选择处理部门api也需要添加此校验)"), WORK_GRASSROOTS_ISSUE_CLOSE("work_grassroots_issue_close","基层治理:议题管理:关闭议题","关闭议题"), + /** + * 徽章 + */ + WORK_GRASSROOTS_BADGE_AUDIT("work_grassroots_badge_audit","基层治理:徽章审核:徽章审核","徽章审核"), + WORK_GRASSROOTS_BADGE_AUDITING_LIST("work_grassroots_badge_auditing_list","基层治理:徽章审核:待审核列表","待审核徽章列表"), + /** * 工作-项目跟踪 */ @@ -141,7 +147,15 @@ public enum RequirePermissionEnum { * 爱心互助-自定义配置 */ MORE_HEART_CUSTOMIZED_VIEW("more_heart_customized_view","更多:爱心互助:自定义配置:查看","更多-爱心互助-自定义配置-查看"), - MORE_HEART_CUSTOMIZED_SAVE("more_heart_customized_save","更多:爱心互助:自定义配置:保存修改","更多-爱心互助-自定义配置-保存修改"); + MORE_HEART_CUSTOMIZED_SAVE("more_heart_customized_save","更多:爱心互助:自定义配置:保存修改","更多-爱心互助-自定义配置-保存修改"), + + /** + * 徽章管理 + */ + MORE_BADGE_MANAGE_LIST("more_badge_manage_list","更多:徽章:徽章管理:列表","徽章列表"), + MORE_BADGE_MANAGE_CREATE("more_badge_manage_create","更多:徽章:徽章管理:添加","添加徽章"), + MORE_BADGE_MANAGE_EDIT("more_badge_manage_edit","更多:徽章:徽章管理:编辑","编辑徽章"), + MORE_BADGE_MANAGE_DELETE("more_badge_manage_delete","更多:徽章:徽章管理:删除","删除徽章"); private String key; private String name; diff --git a/epmet-gateway/src/main/java/com/epmet/auth/InternalAuthProcessor.java b/epmet-gateway/src/main/java/com/epmet/auth/InternalAuthProcessor.java index 98583c8f3c..2ee22426f6 100644 --- a/epmet-gateway/src/main/java/com/epmet/auth/InternalAuthProcessor.java +++ b/epmet-gateway/src/main/java/com/epmet/auth/InternalAuthProcessor.java @@ -131,6 +131,12 @@ public class InternalAuthProcessor extends AuthProcessor { * @return */ private boolean needAuth(String requestUri) { + for (String url : cpProperty.getInternalAuthUrlsWhiteList()) { + if (antPathMatcher.match(url, requestUri)) { + return false; + } + } + for (String url : cpProperty.getInternalAuthUrls()) { if (antPathMatcher.match(url, requestUri)) { return true; diff --git a/epmet-gateway/src/main/java/com/epmet/filter/CpProperty.java b/epmet-gateway/src/main/java/com/epmet/filter/CpProperty.java index 4b801182fa..3442dea612 100644 --- a/epmet-gateway/src/main/java/com/epmet/filter/CpProperty.java +++ b/epmet-gateway/src/main/java/com/epmet/filter/CpProperty.java @@ -22,6 +22,11 @@ public class CpProperty { */ private List internalAuthUrls; + /** + * 内部认证url白名单 + */ + private List internalAuthUrlsWhiteList; + /** * 对外部应用开放的url列表 */ diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index ad698b4d8a..53ec286911 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -439,6 +439,10 @@ epmet: - /resi/home/** - /data/report/** + # 内部认证url白名单(在白名单中的,就不会再校验登录了) + internalAuthUrlsWhiteList: + - /epmetuser/customerstaff/customerlist + # 外部应用认证,使用AccessToken等头进行认证 externalOpenUrls: - /data/report/** diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java index ca8aa468dc..d8e6a43485 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java @@ -365,7 +365,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { StringBuilder govKey = new StringBuilder(customerId).append(":").append(WxmpMessageConstant.GOV_REDIS); authorizerRefreshToken = new HashMap<>(); try { - authorizerRefreshToken = wxmpMessageRedis.getAuthorizerRefreshToken(resiKey.toString()); + authorizerRefreshToken = wxmpMessageRedis.getAuthorizerRefreshToken(govKey.toString()); } catch (Exception e) { errorMsg = e.getMessage(); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/constant/IssueOpenConstant.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/constant/IssueOpenConstant.java new file mode 100644 index 0000000000..48a9cfc1f0 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/constant/IssueOpenConstant.java @@ -0,0 +1,35 @@ +package com.epmet.constant; + +/** + * 议题相关常亮,其它服务可用 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/11 14:10 + */ +public interface IssueOpenConstant { + /** + * 议题状态-表决中 + */ + String ISSUE_VOTING = "voting"; + /** + * 议题状态-已转项目 + */ + String ISSUE_SHIFT_PROJECT = "shift_project"; + /** + * 议题状态-已关闭 + */ + String ISSUE_CLOSED = "closed"; + /** + * 议题解决类型-已解决 + */ + String ISSUE_RESOLVED = "resolved"; + /** + * 议题解决类型-未解决 + */ + String ISSUE_UNRESOLVED = "unresolved"; + + /** + * 议题来源类型 eg:resi_topic + */ + String SOURCE_TYPE_RT="resi_topic"; +} 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 457a165fd6..0da96662ee 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 @@ -17,9 +17,10 @@ package com.epmet.dto; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; /** @@ -143,4 +144,18 @@ public class IssueDTO implements Serializable { */ private Date updatedTime; + /** + * 转项目日期 (服务间调用日期一致性) 戳 + */ + private Long shiftedTimeStamp; + + /** + * 关闭日期 戳 + */ + private Long closedTimeStamp; + + /** + * 议题转项目后-对应的项目id + */ + private String projectId; } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyPubIssuesAuditingFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyPubIssuesAuditingFormDTO.java index 3aea64c926..0ede11f11d 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyPubIssuesAuditingFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyPubIssuesAuditingFormDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.form; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -16,11 +17,19 @@ public class MyPubIssuesAuditingFormDTO implements Serializable { public interface MyPubIssuesAuditing{} - @NotBlank(message = "页码不能为空",groups = MyPubIssuesAuditing.class) + @NotNull(message = "页码不能为空",groups = MyPubIssuesAuditing.class) private Integer pageNo; - @NotBlank(message = "每页数量不能为空",groups = MyPubIssuesAuditing.class) + @NotNull(message = "每页数量不能为空",groups = MyPubIssuesAuditing.class) private Integer pageSize; + /** + * 拓展参数:前端不传值,内部传输用 + */ private String userId; + + /** + * 拓展参数:前端不传值,内部传输用 + */ + private String issueStatus; } 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 19a0a94f37..9e01905c9e 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 @@ -1,12 +1,15 @@ 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.form.MyPartIssuesFormDTO; +import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; import com.epmet.dto.result.MyPartIssuesResultDTO; -import org.springframework.cloud.openfeign.FeignClient; - -import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.dto.result.MyPubIssuesAuditingResultDTO; import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -19,7 +22,7 @@ import java.util.List; * @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,url = "localhost:8101") public interface GovIssueOpenFeignClient { /** @@ -31,4 +34,23 @@ public interface GovIssueOpenFeignClient { @PostMapping("/gov/issue/issuevotestatistical/mypartissues") Result> myPartIssues(@RequestBody MyPartIssuesFormDTO myPartIssuesFormDTO); + /** + * @Description 个人中心-我发起的议题列表-表决中 + * @Param tokenDto + * @Param myPubIssuesAuditingFormDTO + * @author zxc + * @date 2020/11/11 9:24 上午 + */ + @PostMapping("/gov/issue/issue/mypubissuesauditing") + Result> myPubIssuesAuditing(@RequestBody MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO); + + /** + * @return com.epmet.commons.tools.utils.Result> + * @param formDTO + * @author yinzuomei + * @description 查询我发起的议题(可根据状态查询) + * @Date 2020/11/11 14:13 + **/ + @PostMapping(value = "/gov/issue/issue/getmypubissues", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> getMyPubIssues(@RequestBody MyPubIssuesAuditingFormDTO formDTO); } 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 b11e47b5fc..0a33c50234 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 @@ -3,8 +3,11 @@ package com.epmet.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.dto.IssueDTO; import com.epmet.dto.form.MyPartIssuesFormDTO; +import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; import com.epmet.dto.result.MyPartIssuesResultDTO; +import com.epmet.dto.result.MyPubIssuesAuditingResultDTO; import com.epmet.feign.GovIssueOpenFeignClient; import org.springframework.stereotype.Component; @@ -22,4 +25,14 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> myPartIssues(MyPartIssuesFormDTO myPartIssuesFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"myPartIssues",myPartIssuesFormDTO); } + + @Override + public Result> myPubIssuesAuditing(MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"myPubIssuesAuditing",myPubIssuesAuditingFormDTO); + } + + @Override + public Result> getMyPubIssues(MyPubIssuesAuditingFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"getMyPubIssues",formDTO); + } } 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 bedb47f25c..6db4e14b23 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 @@ -1,27 +1,19 @@ package com.epmet.controller; -import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dto.form.*; -import com.epmet.commons.tools.validator.AssertUtils; -import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.DefaultGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; 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.topic.form.TopicInfoFormDTO; import com.epmet.service.IssueService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +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 javax.servlet.http.HttpServletResponse; import java.util.List; -import java.util.Map; /** * @Description 居民端党群议事 @@ -151,5 +143,29 @@ public class IssueController { return new Result().ok(issueService.checkTopicShiftIssue(formDTO)); } + /** + * @Description 个人中心-我发起的议题列表-表决中 + * @Param myPubIssuesAuditingFormDTO + * @author zxc + * @date 2020/11/11 9:24 上午 + */ + @PostMapping("mypubissuesauditing") + public Result> myPubIssuesAuditing(@RequestBody MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO){ + return new Result>().ok(issueService.myPubIssuesAuditing(myPubIssuesAuditingFormDTO)); + } + + + /** + * @return com.epmet.commons.tools.utils.Result> + * @param formDTO + * @author yinzuomei + * @description 查询我发起的议题(可根据状态查询) + * @Date 2020/11/11 14:49 + **/ + @PostMapping("getmypubissues") + public Result> getMyPubIssues(@RequestBody MyPubIssuesAuditingFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(issueService.getMyPubIssues(formDTO)); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java index 9dee92932c..f396db4136 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java @@ -144,4 +144,27 @@ public interface IssueDao extends BaseDao { * @author zxc */ Integer checkTopicShiftIssue(TopicInfoFormDTO formDTO); + + /** + * @Description 个人中心-我发起的议题列表-表决中 + * @Param myPubIssuesAuditingFormDTO + * @author zxc + * @date 2020/11/11 9:24 上午 + */ + List myPubIssuesAuditing(@Param("userId")String userId); + + /** + * @return java.util.List + * @param pageNo + * @param pageSize + * @param userId 当前用户 + * @param issueStatus :议题状态 表决中:voting 已转项目:shift_project 已关闭:closed + * @author yinzuomei + * @description 查询我发起的议题(可根据状态查询) + * @Date 2020/11/11 15:11 + **/ + List selectMyPubIssues(@Param("pageNo") Integer pageNo, + @Param("pageSize") Integer pageSize, + @Param("userId") String userId, + @Param("issueStatus") String issueStatus); } \ 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 d9f4417ec6..404549f119 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,27 +2,13 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IssueDTO; -import com.epmet.dto.form.CloseIssueFormDTO; -import com.epmet.dto.form.DepartmentStaffListFormDTO; -import com.epmet.dto.form.IssueDetailFormDTO; -import com.epmet.dto.form.IssueIdFormDTO; -import com.epmet.dto.result.DepartmentStaffListResultDTO; -import com.epmet.dto.result.GridIdResultDTO; -import com.epmet.dto.result.GridVotingIssueCountResultDTO; -import com.epmet.dto.result.IssueResultDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.dto.form.CloseIssueFormDTO; -import com.epmet.dto.form.DepartmentStaffListFormDTO; import com.epmet.dto.form.CommonIssueListFormDTO; -import com.epmet.dto.form.IssueDetailFormDTO; -import com.epmet.dto.result.*; import com.epmet.dto.form.IssueShiftedFromTopicFormDTO; import com.epmet.entity.IssueEntity; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; -import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Map; @@ -232,4 +218,21 @@ public interface IssueService extends BaseService { * @author zxc */ Integer checkTopicShiftIssue(TopicInfoFormDTO formDTO); + + /** + * @Description 个人中心-我发起的议题列表-表决中 + * @Param myPubIssuesAuditingFormDTO + * @author zxc + * @date 2020/11/11 9:24 上午 + */ + List myPubIssuesAuditing(MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO); + + /** + * @return java.util.List + * @param formDTO + * @author yinzuomei + * @description 查询我发起的议题(可根据状态查询) + * @Date 2020/11/11 14:57 + **/ + List getMyPubIssues(MyPubIssuesAuditingFormDTO formDTO); } 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 7743205c28..54fdfd4908 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 @@ -17,6 +17,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.IssueConstant; +import com.epmet.constant.OrgInfoConstant; import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.UserMessageConstant; import com.epmet.dao.IssueDao; @@ -34,21 +35,27 @@ import com.epmet.entity.IssueProjectRelationEntity; import com.epmet.feign.*; import com.epmet.redis.GovIssueRedis; import com.epmet.redis.IssueVoteDetailRedis; +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.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.service.IssueProcessService; import com.epmet.service.IssueProjectRelationService; import com.epmet.service.IssueService; import com.epmet.service.IssueVoteStatisticalService; import com.epmet.utils.ModuleConstants; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; 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.util.*; import java.util.stream.Collectors; @@ -78,6 +85,10 @@ public class IssueServiceImpl extends BaseServiceImpl imp private IssueProjectRelationDao issueProjectRelationDao; @Autowired private IssueVoteDetailRedis issueVoteDetailRedis; + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Autowired + private ResiGroupOpenFeignClient resiGroupOpenFeignClient; protected static final Logger logger = LoggerFactory.getLogger(IssueServiceImpl.class); @@ -841,4 +852,45 @@ public class IssueServiceImpl extends BaseServiceImpl imp return baseDao.checkTopicShiftIssue(formDTO); } + /** + * @Description 个人中心-我发起的议题列表-表决中 + * @Param myPubIssuesAuditingFormDTO + * @author zxc + * @date 2020/11/11 9:24 上午 + */ + @Override + public List myPubIssuesAuditing(MyPubIssuesAuditingFormDTO form) { + List list = new ArrayList<>(); + PageInfo result = PageHelper.startPage(form.getPageNo(),form.getPageSize()).doSelectPageInfo(() -> baseDao.myPubIssuesAuditing(form.getUserId())); + if (!CollectionUtils.isEmpty(result.getList())){ + list = result.getList(); + Result> gridNameList = govOrgOpenFeignClient.selectOrgInfo(new OrgInfoFormDTO(OrgInfoConstant.GRID, list.stream().map(m -> m.getGridId()).collect(Collectors.toList()))); + if (!gridNameList.success()){ + throw new RenException("查询议题来源网格名称失败......"); + } + list.forEach(l -> gridNameList.getData().stream().filter(o -> l.getGridId().equals(o.getOrgId())).forEach(o -> l.setTopicReleaseGridName(o.getOrgName()))); + Result> groupNameList = resiGroupOpenFeignClient.selectGroupInfo(new GroupInfoFormDTO(list.stream().map(m -> m.getTopicId()).collect(Collectors.toList()))); + if (!groupNameList.success()){ + throw new RenException("查询议题来源小组名称失败......"); + } + list.forEach(l -> groupNameList.getData().stream().filter(g -> l.getTopicId().equals(g.getTopicId())).forEach(g -> l.setTopicReleaseGroupName(g.getTopicGroupName()))); + } + return list; + } + + /** + * @param formDTO + * @return java.util.List + * @author yinzuomei + * @description 查询我发起的议题(可根据状态查询) + * @Date 2020/11/11 14:57 + **/ + @Override + public List getMyPubIssues(MyPubIssuesAuditingFormDTO formDTO) { + formDTO.setPageNo(null == formDTO.getPageNo() ? NumConstant.ZERO : + (formDTO.getPageNo() - NumConstant.ONE)*formDTO.getPageSize() + ); + return baseDao.selectMyPubIssues(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getUserId(),formDTO.getIssueStatus()); + } + } 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 31ee5952a0..b68ac683ed 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 @@ -378,4 +378,47 @@ AND source_id = #{topicId} + + + + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml index 865f3c8a3a..523dd1cb63 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml @@ -85,5 +85,6 @@ WHERE i.DEL_FLAG = '0' AND vd.DEL_FLAG = '0' AND vd.CREATED_BY = #{userId} + ORDER BY i.CREATED_TIME DESC \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgInfoFormDTO.java index a46837a017..4d60f07fe5 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgInfoFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgInfoFormDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.form; +import lombok.AllArgsConstructor; import lombok.Data; import java.io.Serializable; @@ -10,6 +11,7 @@ import java.util.List; * @DateTime 2020/11/10 2:13 下午 */ @Data +@AllArgsConstructor public class OrgInfoFormDTO implements Serializable { private static final long serialVersionUID = 4480485864711053393L; @@ -24,4 +26,6 @@ public class OrgInfoFormDTO implements Serializable { */ private List orgIds; + public OrgInfoFormDTO() { + } } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java index ef8c8f0d11..1d75e9adfe 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java @@ -17,9 +17,11 @@ package com.epmet.dto; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; +import java.util.List; /** @@ -113,4 +115,8 @@ public class ProjectDTO implements Serializable { */ private Date updatedTime; + /** + * 当前处理部门名称列表 + */ + private List currentDepartmentNameList; } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesClosedResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesClosedResultDTO.java new file mode 100644 index 0000000000..46c2c9ff02 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesClosedResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 个人中心-我发起的议题列表-已关闭返参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/11 13:39 + */ +@Data +public class MyPubIssuesClosedResultDTO implements Serializable { + private static final long serialVersionUID = -265465326846671555L; + /** + * 议题id + */ + private String issueId; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 建议 + */ + private String suggestion; + + /** + * 议题关闭时间。时间戳 + */ + private Long closedTime; + + /** + * 话题发表于哪个组 + */ + private String topicReleaseGroupName; + + /** + * 话题发表于哪个网格 + */ + private String topicReleaseGridName; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesShiftProjectResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesShiftProjectResultDTO.java new file mode 100644 index 0000000000..200a09e24e --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesShiftProjectResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 个人中心-我发起的议题列表-已转项目 返参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/11 12:18 + */ +@Data +public class MyPubIssuesShiftProjectResultDTO implements Serializable { + private static final long serialVersionUID = -7183751225506622772L; + /** + * 项目id + */ + private String projectId; + + /** + * 话题发表网格id + */ + private String topicReleaseGridName; + + /** + * 当前处理部门名称列表 + */ + private List departmentNameList; + + /** + * 项目标题 + */ + private String projectTitle; + + /** + * 转项目时间。时间戳 + */ + private Long shiftProjectTime; + + /** + * 话题发表于哪个组 + */ + private String topicReleaseGroupName; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 24123a18d6..fc0adf94cd 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -1,18 +1,16 @@ package com.epmet.feign; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.ProjectDTO; +import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.result.MyPartProjectsResultDTO; import com.epmet.dto.result.PendProjectListResultDTO; import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO; -import com.epmet.dto.result.ProcesslistResultDTO; +import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.cloud.openfeign.FeignClient; - -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -24,6 +22,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:32 */ +// @FeignClient(name = ServiceConstant.GOV_PROJECT_SERVER, fallback = GovProjectOpenFeignClientFallback.class,url = "localhost:8102") @FeignClient(name = ServiceConstant.GOV_PROJECT_SERVER, fallback = GovProjectOpenFeignClientFallback.class) public interface GovProjectOpenFeignClient { /** @@ -55,4 +54,14 @@ public interface GovProjectOpenFeignClient { */ @PostMapping("gov/project/project/issuetoprojectlist") Result> issueToProjectList(MyPartProjectsFormDTO formDTO); + + /** + * @return com.epmet.commons.tools.utils.Result> + * @param projectIds 项目id数组 + * @author yinzuomei + * @description 根据项目id查询项目基本信息 + * @Date 2020/11/11 17:40 + **/ + @PostMapping("gov/project/project/queryprojectinfobyids") + Result> queryProjectInfoByIds(@RequestBody List projectIds); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index 9326b0cdaa..05201b8e22 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -9,7 +9,6 @@ import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.result.MyPartProjectsResultDTO; import com.epmet.dto.result.PendProjectListResultDTO; import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO; -import com.epmet.dto.result.ProcesslistResultDTO; import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.stereotype.Component; @@ -51,4 +50,16 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result> issueToProjectList(MyPartProjectsFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "issueToProjectList", formDTO); } + + /** + * @param projectIds 项目id数组 + * @return com.epmet.commons.tools.utils.Result> + * @author yinzuomei + * @description 根据项目id查询项目基本信息 + * @Date 2020/11/11 17:40 + **/ + @Override + public Result> queryProjectInfoByIds(List projectIds) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "queryProjectInfoByIds", projectIds); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index d8309d93af..0261e4a7ba 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -17,18 +17,14 @@ 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.page.PageData; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.LatestListFormDTO; import com.epmet.dto.form.ProjectListFromDTO; @@ -192,4 +188,8 @@ public class ProjectController { return new Result>().ok(projectService.issueToProjectList(formDTO)); } + @PostMapping("queryprojectinfobyids") + public Result> queryProjectInfoByIds(@RequestBody List projectIds){ + return new Result>().ok(projectService.queryProjectInfoByIds(projectIds)); + } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 4f339c3a3f..35f81839d8 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -19,7 +19,6 @@ 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.ProjectDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -224,4 +223,6 @@ public interface ProjectService extends BaseService { * @Description 根据议题Id集合查询对应的项目信息 **/ List issueToProjectList(MyPartProjectsFormDTO formDTO); + + List queryProjectInfoByIds(List projectIds); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index f247526cff..fefc457aa8 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -688,6 +688,18 @@ public class ProjectServiceImpl extends BaseServiceImpl getClosedProjectList(LatestListFormDTO formDTO) { + + return baseDao.selectClosedProjectList(formDTO); + } + /** * @param formDTO * @return @@ -804,7 +816,7 @@ public class ProjectServiceImpl extends BaseServiceImpl projectStaffIds = entityList.stream().map(ProjectStaffEntity::getId).distinct().collect(Collectors.toList()); if(!CollectionUtils.isEmpty(projectStaffIds)){ List container = new LinkedList<>(); @@ -842,18 +854,6 @@ public class ProjectServiceImpl extends BaseServiceImpl getClosedProjectList(LatestListFormDTO formDTO) { - - return baseDao.selectClosedProjectList(formDTO); - } - @Override public void response(ProjectResponseFormDTO formDTO) { //公开回复内容审核 @@ -1388,4 +1388,21 @@ public class ProjectServiceImpl extends BaseServiceImpl queryProjectInfoByIds(List projectIds) { + List entityList=baseDao.selectBatchIds(projectIds); + List projectDTOList=ConvertUtils.sourceToTarget(entityList, ProjectDTO.class); + //2.使用已有方法查询项目当前处理部门信息 + projectDTOList.forEach(l -> { + if (ProjectConstant.CLOSED.equals(l.getStatus())) { + l.setCurrentDepartmentNameList(new ArrayList()); + } else { + ProjectDTO dto = new ProjectDTO(); + dto.setId(l.getId()); + l.setCurrentDepartmentNameList(baseDao.selectDepartmentNameList(dto)); + } + }); + return projectDTOList; + } + } \ 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/form/GroupInfoFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/GroupInfoFormDTO.java new file mode 100644 index 0000000000..68278e3104 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/GroupInfoFormDTO.java @@ -0,0 +1,23 @@ +package com.epmet.resi.group.dto.group.form; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2020/11/11 1:30 下午 + */ +@Data +@AllArgsConstructor +public class GroupInfoFormDTO implements Serializable { + + private static final long serialVersionUID = -7940077760343241658L; + + private List topicIds; + + public GroupInfoFormDTO() { + } +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupInfoResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupInfoResultDTO.java new file mode 100644 index 0000000000..44b7924beb --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupInfoResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.resi.group.dto.group.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/11 1:31 下午 + */ +@Data +public class GroupInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 5508197256307317314L; + + private String topicId; + + private String topicGroupName; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java index 881333be54..6374a9314b 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java @@ -3,6 +3,7 @@ package com.epmet.resi.group.dto.member.result; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * @Description @@ -45,4 +46,9 @@ public class ApplyingMemberResultDTO implements Serializable { * 入群被拒 - rejected 、 */ private String status; + + /** + * 用户徽章Url列表 + */ + private List badgeList; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java index a5f69fc7c3..b6aaf3b8db 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.List; /** * @Description @@ -43,4 +44,9 @@ public class GroupMemberListResultDTO implements Serializable { * 审核通过 - approved、 已禁言 - silent */ private String status; + + /** + * 用户徽章列表 + */ + private List badgeList; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/CustomerPageFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/CustomerPageFormDTO.java new file mode 100644 index 0000000000..5c824b35ff --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/CustomerPageFormDTO.java @@ -0,0 +1,30 @@ +package com.epmet.resi.group.dto.topic.form; + +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 客户Id 用户Id 分页 + * @ClassName CustomerPageFormDTO + * @Auth wangc + * @Date 2020-11-11 23:15 + */ +@Data +public class CustomerPageFormDTO implements Serializable { + private static final long serialVersionUID = 8678047078015445193L; + + @NotBlank(message = "客户Id不能为空") + private String customerId; + + @NotBlank(message = "用户Id不能为空") + private String userId; + + @Min(1) + private Integer pageNo; + + @Min(1) + private Integer pageSize; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovHiddenTopicInfoResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovHiddenTopicInfoResultDTO.java index 6008f6c0eb..073a984545 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovHiddenTopicInfoResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovHiddenTopicInfoResultDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @Description @@ -51,4 +52,9 @@ public class GovHiddenTopicInfoResultDTO implements Serializable { * 话题的第一张图片地址 * */ private String topicFirstPhoto; + + /** + * 徽章Url集合 + */ + private List badgeList; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovTopicInfoResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovTopicInfoResultDTO.java index d60a24382d..84a1e2f5aa 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovTopicInfoResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovTopicInfoResultDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -57,4 +58,9 @@ public class GovTopicInfoResultDTO implements Serializable { * 话题的状态 * */ private String topicState; + + /** + * 徽章Url集合 + */ + private List badgeList; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java index fd08497c00..2a3573f726 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java @@ -9,6 +9,7 @@ public class MyTopicsResultDTO { private Long releaseTime; private String topicContent; private String releaseGroupName; + private String releaseGridId; private String releaseGridName; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ParticipatedTopicUnitResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ParticipatedTopicUnitResultDTO.java new file mode 100644 index 0000000000..d5c9f9bc24 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ParticipatedTopicUnitResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.resi.group.dto.topic.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 个人中心 参与过的话题返参DTO + * @ClassName ParticipatedTopicUnitResultDTO + * @Auth wangc + * @Date 2020-11-11 23:00 + */ +@Data +public class ParticipatedTopicUnitResultDTO implements Serializable { + private static final long serialVersionUID = 1392205563783715932L; + + private String topicId; + + private String topicReleaseGridName; + + private String topicContent; + + private Long releaseTime; + + private String topicReleaseGroupName; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java index 1a41c1afd0..cce7d050fb 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java @@ -56,4 +56,9 @@ public class ResiTopicDetailResultDTO implements Serializable { * */ private List topicImgs; + /** + * 徽章Url集合 + */ + private List badgeList; + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueDetailResultDTO.java index 988d319ad8..97c0a12faf 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueDetailResultDTO.java @@ -70,4 +70,11 @@ public class ResiTopicIncludeIssueDetailResultDTO implements Serializable { * 关闭详情 如果没有关闭 对象里的字符串属性为String * */ private ResiTopicClosingMsgResultDTO closeDetail; + + /** + * 徽章Url列表 + */ + private List badgeList; + + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueInfoResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueInfoResultDTO.java index 55fe66f286..e2822a9189 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueInfoResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueInfoResultDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @Description 话题信息返回DTO(包含议题Id和是否转为议题Flag) @@ -71,4 +72,9 @@ public class ResiTopicIncludeIssueInfoResultDTO implements Serializable { * 议题Id,当shiftIssueFlag为false时返回"" * */ private String issueId; + + /** + * 用户徽章 当releaseUserFlag为"me"时为空 + */ + private List badgeList; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java index 613b506acf..be2f5452e9 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @Description 查看历史话题返回对象 @@ -62,4 +63,9 @@ public class ResiTopicInfoResultDTO implements Serializable{ * 第一张图片 * */ private String firstPhoto; + + /** + * 用户勋章Url集合 + */ + private List badgeList; } 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 9a5bc70b19..c049128343 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,7 +1,13 @@ 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.GroupInfoFormDTO; +import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; +import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; +import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; +import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.form.CommonGridAndPageFormDTO; @@ -10,14 +16,13 @@ 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.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.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -28,6 +33,7 @@ import java.util.List; * @date 2020/6/4 13:16 */ @FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class) +//@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class,url = "localhost:8095") public interface ResiGroupOpenFeignClient { /** @@ -37,6 +43,15 @@ public interface ResiGroupOpenFeignClient { @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); + @PostMapping("/resi/group/group/gov-edit-auditing-list") @@ -62,4 +77,13 @@ public interface ResiGroupOpenFeignClient { @PostMapping("/resi/group/group/gov-audit-edit") Result govAuditEdit(@RequestBody GroupEditionAuditFormDTO param); + /** + * @Description 个人中心-我参与过的话题 + * @param param + * @return java.util.List + * @author wangc + * @date 2020.11.11 23:20 + */ + @PostMapping("resi/group/topic/my-part-topics") + Result> myPartTopics(@RequestBody CustomerPageFormDTO 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 c645d558ce..954fe48c21 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 @@ -11,7 +11,11 @@ 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.GroupInfoFormDTO; +import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; +import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; +import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.stereotype.Component; @@ -46,4 +50,14 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result govAuditEdit(GroupEditionAuditFormDTO param) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "govAuditEdit", param); } + @Override + public Result> selectGroupInfo(GroupInfoFormDTO groupInfoFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectGroupInfo", groupInfoFormDTO); + } + + @Override + public Result> myPartTopics(CustomerPageFormDTO param) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "myPartTopics", param); + } + } 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 900fa91908..c6e0ad625d 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 @@ -422,4 +422,15 @@ public class ResiGroupController { return new Result(); } + + /** + * @Description 查询话题所属小组名 + * @Param groupInfoFormDTO + * @author zxc + * @date 2020/11/11 1:36 下午 + */ + @PostMapping("groupinfo") + public Result> selectGroupInfo(@RequestBody GroupInfoFormDTO groupInfoFormDTO){ + return new Result>().ok(resiGroupService.selectGroupInfo(groupInfoFormDTO)); + } } 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 2cbc78cae1..3e501215ce 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 @@ -202,4 +202,12 @@ public interface ResiGroupDao extends BaseDao { int countExistsGroupNameBeforeEdit(@Param("groupId") String groupId, @Param("gridId") String gridId, @Param("groupName") String groupName); + + /** + * @Description 查询话题所属小组名 + * @Param groupInfoFormDTO + * @author zxc + * @date 2020/11/11 1:36 下午 + */ + List selectGroupInfo(@Param("topicIds")List userIds); } 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 43bbca9b1b..be403b96ca 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 @@ -324,4 +324,12 @@ public interface ResiGroupService extends BaseService { * @date 2020.11.03 16:02 */ void auditEdit(GroupEditionAuditFormDTO param); + + /** + * @Description 查询话题所属小组名 + * @Param groupInfoFormDTO + * @author zxc + * @date 2020/11/11 1:36 下午 + */ + List selectGroupInfo(GroupInfoFormDTO 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 81aea2da1f..e9bf586d59 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 @@ -609,6 +609,18 @@ public class ResiGroupServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); + msgList.add(wxSubscribeMessageFormDTO); + epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); //更新政府端:工作-基层治理-党员认证reddot resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(resiGroupDTO.getGridId()); return new Result(); @@ -1040,6 +1052,17 @@ public class ResiGroupServiceImpl extends BaseServiceImpl selectGroupInfo(GroupInfoFormDTO groupInfoFormDTO) { + return baseDao.selectGroupInfo(groupInfoFormDTO.getTopicIds()); + } + @Override public GroupDetailResultDTO getGroupDetail(String groupId) { GroupDetailResultDTO groupDetail = new GroupDetailResultDTO(); diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index 318989299c..6c3b9ff19c 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -31,12 +31,10 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.ReadFlagConstant; -import com.epmet.dto.form.UserMessageFormDTO; -import com.epmet.dto.form.UserResiInfoFormDTO; -import com.epmet.dto.form.UserResiInfoListFormDTO; -import com.epmet.dto.form.WxSubscribeMessageFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.modules.constant.GroupMemberConstant; import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.feign.EpmetUserFeignClient; @@ -65,6 +63,7 @@ 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.epmet.resi.group.dto.member.form.*; +import com.epmet.resi.group.dto.member.form.CommonGridIdListFormDTO; import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO; import com.epmet.resi.group.dto.member.result.GridVotableCountResultDTO; import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO; @@ -75,10 +74,12 @@ import org.slf4j.LoggerFactory; 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.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * 群组成员关系表 @@ -118,6 +119,8 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl page(Map params) { @@ -329,6 +332,24 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl>> badgeR + = userOpenFeignClient.userShowBadge(new UserGroupFormDTO(group.getCustomerId(), userIdList)); + if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){ + Map> map = badgeR.getData(); + list.forEach(member -> { + member.setBadgeList( + CollectionUtils.isEmpty(map.get(member.getUserId())) ? + Collections.EMPTY_LIST: + map.get(member.getUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) ); + }); + }else{ + list.forEach(member -> member.setBadgeList(Collections.EMPTY_LIST)); + } + } + return list; } @@ -368,6 +389,26 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl>> badgeR + = userOpenFeignClient.userShowBadge(new UserGroupFormDTO(group.getCustomerId(), userIdList)); + if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){ + Map> map = badgeR.getData(); + list.forEach(member -> { + member.setBadgeList( + CollectionUtils.isEmpty(map.get(member.getApplyUserId())) ? + Collections.EMPTY_LIST: + map.get(member.getApplyUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) ); + }); + }else{ + list.forEach(member -> member.setBadgeList(Collections.EMPTY_LIST)); + } + } + return list; } 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 de0f3a665d..917d3beab5 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 @@ -272,5 +272,18 @@ public class ResiTopicController { return new Result().ok(myTopics); } + /** + * @Description 个人中心-我参与过的话题 + * @param param + * @return java.util.List + * @author wangc + * @date 2020.11.11 23:20 + */ + @PostMapping("my-part-topics") + public Result> myPartTopics(@RequestBody CustomerPageFormDTO param){ + ValidatorUtils.validateEntity(param); + return new Result>().ok(topicService.getParticipatedTopics(param)); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java index 1cc8f528fe..e7cd14a7eb 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java @@ -161,4 +161,13 @@ public interface ResiTopicDao extends BaseDao { */ List selectIssueList(@Param("topicList") List topicList); + /** + * @Description 查询我参与过的话题 + * @param customerId + * @param userId + * @return java.util.List + * @author wangc + * @date 2020.11.11 23:08 + */ + List selectParticipatedTopics(@Param("customerId") String customerId,@Param("userId") String userId); } \ No newline at end of file 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 b366ac7109..4128358aa5 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 @@ -271,4 +271,13 @@ public interface ResiTopicService extends BaseService { * @date 2020.11.10 15:03 */ List listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize); + + /** + * @Description 个人中心-我参与过的话题 + * @param param + * @return java.util.List + * @author wangc + * @date 2020.11.11 23:20 + */ + List getParticipatedTopics(CustomerPageFormDTO param); } \ No newline at end of file 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 bce65c7543..c207a9f736 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 @@ -37,11 +37,15 @@ 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.constant.OrgInfoConstant; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.CommonDataFilterResultDTO; import com.epmet.dto.result.IssueInitiatorResultDTO; +import com.epmet.dto.result.OrgInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.modules.constant.GroupMemberConstant; import com.epmet.modules.constant.ResiGroupRedisKeys; import com.epmet.modules.feign.EpmetUserFeignClient; @@ -80,6 +84,7 @@ 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.result.*; import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -88,6 +93,7 @@ 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.*; @@ -139,9 +145,15 @@ public class ResiTopicServiceImpl extends BaseServiceImpl>> badgeR + = userOpenFeignClient.userShowBadge( + new UserGroupFormDTO(group.getCustomerId(), + pastTopics.stream() + .filter(top -> StringUtils.equals("other",top.getReleaseUserFlag())) + .map(ResiTopicIncludeIssueInfoResultDTO::getUserId) + .distinct().collect(Collectors.toList()))); + if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){ + Map> badgeM = badgeR.getData(); + pastTopics.forEach(top -> { + if(StringUtils.equals("other",top.getReleaseUserFlag())){ + top.setBadgeList( + CollectionUtils.isEmpty(badgeM.get(top.getUserId())) ? + Collections.EMPTY_LIST : + badgeM.get(top.getUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) + ); + }else top.setBadgeList(Collections.EMPTY_LIST); + }); + + }else pastTopics.forEach(top -> top.setBadgeList(Collections.EMPTY_LIST)); + + } + + } + + return new Result>().ok(pastTopics); } @@ -616,6 +659,18 @@ public class ResiTopicServiceImpl extends BaseServiceImpl userId = new LinkedList<>();userId.add(topicDetail.getCreatedBy()); + Result>> badgeR + = userOpenFeignClient.userShowBadge(new UserGroupFormDTO(group.getCustomerId(), userId)); + if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){ + resultDTO.setBadgeList( + CollectionUtils.isEmpty(badgeR.getData().get(topicDetail.getCreatedBy())) ? + Collections.EMPTY_LIST: + badgeR.getData().get(topicDetail.getCreatedBy()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) + ); + }else resultDTO.setBadgeList(Collections.EMPTY_LIST); return new Result().ok(resultDTO); } @@ -641,6 +696,36 @@ public class ResiTopicServiceImpl extends BaseServiceImpl 0) { setCacheUserInfo(topicPageFormDTO.getGroupId(), hiddenTopics); + + + //3.用户徽章 + //3.1首先需要拿到客户Id + ResiGroupEntity group = resiGroupDao.selectById(topicPageFormDTO.getGroupId()); + if(null != group && StringUtils.isNotBlank(group.getCustomerId())){ + Result>> badgeR + = userOpenFeignClient.userShowBadge( + new UserGroupFormDTO(group.getCustomerId(), + hiddenTopics.stream() + .filter(top -> StringUtils.equals("other",top.getReleaseUserFlag())) + .map(ResiTopicInfoResultDTO::getUserId) + .distinct().collect(Collectors.toList()))); + if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){ + Map> badgeM = badgeR.getData(); + hiddenTopics.forEach(top -> { + if(StringUtils.equals("other",top.getReleaseUserFlag())){ + top.setBadgeList( + CollectionUtils.isEmpty(badgeM.get(top.getUserId())) ? + Collections.EMPTY_LIST : + badgeM.get(top.getUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) + ); + }else top.setBadgeList(Collections.EMPTY_LIST); + }); + + }else hiddenTopics.forEach(top -> top.setBadgeList(Collections.EMPTY_LIST)); + + } + + } return new Result>().ok(hiddenTopics); @@ -791,6 +876,30 @@ public class ResiTopicServiceImpl extends BaseServiceImpl>> badgeR + = userOpenFeignClient.userShowBadge( + new UserGroupFormDTO(group.getCustomerId(), + pastTopics.stream() + .map(ResiTopicInfoResultDTO::getUserId) + .distinct().collect(Collectors.toList()))); + if (null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()) { + Map> badgeM = badgeR.getData(); + pastTopics.forEach(top -> { + top.setBadgeList( + CollectionUtils.isEmpty(badgeM.get(top.getUserId())) ? + Collections.EMPTY_LIST : + badgeM.get(top.getUserId()).stream().map(UserBadgeUnitFormDTO::getBadgeIcon).collect(Collectors.toList()) + ); + }); + + } else pastTopics.forEach(top -> top.setBadgeList(Collections.EMPTY_LIST)); + + } } return new Result>().ok(pastTopics); @@ -864,11 +973,13 @@ public class ResiTopicServiceImpl extends BaseServiceImpl 0) { for (UserResiInfoResultDTO user : result.getData()) { - ResiTopicInfoResultDTO topic = - topicMap.get(user.getUserId()).get(0); - topic.setReleaseUserHeadPhoto(user.getHeadPhoto()); - topic.setReleaseUserName(user.getShowName()); + if(!CollectionUtils.isEmpty(topicMap.get(user.getUserId()))){ + topicMap.get(user.getUserId()).forEach( topic -> { + topic.setReleaseUserHeadPhoto(user.getHeadPhoto()); + topic.setReleaseUserName(user.getShowName()); + }); + } //存入缓存 ResiGroupMemberInfoRedisDTO memberRedisDTO = new ResiGroupMemberInfoRedisDTO(); ResiGroupMemberDTO memberMySql = resiGroupMemberDao.selectGroupMemberInfo(groupId, user.getUserId()); @@ -936,10 +1047,12 @@ public class ResiTopicServiceImpl extends BaseServiceImpl 0) { for (UserResiInfoResultDTO user : result.getData()) { - ResiTopicIncludeIssueInfoResultDTO topic = - topicMap.get(user.getUserId()).get(0); - topic.setReleaseUserHeadPhoto(user.getHeadPhoto()); - topic.setReleaseUserName(user.getShowName()); + if(!CollectionUtils.isEmpty(topicMap.get(user.getUserId()))){ + topicMap.get(user.getUserId()).forEach( topic -> { + topic.setReleaseUserHeadPhoto(user.getHeadPhoto()); + topic.setReleaseUserName(user.getShowName()); + }); + } //存入缓存 ResiGroupMemberInfoRedisDTO memberRedisDTO = new ResiGroupMemberInfoRedisDTO(); @@ -1280,9 +1393,53 @@ public class ResiTopicServiceImpl extends BaseServiceImpl listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize) { PageHelper.startPage(pageNo, pageSize); List myTopics = resiTopicDao.listMyTopics(userId, customerId); - // todo 查询网格名称,赋值 + + HashMap gridIdAndNames = new HashMap<>(); + Set gridIds = myTopics.stream().map(c -> c.getReleaseGridId()).collect(Collectors.toSet()); + + OrgInfoFormDTO form = new OrgInfoFormDTO(); + form.setOrgType(OrgInfoConstant.GRID); + form.setOrgIds(new ArrayList<>(gridIds)); + Result> gridInfoResult = govOrgOpenFeignClient.selectOrgInfo(form); + if (gridInfoResult.success()) { + List grids = gridInfoResult.getData(); + for (OrgInfoResultDTO grid : grids) { + gridIdAndNames.put(grid.getOrgId(), grid.getOrgName()); + } + } + + for (MyTopicsResultDTO myTopic : myTopics) { + myTopic.setReleaseGridName(gridIdAndNames.get(myTopic.getReleaseGridId())); + } + return myTopics; } + + /** + * @Description 个人中心-我参与过的话题 + * @param param + * @return java.util.List + * @author wangc + * @date 2020.11.11 23:20 + */ + @Override + public List getParticipatedTopics(CustomerPageFormDTO param) { + + PageInfo page = + PageHelper.startPage(Optional.ofNullable(param.getPageNo()).orElse(NumConstant.ONE), + Optional.ofNullable(param.getPageSize()).orElse(NumConstant.ONE)).doSelectPageInfo(() -> + baseDao.selectParticipatedTopics(param.getCustomerId(),param.getUserId())); + List result = page.getList(); + if(CollectionUtils.isEmpty(result)) return Collections.EMPTY_LIST; + Result> gridR = govOrgOpenFeignClient.selectOrgInfo( + new OrgInfoFormDTO(OrgInfoConstant.GRID,result.stream().map(ParticipatedTopicUnitResultDTO :: getTopicReleaseGridName).distinct().collect(Collectors.toList()))); + if(gridR.success() && !CollectionUtils.isEmpty(gridR.getData())){ + return result.stream().flatMap(topic -> gridR.getData().stream() .filter(grid -> StringUtils.equals(grid.getOrgId(),topic.getTopicReleaseGridName())).map(orgInfo -> { + topic.setTopicReleaseGridName(orgInfo.getOrgId()); + return topic; + })).collect(Collectors.toList()); + } return Collections.EMPTY_LIST; + } } 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 94c2422159..3bafe14fb1 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 @@ -418,4 +418,20 @@ and esr.DEL_FLAG = 0 ) t + + + diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index cf570c9eda..cb4d75b345 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -451,7 +451,8 @@ select t.id as topicId, t.topic_content as topicContent, unix_timestamp(t.created_time) as releaseTime, - g.GROUP_NAME as releaseGroupName + g.GROUP_NAME as releaseGroupName, + g.GRID_ID as releaseGridId from resi_topic t inner join resi_group g on (t.GROUP_ID = g.ID and g.CUSTOMER_ID = #{customerId}) where t.CREATED_BY = #{userId} @@ -473,5 +474,26 @@ + + diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/controller/AdviceController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/controller/AdviceController.java index d305e0bdef..b9af883a21 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/controller/AdviceController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/controller/AdviceController.java @@ -3,6 +3,7 @@ package com.epmet.modules.advice.controller; 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.MyAdviceListFormDTO; import com.epmet.dto.form.SubmitAdviceFormDTO; import com.epmet.dto.result.MyAdviceListResultDTO; import com.epmet.modules.advice.service.AdviceService; @@ -44,13 +45,13 @@ public class AdviceController { /** * @Description 我的建议列表 - * @param map + * @param dto * @return com.epmet.commons.tools.utils.Result * @Author liushaowen * @Date 2020/11/5 13:26 */ @PostMapping("myadvicelist") - public Result> getMyAdviceList(@RequestBody Map map){ - return adviceService.getMyAdviceList(map); + public Result> getMyAdviceList(@RequestBody MyAdviceListFormDTO dto){ + return adviceService.getMyAdviceList(dto); } } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/service/AdviceService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/service/AdviceService.java index 516a4d4c0f..acf354f745 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/service/AdviceService.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/service/AdviceService.java @@ -1,6 +1,7 @@ package com.epmet.modules.advice.service; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.MyAdviceListFormDTO; import com.epmet.dto.form.SubmitAdviceFormDTO; import com.epmet.dto.result.MyAdviceListResultDTO; @@ -10,5 +11,5 @@ import java.util.Map; public interface AdviceService { Result submitAdvice(SubmitAdviceFormDTO dto); - Result> getMyAdviceList(Map map); + Result> getMyAdviceList(MyAdviceListFormDTO dto); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/service/impl/AdviceServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/service/impl/AdviceServiceImpl.java index a73d059738..2c11338e90 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/service/impl/AdviceServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/advice/service/impl/AdviceServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.modules.advice.service.impl; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.MyAdviceListFormDTO; import com.epmet.dto.form.SubmitAdviceFormDTO; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.modules.advice.service.AdviceService; @@ -31,13 +32,13 @@ public class AdviceServiceImpl implements AdviceService { /** * @Description 我的建议列表 - * @param map + * @param dto * @return com.epmet.commons.tools.utils.Result * @Author liushaowen * @Date 2020/11/5 10:40 */ @Override - public Result getMyAdviceList(Map map) { - return epmetUserOpenFeignClient.myAdviceList(map); + public Result getMyAdviceList(MyAdviceListFormDTO dto) { + return epmetUserOpenFeignClient.myAdviceList(dto); } } 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 6479c87583..1119d95bc3 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 @@ -5,8 +5,12 @@ 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.modules.person.service.IssueService; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.beans.factory.annotation.Autowired; @@ -52,4 +56,42 @@ public class IssueController { return new Result>().ok(issueService.myPartProjects(formDTO)); } + /** + * @Description 个人中心-我发起的议题列表-表决中 + * @Param tokenDto + * @Param myPubIssuesAuditingFormDTO + * @author zxc + * @date 2020/11/11 9:24 上午 + */ + @PostMapping("my-pub-issues/auditing") + public Result> myPubIssuesAuditing(@LoginUser TokenDto tokenDto, @RequestBody MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO){ + ValidatorUtils.validateEntity(myPubIssuesAuditingFormDTO, MyPubIssuesAuditingFormDTO.MyPubIssuesAuditing.class); + return new Result>().ok(issueService.myPubIssuesAuditing(tokenDto,myPubIssuesAuditingFormDTO)); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-已转项目 + * @Date 2020/11/11 13:33 + **/ + @PostMapping("my-pub-issues/shift-project") + public Result> getMyPubIssuesShiftProject(@RequestBody MyPubIssuesAuditingFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, MyPubIssuesAuditingFormDTO.MyPubIssuesAuditing.class); + formDTO.setUserId(loginUserUtil.getLoginUserId()); + return new Result>().ok(issueService.getMyPubIssuesShiftProject(formDTO)); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-已关闭 + * @Date 2020/11/11 13:39 + **/ + @PostMapping("my-pub-issues/closed") + public Result> getMyPubIssuesClosed(@RequestBody MyPubIssuesAuditingFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, MyPubIssuesAuditingFormDTO.MyPubIssuesAuditing.class); + formDTO.setUserId(loginUserUtil.getLoginUserId()); + return new Result>().ok(issueService.getMyPubIssuesClosed(formDTO)); + } } 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 99377c2dba..b04c5082a3 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,8 +1,12 @@ package com.epmet.modules.person.service; 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.resi.mine.dto.from.MyPartProjectsFormDTO; import java.util.List; @@ -26,4 +30,29 @@ public interface IssueService { * @author sun */ List myPartProjects(MyPartProjectsFormDTO formDTO); + + /** + * @Description 个人中心-我发起的议题列表-表决中 + * @Param tokenDto + * @Param myPubIssuesAuditingFormDTO + * @author zxc + * @date 2020/11/11 9:24 上午 + */ + List myPubIssuesAuditing(TokenDto tokenDto, MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO); + + /** + * @param formDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-已转项目 + * @Date 2020/11/11 13:35 + **/ + List getMyPubIssuesShiftProject(MyPubIssuesAuditingFormDTO formDTO); + + /** + * @param formDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-已关闭 + * @Date 2020/11/11 13:48 + **/ + List getMyPubIssuesClosed(MyPubIssuesAuditingFormDTO formDTO); } 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 5d690daca8..8f321cceb9 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 @@ -4,18 +4,25 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.IssueOpenConstant; +import com.epmet.constant.OrgInfoConstant; +import com.epmet.dto.IssueDTO; +import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.MyPartIssuesFormDTO; -import com.epmet.dto.result.AllGridsByUserIdResultDTO; -import com.epmet.dto.result.MyPartIssuesResultDTO; -import com.epmet.dto.result.MyPartProjectsResultDTO; +import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; +import com.epmet.dto.form.OrgInfoFormDTO; +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.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 lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -124,4 +131,121 @@ public class IssueServiceImpl implements IssueService { return resultList; } + + /** + * @Description 个人中心-我发起的议题列表-表决中 + * @Param tokenDto + * @Param myPubIssuesAuditingFormDTO + * @author zxc + * @date 2020/11/11 9:24 上午 + */ + @Override + public List myPubIssuesAuditing(TokenDto tokenDto, MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO) { + myPubIssuesAuditingFormDTO.setUserId(tokenDto.getUserId()); + Result> listResult = issueOpenFeignClient.myPubIssuesAuditing(myPubIssuesAuditingFormDTO); + if (!listResult.success()){ + throw new RenException("查询我发起的议题列表-表决中失败......"); + } + return listResult.getData(); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-已转项目 按照转项目时间排序 + * @Date 2020/11/11 13:35 + **/ + @Override + public List getMyPubIssuesShiftProject(MyPubIssuesAuditingFormDTO formDTO) { + //查询我发起的议题,并且 已转项目 + formDTO.setIssueStatus(IssueOpenConstant.ISSUE_SHIFT_PROJECT); + Result> issueResult=issueOpenFeignClient.getMyPubIssues(formDTO); + if(null==issueResult||CollectionUtils.isEmpty(issueResult.getData())){ + return new ArrayList<>(); + } + //议题来源话题id集合 + List topicIds=new ArrayList<>(); + List projectIds=new ArrayList<>(); + issueResult.getData().forEach(issueDTO ->{ + if(IssueOpenConstant.SOURCE_TYPE_RT.equals(issueDTO.getSourceType())&& StringUtils.isNotBlank(issueDTO.getSourceId())){ + topicIds.add(issueDTO.getSourceId()); + projectIds.add(issueDTO.getProjectId()); + } + } ); + //查询网格名称 + Result> gridNameList = govOrgOpenFeignClient.selectOrgInfo(new OrgInfoFormDTO(OrgInfoConstant.GRID, issueResult.getData().stream().map(m -> m.getGridId()).collect(Collectors.toList()))); + if (!gridNameList.success()){ + logger.error("查询议题来源网格名称失败......"); + } + //查询话题来源小组名称 + Result> groupNameList = resiGroupOpenFeignClient.selectGroupInfo(new GroupInfoFormDTO(topicIds)); + if (!groupNameList.success()){ + logger.error("查询议题来源小组名称失败......"); + } + //查询项目基本信息 + Result> projectRes=govProjectOpenFeignClient.queryProjectInfoByIds(projectIds); + if(!projectRes.success()){ + logger.error("查询项目信息失败......"); + } + List list=new ArrayList<>(); + for(IssueDTO issueDTO:issueResult.getData()){ + MyPubIssuesShiftProjectResultDTO resultDTO=new MyPubIssuesShiftProjectResultDTO(); + resultDTO.setProjectId(issueDTO.getProjectId()); + gridNameList.getData().stream().filter(o -> issueDTO.getGridId().equals(o.getOrgId())).forEach(o -> resultDTO.setTopicReleaseGridName(o.getOrgName())); + groupNameList.getData().stream().filter(g -> issueDTO.getSourceId().equals(g.getTopicId())).forEach(g -> resultDTO.setTopicReleaseGroupName(g.getTopicGroupName())); + resultDTO.setShiftProjectTime(issueDTO.getShiftedTimeStamp()); + + + projectRes.getData().stream().filter(p->issueDTO.getProjectId().equals(p.getId())).forEach(projectDTO -> resultDTO.setProjectTitle(projectDTO.getTitle())); + //当前处理部门名称列表 + projectRes.getData().stream().filter(p->issueDTO.getProjectId().equals(p.getId())).forEach(projectDTO -> resultDTO.setDepartmentNameList(projectDTO.getCurrentDepartmentNameList())); + list.add(resultDTO); + } + return list; + } + + /** + * @param formDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-已关闭 + * @Date 2020/11/11 13:48 + **/ + @Override + public List getMyPubIssuesClosed(MyPubIssuesAuditingFormDTO formDTO) { + //查询我发起的议题,并且 已关闭的 + formDTO.setIssueStatus(IssueOpenConstant.ISSUE_CLOSED); + Result> issueResult=issueOpenFeignClient.getMyPubIssues(formDTO); + if(null==issueResult||CollectionUtils.isEmpty(issueResult.getData())){ + return new ArrayList<>(); + } + //议题来源话题id集合 + List topicIds=new ArrayList<>(); + issueResult.getData().forEach(issueDTO ->{ + if(IssueOpenConstant.SOURCE_TYPE_RT.equals(issueDTO.getSourceType())&& StringUtils.isNotBlank(issueDTO.getSourceId())){ + topicIds.add(issueDTO.getSourceId()); + } + } ); + //查询网格名称 + Result> gridNameList = govOrgOpenFeignClient.selectOrgInfo(new OrgInfoFormDTO(OrgInfoConstant.GRID, issueResult.getData().stream().map(m -> m.getGridId()).collect(Collectors.toList()))); + if (!gridNameList.success()){ + logger.error("查询议题来源网格名称失败......"); + } + //查询话题来源小组名称 + Result> groupNameList = resiGroupOpenFeignClient.selectGroupInfo(new GroupInfoFormDTO(topicIds)); + if (!groupNameList.success()){ + logger.error("查询议题来源小组名称失败......"); + } + List resultDTOList=new ArrayList<>(); + for(IssueDTO issueDTO:issueResult.getData()){ + MyPubIssuesClosedResultDTO resultDTO=new MyPubIssuesClosedResultDTO(); + resultDTO.setIssueId(issueDTO.getId()); + resultDTO.setIssueTitle(issueDTO.getIssueTitle()); + resultDTO.setSuggestion(issueDTO.getSuggestion()); + resultDTO.setClosedTime(issueDTO.getClosedTimeStamp()); + gridNameList.getData().stream().filter(o -> issueDTO.getGridId().equals(o.getOrgId())).forEach(o -> resultDTO.setTopicReleaseGridName(o.getOrgName())); + groupNameList.getData().stream().filter(g -> issueDTO.getSourceId().equals(g.getTopicId())).forEach(g -> resultDTO.setTopicReleaseGroupName(g.getTopicGroupName())); + resultDTOList.add(resultDTO); + } + return resultDTOList; + } } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyAdviceListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyAdviceListFormDTO.java new file mode 100644 index 0000000000..6188d44201 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyAdviceListFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.Min; +import java.io.Serializable; + +/** + * @description: + * @author: liushaowen + * @date: 2020/11/11 14:41 + */ +@Data +public class MyAdviceListFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 页码 + */ + @Min(1) + private int pageNo; + + /** + * 页大小 + */ + @Min(1) + private int pageSize; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserBadgeUnitFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserBadgeUnitFormDTO.java index a68dd2157e..124b94b3bd 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserBadgeUnitFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserBadgeUnitFormDTO.java @@ -6,7 +6,8 @@ import java.io.Serializable; import java.util.Objects; /** - * @Description 用户-徽章缓存单元(专为redis操作提供) 尽量不要使用这个DTO,因为重写了hashcode和equals!!!!!!! + * @Description 用户-徽章缓存单元(专为redis操作提供) 尽量不要使用这个DTO,因为重写了hashcode和equals + * 在为单个用户查询时可以使用这个DTO,FIXME 批量查询时不要用该类接收!!!!!! * @ClassName UserBadgeUnitFormDTO * @Auth wangc * @Date 2020-11-05 10:00 diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserGroupFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserGroupFormDTO.java new file mode 100644 index 0000000000..341a868589 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserGroupFormDTO.java @@ -0,0 +1,35 @@ +package com.epmet.dto.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 传入一组用户Id + * @ClassName UserGroupFormDTO + * @Auth wangc + * @Date 2020-11-10 14:47 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserGroupFormDTO implements Serializable { + private static final long serialVersionUID = -8406380736895707328L; + + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空") + private String customerId; + + /** + * 用户Id集合 + */ + @NotEmpty(message = "用户Id不能为空") + private List userIds; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyAdviceListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyAdviceListResultDTO.java index 77a8e2c460..b6d12a12d4 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyAdviceListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyAdviceListResultDTO.java @@ -18,6 +18,8 @@ public class MyAdviceListResultDTO implements Serializable { private String adviceContent; + private String adviceType; + private List imgList; @JsonFormat(pattern = "yyyy/MM/dd", timezone = "GMT+8") diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBadgeInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBadgeInfoResultDTO.java new file mode 100644 index 0000000000..d600c35254 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBadgeInfoResultDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 用户勋章单位DTO + ClassName UserBadgeInfoResultDTO + * @Auth wangc + * @Date 2020-11-10 15:29 + */ +@Data +public class UserBadgeInfoResultDTO implements Serializable { + private static final long serialVersionUID = -793619932269122320L; + + /** + * 用户Id + */ + private String userId; + + /** + * 徽章Id + */ + private String badgeId; + + /** + * 徽章图标 url + */ + private String badgeIcon; + + /** + * 徽章名称 + */ + private String badgeName; +} 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 ac69c933c4..2d5df3ebbb 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 @@ -404,13 +404,13 @@ public interface EpmetUserOpenFeignClient { /** * @Description 个人中心-我的建议列表 - * @param map pageSize,pageNo + * @param dto * @return com.epmet.commons.tools.utils.Result * @Author liushaowen * @Date 2020/11/11 10:35 */ @PostMapping("/epmetuser/useradvice/myadvicelist") - Result> myAdviceList(@RequestBody Map map); + Result> myAdviceList(@RequestBody MyAdviceListFormDTO dto); /** * @Description 个人中心-提交建议 @@ -421,4 +421,14 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/useradvice/submitadvice") Result submitAdvice(@RequestBody SubmitAdviceFormDTO dto); + + /** + * @Description 供其他服务调用 查询指定用户需要显示的徽章信息(缓存补偿) + * @param param + * @return com.epmet.commons.tools.utils.Result>> + * @author wangc + * @date 2020.11.10 15:59 + */ + @PostMapping("/epmetuser/badge/usershowbadge") + Result>> userShowBadge(@RequestBody UserGroupFormDTO param); } 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 423bf32e20..b58b3ae62c 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 @@ -279,8 +279,8 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien } @Override - public Result> myAdviceList(Map map) { - return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "myAdviceList", map); + public Result> myAdviceList(MyAdviceListFormDTO dto) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "myAdviceList", dto); } @@ -288,4 +288,16 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result submitAdvice(SubmitAdviceFormDTO dto) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "submitAdvice", dto); } + + /** + * @Description 供其他服务调用 查询指定用户需要显示的徽章信息(缓存补偿) + * @param param + * @return com.epmet.commons.tools.utils.Result>> + * @author wangc + * @date 2020.11.10 15:59 + */ + @Override + public Result>> userShowBadge(UserGroupFormDTO param) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "userShowBadge", param); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java index faaf9c3d04..a18ad036fd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java @@ -4,10 +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.form.AddBadgeFormDTO; -import com.epmet.dto.form.BadgeAuditFormDTO; -import com.epmet.dto.form.BadgeFormDTO; -import com.epmet.dto.form.EditBadgeFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.BadgeAuditRecordResultDTO; import com.epmet.dto.result.BadgeAuditingResultDTO; import com.epmet.dto.result.BadgeDetailResultDTO; @@ -18,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** * @author zhaoqifeng @@ -29,6 +27,8 @@ import java.util.List; public class BadgeController { @Autowired private BadgeService badgeService; + @Autowired + private UserBadgeRedis badgeRedis; /** * 徽章列表 @@ -152,4 +152,17 @@ public class BadgeController { badgeService.audit(tokenDto, formDTO); return new Result(); } + + /** + * @Description 供其他服务调用 查询指定用户需要显示的徽章信息(缓存补偿) + * @param param + * @return com.epmet.commons.tools.utils.Result>> + * @author wangc + * @date 2020.11.10 15:59 + */ + @PostMapping("usershowbadge") + public Result>> userShowBadge(@RequestBody UserGroupFormDTO param){ + ValidatorUtils.validateEntity(param); + return new Result>>().ok(badgeRedis.batchObtainUserBadge(param.getCustomerId(),param.getUserIds())); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java index 170b9188e5..ed52f4da9d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java @@ -29,6 +29,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.UserAdviceDTO; import com.epmet.dto.form.AdviceListFormDTO; +import com.epmet.dto.form.MyAdviceListFormDTO; import com.epmet.dto.form.ReplyAdviceFormDTO; import com.epmet.dto.form.SubmitAdviceFormDTO; import com.epmet.dto.result.AdviceDetailResultDTO; @@ -155,22 +156,14 @@ public class UserAdviceController { /** * @Description 居民端-我的建议列表 - * @param map ->pageSize,pageNo + * @param dto * @return com.epmet.commons.tools.utils.Result> * @Author liushaowen * @Date 2020/11/9 17:35 */ @PostMapping("myadvicelist") - public Result> myAdviceList(@RequestBody Map map) { - int pageSize = map.get("pageSize"); - int pageNo = map.get("pageNo"); - if (pageSize == 0){ - pageSize = 10; - } - if (pageNo == 0){ - pageNo = 1; - } - return new Result>().ok(userAdviceService.myAdviceList(pageSize,pageNo,loginUserUtil.getLoginUserId())); + public Result> myAdviceList(@RequestBody MyAdviceListFormDTO dto) { + return new Result>().ok(userAdviceService.myAdviceList(dto.getPageSize(),dto.getPageNo(),loginUserUtil.getLoginUserId())); } @PostMapping("submitadvice") diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBadgeDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBadgeDao.java index 082b0051cb..e861249258 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBadgeDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBadgeDao.java @@ -5,10 +5,7 @@ import com.epmet.dto.form.AuthFieldFormDTO; import com.epmet.dto.form.OpenedOrClosedFormDTO; import com.epmet.dto.form.UserBadgeListFormDTO; import com.epmet.dto.form.UserBadgeUnitFormDTO; -import com.epmet.dto.result.AuthFieldResultDTO; -import com.epmet.dto.result.CertificationDetailResultDTO; -import com.epmet.dto.result.UserBadgeListResultDTO; -import com.epmet.dto.result.UserOperListResultDTO; +import com.epmet.dto.result.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -112,4 +109,14 @@ public interface UserBadgeDao { * @date 2020.11.09 14:14 */ List selectUserSortedBadge(@Param("userId")String userId,@Param("customerId")String customerId); + + /** + * @Description 批量查找用户全部的显示徽章(排序) + * @param customerId + * @param userIds + * @return java.util.List + * @author wangc + * @date 2020.11.09 14:14 + */ + List selectBatchUserSortedBadge(@Param("customerId")String customerId, @Param("userIds")List userIds); } 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 72a912f393..16644fa332 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 @@ -10,6 +10,7 @@ import com.epmet.constant.BadgeConstant; import com.epmet.constant.UserRedisKeys; import com.epmet.dao.BadgeDao; import com.epmet.dto.form.UserBadgeUnitFormDTO; +import com.epmet.dto.result.UserBadgeInfoResultDTO; import com.epmet.dto.result.UserBadgeListResultDTO; import com.epmet.service.UserBadgeService; import lombok.extern.slf4j.Slf4j; @@ -23,9 +24,8 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.lang.Nullable; import org.springframework.stereotype.Component; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import java.util.*; +import java.util.stream.Collectors; import static com.epmet.commons.tools.redis.RedisUtils.MINUTE_THIRTY_EXPIRE; @@ -118,7 +118,6 @@ public class UserBadgeRedis { final List sortedBadges = cache; redisTemplate.executePipelined((RedisCallback>) connection ->{ sortedBadges.forEach(badge -> { - connection.listCommands().rPush(UserRedisKeys.getResiUserBadgeKey(customerId, userId).getBytes(), redisTemplate.getValueSerializer().serialize(badge)); }); @@ -128,6 +127,48 @@ public class UserBadgeRedis { return cache; } + /** + * @Description 批量获取用户显示徽章 + * @param customerId + * @param userIds + * @return java.util.Map> + * @author wangc + * @date 2020.11.10 15:00 + */ + public Map> batchObtainUserBadge(String customerId,List userIds){ + if(CollectionUtils.isEmpty(userIds)) return Collections.EMPTY_MAP; + Map> result = new HashMap<>(); + //存放缓存为空的 + List cacheBlank = new LinkedList<>(); + userIds.forEach(userId -> { + List badges = + redisUtils.lrange(UserRedisKeys.getResiUserBadgeKey(customerId,userId), NumConstant.ZERO, NumConstant.ONE_NEG, UserBadgeUnitFormDTO.class); + if(CollectionUtils.isEmpty(badges)){cacheBlank.add(userId);}else{result.put(userId,badges);} + }); + if(!CollectionUtils.isEmpty(cacheBlank)){ + Map> + map = badgeService.getBatchUserSortedBadge(customerId,cacheBlank); + if(null != map && !map.isEmpty()){ + map.forEach((k,v) -> { + List covert = + v.stream().map( o -> { + return ConvertUtils.sourceToTarget(o,UserBadgeUnitFormDTO.class); + }).collect(Collectors.toList()); + result.put(k,covert); + + redisTemplate.executePipelined((RedisCallback>) connection ->{ + covert.forEach(badge -> { + connection.listCommands().rPush(UserRedisKeys.getResiUserBadgeKey(customerId, k).getBytes(), + redisTemplate.getValueSerializer().serialize(badge)); + }); + return null; + }); + }); + } + } + return result; + } + /** * 用户点亮或取消徽章 * @param diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeService.java index 65e9494cc8..a905bb2f9b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeService.java @@ -3,12 +3,10 @@ package com.epmet.service; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.*; -import com.epmet.dto.result.AuthFieldResultDTO; -import com.epmet.dto.result.CertificationDetailResultDTO; -import com.epmet.dto.result.UserBadgeListResultDTO; -import com.epmet.dto.result.UserOperListResultDTO; +import com.epmet.dto.result.*; import java.util.List; +import java.util.Map; /** * @Author zxc @@ -91,4 +89,13 @@ public interface UserBadgeService { */ List getUserSortedBadge(String userId,String customerId); + /** + * @Description 批量获取用户显示徽章 + * @param customerId + * @param userIds + * @return java.util.Map> + * @author wangc + * @date 2020.11.10 15:12 + */ + Map> getBatchUserSortedBadge(String customerId, List userIds); } 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 4c60001f6a..f7939fabb8 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 @@ -27,7 +27,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @Author zxc @@ -287,4 +290,19 @@ public class UserBadgeServiceImpl implements UserBadgeService { return userBadgeDao.selectUserSortedBadge(userId,customerId); } + /** + * @Description 批量获取用户显示徽章 + * @param customerId + * @param userIds + * @return java.util.Map> + * @author wangc + * @date 2020.11.10 15:12 + */ + @Override + public Map> getBatchUserSortedBadge(String customerId, List userIds) { + List badges = userBadgeDao.selectBatchUserSortedBadge(customerId,userIds); + if(CollectionUtils.isEmpty(badges)) return Collections.EMPTY_MAP; + return badges.stream().collect(Collectors.groupingBy(UserBadgeInfoResultDTO :: getUserId)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.7__add_useradvice.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.7__add_useradvice.sql new file mode 100644 index 0000000000..e2e4c2cf9b --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.7__add_useradvice.sql @@ -0,0 +1,42 @@ +CREATE TABLE `user_advice` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `CUSTOMER_NAME` varchar(64) NOT NULL COMMENT '客户名', + `AGENCY_ID` varchar(64) NOT NULL COMMENT '组织ID', + `AGENCY_NAME` varchar(64) NOT NULL COMMENT '组织名', + `GRID_ID` varchar(64) NOT NULL COMMENT '网格ID', + `GRID_NAME` varchar(64) NOT NULL COMMENT '网格名', + `USER_ID` varchar(64) NOT NULL COMMENT 'userid', + `USER_NAME` varchar(32) NOT NULL COMMENT '用户姓名', + `REG_PHONE` varchar(32) NOT NULL COMMENT '用户注册手机号', + `ADVICE_CONTENT` varchar(500) NOT NULL COMMENT '建议描述', + `PHONE` varchar(32) DEFAULT NULL COMMENT '填写手机号', + `ADVICE_TIME` datetime NOT NULL COMMENT '建议时间', + `ADVICE_TYPE` varchar(32) DEFAULT NULL COMMENT '问题分类(gov政府software软件,逗号分隔)', + `REPLY_CONTENT` varchar(500) DEFAULT NULL COMMENT '回复内容', + `REPLY_USER_ID` varchar(64) DEFAULT NULL COMMENT '回复人id', + `REPLY_USER_NAME` varchar(32) DEFAULT NULL COMMENT '回复人姓名', + `REPLY_TIME` datetime DEFAULT NULL COMMENT '回复时间', + `GOV_CONTENT` varchar(500) DEFAULT NULL COMMENT '政府存证文字', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标志', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户建议表'; + +CREATE TABLE `user_advice_img` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `ADVICE_ID` varchar(64) NOT NULL COMMENT '建议id', + `TYPE` varchar(10) NOT NULL COMMENT '图片类型,resi是用户上传的建议图片,oper是运营上传的代替政府回复的存证', + `IMG_URL` varchar(255) NOT NULL COMMENT '图片url', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标志', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户建议图片'; diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml index f54d2def99..c9c804c0a2 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml @@ -46,6 +46,7 @@ + @@ -53,7 +54,7 @@ + +