From d912e8e02839eeaa4edca3e08c9b56f048490e12 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 9 Dec 2021 09:25:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E5=88=97=E8=A1=A8=EF=BC=8C?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E6=B2=A1=E6=9C=89=E5=88=86=E7=B1=BB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/ResiBuzzFormDTO.java | 36 ++++++++ .../com/epmet/dto/result/ResiBuzzDTO.java | 91 +++++++++++++++++++ .../epmet/dto/result/ResiBuzzResultDTO.java | 28 ++++++ .../com/epmet/controller/IssueController.java | 15 ++- .../src/main/java/com/epmet/dao/IssueDao.java | 11 +++ .../java/com/epmet/service/IssueService.java | 9 ++ .../epmet/service/impl/IssueServiceImpl.java | 48 ++++++++++ .../src/main/resources/mapper/IssueDao.xml | 30 ++++++ 8 files changed, 267 insertions(+), 1 deletion(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzFormDTO.java new file mode 100644 index 0000000000..1ee04f0858 --- /dev/null +++ b/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; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzDTO.java new file mode 100644 index 0000000000..df21741fdc --- /dev/null +++ b/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 = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzResultDTO.java new file mode 100644 index 0000000000..4f4236d2bb --- /dev/null +++ b/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 list; + + public ResiBuzzResultDTO() { + this.total = NumConstant.ZERO; + this.list = new ArrayList<>(); + } +} 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 3378abc1b4..7b1615bb4e 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,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>().ok(issueService.getUnResolvedList(formDTO)); } -// @PostMapping("resibuzz") + /** + * @Description 居民热议列表 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/12/8 3:50 下午 + */ + @PostMapping("resibuzz") + public Result resiBuzz(@RequestBody ResiBuzzFormDTO formDTO, @LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, ResiBuzzFormDTO.ResiBuzzForm.class); + return new Result().ok(issueService.resiBuzz(formDTO,tokenDto)); + } } 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 be1c4ee25b..286848eb98 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 @@ -225,4 +225,15 @@ public interface IssueDao extends BaseDao { * @return java.util.List */ List selectUnResolvedList(@Param("gridId") String gridId); + + /** + * @Description 查询表决前50名 + * @param orgId + * @param orgType + * @param status + * @author zxc + * @date 2021/12/8 4:08 下午 + */ + List selectIssueLimit50(@Param("orgId")String orgId,@Param("orgType")String orgType,@Param("status")String status); + } \ 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 af7ec1b7a5..cbd08ab274 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 @@ -350,4 +350,13 @@ public interface IssueService extends BaseService { * @return java.util.List */ List getUnResolvedList(ShiftProjectListFromDTO fromDTO); + + /** + * @Description 居民热议列表 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/12/8 3:50 下午 + */ + ResiBuzzResultDTO resiBuzz(ResiBuzzFormDTO formDTO , TokenDto tokenDto); } 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 ca52276790..740ebd13f5 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 @@ -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 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 pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectIssueLimit50(formDTO.getOrgId(), formDTO.getOrgType(), formDTO.getStatus())); + List list = pageInfo.getList(); + if (CollectionUtils.isEmpty(list)){ + return new ResiBuzzResultDTO(); + } + AtomicReference 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> 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 list = new ArrayList<>(); list.add("1"); 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 f12b363cc7..fd68a02084 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 @@ -577,4 +577,34 @@ AND ISSUE_STATUS = 'closed' AND RESOLVE_TYPE = 'unresolved' + + + \ No newline at end of file