From b3341fb798d446a89a5e2f955c4fa622d92cba1d Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 18 Nov 2020 14:56:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF-=E5=AF=B9=E8=AE=AE?= =?UTF-8?q?=E9=A2=98=E5=8F=91=E8=A1=A8=E5=BB=BA=E8=AE=AE-=E5=BB=BA?= =?UTF-8?q?=E8=AE=AE=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/exception/EpmetErrorCode.java | 2 +- .../epmet/dto/form/EvaluationListFormDTO.java | 3 + .../dto/result/IssueSuggestionResDTO.java | 55 +++++++++++++++ .../controller/IssueSuggestionController.java | 17 +++++ .../com/epmet/dao/IssueSuggestionDao.java | 11 +++ .../com/epmet/dao/IssueVoteDetailDao.java | 11 +++ .../epmet/service/IssueSuggestionService.java | 12 ++++ .../impl/IssueSuggestionServiceImpl.java | 68 ++++++++++++++++++- .../resources/mapper/IssueSuggestionDao.xml | 20 +++++- .../resources/mapper/IssueVoteDetailDao.xml | 12 ++++ 10 files changed, 207 insertions(+), 4 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueSuggestionResDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index e4832a1c8b..a3ba8dfd3b 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -86,7 +86,7 @@ public enum EpmetErrorCode { TEXT_SCAN_FAILED(8503,"内容审核失败,请重新编辑"), IMG_SCAN_FAILED(8504,"图片审核失败,请重新上传"), PROJECT_IS_CLOSED(8601,"项目已结案"), - + VOTE_ISSUE_PLEASE(8602,"请先选择支持或反对,再发表您的想法"), // 爱心互助 居民端 NOT_IN_THE_SIGN_IN_RANGE(8510, "您还未进入指定的签到范围~"), // 活动报名失败,弹窗:志愿者认证 diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java index 1c0af96723..22f47eb6f9 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java @@ -2,6 +2,7 @@ package com.epmet.dto.form; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.io.Serializable; /** @@ -21,11 +22,13 @@ public class EvaluationListFormDTO implements Serializable { /** * 页码 */ + @NotBlank(message = "pageNo不能为空") private Integer pageNo; /** * 每页数量 */ + @NotBlank(message = "pageSize不能为空") private Integer pageSize; diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueSuggestionResDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueSuggestionResDTO.java new file mode 100644 index 0000000000..d71c26a999 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueSuggestionResDTO.java @@ -0,0 +1,55 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * 议题建议列表 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 14:00 + */ +@Data +public class IssueSuggestionResDTO implements Serializable { + private static final long serialVersionUID = -6217415454610258644L; + /** + * 建议id + */ + private String suggestionId; + + /** + * 建议内容 + */ + private String suggestion; + + /** + * 建议时间戳 + */ + private Long publishTime; + + /** + * true 公开 false 匿名 + */ + private Boolean publicFlag; + + /** + * 用户头像url + */ + private String headPhoto; + + /** + * 用户显示名称 + */ + private String userShowName; + + /** + * 态度 - opposition(反对)support(赞成) + */ + private String aititude; + + @JsonIgnore + private String userId; + +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java index 5a5fcb06f7..4ce01a56d5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java @@ -20,7 +20,9 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.form.EvaluationListFormDTO; import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.IssueSuggestionResDTO; import com.epmet.dto.result.SaveIssueSuggestionResultDTO; import com.epmet.service.IssueSuggestionService; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +31,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * 居民端用户对议题建议或意见表 @@ -67,4 +71,17 @@ public class IssueSuggestionController { SaveIssueSuggestionResultDTO resultDTO = issueSuggestionService.saveIssueSuggestion(dto); return new Result().ok(resultDTO); } + + /** + * @param formDTO + * @author yinzuomei + * @description 议题建议列表 + * @Date 2020/11/18 14:15 + **/ + @PostMapping("list") + public Result> listIssueSug(@RequestBody EvaluationListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + List list = issueSuggestionService.listIssueSug(formDTO); + return new Result>().ok(list); + } } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSuggestionDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSuggestionDao.java index c3989ae403..a39aeef521 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSuggestionDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSuggestionDao.java @@ -20,9 +20,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.IssueSuggestionResDTO; import com.epmet.entity.IssueSuggestionEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 居民端用户对议题建议或意见表 * @@ -40,4 +43,12 @@ public interface IssueSuggestionDao extends BaseDao { * @Date 2020/11/18 10:12 **/ IssueSuggestionDTO selectUserIssueSuggestion(UserIssueSuggestionFormDTO formDTO); + + /** + * @param issueId + * @author yinzuomei + * @description 查询议题建议 + * @Date 2020/11/18 14:27 + **/ + List selectListIssueSugByIssueId(String issueId); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java index 930e16e88e..4b8643a2c5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueVoteDetailDTO; import com.epmet.dto.form.VoteFormDTO; import com.epmet.dto.result.IssueAttitudeCountResultDTO; import com.epmet.entity.IssueVoteDetailEntity; @@ -73,4 +74,14 @@ public interface IssueVoteDetailDao extends BaseDao { List getVotingCountList(@Param("ids")Set ids, @Param("attitude")String attitude); List getVotingSummaryList(@Param("ids")Set ids); + + /** + * @return com.epmet.dto.IssueVoteDetailDTO + * @param userId + * @param issueId + * @author yinzuomei + * @description 查询用户对某个议题的表决信息 + * @Date 2020/11/18 14:35 + **/ + IssueVoteDetailDTO selectUserIssueDet(@Param("userId") String userId, @Param("issueId") String issueId); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java index c2998e55d8..a44b08085c 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java @@ -19,10 +19,14 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.form.EvaluationListFormDTO; import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.IssueSuggestionResDTO; import com.epmet.dto.result.SaveIssueSuggestionResultDTO; import com.epmet.entity.IssueSuggestionEntity; +import java.util.List; + /** * 居民端用户对议题建议或意见表 * @@ -46,4 +50,12 @@ public interface IssueSuggestionService extends BaseService listIssueSug(EvaluationListFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSuggestionServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSuggestionServiceImpl.java index 3f59483f28..bbf037ea80 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSuggestionServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSuggestionServiceImpl.java @@ -18,6 +18,7 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.scan.param.TextScanParamDTO; @@ -27,19 +28,31 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.dao.IssueSuggestionDao; +import com.epmet.dao.IssueVoteDetailDao; import com.epmet.dto.IssueDTO; import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.IssueVoteDetailDTO; +import com.epmet.dto.form.EvaluationListFormDTO; import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.form.UserResiInfoListFormDTO; +import com.epmet.dto.result.IssueSuggestionResDTO; import com.epmet.dto.result.SaveIssueSuggestionResultDTO; +import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.entity.IssueSuggestionEntity; +import com.epmet.feign.EpmetUserFeignClient; import com.epmet.service.IssueService; import com.epmet.service.IssueSuggestionService; +import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.util.UUID; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 居民端用户对议题建议或意见表 @@ -56,6 +69,11 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); if (!textSyncScanResult.success()) { - log.error("居民端用户对议题发表建议,内容审核服务返回失败"); + log.warn("居民端用户对议题发表建议,内容审核服务返回失败"); throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); } else { if (!textSyncScanResult.getData().isAllPass()) { @@ -106,4 +129,45 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl listIssueSug(EvaluationListFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.selectListIssueSugByIssueId(formDTO.getIssueId()); + //用户信息公开的userId集合 + Set userIds = new HashSet<>(); + list.forEach(issueSuggestion -> { + if (issueSuggestion.getPublicFlag()) { + userIds.add(issueSuggestion.getUserId()); + } + IssueVoteDetailDTO issueVoteDetailDTO = issueVoteDetailDao.selectUserIssueDet(issueSuggestion.getUserId(), formDTO.getIssueId()); + issueSuggestion.setAititude(null != issueVoteDetailDTO ? issueVoteDetailDTO.getAttitude() : StrConstant.EPMETY_STR); + }); + //查询这部分人的基本信息 + if (!CollectionUtils.isEmpty(userIds)) { + Result> userInfoRes = epmetUserFeignClient.getUserResiInfoList(new UserResiInfoListFormDTO(new ArrayList<>(userIds))); + if (userInfoRes.success() && !CollectionUtils.isEmpty(userInfoRes.getData())) { + Map userBaseInfoMap = userInfoRes.getData().stream().collect(Collectors.toMap(UserResiInfoResultDTO::getUserId, Function.identity())); + //赋值 + list.forEach(issueSuggestionInfo -> { + if (issueSuggestionInfo.getPublicFlag()) { + UserResiInfoResultDTO userInfo = userBaseInfoMap.get(issueSuggestionInfo.getUserId()); + if (null != userInfo && StringUtils.isNotBlank(userInfo.getHeadPhoto())) { + issueSuggestionInfo.setHeadPhoto(userInfo.getHeadPhoto()); + } + if (null != userInfo && StringUtils.isNotBlank(userInfo.getShowName())) { + issueSuggestionInfo.setUserShowName(userInfo.getShowName()); + } + } + }); + } + } + return list; + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSuggestionDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSuggestionDao.xml index 1c3ca8ce0a..0500ec26e8 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSuggestionDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSuggestionDao.xml @@ -14,5 +14,23 @@ AND i.CREATED_BY=#{userId} - + + \ 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 255d2d30b8..2477347ac0 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 @@ -71,4 +71,16 @@ issue_id, attitude + + + \ No newline at end of file