From 8d120580505ba97dd9c7bdef9122bf80559a558d Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 09 Feb 2023 18:09:15 +0800 Subject: [PATCH] 后台商品匹配运费模板 规格增加重量 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 58 ++++++++- src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java | 2 src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java | 5 src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java | 7 src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java | 8 + src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java | 2 src/main/java/cc/mrbird/febs/mall/entity/MallGoodsSku.java | 2 src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsSkuDto.java | 2 src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html | 67 +++++++++- src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java | 2 src/main/java/cc/mrbird/febs/mall/vo/ApiMallCarriageRuleVo.java | 18 +++ src/main/java/cc/mrbird/febs/mall/vo/ApiMallCarriageRuleInfoVo.java | 40 ++++++ src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java | 14 + src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java | 38 +++++- src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html | 83 ++++++++++++- src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java | 8 + 16 files changed, 320 insertions(+), 36 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 6916488..8769c64 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java @@ -245,5 +245,10 @@ return adminMallGoodsService.carriageRuleUpdate(adminCarriageRuleUpdateDto); } + @GetMapping(value = "/carriageRuleTree") + public FebsResponse carriageRuleTree() { + return new FebsResponse().success().data(adminMallGoodsService.findAllCarriageRuleTree()); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java index ed39eb8..b8da8bc 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java @@ -4,10 +4,7 @@ import cc.mrbird.febs.mall.dto.ApiMallGoodsCommentDto; import cc.mrbird.febs.mall.dto.MallGoodsQueryDto; import cc.mrbird.febs.mall.service.IApiMallGoodsService; -import cc.mrbird.febs.mall.vo.ApiMallGoodsDeliveryVo; -import cc.mrbird.febs.mall.vo.MallGoodsCommentVo; -import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo; -import cc.mrbird.febs.mall.vo.MallGoodsListVo; +import cc.mrbird.febs.mall.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; @@ -84,4 +81,13 @@ return new FebsResponse().success().data(mallGoodsService.findDeliverySetting()); } + @ApiOperation(value = "获取运费模板信息", notes = "获取运费模板信息") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiMallCarriageRuleVo.class) + }) + @GetMapping(value = "/findMallCarriageRuleById/{id}") + public FebsResponse findMallCarriageRuleById(@PathVariable("id") Long id) { + return new FebsResponse().success().data(mallGoodsService.findMallCarriageRuleById(id)); + } + } 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 f3cf467..c58fe35 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java @@ -81,5 +81,13 @@ private Integer hasCarriage; private BigDecimal carriage; + //运费方式 (1:固定运费 2:运费模板) + private Integer carriageType; + //运费金额 + private BigDecimal carriageAmount; + //运费模板ID + private Long carriageRuleId; + //重量 + private BigDecimal goodsWeight; } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsSkuDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsSkuDto.java index bb9dbf5..1d474b0 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsSkuDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsSkuDto.java @@ -24,5 +24,7 @@ private String presentPrice; private BigDecimal costPrice; + //重量 + private BigDecimal goodsWeight; } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java index 341079a..f333a2f 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java @@ -32,5 +32,7 @@ private Long goodsId; private String delLog; + //重量 + private BigDecimal goodsWeight; } 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 977a0ca..9c2a08e 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java @@ -86,4 +86,12 @@ private Integer hasCarriage; private BigDecimal carriage; + //运费方式 (1:固定运费 2:运费模板) + private Integer carriageType; + //运费金额 + private BigDecimal carriageAmount; + //运费模板ID + private Long carriageRuleId; + //重量 + private BigDecimal goodsWeight; } 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 eec9a62..c104dda 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java @@ -122,5 +122,7 @@ private BigDecimal carriageAmount; //运费模板ID private Long carriageRuleId; + //重量 + private BigDecimal goodsWeight; } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsSku.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsSku.java index dd2ab88..d52c147 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsSku.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsSku.java @@ -38,4 +38,6 @@ @TableField(exist = false) private String styleName; + //重量 + private BigDecimal goodsWeight; } 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 494d851..a1917a8 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java @@ -51,4 +51,6 @@ AdminMallCarriageRuleVo selectCarriageRuleByRuleId(long id); FebsResponse carriageRuleUpdate(AdminCarriageRuleUpdateDto adminCarriageRuleUpdateDto); + + List<MallCarriageRule> findAllCarriageRuleTree(); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java index a806b59..64352fe 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java @@ -3,10 +3,7 @@ import cc.mrbird.febs.mall.dto.ApiMallGoodsCommentDto; import cc.mrbird.febs.mall.dto.MallGoodsQueryDto; import cc.mrbird.febs.mall.entity.MallGoods; -import cc.mrbird.febs.mall.vo.ApiMallGoodsDeliveryVo; -import cc.mrbird.febs.mall.vo.MallGoodsCommentVo; -import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo; -import cc.mrbird.febs.mall.vo.MallGoodsListVo; +import cc.mrbird.febs.mall.vo.*; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; @@ -26,4 +23,6 @@ MallGoodsCommentVo findMallGoodsCommentLevelByGoodsId(Long id); List<MallGoodsListVo> findMallGoodsListNoPage(MallGoodsQueryDto queryDto); + + ApiMallCarriageRuleVo findMallCarriageRuleById(Long id); } 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 6774b7f..9a89674 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 @@ -69,6 +69,20 @@ if (mallGoodsByGoodsNo > 0) { return new FebsResponse().fail().message("商品编号不能重复"); } + Integer carriageType = addMallGoodsDto.getCarriageType(); + if(1 == carriageType){ + if(ObjectUtil.isEmpty(addMallGoodsDto.getCarriageAmount()) + || BigDecimal.ZERO.compareTo(addMallGoodsDto.getCarriageAmount()) >= 0){ + return new FebsResponse().fail().message("固定邮费不能小于零"); + } + }else{ + Long carriageRuleId = addMallGoodsDto.getCarriageRuleId(); + MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(carriageRuleId); + if(ObjectUtil.isEmpty(mallCarriageRule)){ + return new FebsResponse().fail().message("邮费模板不能为空"); + } + } + // 付费商品 if (addMallGoodsDto.getGoodsType() != 2) { @@ -107,6 +121,10 @@ if (StrUtil.isEmpty(presentPrice)) { return new FebsResponse().fail().message("商品规格现价不能为空"); } + BigDecimal goodsWeight = addSku.getGoodsWeight(); + if(BigDecimal.ZERO.compareTo(goodsWeight) > 0){ + return new FebsResponse().fail().message("重量不能小于零"); + } } } } @@ -114,9 +132,9 @@ MallGoods mallGoods = MallGoodsConversion.INSTANCE.dtoToEntity(addMallGoodsDto); mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED); - if (mallGoods.getHasCarriage() == 2) { - mallGoods.setCarriage(BigDecimal.ZERO); - } +// if (mallGoods.getHasCarriage() == 2) { +// mallGoods.setCarriage(BigDecimal.ZERO); +// } mallGoodsMapper.insert(mallGoods); String thumbs = addMallGoodsDto.getThumbs(); @@ -156,6 +174,7 @@ sku.setSkuVolume(mallGoods.getVolume()); sku.setStock(mallGoods.getStock()); sku.setStyleId(style.getId()); + sku.setGoodsWeight(mallGoods.getGoodsWeight()); mallGoodsSkuMapper.insert(sku); return new FebsResponse().success().message("添加成功"); } @@ -192,6 +211,7 @@ mallGoodsSku.setStyleId(mallGoodsStyleSku.getId()); mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice()); mallGoodsSku.setGoodsId(mallGoods.getId()); + mallGoodsSku.setGoodsWeight(addMallGoodsSkuDto.getGoodsWeight()); mallGoodsSkuMapper.insert(mallGoodsSku); } } @@ -293,6 +313,19 @@ if (mallGoodsByGoodsNo > 0) { return new FebsResponse().fail().message("商品编号不能重复"); } + Integer carriageType = mallGoodsUpdateDto.getCarriageType(); + if(1 == carriageType){ + if(ObjectUtil.isEmpty(mallGoodsUpdateDto.getCarriageAmount()) + || BigDecimal.ZERO.compareTo(mallGoodsUpdateDto.getCarriageAmount()) > 0){ + return new FebsResponse().fail().message("固定邮费不能小于零"); + } + }else{ + Long carriageRuleId = mallGoodsUpdateDto.getCarriageRuleId(); + MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(carriageRuleId); + if(ObjectUtil.isEmpty(mallCarriageRule)){ + return new FebsResponse().fail().message("邮费模板不能为空"); + } + } if (mallGoodsUpdateDto.getGoodsType() != 2) { Long categoryId = mallGoodsUpdateDto.getCategoryId(); @@ -330,6 +363,10 @@ if (presentPrice.compareTo(BigDecimal.ZERO) < 0) { return new FebsResponse().fail().message("商品规格现价不能小于0"); } + BigDecimal goodsWeight = addSku.getGoodsWeight(); + if(BigDecimal.ZERO.compareTo(goodsWeight) > 0){ + return new FebsResponse().fail().message("重量不能小于零"); + } } } @@ -345,9 +382,9 @@ } BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods); - if (mallGoods.getHasCarriage() == 2) { - mallGoods.setCarriage(BigDecimal.ZERO); - } +// if (mallGoods.getHasCarriage() == 2) { +// mallGoods.setCarriage(BigDecimal.ZERO); +// } mallGoodsMapper.updateById(mallGoods); @@ -389,6 +426,7 @@ sku.setSkuVolume(mallGoods.getVolume()); sku.setStock(mallGoods.getStock()); sku.setStyleId(style.getId()); + sku.setGoodsWeight(mallGoods.getGoodsWeight()); mallGoodsSkuMapper.insert(sku); return new FebsResponse().success().message("添加成功"); } @@ -450,6 +488,7 @@ mallGoodsSku.setStyleId(addMallGoodsSkuDto.getStyleId()); mallGoodsSku.setGoodsId(mallGoods.getId()); mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice()); + mallGoodsSku.setGoodsWeight(addMallGoodsSkuDto.getGoodsWeight()); mallGoodsSkuMapper.updateById(mallGoodsSku); } else { //新增商品规格 @@ -464,6 +503,7 @@ mallGoodsSku.setStyleId(mallGoodsStyleSku.getId()); mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice()); mallGoodsSku.setGoodsId(mallGoods.getId()); + mallGoodsSku.setGoodsWeight(addMallGoodsSkuDto.getGoodsWeight()); mallGoodsSkuMapper.insert(mallGoodsSku); } } @@ -711,4 +751,10 @@ return new FebsResponse().success().message("操作成功"); } + + @Override + public List<MallCarriageRule> findAllCarriageRuleTree() { + List<MallCarriageRule> mallCarriageRules = mallCarriageRuleMapper.selectList(new QueryWrapper<>()); + return mallCarriageRules; + } } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java index e80afe0..1c89a4b 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java @@ -7,13 +7,8 @@ import cc.mrbird.febs.mall.conversion.MallMemberConversion; import cc.mrbird.febs.mall.dto.ApiMallGoodsCommentDto; import cc.mrbird.febs.mall.dto.MallGoodsQueryDto; -import cc.mrbird.febs.mall.entity.DataDictionaryCustom; -import cc.mrbird.febs.mall.entity.MallGoods; -import cc.mrbird.febs.mall.entity.MallGoodsComment; -import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; -import cc.mrbird.febs.mall.mapper.MallGoodsCommentMapper; -import cc.mrbird.febs.mall.mapper.MallGoodsImagesMapper; -import cc.mrbird.febs.mall.mapper.MallGoodsMapper; +import cc.mrbird.febs.mall.entity.*; +import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IApiMallGoodsService; import cc.mrbird.febs.mall.vo.*; import cn.hutool.core.collection.CollUtil; @@ -45,6 +40,8 @@ private final MallGoodsImagesMapper goodsImagesMapper; private final MallGoodsCommentMapper mallGoodsCommentMapper; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + private final MallCarriageRuleMapper mallCarriageRuleMapper; + private final MallCarriageRuleInfoMapper mallCarriageRuleInfoMapper; @Override @@ -59,6 +56,33 @@ } @Override + public ApiMallCarriageRuleVo findMallCarriageRuleById(Long id) { + ApiMallCarriageRuleVo apiMallCarriageRuleVo = new ApiMallCarriageRuleVo(); + + MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(id); + if(ObjectUtil.isEmpty(mallCarriageRule)){ + throw new FebsException("商品不存在"); + } + apiMallCarriageRuleVo.setName(mallCarriageRule.getName()); + + List<MallCarriageRuleInfo> mallCarriageRuleInfos = mallCarriageRuleInfoMapper.selectMallCarriageRuleInfoByRuleIdAndAreaAddress(id, null); + if(CollUtil.isNotEmpty(mallCarriageRuleInfos)){ + List<ApiMallCarriageRuleInfoVo> apiMallCarriageRuleInfoVos = new ArrayList<>(); + for(MallCarriageRuleInfo mallCarriageRuleInfo : mallCarriageRuleInfos){ + ApiMallCarriageRuleInfoVo apiMallCarriageRuleInfoVo = new ApiMallCarriageRuleInfoVo(); + apiMallCarriageRuleInfoVo.setAreaAddress(mallCarriageRuleInfo.getAreaAddress()); + apiMallCarriageRuleInfoVo.setBasicPrice(mallCarriageRuleInfo.getBasicPrice()); + apiMallCarriageRuleInfoVo.setBasicCnt(mallCarriageRuleInfo.getBasicCnt()); + apiMallCarriageRuleInfoVo.setMoreCnt(mallCarriageRuleInfo.getMoreCnt()); + apiMallCarriageRuleInfoVo.setMorePrice(mallCarriageRuleInfo.getMorePrice()); + apiMallCarriageRuleInfoVos.add(apiMallCarriageRuleInfoVo); + } + apiMallCarriageRuleVo.setApiMallCarriageRuleInfoVos(apiMallCarriageRuleInfoVos); + } + return apiMallCarriageRuleVo; + } + + @Override public MallGoodsDetailsVo findMallGoodsDetailsById(Long id) { MallGoods mallGoods = this.baseMapper.selectGoodsDetailById(id); if (mallGoods == null) { diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiMallCarriageRuleInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiMallCarriageRuleInfoVo.java new file mode 100644 index 0000000..22e38be --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiMallCarriageRuleInfoVo.java @@ -0,0 +1,40 @@ +package cc.mrbird.febs.mall.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "ApiMallCarriageRuleInfoVo", description = "运费模板详情返回参数类") +public class ApiMallCarriageRuleInfoVo { + //计价方式(1:按件算 2:按重量算) + + @ApiModelProperty(value = "计价方式(1:按件算 2:按重量算)") + private Integer valuationType; + //计价单位(件,KG) + + @ApiModelProperty(value = "计价单位(件,KG)") + private String valuationUnit; + //指定区域(没有指定区域,则为默认) + + @ApiModelProperty(value = "指定区域(没有指定区域,则为默认)") + private String areaAddress; + //基本数量 + + @ApiModelProperty(value = "基本数量") + private BigDecimal basicCnt; + //基本价格 + + @ApiModelProperty(value = "基本价格") + private BigDecimal basicPrice; + //超出的部分的基数数量 + + @ApiModelProperty(value = "超出的部分的基数数量") + private BigDecimal moreCnt; + //超出的部分的基数的价格 + + @ApiModelProperty(value = "超出的部分的基数的价格") + private BigDecimal morePrice; +} diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiMallCarriageRuleVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiMallCarriageRuleVo.java new file mode 100644 index 0000000..42e2a35 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiMallCarriageRuleVo.java @@ -0,0 +1,18 @@ +package cc.mrbird.febs.mall.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(value = "ApiMallCarriageRuleVo", description = "运费模板返回参数类") +public class ApiMallCarriageRuleVo { + + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "运费模板详情") + private List<ApiMallCarriageRuleInfoVo> apiMallCarriageRuleInfoVos; +} 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 5208f25..7c7b589 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html @@ -52,6 +52,12 @@ <input type="text" name="unit" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> </div> </div> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">重量:</label> + <div class="layui-input-block"> + <input type="text" name="goodsWeight" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> + </div> + </div> </div> <div class="layui-form-item"> <div class="layui-col-lg6"> @@ -190,19 +196,31 @@ <input type="text" name="costPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> </div> </div> - + <blockquote class="layui-elem-quote blue-border">运费设置</blockquote> <div class="layui-form-item"> - <label class="layui-form-label">设置运费:</label> + <label class="layui-form-label">运费:</label> <div class="layui-input-block"> - <input type="radio" name="hasCarriage" value="1" title="开启" lay-filter="hasCarriage" /> - <input type="radio" name="hasCarriage" value="2" title="关闭" lay-filter="hasCarriage" checked /> + <input type="radio" name="carriageType" value="1" title="固定运费" lay-filter="hasCarriage" /> + <input type="radio" name="carriageType" value="2" title="使用邮费模板" lay-filter="hasCarriage" checked/> </div> </div> - <div class="layui-form-item carriage-input febs-hide"> - <label class="layui-form-label">运费:</label> - <div class="layui-input-block"> - <input type="text" name="carriage" placeholder="" autocomplete="off" class="layui-input"> + <div class="layui-form-item carriage-input febs-hide"> + <div class="layui-col-lg6"> + <label class="layui-form-label">固定运费:</label> + <div class="layui-input-block"> + <input id="carriageAmountDefault" type="text" name="carriageAmount" placeholder="" autocomplete="off" class="layui-input"> + <div class="layui-form-mid layui-word-aux">远费设置为0元,前台商品将显示为免运费。</div> + </div> + </div> + </div> + + <div class="layui-form-item carriage-rule"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">邮费模板:</label> + <div class="layui-input-block"> + <div id="carriage-rule"></div> + </div> </div> </div> @@ -352,6 +370,33 @@ }); }) + var carriageRule = xmSelect.render({ + el: '#carriage-rule', + language: 'zn', + prop : { + value : 'id', + children : 'child' + }, + iconfont: { + parent: 'hidden', + }, + radio: true, + clickClose: true, + tree: { + show: true, + //非严格模式 + strict: false, + }, + data: [] + }) + + febs.get(ctx + 'admin/goods/carriageRuleTree', null, function(res) { + carriageRule.update({ + data : res.data, + autoRow: true, + }); + }) + var tableSkuData=[]; var tableIns = table.render({ elem: '#multiSku' @@ -363,6 +408,7 @@ ,{field: 'index', title: '序号', width:70} ,{field: 'styleName', title: '样式', edit:'text'} ,{field: 'skuName', title: '规格', edit:'text'} + ,{field: 'goodsWeight', title: '重量', edit:'text'} ,{field: 'presentPrice', title: '现价', edit:'text'} ,{field: 'originalPrice', title: '原价', edit:'text'} ,{field: 'costPrice', title: '成本价', edit:'text'} @@ -416,8 +462,12 @@ form.on('radio(hasCarriage)', function(data){ if (data.value == 2) { $('.carriage-input').hide(); + $('.carriage-rule').show(); + // document.getElementById('carriageAmountDefault').value = 0; } else { $('.carriage-input').show(); + $('.carriage-rule').hide(); + // document.getElementById('carriageAmountDefault').value = 0; } }); @@ -597,6 +647,7 @@ data.field.goodsType = 1; data.field.addMallGoodsSkuDtos = tableSkuData; data.field.categoryId = category.getValue('valueStr'); + data.field.carriageRuleId = carriageRule.getValue('valueStr'); data.field.goodsDetails = editor.getHtml(); $.ajax({ 'url':ctx + 'admin/goods/addMallGoods', 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 d91bcd3..70576a0 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html @@ -57,6 +57,12 @@ autoComplete="off" class="layui-input"> </div> </div> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">重量:</label> + <div class="layui-input-block"> + <input type="text" name="goodsWeight" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> + </div> + </div> </div> <div class="layui-form-item"> <div class="layui-col-lg6"> @@ -216,18 +222,31 @@ </div> </div> + <blockquote class="layui-elem-quote blue-border">运费设置</blockquote> <div class="layui-form-item"> - <label class="layui-form-label">设置运费:</label> + <label class="layui-form-label">运费:</label> <div class="layui-input-block"> - <input type="radio" name="hasCarriage" value="1" title="开启" lay-filter="hasCarriage" /> - <input type="radio" name="hasCarriage" value="2" title="关闭" lay-filter="hasCarriage" checked /> + <input type="radio" name="carriageType" value="1" title="固定运费" lay-filter="hasCarriage" /> + <input type="radio" name="carriageType" value="2" title="使用邮费模板" lay-filter="hasCarriage" checked/> </div> </div> - <div class="layui-form-item carriage-input febs-hide"> - <label class="layui-form-label">运费:</label> - <div class="layui-input-block"> - <input type="text" name="carriage" placeholder="" autocomplete="off" class="layui-input"> + <div class="layui-form-item carriage-input febs-hide"> + <div class="layui-col-lg6"> + <label class="layui-form-label">固定运费:</label> + <div class="layui-input-block"> + <input id="carriageAmountDefault" type="text" name="carriageAmount" placeholder="" autocomplete="off" class="layui-input"> + <div class="layui-form-mid layui-word-aux">远费设置为0元,商品将显示为免运费。</div> + </div> + </div> + </div> + + <div class="layui-form-item carriage-rule"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">邮费模板:</label> + <div class="layui-input-block"> + <div id="carriage-rule"></div> + </div> </div> </div> @@ -380,6 +399,35 @@ autoRow: true, }); + // initValue(); + }) + + var carriageRule = xmSelect.render({ + el: '#carriage-rule', + language: 'zn', + prop : { + value : 'id', + children : 'child' + }, + iconfont: { + parent: 'hidden', + }, + radio: true, + clickClose: true, + tree: { + show: true, + //非严格模式 + strict: false, + }, + data: [] + }) + + febs.get(ctx + 'admin/goods/carriageRuleTree', null, function(res) { + carriageRule.update({ + data : res.data, + autoRow: true, + }); + initValue(); }) @@ -394,6 +442,7 @@ , {field: 'index', title: '序号', width: 70} , {field: 'styleName', title: '样式', edit: 'text'} , {field: 'skuName', title: '规格', edit: 'text'} + , {field: 'goodsWeight', title: '重量', edit:'text'} , {field: 'presentPrice', title: '现价', edit: 'text'} , {field: 'originalPrice', title: '原价', edit: 'text'} , {field: 'costPrice', title: '成本价', edit: 'text'} @@ -455,8 +504,11 @@ form.on('radio(hasCarriage)', function(data){ if (data.value == 2) { $('.carriage-input').hide(); + $('.carriage-rule').show(); } else { $('.carriage-input').show(); + $('.carriage-rule').hide(); + document.getElementById('carriageAmountDefault').value = 0; } }); @@ -652,6 +704,9 @@ "costPrice": goodsInfo.costPrice, "isSku": goodsInfo.isSku, "thumb": goodsInfo.thumb, + "carriageType": goodsInfo.carriageType, + "carriageAmount": goodsInfo.carriageAmount, + "goodsWeight": goodsInfo.goodsWeight, "thumbs": thumbs }); @@ -659,8 +714,21 @@ arr.push(goodsInfo.categoryId) category.setValue(arr); + var arrCarriageRule = []; + arrCarriageRule.push(goodsInfo.carriageRuleId) + carriageRule.setValue(arrCarriageRule); + if (goodsInfo.isNormal == 2) { $(".tc-set").show(); + } + + if (goodsInfo.carriageType == 2) { + $('.carriage-input').hide(); + $('.carriage-rule').show(); + } else { + $('.carriage-input').show(); + $('.carriage-rule').hide(); + document.getElementById('carriageAmountDefault').value = goodsInfo.carriageAmount; } if (goodsInfo.isSku == 1) { @@ -706,6 +774,7 @@ data.field.mailGoodsSkuDto = tableSkuData; data.field.delSkuId=delSku; data.field.categoryId = category.getValue('valueStr'); + data.field.carriageRuleId = carriageRule.getValue('valueStr'); data.field.goodsDetails = editor.getHtml(); $.ajax({ 'url': ctx + 'admin/goods/updateMallGoods', -- Gitblit v1.9.1