Browse Source

议题列表,暂时没有分类名

dev_shibei_match
zxc 4 years ago
parent
commit
d912e8e028
  1. 36
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzFormDTO.java
  2. 91
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzDTO.java
  3. 28
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzResultDTO.java
  4. 15
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java
  5. 11
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java
  6. 9
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
  7. 48
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  8. 30
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml

36
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzFormDTO.java

@ -0,0 +1,36 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/12/8 3:29 下午
* @DESC
*/
@Data
public class ResiBuzzFormDTO implements Serializable {
private static final long serialVersionUID = 7477325476668438447L;
public interface ResiBuzzForm{}
private String orgId;
private String orgType;
/**
* 表决中voting 已转项目shift_project 已关闭closed全部all
*/
@NotBlank(message = "status不能为空",groups = ResiBuzzForm.class)
private String status;
@NotNull(message = "pageSize不能为空",groups = ResiBuzzForm.class)
private Integer pageSize;
@NotNull(message = "pageNo不能为空",groups = ResiBuzzForm.class)
private Integer pageNo;
}

91
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzDTO.java

@ -0,0 +1,91 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/12/8 3:37 下午
* @DESC
*/
@Data
public class ResiBuzzDTO implements Serializable {
private static final long serialVersionUID = -1844581181580474374L;
@JsonIgnore
private String createdBy;
/**
* 排序
*/
private Integer sort;
/**
* 议题标题
*/
private String issueTitle;
/**
* 议题ID
*/
private String issueId;
/**
* 建议
*/
private String suggestion;
/**
* 状态
*/
private String status;
/**
* 创建时间
*/
private String createdTime;
/**
* 支持个数
*/
private Integer supportCount;
/**
* 反对个数
*/
private Integer oppositionCount;
/**
* 表决占比
*/
private String voteAccount;
/**
* 议题发起人
*/
private String issueOriginator;
/**
* 分类名字
*/
private String categoryName;
public ResiBuzzDTO() {
this.createdBy = "";
this.sort = NumConstant.ZERO;
this.issueTitle = "";
this.issueId = "";
this.suggestion = "";
this.status = "";
this.createdTime = "";
this.supportCount = NumConstant.ZERO;
this.oppositionCount = NumConstant.ZERO;
this.voteAccount = "";
this.issueOriginator = "";
this.categoryName = "";
}
}

28
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzResultDTO.java

@ -0,0 +1,28 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxc
* @DateTime 2021/12/8 3:36 下午
* @DESC
*/
@Data
public class ResiBuzzResultDTO implements Serializable {
private static final long serialVersionUID = 4914999826185811915L;
private Integer total;
private List<ResiBuzzDTO> list;
public ResiBuzzResultDTO() {
this.total = NumConstant.ZERO;
this.list = new ArrayList<>();
}
}

15
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java

@ -1,5 +1,7 @@
package com.epmet.controller;
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.IssueDTO;
@ -284,7 +286,18 @@ public class IssueController {
return new Result<List<UnResolvedResultDTO>>().ok(issueService.getUnResolvedList(formDTO));
}
// @PostMapping("resibuzz")
/**
* @Description 居民热议列表
* @param formDTO
* @param tokenDto
* @author zxc
* @date 2021/12/8 3:50 下午
*/
@PostMapping("resibuzz")
public Result<ResiBuzzResultDTO> resiBuzz(@RequestBody ResiBuzzFormDTO formDTO, @LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(formDTO, ResiBuzzFormDTO.ResiBuzzForm.class);
return new Result<ResiBuzzResultDTO>().ok(issueService.resiBuzz(formDTO,tokenDto));
}
}

11
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java

@ -225,4 +225,15 @@ public interface IssueDao extends BaseDao<IssueEntity> {
* @return java.util.List<com.epmet.dto.result.UnResolvedResultDTO>
*/
List<UnResolvedResultDTO> selectUnResolvedList(@Param("gridId") String gridId);
/**
* @Description 查询表决前50名
* @param orgId
* @param orgType
* @param status
* @author zxc
* @date 2021/12/8 4:08 下午
*/
List<ResiBuzzDTO> selectIssueLimit50(@Param("orgId")String orgId,@Param("orgType")String orgType,@Param("status")String status);
}

9
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java

