|
|
@ -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); |
|
|
|