Browse Source

添加缓存

dev
zxc 5 years ago
parent
commit
cbab01b492
  1. 2
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java
  2. 19
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ShouldVoteCountFormDTO.java
  3. 35
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteRedisFormDTO.java
  4. 18
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ShouldVoteCountResultDTO.java
  5. 5
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java
  6. 13
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java
  7. 7
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java
  8. 27
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java
  9. 31
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java
  10. 16
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java
  11. 19
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ShouldVoteCountFormDTO.java
  12. 18
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ShouldVoteCountResultDTO.java
  13. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
  14. 7
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java
  15. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
  16. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  17. 13
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml

2
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java

@ -14,7 +14,7 @@ import java.util.List;
* @Description
* @Author sun
*/
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgFeignClientFallBack.class)
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgFeignClientFallBack.class,url = "localhost:8092")
public interface GovOrgFeignClient {
/**

19
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ShouldVoteCountFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
*/
@Data
public class ShouldVoteCountFormDTO implements Serializable {
private static final long serialVersionUID = 413887792872039432L;
/**
* 网格id
*/
private String gridId;
}

35
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteRedisFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* 表决数量缓存
*/
@Data
public class VoteRedisFormDTO implements Serializable {
private static final long serialVersionUID = -5046512100380206719L;
/**
* 支持数量
*/
private Integer supportAmount = 0;
/**
* 反对数量
*/
private Integer oppositionAmount = 0;
/**
* 应表决数
*/
private Integer shouldVoteCount = 0;
/**
* 议题id
*/
private String issueId;
}

18
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ShouldVoteCountResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
*/
@Data
public class ShouldVoteCountResultDTO implements Serializable {
private static final long serialVersionUID = 8811890380460710438L;
/**
* 应表决数
*/
private Integer shouldVoteCount;
}

5
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java

@ -59,4 +59,9 @@ public interface IssueConstant {
String GOV_PRJECT_EXCEPTION = "议题转项目,获取项目数据失败";
String ISSUE_VOTING_EXCEPTION = "非表决中议题,不允许转成项目";
String ISSUE_SHIFT_PROJECT_EXCEPTION = "议题已转项目,不允许再次操作";
String SUPPORT = "support";
String OPPOSE = "opposition";
String REDIS_KEY = "epmet:issue:";
}

13
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java

@ -2,7 +2,9 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ShouldVoteCountFormDTO;
import com.epmet.dto.result.AgencyGridResultDTO;
import com.epmet.dto.result.ShouldVoteCountResultDTO;
import com.epmet.feign.fallback.ResiGroupFeignClientFallBack;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
@ -10,6 +12,7 @@ import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @Description 调用resi-group服务
@ -37,4 +40,12 @@ public interface ResiGroupFeignClient {
@PostMapping("/resi/group/topic/topicinfoforissuedetailgov")
Result<GovTopicIssueInfoResultDTO> topicInfoForIssueDetailGov(GovTopicIssueInfoFormDTO govTopicIssueInfoFormDTO);
}
/**
* @Description 获取应表决数
* @param formDTO
* @author zxc
*/
@PostMapping("/resi/group/group/shouldvotecount")
Result<ShouldVoteCountResultDTO> shouldVoteCount(@RequestBody ShouldVoteCountFormDTO formDTO);
}

7
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java

@ -3,7 +3,9 @@ package com.epmet.feign.fallback;
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.ShouldVoteCountFormDTO;
import com.epmet.dto.result.AgencyGridResultDTO;
import com.epmet.dto.result.ShouldVoteCountResultDTO;
import com.epmet.feign.ResiGroupFeignClient;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
@ -25,4 +27,9 @@ public class ResiGroupFeignClientFallBack implements ResiGroupFeignClient {
public Result<GovTopicIssueInfoResultDTO> topicInfoForIssueDetailGov(GovTopicIssueInfoFormDTO govTopicIssueInfoFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicInfoForIssueDetailGov", govTopicIssueInfoFormDTO);
}
@Override
public Result<ShouldVoteCountResultDTO> shouldVoteCount(ShouldVoteCountFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "shouldVoteCount", formDTO);
}
}

27
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java

