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-access/gov-access-server/deploy/docker-compose-test.yml b/epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml index be5a8d8b85..0b69d2cca9 100644 --- a/epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-access-server: container_name: gov-access-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-access-server:0.3.11 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-access-server:0.3.12 ports: - "8099:8099" network_mode: host # 使用现有网络 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/form/ShiftProjectFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ShiftProjectFormDTO.java index a405cc7fcc..cf576522ac 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ShiftProjectFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ShiftProjectFormDTO.java @@ -24,7 +24,6 @@ public class ShiftProjectFormDTO implements Serializable { @Length(max=1000,message = "公开答复内容不能超过1000位") private String publicReply; - @NotBlank(message = "内部备注不能为空") @Length(max=1000,message = "内部备注不能超过1000位") private String internalRemark; 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/deploy/docker-compose-dev.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml index f8b9fa3ca6..57eef24d9c 100644 --- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-issue-server: container_name: gov-issue-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/gov-issue-server:0.3.19 + image: 192.168.1.130:10080/epmet-cloud-dev/gov-issue-server:0.3.20 ports: - "8101:8101" network_mode: host # 使用现有网络 diff --git a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml index 0cc23a95ca..54b92306e8 100644 --- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-issue-server: container_name: gov-issue-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-issue-server:0.3.19 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-issue-server:0.3.20 ports: - "8101:8101" network_mode: host # 使用现有网络 diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml index e958d045f1..2d6eba9602 100644 --- a/epmet-module/gov-issue/gov-issue-server/pom.xml +++ b/epmet-module/gov-issue/gov-issue-server/pom.xml @@ -2,7 +2,7 @@ - 0.3.19 + 0.3.20 gov-issue com.epmet 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 9c330b89d6..d4738bfebc 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 @@ -66,4 +66,20 @@ public interface IssueConstant { String REDIS_KEY = "epmet:issue:"; String SELECT_ISSUEPROJECTRELATION_EXCEPTION = "获取议题项目关系数据失败"; + String SELECT_RESI_GROUP_EXCEPTION = "获取话题数据失败"; + + /** + * 议题表决缓存属性值 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 815d944014..8fc76e1b85 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 @@ -30,6 +30,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * 议题详情 关联话题,转议题时间必须要和话题转议题时间一致、关闭时间必须要和操作记录表的关闭记录时间一致、转项目时间必须要和项目记录生成时间一致,注意服务间调用的时间一致性。每个议题最后总会被关闭。 @@ -121,7 +122,7 @@ public interface IssueDao extends BaseDao { * @Author sun * @Description 查询客户网格下已结案项目对应的议题列表 **/ - List selectIssueList(@Param("issueIdList") List issueIdList, LatestListFormDTO latestListForm); + List selectIssueList(@Param("issueIdList") List issueIdList, @Param("latestListForm") LatestListFormDTO latestListForm); /** * @param formDTO @@ -130,4 +131,13 @@ public interface IssueDao extends BaseDao { * @Description 获取客户网格下最新议题列表 **/ List selectNewestIssueList(LatestIssueListFormDTO formDTO); + + /** + * @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/IssueProjectRelationDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectRelationDao.java index 6b1b2727be..017723d64a 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectRelationDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectRelationDao.java @@ -46,7 +46,7 @@ public interface IssueProjectRelationDao extends BaseDao selectRelationList(@Param("projectIdList") List projectIdList); 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 413a4a7ca8..b83a80dffb 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; /** * 议题表决统计表 @@ -73,4 +75,30 @@ public interface IssueVoteStatisticalDao extends BaseDao selectListByissueId(@Param("issueIdList") List issueIdList); + /** + * @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..8637cd9493 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; @@ -17,6 +18,8 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.List; + /** * @Description 调用resi-group服务 * @Author sun @@ -59,4 +62,31 @@ public interface ResiGroupFeignClient { @PostMapping("/resi/group/topic/checktopicpublisher") Result checkTopicPublisher(@RequestBody CheckTopicPublisherFormDTO formDTO); + /** + * @param topicIdList + * @Author sun + * @Description 批量查询话题信息 + **/ + @PostMapping("/resi/group/topic/gettopiclist/{topicIdList}") + Result> getTopicList(@PathVariable("topicIdList") List topicIdList); + + /** + * @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..b2e646ae20 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; @@ -14,6 +17,8 @@ import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; import org.springframework.stereotype.Component; +import java.util.List; + /** * @Description 调用resi-group服务 * @Author sun @@ -39,4 +44,19 @@ public class ResiGroupFeignClientFallBack implements ResiGroupFeignClient { public Result checkTopicPublisher(CheckTopicPublisherFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "checkTopicPublisher", formDTO); } + + @Override + public Result> getTopicList(List topicIdList) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getTopicList", topicIdList); + } + + @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..3692ef87b8 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,112 @@ 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; + } + } + + /** + * @Description 修改缓存中某个属性 - hash + * @param issueId + * @param field + * @param value + * @return void + * @author wangc + * @date 2020.05.22 11:31 + **/ + public void hset(String issueId,String field,Object value){ + String key = new StringBuilder(IssueConstant.REDIS_KEY).append(issueId).toString(); + redisUtils.hSet(key,field,value); + } + + } \ 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 2e14ce5c5a..2d2860ce8a 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 @@ -213,4 +214,13 @@ public interface IssueService extends BaseService { * @Description 获取客户网格下最新议题列表 **/ List getNewestIssueList(LatestIssueListFormDTO formDTO); + + /** + * @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 069177ae8e..3455d2d67c 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 @@ -27,10 +27,7 @@ import com.epmet.entity.IssueEntity; import com.epmet.entity.IssueProcessEntity; import com.epmet.entity.IssueProjectRelationEntity; import com.epmet.entity.IssueVoteStatisticalEntity; -import com.epmet.feign.GovOrgFeignClient; -import com.epmet.feign.GovProjectFeignClient; -import com.epmet.feign.MessageFeignClient; -import com.epmet.feign.ResiGroupFeignClient; +import com.epmet.feign.*; import com.epmet.redis.GovIssueRedis; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; @@ -83,6 +80,8 @@ public class IssueServiceImpl extends BaseServiceImpl imp private IssueProjectRelationService issueProjectRelationService; @Autowired private IssueVoteStatisticalDao issueVoteStatisticalDao; + @Autowired + private EpmetUserFeignClient epmetUserFeignClient; @Override public PageData page(Map params) { @@ -605,7 +604,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp if (null == projectIdList || projectIdList.size() < NumConstant.ONE) { return resultList; } - //1:根据已结案项目列表查询对应的议题列表 + //1:根据已结案项目列表查询议题项目关系表数据 List listRelation = issueProjectRelationDao.selectRelationList(projectIdList); if(null==listRelation||listRelation.size() imp List issueIdList = listRelation.stream().map(IssueProjectRelationEntity::getIssueId).collect(Collectors.toList()); //2:根据查询条件筛选出客户网格下已结案项目对应的议题详情列表 - List entityList = baseDao.selectIssueList(issueIdList, formDTO.getLatestListForm()); + LatestListFormDTO latestListForm = formDTO.getLatestListForm(); + latestListForm.setPageNo((latestListForm.getPageNo()-NumConstant.ONE)*latestListForm.getPageSize()); + List entityList = baseDao.selectIssueList(issueIdList, latestListForm); //3:遍历封装数据 entityList.forEach(issue->{ @@ -648,14 +649,68 @@ public class IssueServiceImpl extends BaseServiceImpl imp if (null == entityList || entityList.size() < NumConstant.ONE) { return returnList; } + //2:根据议题Id查询议题投票情况 List issueIdList = entityList.stream().map(IssueEntity::getId).collect(Collectors.toList()); List StatisticalList = issueVoteStatisticalDao.selectListByissueId(issueIdList); + //3:调用epmet-user服务,查询议题发起人基本信息 List userIdList = entityList.stream().map(IssueEntity::getCreatedBy).collect(Collectors.toList()); + UserResiInfoListFormDTO userResiInfoListFormDTO = new UserResiInfoListFormDTO(); + userResiInfoListFormDTO.setUserIdList(userIdList); + Result> listResult = epmetUserFeignClient.getUserResiInfoList(userResiInfoListFormDTO); + if (!listResult.success() || null == listResult.getData()) { + throw new RenException(IssueConstant.SELECT_USERINFO_EXCEPTION); + } + List userInfoList = listResult.getData(); + //4:调用resi-group服务,批量查询话题内容 + List topicIdList = entityList.stream().map(IssueEntity::getSourceId).collect(Collectors.toList()); + Result> resultTopicList = resiGroupFeignClient.getTopicList(topicIdList); + if (!resultTopicList.success() || null == resultTopicList.getData()) { + throw new RenException(IssueConstant.SELECT_RESI_GROUP_EXCEPTION); + } + List topicList = resultTopicList.getData(); + + //5:遍历组装对象 + entityList.forEach(issue -> { + LatestIssueListResultDTO resultDTO = new LatestIssueListResultDTO(); + resultDTO.setIssueId(issue.getId()); + resultDTO.setIssueTitle(issue.getIssueTitle()); + StatisticalList.forEach(sta -> { + if (issue.getId().equals(sta.getIssueId())) { + //表达态度总人数 + resultDTO.setVotedCount(sta.getSupportCount() + sta.getOppositionCount()); + } + }); + userInfoList.forEach(user -> { + if (issue.getCreatedBy().equals(user.getUserId())) { + //话题发起人昵称 + resultDTO.setIssuePublisherName(user.getShowName()); + } + }); + topicList.forEach(topic -> { + if (issue.getSourceId().equals(topic.getId())) { + //话题内容 + resultDTO.setTopicContent(topic.getTopicContent()); + } + }); + returnList.add(resultDTO); + }); - return null; + return returnList; + } + + /** + * @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,231 @@ 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); + Set existedIds = new HashSet<>(); + existedIds.addAll(ids); + existedIds.retainAll(statisiticalIds); + //更新 + //对ids进行更新 - 从缓存中拿取 + List listToUpdate = new ArrayList<>(); + setVotableCountsAndUpdateCache(listToUpdate, + existedIds.stream().flatMap(existedId -> issues.stream().filter(issue -> + StringUtils.equals(issue.getId(),existedId)).map(issueDTO -> { + return issueDTO; + })).collect(Collectors.toSet()), + votableCountMap); + + //TODO 批量更新listToUpdate + + + 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()); + } + + //批量查找summary的votableCount + Map> gridIssueMap = + issues.stream().collect(Collectors.groupingBy(IssueDTO::getGridId)); + for(IssueVoteStatisticalDTO vote : summary){ + for(Map.Entry> entry : gridIssueMap.entrySet()){ + String k = entry.getKey(); + List v = entry.getValue(); + if(null == v || v.size() < NumConstant.ONE) continue; + for(IssueDTO issue : v){ + if(StringUtils.equals(vote.getIssueId(),issue.getId())) + vote.setVotableCount( + null == votableCountMap ? NumConstant.ZERO + : null == votableCountMap.get(k) ? NumConstant.ZERO : votableCountMap.get(k) + ); + } + } + } + + for(Map.Entry> entry : gridIssueMap.entrySet()){ + String k = entry.getKey(); + List v = entry.getValue(); + + } + + //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)); + + setVotableCountsAndUpdateCache(listToUpdate,issues,votableCountMap); + + //TODO listToUpdate批量更新 + + } + + }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); + } + + /** + * @Description 遍历应表决数 + * @param list - List | Set | Map + * @return + * @author wangc + * @date 2020.05.22 11:55 + **/ + private void setVotableCountsAndUpdateCache(List list, + Set issues, + Map votableCountMap){ + 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) + ); + list.add(vote); + if(cache.getShouldVoteCount() != vote.getVotableCount()){ + issueVoteDetailRedis.hset(issue.getId(),ModuleConstants.SHOULD_VOTE_COUNT,vote.getVotableCount()); + } + } + } + + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java index 8a9e9f7fde..47183bed7c 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java @@ -93,4 +93,10 @@ public interface ModuleConstants { String CREATED_OR_UPDATED_BY_SYSTEM = "system"; + /** + * 缓存中应表决数 + * + */ + String SHOULD_VOTE_COUNT = "shouldVoteCount"; + } 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 7623bdbfc1..d78a370328 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 @@ -329,17 +329,18 @@ * FROM issue WHERE del_flag = '0' - AND customer_id = #{customerId} - AND grid_id = #{gridId} + AND customer_id = #{latestListForm.customerId} + AND grid_id = #{latestListForm.gridId} id = #{issueId} ORDER BY field( - id, + id, #{issueId} - LIMIT #{pageNo}, #{pageSize} + ) + LIMIT #{latestListForm.pageNo}, #{latestListForm.pageSize} + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectRelationDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectRelationDao.xml index b6fc72cd64..ae7ee4b255 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectRelationDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectRelationDao.xml @@ -39,10 +39,11 @@ project_id = #{projectId} ORDER BY field( - project_id, + project_id, #{projectId} + ) \ 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 ebef0c833b..834b873253 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 @@ -73,11 +73,56 @@ SELECT * FROM - issue_vote_statistical_daily + issue_vote_statistical WHERE del_flag = '0' issue_id = #{issueId} + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java index 7356f97392..284880f6d5 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java @@ -35,7 +35,7 @@ public class StaffSubmitFromDTO implements Serializable { * 姓名 */ @NotBlank(message = "姓名不能为空") - @Length(max = 5, message = "姓名不能超过5个字符") + @Length(max = 15, message = "姓名仅允许输入15个字符") private String name; /** * 手机 diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml index dec83bdd46..126640cc53 100644 --- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-org-server: container_name: gov-org-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/gov-org-server:0.3.48 + image: 192.168.1.130:10080/epmet-cloud-dev/gov-org-server:0.3.49 ports: - "8092:8092" network_mode: host # 使用现有网络 diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml index f49ca867b9..221f298634 100644 --- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-org-server: container_name: gov-org-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-org-server:0.3.47 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-org-server:0.3.49 ports: - "8092:8092" network_mode: host # 使用现有网络 diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index f5612b9751..f4f82a3c60 100644 --- a/epmet-module/gov-org/gov-org-server/pom.xml +++ b/epmet-module/gov-org/gov-org-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.48 + 0.3.49 com.epmet gov-org diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffDepartmentDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffDepartmentDao.xml index 254cbc4ab2..927d919372 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffDepartmentDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffDepartmentDao.xml @@ -22,8 +22,7 @@ customer_staff_department WHERE del_flag = '0' - AND - + department_id = #{departmentId} diff --git a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml index 06d7d39e0f..292f83cd6a 100644 --- a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-project-server: container_name: gov-project-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/gov-project-server:0.3.14 + image: 192.168.1.130:10080/epmet-cloud-dev/gov-project-server:0.3.15 ports: - "8102:8102" network_mode: host # 使用现有网络 diff --git a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml index 09bc8bff6b..ca28155d08 100644 --- a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-project-server: container_name: gov-project-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-project-server:0.3.14 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-project-server:0.3.15 ports: - "8102:8102" network_mode: host # 使用现有网络 diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml index 414ffa77cd..28797ba1aa 100644 --- a/epmet-module/gov-project/gov-project-server/pom.xml +++ b/epmet-module/gov-project/gov-project-server/pom.xml @@ -2,7 +2,7 @@ - 0.3.14 + 0.3.15 gov-project com.epmet diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index ecf124231d..7d0ab4a6a0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -594,7 +594,8 @@ public class ProjectServiceImpl extends BaseServiceImpl staffList.stream().filter(staff -> project.getCloseUserId().equals(staff.getStaffId())).map(latest -> { - LatestListResultDTO resultDTO = ConvertUtils.sourceToTarget(latest, LatestListResultDTO.class); + LatestListResultDTO resultDTO = ConvertUtils.sourceToTarget(project, LatestListResultDTO.class); + resultDTO.setCloseUserName(latest.getStaffName()); return resultDTO; })).collect(Collectors.toList()); diff --git a/epmet-module/oper-access/oper-access-server/deploy/docker-compose-test.yml b/epmet-module/oper-access/oper-access-server/deploy/docker-compose-test.yml index 504c8bc260..b9f36482b4 100644 --- a/epmet-module/oper-access/oper-access-server/deploy/docker-compose-test.yml +++ b/epmet-module/oper-access/oper-access-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: oper-access-server: container_name: oper-access-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/oper-access-server:0.3.8 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/oper-access-server:0.3.9 ports: - "8093:8093" network_mode: host # 使用现有网络 diff --git a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml index db6d89ed1c..2767a7ca8d 100644 --- a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml +++ b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: oper-crm-server: container_name: oper-crm-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/oper-crm-server:0.3.10 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/oper-crm-server:0.3.11 ports: - "8090:8090" network_mode: host # 使用现有网络 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/deploy/docker-compose-dev.yml b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml index c87c90da52..631684c28d 100644 --- a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: resi-group-server: container_name: resi-group-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.27 + image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.29 ports: - "8095:8095" network_mode: host # 使用现有网络 diff --git a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml index 5c83e4e061..54732484dd 100644 --- a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: resi-group-server: container_name: resi-group-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-group-server:0.3.27 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-group-server:0.3.29 ports: - "8095:8095" network_mode: host # 使用现有网络 diff --git a/epmet-module/resi-group/resi-group-server/pom.xml b/epmet-module/resi-group/resi-group-server/pom.xml index a181907b63..c0c027a0e8 100644 --- a/epmet-module/resi-group/resi-group-server/pom.xml +++ b/epmet-module/resi-group/resi-group-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.27 + 0.3.29 com.epmet resi-group 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 92ab8d538b..f61092f93a 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; @@ -171,4 +172,13 @@ public interface ResiGroupDao extends BaseDao { * @return java.util.List */ List selectListRecommendList(RecommendedListFormDTO 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 abf06683dd..d410b4f391 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 1e2150f13f..56722cce41 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/group/service/impl/ResiGroupStatisticalServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupStatisticalServiceImpl.java index 4a9d0ecbbd..3954640e47 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupStatisticalServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupStatisticalServiceImpl.java @@ -86,7 +86,8 @@ public class ResiGroupStatisticalServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - + wrapper.eq(StringUtils.isNotBlank((String)params.get(ModuleConstant.RESI_GROUP_ID_CAMEL)),ModuleConstant.RESI_GROUP_ID,params.get(ModuleConstant.RESI_GROUP_ID_CAMEL)); + wrapper.eq(StringUtils.isNotBlank((String)params.get(FieldConstant.DEL_FLAG_HUMP)),FieldConstant.DEL_FLAG,params.get(FieldConstant.DEL_FLAG_HUMP)); return wrapper; } 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/topic/controller/.gitkeep b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index bbee6b578f..2ed9de8661 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -260,4 +260,14 @@ public class ResiTopicController { return new Result().ok(topicService.checkTopicPublisher(formDTO)); } + /** + * @param topicIdList + * @return + * @Author sun + * @Description 批量查询话题信息 + **/ + @PostMapping(value = "gettopiclist/{topicIdList}") + public Result> getTopicList(@PathVariable("topicIdList") List topicIdList){ + return new Result>().ok(topicService.getTopicList(topicIdList)); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java index 8f4b3fdfd1..f09e2b6d3f 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java @@ -152,4 +152,12 @@ public interface ResiTopicDao extends BaseDao { * @author zxc */ CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO); + + /** + * @param topicIdList + * @return + * @Author sun + * @Description 批量查询话题信息 + **/ + List selectTopicListById(@Param("topicIdList") List topicIdList); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 08b8e89fd9..4fc298ad81 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -264,4 +264,11 @@ public interface ResiTopicService extends BaseService { */ CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO); + /** + * @param topicIdList + * @return + * @Author sun + * @Description 批量查询话题信息 + **/ + List getTopicList(List topicIdList); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index f5bd09a849..807c0d6a95 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -929,14 +929,13 @@ public class ResiTopicServiceImpl extends BaseServiceImpl attachments = resiTopicAttachmentDao.selectList(wrapper); - if (attachments.size()==NumConstant.ZERO){ - return new TopicInfoDTO(); - } - List attachmentUrls = new ArrayList<>(); - for(ResiTopicAttachmentEntity attachment : attachments){ - attachmentUrls.add(attachment.getAttachmentUrl()); + if (attachments.size() != NumConstant.ZERO){ + List attachmentUrls = new ArrayList<>(); + for(ResiTopicAttachmentEntity attachment : attachments){ + attachmentUrls.add(attachment.getAttachmentUrl()); + } + topicInfo.setTopicImgs(attachmentUrls); } - topicInfo.setTopicImgs(attachmentUrls); //话题发起人 IssueInitiatorFormDTO issueInitiator = new IssueInitiatorFormDTO(); issueInitiator.setUserId(topicInfo.getPublishedUser()); @@ -1151,6 +1150,17 @@ public class ResiTopicServiceImpl extends BaseServiceImpl getTopicList(List topicIdList) { + return baseDao.selectTopicListById(topicIdList); + } + } 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..a48bb08861 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_GROUP_ID = "RESI_GROUP_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 346dd484fa..94ab61b439 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 @@ -352,4 +352,18 @@ order by totalMember desc,rgs.TOTAL_TOPICS desc LIMIT #{pageSize} + + + diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index e742be69e8..32f33251d2 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -446,5 +446,17 @@ AND created_by = #{createdBy} AND id = #{topicId} + + diff --git a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml index 3034f6ff01..48387e6b26 100644 --- a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: resi-home-server: container_name: resi-home-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/resi-home-server:0.3.1 + image: 192.168.1.130:10080/epmet-cloud-dev/resi-home-server:0.3.2 ports: - "8104:8104" network_mode: host # 使用现有网络 diff --git a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-test.yml b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-test.yml index 2230b743f0..d4ae79c89b 100644 --- a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: resi-home-server: container_name: resi-home-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-home-server:0.3.26 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-home-server:0.3.2 ports: - "8104:8104" network_mode: host # 使用现有网络 diff --git a/epmet-module/resi-home/resi-home-server/pom.xml b/epmet-module/resi-home/resi-home-server/pom.xml index ddcab746da..90acaff831 100644 --- a/epmet-module/resi-home/resi-home-server/pom.xml +++ b/epmet-module/resi-home/resi-home-server/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - 0.3.1 + 0.3.2 resi-home diff --git a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index a4953bd53e..6714928f69 100644 --- a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.service.impl; +import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.LatestIssueListFormDTO; import com.epmet.dto.result.LatestIssueListResultDTO; import com.epmet.feign.GovIssueFeignClient; @@ -27,9 +28,9 @@ public class IssueServiceImpl implements IssueService { **/ @Override public List latestList(LatestIssueListFormDTO formDTO) { - //1:调用gov-issue服务,查询客户网格下最新议题列表 - - return null; + //1:调用gov-issue服务,查询客户网格下最新议题列表数据 + Result> listResult = govIssueFeignClient.getNewestIssueList(formDTO); + return listResult.getData(); } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberMessageConstant.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberMessageConstant.java index a64121d16e..1971a1ac13 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberMessageConstant.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberMessageConstant.java @@ -9,7 +9,7 @@ public interface PartyMemberMessageConstant { /** * 消息标题 */ - String GROUP_TITLE = "您有一条党员申请消息"; + String PARTY_AUTH_TITLE = "您有一条党员申请消息"; /** * 党员提交申请时给网格长发送消息:XX街道-XX先生/女士申请成为党员,请审核。 diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index fdb05b49ee..e4dc18bd8f 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -580,7 +580,7 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService userMessageFormDTO.setCustomerId(formDTO.getCustomerId()); userMessageFormDTO.setGridId(formDTO.getGridId()); userMessageFormDTO.setApp(AppClientConstant.APP_RESI); - userMessageFormDTO.setTitle(PartyMemberMessageConstant.GROUP_TITLE); + userMessageFormDTO.setTitle(PartyMemberMessageConstant.PARTY_AUTH_TITLE); //调用gov-org服务查询网格信息 CustomerGridFormDTO customerGridFormDTO = new CustomerGridFormDTO(); customerGridFormDTO.setGridId(formDTO.getGridId()); @@ -640,7 +640,7 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService msgDTO.setGridId(formDTO.getGridId()); msgDTO.setUserId(staff.getUserId()); msgDTO.setApp(AppClientConstant.APP_GOV); - msgDTO.setTitle(ResiWarmUserMessageConstant.GROUP_TITLE); + msgDTO.setTitle(PartyMemberMessageConstant.PARTY_AUTH_TITLE); msgDTO.setMessageContent(message); msgDTO.setReadFlag(ReadFlagConstant.UN_READ); msgList.add(msgDTO); diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml index 82749718aa..ec9736514e 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-user-server: container_name: epmet-user-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.32 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.33 ports: - "8087:8087" network_mode: host # 不会创建新的网络 diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-test.yml b/epmet-user/epmet-user-server/deploy/docker-compose-test.yml index f58448717f..1f135ddc8a 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-test.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-test.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-user-server: container_name: epmet-user-server-test - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-user-server:0.3.31 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-user-server:0.3.33 ports: - "8087:8087" network_mode: host # 不会创建新的网络 diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 1682a0e23a..a8b3e08ae9 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.32 + 0.3.33 com.epmet epmet-user diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml index 808b7669e1..1f570a073d 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml @@ -115,8 +115,7 @@ WHERE sr.del_flag = '0' AND gsr.del_flag = '0' - AND - + sr.staff_id = #{staffId}