diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/ActUserLogDTO.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/ActUserLogDTO.java index bc26710e3..8b29e8809 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/ActUserLogDTO.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/ActUserLogDTO.java @@ -55,7 +55,7 @@ public class ActUserLogDTO implements Serializable { private String actUserRelationId; /** - * 操作类别(0-报名,1-审核通过,2-打卡,3-取消报名,4-审核不通过) + * 操作类别(0-报名,1-审核通过,2-打卡,3-取消报名,4-审核不通过,5-确认积分,6-拒绝加积分) */ private String operationType; diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/form/ActPointCheckFormDTO.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/form/ActPointCheckFormDTO.java index 3975c7781..b47ed5f82 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/form/ActPointCheckFormDTO.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/form/ActPointCheckFormDTO.java @@ -21,7 +21,6 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; -import java.math.BigDecimal; /** * 活动信息表 @@ -35,7 +34,7 @@ public class ActPointCheckFormDTO implements Serializable { private static final long serialVersionUID = 1L; /** - * 主键 + * epdc_act_user_relation表主键 */ @NotBlank(message = "id不能为空") private String id; @@ -56,4 +55,4 @@ public class ActPointCheckFormDTO implements Serializable { private String failureReason; -} \ No newline at end of file +} diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/constant/HeartNoticeConstant.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/constant/HeartNoticeConstant.java index 77eb60973..214af08b8 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/constant/HeartNoticeConstant.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/constant/HeartNoticeConstant.java @@ -35,4 +35,14 @@ public interface HeartNoticeConstant { * 我的消息类型:1互动通知 */ String NOTICE_TYPE_INTERACTIVE_NOTICE = "1"; + + /** + * 打卡积分-拒绝加积分 + */ + String NOTICE_REFUSE_ADD_ACT_POINTS = "您参与的活动【拒绝积分】"; + + /** + * 打卡积分-确认加积分 + */ + String NOTICE_CONFIRM_ADD_ACT_POINTS = "您参与的活动【确认积分】"; } diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActInfoDao.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActInfoDao.java index 4ecacecc7..9e8b86eb2 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActInfoDao.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActInfoDao.java @@ -94,4 +94,13 @@ public interface ActInfoDao extends BaseDao { * @Date 2020/2/5 16:31 **/ ActInfoDetailResultDTO selectActInfoDetailResultDTO(String actId); + + /** + * @param actId + * @return void + * @Author yinzuomei + * @Description 活动打卡人数+1 + * @Date 2020/2/8 13:08 + **/ + void addClockNum(String actId); } diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActInfoService.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActInfoService.java index 580f01f49..47a4e35d2 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActInfoService.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActInfoService.java @@ -167,4 +167,13 @@ public interface ActInfoService extends BaseService { * @date 2019-12-11 */ void delete(String[] ids); + + /** + * @param actId + * @return void + * @Author yinzuomei + * @Description 活动打卡人数+1 + * @Date 2020/2/8 13:07 + **/ + void addClockNum(String actId); } diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java index 2fb72330b..ca69888da 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java @@ -235,6 +235,11 @@ public class ActInfoServiceImpl extends BaseServiceImpl getDetailByApp(ActInfoAppFormDTO formDto) { diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserClockLogServiceImpl.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserClockLogServiceImpl.java index 481902700..38dde64aa 100644 --- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserClockLogServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserClockLogServiceImpl.java @@ -24,27 +24,36 @@ import com.elink.esua.epdc.activity.form.ActPointCheckFormDTO; import com.elink.esua.epdc.activity.result.ActUserClockLogResultDTO; 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.PointsConstant; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; +import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsBehaviorCodeEnum; +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.PointsRuleCodeEnum; +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.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.constant.ActStateConstant; import com.elink.esua.epdc.constant.ActUserRelationStatusConstant; +import com.elink.esua.epdc.constant.HeartNoticeConstant; 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.logs.PointsLogsDTO; import com.elink.esua.epdc.modules.activity.dao.ActUserClockLogDao; import com.elink.esua.epdc.modules.activity.entity.ActUserClockLogEntity; +import com.elink.esua.epdc.modules.activity.entity.ActUserPointsLogEntity; import com.elink.esua.epdc.modules.activity.service.*; +import com.elink.esua.epdc.modules.async.NewsTask; import com.elink.esua.epdc.modules.feign.PointsFeignClient; import com.elink.esua.epdc.modules.feign.UserInfoFeignClient; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.text.DecimalFormat; import java.util.*; @@ -79,6 +88,8 @@ public class ActUserClockLogServiceImpl extends BaseServiceImpl page(Map params) { @@ -88,6 +99,7 @@ public class ActUserClockLogServiceImpl extends BaseServiceImpl getActUserClockLogFromPC(Map params) { IPage page = getPage(params); @@ -134,94 +146,124 @@ public class ActUserClockLogServiceImpl extends BaseServiceImpl result = userInfoFeignClient.getUserInfoById(checkDTO.getUserId()); - if (result.success() && null != result.getData()) { - UserDTO updateUserDTO = result.getData(); - //增加用户积分 - System.out.println(updateUserDTO.toString()); - updateUserDTO.setPoints(updateUserDTO.getPoints() + pointsLogsEntity.getPoints()); - pointsLogsEntity.setUserId(checkDTO.getUserId()); - pointsLogsEntity.setLavePoints(updateUserDTO.getPoints() + pointsLogsEntity.getPoints()); - Result userResult = userInfoFeignClient.updateUserInfo(updateUserDTO); - if (userResult.success()) { - // 用户积分记录 - Result pointResult = pointsFeignClient.addPointsLog(pointsLogsEntity); - if(pointResult.success()){ - return new Result(); - } else { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return new Result().error("积分记录增加失败。"); - } - - } else { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return new Result().error("用户信息更新失败。"); - } + } - } else { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return new Result().error("用户信息获取失败。"); + private Result updateUserPoints(ActPointCheckFormDTO actPointCheckFormDTO, ActInfoDTO actInfoDTO, ActUserRelationDTO actUserRelationDTO, ActUserPointsLogEntity actUserPointsLogEntity) { + PointsLogsDTO pointsLogsDTO = new PointsLogsDTO(); + //根据用户id查询志愿者信息 + Result volunteerInfoDTOResult = userInfoFeignClient.getVolunteerInfoDTOByUserId(actUserRelationDTO.getUserId()); + if (!volunteerInfoDTOResult.success() || null == volunteerInfoDTOResult.getData()) { + throw new RenException("查询志愿者信息异常"); + } + //直接调用fegin,返回剩余积分值 + EpdcUserPointsFormDTO userPointsFormDTO = new EpdcUserPointsFormDTO(); + userPointsFormDTO.setUserId(actUserRelationDTO.getUserId()); + userPointsFormDTO.setPoints(actInfoDTO.getReward()); + userPointsFormDTO.setOperationType(PointsOperationEnum.OPERATION_TYPE_ADD.getOperationType()); + Result result = userInfoFeignClient.handleUserPoints(userPointsFormDTO); + if (!result.success()) { + throw new RenException("更新用户积分异常"); } + pointsLogsDTO.setVolunteerId(volunteerInfoDTOResult.getData().getId()); + pointsLogsDTO.setUserId(actUserRelationDTO.getUserId()); + pointsLogsDTO.setOperationType(PointsOperationEnum.OPERATION_TYPE_ADD.getOperationType());//(0-减积分,1-加积分) + pointsLogsDTO.setPoints(actInfoDTO.getReward()); + pointsLogsDTO.setOperationTime(new Date()); + pointsLogsDTO.setOperationMode(PointsOperationModeEnum.OPERATION_MODE_ADMIN.getOperationMode()); + pointsLogsDTO.setRuleCode(PointsRuleCodeEnum.CONFIRM_JOIN_ACT.getRuleCode()); + pointsLogsDTO.setLavePoints(result.getData().getPoints());//剩余积分值 + pointsLogsDTO.setBehaviorCode(PointsBehaviorCodeEnum.JOIN_ACT.getBehaviorCode()); + pointsLogsDTO.setStatus(YesOrNoEnum.YES.value()); + pointsLogsDTO.setReferenceId(actUserPointsLogEntity.getId()); + pointsLogsDTO.setOperationDesc(actPointCheckFormDTO.getFailureReason()); + return pointsFeignClient.addPointsLog(pointsLogsDTO); + } + /** + * @param dto + * @param actInfoDTO + * @param actUserRelationDTO + * @return void + * @Author yinzuomei + * @Description 管理员确认积分、拒绝积分后给用户发送通知 + * @Date 2020/2/8 12:06 + **/ + private void insertUserInformation(ActPointCheckFormDTO dto, ActInfoDTO actInfoDTO, ActUserRelationDTO actUserRelationDTO) { + EpdcInformationFormDTO informationFormDTO = new EpdcInformationFormDTO(); + //确认积分或者拒绝积分 + if (ActStateConstant.ACT_USER_RELATION_STATUS_POINTPASS.equals(dto.getStatus())) { + informationFormDTO.setTitle(HeartNoticeConstant.NOTICE_CONFIRM_ADD_ACT_POINTS); + } else if (ActStateConstant.ACT_USER_RELATION_STATUS_POINTREJECT.equals(dto.getStatus())) { + informationFormDTO.setTitle(HeartNoticeConstant.NOTICE_REFUSE_ADD_ACT_POINTS); + } else { + return; + } + informationFormDTO.setUserId(actUserRelationDTO.getUserId()); + informationFormDTO.setType(HeartNoticeConstant.NOTICE_TYPE_INTERACTIVE_NOTICE); + informationFormDTO.setBusinessType(HeartNoticeConstant.NOTICE__BUSINESS_TYPE_ACTIVITY); + informationFormDTO.setBusinessId(actUserRelationDTO.getActId()); + informationFormDTO.setContent(dto.getFailureReason()); + informationFormDTO.setRelBusinessContent(actInfoDTO.getTitle()); + newsTask.insertUserInformation(informationFormDTO); } + @Override @Transactional(rollbackFor = Exception.class) public void update(ActUserClockLogDTO dto) { @@ -276,6 +318,7 @@ public class ActUserClockLogServiceImpl extends BaseServiceImpl + + + + update epdc_act_info eai + set eai.CLOCK_NUM=eai.CLOCK_NUM+1 + where eai.DEL_FLAG='0' + and eai.id=#{actId} + diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-client/src/main/java/com/elink/esua/epdc/constant/PointsNoticeConstant.java b/esua-epdc/epdc-module/epdc-points/epdc-points-client/src/main/java/com/elink/esua/epdc/constant/PointsNoticeConstant.java index 7ae4c0ce6..8190e6d37 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-client/src/main/java/com/elink/esua/epdc/constant/PointsNoticeConstant.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-client/src/main/java/com/elink/esua/epdc/constant/PointsNoticeConstant.java @@ -6,15 +6,20 @@ package com.elink.esua.epdc.constant; * @Date 2020/2/7 20:14 */ public interface PointsNoticeConstant { + /** + * 积分变更 + */ + String CHANGE_POINTS_NOTICE = "积分变更"; + /** * 减积分 */ - String SUBTRACT_POINTS_NOTICE = "积分变更【扣减积分】-"; + String SUBTRACT_POINTS_NOTICE = "【扣减积分】:"; /** * 加积分 */ - String ADD_POINTS_NOTICE = "积分变更【增加积分】+"; + String ADD_POINTS_NOTICE = "【增加积分】:"; /** * 消息所属业务类型:points积分商城 diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/logs/service/impl/PointsLogsServiceImpl.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/logs/service/impl/PointsLogsServiceImpl.java index 74babf04d..da589662f 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/logs/service/impl/PointsLogsServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/logs/service/impl/PointsLogsServiceImpl.java @@ -179,19 +179,20 @@ public class PointsLogsServiceImpl extends BaseServiceImpl