|
|
@@ -4,6 +4,7 @@ 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.TradeOrderRoomModelVO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO;
|
|
|
import com.yc.ship.module.trade.enums.TradeOrderStatusEnum;
|
|
|
@@ -44,36 +45,28 @@ public class TradeStockOrderHandler implements TradeOrderHandler{
|
|
|
ReduceStockReqDTO reqDTO = new ReduceStockReqDTO();
|
|
|
reqDTO.setOrderId(order.getTradeOrderDO().getId());
|
|
|
reqDTO.setOrderStatus(order.getTradeOrderDO().getOrderStatus());
|
|
|
- //TODO: 当前默认为分销商,扣分销商库存,门店的后续再完善
|
|
|
- reqDTO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());
|
|
|
+ reqDTO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());//TODO: 当前默认为分销商,扣分销商库存,门店的后续再完善
|
|
|
reqDTO.setVoyageId(order.getTradeOrderDO().getVoyageId());
|
|
|
reqDTO.setDistributorId(Long.valueOf(order.getTradeOrderDO().getSourceId()));
|
|
|
reqDTO.setStoreId(order.getTradeOrderDO().getStoreId());
|
|
|
reqDTO.setUseRoomNum(order.getSummary().getUseRoomTotalNum());
|
|
|
- List<TradeOrderDetailBO> tradeOrderDetailBOList = order.getTradeOrderDetailBOList();
|
|
|
- List<TradeVisitorDO> tradeDetailDOList = tradeOrderDetailBOList.stream().flatMap(list1 -> {
|
|
|
- List<TradeVisitorDO> roomNums = list1.getTradeVisitorDOList();
|
|
|
- if(roomNums != null) {
|
|
|
- return roomNums.stream();
|
|
|
- }
|
|
|
- return Stream.empty();
|
|
|
- }).collect(Collectors.toList());
|
|
|
+
|
|
|
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);
|
|
|
- }
|
|
|
+ List<TradeOrderRoomModelVO> roomModelList = order.getRoomModelList();
|
|
|
+ roomModelList.stream().forEach(roomModelVO -> {
|
|
|
+ OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
|
|
|
+ orderRoomUseDTO.setRoomId(roomModelVO.getRoomId());
|
|
|
+ orderRoomUseDTO.setNum(BigDecimal.valueOf(roomModelVO.getUseRoomNum()));
|
|
|
+ orderRoomUseDTO.setRoomModelId(roomModelVO.getRoomModelId());
|
|
|
+ orderRoomUseDTO.setFloor(roomModelVO.getFloor());
|
|
|
+ orderRoomUseDTOList.add(orderRoomUseDTO);
|
|
|
});
|
|
|
reqDTO.setOrderRoomList(orderRoomUseDTOList);
|
|
|
Integer orderStatus = reqDTO.getOrderStatus();
|
|
|
if(Objects.equals(orderStatus, TradeOrderStatusEnum.YD.getStatus())) {
|
|
|
voyageApi.preReduceStock(reqDTO);
|
|
|
}else {
|
|
|
- //TODO:走定单扣库存
|
|
|
+ voyageApi.reduceStock(reqDTO);
|
|
|
}
|
|
|
}
|
|
|
|