Browse Source

积分统计功能

feature/syp_points
songyunpeng 5 years ago
parent
commit
305f6408d7
  1. 13
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/controller/PointsLogsController.java
  2. 7
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java
  3. 15
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsLogsService.java
  4. 40
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/impl/PointsLogsServiceImpl.java
  5. 80
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/EpdcAdjustUserPointsDTO.java
  6. 8
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java
  7. 2
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

13
esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/controller/PointsLogsController.java

@ -25,6 +25,7 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.EpdcAdjustUserPointsDTO;
import com.elink.esua.epdc.dto.PointsLogsDTO; import com.elink.esua.epdc.dto.PointsLogsDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO;
import com.elink.esua.epdc.excel.PointsLogsExcel; import com.elink.esua.epdc.excel.PointsLogsExcel;
@ -108,4 +109,16 @@ public class PointsLogsController {
ValidatorUtils.validateEntity(formDto); ValidatorUtils.validateEntity(formDto);
return pointsLogsService.confirmAdjustPoint(formDto); return pointsLogsService.confirmAdjustPoint(formDto);
} }
/**
* @Description 积分管理-积分统计 -统计调整积分
* @Author songyunpeng
* @Date 2020/6/9
* @Param [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
**/
@PostMapping("confirmUserAdjustPoint")
public Result confirmUserAdjustPoint(@RequestBody EpdcAdjustUserPointsDTO formDto){
ValidatorUtils.validateEntity(formDto);
return pointsLogsService.confirmUserAdjustPoint(formDto);
}
} }

7
esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java

@ -21,8 +21,11 @@ import com.elink.esua.epdc.service.PointsRuleService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.MessageModel;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener; import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
@ -33,8 +36,8 @@ import java.util.List;
* @Date2020/4/28 13:44 * @Date2020/4/28 13:44
*/ */
@Slf4j @Slf4j
//@Component @Component
//@RocketMQMessageListener(topic = RocketMqConstant.MQ_TOPIC_POINTS, consumerGroup = "${rocketmq.consumer.points-group}", messageModel = MessageModel.BROADCASTING) @RocketMQMessageListener(topic = RocketMqConstant.MQ_TOPIC_POINTS, consumerGroup = "${rocketmq.consumer.points-group}", messageModel = MessageModel.BROADCASTING)
public class PointsModifyConsumer implements RocketMQListener<MessageExt> { public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
@Autowired @Autowired

15
esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsLogsService.java

@ -20,17 +20,16 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.EpdcAdjustUserPointsDTO;
import com.elink.esua.epdc.dto.PointsLogsDTO; import com.elink.esua.epdc.dto.PointsLogsDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO;
import com.elink.esua.epdc.dto.form.PointsLogsFormDTO;
import com.elink.esua.epdc.dto.result.PointsLogsResultDTO;
import com.elink.esua.epdc.dto.result.PointsLogsSumResultDTO;
import com.elink.esua.epdc.dto.form.EpdcAppPointsRankingFormDTO; import com.elink.esua.epdc.dto.form.EpdcAppPointsRankingFormDTO;
import com.elink.esua.epdc.dto.form.EpdcAppPointsRecordFormDTO; import com.elink.esua.epdc.dto.form.EpdcAppPointsRecordFormDTO;
import com.elink.esua.epdc.dto.form.PointsLogsFormDTO;
import com.elink.esua.epdc.dto.result.EpdcAppPointsRankingResultDTO; import com.elink.esua.epdc.dto.result.EpdcAppPointsRankingResultDTO;
import com.elink.esua.epdc.dto.result.EpdcAppPointsRecordResultDTO; import com.elink.esua.epdc.dto.result.EpdcAppPointsRecordResultDTO;
import com.elink.esua.epdc.dto.result.PointsLogsResultDTO;
import com.elink.esua.epdc.entity.PointsLogsEntity; import com.elink.esua.epdc.entity.PointsLogsEntity;
import io.swagger.models.auth.In;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -164,4 +163,12 @@ public interface PointsLogsService extends BaseService<PointsLogsEntity> {
* @Date: 2020-04-30 * @Date: 2020-04-30
*/ */
EpdcAppPointsRankingResultDTO listPointsRanking(EpdcAppPointsRankingFormDTO formDto); EpdcAppPointsRankingResultDTO listPointsRanking(EpdcAppPointsRankingFormDTO formDto);
/**
* @Description 积分管理-积分统计 -统计调整积分
* @Author songyunpeng
* @Date 2020/6/9
* @Param [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
**/
Result confirmUserAdjustPoint(EpdcAdjustUserPointsDTO formDto);
} }

