...
|
...
|
@@ -2,13 +2,20 @@ package com.yohoufo.order.service.handler; |
|
|
|
|
|
import com.google.common.eventbus.Subscribe;
|
|
|
import com.yohobuy.ufo.model.order.bo.OrderInfo;
|
|
|
import com.yohobuy.ufo.model.order.bo.SellerAssetPolicy;
|
|
|
import com.yohobuy.ufo.model.order.bo.SellerBo;
|
|
|
import com.yohobuy.ufo.model.order.common.Payment;
|
|
|
import com.yohobuy.ufo.model.order.constants.RegionEnum;
|
|
|
import com.yohobuy.ufo.model.order.constants.SkupType;
|
|
|
import com.yohoufo.common.alarm.EventBusPublisher;
|
|
|
import com.yohoufo.common.alarm.IEventHandler;
|
|
|
import com.yohoufo.dal.order.model.SellerWallet;
|
|
|
import com.yohoufo.order.event.BatchPublishTailEvent;
|
|
|
import com.yohoufo.order.event.SellerOrderPriceChangeEvent;
|
|
|
import com.yohoufo.order.service.MerchantOrderPaymentService;
|
|
|
import com.yohoufo.order.service.impl.SellerWrapper;
|
|
|
import com.yohoufo.order.service.proxy.ProductProxyService;
|
|
|
import com.yohoufo.order.service.seller.support.SkupTypeCodeSupport;
|
|
|
import com.yohoufo.order.utils.LoggerUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
...
|
...
|
@@ -33,28 +40,36 @@ public class BatchPublishTailHandler implements IEventHandler<BatchPublishTailEv |
|
|
@Subscribe
|
|
|
public void handle(BatchPublishTailEvent event) {
|
|
|
logger.info("in handle BatchPublishTailEvent event {}", event);
|
|
|
batchPublishTailProcess(event.getFjr(), event.getSellerWallet(), event.isSuper(), event.getSellerUid());
|
|
|
batchPublishTailProcess(event.getFjr(), event.getSellerWallet(),
|
|
|
event.getSellerBo(), event.getSellerUid(), event.getSkupType());
|
|
|
}
|
|
|
|
|
|
private void batchPublishTailProcess(SellerOrderSubmitHandler.ForkJoinResult fjr,
|
|
|
SellerWallet sellerWallet, boolean isSuper,
|
|
|
int sellerUid){
|
|
|
|
|
|
|
|
|
private void batchPublishTailProcess(SellerOrderSubmitHandler.ForkJoinResult fjr,
|
|
|
SellerWallet sellerWallet, SellerBo sellerBo,
|
|
|
int sellerUid, SkupType skupType){
|
|
|
SellerAssetPolicy sellerAssetPolicy = sellerBo.getSellerAssetPolicy();
|
|
|
SellerAssetPolicy.EarnestMoneyPolicy emp = sellerAssetPolicy.getEarnestMoneyPolicy();
|
|
|
// (异步实现)记录保证金流水
|
|
|
if(!isSuper) {
|
|
|
if(emp.getPayment().equals(Payment.WALLET) && !emp.isFree()) {
|
|
|
List<OrderInfo> orderList = fjr.getSellerOrderList().parallelStream().map(sellerOrder ->
|
|
|
OrderInfo.builder().orderCode(sellerOrder.getOrderCode())
|
|
|
.amount(sellerOrder.getEarnestMoney()).build()
|
|
|
).collect(Collectors.toList());
|
|
|
merchantOrderPaymentService.useEarnestAddWalletDetail(sellerWallet, orderList);
|
|
|
}
|
|
|
|
|
|
//(异步实现)同步数据到prd,记录支付,
|
|
|
productProxyService.batchCreateSkup(fjr.getSellerOrderGoodsList());
|
|
|
List<Integer> skups;
|
|
|
productProxyService.sellerBatchUpdateStatus(skups=fjr.getSkupIds(), ProductProxyService.PrdShelvelStatus.on);
|
|
|
//通知其他卖家价格
|
|
|
SellerOrderPriceChangeEvent sopcEvent = SellerOrderPriceChangeEvent.builder()
|
|
|
.sellerUid(sellerUid).skup(skups.get(0)).build();
|
|
|
EventBusPublisher.publishEvent(sopcEvent);
|
|
|
SkupTypeCodeSupport.CodeNode codeNode = SkupTypeCodeSupport.explain(skupType.getCode());
|
|
|
if (codeNode.getRegion() == RegionEnum.MAINLAND.getCode()) {
|
|
|
//通知其他卖家价格
|
|
|
SellerOrderPriceChangeEvent sopcEvent = SellerOrderPriceChangeEvent.builder()
|
|
|
.sellerUid(sellerUid).skup(skups.get(0)).build();
|
|
|
EventBusPublisher.publishEvent(sopcEvent);
|
|
|
}
|
|
|
}
|
|
|
} |
...
|
...
|
|