规格回收站bug1
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -82,10 +82,7 @@ public class SkuController {
|
||||
@Operation(summary = "修改属性下面规格值")
|
||||
@PermitAll
|
||||
public CommonResult<Boolean> 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<Boolean> restorePropList(@RequestParam("ids") List<Long> 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);
|
||||
|
||||
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);
|
||||
|
||||
|
||||
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> selectPropertiesByProdIdShelf( @Param("prodId")Long prodId);
|
||||
|
||||
@@ -58,6 +58,9 @@ public interface SkuService {
|
||||
*/
|
||||
void updateProp(SkuPropVO skuPropVO);
|
||||
|
||||
|
||||
void updatePropVal(Long id, String propValue);
|
||||
|
||||
/**
|
||||
* 删除规格值
|
||||
*
|
||||
|
||||
@@ -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<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
|
||||
public void deleteProp(Long id) {
|
||||
ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id);
|
||||
ProdPropDO prodPropDO =prodPropMapper.selectById(prodPropValueDO.getPropId());
|
||||
prodPropValueService.deleteProdPropValue(id);
|
||||
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue());
|
||||
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropDO.getProdId(),prodPropValueDO.getPropValue());
|
||||
List<Long> 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<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue());
|
||||
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropDO.getProdId(),prodPropValueDO.getPropValue());
|
||||
List<SkuDO> 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<Long> ids) {
|
||||
prodPropValueMapper.restorePropValue(ids);
|
||||
List<ProdPropValueDO> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -47,6 +47,11 @@
|
||||
</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">
|
||||
@@ -103,4 +108,14 @@
|
||||
</foreach>
|
||||
</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>
|
||||
@@ -10,7 +10,7 @@
|
||||
-->
|
||||
|
||||
<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 != ''">
|
||||
and properties like concat('%', #{properties}, '%')
|
||||
</if>
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
|
||||
<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 != ''">
|
||||
and properties like concat('%', #{propertiesName}, '%')
|
||||
</if>
|
||||
|
||||
Reference in New Issue
Block a user