From 7f0f021fe0cda32f71312c506312e08421ab0f2f Mon Sep 17 00:00:00 2001 From: wangchao Date: Mon, 25 May 2020 11:07:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=EF=BC=8C=E7=BC=93=E5=AD=98=E6=96=B9=E6=B3=95=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisUtils.java | 14 ++++--- .../com/epmet/feign/GovIssueFeignClient.java | 37 +++++++++++++++++++ .../impl/GovIssueFeignClientFallBack.java | 26 +++++++++++++ .../service/SyncVotingCacheAndDbService.java | 13 +++++++ ...VotingDailyStatisticalTaskServiceImpl.java | 24 ++++++++++++ .../impl/SyncVotingCacheAndDbServiceImpl.java | 24 ++++++++++++ .../epmet/task/DailyStatisticalVoteTask.java | 34 +++++++++++++++++ .../epmet/task/SyncVotingCacheAndDbTask.java | 33 +++++++++++++++++ .../IssueVoteStatisticalDailyController.java | 4 +- .../mapper/member/ResiGroupMemberDao.xml | 2 +- 10 files changed, 202 insertions(+), 9 deletions(-) create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/impl/GovIssueFeignClientFallBack.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/SyncVotingCacheAndDbService.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IssueVotingDailyStatisticalTaskServiceImpl.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/SyncVotingCacheAndDbServiceImpl.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DailyStatisticalVoteTask.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/SyncVotingCacheAndDbTask.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java index 9d4fb263cb..2e45203dc0 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 @@ -8,6 +8,7 @@ package com.epmet.commons.tools.redis; +import com.epmet.commons.tools.constant.NumConstant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.HashOperations; @@ -252,12 +253,13 @@ public class RedisUtils { * @date 2020.05.21 15:42 **/ public Map hincrby(String key,String field,Long delta){ + Map existed = hGetAll(key); + if(null == existed || existed.size() < NumConstant.ONE) return null; + //hincrby - Long count = redisTemplate.opsForHash().increment(key,field,delta); - if(count == -1){ - return null; - }else{ - return hGetAll(key); - } + redisTemplate.opsForHash().increment(key,field,delta); + + return hGetAll(key); + } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java new file mode 100644 index 0000000000..4c091c1c6a --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java @@ -0,0 +1,37 @@ +package com.epmet.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.impl.GovIssueFeignClientFallBack; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @Description 议题定时任务 + * @Author wangc + * @Date 2020/5/23 13:42 + */ +@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueFeignClientFallBack.class) +public interface GovIssueFeignClient { + + /** + * @Description 定时任务 每天生成生成昨日的议题表决日统计数 + * @param + * @return + * @author wangc + * @date 2020.05.20 15:39 + **/ + @PostMapping(value = "gov/issue/issuevotestatisticaldaily/dailystatisticalvotejob") + Result dailyStatisticalVoteJob(); + + /** + * @Description 将所有表决中的投票数从缓存同步到数据库,要进行数据对比,若数据一致无需更新 + * @param + * @return + * @author wangc + * @date 2020.05.21 09:07 + **/ + @PostMapping(value = "gov/issue/issuevotestatistical/syncvotingcacheanddb") + Result syncVotingCacheAndDb(); + +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/impl/GovIssueFeignClientFallBack.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/impl/GovIssueFeignClientFallBack.java new file mode 100644 index 0000000000..0267ca347f --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/feign/impl/GovIssueFeignClientFallBack.java @@ -0,0 +1,26 @@ +package com.epmet.feign.impl; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.GovIssueFeignClient; +import org.springframework.stereotype.Component; + +/** + * @Description + * @ClassName GovIssueFeignClientFallBack + * @Auth wangc + * @Date 2020-05-25 09:02 + */ +@Component +public class GovIssueFeignClientFallBack implements GovIssueFeignClient { + @Override + public Result dailyStatisticalVoteJob() { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "dailyStatisticalVoteJob"); + } + + @Override + public Result syncVotingCacheAndDb() { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "syncVotingCacheAndDb"); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/SyncVotingCacheAndDbService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/SyncVotingCacheAndDbService.java new file mode 100644 index 0000000000..e6ae8d55ac --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/SyncVotingCacheAndDbService.java @@ -0,0 +1,13 @@ +package com.epmet.service; + +import com.epmet.commons.tools.utils.Result; + +/** + * @Description 同步缓存与数据库定时任务 -> 议题表决统计 + * @Author wangc + * @Date 2020/5/20 17:39 + */ +public interface SyncVotingCacheAndDbService { + + Result syncVotingCacheAndDb(); +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IssueVotingDailyStatisticalTaskServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IssueVotingDailyStatisticalTaskServiceImpl.java new file mode 100644 index 0000000000..eb31c97810 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IssueVotingDailyStatisticalTaskServiceImpl.java @@ -0,0 +1,24 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.GovIssueFeignClient; +import com.epmet.service.IssueVotingDailyStatisticalTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description + * @ClassName IssueVotingDailyStatisticalTaskServiceImpl + * @Auth wangc + * @Date 2020-05-25 09:24 + */ +@Service +public class IssueVotingDailyStatisticalTaskServiceImpl implements IssueVotingDailyStatisticalTaskService { + @Autowired + private GovIssueFeignClient govIssueFeignClient; + + @Override + public Result issueVotingDailyStatistical() { + return govIssueFeignClient.dailyStatisticalVoteJob(); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/SyncVotingCacheAndDbServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/SyncVotingCacheAndDbServiceImpl.java new file mode 100644 index 0000000000..83a1ad37d9 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/SyncVotingCacheAndDbServiceImpl.java @@ -0,0 +1,24 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.GovIssueFeignClient; +import com.epmet.service.SyncVotingCacheAndDbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description + * @ClassName SyncVotingCacheAndDbServiceImpl + * @Auth wangc + * @Date 2020-05-25 09:45 + */ +@Service +public class SyncVotingCacheAndDbServiceImpl implements SyncVotingCacheAndDbService { + @Autowired + private GovIssueFeignClient govIssueFeignClient; + + @Override + public Result syncVotingCacheAndDb() { + return govIssueFeignClient.syncVotingCacheAndDb(); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DailyStatisticalVoteTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DailyStatisticalVoteTask.java new file mode 100644 index 0000000000..1c33869895 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DailyStatisticalVoteTask.java @@ -0,0 +1,34 @@ +package com.epmet.task; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.service.IssueVotingDailyStatisticalTaskService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Description + * @ClassName dailyStatisticalVoteTask + * @Auth wangc + * @Date 2020-05-25 09:22 + */ +@Component("dailyStatisticalVoteTask") +public class DailyStatisticalVoteTask implements ITask{ + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private IssueVotingDailyStatisticalTaskService issueVotingDailyStatisticalTaskService; + + + @Override + public void run(String params) { + logger.debug("dailyStatisticalVoteTask定时任务正在执行,参数为:{}", params); + Result result=issueVotingDailyStatisticalTaskService.issueVotingDailyStatistical(); + if(result.success()){ + logger.debug("dailyStatisticalVoteTask定时任务正在执行定时任务执行成功"); + }else{ + logger.debug("dailyStatisticalVoteTask定时任务正在执行定时任务执行失败:"+result.getMsg()); + } + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/SyncVotingCacheAndDbTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/SyncVotingCacheAndDbTask.java new file mode 100644 index 0000000000..9eed75bb68 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/SyncVotingCacheAndDbTask.java @@ -0,0 +1,33 @@ +package com.epmet.task; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.service.SyncVotingCacheAndDbService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Description + * @ClassName SyncVotingCacheAndDbTask + * @Auth wangc + * @Date 2020-05-25 09:47 + */ +@Component("syncVotingCacheAndDbTask") +public class SyncVotingCacheAndDbTask implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private SyncVotingCacheAndDbService syncVotingCacheAndDbService; + + @Override + public void run(String params) { + logger.debug("syncVotingCacheAndDbTask定时任务正在执行,参数为:{}", params); + Result result = syncVotingCacheAndDbService.syncVotingCacheAndDb(); + if(result.success()){ + logger.debug("syncVotingCacheAndDbTask定时任务正在执行定时任务执行成功"); + }else{ + logger.debug("syncVotingCacheAndDbTask定时任务正在执行定时任务执行失败:"+result.getMsg()); + } + } +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java index 6ff8f2e89b..c0532cbbf5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalDailyController.java @@ -98,8 +98,8 @@ public class IssueVoteStatisticalDailyController { * @author wangc * @date 2020.05.20 15:39 **/ - @PostMapping(value = "dailystasticalvotejob") - public Result dailyStasticalVoteJob(){ + @PostMapping(value = "dailystatisticalvotejob") + public Result dailyStatisticalVoteJob(){ issueVoteStatisticalDailyService.countVotingDailyStatistic(); return new Result(); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml index 5791303423..ae8b7d8f14 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml @@ -127,7 +127,7 @@ groupp.DEL_FLAG = '0' AND - groupp.GRID_ID = #{item.gridId} + groupp.GRID_ID = #{item} AND groupp.STATE = 'approved'