Browse Source

志愿者:加积分功能修改

feature/screenDataPush
songyunpeng 4 years ago
parent
commit
864f60e025
  1. 15
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserClockLogServiceImpl.java
  2. 27
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserRelationServiceImpl.java
  3. 13
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/UserInfoFeignClient.java
  4. 6
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/UserInfoFeignClientFallback.java
  5. 32
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcVolunteerPointsFormDTO.java
  6. 8
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java
  7. 19
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/VolunteerInfoController.java
  8. 12
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/VolunteerInfoEntity.java
  9. 14
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/VolunteerInfoService.java
  10. 30
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java

15
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserClockLogServiceImpl.java

@ -46,8 +46,8 @@ import com.elink.esua.epdc.dto.PointsLogsDTO;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.VolunteerInfoDTO;
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.EpdcVolunteerKindnessTimeFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerPointsFormDTO;
import com.elink.esua.epdc.dto.result.BehaviorResultDto;
import com.elink.esua.epdc.modules.activity.dao.ActUserClockLogDao;
import com.elink.esua.epdc.modules.activity.entity.ActInfoEntity;
@ -279,13 +279,14 @@ public class ActUserClockLogServiceImpl extends BaseServiceImpl<ActUserClockLogD
}
pointsFeignClient.addPointsLog(pointsLogsDTO);
//直接调用fegin,返回剩余积分值
EpdcUserPointsFormDTO userPointsFormDTO = new EpdcUserPointsFormDTO();
userPointsFormDTO.setUserId(actUserRelationDTO.getUserId());
userPointsFormDTO.setPoints(actInfoDTO.getReward());
userPointsFormDTO.setOperationType(PointsOperationEnum.OPERATION_TYPE_ADD.getOperationType());
Result<UserDTO> result = userInfoFeignClient.handleUserPoints(userPointsFormDTO);
EpdcVolunteerPointsFormDTO volunteerPointsFormDTO = new EpdcVolunteerPointsFormDTO();
volunteerPointsFormDTO.setVolunteerId(volunteerInfoDTOResult.getData().getId());
volunteerPointsFormDTO.setPoints(actInfoDTO.getReward());
volunteerPointsFormDTO.setOperationType(PointsOperationEnum.OPERATION_TYPE_ADD.getOperationType());
//2021-07-14 更新为不增加用户积分 增加志愿者公益积分
Result result = userInfoFeignClient.handleVolunteerPoints(volunteerPointsFormDTO);
if (!result.success()) {
throw new RenException("更新用户积分异常");
throw new RenException("更新志愿者公益积分异常");
}
return new Result();
}

27
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserRelationServiceImpl.java

@ -44,7 +44,7 @@ import com.elink.esua.epdc.dto.PointsLogsDTO;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.VolunteerInfoDTO;
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.EpdcVolunteerPointsFormDTO;
import com.elink.esua.epdc.dto.form.EpdcClockListV2FormDTO;
import com.elink.esua.epdc.dto.result.BehaviorResultDto;
import com.elink.esua.epdc.modules.activity.dao.ActInfoDao;
@ -333,15 +333,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
throw new RenException("查询志愿者信息异常");
}
//4、更新epdc_user表积分
//直接调用fegin,返回剩余积分值
EpdcUserPointsFormDTO userPointsFormDTO = new EpdcUserPointsFormDTO();
userPointsFormDTO.setUserId(actUserRelationDTO.getUserId());
userPointsFormDTO.setPoints(actInfoDTO.getPunishmentPoints());
userPointsFormDTO.setOperationType(PointsOperationEnum.OPERATION_TYPE_SUBSTRACT.getOperationType());
Result<UserDTO> result = userInfoFeignClient.handleUserPoints(userPointsFormDTO);
if (!result.success()) {
throw new RenException("更新用户积分异常");
}
//5、插入epdc_act_user_points_log记录
ActUserPointsLogDTO actUserPointsLogDTO = new ActUserPointsLogDTO();
actUserPointsLogDTO.setActUserId(actUserRelationDTO.getId());
@ -365,7 +357,11 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
pointsLogsDTO.setOperationTime(new Date());
pointsLogsDTO.setOperationMode(PointsOperationModeEnum.OPERATION_MODE_USER.getOperationMode());
pointsLogsDTO.setRuleCode(PointsRuleCodeEnum.CANCEL_ACT.getRuleCode());//积分规则编码
pointsLogsDTO.setLavePoints(result.getData().getPoints());//剩余积分值
Result<UserDTO> userById = userInfoFeignClient.getUserInfoById(actUserRelationDTO.getUserId());
if (!userById.success()) {
throw new RenException("获取用户信息失败");
}
pointsLogsDTO.setLavePoints(userById.getData().getPoints() + actInfoDTO.getReward());//剩余积分值
pointsLogsDTO.setBehaviorCode(BehaviorEnum.BREAK_PROMISE.getValue());//积分行为编码
pointsLogsDTO.setReferenceId(actUserPointsLog.getId());
//积分日志描述
@ -386,6 +382,15 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
}
}
pointsFeignClient.addPointsLog(pointsLogsDTO);
EpdcVolunteerPointsFormDTO volunteerPointsFormDTO = new EpdcVolunteerPointsFormDTO();
volunteerPointsFormDTO.setVolunteerId(volunteerInfoDTOResult.getData().getId());
volunteerPointsFormDTO.setPoints(actInfoDTO.getReward());
volunteerPointsFormDTO.setOperationType(PointsOperationEnum.OPERATION_TYPE_ADD.getOperationType());
//2021-07-14 更新为不增加用户积分 增加志愿者公益积分
Result result = userInfoFeignClient.handleVolunteerPoints(volunteerPointsFormDTO);
if (!result.success()) {
throw new RenException("更新志愿者公益积分异常");
}
//发送消息通知
this.sendUserInformation(actUserRelationDTO, actInfoDTO, HeartNoticeConstant.NOTICE__BUSINESS_TYPE_POINTS_SIGN_OUT);
}

