...
|
...
|
@@ -2,11 +2,14 @@ package com.yohoufo.order.service.seller.changePrice; |
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.yohobuy.ufo.model.order.bo.PrdPrice;
|
|
|
import com.yohobuy.ufo.model.order.bo.SellerBo;
|
|
|
import com.yohobuy.ufo.model.order.common.OrderStatus;
|
|
|
import com.yohobuy.ufo.model.order.common.SellerFuncEnum;
|
|
|
import com.yohobuy.ufo.model.order.common.SkupStatus;
|
|
|
import com.yohobuy.ufo.model.order.constants.SkupType;
|
|
|
import com.yohobuy.ufo.model.order.req.SingleGoodsChangePriceReq;
|
|
|
import com.yohoufo.common.exception.UfoServiceException;
|
|
|
import com.yohoufo.common.utils.BigDecimalHelper;
|
|
|
import com.yohoufo.dal.order.BuyerOrderGoodsMapper;
|
|
|
import com.yohoufo.dal.order.BuyerOrderMapper;
|
|
|
import com.yohoufo.dal.order.SellerOrderGoodsMapper;
|
...
|
...
|
@@ -16,12 +19,15 @@ import com.yohoufo.dal.order.model.BuyerOrderGoods; |
|
|
import com.yohoufo.dal.order.model.SellerOrder;
|
|
|
import com.yohoufo.dal.order.model.SellerOrderGoods;
|
|
|
import com.yohoufo.order.common.Payment;
|
|
|
import com.yohoufo.order.model.dto.ChangePricePrepareDTO;
|
|
|
import com.yohoufo.order.model.dto.SellerOrderComputeResult;
|
|
|
import com.yohoufo.order.model.dto.SingleChangePricePrepareDTO;
|
|
|
import com.yohoufo.order.model.dto.SkupDto;
|
|
|
import com.yohoufo.order.model.request.PrdQueryReq;
|
|
|
import com.yohoufo.order.service.impl.SellerService;
|
|
|
import com.yohoufo.order.service.impl.SellerWrapper;
|
|
|
import com.yohoufo.order.service.seller.OrderComputeHandler;
|
|
|
import com.yohoufo.order.service.seller.OrderComputeProvider;
|
|
|
import com.yohoufo.order.service.seller.SellerAuthCheckService;
|
|
|
import com.yohoufo.order.service.seller.processor.ChangePriceCommonPrepareProcessor;
|
|
|
import com.yohoufo.order.service.seller.processor.PriceComputePrepareProcessor;
|
|
|
import com.yohoufo.order.utils.LoggerUtils;
|
...
|
...
|
@@ -33,9 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
...
|
...
|
@@ -63,6 +67,12 @@ public class SingleGoodsChangePricePrepareProcessor { |
|
|
OrderComputeProvider orderComputeProvider;
|
|
|
|
|
|
@Autowired
|
|
|
private SellerAuthCheckService sellerAuthCheckService;
|
|
|
|
|
|
@Autowired
|
|
|
private SellerService sellerService;
|
|
|
|
|
|
@Autowired
|
|
|
private ChangePriceCommonPrepareProcessor changePriceCommonPrepareProcessor;
|
|
|
|
|
|
public void checkGoodsStatus(SellerOrderGoods psog){
|
...
|
...
|
@@ -78,7 +88,7 @@ public class SingleGoodsChangePricePrepareProcessor { |
|
|
}
|
|
|
}
|
|
|
|
|
|
public SingleChangePricePrepareDTO checkAndAcquire(SingleGoodsChangePriceReq req){
|
|
|
public ChangePricePrepareDTO checkAndAcquire(SingleGoodsChangePriceReq req){
|
|
|
int uid = req.getUid();
|
|
|
if (uid <= 0){
|
|
|
logger.warn("SingleGoodsChangePricePrepareProcessor checkAndAcquire uid illegal , req {}", req);
|
...
|
...
|
@@ -130,15 +140,38 @@ public class SingleGoodsChangePricePrepareProcessor { |
|
|
SellerOrderComputeResult computeResult = computeHandler.compute(salePrice, pcc);
|
|
|
//check income
|
|
|
priceComputePrepareProcessor.checkIncome(storageId, computeResult.getIncome());
|
|
|
SellerBo sellerBo = sellerService.getSellerWithAuth(uid);
|
|
|
SellerFuncEnum sellerFuncEnum = SellerFuncEnum.SINGLE_CHANGE_PRICE;
|
|
|
if (sellerBo.isNormalSuper()){
|
|
|
sellerAuthCheckService.checkAuth(sellerBo, sellerFuncEnum);
|
|
|
}
|
|
|
int num = req.getNum();
|
|
|
//作为入驻商户 检查钱包
|
|
|
BigDecimal targetEM = computeResult.getEarnestMoney().getEarnestMoney();
|
|
|
BigDecimal preEarnestMoney = sellerOrder.getEarnestMoney();
|
|
|
BigDecimal diffEarnestMoney = BigDecimalHelper.calDiff(preEarnestMoney,targetEM);
|
|
|
if (sellerBo.isCommonEntry()){
|
|
|
priceComputePrepareProcessor.checkNGetMergeEarnestMoney(uid, diffEarnestMoney,
|
|
|
num, salePrice, false);
|
|
|
}
|
|
|
//buildSellerBo one skup Map
|
|
|
return SingleChangePricePrepareDTO.builder()
|
|
|
.sellerOrder(sellerOrder)
|
|
|
.psog(psog)
|
|
|
Map<Integer, SkupDto> skupMap = new HashMap<>(1);
|
|
|
SkupDto skupDto = SkupDto.builder().skup(skup).batchNo(psog.getBatchNo()).sellerOrderGoods(psog)
|
|
|
.sellerOrder(sellerOrder).build();
|
|
|
skupMap.put(skup, skupDto);
|
|
|
|
|
|
return ChangePricePrepareDTO.builder()
|
|
|
.baseSellerOrderGoods(psog)
|
|
|
.skupMap(skupMap)
|
|
|
.prdPrice(prdPrice)
|
|
|
.preEarnestMoney(preEarnestMoney)
|
|
|
.diffEarnestMoney(diffEarnestMoney)
|
|
|
.preSalePrice(preSalePrice)
|
|
|
.salePrice(salePrice)
|
|
|
.computeResult(computeResult)
|
|
|
.skupType(skupType)
|
|
|
.priceOverFlowTips(tips)
|
|
|
.tips(tips)
|
|
|
.sellerBo(sellerBo)
|
|
|
.build();
|
|
|
}
|
|
|
|
...
|
...
|
|