From 4f8b61980b0db5995c16139d8eb9542b66da8a9f Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 27 六月 2023 11:58:21 +0800
Subject: [PATCH] 修改bug

---
 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java |   66 ++++++++++++++++++++------------
 1 files changed, 41 insertions(+), 25 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 a34febb..16448d2 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
@@ -187,8 +187,10 @@
                 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(5);
@@ -204,9 +206,11 @@
                         }
                     }
                 }
-                List<CouponWarpper> list = pushCoupon(appUser.getId());
-                redisUtil.unlock();
-                warpper.setCoupons(list);
+                if(lock){
+                    List<CouponWarpper> list = pushCoupon(appUser.getId());
+                    redisUtil.unlock();
+                    warpper.setCoupons(list);
+                }
             }
             if(appUser.getStatus() == 2){
                 return ResultUtil.error("账号被冻结");
@@ -270,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().longValue() * 24L * 60L * 60L * 1000L)));
-            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;
     }
@@ -449,8 +455,13 @@
                                     accountChangeDetail.setOldData(appUser1.getAccountBalance());
                                     appUser1.setAccountBalance(appUser1.getAccountBalance() + rechargeRecord1.getAmount());
                                     accountChangeDetail.setNewData(appUser1.getAccountBalance());
-                                    AppUserServiceImpl.this.updateById(appUser1);
                                     accountChangeDetailService.saveData(accountChangeDetail);
+                                    SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 6));
+                                    Double num2 = JSON.parseObject(systemConfig.getContent()).getDouble("num2");
+                                    if(appUser1.getHavDiscount() == 0 && rechargeRecord1.getAmount().compareTo(num2) >= 0){
+                                        appUser1.setHavDiscount(1);
+                                    }
+                                    AppUserServiceImpl.this.updateById(appUser1);
 
                                     rechargeRecord1.setPayTime(new Date());
                                     rechargeRecord1.setPayStatus(2);
@@ -503,8 +514,13 @@
         accountChangeDetail.setOldData(appUser.getAccountBalance());
         appUser.setAccountBalance(appUser.getAccountBalance() + rechargeRecord1.getAmount());
         accountChangeDetail.setNewData(appUser.getAccountBalance());
-        this.updateById(appUser);
         accountChangeDetailService.saveData(accountChangeDetail);
+        SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 6));
+        Double num2 = JSON.parseObject(systemConfig.getContent()).getDouble("num2");
+        if(appUser.getHavDiscount() == 0 && rechargeRecord1.getAmount().compareTo(num2) >= 0){
+            appUser.setHavDiscount(1);
+        }
+        this.updateById(appUser);
 
         rechargeRecord1.setPayTime(new Date());
         rechargeRecord1.setPayStatus(2);

--
Gitblit v1.7.1