From 126479acd32d27fb269496635daa900abd792ea3 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Mon, 08 May 2023 23:40:48 +0800
Subject: [PATCH] 积分商城

---
 src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java               |    2 +
 src/main/resources/templates/febs/views/modules/score/goodsUpdate.html          |   19 +++++++++
 src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java                         |    4 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   11 +++++
 src/main/resources/mapper/modules/MallOrderInfoMapper.xml                       |    9 ++++
 src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java                   |    4 ++
 src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java                      |    4 ++
 src/main/resources/templates/febs/views/modules/score/goodsAdd.html             |   14 +++++++
 8 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
index 927d820..2a2aaf5 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
@@ -96,4 +96,8 @@
 
     private Integer normalPer;
 
+    private Integer rulesTimes;
+
+    private Integer rulesCnt;
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
index fa4c3c4..30488d7 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
@@ -107,4 +107,8 @@
      * 普通商品分红百分比
      */
     private Integer normalBonus;
+
+    private Integer rulesTimes;
+
+    private Integer rulesCnt;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
index bd436a2..57b1f9c 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
@@ -144,4 +144,8 @@
      * 普通商品分红百分比
      */
     private Integer normalBonus;
+
+    private Integer rulesTimes;
+
+    private Integer rulesCnt;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index 670a51b..9b41781 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -65,4 +65,6 @@
     BigDecimal selectTotalAmountByPayDoneAndDataString(@Param("payResult")int i, @Param("date") Date date);
 
     BigDecimal selectSumAmountByPayMethodAndSomeStatue(@Param("payMethod")String name, @Param("statues") List<Long> values);
+
+    List<MallOrderInfo> selectScoreOrderListInDate(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("goodsId") Long goodsId);
 }
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 7f8115e..287d863 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
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.enumerates.*;
 import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.exception.GeneratorException;
 import cc.mrbird.febs.common.utils.AppContants;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.MallUtils;
@@ -23,6 +24,8 @@
 import cc.mrbird.febs.pay.service.UnipayService;
 import cc.mrbird.febs.rabbit.producter.AgentProducer;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.thread.ThreadUtil;
@@ -144,6 +147,14 @@
                     throw new FebsException(mallGoods.getGoodsName() + "已下架");
                 }
 
+                if (mallGoods.getRulesTimes() != null && mallGoods.getRulesCnt() != null) {
+                    DateTime startDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -mallGoods.getRulesTimes());
+                    List<MallOrderInfo> orderInfos = this.baseMapper.selectScoreOrderListInDate(DateUtil.beginOfDay(startDate), DateUtil.endOfDay(new Date()), mallGoods.getId());
+                    if (CollUtil.isNotEmpty(orderInfos) && orderInfos.size() >= mallGoods.getRulesCnt()) {
+                        throw new FebsException("超出领取最大限制");
+                    }
+                }
+
                 BigDecimal amount = mallGoods.getScore().multiply(BigDecimal.valueOf(item.getCnt()));
                 orderItem.setAmount(amount);
                 orderItem.setCnt(item.getCnt());
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 82c23f7..0056296 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -319,4 +319,13 @@
             #{item}
         </foreach>
     </select>
+
+    <select id="selectScoreOrderListInDate" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+        select * from mall_order_info orderInfo
+            inner join mall_order_item orderItem on orderInfo.id=orderItem.order_id
+            inner join mall_goods goodsInfo on orderItem.goods_id=goodsInfo.ID and goodsInfo.goods_type = 2 and goodsInfo.id=#{goodsId}
+        where orderInfo.order_time >= #{startDate}
+            and orderInfo.order_time &lt;= #{endDate}
+            and orderInfo.status in (2,3,4,5)
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/score/goodsAdd.html b/src/main/resources/templates/febs/views/modules/score/goodsAdd.html
index 9e5facf..2835226 100644
--- a/src/main/resources/templates/febs/views/modules/score/goodsAdd.html
+++ b/src/main/resources/templates/febs/views/modules/score/goodsAdd.html
@@ -68,6 +68,20 @@
         </div>
 
         <div class="layui-form-item">
+            <div class="layui-col-lg6">
+                <label class="layui-form-label febs-form-item-require">规定时间内</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="rulesTimes"  lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+                </div>
+                <div class="layui-form-mid">天内,可领取</div>
+                <div class="layui-input-inline">
+                    <input type="text" name="rulesCnt"  lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+                </div>
+                <div class="layui-form-mid">次</div>
+            </div>
+        </div>
+
+        <div class="layui-form-item">
             <label class="layui-form-label">商品介绍:</label>
             <div class="layui-input-block">
                 <label>
diff --git a/src/main/resources/templates/febs/views/modules/score/goodsUpdate.html b/src/main/resources/templates/febs/views/modules/score/goodsUpdate.html
index 5b39b1f..b4d3dae 100644
--- a/src/main/resources/templates/febs/views/modules/score/goodsUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/score/goodsUpdate.html
@@ -69,6 +69,20 @@
         </div>
 
         <div class="layui-form-item">
+            <div class="layui-col-lg6">
+                <label class="layui-form-label febs-form-item-require">规定时间内</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="rulesTimes"  lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+                </div>
+                <div class="layui-form-mid">天内,可领取</div>
+                <div class="layui-input-inline">
+                    <input type="text" name="rulesCnt"  lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+                </div>
+                <div class="layui-form-mid">次</div>
+            </div>
+        </div>
+
+        <div class="layui-form-item">
             <label class="layui-form-label">商品介绍:</label>
             <div class="layui-input-block">
                 <label>
@@ -250,6 +264,8 @@
                 "originalPrice": goodsInfo.originalPrice,
                 "score": goodsInfo.score,
                 "thumb": goodsInfo.thumb,
+                "rulesTimes": goodsInfo.rulesTimes,
+                "rulesCnt": goodsInfo.rulesCnt,
                 "thumbs": thumbs
             });
 
@@ -275,6 +291,9 @@
 
         form.on('submit(score-goods-update-form-submit)', function (data) {
             data.field.goodsType = 2;
+            data.field.isSku = 2;
+            data.field.hasCarriage = 2;
+
             $.ajax({
                 'url':ctx + 'admin/goods/updateMallGoods',
                 'type':'post',

--
Gitblit v1.9.1