| | |
| | | import cc.mrbird.febs.mall.service.IMallMoneyFlowService; |
| | | import cc.mrbird.febs.mall.service.IScoreService; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateField; |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUnit; |
| | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.crypto.SecureUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | break; |
| | | } |
| | | |
| | | MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(member.getId()); |
| | | if (wallet.getPrizeScore().compareTo(new BigDecimal(scoreSetting.getMostSignIn())) > 0) { |
| | | throw new FebsException("积分达到上限"); |
| | | } |
| | | |
| | | LambdaQueryWrapper<MallScoreSignRecord> hasSignQuery = new LambdaQueryWrapper<>(); |
| | | hasSignQuery.le(MallScoreSignRecord::getSignTime, DateUtil.endOfDay(DateUtil.endOfMonth(new Date()))); |
| | | hasSignQuery.gt(MallScoreSignRecord::getSignTime, DateUtil.beginOfDay(DateUtil.beginOfMonth(new Date()))); |
| | | hasSignQuery.eq(MallScoreSignRecord::getMemberId, member.getId()); |
| | | List<MallScoreSignRecord> hasSignTotalList = mallScoreSignRecordMapper.selectList(hasSignQuery); |
| | | if (CollUtil.isNotEmpty(hasSignTotalList)) { |
| | | int totalScore = hasSignTotalList.stream().mapToInt(MallScoreSignRecord::getTotalCnt).sum(); |
| | | |
| | | if (totalScore + mallScoreSignRecord.getScore() > scoreSetting.getMostSignIn()) { |
| | | throw new FebsException("达到当月积分上限"); |
| | | } |
| | | } |
| | | |
| | | mallScoreSignRecord.setMemberId(member.getId()); |
| | | mallScoreSignRecord.setTotalCnt(days); |
| | | mallScoreSignRecord.setSignTime(new Date()); |