From 45a6373618dd0a89903e87505d0660030ca5af81 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Thu, 18 May 2023 22:39:07 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 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 5c12fec..0f0aa3e 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 @@ -18,6 +18,7 @@ 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; @@ -26,6 +27,7 @@ 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; @@ -414,6 +416,24 @@ 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()); -- Gitblit v1.9.1