liujc 8 tháng trước cách đây
mục cha
commit
a8333cae9d

+ 5 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MemberPriceSettingsServiceImpl.java

@@ -224,17 +224,19 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
         addVipCardRecord.setOrderNo(orderDetailVo.getOrderNo());
         addVipCardRecord.setSubOrderNo(orderDetailVo.getSubOrderNo());
         addVipCardRecord.setVipCardId(orderDetailVo.getBizId());
+        addVipCardRecord.setOrderFlag(true);
 
         // 判断转换天数
 
         VipCardRecordWrapper.UserVip userVip = vipCardRecordService.userVipInfo(orderDetailVo.getUserId(), orderDetailVo.getOrderClient());
         int svipDays = getSvipDays(detail, orderDetailVo.getGoodNum(), userVip);
-        if (userVip.getVipType() == EVipType.VIP) {
-            userVip.setVipEndDays(Math.max(userVip.getVipEndDays()-1,0));
-        }
         if (detail.getVipType() == EVipType.SVIP &&userVip.getVipEndDays() !=null && svipDays >=userVip.getVipEndDays()) {
             addVipCardRecord.setVipDays(userVip.getVipEndDays());
+            if (userVip.getVipType() == EVipType.VIP) {
+                addVipCardRecord.setVipDays(Math.max(userVip.getVipEndDays()-1,0));
+            }
         }
+
         addVipCardRecord.setReason("会员购买");
         vipCardRecordService.add(addVipCardRecord);
 

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VipCardRecordServiceImpl.java

@@ -655,6 +655,13 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
         if (deductedStartDate.before(minStartTime)) {
             double day = (minStartTime.getTime() - deductedStartDate.getTime()) * 1.0D / (24 * 60 * 60 * 1000);
             if (day > 1.0D) {
+                if (addVipCardRecord.isOrderFlag()) {
+                    collect.stream().forEach(o->o.setEfficientFlag(false));
+
+                    this.updateBatchById(collect, 100);
+                    return null;
+                }
+
                 throw new BizException("剩余扣减数量不足");
             }
 //            deductedStartDate = minStartTime;

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/VipCardRecordWrapper.java

@@ -97,6 +97,8 @@ public class VipCardRecordWrapper {
         private String orderNo;
         private Long vipCardId;
         private String subOrderNo;
+
+        private boolean orderFlag = false;
     }
 
     @Data