|
|
@@ -4,7 +4,6 @@ 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;
|
|
|
@@ -35,9 +34,9 @@ public class TradeStockOrderHandler implements TradeOrderHandler{
|
|
|
@Override
|
|
|
public void beforeOrderCreate(TradeOrderBO order) {
|
|
|
Integer sellMethod = order.getTradeOrderDO().getSellMethod();
|
|
|
-// if (sellMethod == 1) { //OTC
|
|
|
+ if (sellMethod == 1||sellMethod == 4||sellMethod == 7||sellMethod == 0||sellMethod == 3) {
|
|
|
reduceStock(order);
|
|
|
-// }
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -50,7 +49,6 @@ public class TradeStockOrderHandler implements TradeOrderHandler{
|
|
|
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();
|
|
|
@@ -60,21 +58,21 @@ public class TradeStockOrderHandler implements TradeOrderHandler{
|
|
|
return Stream.empty();
|
|
|
}).collect(Collectors.toList());
|
|
|
List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
|
|
|
- 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);
|
|
|
+ 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);
|
|
|
Integer orderStatus = reqDTO.getOrderStatus();
|
|
|
if(Objects.equals(orderStatus, TradeOrderStatusEnum.YD.getStatus())) {
|
|
|
voyageApi.preReduceStock(reqDTO);
|
|
|
}else {
|
|
|
- voyageApi.reduceStock(reqDTO);
|
|
|
+ //TODO:走定单扣库存
|
|
|
}
|
|
|
}
|
|
|
|