Browse Source

居民端-对议题发表建议-建议列表查询

dev_shibei_match
yinzuomei 5 years ago
parent
commit
b3341fb798
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  2. 3
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java
  3. 55
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueSuggestionResDTO.java
  4. 17
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java
  5. 11
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSuggestionDao.java
  6. 11
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java
  7. 12
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java
  8. 68
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSuggestionServiceImpl.java
  9. 20
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSuggestionDao.xml
  10. 12
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml

2
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, "您还未进入指定的签到范围~"),
// 活动报名失败,弹窗:志愿者认证

3
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;

55
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;
}

17
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<SaveIssueSuggestionResultDTO>().ok(resultDTO);
}
/**
* @param formDTO
* @author yinzuomei
* @description 议题建议列表
* @Date 2020/11/18 14:15
**/
@PostMapping("list")
public Result<List<IssueSuggestionResDTO>> listIssueSug(@RequestBody EvaluationListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
List<IssueSuggestionResDTO> list = issueSuggestionService.listIssueSug(formDTO);
return new Result<List<IssueSuggestionResDTO>>().ok(list);
}
}

11
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<IssueSuggestionEntity> {
* @Date 2020/11/18 10:12
**/
IssueSuggestionDTO selectUserIssueSuggestion(UserIssueSuggestionFormDTO formDTO);
/**
* @param issueId
* @author yinzuomei
* @description 查询议题建议
* @Date 2020/11/18 14:27
**/
List<IssueSuggestionResDTO> selectListIssueSugByIssueId(String issueId);
}

11
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<IssueVoteDetailEntity> {
List<IssueAttitudeCountResultDTO> getVotingCountList(@Param("ids")Set<String> ids, @Param("attitude")String attitude);
List<IssueAttitudeCountResultDTO> getVotingSummaryList(@Param("ids")Set<String> 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);
}

12
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<IssueSuggestionEntit
* @Date 2020/11/18 13:16
**/
SaveIssueSuggestionResultDTO saveIssueSuggestion(IssueSuggestionDTO dto);
/**
* @param formDTO
* @author yinzuomei
* @description 议题建议列表
* @Date 2020/11/18 14:16
**/
List<IssueSuggestionResDTO> listIssueSug(EvaluationListFormDTO formDTO);
}

68
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<IssueSuggestionD
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@Autowired
private IssueVoteDetailDao issueVoteDetailDao;
/**
* @param formDTO
* @author yinzuomei
@ -75,6 +93,11 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl<IssueSuggestionD
**/
@Override
public SaveIssueSuggestionResultDTO saveIssueSuggestion(IssueSuggestionDTO dto) {
//是否表决过
IssueVoteDetailDTO issueVoteDetailDTO = issueVoteDetailDao.selectUserIssueDet(dto.getCreatedBy(), dto.getIssueId());
if(null==issueVoteDetailDTO){
throw new RenException(EpmetErrorCode.VOTE_ISSUE_PLEASE.getCode());
}
//校验建议内容
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
@ -83,7 +106,7 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl<IssueSuggestionD
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> 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<IssueSuggestionD
return resultDTO;
}
/**
* @param formDTO
* @author yinzuomei
* @description 议题建议列表
* @Date 2020/11/18 14:16
**/
@Override
public List<IssueSuggestionResDTO> listIssueSug(EvaluationListFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<IssueSuggestionResDTO> list = baseDao.selectListIssueSugByIssueId(formDTO.getIssueId());
//用户信息公开的userId集合
Set<String> 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<List<UserResiInfoResultDTO>> userInfoRes = epmetUserFeignClient.getUserResiInfoList(new UserResiInfoListFormDTO(new ArrayList<>(userIds)));
if (userInfoRes.success() && !CollectionUtils.isEmpty(userInfoRes.getData())) {
Map<String, UserResiInfoResultDTO> 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;
}
}

20
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSuggestionDao.xml

@ -14,5 +14,23 @@
AND i.CREATED_BY=#{userId}
</select>
<!-- 查询议题建议 -->
<select id="selectListIssueSugByIssueId" resultType="com.epmet.dto.result.IssueSuggestionResDTO">
SELECT
ig.id AS suggestionId,
ig.SUGGESTION,
ig.CREATED_TIME AS publishTime,
ig.PUBLIC_FLAG AS publicFlag,
'' AS headPhoto,
'' AS userShowName,
'' AS aititude,
ig.CREATED_BY AS userId
FROM
issue_suggestion ig
WHERE
ig.DEL_FLAG = '0'
AND ig.ISSUE_ID =#{issueId}
ORDER BY
ig.CREATED_TIME DESC
</select>
</mapper>

12
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml

@ -71,4 +71,16 @@
issue_id,
attitude
</select>
<!-- 查询用户对某个议题的表决信息 -->
<select id="selectUserIssueDet" parameterType="map" resultType="com.epmet.dto.IssueVoteDetailDTO">
SELECT
*
FROM
issue_vote_detail ivd
WHERE
ivd.DEL_FLAG = '0'
AND ivd.ISSUE_ID =#{issueId}
AND ivd.CREATED_BY =#{userId}
</select>
</mapper>
Loading…
Cancel
Save