From 5c656bf6da9673b88d8dfefb5b3b459d29946472 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 11 Oct 2023 15:40:19 +0800 Subject: [PATCH] redbagprod --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 61 +++++++++++++++ src/main/resources/templates/febs/views/modules/goods/goodsCouponUpdate.html | 52 ++++++++++++ src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCouponVo.java | 3 src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java | 2 src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java | 5 + src/main/resources/templates/febs/views/modules/goods/goodsCouponAdd.html | 50 ++++++++++++ src/main/java/cc/mrbird/febs/mall/dto/CouponRuleAddDto.java | 5 + src/main/java/cc/mrbird/febs/mall/mapper/CouponGoodsMapper.java | 2 src/main/resources/mapper/modules/CouponGoodsMapper.xml | 6 + 9 files changed, 184 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java index fa61156..8cc2543 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java @@ -404,5 +404,10 @@ return new FebsResponse().success().data(adminMallGoodsService.findAdminMallGoodsCouponVoTreeList()); } + @GetMapping(value = "/goodsTreeSet") + public FebsResponse goodsTreeSet() { + return new FebsResponse().success().data(adminMallGoodsService.findAdminMallGoodsVoTreeList()); + } + } 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 7a2c95b..1e08024 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/CouponRuleAddDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/CouponRuleAddDto.java @@ -5,6 +5,8 @@ import javax.validation.constraints.*; import java.math.BigDecimal; +import java.util.List; + @Data @ApiModel(value = "CouponRuleAddDto", description = "参数类") public class CouponRuleAddDto { @@ -27,4 +29,7 @@ @DecimalMax(value = "10000", inclusive = false, message = "字段不能大于10000") private BigDecimal realAmount; + //优惠卷IDs + private List<Long> goodsIds; + } diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/CouponGoodsMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/CouponGoodsMapper.java index d4469a6..358ed36 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/CouponGoodsMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/CouponGoodsMapper.java @@ -10,5 +10,7 @@ List<Long> selectByGoodId(Long id); + List<Long> selectByCouponId(Long id); + List<CouponGoods> selectByGoodIdAndCouponId(@Param("goodsId")Long goodsId, @Param("couponId")Long couponId); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java index 6164200..daad038 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java @@ -72,4 +72,6 @@ List<AdminMallGoodsCouponTreeVo> findAdminMallGoodsCouponVoTree(); List<AdminMallGoodsCouponTreeListVo> findAdminMallGoodsCouponVoTreeList(); + + List<AdminMallGoodsCouponTreeListVo> findAdminMallGoodsVoTreeList(); } 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 6764092..28e95b3 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 @@ -865,6 +865,25 @@ mallGoodsCoupon.setCostAmount(couponRuleAddDto.getCostAmount()); mallGoodsCoupon.setRealAmount(couponRuleAddDto.getRealAmount()); mallGoodsCouponMapper.insert(mallGoodsCoupon); + + Long couponId = mallGoodsCoupon.getId(); + QueryWrapper<CouponGoods> objectQueryWrapperCoupon = new QueryWrapper<>(); + objectQueryWrapperCoupon.eq("coupon_id",couponId); + List<CouponGoods> couponGoodsList = couponGoodsMapper.selectList(objectQueryWrapperCoupon); + if(CollUtil.isNotEmpty(couponGoodsList)){ + for(CouponGoods couponGoods : couponGoodsList){ + couponGoodsMapper.deleteById(couponGoods); + } + } + if(CollUtil.isNotEmpty(couponRuleAddDto.getGoodsIds())){ + List<Long> goodsIds = couponRuleAddDto.getGoodsIds(); + for(Long goodsId : goodsIds){ + CouponGoods couponGoods = new CouponGoods(); + couponGoods.setGoodsId(goodsId); + couponGoods.setCouponId(couponId); + couponGoodsMapper.insert(couponGoods); + } + } return new FebsResponse().success().message("操作成功"); } @@ -906,7 +925,10 @@ @Override public AdminMallGoodsCouponVo selectGoodsCouponById(long id) { - return mallGoodsCouponMapper.selectGoodsCouponById(id); + List<Long> goodsIds = couponGoodsMapper.selectByCouponId(id); + AdminMallGoodsCouponVo adminMallGoodsCouponVo = mallGoodsCouponMapper.selectGoodsCouponById(id); + adminMallGoodsCouponVo.setGoodsIds(goodsIds); + return adminMallGoodsCouponVo; } @Override @@ -925,6 +947,25 @@ mallGoodsCoupon.setCostAmount(adminMallGoodsCouponVo.getCostAmount()); mallGoodsCoupon.setRealAmount(adminMallGoodsCouponVo.getRealAmount()); mallGoodsCouponMapper.updateById(mallGoodsCoupon); + + Long couponId = mallGoodsCoupon.getId(); + QueryWrapper<CouponGoods> objectQueryWrapperCoupon = new QueryWrapper<>(); + objectQueryWrapperCoupon.eq("coupon_id",couponId); + List<CouponGoods> couponGoodsList = couponGoodsMapper.selectList(objectQueryWrapperCoupon); + if(CollUtil.isNotEmpty(couponGoodsList)){ + for(CouponGoods couponGoods : couponGoodsList){ + couponGoodsMapper.deleteById(couponGoods); + } + } + if(CollUtil.isNotEmpty(adminMallGoodsCouponVo.getGoodsIds())){ + List<Long> goodsIds = adminMallGoodsCouponVo.getGoodsIds(); + for(Long goodsId : goodsIds){ + CouponGoods couponGoods = new CouponGoods(); + couponGoods.setGoodsId(goodsId); + couponGoods.setCouponId(couponId); + couponGoodsMapper.insert(couponGoods); + } + } return new FebsResponse().success().message("操作成功"); } @@ -963,4 +1004,22 @@ } return objects; } + + @Override + public List<AdminMallGoodsCouponTreeListVo> findAdminMallGoodsVoTreeList() { + QueryWrapper<MallGoods> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("is_sale",1); + List<MallGoods> mallGoodsList = mallGoodsMapper.selectList(objectQueryWrapper); + + List<AdminMallGoodsCouponTreeListVo> objects = new ArrayList<>(); + if(CollUtil.isNotEmpty(mallGoodsList)){ + for(MallGoods mallGoods : mallGoodsList){ + AdminMallGoodsCouponTreeListVo adminMallGoodsCouponTreeListVo = new AdminMallGoodsCouponTreeListVo(); + adminMallGoodsCouponTreeListVo.setId(mallGoods.getId()); + adminMallGoodsCouponTreeListVo.setName(mallGoods.getGoodsName()); + objects.add(adminMallGoodsCouponTreeListVo); + } + } + return objects; + } } 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 09628ee..9b68a3b 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCouponVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallGoodsCouponVo.java @@ -5,6 +5,7 @@ import javax.validation.constraints.*; import java.math.BigDecimal; +import java.util.List; @Data @ApiModel(value = "AdminMallGoodsCouponVo", description = "信息返回类") @@ -28,4 +29,6 @@ @DecimalMin(value = "0", inclusive = false, message = "字段不能小于0") @DecimalMax(value = "10000", inclusive = false, message = "字段不能大于10000") private BigDecimal realAmount; + + private List<Long> goodsIds; } diff --git a/src/main/resources/mapper/modules/CouponGoodsMapper.xml b/src/main/resources/mapper/modules/CouponGoodsMapper.xml index b8eb6a1..c5f1acf 100644 --- a/src/main/resources/mapper/modules/CouponGoodsMapper.xml +++ b/src/main/resources/mapper/modules/CouponGoodsMapper.xml @@ -8,6 +8,12 @@ where goods_id = #{id} </select> + <select id="selectByCouponId" resultType="java.lang.Long"> + select a.goods_id + from coupon_goods a + where coupon_id = #{id} + </select> + <select id="selectByGoodIdAndCouponId" resultType="cc.mrbird.febs.mall.entity.CouponGoods"> select a.* from coupon_goods a 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 feb0fde..c8ce3c3 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsCouponAdd.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsCouponAdd.html @@ -46,6 +46,17 @@ <div class="layui-form-mid">(元)金额。</div> <div class="layui-form-mid layui-word-aux">满足0元减免100元,则代表100元无门槛优惠卷。</div> </div> + + <blockquote class="layui-elem-quote blue-border">商品设置</blockquote> + <div class="layui-form-item coupon-rule"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">商品:</label> + <div class="layui-input-block"> + <div id="coupon-rule"></div> + </div> + </div> + </div> + </div> </div> </div> @@ -86,9 +97,48 @@ validate = layui.validate, element = layui.element; + var couponRule = xmSelect.render({ + el: '#coupon-rule', + language: 'zn', + prop : { + value : 'id', + children : 'child' + }, + iconfont: { + parent: 'hidden', + }, + toolbar: { + show: true, + }, + // radio: true, + clickClose: true, + tree: { + show: true, + //非严格模式 + strict: false, + }, + data: [] + }) + + febs.get(ctx + 'admin/goods/goodsTreeSet', null, function(res) { + couponRule.update({ + data : res.data, + autoRow: true, + }); + }) + form.render(); + form.on('submit(coupon-rule-add-form-submit)', function (data) { + let couponRuleList = couponRule.getValue(); + if (couponRuleList.length > 0) { + var couponIds = []; + layui.each(couponRuleList, function (key, item) { + couponIds.push(item.id) + }); + data.field.goodsIds=couponIds; + } $.ajax({ 'url':ctx + 'admin/goods/couponRuleAdd', 'type':'post', 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 fbf9a2c..5f29717 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsCouponUpdate.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsCouponUpdate.html @@ -45,6 +45,17 @@ <div class="layui-form-mid">(元)金额。</div> <div class="layui-form-mid layui-word-aux">满足0元减免100元,则代表100元无门槛优惠卷。</div> </div> + + <blockquote class="layui-elem-quote blue-border">商品设置</blockquote> + <div class="layui-form-item coupon-rule"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">商品:</label> + <div class="layui-input-block"> + <div id="coupon-rule"></div> + </div> + </div> + </div> + </div> </div> </div> @@ -88,7 +99,37 @@ form.render(); - initValue(); + var couponRuleGoodsIds = xmSelect.render({ + el: '#coupon-rule', + language: 'zn', + prop : { + value : 'id', + children : 'child' + }, + iconfont: { + parent: 'hidden', + }, + toolbar: { + show: true, + }, + // radio: true, + clickClose: true, + tree: { + show: true, + //非严格模式 + strict: false, + }, + data: [] + }) + + febs.get(ctx + 'admin/goods/goodsTreeSet', null, function(res) { + couponRuleGoodsIds.update({ + data : res.data, + autoRow: true, + }); + initValue(); + }) + function initValue() { form.val("coupon-rule-update-form", { @@ -98,9 +139,18 @@ "costAmount": couponRule.costAmount, "realAmount": couponRule.realAmount }); + couponRuleGoodsIds.setValue(couponRule.goodsIds); } form.on('submit(coupon-rule-update-form-submit)', function (data) { + let couponRuleList = couponRuleGoodsIds.getValue(); + if (couponRuleList.length > 0) { + var couponIds = []; + layui.each(couponRuleList, function (key, item) { + couponIds.push(item.id) + }); + data.field.goodsIds=couponIds; + } $.ajax({ 'url':ctx + 'admin/goods/couponUpdate', 'type':'post', -- Gitblit v1.9.1