From d40bd347355518b189b1fb2ead2064265b10a049 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 1 Jul 2022 09:14:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/work/FinishActFormDTO.java | 21 ++++++++++++ .../dto/form/work/GrantPointsFormDTO.java | 6 ++++ .../epmet/dto/result/work/ActPageResDTO.java | 5 +++ .../controller/GrantPointsController.java | 2 ++ .../epmet/controller/WorkActController.java | 12 +++++++ .../com/epmet/service/WorkActService.java | 6 ++++ .../service/impl/GrantPointsServiceImpl.java | 24 ++++--------- .../service/impl/WorkActServiceImpl.java | 34 ++++++++++++++++++- .../src/main/resources/mapper/ActInfoDao.xml | 3 +- 9 files changed, 94 insertions(+), 19 deletions(-) create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/FinishActFormDTO.java diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/FinishActFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/FinishActFormDTO.java new file mode 100644 index 0000000000..6fe6f5ae7d --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/FinishActFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form.work; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/6/30 19:22 + */ +@Data +public class FinishActFormDTO extends SaveActualTimeFormDTO implements Serializable { + private static final long serialVersionUID = -4352058593501077516L; + @NotNull(message = "分值不能为空",groups =AddUserInternalGroup.class ) + private Integer reward; + private List userList; +} + diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/GrantPointsFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/GrantPointsFormDTO.java index b3b79453b5..ef0631ccc9 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/GrantPointsFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/GrantPointsFormDTO.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -27,4 +28,9 @@ public class GrantPointsFormDTO implements Serializable { @NotBlank(message = "理由不能为空", groups = {DenyUserShowGroup.class}) private String denyRewardReason; + /** + * true:给分;false:不给分 + */ + @NotNull(message = "请选择是否给分", groups = DenyUserShowGroup.class) + private Boolean grantPoint; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/ActPageResDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/ActPageResDTO.java index dff386732b..ce729c351b 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/ActPageResDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/ActPageResDTO.java @@ -89,5 +89,10 @@ public class ActPageResDTO implements Serializable { * 1已经总结0未总结 */ private Boolean summaryFlag; + + /** + * 活动积分 + */ + private Integer reward; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/GrantPointsController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/GrantPointsController.java index 72f402337a..390b3bfe21 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/GrantPointsController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/GrantPointsController.java @@ -54,6 +54,7 @@ public class GrantPointsController { **/ @PostMapping("deny") public Result deny(@RequestBody GrantPointsFormDTO formDTO){ + formDTO.setGrantPoint(false); ValidatorUtils.validateEntity(formDTO, GrantPointsFormDTO.DenyUserShowGroup.class); grantPointsService.deny(formDTO); return new Result(); @@ -68,6 +69,7 @@ public class GrantPointsController { **/ @PostMapping("agree") public Result agree(@RequestBody GrantPointsFormDTO formDTO){ + formDTO.setGrantPoint(true); ValidatorUtils.validateEntity(formDTO, GrantPointsFormDTO.AddUserInternalGroup.class); grantPointsService.agree(formDTO); return new Result(); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkActController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkActController.java index abc846eb86..845e6d239a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkActController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkActController.java @@ -328,4 +328,16 @@ public class WorkActController { public Result queryActDetail(@LoginUser TokenDto tokenDto, @RequestBody ActIdFormDTO formDTO) { return new Result().ok(workActService.queryActDetail(formDTO.getActId(), tokenDto.getUserId())); } + + /** + * 数字社区:结束活动 + * @param formDTO + * @return + */ + @PostMapping("finish") + public Result finish(@RequestBody FinishActFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,SaveActualTimeFormDTO.AddUserInternalGroup.class,SaveActualTimeFormDTO.UserShowGroup.class); + workActService.finish(formDTO); + return new Result(); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkActService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkActService.java index 588f8c4ef2..8d3f98cb37 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkActService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkActService.java @@ -164,4 +164,10 @@ public interface WorkActService { * @return */ ActDetailResultDTO queryActDetail(String actId, String userId); + + /** + * + * @param formDTO + */ + void finish(FinishActFormDTO formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/GrantPointsServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/GrantPointsServiceImpl.java index d761445c55..32607d5d9d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/GrantPointsServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/GrantPointsServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.service.impl; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; @@ -108,19 +109,14 @@ public class GrantPointsServiceImpl implements GrantPointsService { @Transactional(rollbackFor = Exception.class) public void agree(GrantPointsFormDTO formDTO) { //是否是待处理 - ActUserRelationDTO actUserRelationDTO=actUserRelationService.get(formDTO.getActUserRelationId()); - if(null==actUserRelationDTO){ - logger.warn("积分发放-给分act_user_relation is null,actUserRelationId="+formDTO.getActUserRelationId()); - return; - } //如果是已处理直接返回 - if(ActConstant.HANDLED.equals(actUserRelationDTO.getProcessFlag())){ - logger.info("积分发放-给分act_user_relation already handled,actUserRelationId="+formDTO.getActUserRelationId()); + ActUserRelationDTO actUserRelationDTO=actUserRelationService.get(formDTO.getActUserRelationId()); + if (null == actUserRelationDTO || ActConstant.HANDLED.equals(actUserRelationDTO.getProcessFlag())) { return; } //查取分值 ActInfoDTO actInfoDTO=actInfoService.get(actUserRelationDTO.getActId()); - if (null == actInfoDTO || ActConstant.ACT_STATUS_FINISHED.equals(actInfoDTO.getActStatus())) { + if (null == actInfoDTO || ActConstant.ACT_STATUS_FINISHED.equals(actInfoDTO.getActStatus())|| NumConstant.ZERO==actInfoDTO.getReward()) { logger.warn("积分发放-给分act_info is null or act_info is finished"); return; } @@ -152,20 +148,14 @@ public class GrantPointsServiceImpl implements GrantPointsService { @Override @Transactional(rollbackFor = Exception.class) public void deny(GrantPointsFormDTO formDTO) { - //是否是待处理 - ActUserRelationDTO actUserRelationDTO=actUserRelationService.get(formDTO.getActUserRelationId()); - if(null==actUserRelationDTO){ - logger.warn("积分发放-不给分act_user_relation is null,actUserRelationId="+formDTO.getActUserRelationId()); - return; - } //如果是已处理直接返回 - if(ActConstant.HANDLED.equals(actUserRelationDTO.getProcessFlag())){ - logger.info("积分发放-不给分act_user_relation already handled,actUserRelationId="+formDTO.getActUserRelationId()); + ActUserRelationDTO actUserRelationDTO=actUserRelationService.get(formDTO.getActUserRelationId()); + if (null == actUserRelationDTO || ActConstant.HANDLED.equals(actUserRelationDTO.getProcessFlag())) { return; } //查取分值 ActInfoDTO actInfoDTO=actInfoService.get(actUserRelationDTO.getActId()); - if (null == actInfoDTO || ActConstant.ACT_STATUS_FINISHED.equals(actInfoDTO.getActStatus())) { + if (null == actInfoDTO || ActConstant.ACT_STATUS_FINISHED.equals(actInfoDTO.getActStatus())|| NumConstant.ZERO==actInfoDTO.getReward()) { logger.warn("积分发放-不给分act_info is null or act_info is finished"); return; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java index 57ae820fbc..59cbd317aa 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java @@ -113,7 +113,8 @@ public class WorkActServiceImpl implements WorkActService { private IcActivityUnitRelationService icActivityUnitRelationService; @Resource private IcActivityServiceRelationService icActivityServiceRelationService; - + @Autowired + private ActPointLogService actPointLogService; /** * @author yinzuomei @@ -1716,4 +1717,35 @@ public class WorkActServiceImpl implements WorkActService { } return resultDTO; } + + /** + * @param formDTO + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void finish(FinishActFormDTO formDTO) { + // 1、保存活动实际开始、结束时间 + saveActualTime(formDTO); + // 2、积分大于0的->发放积分 + if (formDTO.getReward() > NumConstant.ZERO) { + for (GrantPointsFormDTO grantPointsFormDTO : formDTO.getUserList()) { + ActUserRelationDTO actUserRelationDTO = actUserRelationService.get(grantPointsFormDTO.getActUserRelationId()); + // 更新act_user_relation改为已处理,给分 + actUserRelationDTO.setProcessFlag(ActConstant.HANDLED); + actUserRelationDTO.setRewardFlag(grantPointsFormDTO.getGrantPoint() ? ActConstant.ACT_USER_STATUS_AGREE : ActConstant.ACT_USER_STATUS_DENY); + actUserRelationDTO.setDenyRewardReason(StrConstant.EPMETY_STR); + actUserRelationService.update(actUserRelationDTO); + // 增加一条act_point_log + ActPointLogDTO actPointLogDTO = new ActPointLogDTO(); + actPointLogDTO.setActId(actUserRelationDTO.getActId()); + actPointLogDTO.setUserId(actUserRelationDTO.getUserId()); + actPointLogDTO.setPoints(formDTO.getReward()); + actPointLogDTO.setOperateType(grantPointsFormDTO.getGrantPoint() ? ActConstant.ACT_USER_STATUS_AGREE : ActConstant.ACT_USER_STATUS_DENY); + actPointLogDTO.setRemark(grantPointsFormDTO.getGrantPoint() ? StrConstant.EPMETY_STR : grantPointsFormDTO.getDenyRewardReason()); + actPointLogService.save(actPointLogDTO); + } + } + // 3、结束活动 + finishAct(formDTO.getActId()); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml index c0bdf44c43..465dd8adb1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml @@ -828,7 +828,8 @@ AND aur.DEL_FLAG = '0' AND ( aur.`STATUS` = 'auditing' OR aur.`STATUS` = 'passed' ) ) AS signedUp, - ai.SUMMARY_FLAG as summaryFlag + ai.SUMMARY_FLAG as summaryFlag, + ai.REWARD as reward, FROM act_info ai WHERE