From 1283dffb9a6e88238fbd074ca9fab1785a882f28 Mon Sep 17 00:00:00 2001 From: "382696293@qq.com" <382696293@qq.com> Date: Wed, 7 Feb 2024 16:51:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=A1=E5=A5=96=E5=8A=B1=E7=A7=AF?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxClockLogServiceImpl.java | 49 +++++++++++++++++-- .../service/impl/WxUserMemberServiceImpl.java | 3 +- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxClockLogServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxClockLogServiceImpl.java index 5987740..61314d9 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxClockLogServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxClockLogServiceImpl.java @@ -3,6 +3,7 @@ package com.flossom.miniProgram.service.impl; import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.domain.req.WxClockLogReq; import com.flossom.common.core.domain.ret.WxClockLogRet; +import com.flossom.common.core.enums.IntegralChangeTypeEnum; import com.flossom.common.core.enums.Status; import com.flossom.common.core.mapper.*; import com.flossom.common.core.utils.DateUtils; @@ -21,6 +22,7 @@ import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.ZoneId; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -52,6 +54,12 @@ public class WxClockLogServiceImpl implements IWxClockLogService { @Autowired private WxUserMemberMapper wxUserMemberMapper; + @Autowired + private WxUserIntegralLogMapper wxUserIntegralLogMapper; + + @Autowired + private IntegralClockMapper integralClockMapper; + @Value("${rank.clock.redisKey}") private String CLOCK_RANK_REDIS_KEY; @@ -73,9 +81,44 @@ public class WxClockLogServiceImpl implements IWxClockLogService { // 打卡记录一天只有一条 wxClockLog.setId(wxClockLogList.get(0).getId()); } else { - /** - * TODO:当天首次打卡奖励积分 - */ + IntegralClock integralClock = integralClockMapper.selectIntegralClockById(1L); + // 日常奖励加分 + Long credit = integralClock.getDailyClockCredit(); + if (credit != null && 1 == integralClock.getIsExtraClock() && integralClock.getStartTime() != null + && integralClock.getEndTime() != null && integralClock.getExtraClockCredit() != null) { + LocalDateTime nowTime = LocalDateTime.now(); + if (nowTime.isAfter(integralClock.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()) + && nowTime.isBefore(integralClock.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime())) { + credit += integralClock.getExtraClockCredit(); + } + } + if (credit != null && credit != 0) { + // 增加积分 + WxUserMember query = wxUserMemberMapper.selectWxUserMemberById(wxUserMember.getId()); + WxUserMember updateEntity = new WxUserMember(); + updateEntity.setId(query.getId()); + updateEntity.setCredit(updateEntity.getCredit() + credit.intValue()); + updateEntity.setUpdateBy(wxUserMember.getNickname()); + updateEntity.setUpdateTime(DateUtils.getNowDate()); + wxUserMemberMapper.updateWxUserMember(updateEntity); + + // 保存积分操作记录 + WxUserIntegralLog wxUserIntegralLog = new WxUserIntegralLog(); + wxUserIntegralLog.setUserId(wxUserMember.getId()); + wxUserIntegralLog.setUserName(wxUserMember.getNickname()); + wxUserIntegralLog.setUserPhone(wxUserMember.getMobile()); + wxUserIntegralLog.setSource(IntegralChangeTypeEnum.INCREASE.getCode()); + wxUserIntegralLog.setFloatScore(credit); + wxUserIntegralLog.setRemarkContent("打卡积分奖励"); + wxUserIntegralLog.setCreateBy(SecurityUtils.getLoginUser().getWxUserMember().getNickname()); + wxUserIntegralLog.setCreateTime(DateUtils.getNowDate()); + wxUserIntegralLogMapper.insertWxUserIntegralLog(wxUserIntegralLog); + + /** + * TODO:当天首次打卡奖励积分,同步数云 + */ + + } } wxClockLog.setClockContent(wxClockLogReq.getClockContent()); wxClockLog.setUserId(wxUserMember.getId()); diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java index da09bd2..54e0391 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java @@ -5,6 +5,7 @@ import com.flossom.common.core.constant.CacheConstants; import com.flossom.common.core.constant.UserConstants; import com.flossom.common.core.domain.R; import com.flossom.common.core.domain.entity.*; +import com.flossom.common.core.enums.IntegralChangeTypeEnum; import com.flossom.common.core.enums.MessageTypeEnum; import com.flossom.common.core.enums.WxUserIntegralMessageTypeEnum; import com.flossom.common.core.exception.ServiceException; @@ -203,7 +204,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { wxUserIntegralLog.setUserId(SecurityUtils.getLoginUser().getWxUserMember().getId()); wxUserIntegralLog.setUserName(userMemberUpdateVo.getNickname()); wxUserIntegralLog.setUserPhone(wxUserMember.getMobile()); - wxUserIntegralLog.setSource("1"); + wxUserIntegralLog.setSource(IntegralChangeTypeEnum.INCREASE.getCode()); wxUserIntegralLog.setFloatScore(integralGlobal.getIntegral()); wxUserIntegralLog.setRemarkContent("首次完善用户信息"); wxUserIntegralLog.setCreateBy(SecurityUtils.getLoginUser().getWxUserMember().getNickname());