BUG修改

This commit is contained in:
itheinjury@163.com
2022-03-03 16:11:08 +08:00
parent a52b672e9b
commit f14efa2612
9 changed files with 200 additions and 30 deletions

View File

@@ -0,0 +1,137 @@
package cn.lili.modules.goods.entity.dto;
import cn.lili.common.validation.EnumValue;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;
import javax.validation.Valid;
import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* 商品编辑DTO
*
* @author pikachu
* @since 2020-02-24 19:27:20
*/
@Data
@ToString
public class GoodsOperationFuLuDTO implements Serializable {
private static final long serialVersionUID = -509667581371776913L;
@ApiModelProperty(hidden = true)
private String goodsId;
@ApiModelProperty(value = "商品价格", required = true)
@NotNull(message = "商品价格不能为空")
@Min(value = 0, message = "商品价格不能为负数")
@Max(value = 99999999, message = "商品价格不能超过99999999")
private Double price;
@ApiModelProperty(value = "分类path")
private String categoryPath;
@ApiModelProperty(value = "店铺分类id", required = true)
@Size(max = 200, message = "选择了太多店铺分类")
private String storeCategoryPath;
@ApiModelProperty(value = "品牌id")
@Min(value = 0, message = "品牌值不正确")
private String brandId;
@ApiModelProperty(value = "商品名称", required = true)
@NotEmpty(message = "商品名称不能为空")
@Length(max = 50, message = "商品名称不能超过50个字符")
private String goodsName;
@ApiModelProperty(value = "详情")
private String intro;
@ApiModelProperty(value = "商品移动端详情")
private String mobileIntro;
@ApiModelProperty(value = "库存")
@Min(value = 0, message = "库存不能为负数")
@Max(value = 99999999, message = "库存不能超过99999999")
private Integer quantity;
@ApiModelProperty(value = "是否立即发布")
private Boolean release;
@ApiModelProperty(value = "是否是推荐商品")
private Boolean recommend;
@ApiModelProperty(value = "商品参数")
private List<GoodsParamsDTO> goodsParamsDTOList;
@ApiModelProperty(value = "商品图片")
private List<String> goodsGalleryList;
@ApiModelProperty(value = "运费模板id,不需要运费模板时值是0", required = true)
@NotNull(message = "运费模板不能为空没有运费模板时传值0")
@Min(value = 0, message = "运费模板值不正确")
private String templateId;
@ApiModelProperty(value = "sku列表")
@Valid
private List<Map<String, Object>> skuList;
@ApiModelProperty(value = "卖点")
private String sellingPoint;
@ApiModelProperty(value = "销售模式", required = true)
private String salesModel;
@ApiModelProperty(value = "是否有规格", hidden = true)
private String haveSpec;
@ApiModelProperty(value = "销售模式", required = true)
private String goodsUnit;
@ApiModelProperty(value = "商品描述")
private String info;
@ApiModelProperty(value = "是否重新生成sku数据")
private Boolean regeneratorSkuFlag = true;
/**
* @see cn.lili.modules.goods.entity.enums.GoodsTypeEnum
*/
@ApiModelProperty(value = "商品类型")
@EnumValue(strValues = {"PHYSICAL_GOODS", "VIRTUAL_GOODS", "E_COUPON"}, message = "商品类型参数值错误")
private String goodsType;
/**
* 商品视频
*/
@ApiModelProperty(value = "商品视频")
private String goodsVideo;
public String getGoodsName() {
//对商品对名称做一个极限处理。这里没有用xss过滤是因为xss过滤为全局过滤影响很大。
// 业务中,全局代码中只有商品名称不能拥有英文逗号,是由于商品名称存在一个数据库联合查询,结果要根据逗号分组
return goodsName.replace(",", "");
}
//福禄所需参数
@ApiModelProperty(value = "商品编号", required = true)
@Length(max = 30, message = "商品编号太长不能超过30个字符")
private String sn;
@ApiModelProperty(value = "市场价格", required = true)
@NotNull(message = "市场价格不能为空")
private Double cost;
@ApiModelProperty(value = "重量", required = true)
@NotNull(message = "商品重量不能为空")
@Min(value = 0, message = "重量不能为负数")
@Max(value = 99999999, message = "重量不能超过99999999")
private Double weight;
}

View File

@@ -75,6 +75,14 @@ public interface GoodsService extends IService<Goods> {
*/
void editGoods(GoodsOperationDTO goodsOperationDTO, String goodsId);
/**
* 修改商品
*
* @param goodsOperationDTO 商品查询条件
* @param goodsId 商品ID
*/
void fuLuEditGoods(GoodsOperationFuLuDTO goodsOperationFuLuDTO, String goodsId);
/**
* 查询商品VO
*

View File

@@ -231,6 +231,33 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
cache.remove(CachePrefix.GOODS.getPrefix() + goodsId);
}
@Override
public void fuLuEditGoods(GoodsOperationFuLuDTO goodsOperationFuLuDTO, String goodsId) {
Goods goods = new Goods(goodsOperationFuLuDTO);
goods.setId(goodsId);
//检查商品信息
this.checkGoods(goods);
//向goods加入图片
this.setGoodsGalleryParam(goodsOperationFuLuDTO.getGoodsGalleryList().get(0), goods);
//添加商品参数
if (goodsOperationFuLuDTO.getGoodsParamsDTOList() != null && !goodsOperationFuLuDTO.getGoodsParamsDTOList().isEmpty()) {
goods.setParams(JSONUtil.toJsonStr(goodsOperationFuLuDTO.getGoodsParamsDTOList()));
}
//修改商品
this.updateById(goods);
//修改商品sku信息
this.goodsSkuService.update(goodsOperationFuLuDTO.getSkuList(), goods, goodsOperationFuLuDTO.getRegeneratorSkuFlag());
//添加相册
if (goodsOperationFuLuDTO.getGoodsGalleryList() != null && !goodsOperationFuLuDTO.getGoodsGalleryList().isEmpty()) {
this.goodsGalleryService.add(goodsOperationFuLuDTO.getGoodsGalleryList(), goods.getId());
}
if (GoodsAuthEnum.TOBEAUDITED.name().equals(goods.getAuthFlag())) {
this.deleteEsGoods(Collections.singletonList(goodsId));
}
cache.remove(CachePrefix.GOODS.getPrefix() + goodsId);
}
@Override
public GoodsVO getGoodsVO(String goodsId) {
//缓存获取,如果没有则读取缓存

View File

@@ -70,6 +70,7 @@ public class PageDataServiceImpl extends ServiceImpl<PageDataMapper, PageData> i
} else {
pageData.setPageShow(SwitchEnum.CLOSE.name());
}
pageData.setPageData(pageData.getPageData().replace("?x-oss-process=style/200X200", "").replace("?x-oss-process=style/400X400", ""));
this.save(pageData);
return pageData;
}
@@ -88,8 +89,10 @@ public class PageDataServiceImpl extends ServiceImpl<PageDataMapper, PageData> i
pageData.setPageShow(SwitchEnum.CLOSE.name());
}
LambdaUpdateWrapper<PageData> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.set(PageData::getPageData, pageData.getPageData());
String dataPage = pageData.getPageData().replace("?x-oss-process=style/200X200", "").replace("?x-oss-process=style/400X400", "");
lambdaUpdateWrapper.set(PageData::getPageData,dataPage);
lambdaUpdateWrapper.eq(PageData::getId, pageData.getId());
pageData.setPageData(dataPage);
this.updateById(pageData);
return pageData;
}