xiaoyong931011
2022-08-29 a225da9a879c2becb13627a5f5d573d022bad1be
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;
@@ -49,16 +51,37 @@
        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(member.getId());
        MallScoreSignRecord mallScoreSignRecord = mallScoreSignRecordMapper.selectRecentSignRecord(member.getId());
        ScoreSignVo scoreSign = new ScoreSignVo();
        scoreSign.setMineScore(wallet.getPrizeScore().intValue());
        scoreSign.setHasSignDays(1);
        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
@@ -76,11 +99,12 @@
            mallScoreSignRecord = new MallScoreSignRecord();
        }
        System.out.println(DateUtil.between(mallScoreSignRecord.getSignTime(), new Date(), DateUnit.DAY));
        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) {