40
esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/impl/PointsLogsServiceImpl.java

@ -21,34 +21,33 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.async.NewsTask; import com.elink.esua.epdc.async.NewsTask;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.PointsConstant; import com.elink.esua.epdc.commons.tools.constant.PointsConstant;
import com.elink.esua.epdc.commons.tools.enums.BehaviorEnum;
import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsOperationEnum; import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsOperationEnum;
import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsOperationModeEnum; import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsOperationModeEnum;
import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.PointsLogsDao; import com.elink.esua.epdc.dao.PointsLogsDao;
import com.elink.esua.epdc.dto.EpdcAdjustUserPointsDTO;
import com.elink.esua.epdc.dto.PointsLogsDTO; import com.elink.esua.epdc.dto.PointsLogsDTO;
import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.constant.PointsNoticeConstant; import com.elink.esua.epdc.dto.constant.PointsNoticeConstant;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO;
import com.elink.esua.epdc.dto.form.PointsLogsFormDTO;
import com.elink.esua.epdc.dto.result.*;
import com.elink.esua.epdc.dto.form.EpdcAppPointsRankingFormDTO; import com.elink.esua.epdc.dto.form.EpdcAppPointsRankingFormDTO;
import com.elink.esua.epdc.dto.form.EpdcAppPointsRecordFormDTO; import com.elink.esua.epdc.dto.form.EpdcAppPointsRecordFormDTO;
import com.elink.esua.epdc.dto.form.PointsLogsFormDTO;
import com.elink.esua.epdc.dto.result.*;
import com.elink.esua.epdc.entity.PointsLogsEntity; import com.elink.esua.epdc.entity.PointsLogsEntity;
import com.elink.esua.epdc.feign.UsersFeignClient; import com.elink.esua.epdc.feign.UsersFeignClient;
import com.elink.esua.epdc.redis.PointsLogsRedis; import com.elink.esua.epdc.redis.PointsLogsRedis;
import com.elink.esua.epdc.service.PointsBehaviorService; import com.elink.esua.epdc.service.PointsBehaviorService;
import com.elink.esua.epdc.service.PointsLogsService; import com.elink.esua.epdc.service.PointsLogsService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.Rank;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -253,6 +252,37 @@ public class PointsLogsServiceImpl extends BaseServiceImpl<PointsLogsDao, Points
return rangking; return rangking;
} }
@Override
public Result confirmUserAdjustPoint(EpdcAdjustUserPointsDTO formDto) {
if(formDto.getOperatePoints()== NumConstant.ZERO){
return new Result().error("操作积分不能为0");
}
PointsLogsEntity pointsLogsEntity=new PointsLogsEntity();
pointsLogsEntity.setUserId(formDto.getId());
pointsLogsEntity.setNickname(formDto.getNickname());
pointsLogsEntity.setFaceImg(formDto.getFaceImg());
pointsLogsEntity.setOperationTime(new Date());
pointsLogsEntity.setOperationMode(PointsOperationModeEnum.OPERATION_MODE_ADMIN.getOperationMode());//操作方式(user-用户操作,admin-管理员操作,sys-系统操作)
pointsLogsEntity.setRuleCode(PointsConstant.ruleCode);
pointsLogsEntity.setBehaviorCode(PointsConstant.behaviorCodeCode);
pointsLogsEntity.setOperationDesc(formDto.getAdjustReason());//操作描述
pointsLogsEntity.setPoints(formDto.getOperatePoints());
pointsLogsEntity.setOperationType(formDto.getOperationType());//积分操作类型(0-减积分,1-加积分)
pointsLogsEntity.setReferenceId(formDto.getId());//积分操作类型(0-减积分,1-加积分)
EpdcUserPointsFormDTO userPointsFormDTO = new EpdcUserPointsFormDTO();
userPointsFormDTO.setUserId(formDto.getId());
userPointsFormDTO.setPoints(formDto.getOperatePoints());
userPointsFormDTO.setOperationType(formDto.getOperationType());
Result<UserDTO> result = usersFeignClient.handleUserPoints(userPointsFormDTO);
if (!result.success()) {
return new Result().error("调整用户积分失败");
}
//剩余积分
pointsLogsEntity.setLavePoints(result.getData().getPoints());
this.insert(pointsLogsEntity);
return new Result();
}
/** /**
* 获取排好序的排行榜数据 * 获取排好序的排行榜数据
* @param formDto * @param formDto

80
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/EpdcAdjustUserPointsDTO.java

@ -0,0 +1,80 @@
package com.elink.esua.epdc.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 用户积分调整入参DTO
* @Author
* @Date 2019/12/16 17:25
*/
@Data
public class EpdcAdjustUserPointsDTO implements Serializable {
private static final long serialVersionUID = -2810969141214818209L;
/**
* 用户ID
*/
@NotBlank(message = "用户不能为空")
private String id;
/**
* 姓名
*/
private String realName;
/**
* 用户昵称
*/
private String nickname;
/**
* 用户头像
*/
private String faceImg;
/**
* 性别(0-1-)
*/
private String sex;
/**
* 出生日期
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date birthday;
/**
* 手机号
*/
private String mobile;
/**
* 用户当前积分
*/
private Integer points;
/**
* 调整原因
*/
@NotBlank(message = "调整原因不能为空")
private String adjustReason;
/**
* 积分操作类型
*/
@NotBlank(message = "操作类型不能为空")
private String operationType;
/**
* 积分调整值
*/
private Integer operatePoints;
}

