Browse Source

商家端商品编辑单组规格存在删除规格值业务功能处理

multiwx
dy-hu 10 months ago
parent
commit
acbd4db61b
  1. 2
      cereshop-business/src/main/java/com/shop/cereshop/business/dao/product/CereSkuNameDAO.java
  2. 2
      cereshop-business/src/main/java/com/shop/cereshop/business/param/product/ProductUpdateParam.java
  3. 2
      cereshop-business/src/main/java/com/shop/cereshop/business/service/product/CereSkuNameService.java
  4. 15
      cereshop-business/src/main/java/com/shop/cereshop/business/service/product/impl/CereShopProductServiceImpl.java
  5. 5
      cereshop-business/src/main/java/com/shop/cereshop/business/service/product/impl/CereSkuNameServiceImpl.java
  6. 8
      cereshop-business/src/main/resources/mybatis/mapper/product/CereSkuNameDAO.xml

2
cereshop-business/src/main/java/com/shop/cereshop/business/dao/product/CereSkuNameDAO.java

@ -49,4 +49,6 @@ public interface CereSkuNameDAO extends BaseMapper<CereSkuName> {
List<Long> findDeleteSkuIds(@Param("list") List<DeleteSkuParam> list,@Param("productId") Long productId);
List<CereSkuName> findSkuNameListByProductId(Long productId);
List<CereSkuName> findSkuNameBySkuIds(@Param("ids") List<Long> ids);
}

2
cereshop-business/src/main/java/com/shop/cereshop/business/param/product/ProductUpdateParam.java

@ -142,7 +142,7 @@ public class ProductUpdateParam {
* 删除规格数据
*/
@ApiModelProperty(value = "删除规格数据")
private List<DeleteSkuParam> deletes;
private List<Long> deletes;
@ApiModelProperty("是否支持积分抵扣")
private Integer ifCredit;

2
cereshop-business/src/main/java/com/shop/cereshop/business/service/product/CereSkuNameService.java

@ -44,4 +44,6 @@ public interface CereSkuNameService extends IService<CereSkuName> {
List<Long> findDeleteSkuIds(List<DeleteSkuParam> deletes,Long productId);
List<CereSkuName> findSkuNameListByProductId(Long productId);
List<CereSkuName> findSkuNameBySkuIds(List<Long> ids);
}

15
cereshop-business/src/main/java/com/shop/cereshop/business/service/product/impl/CereShopProductServiceImpl.java

@ -1162,7 +1162,7 @@ public class CereShopProductServiceImpl implements CereShopProductService {
}
}
private List<CereProductSku> saveSkus(List<SkuParam> skus, CereShopProduct cereShopProduct, List<DeleteSkuParam> deletes,
private List<CereProductSku> saveSkus(List<SkuParam> skus, CereShopProduct cereShopProduct, List<Long> deletes,
String time,Map<String,NameValue> map,List<SkuNameParam> names) throws CoBusinessException{
List<CereProductSku> changeResult = new ArrayList<>();
if(!EmptyUtils.isEmpty(skus)){
@ -1303,11 +1303,16 @@ public class CereShopProductServiceImpl implements CereShopProductService {
}
if(!EmptyUtils.isEmpty(deletes)){
//删除规格,查询满足删除规格属性的所有规格id
List<Long> ids=cereSkuNameService.findDeleteSkuIds(deletes,cereShopProduct.getProductId());
if(!EmptyUtils.isEmpty(ids)){
cereProductSkuService.deleteByIds(ids);
List<CereSkuName> skuNameList = cereSkuNameService.findSkuNameBySkuIds(deletes);
List<String> skuUniIds = skuNameList.stream().map(CereSkuName::getUniId).collect(Collectors.toList());
cereSkuNameLangInfoService.remove(Wrappers.<CereSkuNameLangInfo>lambdaQuery()
.in(CereSkuNameLangInfo::getSkuUniId,
skuUniIds));
if(!EmptyUtils.isEmpty(deletes)){
cereProductSkuService.deleteByIds(deletes);
//清空规格名和规格值关联数据
cereSkuNameService.deleteByIds(ids);
cereSkuNameService.deleteByIds(deletes);
}
}

5
cereshop-business/src/main/java/com/shop/cereshop/business/service/product/impl/CereSkuNameServiceImpl.java

@ -94,4 +94,9 @@ public class CereSkuNameServiceImpl extends ServiceImpl<CereSkuNameDAO, CereSkuN
public List<CereSkuName> findSkuNameListByProductId(Long productId) {
return cereSkuNameDAO.findSkuNameListByProductId(productId);
}
@Override
public List<CereSkuName> findSkuNameBySkuIds(List<Long> ids) {
return cereSkuNameDAO.findSkuNameBySkuIds(ids);
}
}

8
cereshop-business/src/main/resources/mybatis/mapper/product/CereSkuNameDAO.xml

@ -180,4 +180,12 @@
from cere_sku_name a join cere_product_sku b on a.sku_id = b.sku_id
where b.product_id = #{productId}
</select>
<select id="findSkuNameBySkuIds" resultType="com.shop.cereshop.commons.domain.product.CereSkuName">
SELECT sku_id,sku_name,sku_value,name_code,value_code FROM cere_sku_name where sku_id in (
<foreach collection="ids" item="id" index="index" separator=",">
#{id}
</foreach>
)
</select>
</mapper>
Loading…
Cancel
Save