@ -350,4 +350,13 @@ public interface IssueService extends BaseService<IssueEntity> {
* @return java.util.List<com.epmet.dto.result.UnResolvedResultDTO>
*/
List<UnResolvedResultDTO> getUnResolvedList(ShiftProjectListFromDTO fromDTO);
/**
* @Description 居民热议列表
* @param formDTO
* @param tokenDto
* @author zxc
* @date 2021/12/8 3:50 下午
*/
ResiBuzzResultDTO resiBuzz(ResiBuzzFormDTO formDTO , TokenDto tokenDto);
}

48
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -9,10 +9,13 @@ import com.epmet.commons.rocketmq.messages.GroupAchievementMQMsg;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.EventEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
@ -67,6 +70,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
@ -1564,6 +1568,50 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
return resultList;
}
/**
* @Description 居民热议列表
* @param formDTO
* @param tokenDto
* @author zxc
* @date 2021/12/8 3:50 下午
*/
@Override
public ResiBuzzResultDTO resiBuzz(ResiBuzzFormDTO formDTO, TokenDto tokenDto) {
if (org.apache.commons.lang3.StringUtils.isBlank(formDTO.getOrgId())){
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
if (null == staffInfo){
throw new EpmetException("未查询到此工作人员的所属组织信息...");
}
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setOrgType(IssueConstant.ISSUE_AGENCY);
}
PageInfo<ResiBuzzDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectIssueLimit50(formDTO.getOrgId(), formDTO.getOrgType(), formDTO.getStatus()));
List<ResiBuzzDTO> list = pageInfo.getList();
if (CollectionUtils.isEmpty(list)){
return new ResiBuzzResultDTO();
}
AtomicReference<Integer> no = new AtomicReference<>((formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize() + NumConstant.ONE);
ResiBuzzResultDTO result = new ResiBuzzResultDTO();
UserResiInfoListFormDTO userResiInfoListFormDTO = new UserResiInfoListFormDTO();
userResiInfoListFormDTO.setUserIdList(list.stream().map(ResiBuzzDTO::getCreatedBy).collect(Collectors.toList()));
Result<List<UserResiInfoResultDTO>> usersResult = epmetUserFeignClient.getUserResiInfoList(userResiInfoListFormDTO);
if (!usersResult.success()){
throw new EpmetException("查询人员姓名失败...");
}
Integer total = Integer.valueOf(String.valueOf(pageInfo.getTotal()));
result.setTotal(total > NumConstant.FIFTY ? NumConstant.FIFTY : total);
list.forEach(l -> {
l.setSort(no.getAndSet(no.get() + NumConstant.ONE));
usersResult.getData().forEach(u -> {
if (l.getCreatedBy().equals(u.getUserId())){
l.setIssueOriginator(u.getShowName());
}
});
});
result.setList(list);
return result;
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");

30
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml

@ -577,4 +577,34 @@
AND ISSUE_STATUS = 'closed'
AND RESOLVE_TYPE = 'unresolved'
</select>
<!-- 查询表决前50名 -->
<select id="selectIssueLimit50" resultType="com.epmet.dto.result.ResiBuzzDTO">
SELECT
i.ID AS issueId,
i.ISSUE_TITLE,
i.SUGGESTION,
i.CREATED_BY,
(CASE WHEN i.ISSUE_STATUS = 'shift_project' THEN '已转项目'
WHEN i.ISSUE_STATUS = 'voting' THEN '表决中'
WHEN i.ISSUE_STATUS = 'closed' THEN '已关闭'
ELSE '表决中' END ) AS `status`,
i.CREATED_TIME,
s.SUPPORT_COUNT,
s.OPPOSITION_COUNT,
CONCAT(s.SUPPORT_COUNT + s.OPPOSITION_COUNT,'/',s.VOTABLE_COUNT) AS voteAccount
FROM issue i
LEFT JOIN issue_vote_statistical s ON (s.ISSUE_ID = i.ID AND s.DEL_FLAG = '0')
WHERE i.DEL_FLAG = '0'
<if test='status != "all" '>
AND i.ISSUE_STATUS = #{status}
</if>
<if test='orgType == "grid" '>
AND i.GRID_ID = #{orgId}
</if>
<if test='orgType == "agency" '>
AND i.ORG_ID_PATH LIKE CONCAT('%',#{orgId})
</if>
ORDER BY (s.SUPPORT_COUNT + s.OPPOSITION_COUNT) DESC,i.created_time DESC
</select>
</mapper>
Loading…
Cancel
Save