puzhibing
2024-03-18 945561a655919045c3086f00d7d16dbc1d24c23f
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -31,13 +31,13 @@
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.service.RemoteGoodsService;
import com.ruoyi.system.api.service.RemoteShopService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -432,7 +432,7 @@
            coupon.setRelGoodsIds(relGoodsIds);
        }
        //判断是否指定用户
        List<Long> relUserIdList = null;
        List<Long> relUserIdList;
        if(coupon.getSendTarget()==5&&coupon.getRelationType()==1&&!mgtCouponEditDto.getRelUserIdList().isEmpty()){
            relUserIdList = mgtCouponEditDto.getRelUserIdList();
            List<CouponRelUser> couponRelUserList = new ArrayList<>();
@@ -448,10 +448,12 @@
            }
            couponRelUserService.saveBatch(couponRelUserList);
            coupon.setRelUserIds(userIdSj.toString());
        } else {
            relUserIdList = null;
        }
        //处理优惠券发放
        if(coupon.getSendFlag() == 0 && coupon.getSendType()==2&&coupon.getSendTimeType()==1){
            sendCoupon(coupon,relUserIdList);
            CompletableFuture.runAsync(()->sendCoupon(coupon,relUserIdList));
            coupon.setSendFlag(1);
            this.saveOrUpdate(coupon);
        }else{
@@ -467,7 +469,6 @@
     * @param relUserIdList
     * @return  void
     */
    @Async
    protected void sendCoupon(Coupon coupon, List<Long> relUserIdList){
        //1.手动领取2.全部用户3.会员用户4非会员用户5自定义
        Date nowTime = new Date();
@@ -507,14 +508,11 @@
            MemberCoupon memberCoupon;
            Integer sendTotal = 0;
            Integer sendPerson = 0;
            String memberCouponId;
            Integer sendUserTotal;
            for(Long userId : userIdList){
                if(coupon.getCouponFrom()==2){
                    for(int i=0;i<coupon.getLimitNumber();i++){
                        memberCouponId = IdUtils.simpleUUID();
                        memberCoupon = new MemberCoupon();
                        memberCoupon.setId(memberCouponId);
                        memberCoupon.setDelFlag(0);
                        memberCoupon.setCouponId(coupon.getCouponId());
                        memberCoupon.setUserId(userId);
@@ -564,9 +562,8 @@
                        memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
                    }
                }else{
                    memberCouponId = IdUtils.simpleUUID();
                    for (Integer i = 0; i < coupon.getLimitNumber(); i++) {
                    memberCoupon = new MemberCoupon();
                    memberCoupon.setId(memberCouponId);
                    memberCoupon.setDelFlag(0);
                    memberCoupon.setCouponId(coupon.getCouponId());
                    memberCoupon.setUserId(userId);
@@ -616,6 +613,7 @@
                    memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
                }
            }
            }
            memberCouponService.saveBatch(memberCouponList);
            //处理优惠券统计
            if(sendTotal>0){
@@ -663,12 +661,9 @@
            MemberCoupon memberCoupon;
            Integer sendTotal = 0;
            Integer sendPerson = 0;
            String memberCouponId;
            Integer sendUserTotal;
            for(Long userId : userIdList){
                memberCouponId = IdUtils.simpleUUID();
                memberCoupon = new MemberCoupon();
                memberCoupon.setId(memberCouponId);
                memberCoupon.setDelFlag(0);
                memberCoupon.setCouponId(coupon.getCouponId());
                memberCoupon.setUserId(userId);
@@ -1253,8 +1248,9 @@
            // 根据优惠券数量生成会员优惠券列表
            for(int i=0;i<birthdayGiftSendDto.getCouponNumber();i++){
                memberCoupon = new MemberCoupon();
                //TODO
                memberCouponId = IdUtils.simpleUUID();
                memberCoupon.setId(memberCouponId);
                //memberCoupon.setId(memberCouponId);
                memberCoupon.setDelFlag(0);
                memberCoupon.setCouponId(couponId);
                memberCoupon.setUserId(userId);
@@ -1425,8 +1421,8 @@
        }
        //生成用户优惠券
        MemberCoupon memberCoupon = new MemberCoupon();
        String memberCouponId = IdUtils.simpleUUID();
        memberCoupon.setId(memberCouponId);
        //String memberCouponId = IdUtils.simpleUUID();
        //memberCoupon.setId(memberCouponId);
        memberCoupon.setDelFlag(0);
        memberCoupon.setCouponId(couponId);
        memberCoupon.setUserId(userId);
@@ -1466,8 +1462,8 @@
        }else if(coupon.getValidTimeType()==2){
            memberCoupon.setDeadlineTime(DateUtils.addDays(new Date(),coupon.getValidDay()));
        }
        memberCouponService.save(memberCoupon);
        memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
        memberCouponService.insert(memberCoupon);
    }
    /**