diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/controller/UserController.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/controller/UserController.java index 21cedd7..7f40922 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/controller/UserController.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/controller/UserController.java @@ -482,4 +482,42 @@ public class UserController { public Result resetUserPoints(){ return userService.resetUserPoints(); } + + /** + * @describe: 重置该社区下所有用户的积分 + * @author wangtong + * @date 2022/4/2 15:00 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PostMapping("resetPointsByCommunityId") + public Result resetPointsByCommunityId(@RequestBody ResetPointsDTO dto){ + return userService.resetPointsByCommunityId(dto); + } + + /** + * @describe: 按社区清空用户积分 + * @author wangtong + * @date 2022/4/2 16:55 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PostMapping("resetUserPointsCommunity") + public Result resetUserPointsCommunity(@RequestBody ResetPointsDTO dto){ + return userService.resetUserPointsCommunity(dto); + } + + + /** + * @describe: 获取社区积分列表 + * @author wangtong + * @date 2022/4/6 14:31 + * @params [params] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @GetMapping("getCommunityPointList") + public Result getCommunityPointList(@RequestParam Map params) { + PageData page = userService.getCommunityPointList(params); + return new Result>().ok(page); + } } diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/dao/UserDao.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/dao/UserDao.java index daacfad..dbe7b17 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/dao/UserDao.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/dao/UserDao.java @@ -18,10 +18,7 @@ package com.elink.esua.epdc.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; -import com.elink.esua.epdc.dto.CachingUserInfoDTO; -import com.elink.esua.epdc.dto.UserDTO; -import com.elink.esua.epdc.dto.UserPointResultDTO; -import com.elink.esua.epdc.dto.UserPointsDTO; +import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.form.EpdcUnauthorizedAmountFromDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; @@ -358,4 +355,40 @@ public interface UserDao extends BaseDao { * @Date 16:51 2022-02-12 **/ void resetPoints(); + + /** + * @describe: 备份社区下面用户的积分数据 + * @author wangtong + * @date 2022/4/2 15:01 + * @params [dto] + * @return void + */ + void insertUserPointsTempCommunity(ResetPointsDTO dto); + + /** + * @describe: 查询需要积分清零的用户 + * @author wangtong + * @date 2022/4/2 15:05 + * @params [] + * @return java.util.List + */ + List selectResetUserList(ResetPointsDTO dto); + + /** + * @describe: 按社区清空用户积分 + * @author wangtong + * @date 2022/4/2 16:56 + * @params [dto] + * @return void + */ + void resetUserPointsCommunity(ResetPointsDTO dto); + + /** + * @describe: 获取社区积分列表 + * @author wangtong + * @date 2022/4/6 14:42 + * @params [params] + * @return java.util.List + */ + List getCommunityPointList(Map params); } diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/PointsFeignClient.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/PointsFeignClient.java index ebc8430..3bf1240 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/PointsFeignClient.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/PointsFeignClient.java @@ -2,6 +2,7 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ResetPointsDTO; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.feign.fallback.PointsFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; @@ -29,4 +30,14 @@ public interface PointsFeignClient { **/ @PostMapping(value = "points/pointslogs/insertPointsResetLogs", consumes = MediaType.APPLICATION_JSON_VALUE) Result insertPointsResetLogs(List formDTO); + + /** + * @describe: (社区)插入到积分日志表 - 新增积分清零记录 - 并且重置积分 + * @author wangtong + * @date 2022/4/2 16:35 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PostMapping(value = "points/pointslogs/insertPointsResetLogsCommunity", consumes = MediaType.APPLICATION_JSON_VALUE) + Result insertPointsResetLogsCommunity(ResetPointsDTO dto); } diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/PointsFeignClientFallback.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/PointsFeignClientFallback.java index 1fb87a6..7612579 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/PointsFeignClientFallback.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/PointsFeignClientFallback.java @@ -3,6 +3,7 @@ package com.elink.esua.epdc.feign.fallback; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ResetPointsDTO; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.feign.PointsFeignClient; import org.springframework.stereotype.Component; @@ -20,4 +21,9 @@ public class PointsFeignClientFallback implements PointsFeignClient { public Result insertPointsResetLogs(List formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPDC_POINTS_SERVER, "insertPointsResetLogs", formDTO); } + + @Override + public Result insertPointsResetLogsCommunity(ResetPointsDTO dto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_POINTS_SERVER, "insertPointsResetLogsCommunity", dto); + } } diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/UserService.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/UserService.java index 1425151..b717d0e 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/UserService.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/UserService.java @@ -494,4 +494,31 @@ public interface UserService extends BaseService { * @return com.elink.esua.epdc.commons.tools.utils.Result **/ Result resetUserPoints(); + + /** + * @describe: 重置该社区下所有用户的积分 + * @author wangtong + * @date 2022/4/2 15:01 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result resetPointsByCommunityId(ResetPointsDTO dto); + + /** + * @describe: 按社区清空用户积分 + * @author wangtong + * @date 2022/4/2 16:56 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result resetUserPointsCommunity(ResetPointsDTO dto); + + /** + * @describe: 获取社区积分列表 + * @author wangtong + * @date 2022/4/6 14:41 + * @params [params] + * @return com.elink.esua.epdc.commons.tools.page.PageData + */ + PageData getCommunityPointList(Map params); } diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index 201084d..32d13f3 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -1848,4 +1848,35 @@ public class UserServiceImpl extends BaseServiceImpl implem baseDao.resetPoints(); return new Result(); } + + @Override + public Result resetPointsByCommunityId(ResetPointsDTO dto) { + if(StringUtils.isBlank(dto.getCommunityId())){ + return new Result().error("社区id不可为空"); + } + // 先备份积分数据 + baseDao.insertUserPointsTempCommunity(dto); + // 查询需要清零的用户 + List userEntities = baseDao.selectResetUserList(dto); + if(userEntities.size() == NumConstant.ZERO){ + return new Result(); + } + // 插入到积分日志表 - 新增积分清零记录 - 并且重置积分 + dto.setUserList(ConvertUtils.sourceToTarget(userEntities, UserDTO.class)); + pointsFeignClient.insertPointsResetLogsCommunity(dto); + return new Result(); + } + + @Override + public Result resetUserPointsCommunity(ResetPointsDTO dto) { + baseDao.resetUserPointsCommunity(dto); + return new Result(); + } + + @Override + public PageData getCommunityPointList(Map params) { + IPage iPage = this.getPage(params); + List result = this.baseDao.getCommunityPointList(params); + return new PageData<>(result, iPage.getTotal()); + } } diff --git a/epdc-cloud-user/src/main/resources/mapper/UserDao.xml b/epdc-cloud-user/src/main/resources/mapper/UserDao.xml index 75e1b55..46b88b6 100644 --- a/epdc-cloud-user/src/main/resources/mapper/UserDao.xml +++ b/epdc-cloud-user/src/main/resources/mapper/UserDao.xml @@ -992,4 +992,38 @@ WHERE 1 = 1 update epdc_user set points = 0, UPDATED_TIME = now() where DEL_FLAG = '0' and points > 0 + + insert into epdc_user_points_temp(ID,POINTS,CREATED_TIME) + select ID,POINTS,now() from epdc_user + where DEL_FLAG = '0' + and FIND_IN_SET(#{communityId},ALL_DEPT_IDS) + + + + update epdc_user set points = 0, UPDATED_TIME = now() + where DEL_FLAG = '0' + and points > 0 + and FIND_IN_SET(#{communityId},ALL_DEPT_IDS) + +