规格回收站bug1
This commit is contained in:
@@ -1,9 +1,12 @@
|
|||||||
package com.tashow.cloud.productapi.api.product.vo.sku;
|
package com.tashow.cloud.productapi.api.product.vo.sku;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@@ -29,4 +32,140 @@ public class SkuRecycleBinVO {
|
|||||||
*/
|
*/
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Date deleteTime;
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,10 +82,7 @@ public class SkuController {
|
|||||||
@Operation(summary = "修改属性下面规格值")
|
@Operation(summary = "修改属性下面规格值")
|
||||||
@PermitAll
|
@PermitAll
|
||||||
public CommonResult<Boolean> updatePropValue(@RequestParam("id") Long id,@RequestParam("propValue") String propValue) {
|
public CommonResult<Boolean> updatePropValue(@RequestParam("id") Long id,@RequestParam("propValue") String propValue) {
|
||||||
ProdPropValueDO propValueDO = new ProdPropValueDO();
|
skuService.updatePropVal(id,propValue);
|
||||||
propValueDO.setId(id);
|
|
||||||
propValueDO.setPropValue(propValue);
|
|
||||||
prodPropValueMapper.updateById(propValueDO);
|
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,7 +117,7 @@ public class SkuController {
|
|||||||
|
|
||||||
@PostMapping("/restorePropList")
|
@PostMapping("/restorePropList")
|
||||||
@Operation(summary = "恢复规格")
|
@Operation(summary = "恢复规格")
|
||||||
@Parameter(name = "ids", description = "skuids", required = true)
|
@Parameter(name = "ids", description = "规格id集合", required = true)
|
||||||
@PermitAll
|
@PermitAll
|
||||||
public CommonResult<Boolean> restorePropList(@RequestParam("ids") List<Long> ids) {
|
public CommonResult<Boolean> restorePropList(@RequestParam("ids") List<Long> ids) {
|
||||||
skuService.restorePropList(ids);
|
skuService.restorePropList(ids);
|
||||||
|
|||||||
@@ -42,4 +42,8 @@ public interface ProdPropValueMapper extends BaseMapperX<ProdPropValueDO> {
|
|||||||
IPage<ProPropRecycleBinVO> getSKuPropRecycleBinList(Page<?> page, @Param("prodId") Long prodId,@Param("propValue")String propValue);
|
IPage<ProPropRecycleBinVO> getSKuPropRecycleBinList(Page<?> page, @Param("prodId") Long prodId,@Param("propValue")String propValue);
|
||||||
|
|
||||||
List<ProdPropValueDO> getskuListByPropValueIds(@Param("ids")List<Long> ids);
|
List<ProdPropValueDO> getskuListByPropValueIds(@Param("ids")List<Long> ids);
|
||||||
|
|
||||||
|
void restorePropValue(@Param("ids") List<Long> ids);
|
||||||
|
|
||||||
|
int getMaxPropValue(@Param("propId")Long propId);
|
||||||
}
|
}
|
||||||
@@ -23,7 +23,8 @@ public interface SkuMapper extends BaseMapperX<SkuDO> {
|
|||||||
IPage<SkuDO> getSkuPageList(Page<?> page, @Param("prodId") Long prodId,@Param("skuId") Long skuId, @Param("properties")String properties);
|
IPage<SkuDO> getSkuPageList(Page<?> page, @Param("prodId") Long prodId,@Param("skuId") Long skuId, @Param("properties")String properties);
|
||||||
|
|
||||||
|
|
||||||
List<SkuDO> getSkuListByName( @Param("propertiesName")String propertiesName);
|
List<SkuDO> getSkuListByName( @Param("prodId")Long prodId , @Param("propertiesName")String propertiesName);
|
||||||
|
|
||||||
List<String> selectPropertiesByProdIdAndNotDeleted( @Param("prodId")Long prodId);
|
List<String> selectPropertiesByProdIdAndNotDeleted( @Param("prodId")Long prodId);
|
||||||
|
|
||||||
List<String> selectPropertiesByProdIdShelf( @Param("prodId")Long prodId);
|
List<String> selectPropertiesByProdIdShelf( @Param("prodId")Long prodId);
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ public interface SkuService {
|
|||||||
*/
|
*/
|
||||||
void updateProp(SkuPropVO skuPropVO);
|
void updateProp(SkuPropVO skuPropVO);
|
||||||
|
|
||||||
|
|
||||||
|
void updatePropVal(Long id, String propValue);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除规格值
|
* 删除规格值
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -65,7 +65,8 @@ public class SkuServiceImpl implements SkuService {
|
|||||||
private ProdExtendService prodExtendService;
|
private ProdExtendService prodExtendService;
|
||||||
@Resource
|
@Resource
|
||||||
private ProdPropValueMapper prodPropValueMapper;
|
private ProdPropValueMapper prodPropValueMapper;
|
||||||
|
@Resource
|
||||||
|
private ProdPropMapper prodPropMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createSku(SkuSaveReqVO createReqVO) {
|
public Long createSku(SkuSaveReqVO createReqVO) {
|
||||||
@@ -410,11 +411,39 @@ public class SkuServiceImpl implements SkuService {
|
|||||||
prodPropService.updateProdPropAndValues(skuPropVO);
|
prodPropService.updateProdPropAndValues(skuPropVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updatePropVal(Long id, String propValue) {
|
||||||
|
ProdPropValueDO prodPropValueDO = prodPropValueMapper.selectById(id);
|
||||||
|
ProdPropDO prodPropDO =prodPropMapper.selectById(prodPropValueDO.getPropId());
|
||||||
|
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropDO.getProdId(),prodPropValueDO.getPropValue());
|
||||||
|
prodPropValueDO.setPropValue(propValue);
|
||||||
|
prodPropValueMapper.updateById(prodPropValueDO);
|
||||||
|
List<Long> 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
|
@Override
|
||||||
public void deleteProp(Long id) {
|
public void deleteProp(Long id) {
|
||||||
ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id);
|
ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id);
|
||||||
|
ProdPropDO prodPropDO =prodPropMapper.selectById(prodPropValueDO.getPropId());
|
||||||
prodPropValueService.deleteProdPropValue(id);
|
prodPropValueService.deleteProdPropValue(id);
|
||||||
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue());
|
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropDO.getProdId(),prodPropValueDO.getPropValue());
|
||||||
List<Long> skuids = new ArrayList<>();
|
List<Long> skuids = new ArrayList<>();
|
||||||
for (SkuDO skuDO : skuDOList) {
|
for (SkuDO skuDO : skuDOList) {
|
||||||
if (skuDO.getProperties() != null) {
|
if (skuDO.getProperties() != null) {
|
||||||
@@ -436,8 +465,9 @@ public class SkuServiceImpl implements SkuService {
|
|||||||
ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id);
|
ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id);
|
||||||
prodPropValueDO.setState(state);
|
prodPropValueDO.setState(state);
|
||||||
prodPropValueService.updateById(prodPropValueDO);
|
prodPropValueService.updateById(prodPropValueDO);
|
||||||
|
ProdPropDO prodPropDO =prodPropMapper.selectById(prodPropValueDO.getPropId());
|
||||||
if (Objects.equals(BaseEnum.NO_ZERO.getKey(), state)) {
|
if (Objects.equals(BaseEnum.NO_ZERO.getKey(), state)) {
|
||||||
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue());
|
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropDO.getProdId(),prodPropValueDO.getPropValue());
|
||||||
List<SkuDO> skuDOList1 = new ArrayList<>();
|
List<SkuDO> skuDOList1 = new ArrayList<>();
|
||||||
for (SkuDO skuDO : skuDOList) {
|
for (SkuDO skuDO : skuDOList) {
|
||||||
if (skuDO.getProperties() != null) {
|
if (skuDO.getProperties() != null) {
|
||||||
@@ -775,12 +805,13 @@ public class SkuServiceImpl implements SkuService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void restorePropList(List<Long> ids) {
|
public void restorePropList(List<Long> ids) {
|
||||||
|
prodPropValueMapper.restorePropValue(ids);
|
||||||
List<ProdPropValueDO> prodPropValueDOList = prodPropValueMapper.getskuListByPropValueIds(ids);
|
List<ProdPropValueDO> prodPropValueDOList = prodPropValueMapper.getskuListByPropValueIds(ids);
|
||||||
for(ProdPropValueDO prodPropValueDO: prodPropValueDOList){
|
for (ProdPropValueDO prodPropValueDO : prodPropValueDOList) {
|
||||||
prodPropValueDO.setState(BaseEnum.YES_ONE.getKey());
|
int maxPropValue =prodPropValueMapper.getMaxPropValue(prodPropValueDO.getPropId());
|
||||||
|
prodPropValueDO.setSort(maxPropValue+1);
|
||||||
prodPropValueService.updateById(prodPropValueDO);
|
prodPropValueService.updateById(prodPropValueDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,11 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="getMaxPropValue" resultType="int">
|
||||||
|
SELECT max(sort) FROM `tz_prod_prop_value` WHERE prop_id = #{propId} AND deleted = 0
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<update id="batchMarkDeleted">
|
<update id="batchMarkDeleted">
|
||||||
@@ -103,4 +108,14 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<update id="restorePropValue">
|
||||||
|
UPDATE tz_prod_prop_value
|
||||||
|
SET is_expire = 1, deleted = 0
|
||||||
|
WHERE id IN
|
||||||
|
<foreach item="id" collection="ids" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</update>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<select id="getSkuRecycleBinPageList" resultType="com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO" >
|
<select id="getSkuRecycleBinPageList" resultType="com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO" >
|
||||||
select sku_id, properties,sku_name, delete_time from tz_sku where prod_id = #{prodId} and deleted = 1
|
select * from tz_sku where prod_id = #{prodId} and deleted = 1
|
||||||
<if test="properties != null and properties != ''">
|
<if test="properties != null and properties != ''">
|
||||||
and properties like concat('%', #{properties}, '%')
|
and properties like concat('%', #{properties}, '%')
|
||||||
</if>
|
</if>
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<select id="getSkuListByName" resultType="com.tashow.cloud.productapi.api.product.dto.SkuDO" >
|
<select id="getSkuListByName" resultType="com.tashow.cloud.productapi.api.product.dto.SkuDO" >
|
||||||
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}
|
||||||
<if test="propertiesName != null and propertiesName != ''">
|
<if test="propertiesName != null and propertiesName != ''">
|
||||||
and properties like concat('%', #{propertiesName}, '%')
|
and properties like concat('%', #{propertiesName}, '%')
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
Reference in New Issue
Block a user