订单取消 返回库存

This commit is contained in:
wangw 2025-04-18 15:12:21 +08:00
parent 6dd00a19b8
commit 30ad0fcf18
1 changed files with 18 additions and 4 deletions

View File

@ -4,10 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.ValidateException;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.*;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO;
@ -33,6 +30,7 @@ import com.czg.order.service.OrderInfoService;
import com.czg.order.service.OrderPaymentService;
import com.czg.order.vo.*;
import com.czg.product.entity.Product;
import com.czg.product.service.ProductRpcService;
import com.czg.product.service.ProductService;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
@ -89,6 +87,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
@DubboReference
private ProductService productService;
@DubboReference
private ProductRpcService productRpcService;
@DubboReference
private ShopInfoService shopInfoService;
@DubboReference
private UserInfoService userInfoService;
@ -1033,6 +1033,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
.eq(OrderInfo::getId, orderId)
.update();
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
rabbitPublisher.sendOrderCancelMsg(orderInfo.getId().toString());
return true;
}
@ -1053,9 +1054,22 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
.eq(OrderInfo::getShopId, shopId)
.eq(OrderInfo::getId, orderId)
.update();
rabbitPublisher.sendOrderCancelMsg(orderInfo.getId().toString());
return true;
}
List<OrderDetail> details = orderDetailService.list(QueryWrapper.create().eq(OrderDetail::getOrderId, orderId).eq(OrderDetail::getPlaceNum, placeNum));
List<Map<String, Object>> dataList = new ArrayList<>();
for (OrderDetail detail : details) {
Map<String, Object> data = new HashMap<>();
data.put("shopId", shopId);
data.put("productId", detail.getProductId());
data.put("num", NumberUtil.sub(detail.getNum(), detail.getReturnNum()));
dataList.add(data);
}
orderDetailService.remove(new QueryWrapper().eq(OrderDetail::getOrderId, orderId).eq(OrderDetail::getPlaceNum, placeNum));
if (CollUtil.isNotEmpty(dataList)) {
productRpcService.orderCancelRecoverStock(shopId, orderId, dataList);
}
List<OrderDetail> list = orderDetailService.queryChain().eq(OrderDetail::getOrderId, orderId).eq(OrderDetail::getShopId, shopId).list();
if (CollUtil.isEmpty(list)) {
updateChain()