Explorar el Código

Merge branch 'main' of http://117.174.100.38:3000/lishiqiang/ship-ota-server into main1

luofeiyun hace 1 mes
padre
commit
951ec2a00a

+ 2 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/TradeStockOrderHandler.java

@@ -44,7 +44,8 @@ public class TradeStockOrderHandler implements TradeOrderHandler{
         ReduceStockReqDTO reqDTO = new ReduceStockReqDTO();
         reqDTO.setOrderId(order.getTradeOrderDO().getId());
         reqDTO.setOrderStatus(order.getTradeOrderDO().getOrderStatus());
-        reqDTO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());//TODO: 当前默认为分销商,扣分销商库存,门店的后续再完善
+        //TODO: 当前默认为分销商,扣分销商库存,门店的后续再完善
+        reqDTO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());
         reqDTO.setVoyageId(order.getTradeOrderDO().getVoyageId());
         reqDTO.setDistributorId(Long.valueOf(order.getTradeOrderDO().getSourceId()));
         reqDTO.setStoreId(order.getTradeOrderDO().getStoreId());

+ 31 - 40
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -310,25 +310,33 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     }
 
     private CommonResult<TradeOrderRespDTO> doShipCreateOrder(LoginUser loginUser, ShipTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-        ShipTradeOrderCreateReqVO.OrderProperty orderProperty = otcTradeOrderCreateReqVO.getOrderProperty();
-        if (orderProperty == null) {
-            orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
+        try {
+            ShipTradeOrderCreateReqVO.OrderProperty orderProperty = otcTradeOrderCreateReqVO.getOrderProperty();
+            if (orderProperty == null) {
+                orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
+            }
+            orderProperty.setSellMethod(otcTradeOrderCreateReqVO.getOrderProperty().getSellMethod());
+            setShipOrderPropertyFromLoginUser(loginUser, orderProperty);
+            otcTradeOrderCreateReqVO.setOrderProperty(orderProperty);
+            return tradeOrderService.createShipOrder(otcTradeOrderCreateReqVO);
+        } catch (Exception e) {
+            throw e;
         }
-        orderProperty.setSellMethod(otcTradeOrderCreateReqVO.getOrderProperty().getSellMethod());
-        setShipOrderPropertyFromLoginUser(loginUser, orderProperty);
-        otcTradeOrderCreateReqVO.setOrderProperty(orderProperty);
-        return tradeOrderService.createShipOrder(otcTradeOrderCreateReqVO);
     }
 
     private CommonResult<TradeOrderRespDTO> doShipModifyOrder(LoginUser loginUser, ShipTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-        ShipTradeOrderCreateReqVO.OrderProperty orderProperty = otcTradeOrderCreateReqVO.getOrderProperty();
-        if (orderProperty == null) {
-            orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
+        try {
+            ShipTradeOrderCreateReqVO.OrderProperty orderProperty = otcTradeOrderCreateReqVO.getOrderProperty();
+            if (orderProperty == null) {
+                orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
+            }
+            orderProperty.setSellMethod(otcTradeOrderCreateReqVO.getOrderProperty().getSellMethod());
+            setShipOrderPropertyFromLoginUser(loginUser, orderProperty);
+            otcTradeOrderCreateReqVO.setOrderProperty(orderProperty);
+            return tradeOrderService.modifyShipOrder(otcTradeOrderCreateReqVO);
+        } catch (Exception e) {
+            throw e;
         }
-        orderProperty.setSellMethod(otcTradeOrderCreateReqVO.getOrderProperty().getSellMethod());
-        setShipOrderPropertyFromLoginUser(loginUser, orderProperty);
-        otcTradeOrderCreateReqVO.setOrderProperty(orderProperty);
-        return tradeOrderService.modifyShipOrder(otcTradeOrderCreateReqVO);
     }
 
 
@@ -2070,7 +2078,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         CommonResult<TradeOrderRespDTO> result = doShipCreateOrder(loginUser, shipTradeOrderCreateReqVO);
         if (result.isError()) {
-            return CommonResult.error(result);
+            return CommonResult.error(result.getCode(), result.getMsg());
         }
         TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
         Long orderId = result.getCheckedData().getOrderId();
@@ -2101,7 +2109,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         }
         OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
         return CommonResult.success(respVO);
-
     }
 
     private static ShipTradeOrderCreateReqVO.@NotNull Visitor getVisitor1(TradeVistorReqVO tradeVistorReqVO) {
@@ -2182,12 +2189,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         if (tradeOrderDO.getOrderStatus() == 6) {
             shipTradeOrderCreateReqVO.setConfirmType(1);
         }
-
         shipTradeOrderCreateReqVO.setDiscountId(discountId);
         if (createVO.getSummary().getRealOrderMoney() != null) {
             shipTradeOrderCreateReqVO.setPayAmount(createVO.getSummary().getRealOrderMoney());
         }
-
         ShipTradeOrderCreateReqVO.OrderUser orderUser = new ShipTradeOrderCreateReqVO.OrderUser();
         orderUser.setContactName(createVO.getLinkMan());
         orderUser.setMobile(createVO.getLinkMobile());
@@ -2195,7 +2200,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         shipTradeOrderCreateReqVO.setOrderUser(orderUser);
         shipTradeOrderCreateReqVO.setRemark(createVO.getRemark());
         shipTradeOrderCreateReqVO.setIsYd(createVO.getIsYd());
-
         shipTradeOrderCreateReqVO.setTravelDate(createVO.getBoardingTime());
         shipTradeOrderCreateReqVO.setOrderNo(orderNo);
 
@@ -2208,9 +2212,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             orderProperty.setStoreName(storeInfo.getName());
         }
         orderProperty.setSellMethod(SellMethodEnum.OTC.getType());
