|
|
@@ -1256,12 +1256,43 @@ public class CommodityProcureServiceImpl implements CommodityProcureService {
|
|
|
|
|
|
// 取消供货
|
|
|
yunMallGoodsService.saveGoods(gdId.toString(), 2);
|
|
|
- // 停止供货时取消推荐状态,以及gdId为null
|
|
|
- LambdaUpdateWrapper<ImsEweiShopGoods> wrapper = new LambdaUpdateWrapper<>();
|
|
|
- wrapper.eq(ImsEweiShopGoods::getGdId, gdId)
|
|
|
- .set(ImsEweiShopGoods::getGdId,null)
|
|
|
- .set(ImsEweiShopGoods::getIssupplyRecommend,0);
|
|
|
- goodsService.update(wrapper);
|
|
|
+ // 停止供货时,处理其他进货该商品的商城
|
|
|
+ // 1. 查询所有相同gd_id的其他进货商品(不包括当前商品,未删除,商品类型为1)
|
|
|
+ LambdaQueryWrapper<ImsEweiShopGoods> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(ImsEweiShopGoods::getGdId, gdId)
|
|
|
+ .ne(ImsEweiShopGoods::getId, item.getId())
|
|
|
+ .eq(ImsEweiShopGoods::getDeleted, 0)
|
|
|
+ .eq(ImsEweiShopGoods::getCommoditytype, 1);
|
|
|
+ List<ImsEweiShopGoods> otherGoods = goodsService.list(queryWrapper);
|
|
|
+
|
|
|
+ // 2. 逐个处理
|
|
|
+ for (ImsEweiShopGoods otherGood : otherGoods) {
|
|
|
+ Long goodsId = otherGood.getId();
|
|
|
+
|
|
|
+ // 3. 检查是否存在订单记录(查询 ims_ewei_shop_order_goods 表)
|
|
|
+ boolean hasOrder = goodsMapper.existsOrderByGoodsId(goodsId);
|
|
|
+
|
|
|
+ if (!hasOrder) {
|
|
|
+ // 4a. 无订单记录:物理删除商品及关联数据
|
|
|
+ goodsService.removeById(goodsId);
|
|
|
+ specService.remove(new LambdaQueryWrapper<ImsEweiShopGoodsSpec>()
|
|
|
+ .eq(ImsEweiShopGoodsSpec::getGoodsid, goodsId));
|
|
|
+ optionService.remove(new LambdaQueryWrapper<ImsEweiShopGoodsOption>()
|
|
|
+ .eq(ImsEweiShopGoodsOption::getGoodsid, goodsId));
|
|
|
+ paramService.remove(new LambdaQueryWrapper<ImsEweiShopGoodsParam>()
|
|
|
+ .eq(ImsEweiShopGoodsParam::getGoodsid, goodsId));
|
|
|
+ log.info("物理删除其他进货商品及关联数据 goodsId={}", goodsId);
|
|
|
+ } else {
|
|
|
+ // 4b. 有订单记录:软删除
|
|
|
+ LambdaUpdateWrapper<ImsEweiShopGoods> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ updateWrapper.eq(ImsEweiShopGoods::getId, goodsId)
|
|
|
+ .set(ImsEweiShopGoods::getIssupplyRecommend,0)
|
|
|
+ .set(ImsEweiShopGoods::getDeleted, 1)
|
|
|
+ .set(ImsEweiShopGoods::getStatus, 0);
|
|
|
+ goodsService.update(updateWrapper);
|
|
|
+ log.info("软删除其他进货商品 goodsId={}", goodsId);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|