Browse Source

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

multiwx
dy-hu 11 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<Long> findDeleteSkuIds(@Param("list") List<DeleteSkuParam> list,@Param("productId") Long productId);
List<CereSkuName> findSkuNameListByProductId(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 = "删除规格数据") @ApiModelProperty(value = "删除规格数据")
private List<DeleteSkuParam> deletes;
private List<Long> deletes;
@ApiModelProperty("是否支持积分抵扣") @ApiModelProperty("是否支持积分抵扣")
private Integer ifCredit; 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<Long> findDeleteSkuIds(List<DeleteSkuParam> deletes,Long productId);
List<CereSkuName> findSkuNameListByProductId(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{ String time,Map<String,NameValue> map,List<SkuNameParam> names) throws CoBusinessException{
List<CereProductSku> changeResult = new ArrayList<>(); List<CereProductSku> changeResult = new ArrayList<>();
if(!EmptyUtils.isEmpty(skus)){ if(!EmptyUtils.isEmpty(skus)){
@ -1303,11 +1303,16 @@ public class CereShopProductServiceImpl implements CereShopProductService {
} }
if(!EmptyUtils.isEmpty(deletes)){ if(!EmptyUtils.isEmpty(deletes)){
//删除规格,查询满足删除规格属性的所有规格id //删除规格,查询满足删除规格属性的所有规格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) { public List<CereSkuName> findSkuNameListByProductId(Long productId) {
return cereSkuNameDAO.findSkuNameListByProductId(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 from cere_sku_name a join cere_product_sku b on a.sku_id = b.sku_id
where b.product_id = #{productId} where b.product_id = #{productId}
</select> </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> </mapper>
Loading…
Cancel
Save