13
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/UserInfoFeignClient.java

@ -7,6 +7,7 @@ import com.elink.esua.epdc.dto.VolunteerInfoDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerKindnessTimeFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerKindnessTimeUpdateFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerPointsFormDTO;
import com.elink.esua.epdc.modules.feign.fallback.UserInfoFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
@ -81,7 +82,7 @@ public interface UserInfoFeignClient {
@PostMapping(value = "app-user/volunteerinfo/addKindnessTime", consumes = MediaType.APPLICATION_JSON_VALUE)
Result addKindnessTime(EpdcVolunteerKindnessTimeFormDTO formDto);
/**
* @Description 更新志愿者爱心活动时长
* @Description 更新志愿者爱心活动时长
* @Author songyunpeng
* @Date 2020/9/11
* @Param [formDto]
@ -99,4 +100,14 @@ public interface UserInfoFeignClient {
**/
@PostMapping(value = "app-user/epdc-app/user/getUserGridIdByUserId/{userId}", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<Long> getUserGridIdByUserId(@PathVariable String userId);
/**
* @Description 更新志愿者积分
* @Author songyunpeng
* @Date 2021/7/14
* @Param [formDTO]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UserDTO>
**/
@PostMapping(value = "app-user/user/handleVolunteerPoints", consumes = MediaType.APPLICATION_JSON_VALUE)
Result handleVolunteerPoints(EpdcVolunteerPointsFormDTO formDTO);
}

6
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/UserInfoFeignClientFallback.java

@ -8,6 +8,7 @@ import com.elink.esua.epdc.dto.VolunteerInfoDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerKindnessTimeFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerKindnessTimeUpdateFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerPointsFormDTO;
import com.elink.esua.epdc.modules.feign.UserInfoFeignClient;
import org.springframework.stereotype.Component;
@ -55,4 +56,9 @@ public class UserInfoFeignClientFallback implements UserInfoFeignClient {
public Result<Long> getUserGridIdByUserId(String userId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserGridIdByUserId", userId);
}
@Override
public Result handleVolunteerPoints(EpdcVolunteerPointsFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "handleVolunteerPoints", formDTO);
}
}

32
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcVolunteerPointsFormDTO.java

@ -0,0 +1,32 @@
package com.elink.esua.epdc.dto.epdc.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Description 根据操作类型更新志愿者积分 入参DTO
* @Author syp
* @Date 2019/12/13 13:57
*/
@Data
public class EpdcVolunteerPointsFormDTO {
/**
* 积分操作类型(加积分减积分)
*/
@NotBlank(message = "积分操作类型不能为空")
private String operationType;
/**
* 用户ID
*/
@NotBlank(message = "志愿者id不能为空")
private String volunteerId;
@NotNull
/**
* 积分调整值
*/
private Integer points;
}

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

