From 529ad9dd8d1876b57e852bc45b602ba3ccc8df2a Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 10 Apr 2024 17:19:08 +0800 Subject: [PATCH] 公告-首页公告调整 --- src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java index 9bc7c00..62d0087 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java @@ -17,6 +17,8 @@ import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.service.IScoreService; import cc.mrbird.febs.mall.vo.ScoreSignVo; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; @@ -53,13 +55,33 @@ ScoreSignVo scoreSign = new ScoreSignVo(); scoreSign.setMineScore(wallet.getPrizeScore().intValue()); - scoreSign.setHasSignDays(mallScoreSignRecord == null ? 0 : mallScoreSignRecord.getTotalCnt()); + + if (mallScoreSignRecord == null) { + scoreSign.setHasSignDays(0); + } else { + mallScoreSignRecord = judgeScoreIsContinuity(mallScoreSignRecord); + scoreSign.setHasSignDays(mallScoreSignRecord.getTotalCnt()); + } DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SCORE_SIGN_SETTING.getType(), DataDictionaryEnum.SCORE_SIGN_SETTING.getCode()); if (dic != null) { scoreSign.setSetting(JSONObject.parseObject(dic.getValue(), ScoreSettingDto.class)); } return scoreSign; + } + + @Override + public MallScoreSignRecord judgeScoreIsContinuity(MallScoreSignRecord mallScoreSignRecord) { + if (mallScoreSignRecord.getSignTime() == null) { + return mallScoreSignRecord; + } + + // 若最新签到日期,与当天相差大于一天,则更新数据库(避免定时器更新失败) + if (DateUtil.betweenDay(mallScoreSignRecord.getSignTime(), new Date(), true) > 1 || mallScoreSignRecord.getTotalCnt() == 7) { + mallScoreSignRecord.setTotalCnt(0); + mallScoreSignRecordMapper.updateById(mallScoreSignRecord); + } + return mallScoreSignRecord; } @Override @@ -77,10 +99,12 @@ mallScoreSignRecord = new MallScoreSignRecord(); } - if (mallScoreSignRecord.getSignTime() != null && DateUtil.between(mallScoreSignRecord.getSignTime(), new Date(), DateUnit.DAY) == 0) { + if (mallScoreSignRecord.getSignTime() != null && DateUtil.betweenDay(mallScoreSignRecord.getSignTime(), new Date(), true) == 0) { throw new FebsException("今天已签到"); } + mallScoreSignRecord = judgeScoreIsContinuity(mallScoreSignRecord); + ScoreSettingDto scoreSetting = JSONObject.parseObject(dic.getValue(),ScoreSettingDto.class); int days = mallScoreSignRecord.getTotalCnt() == null ? 1 : mallScoreSignRecord.getTotalCnt() + 1; switch (days) { -- Gitblit v1.9.1