|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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) { | 
|---|