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 <= #{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