|
|
@ -27,6 +27,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; |
|
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
|
import com.epmet.commons.tools.constant.FieldConstant; |
|
|
|
import com.epmet.constant.IssueConstant; |
|
|
|
import com.epmet.dao.IssueDao; |
|
|
|
import com.epmet.dao.IssueSatisfactionDetailDao; |
|
|
|
import com.epmet.dao.IssueVoteStatisticalDao; |
|
|
|
import com.epmet.dto.IssueVoteStatisticalDTO; |
|
|
@ -50,6 +51,9 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.ZoneOffset; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.List; |
|
|
@ -75,6 +79,8 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt |
|
|
|
private EpmetUserFeignClient userFeignClient; |
|
|
|
@Autowired |
|
|
|
private IssueVoteDetailRedis issueVoteDetailRedis; |
|
|
|
@Autowired |
|
|
|
private IssueDao issueDao; |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<IssueVoteStatisticalDTO> page(Map<String, Object> params) { |
|
|
@ -160,13 +166,33 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId) { |
|
|
|
//应表决数暂时从issue_vote_statistical查询
|
|
|
|
// 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); |
|
|
|
PolyLineDTO polyLineDTO = new PolyLineDTO(); |
|
|
|
polyLineDTO.setVoteDtae(LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"))); |
|
|
|
//今天刚转项目或刚刚关闭,当天数据DB没有,直接从缓存拿
|
|
|
|
if (polyLineDTOS.size()==NumConstant.ZERO){ |
|
|
|
polyLineDTO.setSupportIncrement(voteRedisFormDTO.getSupportAmount()); |
|
|
|
polyLineDTO.setOppositionIncrement(voteRedisFormDTO.getOppositionAmount()); |
|
|
|
polyLineDTOS.add(polyLineDTO); |
|
|
|
}else { |
|
|
|
//折线数据=DB
|
|
|
|
String date = issueDao.operateTime(issueId.getIssueId()); |
|
|
|
if (date.equals(LocalDate.now().toString())) { |
|
|
|
Integer yesterdaySupport = 0; |
|
|
|
Integer yesterdayOppose = 0; |
|
|
|
for (PolyLineDTO lineDTO : polyLineDTOS) { |
|
|
|
yesterdaySupport += lineDTO.getSupportIncrement(); |
|
|
|
yesterdayOppose += lineDTO.getOppositionIncrement(); |
|
|
|
} |
|
|
|
polyLineDTO.setSupportIncrement(voteRedisFormDTO.getSupportAmount() - yesterdaySupport); |
|
|
|
polyLineDTO.setOppositionIncrement(voteRedisFormDTO.getOppositionAmount() - yesterdayOppose); |
|
|
|
polyLineDTOS.add(polyLineDTO); |
|
|
|
} |
|
|
|
} |
|
|
|
votingTrendResultDTO.setPolyLine(polyLineDTOS); |
|
|
|
return votingTrendResultDTO; |
|
|
|
} |
|
|
|