diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/sku/SkuRecycleBinVO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/sku/SkuRecycleBinVO.java index 71f5762..32ba1bc 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/sku/SkuRecycleBinVO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/sku/SkuRecycleBinVO.java @@ -1,9 +1,12 @@ package com.tashow.cloud.productapi.api.product.vo.sku; +import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; @Data @@ -29,4 +32,140 @@ public class SkuRecycleBinVO { */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date deleteTime; + + + + + @Schema(description = "商品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18784") + @ExcelProperty("商品ID") + private Long prodId; + + @Schema(description = "别名") + @ExcelProperty("别名") + private String alias; + + @Schema(description = "当前价格", example = "32405") + @ExcelProperty("价格") + private BigDecimal price; + + /** + * 基准价 + */ + private BigDecimal basePrice; + + @Schema(description = "最低价格", example = "5040") + @ExcelProperty("最低价格") + private BigDecimal minPrice; + + @Schema(description = "最高价格", example = "11547") + @ExcelProperty("最高价格") + private BigDecimal maxPrice; + + @Schema(description = "成本价", example = "28062") + @ExcelProperty("成本价") + private BigDecimal originalPrice; + + @Schema(description = "市场价", example = "11547") + @ExcelProperty("市场价") + private BigDecimal marketPrice; + + @Schema(description = "单位") + @ExcelProperty("单位") + private String unit; + + @Schema(description = "0:主服务1:待定", example = "1") + @ExcelProperty("0:主服务1:待定") + private Integer type; + + @Schema(description = "概述") + @ExcelProperty("概述") + private String overview; + + @Schema(description = "库存") + @ExcelProperty("库存") + private Integer stocks; + + + @Schema(description = "总库存是0 无线库存是1") + @ExcelProperty("总库存是0 无线库存是1") + private Integer stocksFlg; + + /** + * 锁定库存数 + */ + @Schema(description = "锁定库存数") + @ExcelProperty("锁定库存数") + private Integer stocksLockNum; + + @Schema(description = "预警库存") + @ExcelProperty("预警库存") + private Integer warnStocks; + + @Schema(description = "库存扣款时机0:付款扣1:下单扣", example = "1") + @ExcelProperty("库存扣款时机0:付款扣1:下单扣") + private Boolean stocksType; + + @Schema(description = "sku编码") + @ExcelProperty("sku编码") + private String skuCode; + + @Schema(description = "商品条形码", example = "14390") + @ExcelProperty("商品条形码") + private String modelId; + + @Schema(description = "sku图片") + @ExcelProperty("sku图片") + private String pic; + + + @Schema(description = "商品名称", example = "芋艿") + @ExcelProperty("商品名称") + private String prodName; + + @Schema(description = "版本号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("版本号") + private Integer version; + + @Schema(description = "商品重量") + @ExcelProperty("商品重量") + private Double weight; + + @Schema(description = "商品体积") + @ExcelProperty("商品体积") + private Double volume; + + @Schema(description = "0 禁用 1 启用", example = "1") + @ExcelProperty("0 禁用 1 启用") + private Integer status; + + @Schema(description = "0 正常 1 已被删除") + @ExcelProperty("0 正常 1 已被删除") + private Integer isDelete; + + @Schema(description = "最小购买数量") + @ExcelProperty("最小购买数量") + private Integer moq; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + /** + * 是否上下架0下架1上架 + */ + private Integer isShelf; + + /** + * 是否默认规则0否1是 + */ + private Integer isSpecs; + + /** + * 服务内容 + */ + private String serviceContent; + /** + * 规格id 多个用逗号分隔(1,2,3) + */ + private String propIds; + } diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/admin/SkuController.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/admin/SkuController.java index e9d005d..9f8194f 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/admin/SkuController.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/controller/admin/SkuController.java @@ -82,10 +82,7 @@ public class SkuController { @Operation(summary = "修改属性下面规格值") @PermitAll public CommonResult updatePropValue(@RequestParam("id") Long id,@RequestParam("propValue") String propValue) { - ProdPropValueDO propValueDO = new ProdPropValueDO(); - propValueDO.setId(id); - propValueDO.setPropValue(propValue); - prodPropValueMapper.updateById(propValueDO); + skuService.updatePropVal(id,propValue); return success(true); } @@ -120,7 +117,7 @@ public class SkuController { @PostMapping("/restorePropList") @Operation(summary = "恢复规格") - @Parameter(name = "ids", description = "skuids", required = true) + @Parameter(name = "ids", description = "规格id集合", required = true) @PermitAll public CommonResult restorePropList(@RequestParam("ids") List ids) { skuService.restorePropList(ids); diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropValueMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropValueMapper.java index 9b93360..1eb8e79 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropValueMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdPropValueMapper.java @@ -42,4 +42,8 @@ public interface ProdPropValueMapper extends BaseMapperX { IPage getSKuPropRecycleBinList(Page page, @Param("prodId") Long prodId,@Param("propValue")String propValue); List getskuListByPropValueIds(@Param("ids")List ids); + + void restorePropValue(@Param("ids") List ids); + + int getMaxPropValue(@Param("propId")Long propId); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuMapper.java index e740e79..c2a6cf3 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/SkuMapper.java @@ -23,7 +23,8 @@ public interface SkuMapper extends BaseMapperX { IPage getSkuPageList(Page page, @Param("prodId") Long prodId,@Param("skuId") Long skuId, @Param("properties")String properties); - List getSkuListByName( @Param("propertiesName")String propertiesName); + List getSkuListByName( @Param("prodId")Long prodId , @Param("propertiesName")String propertiesName); + List selectPropertiesByProdIdAndNotDeleted( @Param("prodId")Long prodId); List selectPropertiesByProdIdShelf( @Param("prodId")Long prodId); diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuService.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuService.java index e01e077..ce7375f 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuService.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/SkuService.java @@ -58,6 +58,9 @@ public interface SkuService { */ void updateProp(SkuPropVO skuPropVO); + + void updatePropVal(Long id, String propValue); + /** * 删除规格值 * diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceImpl.java index 2983b6e..9a320fb 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceImpl.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/SkuServiceImpl.java @@ -65,7 +65,8 @@ public class SkuServiceImpl implements SkuService { private ProdExtendService prodExtendService; @Resource private ProdPropValueMapper prodPropValueMapper; - + @Resource + private ProdPropMapper prodPropMapper; @Override public Long createSku(SkuSaveReqVO createReqVO) { @@ -410,11 +411,39 @@ public class SkuServiceImpl implements SkuService { prodPropService.updateProdPropAndValues(skuPropVO); } + + @Override + public void updatePropVal(Long id, String propValue) { + ProdPropValueDO prodPropValueDO = prodPropValueMapper.selectById(id); + ProdPropDO prodPropDO =prodPropMapper.selectById(prodPropValueDO.getPropId()); + List skuDOList = skuMapper.getSkuListByName(prodPropDO.getProdId(),prodPropValueDO.getPropValue()); + prodPropValueDO.setPropValue(propValue); + prodPropValueMapper.updateById(prodPropValueDO); + List skuids = new ArrayList<>(); + for (SkuDO skuDO : skuDOList) { + if (skuDO.getProperties() != null) { + String[] split = skuDO.getProperties().split(","); + for (String s : split) { + if (s.equals(prodPropValueDO.getPropValue())) { + skuDO.setProperties(prodPropValueDO.getPropValue()); + skuDO.setSkuName(prodPropValueDO.getPropValue()); + skuMapper.updateById(skuDO); + } + } + } + } + if (CollUtil.isNotEmpty(skuids)) { + skuMapper.batchSkuDeleted(skuids); + } + } + + @Override public void deleteProp(Long id) { ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id); + ProdPropDO prodPropDO =prodPropMapper.selectById(prodPropValueDO.getPropId()); prodPropValueService.deleteProdPropValue(id); - List skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue()); + List skuDOList = skuMapper.getSkuListByName(prodPropDO.getProdId(),prodPropValueDO.getPropValue()); List skuids = new ArrayList<>(); for (SkuDO skuDO : skuDOList) { if (skuDO.getProperties() != null) { @@ -436,8 +465,9 @@ public class SkuServiceImpl implements SkuService { ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id); prodPropValueDO.setState(state); prodPropValueService.updateById(prodPropValueDO); + ProdPropDO prodPropDO =prodPropMapper.selectById(prodPropValueDO.getPropId()); if (Objects.equals(BaseEnum.NO_ZERO.getKey(), state)) { - List skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue()); + List skuDOList = skuMapper.getSkuListByName(prodPropDO.getProdId(),prodPropValueDO.getPropValue()); List skuDOList1 = new ArrayList<>(); for (SkuDO skuDO : skuDOList) { if (skuDO.getProperties() != null) { @@ -775,12 +805,13 @@ public class SkuServiceImpl implements SkuService { @Override public void restorePropList(List ids) { + prodPropValueMapper.restorePropValue(ids); List prodPropValueDOList = prodPropValueMapper.getskuListByPropValueIds(ids); - for(ProdPropValueDO prodPropValueDO: prodPropValueDOList){ - prodPropValueDO.setState(BaseEnum.YES_ONE.getKey()); + for (ProdPropValueDO prodPropValueDO : prodPropValueDOList) { + int maxPropValue =prodPropValueMapper.getMaxPropValue(prodPropValueDO.getPropId()); + prodPropValueDO.setSort(maxPropValue+1); prodPropValueService.updateById(prodPropValueDO); } - } diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropValueMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropValueMapper.xml index 7a0f9f3..821da20 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropValueMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdPropValueMapper.xml @@ -47,6 +47,11 @@ + + + @@ -103,4 +108,14 @@ + + + UPDATE tz_prod_prop_value + SET is_expire = 1, deleted = 0 + WHERE id IN + + #{id} + + + \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuMapper.xml index 55602d9..7c66184 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/SkuMapper.xml @@ -10,7 +10,7 @@ --> - select sku_id, properties, delete_time,deleted from tz_sku where deleted = 0 + select sku_id, properties, delete_time,deleted from tz_sku where deleted = 0 and prod_id = #{prodId} and properties like concat('%', #{propertiesName}, '%')