From 7ee9bc8fb2e42ce2e82cd1eacb57ba584611dfc5 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 23 六月 2023 11:04:32 +0800
Subject: [PATCH] 修改bug

---
 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java |   61 ++++++++++++++++++++----------
 1 files changed, 40 insertions(+), 21 deletions(-)

diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
index 9e29d77..e371ad1 100644
--- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
@@ -39,6 +39,7 @@
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigInteger;
 import java.net.InetAddress;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -186,11 +187,25 @@
                 appUser.setStatus(1);
                 appUser.setCreateTime(new Date());
                 appUser.setIsException(1);
-                appUser.setInviterId(signInToRegister.getInviterId());
-                appUser.setInviterType(signInToRegister.getInviterType());
+                if(null != signInToRegister.getInviterId()){
+                    appUser.setInviterId(signInToRegister.getInviterId());
+                    appUser.setInviterType(signInToRegister.getInviterType());
+                }
                 this.insert(appUser);
                 //发送优惠券
-                boolean lock = redisUtil.lock();
+                boolean lock = redisUtil.lock(5);
+                if(!lock){
+                    int num1 = 1;
+                    while (num1 <= 10){
+                        Thread.sleep(3000);//等待3秒
+                        lock = redisUtil.lock(5);
+                        if(lock){
+                            break;
+                        }else{
+                            num1++;
+                        }
+                    }
+                }
                 if(lock){
                     List<CouponWarpper> list = pushCoupon(appUser.getId());
                     redisUtil.unlock();
@@ -248,6 +263,8 @@
 
 
 
+
+
     /**
      * 发送优惠券
      * @param userId
@@ -257,28 +274,30 @@
                 .eq("coupon_state", 1).eq("status", 1).gt("remaining_quantity", 0));
         List<CouponWarpper> list = new ArrayList<>();
         for (Coupon coupon : coupons) {
-            UserToCoupon userToCoupon = new UserToCoupon();
-            userToCoupon.setCouponId(coupon.getId());
-            userToCoupon.setCreateTime(new Date());
-            userToCoupon.setUserId(userId);
-            userToCoupon.setStatus(1);
-            userToCoupon.setCouponTotal(coupon.getCouponSendQuantity() > coupon.getRemainingQuantity() ?
-                    coupon.getRemainingQuantity() : coupon.getCouponSendQuantity());
-            userToCoupon.setValidCount(userToCoupon.getCouponTotal());
-            userToCoupon.setExpireTime(new Date(System.currentTimeMillis() + (coupon.getCouponValidity() * 24 * 60 * 60 * 1000)));
-            userToCouponService.insert(userToCoupon);
+            Integer num = coupon.getCouponSendQuantity() > coupon.getRemainingQuantity() ?
+                    coupon.getRemainingQuantity() : coupon.getCouponSendQuantity();
+            for (int i = 0; i < num; i++) {
+                UserToCoupon userToCoupon = new UserToCoupon();
+                userToCoupon.setCouponId(coupon.getId());
+                userToCoupon.setCreateTime(new Date());
+                userToCoupon.setUserId(userId);
+                userToCoupon.setStatus(1);
+                userToCoupon.setCouponTotal(1);
+                userToCoupon.setValidCount(1);
+                userToCoupon.setExpireTime(new Date(System.currentTimeMillis() + (coupon.getCouponValidity().longValue() * 24L * 60L * 60L * 1000L)));
+                userToCouponService.insert(userToCoupon);
 
+                CouponWarpper couponWarpper = new CouponWarpper();
+                couponWarpper.setCouponConditionalAmount(coupon.getCouponConditionalAmount());
+                couponWarpper.setCouponPreferentialAmount(coupon.getCouponPreferentialAmount());
+                couponWarpper.setCouponName(coupon.getCouponName());
+                couponWarpper.setNumber(userToCoupon.getValidCount());
+                couponWarpper.setExpirationDate(userToCoupon.getExpireTime().getTime());
+                list.add(couponWarpper);
+            }
             coupon.setRemainingQuantity(coupon.getCouponSendQuantity() > coupon.getRemainingQuantity() ? 0 :
                     coupon.getRemainingQuantity() - coupon.getCouponSendQuantity());
             couponService.updateById(coupon);
-
-            CouponWarpper couponWarpper = new CouponWarpper();
-            couponWarpper.setCouponConditionalAmount(coupon.getCouponConditionalAmount());
-            couponWarpper.setCouponPreferentialAmount(coupon.getCouponPreferentialAmount());
-            couponWarpper.setCouponName(coupon.getCouponName());
-            couponWarpper.setNumber(userToCoupon.getValidCount());
-            couponWarpper.setExpirationDate(userToCoupon.getExpireTime().getTime());
-            list.add(couponWarpper);
         }
         return list;
     }

--
Gitblit v1.7.1