From 9bb4c9aeeb6165c08e6be165640f177f2c193627 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 22 May 2025 16:09:52 +0800 Subject: [PATCH] feat(mall): 添加微信小店功能 --- src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java | 8 +++ src/main/resources/mapper/modules/MallGoodsMapper.xml | 4 ++ src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 14 +++++++ src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java | 6 +++ src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java | 5 ++ src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html | 46 +++++++++++++--------- src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html | 23 ++++++++++- 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/goods/goodsList.html | 4 + 10 files changed, 95 insertions(+), 23 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 fdf6ed7..81a0352 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java @@ -10,6 +10,10 @@ @ApiModel(value = "AddMallGoodsDto", description = "参数接收类") public class AddMallGoodsDto { + private String storeAppId; + + private String storeGoodsId; + private String goodsNo; private String goodsName; 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 3d8e80a..36f5e4b 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java @@ -11,6 +11,10 @@ @ApiModel(value = "MallGoodsUpdateDto", description = "参数接收类") public class MallGoodsUpdateDto { + private String storeAppId; + + private String storeGoodsId; + private Long id; private String goodsNo; 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 6cb4c4c..ef7b6e2 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java @@ -16,6 +16,11 @@ @TableName("mall_goods") public class MallGoods extends BaseEntity { + + private String storeAppId; + + private String storeGoodsId; + private String goodsNo; private String goodsName; 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 d2a5c45..eb2710c 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 @@ -73,6 +73,12 @@ return new FebsResponse().fail().message("商品编号不能重复"); } Integer carriageType = addMallGoodsDto.getCarriageType(); + if (addMallGoodsDto.getIsNormal() == 3) { + String storeAppId = addMallGoodsDto.getStoreAppId(); + if (ObjectUtil.isEmpty(storeAppId)) { + return new FebsResponse().fail().message("微信小店APP_ID不能为空"); + } + } if (addMallGoodsDto.getGoodsType() == 1) { if (1 == carriageType) { if (ObjectUtil.isEmpty(addMallGoodsDto.getCarriageAmount()) @@ -370,6 +376,14 @@ } } + + if (mallGoodsUpdateDto.getIsNormal() == 3) { + String storeAppId = mallGoodsUpdateDto.getStoreAppId(); + if (ObjectUtil.isEmpty(storeAppId)) { + return new FebsResponse().fail().message("微信小店APP_ID不能为空"); + } + } + if (mallGoodsUpdateDto.getGoodsType() != 2) { Long categoryId = mallGoodsUpdateDto.getCategoryId(); if (ObjectUtil.isEmpty(categoryId)) { diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java index deb8872..3640115 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java @@ -18,6 +18,12 @@ @ApiModelProperty(value = "id") private Long id; + @ApiModelProperty(value = "小店APP_ID") + private String storeAppId; + + @ApiModelProperty(value = "小店商品ID") + private String storeGoodsId; + @ApiModelProperty(value = "商品主图") private String thumb; @@ -66,7 +72,7 @@ @ApiModelProperty(value = "运费") private BigDecimal carriage; - @ApiModelProperty(value = "1-普通商品 2-套餐") + @ApiModelProperty(value = "1-普通商品 2-套餐 3-微信小店") private Integer isNormal; @ApiModelProperty(value = "轮播图") diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java index f319ed2..83f83b4 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java @@ -17,6 +17,12 @@ @ApiModelProperty(value = "id") private Long id; + @ApiModelProperty(value = "小店APP_ID") + private String storeAppId; + + @ApiModelProperty(value = "小店商品ID") + private String storeGoodsId; + @ApiModelProperty(value = "规格ID") private Long skuId; diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml index 8248c79..84b0c3f 100644 --- a/src/main/resources/mapper/modules/MallGoodsMapper.xml +++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml @@ -5,6 +5,8 @@ <resultMap id="MallGoodsMap" type="cc.mrbird.febs.mall.entity.MallGoods"> <id property="id" column="id" /> <result property="goodsNo" column="goods_no" /> + <result property="storeAppId" column="store_app_id" /> + <result property="storeGoodsId" column="store_goods_id" /> <result property="goodsName" column="goods_name" /> <result property="goodsIntrodution" column="goods_introdution" /> <result property="unit" column="unit" /> @@ -342,6 +344,8 @@ select a.id, a.goods_name, + a.store_app_id, + a.store_goods_id, a.goods_introdution goodsIntroduction, a.thumb, a.unit, diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html index 99d39ec..eaa4389 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html @@ -98,7 +98,7 @@ <div class="layui-input-block"> <select name="isNormal" class="goods-type" lay-filter="goods-type-select"> <option value="1">普通商品区</option> -<!-- <option value="2">套餐区</option>--> + <option value="3">微信小店</option> </select> </div> </div> @@ -110,15 +110,23 @@ <!-- </div>--> <!-- </div>--> -<!-- <div class="layui-form-item febs-hide tc-set">--> -<!-- <label class="layui-form-label">积分折扣(%)</label>--> -<!-- <div class="layui-input-block">--> -<!-- <input type="text" name="staticProp" placeholder="请输入积分折扣" autocomplete="off" class="layui-input">--> -<!-- <div class="layui-form-mid layui-word-aux">折扣积分=售价*积分折扣(%)*积分换算比例</div>--> -<!-- <div class="layui-form-mid layui-word-aux">不允许使用积分设置成:0%</div>--> -<!-- <div class="layui-form-mid layui-word-aux">全部使用积分设置成:大于等于100%</div>--> -<!-- </div>--> -<!-- </div>--> + + <blockquote class="layui-elem-quote blue-border febs-hide tc-set">微信小店设置</blockquote> + <div class="layui-form-item febs-hide tc-set"> + <div class="layui-col-lg6"> + <label class="layui-form-label">APP_ID:</label> + <div class="layui-input-block"> + <input type="text" name="storeAppId" placeholder="请输入" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-col-lg6"> + <label class="layui-form-label">商品ID:</label> + <div class="layui-input-block"> + <input type="text" name="storeGoodsId" placeholder="请输入" autocomplete="off" class="layui-input"> + <div class="layui-form-mid layui-word-aux">不填写商品ID,则跳转到微信小店首页。</div> + </div> + </div> + </div> </div> <div class="layui-tab-item"> @@ -826,14 +834,14 @@ return false; }); - // form.on('select(goods-type-select)', function(data){ - // $('.tc-set').each(function() { - // if (data.value == 2) { - // $(this).show(); - // } else { - // $(this).hide(); - // } - // }) - // }); + form.on('select(goods-type-select)', function(data){ + $('.tc-set').each(function() { + if (data.value == 3) { + $(this).show(); + } else { + $(this).hide(); + } + }) + }); }); </script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsList.html b/src/main/resources/templates/febs/views/modules/goods/goodsList.html index 518d7a3..bab8894 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsList.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsList.html @@ -82,8 +82,10 @@ <script type="text/html" id="goodsTypeFormat"> {{# if(d.isNormal == 1) { }} <span>普通商品</span> + {{# }else if(d.isNormal == 3) { }} + <span>微信小店</span> {{# } else { }} - <span>套餐</span> + <span>普通商品</span> {{# } }} </script> <style> diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html index b8e6881..5094d99 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html @@ -107,8 +107,25 @@ <select name="isNormal" class="goods-type" lay-filter="goods-type-select"> <option value="1">普通商品区</option> + <option value="3">微信小店</option> <!-- <option value="2">套餐区</option>--> </select> + </div> + </div> + <blockquote class="layui-elem-quote blue-border febs-hide tc-set">微信小店设置</blockquote> + <div class="layui-form-item febs-hide tc-set"> + <div class="layui-col-lg6"> + <label class="layui-form-label">APP_ID:</label> + <div class="layui-input-block"> + <input type="text" name="storeAppId" placeholder="请输入" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-col-lg6"> + <label class="layui-form-label">商品ID:</label> + <div class="layui-input-block"> + <input type="text" name="storeGoodsId" placeholder="请输入" autocomplete="off" class="layui-input"> + <div class="layui-form-mid layui-word-aux">不填写商品ID,则跳转到微信小店首页。</div> + </div> </div> </div> @@ -849,6 +866,8 @@ var thumbs = images.join(","); form.val("goods-update-form", { "id": goodsInfo.id, + "storeAppId": goodsInfo.storeAppId, + "storeGoodsId": goodsInfo.storeGoodsId, "goodsName": goodsInfo.goodsName, "goodsNo": goodsInfo.goodsNo, "unit": goodsInfo.unit, @@ -886,7 +905,7 @@ couponRule.setValue(goodsInfo.couponIds); - if (goodsInfo.isNormal == 2) { + if (goodsInfo.isNormal == 3) { $(".tc-set").show(); } @@ -981,7 +1000,7 @@ form.on('select(goods-type-select)', function (data) { $('.tc-set').each(function () { - if (data.value == 2) { + if (data.value == 3) { $(this).show(); } else { $(this).hide(); -- Gitblit v1.9.1