Browse Source

设备积分列表;按社区清空人员积分

master
Jackwang 3 years ago
parent
commit
ac771cc7f4
  1. 38
      epdc-cloud-user/src/main/java/com/elink/esua/epdc/controller/UserController.java
  2. 41
      epdc-cloud-user/src/main/java/com/elink/esua/epdc/dao/UserDao.java
  3. 11
      epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/PointsFeignClient.java
  4. 6
      epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/PointsFeignClientFallback.java
  5. 27
      epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/UserService.java
  6. 31
      epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  7. 34
      epdc-cloud-user/src/main/resources/mapper/UserDao.xml

38
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<String, Object> params) {
PageData<CommunityPointsDTO> page = userService.getCommunityPointList(params);
return new Result<PageData<CommunityPointsDTO>>().ok(page);
}
}

41
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<UserEntity> {
* @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<com.elink.esua.epdc.entity.UserEntity>
*/
List<UserEntity> 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<com.elink.esua.epdc.dto.CommunityPointsDTO>
*/
List<CommunityPointsDTO> getCommunityPointList(Map<String, Object> params);
}

11
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<UserDTO> 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);
}

6
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<UserDTO> 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);
}
}

27
epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/UserService.java

@ -494,4 +494,31 @@ public interface UserService extends BaseService<UserEntity> {
* @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<com.elink.esua.epdc.dto.CommunityPointsDTO>
*/
PageData<CommunityPointsDTO> getCommunityPointList(Map<String, Object> params);
}

31
epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

@ -1847,4 +1847,35 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> 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<UserEntity> 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<CommunityPointsDTO> getCommunityPointList(Map<String, Object> params) {
IPage<CommunityPointsDTO> iPage = this.getPage(params);
List<CommunityPointsDTO> result = this.baseDao.getCommunityPointList(params);
return new PageData<>(result, iPage.getTotal());
}
}

34
epdc-cloud-user/src/main/resources/mapper/UserDao.xml

@ -992,4 +992,38 @@ WHERE 1 = 1
<update id="resetPoints">
update epdc_user set points = 0, UPDATED_TIME = now() where DEL_FLAG = '0' and points > 0
</update>
<insert id="insertUserPointsTempCommunity">
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)
</insert>
<select id="selectResetUserList" resultType="com.elink.esua.epdc.entity.UserEntity">
select * from epdc_user
where DEL_FLAG = '0'
and points > 0
and FIND_IN_SET(#{communityId},ALL_DEPT_IDS)
</select>
<update id="resetUserPointsCommunity">
update epdc_user set points = 0, UPDATED_TIME = now()
where DEL_FLAG = '0'
and points > 0
and FIND_IN_SET(#{communityId},ALL_DEPT_IDS)
</update>
<select id="getCommunityPointList" resultType="com.elink.esua.epdc.dto.CommunityPointsDTO">
SELECT
substring_index( PARENT_DEPT_IDS, ',',- 1 ) AS communityId,
substring_index( PARENT_DEPT_NAMES, '-',- 1 ) AS communityName,
sum(POINTS) as points
FROM
epdc_user
WHERE
DEL_FLAG = '0'
AND PARENT_DEPT_IDS != ''
<if test="communityName != null and communityName != '' ">
and PARENT_DEPT_NAMES like '%${communityName}%'
</if>
GROUP BY substring_index( PARENT_DEPT_IDS, ',',- 1 )
order by sum(POINTS) desc
</select>
</mapper>

Loading…
Cancel
Save