|
@@ -1,11 +1,9 @@
|
|
package com.yc.ship.module.trade.service.order.handler;
|
|
package com.yc.ship.module.trade.service.order.handler;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
|
import com.yc.ship.module.product.api.VoyageApi;
|
|
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.OrderRoomUseDTO;
|
|
import com.yc.ship.module.product.api.dto.ReduceStockReqDTO;
|
|
import com.yc.ship.module.product.api.dto.ReduceStockReqDTO;
|
|
import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
|
|
import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
|
|
-import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailDO;
|
|
|
|
import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
|
|
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.dal.dataobject.order.TradeVisitorDO;
|
|
import com.yc.ship.module.trade.enums.TradeOrderStatusEnum;
|
|
import com.yc.ship.module.trade.enums.TradeOrderStatusEnum;
|
|
@@ -20,7 +18,9 @@ import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.Objects;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
@Component
|
|
@Component
|
|
@Order(TradeOrderHandler.PRE_ORDER_STOCK)
|
|
@Order(TradeOrderHandler.PRE_ORDER_STOCK)
|
|
@@ -33,11 +33,8 @@ public class TradeStockOrderHandler implements TradeOrderHandler{
|
|
@Override
|
|
@Override
|
|
public void beforeOrderCreate(TradeOrderBO order) {
|
|
public void beforeOrderCreate(TradeOrderBO order) {
|
|
Integer sellMethod = order.getTradeOrderDO().getSellMethod();
|
|
Integer sellMethod = order.getTradeOrderDO().getSellMethod();
|
|
-
|
|
|
|
- switch (sellMethod) {
|
|
|
|
- case 1: //OTC
|
|
|
|
- reduceStock(order);
|
|
|
|
- break;
|
|
|
|
|
|
+ if (sellMethod == 1) { //OTC
|
|
|
|
+ reduceStock(order);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -57,11 +54,11 @@ public class TradeStockOrderHandler implements TradeOrderHandler{
|
|
if(roomNums != null) {
|
|
if(roomNums != null) {
|
|
return roomNums.stream();
|
|
return roomNums.stream();
|
|
}
|
|
}
|
|
- return new ArrayList<TradeVisitorDO>().stream();
|
|
|
|
|
|
+ return Stream.empty();
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
|
|
List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
|
|
- Map<String, Long> collect = tradeDetailDOList.stream().collect(Collectors.groupingBy(TradeVisitorDO::getRoomId, Collectors.counting()));
|
|
|
|
- collect.keySet().stream().forEach(roomId -> {
|
|
|
|
|
|
+ Map<String, Long> collect = tradeDetailDOList.stream().filter(tradeVisitorDO -> tradeVisitorDO.getRoomId() != null).collect(Collectors.groupingBy(TradeVisitorDO::getRoomId, Collectors.counting()));
|
|
|
|
+ collect.keySet().forEach(roomId -> {
|
|
OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
|
|
OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
|
|
orderRoomUseDTO.setRoomId(Long.valueOf(roomId));
|
|
orderRoomUseDTO.setRoomId(Long.valueOf(roomId));
|
|
orderRoomUseDTO.setNum(BigDecimal.valueOf(collect.get(roomId)).divide(new BigDecimal(2)));
|
|
orderRoomUseDTO.setNum(BigDecimal.valueOf(collect.get(roomId)).divide(new BigDecimal(2)));
|
|
@@ -69,7 +66,7 @@ public class TradeStockOrderHandler implements TradeOrderHandler{
|
|
});
|
|
});
|
|
reqDTO.setOrderRoomList(orderRoomUseDTOList);
|
|
reqDTO.setOrderRoomList(orderRoomUseDTOList);
|
|
Integer orderStatus = reqDTO.getOrderStatus();
|
|
Integer orderStatus = reqDTO.getOrderStatus();
|
|
- if(orderStatus == TradeOrderStatusEnum.YD.getStatus()) {
|
|
|
|
|
|
+ if(Objects.equals(orderStatus, TradeOrderStatusEnum.YD.getStatus())) {
|
|
voyageApi.preReduceStock(reqDTO);
|
|
voyageApi.preReduceStock(reqDTO);
|
|
}else {
|
|
}else {
|
|
//TODO:走定单扣库存
|
|
//TODO:走定单扣库存
|