@ -17,10 +17,17 @@
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.constant.IssueConstant;
import com.epmet.dto.form.VoteRedisFormDTO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* 议题表决记录表
*
@ -36,12 +43,24 @@ public class IssueVoteDetailRedis {
}
public void set(){
public void set(VoteRedisFormDTO vote){
String key = IssueConstant.REDIS_KEY +vote.getIssueId();
//bean to map
Map<String, Object> map = BeanUtil.beanToMap(vote, false, true);
redisUtils.hMSet(key, map);
}
public String get(String id){
return null;
public VoteRedisFormDTO get(String issueId){
VoteRedisFormDTO voteRedis = new VoteRedisFormDTO();
String key = IssueConstant.REDIS_KEY + issueId;
Map<String, Object> stringObjectMap = redisUtils.hGetAll(key);
if (stringObjectMap.size()== NumConstant.ZERO || stringObjectMap == null){
return new VoteRedisFormDTO();
}
voteRedis.setShouldVoteCount(Integer.valueOf(stringObjectMap.get("shouldVoteCount").toString()));
voteRedis.setSupportAmount(Integer.valueOf(stringObjectMap.get("supportAmount").toString()));
voteRedis.setOppositionAmount(Integer.valueOf(stringObjectMap.get("oppositionAmount").toString()));
return voteRedis;
}
}

31
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java

@ -17,6 +17,7 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -26,13 +27,20 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.constant.IssueConstant;
import com.epmet.dao.IssueVoteDetailDao;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.IssueVoteDetailDTO;
import com.epmet.dto.form.CheckVoteFormDTO;
import com.epmet.dto.form.ShouldVoteCountFormDTO;
import com.epmet.dto.form.VoteFormDTO;
import com.epmet.dto.form.VoteRedisFormDTO;
import com.epmet.dto.result.JoinVoteResultDTO;
import com.epmet.dto.result.ShouldVoteCountResultDTO;
import com.epmet.entity.IssueVoteDetailEntity;
import com.epmet.feign.ResiGroupFeignClient;
import com.epmet.redis.IssueVoteDetailRedis;
import com.epmet.service.IssueService;
import com.epmet.service.IssueVoteDetailService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@ -55,6 +63,10 @@ public class IssueVoteDetailServiceImpl extends BaseServiceImpl<IssueVoteDetailD
@Autowired
private IssueVoteDetailRedis issueVoteDetailRedis;
@Autowired
private ResiGroupFeignClient resiGroupFeignClient;
@Autowired
private IssueService issueService;
@Override
public PageData<IssueVoteDetailDTO> page(Map<String, Object> params) {
@ -118,6 +130,25 @@ public class IssueVoteDetailServiceImpl extends BaseServiceImpl<IssueVoteDetailD
public void vote(VoteFormDTO formDTO) {
IssueVoteDetailEntity entity = new IssueVoteDetailEntity();
BeanUtils.copyProperties(formDTO,entity);
VoteRedisFormDTO redisData = issueVoteDetailRedis.get(formDTO.getIssueId());
if (redisData==null){
VoteRedisFormDTO voteRedisFormDTO = new VoteRedisFormDTO();
voteRedisFormDTO.setIssueId(formDTO.getIssueId());
issueVoteDetailRedis.set(voteRedisFormDTO);
redisData = issueVoteDetailRedis.get(formDTO.getIssueId());
}
redisData.setIssueId(formDTO.getIssueId());
if (formDTO.getAttitude().equals(IssueConstant.SUPPORT)){
redisData.setSupportAmount(redisData.getSupportAmount()+1);
}else {
redisData.setOppositionAmount(redisData.getOppositionAmount()+1);
}
IssueDTO issueDTO = issueService.get(formDTO.getIssueId());
ShouldVoteCountFormDTO shouldVoteCount = new ShouldVoteCountFormDTO();
shouldVoteCount.setGridId(issueDTO.getGridId());
ShouldVoteCountResultDTO data = resiGroupFeignClient.shouldVoteCount(shouldVoteCount).getData();
redisData.setShouldVoteCount(data.getShouldVoteCount());
issueVoteDetailRedis.set(redisData);
Integer checkoutVoteCount = baseDao.checkoutVote(formDTO);
if (checkoutVoteCount==0){
baseDao.insert(entity);

16
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java

@ -34,15 +34,18 @@ import com.epmet.dto.PolyLineDTO;
import com.epmet.dto.form.EvaluationListFormDTO;
import com.epmet.dto.form.IssueIdFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.form.VoteRedisFormDTO;
import com.epmet.dto.result.EvaluationListResultDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.dto.result.VoteResultDTO;
import com.epmet.dto.result.VotingTrendResultDTO;
import com.epmet.entity.IssueVoteStatisticalEntity;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.redis.IssueVoteDetailRedis;
import com.epmet.redis.IssueVoteStatisticalRedis;
import com.epmet.service.IssueVoteStatisticalService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -70,6 +73,8 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
private IssueSatisfactionDetailDao issueSatisfactionDetailDao;
@Autowired
private EpmetUserFeignClient userFeignClient;
@Autowired
private IssueVoteDetailRedis issueVoteDetailRedis;
@Override
public PageData<IssueVoteStatisticalDTO> page(Map<String, Object> params) {
@ -138,7 +143,10 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
voteResultDTO.setVoteFlag(false);
}else {
voteResultDTO.setVoteFlag(true);
VoteRedisFormDTO redisData = issueVoteDetailRedis.get(issueId.getIssueId());
voteResultDTO.setVoteType(voteStatus);
voteResultDTO.setSupportCount(redisData.getSupportAmount());
voteResultDTO.setOppositionCount(redisData.getOppositionAmount());
}
}
return voteResultDTO;
@ -153,11 +161,13 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
@Override
public VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId) {
//应表决数暂时从issue_vote_statistical查询
VotingTrendResultDTO votingTrendResultDTO = issueVoteStatisticalDao.votingTrend(issueId);
if (votingTrendResultDTO!=null){
// VotingTrendResultDTO votingTrendResultDTO = issueVoteStatisticalDao.votingTrend(issueId);
VoteRedisFormDTO voteRedisFormDTO = issueVoteDetailRedis.get(issueId.getIssueId());
VotingTrendResultDTO votingTrendResultDTO = new VotingTrendResultDTO();
BeanUtils.copyProperties(voteRedisFormDTO,votingTrendResultDTO);
votingTrendResultDTO.setRealityVoteCount(voteRedisFormDTO.getSupportAmount()+voteRedisFormDTO.getOppositionAmount());
List<PolyLineDTO> polyLineDTOS = issueVoteStatisticalDao.polyLineData(issueId);
votingTrendResultDTO.setPolyLine(polyLineDTOS);
}
return votingTrendResultDTO;
}

19
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ShouldVoteCountFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.resi.group.dto.group.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
*/
@Data
public class ShouldVoteCountFormDTO implements Serializable {
private static final long serialVersionUID = 413887792872039432L;
/**
* 网格id
*/
private String gridId;
}

18
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ShouldVoteCountResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.resi.group.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
*/
@Data
public class ShouldVoteCountResultDTO implements Serializable {
private static final long serialVersionUID = 8811890380460710438L;
/**
* 应表决数
*/
private Integer shouldVoteCount;
}

11
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java

@ -22,7 +22,6 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.modules.group.redis.ResiGroupRedis;
import com.epmet.modules.group.service.ResiGroupService;
import com.epmet.resi.group.dto.group.GroupProcessingCountResultDTO;
import com.epmet.resi.group.dto.group.form.*;
@ -321,4 +320,14 @@ public class ResiGroupController {
public Result<CheckJoinTeamResultDTO> checkjointeam(@RequestBody GridIdFormDTO gridId){
return new Result<CheckJoinTeamResultDTO>().ok(resiGroupService.checkjointeam(gridId));
}
/**
* @Description 获取应表决数
* @param formDTO
* @author zxc
*/
@PostMapping("shouldvotecount")
public Result<ShouldVoteCountResultDTO> shouldVoteCount(@RequestBody ShouldVoteCountFormDTO formDTO){
return new Result<ShouldVoteCountResultDTO>().ok(resiGroupService.shouldVoteCount(formDTO));
}
}

7
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java

@ -155,4 +155,11 @@ public interface ResiGroupDao extends BaseDao<ResiGroupEntity> {
* @author zxc
*/
Integer checkjointeam(GridIdFormDTO gridId);
/**
* @Description 获取应表决数
* @param formDTO
* @author zxc
*/
ShouldVoteCountResultDTO shouldVoteCount(ShouldVoteCountFormDTO formDTO);
}

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java

@ -27,7 +27,6 @@ import com.epmet.resi.group.dto.group.GroupProcessingCountResultDTO;
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 org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
@ -268,4 +267,11 @@ public interface ResiGroupService extends BaseService<ResiGroupEntity> {
* @author zxc
*/
CheckJoinTeamResultDTO checkjointeam(GridIdFormDTO gridId);
/**
* @Description 获取应表决数
* @param formDTO
* @author zxc
*/
ShouldVoteCountResultDTO shouldVoteCount(ShouldVoteCountFormDTO formDTO);
}

11
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -58,6 +58,7 @@ import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.dto.UserRoleDTO;
import com.epmet.resi.group.dto.group.*;
import com.epmet.resi.group.dto.group.form.*;
import com.epmet.resi.group.dto.group.form.ShouldVoteCountFormDTO;
import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
@ -832,6 +833,16 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
return checkJoinTeamResultDTO;
}
/**
* @Description 获取应表决数
* @param formDTO
* @author zxc
*/
@Override
public ShouldVoteCountResultDTO shouldVoteCount(ShouldVoteCountFormDTO formDTO) {
return baseDao.shouldVoteCount(formDTO);
}
/**
* @Description 给加入此网格的网格长发送消息
* @param msg

13
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml

@ -309,4 +309,17 @@
AND
GRID_ID = #{gridId}
</select>
<!-- 获取应表决数 -->
<select id="shouldVoteCount" parameterType="com.epmet.resi.group.dto.group.form.ShouldVoteCountFormDTO" resultType="com.epmet.resi.group.dto.group.result.ShouldVoteCountResultDTO">
SELECT
COUNT(*) AS shouldVoteCount
FROM
resi_group_member rgm
LEFT JOIN resi_group rg ON rgm.resi_group_id = rg.id
WHERE
rgm.del_flag = 0
AND rg.del_flag = 0
AND rg.grid_id = #{gridId}
</select>
</mapper>

Loading…
Cancel
Save