记得上下班打卡 | git大法好,push需谨慎

Commit d9d8b739 authored by zhangguobing's avatar zhangguobing

~api:券商品业务-商品创建/编辑入参优化;

parent 8ee7c233
package com.liquidnet.service.goblin.dto.manage;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.constant.LnsRegex;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.goblin.dto.GoblinGoodsSpecDto;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
......@@ -22,7 +20,6 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
......@@ -45,11 +42,11 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
@NotBlank(message = "商品名称不能为空")
@Size(max = 36, message = "商品名称长度超限")
private String name;
@ApiModelProperty(position = 13, required = false, value = "商品名称[128]")
@Size(max = 128, message = "商品副名称长度超限")
private String subtitle;//-
@ApiModelProperty(position = 14, required = false, value = "商品销售价-原价[20,2]")
private BigDecimal sellPrice;//-
// @ApiModelProperty(position = 13, required = false, value = "商品名称[128]")
// @Size(max = 128, message = "商品副名称长度超限")
// private String subtitle;//-
// @ApiModelProperty(position = 14, required = false, value = "商品销售价-原价[20,2]")
// private BigDecimal sellPrice;//-
@ApiModelProperty(position = 15, required = true, value = "商品一级分类ID[30]")
@NotBlank(message = "商品分类ID不能为空")
......@@ -78,26 +75,26 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
* ---------------------------- 价格库存 ----------------------------
**/
@ApiModelProperty(position = 23, required = false, value = "规格展现方式[1-常规|2-组合]", allowableValues = "1,2", example = "1")
@NotBlank(message = "规格展现方式不能为空")
@Pattern(regexp = "\\b(1|2)\\b", message = "规格展现方式参数无效")
private String specMode;
// @ApiModelProperty(position = 23, required = false, value = "规格展现方式[1-常规|2-组合]", allowableValues = "1,2", example = "1")
// @NotBlank(message = "规格展现方式不能为空")
// @Pattern(regexp = "\\b(1|2)\\b", message = "规格展现方式参数无效")
// private String specMode;
@ApiModelProperty(position = 24, required = false, value = "SKU规格信息[初次添加商品必填]")
// @NotNull(message = "SKU规格信息不能为空")
@Valid
private GoblinStoreMgtGoodsCouponAddSkuParam skuParam;
@ApiModelProperty(position = 25, required = false, value = "物流模版", example = "松鼠德邦")
@Size(max = 50, message = "物流模版ID过长")
private String logisticsTemplate;//-
// @ApiModelProperty(position = 25, required = false, value = "物流模版", example = "松鼠德邦")
// @Size(max = 50, message = "物流模版ID过长")
// private String logisticsTemplate;//-
@ApiModelProperty(position = 26, required = false, value = "商品编码[默认为系统编码,也可手动输入商家自己的编码]")
@Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_UNDER_50, message = "商品编码格式或长度有误")
private String spuNo;
@ApiModelProperty(position = 26, required = false, value = "ERP类型[WANGDIAN-旺店通]")
@Pattern(regexp = "\\b(WANGDIAN)\\b", message = "ERP类型无效")
private String erpType;//-
@ApiModelProperty(position = 26, required = false, value = "ERP货品编号[商品对应在ERP的商品编码,默认为空]")
@Size(max = 40, message = "ERP货品编号长度限制40")
private String spuErpCode;//-
// @ApiModelProperty(position = 26, required = false, value = "ERP类型[WANGDIAN-旺店通]")
// @Pattern(regexp = "\\b(WANGDIAN)\\b", message = "ERP类型无效")
// private String erpType;//-
// @ApiModelProperty(position = 26, required = false, value = "ERP货品编号[商品对应在ERP的商品编码,默认为空]")
// @Size(max = 40, message = "ERP货品编号长度限制40")
// private String spuErpCode;//-
/**
* ---------------------------- 商品介绍 ----------------------------
......@@ -118,12 +115,12 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
@ApiModelProperty(position = 29, required = false, value = "预约上架时间[yyyy-MM-dd HH:mm:ss][上架处理方式为3-预约定时上架时需要指定]")
@Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "预约上架时间格式有误")
private String shelvesTime;
@ApiModelProperty(position = 30, required = false, value = "商品有效期[yyyy-MM-dd]")
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "商品有效期格式有误")
private String spuValidity;
@ApiModelProperty(position = 31, required = false, value = "是否虚拟商品[0-否|1-是]", allowableValues = "0,1", example = "0")
@Pattern(regexp = "\\b(0|1)\\b", message = "是否虚拟商品参数无效")
private String virtualFlg;//---默认1
// @ApiModelProperty(position = 30, required = false, value = "商品有效期[yyyy-MM-dd]")
// @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "商品有效期格式有误")
// private String spuValidity;
// @ApiModelProperty(position = 31, required = false, value = "是否虚拟商品[0-否|1-是]", allowableValues = "0,1", example = "0")
// @Pattern(regexp = "\\b(0|1)\\b", message = "是否虚拟商品参数无效")
// private String virtualFlg;//---默认1
/**
* ---------------------------- 服务保障 ----------------------------
......@@ -165,8 +162,8 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
vo.setSpuNo(this.getSpuNo());
}
vo.setName(this.getName());
vo.setSubtitle(this.getSubtitle());
vo.setSellPrice(this.getSellPrice());
// vo.setSubtitle(this.getSubtitle());
// vo.setSellPrice(this.getSellPrice());
// vo.setPriceGe(BigDecimal.ZERO);
// vo.setPriceLe(BigDecimal.ZERO);
vo.setIntro(this.getIntro());
......@@ -179,7 +176,7 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
vo.setCateTid(this.getCateTid());
vo.setShelvesHandle(this.getShelvesHandle());
vo.setShelvesTime(this.getShelvesTime());
vo.setSpuValidity(this.getSpuValidity());
// vo.setSpuValidity(this.getSpuValidity());
vo.setVirtualFlg("1");
vo.setStatus("3");
// vo.setReason(null);
......@@ -203,8 +200,8 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
// vo.setTagVoList();
// vo.setServiceSupportVoList();
// vo.setExtagVoList();
vo.setErpType(StringUtils.isBlank(this.getErpType()) ? "WANGDIAN" : this.getErpType());
vo.setSpuErpCode(StringUtils.trim(this.getSpuErpCode()));
// vo.setErpType(StringUtils.isBlank(this.getErpType()) ? "WANGDIAN" : this.getErpType());
// vo.setSpuErpCode(StringUtils.trim(this.getSpuErpCode()));
return vo;
}
......@@ -221,8 +218,8 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
vo.setSpuId(this.getSpuId());
vo.setSpuNo(this.getSpuNo());
vo.setName(this.getName());
vo.setSubtitle(this.getSubtitle());
vo.setSellPrice(this.getSellPrice());
// vo.setSubtitle(this.getSubtitle());
// vo.setSellPrice(this.getSellPrice());
vo.setIntro(this.getIntro());
vo.setDetails(this.getDetails());
vo.setCoverPic(StringUtils.isBlank(this.getCoverPic()) ? this.getImageList().get(0) : this.getCoverPic());
......@@ -233,12 +230,12 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
vo.setCateTid(this.getCateTid());
vo.setShelvesHandle(this.getShelvesHandle());
vo.setShelvesTime(this.getShelvesTime());
vo.setSpuValidity(this.getSpuValidity());
// vo.setSpuValidity(this.getSpuValidity());
vo.setVirtualFlg("1");
vo.setImageList(this.getImageList());
vo.setLogisticsTemplate("");
// vo.setErpType();// 暂不考虑更改ERP类型
vo.setSpuErpCode(StringUtils.trim(this.getSpuErpCode()));
// vo.setSpuErpCode(StringUtils.trim(this.getSpuErpCode()));
return vo;
}
......@@ -269,29 +266,31 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
skuInfoVo.setSkuId(addSkuParam.getSkuId());
}
skuInfoVo.setSpuId(goodsInfoVo.getSpuId());
if (StringUtils.isNotBlank(addSkuParam.getSkuNo())) {
skuInfoVo.setSkuNo(addSkuParam.getSkuNo());
} else {
// if (StringUtils.isNotBlank(addSkuParam.getSkuNo())) {
// skuInfoVo.setSkuNo(addSkuParam.getSkuNo());
// } else {
skuInfoVo.setSkuNo(goodsInfoVo.getSpuNo());
}
if (StringUtils.isNotBlank(addSkuParam.getSkuBarCode())) {
skuInfoVo.setSkuBarCode(addSkuParam.getSkuBarCode());
} else {
// }
// if (StringUtils.isNotBlank(addSkuParam.getSkuBarCode())) {
// skuInfoVo.setSkuBarCode(addSkuParam.getSkuBarCode());
// } else {
skuInfoVo.setSkuBarCode(goodsInfoVo.getSpuNo());
}
// }
skuInfoVo.setName("张");
skuInfoVo.setSubtitle(goodsInfoVo.getSubtitle());
skuInfoVo.setSkuPic("");
skuInfoVo.setSkuIsbn("");
skuInfoVo.setStock(addSkuParam.getStock());
skuInfoVo.setSkuStock(skuInfoVo.getStock());
skuInfoVo.setWarningStock(addSkuParam.getWarningStock());
skuInfoVo.setSellPrice(addSkuParam.getSellPrice());
// skuInfoVo.setWarningStock(addSkuParam.getWarningStock());
// skuInfoVo.setSellPrice(addSkuParam.getSellPrice());
skuInfoVo.setPrice(addSkuParam.getPrice());
skuInfoVo.setPriceMember(null == addSkuParam.getPriceMember() ? addSkuParam.getPrice() : addSkuParam.getPriceMember());
skuInfoVo.setWeight(addSkuParam.getWeight());
skuInfoVo.setBuyFactor(addSkuParam.getBuyFactor());
skuInfoVo.setBuyRoster(addSkuParam.getBuyRoster());
// skuInfoVo.setPriceMember(null == addSkuParam.getPriceMember() ? addSkuParam.getPrice() : addSkuParam.getPriceMember());
skuInfoVo.setPriceMember(addSkuParam.getPrice());
// skuInfoVo.setWeight(addSkuParam.getWeight());
// skuInfoVo.setBuyFactor(addSkuParam.getBuyFactor());
skuInfoVo.setBuyFactor("0");
// skuInfoVo.setBuyRoster(addSkuParam.getBuyRoster());
skuInfoVo.setBuyLimit(addSkuParam.getBuyLimit());
skuInfoVo.setStoreId(goodsInfoVo.getStoreId());
// skuInfoVo.setSkuValidity(DateUtil.Formatter.yyyyMMddHHmmss.parse(addSkuParam.getSkuValidity()));
......@@ -307,26 +306,26 @@ public class GoblinStoreMgtGoodsCouponAddParam implements Serializable {
// skuInfoVo.setUpdatedBy();
// skuInfoVo.setUpdatedAt();
skuInfoVo.setLogisticsTemplate("");
skuInfoVo.setSkuErpCode(StringUtils.trim(addSkuParam.getSkuErpCode()));
// skuInfoVo.setSkuErpCode(StringUtils.trim(addSkuParam.getSkuErpCode()));
skuInfoVo.setErpType(goodsInfoVo.getErpType());
skuInfoVo.setErpWarehouseNo(StringUtils.trim(addSkuParam.getErpWarehouseNo()));
if (StringUtils.equals(addSkuParam.getErpHosting(), "1")) {
skuInfoVo.setErpHosting(1);
if (StringUtils.isBlank(goodsInfoVo.getSpuErpCode())) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("149022");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
if (StringUtils.isBlank(skuInfoVo.getSkuErpCode())) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("149023");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
if (StringUtils.isBlank(skuInfoVo.getErpWarehouseNo())) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("149024");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
} else {
// skuInfoVo.setErpWarehouseNo(StringUtils.trim(addSkuParam.getErpWarehouseNo()));
// if (StringUtils.equals(addSkuParam.getErpHosting(), "1")) {
// skuInfoVo.setErpHosting(1);
// if (StringUtils.isBlank(goodsInfoVo.getSpuErpCode())) {
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("149022");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
// if (StringUtils.isBlank(skuInfoVo.getSkuErpCode())) {
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("149023");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
// if (StringUtils.isBlank(skuInfoVo.getErpWarehouseNo())) {
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("149024");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
// } else {
skuInfoVo.setErpHosting(0);
}
// }
{// 规格信息处理
// 券类商品固定规格
......
......@@ -17,59 +17,59 @@ public class GoblinStoreMgtGoodsCouponAddSkuParam implements Serializable {
private static final long serialVersionUID = 7886534346305369761L;
@ApiModelProperty(position = 10, required = false, value = "单品ID[编辑时必传]")
private String skuId;
@ApiModelProperty(position = 11, required = false, value = "单品编码[默认为系统编码,也可手动输入商家自己的编码]")
@Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_UNDER_50, message = "单品编码格式或长度有误")
private String skuNo;
@ApiModelProperty(position = 12, required = false, value = "单品条码")
@Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_32, message = "单品条码格式或长度有误")
private String skuBarCode;
@ApiModelProperty(position = 13, required = false, value = "ERP商家编码")
@Size(max = 40, message = "ERP商家编码长度限制40")
private String skuErpCode;//-
@ApiModelProperty(position = 14, required = false, value = "ERP托管[0-否|1-是],默认0")
@Pattern(regexp = "\\b(0|1)\\b", message = "ERP托管参数无效")
private String erpHosting;//-
@ApiModelProperty(position = 15, required = false, value = "ERP仓库编号")
@Size(max = 40, message = "ERP仓库编号长度限制40")
private String erpWarehouseNo;//-
@ApiModelProperty(position = 16, required = false, value = "单品默认图片的url[256]")
@NotBlank(message = "单品图片不能为空")
private String skuPic;
// @ApiModelProperty(position = 11, required = false, value = "单品编码[默认为系统编码,也可手动输入商家自己的编码]")
// @Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_UNDER_50, message = "单品编码格式或长度有误")
// private String skuNo;
// @ApiModelProperty(position = 12, required = false, value = "单品条码")
// @Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_32, message = "单品条码格式或长度有误")
// private String skuBarCode;
// @ApiModelProperty(position = 13, required = false, value = "ERP商家编码")
// @Size(max = 40, message = "ERP商家编码长度限制40")
// private String skuErpCode;//-
// @ApiModelProperty(position = 14, required = false, value = "ERP托管[0-否|1-是],默认0")
// @Pattern(regexp = "\\b(0|1)\\b", message = "ERP托管参数无效")
// private String erpHosting;//-
// @ApiModelProperty(position = 15, required = false, value = "ERP仓库编号")
// @Size(max = 40, message = "ERP仓库编号长度限制40")
// private String erpWarehouseNo;//-
// @ApiModelProperty(position = 16, required = false, value = "单品默认图片的url[256]")
// @NotBlank(message = "单品图片不能为空")
// private String skuPic;
@ApiModelProperty(position = 12, required = false, value = "单品规格信息")
@NotNull(message = "规格信息不能为空")
// @NotNull(message = "规格信息不能为空")
// @Valid// 初始化写死['规格':'张']
private List<GoblinGoodsSpecDto> skuSpecList;
@ApiModelProperty(position = 18, required = false, value = "单品销售价-原价[20,2]")
private BigDecimal sellPrice;
// @ApiModelProperty(position = 18, required = false, value = "单品销售价-原价[20,2]")
// private BigDecimal sellPrice;
@ApiModelProperty(position = 19, required = true, value = "单品现价[20,2]")
@Digits(integer = 6, fraction = 2, message = "参数'单品现价'无效")
@DecimalMin(value = "0.01", message = "参数'单品现价'必须为大于0")
private BigDecimal price;
@ApiModelProperty(position = 20, required = false, value = "单品会员价格[20,2]")
@NotNull(message = "单品会员价格不能为空")
@Min(value = 0, message = "单品会员价格不能小于0")
private BigDecimal priceMember;
@ApiModelProperty(position = 21, required = false, value = "单品的重量[20,2]")
private BigDecimal weight;//-
// @ApiModelProperty(position = 20, required = false, value = "单品会员价格[20,2]")
// @NotNull(message = "单品会员价格不能为空")
// @Min(value = 0, message = "单品会员价格不能小于0")
// private BigDecimal priceMember;
// @ApiModelProperty(position = 21, required = false, value = "单品的重量[20,2]")
// private BigDecimal weight;//-
@ApiModelProperty(position = 20, required = true, value = "总库存")
@Min(value = 0, message = "总库存不能小于0")
private Integer stock;
@ApiModelProperty(position = 21, required = false, value = "预警库存")
private Integer warningStock;
@ApiModelProperty(position = 22, required = false, value = "ISBN,针对CD/图书等[100]")
private String skuIsbn;//-
@ApiModelProperty(position = 23, required = false, value = "购买限制[0-全部用户|1-仅会员|2-指定用户]")
@NotNull(message = "购买限制不能为空")
private String buyFactor;
@ApiModelProperty(position = 24, required = false, value = "购买限制人员名单[购买限制为2-指定用户时必填]")
private String buyRoster;
// @ApiModelProperty(position = 21, required = false, value = "预警库存")
// private Integer warningStock;
// @ApiModelProperty(position = 22, required = false, value = "ISBN,针对CD/图书等[100]")
// private String skuIsbn;//-
// @ApiModelProperty(position = 23, required = false, value = "购买限制[0-全部用户|1-仅会员|2-指定用户]")
// @NotNull(message = "购买限制不能为空")
// private String buyFactor;
// @ApiModelProperty(position = 24, required = false, value = "购买限制人员名单[购买限制为2-指定用户时必填]")
// private String buyRoster;
@ApiModelProperty(position = 25, required = false, value = "限量[0-无限制|X:限购数量]")
private Integer buyLimit;
@ApiModelProperty(position = 26, required = false, value = "单品有效期[yyyy-MM-dd HH:mm:ss]")
@Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "单品有效期格式有误")
private String skuValidity;
@ApiModelProperty(position = 27, value = "自定义展示[0-默认展示|1-隐藏不可购买]")
// @ApiModelProperty(position = 26, required = false, value = "单品有效期[yyyy-MM-dd HH:mm:ss]")
// @Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "单品有效期格式有误")
// private String skuValidity;
@ApiModelProperty(position = 27, required = false, value = "自定义展示[0-默认展示|1-隐藏不可购买]")
private String skuAppear;
/**
......
......@@ -841,13 +841,13 @@ public class GoblinStoreMgtGoodsController {
}
}
}
if (StringUtils.isNotEmpty(mgtGoodsInfoVo.getSpuErpCode()) && StringUtils.isBlank(mgtGoodsEditParam.getSpuErpCode())) {
if (hasSkuFlg && goodsSkuInfoVos.stream().anyMatch(r -> r.getErpHosting() == 1)) {// 存在SKU启用ERP托管,不可修改`spu_erp_code`
mgtGoodsEditParam.setSpuErpCode(mgtGoodsInfoVo.getSpuErpCode());
} else {
mgtGoodsEditParam.setSpuErpCode(mgtGoodsEditParam.getSpuErpCode());
}
}
// if (StringUtils.isNotEmpty(mgtGoodsInfoVo.getSpuErpCode()) && StringUtils.isBlank(mgtGoodsEditParam.getSpuErpCode())) {
// if (hasSkuFlg && goodsSkuInfoVos.stream().anyMatch(r -> r.getErpHosting() == 1)) {// 存在SKU启用ERP托管,不可修改`spu_erp_code`
// mgtGoodsEditParam.setSpuErpCode(mgtGoodsInfoVo.getSpuErpCode());
// } else {
// mgtGoodsEditParam.setSpuErpCode(mgtGoodsEditParam.getSpuErpCode());
// }
// }
if (log.isDebugEnabled()) {
log.debug("商品管理:商品编辑:SPU编辑:[GoblinStoreMgtGoodsCouponAddParam={}]", JsonUtils.toJson(mgtGoodsEditParam));
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment