From 78e1ed981dcabb519fbc56bc27171a7af44b9494 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 03 Jan 2024 10:33:47 +0800
Subject: [PATCH] 修改推荐人

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java       |    2 +
 src/main/resources/templates/febs/views/modules/goods/goodsCouponUpdate.html    |   14 +++++++
 src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCouponVo.java                |    1 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   36 +++++++++++------
 src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCoupon.java                   |    6 +++
 src/main/resources/templates/febs/views/modules/goods/goodsCouponAdd.html       |   13 ++++++
 src/main/java/cc/mrbird/febs/mall/dto/CouponRuleAddDto.java                     |    1 
 7 files changed, 60 insertions(+), 13 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/dto/CouponRuleAddDto.java b/src/main/java/cc/mrbird/febs/mall/dto/CouponRuleAddDto.java
index 1e08024..df45fb4 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/CouponRuleAddDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/CouponRuleAddDto.java
@@ -17,6 +17,7 @@
     @NotNull(message = "过期天数不能为空")
     @Min(value = 0, message = "整数字段不能小于0")
     private Integer expireDay;
+    private Integer type;
     //满1000减100,满0减50;
     //满足金额
     @NotNull(message = "满足金额不能为空")
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCoupon.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCoupon.java
index d4a760c..1cffe8d 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCoupon.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCoupon.java
@@ -14,6 +14,10 @@
     private String name;
     //过期天数
     private Integer expireDay;
+    //类型 1:满100只减10 2:每满100减10
+    private Integer type;
+    public static final Integer TYPE_ONE = 1;
+    public static final Integer TYPE_TWO = 2;
     //1:未生效 2:生效中
     private Integer state;
     //满1000减100,满0减50;
@@ -21,4 +25,6 @@
     private BigDecimal costAmount;
     //减免金额
     private BigDecimal realAmount;
+
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index 28e95b3..6592d6d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -2,6 +2,7 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.utils.AppContants;
 import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
@@ -863,6 +864,7 @@
         mallGoodsCoupon.setName(name);
         mallGoodsCoupon.setExpireDay(couponRuleAddDto.getExpireDay());
         mallGoodsCoupon.setCostAmount(couponRuleAddDto.getCostAmount());
+        mallGoodsCoupon.setType(MallGoodsCoupon.TYPE_ONE);
         mallGoodsCoupon.setRealAmount(couponRuleAddDto.getRealAmount());
         mallGoodsCouponMapper.insert(mallGoodsCoupon);
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index a38156f..7b70a02 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -201,14 +201,6 @@
                         //卷是否和商品绑定
                         Long skuGoodsId = sku.getGoodsId();
                         Long couponId = mallMemberCoupon.getCouponId();
-                        List<CouponGoods> couponGoods = couponGoodsMapper.selectByGoodIdAndCouponId(skuGoodsId, couponId);
-                        if(ObjectUtil.isEmpty(couponGoods)){
-                            throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName());
-                        }
-//                        Long goodsId = mallMemberCoupon.getGoodsId();
-//                        if(goodsId != sku.getGoodsId()){
-//                            throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName());
-//                        }
                         MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(mallMemberCoupon.getCouponId());
                         if(ObjectUtil.isEmpty(mallGoodsCoupon)){
                             throw new FebsException(mallGoodsCoupon.getName()+"无法使用");
@@ -217,10 +209,26 @@
                         if(2 != stateCoupon){
                             throw new FebsException(mallGoodsCoupon.getName()+"无法使用");
                         }
+                        List<CouponGoods> couponGoods = couponGoodsMapper.selectByGoodIdAndCouponId(skuGoodsId, couponId);
+                        if(ObjectUtil.isEmpty(couponGoods)){
+                            throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName());
+                        }
+//                        Long goodsId = mallMemberCoupon.getGoodsId();
+//                        if(goodsId != sku.getGoodsId()){
+//                            throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName());
+//                        }
                         BigDecimal costAmount = mallGoodsCoupon.getCostAmount();
                         BigDecimal realAmount = mallGoodsCoupon.getRealAmount();
                         if(amount.compareTo(costAmount) >= 0){
-                            amount = (amount.subtract(realAmount).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(realAmount) : BigDecimal.ZERO);
+                            Integer type = mallGoodsCoupon.getType();
+                            if(MallGoodsCoupon.TYPE_TWO == type){
+                                BigDecimal divideTime = amount.divide(costAmount, 0, BigDecimal.ROUND_DOWN);//累计减免次数
+                                BigDecimal multiply = divideTime.multiply(realAmount);//实际减免金额
+                                amount = (amount.subtract(multiply).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(multiply) : BigDecimal.ZERO);
+                            }
+                            if(MallGoodsCoupon.TYPE_ONE == type){
+                                amount = (amount.subtract(realAmount).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(realAmount) : BigDecimal.ZERO);
+                            }
                             orderItem.setMemberCouponId(memberCouponId);
                             mallMemberCoupon.setState(2);
                             mallMemberCouponMapper.updateById(mallMemberCoupon);
@@ -280,6 +288,12 @@
         //过期时间修改成24小时
         agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(),  24 * 60 * 60 * 1000L);
         return orderInfo.getId();