@ -212,8 +212,6 @@ public class UserController {
public Result<UserDTO> handleUserPoints(@RequestBody @Valid EpdcUserPointsFormDTO formDTO) {
return userService.handleUserPoints(formDTO);
}
/**
* @Description 获取已认证未删除用户列表
* @Author songyunpeng
@ -251,7 +249,7 @@ public class UserController {
}
/**
* @Description 党员认证通过并更新党员库信息
* @Description 党员认证通过并更新党员库信息
* @Author songyunpeng
* @Date 2020/6/10
* @Param [dto]
@ -298,7 +296,7 @@ public class UserController {
return userService.addPartyInfo(dto);
}
/**
* @Description 完善党员信息加积分
* @Description 完善党员信息加积分
* @Author songyunpeng
* @Date 2020/6/24
* @Param [dto]
@ -316,7 +314,7 @@ public class UserController {
/***
* 网格积分排名
* @param params
* @param params
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.UserPointResultDTO>>
* @author qushutong
* @date 2020/8/4 13:44

19
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/VolunteerInfoController.java

@ -18,16 +18,17 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
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.DefaultGroup;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.VolunteerInfoDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerKindnessTimeFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerKindnessTimeUpdateFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerPointsFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO;
import com.elink.esua.epdc.dto.epdc.result.VolunteerTagsResultDTO;
import com.elink.esua.epdc.excel.VolunteerInfoExcel;
@ -38,8 +39,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -257,4 +258,18 @@ public class VolunteerInfoController {
return new Result<List<VolunteerTagsResultDTO>>().ok(data);
}
/**
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @Author syp
* @Description 根据操作类型更新志愿者公益积分
* @Date 2019/12/13 15:01
**/
@PostMapping("handleVolunteerPoints")
public Result<UserDTO> handleVolunteerPoints(@RequestBody @Valid EpdcVolunteerPointsFormDTO formDTO) {
return volunteerInfoService.handleVolunteerPoints(formDTO);
}
}

12
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/VolunteerInfoEntity.java

@ -153,4 +153,16 @@ public class VolunteerInfoEntity extends DeptScope {
* 志愿者排序
*/
private Integer volunteerOrder;
/**
* 志愿者部门
*/
private String volunteerDept;
/**
* 志愿者公益积分
*/
private Integer volunteerPoints;
/**
* 志愿公益累计积分
*/
private Integer volunteerPointsTotal;
}

14
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/VolunteerInfoService.java

@ -22,10 +22,7 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UserTagDTO;
import com.elink.esua.epdc.dto.VolunteerInfoDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcAppVolunteerListFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcCompleteVolunteerInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerKindnessTimeFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcVolunteerKindnessTimeUpdateFormDTO;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.form.v2.EpdcCompleteVolunteerInfoV2FormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAppVolunteerListCountResultDTO;
@ -264,4 +261,13 @@ public interface VolunteerInfoService extends BaseService<VolunteerInfoEntity> {
* @return void
**/
void modifyOrganizationInfo(OrganizationModifyDTO dto);
/**
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @Author syp
* @Description 根据操作类型更新志愿者积分
* @Date 2019/12/13 15:10
**/
Result handleVolunteerPoints(EpdcVolunteerPointsFormDTO formDTO);
}

30
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java

@ -27,13 +27,17 @@ import com.elink.esua.epdc.commons.mybatis.utils.DeptEntityUtils;
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.enums.UserTagEnum;
import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsOperationEnum;
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.Result;
import com.elink.esua.epdc.constant.UserFieldConsant;
import com.elink.esua.epdc.constant.VolunteerInfoNoticeConstant;
import com.elink.esua.epdc.dao.VolunteerInfoDao;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.UserTagDTO;
import com.elink.esua.epdc.dto.VolunteerInfoDTO;
import com.elink.esua.epdc.dto.VolunteerTagRelationDTO;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.form.v2.EpdcCompleteVolunteerInfoV2FormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO;
@ -46,7 +50,6 @@ import com.elink.esua.epdc.rocketmq.dto.OrganizationModifyDTO;
import com.elink.esua.epdc.service.UserTagRelationService;
import com.elink.esua.epdc.service.VolunteerInfoService;
import com.elink.esua.epdc.service.VolunteerTagRelationService;
import com.elink.esua.epdc.service.VolunteerTagService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -484,6 +487,29 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
updateBatchById(entities);
}
}
@Override
public Result handleVolunteerPoints(EpdcVolunteerPointsFormDTO formDTO) {
VolunteerInfoEntity volunteerInfoEntity= baseDao.selectById(formDTO.getVolunteerId());
if (null == volunteerInfoEntity) {
return new Result().error("未查询到该志愿者");
}
int points = null == volunteerInfoEntity.getVolunteerPoints() ? 0 : volunteerInfoEntity.getVolunteerPoints();
int pointsTotal = null == volunteerInfoEntity.getVolunteerPointsTotal() ? 0 : volunteerInfoEntity.getVolunteerPointsTotal();
//规则操作类型(0-减积分,1-加积分)
if (PointsOperationEnum.OPERATION_TYPE_ADD.getOperationType().equals(formDTO.getOperationType())) {
volunteerInfoEntity.setVolunteerPoints(points + formDTO.getPoints());
volunteerInfoEntity.setVolunteerPointsTotal(pointsTotal + formDTO.getPoints());
} else if (PointsOperationEnum.OPERATION_TYPE_SUBSTRACT.getOperationType().equals(formDTO.getOperationType())) {
if (formDTO.getPoints() > points) {
return new Result().error("用户积分不足");
}
volunteerInfoEntity.setVolunteerPoints(volunteerInfoEntity.getVolunteerPoints() - formDTO.getPoints());
}
baseDao.updateById(volunteerInfoEntity);
return new Result();
}
/**
* 组织机构信息处理
*

Loading…
Cancel
Save