Authored by chenchao

add selleruid

... ... @@ -17,6 +17,10 @@ import lombok.experimental.Builder;
public class TransferMoneyRequest {
private TranseferCellNode transeferCellNode;
private Integer sellerUid;
private Integer buyerUid;
private long buyerOrderCode;
... ...
... ... @@ -502,6 +502,7 @@ public class AppraiseService {
//将卖家的保证金分账给平台和买家
TransferCase transferCase = TransferCase.EARNEST_MONEY_TO_BUYER;
TransferMoneyRequest tmReq = TransferMoneyRequest.builder()
.sellerUid(sellerUid)
.buyerOrderCode(orderCode)
.type(transferCase.getCode())
.transferCase(transferCase)
... ...
... ... @@ -51,6 +51,7 @@ class BuyerOrderCancelHandler {
private final int uid;
private final long orderCode;
private Integer sellerUid;
private SellerOrderGoodsMapper sellerOrderGoodsMapper;
... ... @@ -145,6 +146,7 @@ class BuyerOrderCancelHandler {
log.info("cancel order {} fail, order is not exist", orderCode);
throwServiceException(ServiceError.ORDER_NOT_EXIST);
}
this.sellerUid = buyerOrder.getSellerUid();
// 当前状态不可取消订单
if (expectStatus.getCode() != buyerOrder.getStatus()) {
log.info("cancel order {} fail, order status is not expect", orderCode);
... ... @@ -217,6 +219,7 @@ class BuyerOrderCancelHandler {
return;
}
val transferMoneyRequest = TransferMoneyRequest.builder()
.sellerUid(sellerUid)
.buyerOrderCode(orderCode)
.type(transferCase.getCode())
.transferCase(transferCase)
... ...
... ... @@ -478,6 +478,7 @@ public class SellerOrderCancelService {
//分赃(分账) 有待考虑使用2比对
TransferCase transferCase = TransferCase.EARNEST_MONEY_TO_BUYER;
TransferMoneyRequest tmReq = TransferMoneyRequest.builder()
.sellerUid(sellerUid)
.buyerOrderCode(buyerOrderCode)
.type(transferCase.getCode())
.transferCase(transferCase)
... ...
... ... @@ -227,4 +227,32 @@ public class SellerService {
}
return isFatWallet;
}
/**
* 卖家账户划钱时触发
* @param uid
*/
public void processAfterWalletChange(Integer uid){
SellerWrapper sellerWrapper =
new SellerWrapper(uid,logger)
.addSpecialSuperFunc(this::isSpecialSuper)
.storedSellerDataSource(storedSellerMapper::selectByUid)
.buildBase();
SellerBo sellerBo = sellerWrapper.build();
EntrySellerType currentEST = sellerBo.getEntrySellerType();
EntrySellerType targetEST = EntrySellerType.SUPER_ENTRY;
if (!Objects.equals(targetEST, currentEST)){
logger.info("processAfterWalletChange user was {} , uid {}", currentEST , uid);
return ;
}
//left enter type is 入驻超级
BigDecimal leftInWallet = merchantOrderPaymentService.getWalletLeftAmount(uid);
//
SellerEnterApply seac = new SellerEnterApply();
seac.setUid(uid);
seac.setEnterType(targetEST.getCode());
List<SellerEnterApply> seaList = sellerEnterApplyMapper.selectByUOCET(seac);
sellerEnterApplyService.upgradeLevel(sellerWrapper, null, leftInWallet, seaList);
}
}
... ...
... ... @@ -24,6 +24,9 @@ public class TransferService {
@Autowired
private IPaymentService paymentService;
@Autowired
private SellerService sellerService;
public boolean transfer(TransferMoneyRequest req) {
logger.info("in transfer, req is {}", req);
TransferCase transferCase = req.getTransferCase();
... ... @@ -39,6 +42,14 @@ public class TransferService {
SmsAlarmEvent smsAlarmEvent = getSmsAlarmEvent(req, transferCase);
EventBusPublisher.publishEvent(smsAlarmEvent);
}
try{
Integer sellerUid;
if(Objects.nonNull(sellerUid=req.getSellerUid()) && Objects.equals(transferCase, TransferCase.EARNEST_MONEY_TO_BUYER)) {
sellerService.processAfterWalletChange(sellerUid);
}
}catch (Exception ex){
}
return transferFlag;
}
... ...