+    }
+
+    public static void main(String[] args) {
+        BigDecimal bigDecimal = new BigDecimal(980);
+        BigDecimal divide = bigDecimal.divide(new BigDecimal(100), 0, BigDecimal.ROUND_DOWN);
+        System.out.println(divide);
     }
 
 
@@ -922,10 +936,6 @@
         }
 
         return new FebsResponse().success();
-    }
-
-    public static void main(String[] args) {
-        System.out.print(AgentLevelEnum.ZERO_LEVEL.name());
     }
 
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCouponVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCouponVo.java
index 9b68a3b..e6872f5 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCouponVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCouponVo.java
@@ -18,6 +18,7 @@
     @NotNull(message = "过期天数不能为空")
     @Min(value = 0, message = "整数字段不能小于0")
     private Integer expireDay;
+    private Integer type;
     //满1000减100,满0减50;
     //满足金额
     @NotNull(message = "满足金额不能为空")
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsCouponAdd.html b/src/main/resources/templates/febs/views/modules/goods/goodsCouponAdd.html
index c8ce3c3..7281f70 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsCouponAdd.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsCouponAdd.html
@@ -34,6 +34,13 @@
 
                                 <blockquote class="layui-elem-quote blue-border">规则</blockquote>
                                 <div class="layui-form-item">
+                                    <label class="layui-form-label">满减规则:</label>
+                                    <div class="layui-input-block">
+                                        <input type="radio" name="type" value="1" title="满减卷。满100只减10"  checked/>
+                                        <input type="radio" name="type" value="2" title="累计满减卷。每满100减10" />
+                                    </div>
+                                </div>
+                                <div class="layui-form-item">
                                     <label class="layui-form-label febs-form-item-require">满足:</label>
                                     <div class="layui-input-inline" style="width: 80px">
                                         <input type="text" name="costAmount" lay-verify="required" autocomplete="off" class="layui-input" >
@@ -131,6 +138,12 @@
 
 
         form.on('submit(coupon-rule-add-form-submit)', function (data) {
+            let type = data.field.type;
+            let costAmount = data.field.costAmount;
+            if(type == 2 && costAmount <= 0){
+                febs.alert.warn("累计满减卷,满足金额不能为0");
+                return false;
+            }
             let couponRuleList = couponRule.getValue();
             if (couponRuleList.length > 0) {
                 var couponIds = [];
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsCouponUpdate.html b/src/main/resources/templates/febs/views/modules/goods/goodsCouponUpdate.html
index 5f29717..705a4ae 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsCouponUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsCouponUpdate.html
@@ -33,6 +33,13 @@
 
                                 <blockquote class="layui-elem-quote blue-border">规则</blockquote>
                                 <div class="layui-form-item">
+                                    <label class="layui-form-label">满减规则:</label>
+                                    <div class="layui-input-block">
+                                        <input type="radio" name="type" value="1" title="满减卷。满100只减10"  checked/>
+                                        <input type="radio" name="type" value="2" title="累计满减卷。每满100减10" />
+                                    </div>
+                                </div>
+                                <div class="layui-form-item">
                                     <label class="layui-form-label febs-form-item-require">满足:</label>
                                     <div class="layui-input-inline" style="width: 80px">
                                         <input type="text" name="costAmount" lay-verify="required" autocomplete="off" class="layui-input" >
@@ -135,6 +142,7 @@
             form.val("coupon-rule-update-form", {
                 "id": couponRule.id,
                 "name": couponRule.name,
+                "type": couponRule.type,
                 "expireDay": couponRule.expireDay,
                 "costAmount": couponRule.costAmount,
                 "realAmount": couponRule.realAmount
@@ -143,6 +151,12 @@
         }
 
         form.on('submit(coupon-rule-update-form-submit)', function (data) {
+            let type = data.field.type;
+            let costAmount = data.field.costAmount;
+            if(type == 2 && costAmount <= 0){
+                febs.alert.warn("累计满减卷,满足金额不能为0");
+                return false;
+            }
             let couponRuleList = couponRuleGoodsIds.getValue();
             if (couponRuleList.length > 0) {
                 var couponIds = [];

--
Gitblit v1.9.1