8
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java

@ -179,7 +179,13 @@ public class UserController {
return userService.handleUserPoints(formDTO); return userService.handleUserPoints(formDTO);
} }
/**
* @Description 用户积分统计列表
* @Author songyunpeng
* @Date 2020/6/9
* @Param [params]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.UserPointsDTO>>
**/
@GetMapping("pageForPoints") @GetMapping("pageForPoints")
public Result<PageData<UserPointsDTO>> pageForPoints(@RequestParam Map<String, Object> params) { public Result<PageData<UserPointsDTO>> pageForPoints(@RequestParam Map<String, Object> params) {
PageData<UserPointsDTO> page = userService.pageForPoints(params); PageData<UserPointsDTO> page = userService.pageForPoints(params);

2
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

@ -565,7 +565,7 @@
LEFT JOIN ( select * from (select * from epdc_user_grid_relation order by CREATED_TIME)t group by t.USER_ID) ug ON u.ID = ug.USER_ID)ug LEFT JOIN ( select * from (select * from epdc_user_grid_relation order by CREATED_TIME)t group by t.USER_ID) ug ON u.ID = ug.USER_ID)ug
where where
ug.del_flag = '0' ug.del_flag = '0'
<if test="realName != '' and realName != null">and ug.real_name like '%${realName}%'</if> <if test="realName != '' and realName != null">and ug.real_name like '%${realName}%' or ug.nickname like '%${realName}%'</if>
<if test="mobile != '' and mobile != null">and ug.mobile like '%${mobile}%'</if> <if test="mobile != '' and mobile != null">and ug.mobile like '%${mobile}%'</if>
<if test="streetId != '' and streetId != null"> <if test="streetId != '' and streetId != null">
AND (find_in_set(#{streetId},ug.PARENT_DEPT_IDS) AND (find_in_set(#{streetId},ug.PARENT_DEPT_IDS)

Loading…
Cancel
Save