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