规格回收站bug1

This commit is contained in:
xuelijun
2025-08-25 15:39:41 +08:00
parent 27e51b6278
commit 40f0ecd162
8 changed files with 204 additions and 14 deletions

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -58,6 +58,9 @@ public interface SkuService {
*/
void updateProp(SkuPropVO skuPropVO);
void updatePropVal(Long id, String propValue);
/**
* 删除规格值
*

View File

@@ -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);
}
}

View File

@@ -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>

View File

@@ -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>