-
         shipTradeOrderCreateReqVO.setOrderProperty(orderProperty);
-
         ShipTradeOrderCreateReqVO.OrderItem orderItem = new ShipTradeOrderCreateReqVO.OrderItem();
         List<ShipTradeOrderCreateReqVO.OrderDetail> detailList = new ArrayList<>();
         ShipTradeOrderCreateReqVO.OrderDetail orderDetail = new ShipTradeOrderCreateReqVO.OrderDetail();
@@ -2238,7 +2240,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         }
         orderDetail.setVisitorList(visitorList);
         orderDetail.setCount(visitorList.size());
-
         BigDecimal spuMoney = new BigDecimal(0);
         for (TradeSpuReqVO tradeSpuReqVO : createVO.getSpuList()) {
             ShipTradeOrderCreateReqVO.OrderDetail orderDetail1 = new ShipTradeOrderCreateReqVO.OrderDetail();
@@ -2255,8 +2256,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 orderDetail1.setProductType(0);
             }
             List<ShipTradeOrderCreateReqVO.Visitor> visitorList1 = new ArrayList<>();
-
-
             if (orderDetail1.getProductType() == 0 || orderDetail1.getProductType() == 1) {
                 for (String touristId : tradeSpuReqVO.getTourist()) {
                     TradeVistorReqVO tradeVistorReqVO = createVO.getTourist().stream().filter(v -> v.getId().equals(touristId)).findFirst().orElseGet(TradeVistorReqVO::new);
@@ -2315,7 +2314,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             orderDetail1.setCount(visitorList1.size());
             detailList.add(orderDetail1);
         }
-
         BigDecimal price;
         if (createVO.getSummary().getOrderMoney() != null && createVO.getSummary().getOrderMoney().compareTo(new BigDecimal(0)) > 0) {
             if (createVO.getSummary().getOrderMoney().compareTo(spuMoney) < 0 || visitorList.isEmpty()) {
@@ -2328,26 +2326,18 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         }
         orderDetail.setPrice(price);
         orderDetail.setOriginPrice(price);
-
         orderDetail.setProductType(0);
         detailList.add(orderDetail);
-
-
         orderItem.setDetailList(detailList);
-
         shipTradeOrderCreateReqVO.setItemlList(Collections.singletonList(orderItem));
-
         shipTradeOrderCreateReqVO.setSpuAmount(spuMoney);
-
-
         Date travelDate = tradeOrderDO.getTravelDate();
-
         if (loginUser.getDistributorId() != null && DateUtil.compare(DateUtil.beginOfDay(travelDate), DateUtil.offsetDay(new Date(), 3)) < 0) {
-            Asserts.isTrue(false, "已过最晚修改时间");
+            return CommonResult.error(500, "已过最晚修改时间");
         }
 
         if (loginUser.getDistributorId() == null && DateUtil.compare(travelDate, DateUtil.offsetDay(new Date(), -2)) < 0) {
-            Asserts.isTrue(false, "已过最晚修改时间");
+            return CommonResult.error(500, "已过最晚修改时间");
         }
         shipTradeOrderCreateReqVO.setUpdateTime(updateTime);
         shipTradeOrderCreateReqVO.setOldtradeOrderDO(tradeOrderDO);
@@ -2361,7 +2351,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         shipTradeOrderCreateReqVO.setChangedFields1(changedFields1);
         CommonResult<TradeOrderRespDTO> result = doShipModifyOrder(loginUser, shipTradeOrderCreateReqVO);
         if (result.isError()) {
-            return CommonResult.error(result);
+//            throw new ServiceException(result.getCode(), result.getMsg());
+            return CommonResult.error(result.getCode(), result.getMsg());
         }
         Long neworderId = result.getCheckedData().getOrderId();
 
@@ -2495,15 +2486,15 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         TradeOrderVO tradeOrderVO = new TradeOrderVO();
         TradeOrderDO tradeOrderDO;
         List<TradeOrderDO> orderList = tradeOrderMapper.queryOrderById(orderId);
-        if(orderList!=null && !orderList.isEmpty()){
+        if (orderList != null && !orderList.isEmpty()) {
             tradeOrderDO = orderList.get(0);
-        }else{
+        } else {
             return CommonResult.error(ErrorCodeConstants.ORDER_NOT_EXIST);
         }
-        if(tradeOrderDO.getDeleted()) {
+        if (tradeOrderDO.getDeleted()) {
             tradeOrderDO = tradeOrderMapper.selectFirstOne(TradeOrderDO::getOrderNo, tradeOrderDO.getOrderNo(), TradeOrderDO::getDeleted, 0);
         }
-        if(tradeOrderDO==null){
+        if (tradeOrderDO == null) {
             return CommonResult.error(ErrorCodeConstants.ORDER_NOT_EXIST);
         }
         tradeOrderVO.setOrderDO(tradeOrderDO);

+ 48 - 8
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/pay/impl/TradeOrderPayServiceImpl.java

@@ -9,6 +9,7 @@ import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.yc.ship.framework.common.exception.ServiceException;
 import com.yc.ship.framework.common.lang.Asserts;
@@ -23,19 +24,23 @@ import com.yc.ship.module.ota.api.dto.BillPayReqDTO;
 import com.yc.ship.module.ota.api.dto.DistributorRechargeReqDTO;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 import com.yc.ship.module.ota.api.dto.DistributorSelfRechargeReqDTO;
+import com.yc.ship.module.product.api.VoyageApi;
+import com.yc.ship.module.product.api.dto.OrderRoomUseDTO;
+import com.yc.ship.module.product.api.dto.ReduceStockReqDTO;
+import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderReqVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderRespVO;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailDO;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeMchInfoDO;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderPayDO;
+import com.yc.ship.module.trade.dal.dataobject.order.*;
 import com.yc.ship.module.trade.dal.dataobject.supplier.TradeSupplierOrderDO;
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderTotalMapper;
+import com.yc.ship.module.trade.dal.mysql.order.TradeVisitorMapper;
 import com.yc.ship.module.trade.enums.*;
 import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
 import com.yc.ship.module.trade.framework.common.ExceptionUtils;
 import com.yc.ship.module.trade.framework.common.TradeOrderLogUtils;
 import com.yc.ship.module.trade.service.bill.BillService;
 import com.yc.ship.module.trade.service.order.TradeOrderRepositoryService;
+import com.yc.ship.module.trade.service.order.bo.TradeOrderDetailBO;
 import com.yc.ship.module.trade.service.pay.PayPlatService;
 import com.yc.ship.module.trade.service.pay.PayTypeService;
 import com.yc.ship.module.trade.service.pay.TradeOrderPayService;
@@ -56,11 +61,10 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception0;
 import static com.yc.ship.module.ota.enums.ErrorCodeConstants.ORDER_PAY_AUTO_REFUND;
@@ -108,6 +112,14 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
     @Resource
     private AgencyAuthUtils agencyAuthUtils;
 
+    @Resource
+    private VoyageApi voyageApi;
+
+    @Resource
+    private TradeOrderTotalMapper tradeOrderTotalMapper;
+    @Resource
+    private TradeVisitorMapper tradeVisitorMapper;
+
     @Override
     public CommonResult<PayOrderRespVO> payOrder(PayOrderReqVO payOrderReqVO) {
         try {
@@ -284,6 +296,34 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
                 //变更订单为取消
                 tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.CANCELED.getStatus());
                 tradeOrderRepositoryService.cancelOrder(tradeOrderDO.getId());
+                ReduceStockReqDTO reqDTO = new ReduceStockReqDTO();
+                reqDTO.setOrderId(tradeOrderDO.getId());
+                reqDTO.setOrderStatus(tradeOrderDO.getOrderStatus());
+                //TODO: 当前默认为分销商,扣分销商库存,门店的后续再完善
+                reqDTO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());
+                reqDTO.setVoyageId(tradeOrderDO.getVoyageId());
+                reqDTO.setDistributorId(Long.valueOf(tradeOrderDO.getSourceId()));
+                reqDTO.setStoreId(tradeOrderDO.getStoreId());
+
+                TradeOrderTotalDO tradeOrderTotal = tradeOrderTotalMapper.selectOne(new LambdaQueryWrapper<TradeOrderTotalDO>().eq(TradeOrderTotalDO::getOldOrderId, orderId));
+                reqDTO.setUseRoomNum(BigDecimal.valueOf(tradeOrderTotal.getUseRoomTotalNum()));
+
+                List<TradeVisitorDO> tradeDetailDOList = tradeVisitorMapper.selectShipVisitor(orderId);
+                List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
+                Map<String, Long> collect = tradeDetailDOList.stream().filter(tradeVisitorDO -> tradeVisitorDO.getRoomId() != null).collect(Collectors.groupingBy(TradeVisitorDO::getRoomId, Collectors.counting()));
+                collect.keySet().forEach(roomId -> {
+                    if(StringUtils.isNotBlank(roomId)) {
+                        OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
+                        orderRoomUseDTO.setRoomId(Long.valueOf(roomId));
+                        orderRoomUseDTO.setNum(BigDecimal.valueOf(collect.get(roomId)).divide(new BigDecimal(2)));
+                        orderRoomUseDTOList.add(orderRoomUseDTO);
+                    }
+                });
+                reqDTO.setOrderRoomList(orderRoomUseDTOList);
+                if(Objects.equals(orderStatus, TradeOrderStatusEnum.YD.getStatus())) {
+                    voyageApi.preCancelReduceStock(reqDTO);
+                }
+
                 //添加订单日志
                 TradeOrderLogUtils.setOrderInfo(orderId, orderStatus, TradeOrderStatusEnum.CANCELED.getStatus());
             } else {

+ 45 - 12
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/refund/impl/TradeRefundServiceImpl.java

@@ -8,6 +8,7 @@ import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.yc.ship.framework.common.exception.ServiceException;
 import com.yc.ship.framework.common.lang.Asserts;
@@ -22,8 +23,12 @@ import com.yc.ship.module.ota.api.OtaDistributorApi;
 import com.yc.ship.module.ota.api.dto.BillResetReqDTO;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 import com.yc.ship.module.product.api.ProductApi;
+import com.yc.ship.module.product.api.VoyageApi;
+import com.yc.ship.module.product.api.dto.OrderRoomUseDTO;
 import com.yc.ship.module.product.api.dto.ProductRefundRuleRespDTO;
 import com.yc.ship.module.product.api.dto.ProductSpuRespDTO;
+import com.yc.ship.module.product.api.dto.ReduceStockReqDTO;
+import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
 import com.yc.ship.module.product.enums.RefundRuleEnum;
 import com.yc.ship.module.trade.api.dto.*;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.TradeRefundAmountReqVO;
@@ -32,6 +37,8 @@ import com.yc.ship.module.trade.dal.dataobject.bill.BillStoreDO;
 import com.yc.ship.module.trade.dal.dataobject.order.*;
 import com.yc.ship.module.trade.dal.dataobject.refund.*;
 import com.yc.ship.module.trade.dal.dataobject.supplier.SupplierRefundDO;
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderTotalMapper;
+import com.yc.ship.module.trade.dal.mysql.order.TradeVisitorMapper;
 import com.yc.ship.module.trade.enums.*;
 import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
 import com.yc.ship.module.trade.framework.common.ExceptionUtils;
@@ -55,6 +62,7 @@ import com.yc.ship.module.trade.service.supplier.TradeSupplierService;
 import com.yc.ship.module.trade.utils.AgencyAuthUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.context.annotation.Lazy;
@@ -106,7 +114,6 @@ public class TradeRefundServiceImpl implements TradeRefundService {
     private TradePublishUtils tradePublishUtils;
     @Resource
     private List<TradeOrderHandler> tradeOrderHandlers;
-    private RedisTemplate redisTemplate;
     @Resource
     private AgencyAuthUtils agencyAuthUtils;
     @Resource
@@ -117,6 +124,13 @@ public class TradeRefundServiceImpl implements TradeRefundService {
     private BillService billService;
     @Resource
     private TradeSupplierOrderRepositoryService tradeSupplierOrderRepositoryService;
+    @Resource
+    private VoyageApi voyageApi;
+
+    @Resource
+    private TradeOrderTotalMapper tradeOrderTotalMapper;
+    @Resource
+    private TradeVisitorMapper tradeVisitorMapper;
     @Override
     public CommonResult<TradeRefundRespDTO> refund(TradeRefundCreateReqDTO refundCreateReqDTO) {
         String lockKey = String.format(UPDATE_ORDER_LOCK,refundCreateReqDTO.getOrderId());
@@ -229,17 +243,36 @@ public class TradeRefundServiceImpl implements TradeRefundService {
             if(commonResult.isError()){
                 return CommonResult.error(commonResult.getCode(),commonResult.getMsg());
             }
-//            TradeRefundBO tradeRefundBO =buildRefundOrderFromRefund(refundDO);
-//            CommonResult<?> supplerRefundResp = tradeSupplierService.refund(tradeRefundBO);
-//            if(supplerRefundResp.isError()){
-//                //4.1 供应商退款失败回调 ,此时逻辑是供应退款失败了,不发起退款,看后面是否审核通过了就忽略供应商的状态,无论成功或失败都发起退款
-//                tradeSupplierCallbackService.afterAnyRefundFail(supplerRefundResp,tradeRefundBO);
-//                CommonResult<TradeRefundAuditRespDTO> result = CommonResult.error(supplerRefundResp.getCode(),supplerRefundResp.getMsg());
-//                result.setData(respDTO);
-//                return result;
-//            }
-//            //4.2 供应商退款成功回调, 发起对应渠道退款
-//            tradeSupplierCallbackService.afterAllRefund(tradeRefundBO);
+            try {
+                ReduceStockReqDTO reqDTO = new ReduceStockReqDTO();
+                TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(refundDO.getOrderId());
+                reqDTO.setOrderId(tradeOrderDO.getId());
+                reqDTO.setOrderStatus(tradeOrderDO.getOrderStatus());
+                //TODO: 当前默认为分销商,扣分销商库存,门店的后续再完善
+                reqDTO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());
+                reqDTO.setVoyageId(tradeOrderDO.getVoyageId());
+                reqDTO.setDistributorId(Long.valueOf(tradeOrderDO.getSourceId()));
+                reqDTO.setStoreId(tradeOrderDO.getStoreId());
+
+                TradeOrderTotalDO tradeOrderTotal = tradeOrderTotalMapper.selectOne(new LambdaQueryWrapper<TradeOrderTotalDO>().eq(TradeOrderTotalDO::getOldOrderId, tradeOrderDO.getId()));
+                reqDTO.setUseRoomNum(BigDecimal.valueOf(tradeOrderTotal.getUseRoomTotalNum()));
+
+                List<TradeVisitorDO> tradeDetailDOList = tradeVisitorMapper.selectShipVisitor(tradeOrderDO.getId());
+                List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
+                Map<String, Long> collect = tradeDetailDOList.stream().filter(tradeVisitorDO -> tradeVisitorDO.getRoomId() != null).collect(Collectors.groupingBy(TradeVisitorDO::getRoomId, Collectors.counting()));
+                collect.keySet().forEach(roomId -> {
+                    if (StringUtils.isNotBlank(roomId)) {
+                        OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
+                        orderRoomUseDTO.setRoomId(Long.valueOf(roomId));
+                        orderRoomUseDTO.setNum(BigDecimal.valueOf(collect.get(roomId)).divide(new BigDecimal(2)));
+                        orderRoomUseDTOList.add(orderRoomUseDTO);
+                    }
+                });
+                reqDTO.setOrderRoomList(orderRoomUseDTOList);
+                voyageApi.cancelReduceStock(reqDTO);
+            }catch (Exception e) {
+                log.error("取消库存cancelReduceStock失败",e);
+            }
         }else{
             //拒绝-》更新退款单为审核拒绝-》更新订单为原状态
             tradeRefundRepositoryService.updateRefundStatus(refundAuditReqDTO.getRefundId(),RefundStatusEnum.REFUSE);