bug
jiangqs
2023-09-20 fc0ebcb5f71190aa71274c509defba9c77a6804e
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/MemberCouponRecordServiceImpl.java
@@ -1,13 +1,14 @@
package com.ruoyi.member.service.impl.coupon;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.member.domain.pojo.coupon.Coupon;
import com.ruoyi.member.domain.pojo.coupon.CouponTotal;
import com.ruoyi.member.domain.pojo.coupon.MemberCouponRecord;
import com.ruoyi.member.mapper.coupon.MemberCouponRecordMapper;
import com.ruoyi.member.service.coupon.CouponTotalService;
import com.ruoyi.member.service.coupon.MemberCouponRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.member.domain.pojo.coupon.Coupon;
import com.ruoyi.member.domain.pojo.coupon.MemberCouponRecord;
import com.ruoyi.member.mapper.coupon.CouponTotalMapper;
import com.ruoyi.member.mapper.coupon.MemberCouponRecordMapper;
import com.ruoyi.member.service.coupon.MemberCouponRecordService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -25,7 +26,7 @@
    @Resource
    private CouponTotalService couponTotalService;
    private CouponTotalMapper couponTotalMapper;
    /**
     * @description  获取用户优惠券领取记录
@@ -55,7 +56,8 @@
    public void updateMemberCouponRecord(Coupon coupon, Long userId, Integer number) {
        // 根据优惠券ID和用户ID获取会员优惠券记录
        MemberCouponRecord memberCouponRecord = this.getByCouponIdAndUserId(coupon.getCouponId(), userId);
        CouponTotal couponTotal = couponTotalService.getById(coupon.getCouponId());
        Integer sendCount = number;
        Integer sendUserCount = 0;
        if (memberCouponRecord != null) {
            // 如果会员优惠券记录存在,则更新数量
            memberCouponRecord.setNum(memberCouponRecord.getNum() + number);
@@ -89,11 +91,14 @@
            } else {
                memberCouponRecord.setLimitFlag(0);
            }
            couponTotal.setSendUserCount(couponTotal.getSendUserCount()+1);
            sendUserCount = 1;
        }
        // 保存或更新会员优惠券记录
        Integer result = couponTotalMapper.updateCouponTotal(coupon.getCouponId(), sendCount,sendUserCount);
        if(result<1){
            throw new ServiceException(AppErrorConstant.COUPON_GET_ALL);
        }
        this.saveOrUpdate(memberCouponRecord);
        couponTotal.setSendCount(couponTotal.getSendCount()+number);
        couponTotalService.saveOrUpdate(couponTotal);
    }
}