From 492326b041dd4590fd57fc758b41baf341ef7898 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 22 May 2020 11:07:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E8=A1=A8=E5=86=B3=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisUtils.java | 19 ++ .../dto/form/CommonGridIdListFormDTO.java | 19 ++ .../dto/result/GridVotableCountResultDTO.java | 19 ++ .../result/IssueAttitudeCountResultDTO.java | 19 ++ .../com/epmet/constant/IssueConstant.java | 15 ++ .../src/main/java/com/epmet/dao/IssueDao.java | 10 + .../com/epmet/dao/IssueVoteDetailDao.java | 25 ++ .../epmet/dao/IssueVoteStatisticalDao.java | 28 +++ .../com/epmet/feign/ResiGroupFeignClient.java | 24 +- .../ResiGroupFeignClientFallBack.java | 13 + .../com/epmet/redis/IssueVoteDetailRedis.java | 122 ++++++++++ .../java/com/epmet/service/IssueService.java | 10 + .../epmet/service/IssueVoteDetailService.java | 12 + .../service/IssueVoteStatisticalService.java | 27 ++ .../epmet/service/impl/IssueServiceImpl.java | 12 + .../impl/IssueVoteDetailServiceImpl.java | 13 + .../impl/IssueVoteStatisticalServiceImpl.java | 230 ++++++++++++++++-- .../src/main/resources/mapper/IssueDao.xml | 12 + .../resources/mapper/IssueVoteDetailDao.xml | 36 +++ .../mapper/IssueVoteStatisticalDao.xml | 45 ++++ .../dto/member/form/CommonGridIdFormDTO.java | 25 ++ .../member/form/CommonGridIdListFormDTO.java | 19 ++ .../result/GridVotableCountResultDTO.java | 19 ++ .../epmet/modules/group/dao/ResiGroupDao.java | 10 + .../group/service/ResiGroupService.java | 10 + .../service/impl/ResiGroupServiceImpl.java | 27 +- .../controller/ResiGroupMemberController.java | 32 ++- .../service/ResiGroupMemberService.java | 10 + .../impl/ResiGroupMemberServiceImpl.java | 30 +++ .../epmet/modules/utils/ModuleConstant.java | 2 + .../resources/mapper/group/ResiGroupDao.xml | 14 ++ 31 files changed, 875 insertions(+), 33 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdListFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GridVotableCountResultDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueAttitudeCountResultDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/CommonGridIdFormDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/CommonGridIdListFormDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GridVotableCountResultDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java index 921a7e5576..9d4fb263cb 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java @@ -241,4 +241,23 @@ public class RedisUtils { Long count = entityIdCounter.decrementAndGet(); return count; } + + /** + * @Description 对hash数据某一的属性进行递增操作 + * @param key + * @param field + * @param delta + * @return + * @author wangc + * @date 2020.05.21 15:42 + **/ + public Map hincrby(String key,String field,Long delta){ + //hincrby + Long count = redisTemplate.opsForHash().increment(key,field,delta); + if(count == -1){ + return null; + }else{ + return hGetAll(key); + } + } } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdListFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdListFormDTO.java new file mode 100644 index 0000000000..676334e563 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdListFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description 网格IdList + * @ClassName CommonGridIdListFormDTO + * @Auth wangc + * @Date 2020-05-22 09:17 + */ +@Data +public class CommonGridIdListFormDTO implements Serializable { + private static final long serialVersionUID = 3188828578545996470L; + + private List gridIds; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GridVotableCountResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GridVotableCountResultDTO.java new file mode 100644 index 0000000000..ff4a0af7cb --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GridVotableCountResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Map; + +/** + * @Description 网格的应表决数 + * @ClassName GridVotableCountResultDTO + * @Auth wangc + * @Date 2020-05-22 09:18 + */ +@Data +public class GridVotableCountResultDTO implements Serializable { + private static final long serialVersionUID = 5621545224177991150L; + + Map votableCountMap; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueAttitudeCountResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueAttitudeCountResultDTO.java new file mode 100644 index 0000000000..acbe48b9be --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueAttitudeCountResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 议题Id和表决态度的数量 + * @ClassName IssueAttitudeCountResultDTO + * @Auth wangc + * @Date 2020-05-22 01:19 + */ +@Data +public class IssueAttitudeCountResultDTO implements Serializable { + private static final long serialVersionUID = 4471863386031944261L; + private String issueId; + private Integer count; + private String attitude; +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java index 04a4bcbef2..ce2e5cc3d0 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java @@ -64,4 +64,19 @@ public interface IssueConstant { String OPPOSE = "opposition"; String REDIS_KEY = "epmet:issue:"; + + /** + * 议题表决缓存属性值 supportAmount + * */ + String CACHE_ATTRIBUTE_SUPPORT_AMOUNT = "supportAmount"; + + /** + * 议题表决缓存属性值 oppositionAmount + * */ + String CACHE_ATTRIBUTE_OPPOSITION_AMOUNT = "oppositionAmount"; + + /** + * 议题表决缓存属性值 shouldVoteCount + * */ + String CACHE_ATTRIBUTE_SHOULD_VOTE_COUNT = "shouldVoteCount"; } 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 f616afaa1d..2281440a2d 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 @@ -33,6 +33,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * 议题详情 关联话题,转议题时间必须要和话题转议题时间一致、关闭时间必须要和操作记录表的关闭记录时间一致、转项目时间必须要和项目记录生成时间一致,注意服务间调用的时间一致性。每个议题最后总会被关闭。 @@ -117,4 +118,13 @@ public interface IssueDao extends BaseDao { * @date 2020.05.19 15:00 **/ List getIssueVotingStatistical(); + + /** + * @Description 条件查询出符合指定条件的议题ID集合 + * @param issueDTO + * @return Set + * @author wangc + * @date 2020.05.22 00:36 + **/ + Set selectIssueIdsByCondition(IssueDTO issueDTO); } \ 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 2fc8b4ee66..930e16e88e 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 @@ -19,9 +19,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.VoteFormDTO; +import com.epmet.dto.result.IssueAttitudeCountResultDTO; import com.epmet.entity.IssueVoteDetailEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; import java.util.Set; /** @@ -48,4 +51,26 @@ public interface IssueVoteDetailDao extends BaseDao { * @date 2020.05.20 10:52 **/ Set getAttitudes(); + + /** + * @Description 得到某个议题某个态度的表决数 + * @param issueId + * @param attitude + * @return int + * @author wangc + * @date 2020.05.21 17:16 + **/ + int getVotingCount(@Param("issueId")String issueId,@Param("attitude")String attitude); + + /** + * @Description 批量查找议题某个态度的表决数 + * @param ids + * @param attitude + * @return List + * @author wangc + * @date 2020.05.22 01:14 + **/ + List getVotingCountList(@Param("ids")Set ids, @Param("attitude")String attitude); + + List getVotingSummaryList(@Param("ids")Set ids); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java index d20d18f501..1b69606b76 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueVoteStatisticalDTO; import com.epmet.dto.PolyLineDTO; import com.epmet.dto.form.IssueIdFormDTO; import com.epmet.dto.result.VoteResultDTO; @@ -27,6 +28,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * 议题表决统计表 @@ -66,4 +68,30 @@ public interface IssueVoteStatisticalDao extends BaseDao polyLineData(IssueIdFormDTO issueId); + /** + * @Description 得到表决中的议题 来进行缓存与数据库的同步 + * @param + * @return + * @author wangc + * @date 2020.05.21 14:45 + **/ + List getVotingIssuesStatisticalForSync(); + + /** + * @Description 通过IssueId获取 + * @param issueId + * @return IssueVoteStatisticalDTO + * @author wangc + * @date 2020.05.21 16:33 + **/ + IssueVoteStatisticalDTO selectByIssueId(@Param("issueId")String issueId); + + /** + * @Description 得到指定Id的统计数据 + * @param ids + * @return List + * @author wangc + * @date 2020.05.22 00:49 + **/ + List selectListByIds(@Param("ids") Set ids); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java index 59fd426b87..f183a30fea 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java @@ -3,10 +3,11 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.CheckTopicPublisherFormDTO; +import com.epmet.dto.form.CommonGridIdFormDTO; +import com.epmet.dto.form.CommonGridIdListFormDTO; import com.epmet.dto.form.ShouldVoteCountFormDTO; -import com.epmet.dto.form.VoteFormDTO; -import com.epmet.dto.result.AgencyGridResultDTO; import com.epmet.dto.result.CheckTopicPublisherResultDTO; +import com.epmet.dto.result.GridVotableCountResultDTO; import com.epmet.dto.result.ShouldVoteCountResultDTO; import com.epmet.feign.fallback.ResiGroupFeignClientFallBack; import com.epmet.resi.group.dto.topic.ResiTopicDTO; @@ -59,4 +60,23 @@ public interface ResiGroupFeignClient { @PostMapping("/resi/group/topic/checktopicpublisher") Result checkTopicPublisher(@RequestBody CheckTopicPublisherFormDTO formDTO); + /** + * @Description 得到一个网格下的应表数 + * @param gridIdFormDTO + * @return Result + * @author wangc + * @date 2020.05.21 15:12 + **/ + @PostMapping("/resi/group/member/votablecount") + Result votableCount(@RequestBody CommonGridIdFormDTO gridIdFormDTO); + + /** + * @Description 根据网格Id列表查询网格下所有加入组的组员 + * @param gridList + * @return Result + * @author wangc + * @date 2020.05.22 10:12 + **/ + @PostMapping("votablecounts") + Result votableCounts(@RequestBody CommonGridIdListFormDTO gridList); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java index a822a0c4b7..17f837c63d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java @@ -4,9 +4,12 @@ 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.form.CheckTopicPublisherFormDTO; +import com.epmet.dto.form.CommonGridIdFormDTO; +import com.epmet.dto.form.CommonGridIdListFormDTO; import com.epmet.dto.form.ShouldVoteCountFormDTO; import com.epmet.dto.result.AgencyGridResultDTO; import com.epmet.dto.result.CheckTopicPublisherResultDTO; +import com.epmet.dto.result.GridVotableCountResultDTO; import com.epmet.dto.result.ShouldVoteCountResultDTO; import com.epmet.feign.ResiGroupFeignClient; import com.epmet.resi.group.dto.topic.ResiTopicDTO; @@ -39,4 +42,14 @@ public class ResiGroupFeignClientFallBack implements ResiGroupFeignClient { public Result checkTopicPublisher(CheckTopicPublisherFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "checkTopicPublisher", formDTO); } + + @Override + public Result votableCount(CommonGridIdFormDTO gridIdFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "votableCount", gridIdFormDTO); + } + + @Override + public Result votableCounts(CommonGridIdListFormDTO gridList) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "votableCounts", gridList); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java index f36c091e64..4ede4ec940 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java @@ -20,8 +20,20 @@ package com.epmet.redis; import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.constant.IssueConstant; +import com.epmet.dto.IssueDTO; +import com.epmet.dto.IssueVoteStatisticalDTO; +import com.epmet.dto.form.CommonGridIdFormDTO; import com.epmet.dto.form.VoteRedisFormDTO; +import com.epmet.entity.IssueVoteStatisticalEntity; +import com.epmet.feign.ResiGroupFeignClient; +import com.epmet.service.IssueService; +import com.epmet.service.IssueVoteDetailService; +import com.epmet.service.IssueVoteStatisticalService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -36,13 +48,29 @@ import java.util.Map; */ @Component public class IssueVoteDetailRedis { + protected static final Logger logger = LoggerFactory.getLogger(IssueVoteDetailRedis.class); + @Autowired private RedisUtils redisUtils; + @Autowired + private IssueVoteStatisticalService issueVoteStatisticalService; + + @Autowired + private ResiGroupFeignClient resiGroupFeignClient; + + @Autowired + private IssueService issueService; + + @Autowired + private IssueVoteDetailService issueVoteDetailService; + public void delete(Object[] ids) { } + + public void set(VoteRedisFormDTO vote){ String key = IssueConstant.REDIS_KEY +vote.getIssueId(); //bean to map @@ -90,4 +118,98 @@ public class IssueVoteDetailRedis { return t; } + /** + * @Description 表决 + * @param issueId + * @param attitude + * @return VoteRedisFormDTO + * @author wangc + * @date 2020.05.21 16:26 + **/ + public VoteRedisFormDTO vote(String issueId,String attitude){ + Map objectMap = redisUtils.hincrby( + new StringBuilder(IssueConstant.REDIS_KEY).append(issueId).toString(), + StringUtils.equals(IssueConstant.SUPPORT,attitude) ? IssueConstant.CACHE_ATTRIBUTE_SUPPORT_AMOUNT + : IssueConstant.CACHE_ATTRIBUTE_OPPOSITION_AMOUNT, + NumConstant.ONE_L); + if(null != objectMap && objectMap.size() > NumConstant.ZERO){ + return mapToEntity(objectMap, VoteRedisFormDTO.class); + } + //如果缓存中无相应数据,去投票详情表中计算出实时的数据放入缓存 + //无需查询issue_vote_statistical中的数据,因为不是实时数据,可能不准确,有定时任务会自动同步 + VoteRedisFormDTO voteCache = new VoteRedisFormDTO(); + voteCache.setIssueId(issueId); + voteCache.setOppositionAmount( + StringUtils.equals(IssueConstant.SUPPORT,attitude) ? + issueVoteDetailService.getVotingCount(issueId,IssueConstant.OPPOSE) : + issueVoteDetailService.getVotingCount(issueId,IssueConstant.OPPOSE) + NumConstant.ONE + ); + + voteCache.setSupportAmount( + StringUtils.equals(IssueConstant.SUPPORT,attitude) ? + issueVoteDetailService.getVotingCount(issueId,IssueConstant.SUPPORT) + NumConstant.ONE : + issueVoteDetailService.getVotingCount(issueId,IssueConstant.SUPPORT) + ); + + IssueDTO issue = issueService.get(issueId); + if(null != issue){ + CommonGridIdFormDTO gridId = new CommonGridIdFormDTO(); + gridId.setGridId(issue.getGridId()); + Result votableCount = + resiGroupFeignClient.votableCount(gridId); + if(votableCount.success() && null != votableCount.getData()){ + voteCache.setShouldVoteCount(votableCount.getData()); + }else{ + voteCache.setShouldVoteCount(NumConstant.ONE); + } + }else{ + //如果没有该议题,终止所有操作 + logger.warn(String.format("找不到指定Id的议题,Id:【%s】",issueId)); + return null; + } + + set(voteCache); + + return voteCache; + } + + /** + * @Description 根据issueId去缓存取表决统计数据,如果没有去数据库查询并放入缓存 + * @param issueId + * @return + * @author wangc + * @date 2020.05.21 22:31 + **/ + public VoteRedisFormDTO getVoteStatistical(String issueId){ + String key = new StringBuilder(IssueConstant.REDIS_KEY).append(issueId).toString(); + Map stringObjectMap = redisUtils.hGetAll(key); + if ( null != stringObjectMap && stringObjectMap.size() > NumConstant.ZERO ){ + return mapToEntity(stringObjectMap, VoteRedisFormDTO.class); + } + //如果缓存中没有,去表决详情中计算出实时数据,并放入缓存中 + //无需查询issue_vote_statistical中的数据,因为不是实时数据,可能不准确,有定时任务会自动同步 + VoteRedisFormDTO voteCache = new VoteRedisFormDTO(); + + voteCache.setSupportAmount(issueVoteDetailService.getVotingCount(issueId,IssueConstant.SUPPORT)); + voteCache.setOppositionAmount(issueVoteDetailService.getVotingCount(issueId,IssueConstant.OPPOSE)); + IssueDTO issue = issueService.get(issueId); + if(null != issue){ + CommonGridIdFormDTO gridId = new CommonGridIdFormDTO(); + gridId.setGridId(issue.getGridId()); + Result votableCount = + resiGroupFeignClient.votableCount(gridId); + if(votableCount.success() && null != votableCount.getData()){ + voteCache.setShouldVoteCount(votableCount.getData()); + }else{ + voteCache.setShouldVoteCount(NumConstant.ZERO); + } + set(voteCache); + return voteCache; + }else{ + logger.warn(String.format("找不到指定Id的议题,Id:【%s】",issueId)); + return null; + } + } + + } \ 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 d0010e9bd7..c2b032c045 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 @@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Map; +import java.util.Set; /** * @Author zxc @@ -197,4 +198,13 @@ public interface IssueService extends BaseService { * @date 2020.05.14 10:33 **/ List closedListGov(CommonIssueListFormDTO issueListForm); + + /** + * @Description 条件查询出符合指定条件的议题ID集合 + * @param issueDTO + * @return Set + * @author wangc + * @date 2020.05.22 00:36 + **/ + Set getIssueIdsByCondition(IssueDTO issueDTO); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteDetailService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteDetailService.java index e62b795bbb..61681bdfb0 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteDetailService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteDetailService.java @@ -24,6 +24,7 @@ import com.epmet.dto.form.CheckVoteFormDTO; import com.epmet.dto.form.VoteFormDTO; import com.epmet.dto.result.JoinVoteResultDTO; import com.epmet.entity.IssueVoteDetailEntity; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -109,4 +110,15 @@ public interface IssueVoteDetailService extends BaseService evaluationList(EvaluationListFormDTO formDTO); + + /** + * @Description 将所有表决中的投票数从缓存同步到数据库,要进行数据对比,若数据一致无需更新 + * @param + * @return + * @author wangc + * @date 2020.05.21 09:07 + **/ + void syncVotingCacheToDb(); + + /** + * @Description 对指定的issueId的议题表决统计数缓存与Db同步 + * @param issueId + * @return + * @author wangc + * @date 2020.05.21 09:09 + **/ + void syncVotingCacheToDbByIssueId(String issueId); + + /** + * @Description 通过IssueId获取 + * @param issueId + * @return IssueVoteStatisticalDTO + * @author wangc + * @date 2020.05.21 16:33 + **/ + IssueVoteStatisticalDTO getByIssueId(String issueId); } \ No newline at end of file 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 683ebb5560..357e86f532 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 @@ -588,4 +588,16 @@ public class IssueServiceImpl extends BaseServiceImpl imp return baseDao.selectClosedListGov(issueListForm); } + /** + * @Description 条件查询出符合指定条件的议题ID集合 + * @param issueDTO + * @return Set + * @author wangc + * @date 2020.05.22 00:36 + **/ + @Override + public Set getIssueIdsByCondition(IssueDTO issueDTO) { + return baseDao.selectIssueIdsByCondition(issueDTO); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java index 071762343e..9eb5984cc9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java @@ -187,5 +187,18 @@ public class IssueVoteDetailServiceImpl extends BaseServiceImpl page(Map params) { @@ -98,8 +99,8 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); @@ -135,19 +136,19 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl polyLineDTOS = issueVoteStatisticalDao.polyLineData(issueId); PolyLineDTO polyLineDTO = new PolyLineDTO(); polyLineDTO.setVoteDate(LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"))); //今天刚转项目或刚刚关闭,当天数据DB没有,直接从缓存拿 - if (polyLineDTOS.size()==NumConstant.ZERO){ + if (polyLineDTOS.size() == NumConstant.ZERO) { polyLineDTO.setSupportIncrement(voteRedisFormDTO.getSupportAmount()); polyLineDTO.setOppositionIncrement(voteRedisFormDTO.getOppositionAmount()); polyLineDTOS.add(polyLineDTO); - }else { + } else { //折线数据=DB String date = issueDao.operateTime(issueId.getIssueId()); if (date.equals(LocalDate.now().toString())) { @@ -198,8 +199,8 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl data = issueSatisfactionDetailDao.evaluationList(formDTO); - if (data.size()==NumConstant.ZERO||data==null){ + if (data.size() == NumConstant.ZERO || data == null) { return new ArrayList<>(); } //获取头像和昵称 eg:山东路168号-周先生 @@ -228,4 +229,181 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl issues = + issueDao.selectIssueIdsByCondition(issueParam); + if(null == issues || issues.size()< NumConstant.ONE){ + return; + } + Set ids = issues.stream().map(IssueDTO::getId).collect(Collectors.toSet()); + + + List gridIds = issues.stream().map(IssueDTO::getGridId).collect(Collectors.toList()); + CommonGridIdListFormDTO gridIdList = new CommonGridIdListFormDTO(); + gridIdList.setGridIds(gridIds); + Result votableCountResult = resiGroupFeignClient.votableCounts(gridIdList); + Map votableCountMap = null; + if(votableCountResult.success() && null != votableCountResult.getData() && null != votableCountResult.getData().getVotableCountMap()){ + votableCountMap = votableCountResult.getData().getVotableCountMap(); + } + + List statisticalList = + baseDao.selectListByIds(ids); + if (null != statisticalList && statisticalList.size() > NumConstant.ZERO) { + List statisiticalIds = statisticalList.stream().map(vote -> vote.getIssueId()).collect(Collectors.toList()); + + if (ids.size() > statisiticalIds.size()) { + //差集 + Set notExistedIds = new HashSet(); + notExistedIds.addAll(ids); + notExistedIds.removeAll(statisiticalIds); + + //更新 + //TODO 对ids进行更新 - 从缓存中拿取 + + if (notExistedIds.size() > NumConstant.ZERO) { + //新增 + List toInsert = new ArrayList<>(); + + List summaryList = issueVoteDetailDao.getVotingSummaryList(ids); + Map> summaryMap = + summaryList.stream().collect(Collectors.groupingBy(IssueAttitudeCountResultDTO::getIssueId)); + for (Map.Entry> entry : summaryMap.entrySet()) { + IssueVoteStatisticalDTO obj = new IssueVoteStatisticalDTO(); + obj.setIssueId(entry.getKey()); + List v = entry.getValue(); + if (v.size() > NumConstant.ONE) { + v.forEach(dto -> { + if (StringUtils.equals(ModuleConstants.ISSUE_VOTING_ATTITUDE_SUPPORT, dto.getAttitude())) { + obj.setSupportCount(dto.getCount()); + } else { + obj.setOppositionCount(dto.getCount()); + } + }); + } else { + + if (StringUtils.equals(ModuleConstants.ISSUE_VOTING_ATTITUDE_SUPPORT, v.get(0).getAttitude())) { + obj.setSupportCount(v.get(0).getCount()); + obj.setOppositionCount(NumConstant.ZERO); + } else { + obj.setOppositionCount(v.get(0).getCount()); + obj.setSupportCount(NumConstant.ZERO); + } + } + toInsert.add(obj); + } + + Set setToInsert = toInsert.stream().map(IssueVoteStatisticalDTO::getIssueId).collect(Collectors.toSet()); + + Set issuesNeverVotedIds = new HashSet(); + issuesNeverVotedIds.addAll(ids); + issuesNeverVotedIds.removeAll(setToInsert); + List summary = toInsert; + if (issuesNeverVotedIds.size() > NumConstant.ZERO) { + List toInsert2 = new ArrayList<>(); + toInsert2 = issuesNeverVotedIds.stream().map(id -> { + IssueVoteStatisticalDTO dto = new IssueVoteStatisticalDTO(); + dto.setOppositionCount(NumConstant.ZERO); + dto.setSupportCount(NumConstant.ZERO); + return dto; + }).collect(Collectors.toList()); + + summary = Stream.of(toInsert, toInsert2) + .flatMap(Collection::stream) + .distinct() + .collect(Collectors.toList()); + } + + //TODO 批量查找collect的votableCount + + //TODO 批量插入 + } + } + else if (ids.size() < statisiticalIds.size()) { + //统计数大于议题数,数据出错 + //找出多余数据,删除 + + //差集 + Set redundantIds = new HashSet(); + redundantIds.addAll(statisiticalIds); + redundantIds.removeAll(ids); + //将redundantIds的议题统计信息删除 + + //因为statisiticalIds是通过ids查询出,因此不会出现这种情况 + } else { + //数据吻合,全部更新 + List listToUpdate = new ArrayList<>(); + Map> gridIssueMap = + issues.stream().collect(Collectors.groupingBy(IssueDTO::getGridId); + + + for(Map.Entry> entry : gridIssueMap.entrySet()){ + String k = entry.getKey(); + List v = entry.getValue(); + for(IssueDTO issue : v){ + IssueVoteStatisticalDTO vote = new IssueVoteStatisticalDTO(); + vote.setIssueId(issue.getId()); + VoteRedisFormDTO cache = issueVoteDetailRedis.get(issue.getId()); + if(null == cache) + continue; + vote.setSupportCount(cache.getSupportAmount()); + vote.setOppositionCount(cache.getOppositionAmount()); + vote.setVotableCount( null == votableCountMap ? + NumConstant.ZERO : + null == votableCountMap.get(k) ? NumConstant.ZERO : votableCountMap.get(k) + ); + //if(cache.get) + } + + } + + + + + } + + }else{ + //ids中的议题没有任何统计信息 - 全部添加 + //TODO 根据ids去缓存中取值 + + } + + + } + + /** + * @Description 对指定的issueId的议题表决统计数缓存与Db同步 + * @param issueId + * @return + * @author wangc + * @date 2020.05.21 09:09 + **/ + @Override + public void syncVotingCacheToDbByIssueId(String issueId) { + + } + + /** + * @Description 通过IssueId获取 + * @param issueId + * @return IssueVoteStatisticalDTO + * @author wangc + * @date 2020.05.21 16:33 + **/ + @Override + public IssueVoteStatisticalDTO getByIssueId(String issueId) { + return baseDao.selectByIssueId(issueId); + } + } \ No newline at end of file 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 71686b52cf..a9d08ebf1b 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 @@ -324,5 +324,17 @@ + + \ 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 62e0ed265a..255d2d30b8 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 @@ -35,4 +35,40 @@ FROM ISSUE_VOTE_DETAIL + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml index c12c1ab45b..d33b80f991 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml @@ -69,4 +69,49 @@ ORDER BY statistical_date ASC + + + + + + + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/CommonGridIdFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/CommonGridIdFormDTO.java new file mode 100644 index 0000000000..a71dbe8e60 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/CommonGridIdFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.resi.group.dto.member.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description + * @ClassName CommonGridIdFormDTO + * @Author wangc + * @date 2020.04.24 14:17 + */ +@Data +public class CommonGridIdFormDTO implements Serializable { + private static final long serialVersionUID = 2496019865436084805L; + + /** + * 网格Id + * */ + @NotBlank(message = "网格Id不能为空") + private String gridId; + + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/CommonGridIdListFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/CommonGridIdListFormDTO.java new file mode 100644 index 0000000000..fa8f8deed1 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/CommonGridIdListFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.resi.group.dto.member.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description 网格IdList + * @ClassName CommonGridIdListFormDTO + * @Auth wangc + * @Date 2020-05-22 09:17 + */ +@Data +public class CommonGridIdListFormDTO implements Serializable { + private static final long serialVersionUID = 3188828578545996470L; + + private List gridIds; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GridVotableCountResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GridVotableCountResultDTO.java new file mode 100644 index 0000000000..227f55c721 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GridVotableCountResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.resi.group.dto.member.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Map; + +/** + * @Description 网格的应表决数 + * @ClassName GridVotableCountResultDTO + * @Auth wangc + * @Date 2020-05-22 09:18 + */ +@Data +public class GridVotableCountResultDTO implements Serializable { + private static final long serialVersionUID = 5621545224177991150L; + + Map votableCountMap; +} 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 875163b278..aaaa8a11e8 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 @@ -19,6 +19,7 @@ package com.epmet.modules.group.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.group.entity.ResiGroupEntity; +import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; @@ -162,4 +163,13 @@ public interface ResiGroupDao extends BaseDao { * @author zxc */ ShouldVoteCountResultDTO shouldVoteCount(ShouldVoteCountFormDTO formDTO); + + /** + * @Description 根据网格IdList查询小组信息 + * @param gridIds + * @return List + * @author wangc + * @date 2020.05.22 09:54 + **/ + List selectGroupListByGridIds(@Param("gridIds") List gridIds); } 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 5859f46243..d49ef6b348 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 @@ -30,6 +30,7 @@ import com.epmet.resi.group.dto.group.result.*; import java.util.List; import java.util.Map; +import java.util.Set; /** * 群组信息表 @@ -261,6 +262,15 @@ public interface ResiGroupService extends BaseService { **/ List getGroupIdByGridId(String gridId); + /** + * @Description 返回 Map> + * @param gridIdList + * @return Map> + * @author wangc + * @date 2020.05.22 09:27 + **/ + Map> getGroupIdsByGridIdList(List gridIdList); + /** * @Description 校验用户是否加入小组 * @param gridId 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 5a9950f577..e0cb4e4299 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 @@ -72,6 +72,7 @@ import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * 群组信息表 @@ -508,7 +509,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl> + * @param gridIdList + * @return Map> + * @author wangc + * @date 2020.05.22 09:27 + **/ + @Override + public Map> getGroupIdsByGridIdList(List gridIdList) { + if(null == gridIdList || gridIdList.size() < NumConstant.ONE) + return null; + Map> result = new HashMap<>(); + List groups = new ArrayList<>(); + Map> groupMap + = groups.stream().collect(Collectors.groupingBy(ResiGroupDTO::getGridId)); + groupMap.forEach((k,v)->{ + Set groupIds = + v.stream().map(ResiGroupDTO::getId).collect(Collectors.toSet()); + result.put(k,groupIds); + }); + + return result; + } + /** * @Description 校验用户是否加入小组 * @param gridId diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java index dd324b39a8..8d31858bff 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java @@ -24,12 +24,11 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.modules.member.service.ResiGroupMemberService; import com.epmet.resi.group.dto.member.form.*; 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; +import oracle.jdbc.proxy.annotation.Post; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; import java.util.List; @@ -160,4 +159,29 @@ public class ResiGroupMemberController { return resiGroupMemberService.slientMember(slientMemberFormDTO); } + /** + * @Description 得到一个网格下的应表决数 + * @param gridIdFormDTO + * @return Result + * @author wangc + * @date 2020.05.21 15:03 + **/ + @PostMapping(value = "votablecount") + public Result votableCount(@RequestBody CommonGridIdFormDTO gridIdFormDTO){ + ValidatorUtils.validateEntity(gridIdFormDTO); + return new Result().ok(resiGroupMemberService.gridResiCount(gridIdFormDTO.getGridId())); + } + + /** + * @Description 根据网格Id列表查询网格下所有加入组的组员 + * @param gridList + * @return Result + * @author wangc + * @date 2020.05.22 10:12 + **/ + @PostMapping("votablecounts") + public Result votableCounts(@RequestBody CommonGridIdListFormDTO gridList){ + return new Result().ok(resiGroupMemberService.votableCount(gridList)); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java index 0fea515cc6..d4622b9410 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java @@ -24,6 +24,7 @@ import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.member.form.*; 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; import java.util.List; @@ -185,4 +186,13 @@ public interface ResiGroupMemberService extends BaseService votableCountMap = new HashMap<>(); + Map> gridGroups = + resiGroupService.getGroupIdsByGridIdList(gridList.getGridIds()); + gridGroups.forEach((k,v)->{ + Set set = new HashSet<>(); + v.forEach(groupId -> { + Set members = resiGroupMemberRedis.getGroupMemberIds(groupId); + if(null != members && members.size() > NumConstant.ZERO){ + set.addAll(members); + } + }); + votableCountMap.put(k,set.size()); + }); + GridVotableCountResultDTO result = new GridVotableCountResultDTO(); + result.setVotableCountMap(votableCountMap); + return result; + } + /** * @Description 将ResiGroupMemberDTO转换成ResiGroupMemberInfoRedisDTO * @Param diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java index c33c88dfbd..85610b08a2 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java @@ -209,6 +209,8 @@ public interface ModuleConstant extends Constant { * */ String RESI_GROUP_ID_CAMEL = "resiGroupId"; + String RESI_GOUP_ID = "RESI_GOUP_ID"; + /** * APP 居民端 * */ 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 cff20a3b78..4d6b33a8c5 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 @@ -322,4 +322,18 @@ AND rg.del_flag = 0 AND rg.grid_id = #{gridId} + + +