diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index 975afbe2..80d65b4c 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -44,5 +44,15 @@ public interface UserFeignClient { */ @PostMapping("app-user/epdc-app/user/updateUserInfo") Result updateUserInfo(UserDTO userDTO); + /** + * 重置积分 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDTO] + * @author syp + * @since 2019/10/25 17:07 + */ + @PostMapping("app-user/user/resetPoints") + Result resetPoints(); } diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index d3ab4b71..03ee2420 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java @@ -34,4 +34,9 @@ public class UserFeignClientFallback implements UserFeignClient { public Result updateUserInfo(UserDTO userDTO) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "updateUserInfo", userDTO); } + + @Override + public Result resetPoints() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "resetPoints"); + } } diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/user/ScreenUserPointsResetTask.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/user/ScreenUserPointsResetTask.java new file mode 100644 index 00000000..deb86794 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/user/ScreenUserPointsResetTask.java @@ -0,0 +1,32 @@ +package com.elink.esua.epdc.task.user; + +import com.elink.esua.epdc.feign.UserFeignClient; +import com.elink.esua.epdc.task.ITask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 用户积分重置模块 + * + * @Author:liuchuang + * @Date:2020/9/9 15:20 + */ +@Component("screenUserPointsResetTask") +public class ScreenUserPointsResetTask implements ITask { + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private UserFeignClient userFeignClient; + + @Override + public void run(String param) { + // 方法名 + String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); + logger.info("<" + methodName + "|用户积分季度重置>定时任务开始"); + userFeignClient.resetPoints(); + logger.info("<" + methodName + "|用户积分季度重置>定时任务结束"); + } +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java index fe59b8a5..9f0033ef 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java @@ -338,7 +338,7 @@ public class UserController { * @Param [dto] **/ @PostMapping(value = "updateUserPoints") - Result updateUserPoints(@RequestBody EpdcUserPointsFormDTO epdcUserPointsFormDTO){ + public Result updateUserPoints(@RequestBody EpdcUserPointsFormDTO epdcUserPointsFormDTO){ return userService.updateUserPoints(epdcUserPointsFormDTO); } @@ -350,7 +350,7 @@ public class UserController { * @Param [dto] **/ @PostMapping(value = "checkRepeatUser") - Result checkRepeatUser(@RequestBody CheckRepeatUserFormDTO checkRepeatUserFormDTO){ + public Result checkRepeatUser(@RequestBody CheckRepeatUserFormDTO checkRepeatUserFormDTO){ return userService.checkRepeatUser(checkRepeatUserFormDTO); } /** @@ -361,11 +361,20 @@ public class UserController { * @return com.elink.esua.epdc.commons.tools.utils.Result **/ @PostMapping(value = "combineVolunteerUser") - Result combineVolunteerUser(@RequestBody CombineVolunteerUserFormDTO formDTO){ + public Result combineVolunteerUser(@RequestBody CombineVolunteerUserFormDTO formDTO){ return userService.combineVolunteerUser(formDTO); } - - + /** + * @Description 季度重置用户可兑换积分 + * @Author songyunpeng + * @Date 2021/4/19 + * @Param [] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @PostMapping("resetPoints") + public Result resetPoints(){ + return userService.resetPoints(); + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java index 8615c0b2..4279f3e6 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java @@ -305,4 +305,20 @@ public interface UserDao extends BaseDao { * @return java.lang.Long **/ Long getUserGridIdByUserId(String userId); + /** + * @Description 备份积分数据 + * @Author songyunpeng + * @Date 2021/4/19 + * @Param [] + * @return void + **/ + void insertUserPointsTemp(); + /** + * @Description 重置积分 + * @Author songyunpeng + * @Date 2021/4/19 + * @Param [] + * @return void + **/ + void resetPoints(); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java index f916386d..c48f1d49 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java @@ -433,4 +433,12 @@ public interface UserService extends BaseService { * @return com.elink.esua.epdc.commons.tools.utils.Result **/ Result combineVolunteerUser(CombineVolunteerUserFormDTO formDTO); + /** + * @Description 季度重置积分 - 定时任务使用 + * @Author songyunpeng + * @Date 2021/4/19 + * @Param [] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + Result resetPoints(); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index aa4d6966..7086dcf2 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -1542,4 +1542,13 @@ public class UserServiceImpl extends BaseServiceImpl implem } return new Result<>(); } + + @Override + public Result resetPoints() { + //先备份积分数据 + baseDao.insertUserPointsTemp(); + //重置积分 + baseDao.resetPoints(); + return new Result(); + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml index 4bccf4cf..2779570a 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml @@ -2,6 +2,10 @@ + + insert into epdc_user_points_temp(ID,POINTS,CREATED_TIME) + select ID,POINTS,now() from epdc_user where DEL_FLAG = '0' + update epdc_user set POINTS = POINTS + #{points} @@ -9,6 +13,9 @@ where ID = #{userId} + + update epdc_user set points = 0 where DEL_FLAG = '0' + DELETE FROM epdc_user WHERE WX_OPEN_ID = #{wxOpenId} AND STATE = '2' @@ -571,7 +578,7 @@ SELECT (@i:=@i+1) rank, u.ID userId, - IFNULL(u.POINTS, 0) points, + IFNULL(u.POINTS_TOTLE, 0) points, GROUP_CONCAT(u.ID SEPARATOR ',') tjid FROM epdc_user u ,(select @i:=0) t1 @@ -583,8 +590,8 @@ #{userId} - GROUP BY IFNULL(u.POINTS, 0) - ORDER BY IFNULL(u.POINTS, 0) DESC + GROUP BY IFNULL(u.POINTS_TOTLE, 0) + ORDER BY IFNULL(u.POINTS_TOTLE, 0) DESC ) userRanking WHERE instr(userRanking.tjid , #{userId}) > 0