...
|
...
|
@@ -6,15 +6,21 @@ import com.yohobuy.ufo.model.order.common.OrderStatus; |
|
|
import com.yohobuy.ufo.model.order.common.Payment;
|
|
|
import com.yohoufo.common.alarm.EventBusPublisher;
|
|
|
import com.yohoufo.dal.order.model.*;
|
|
|
import com.yohoufo.order.common.TransferCase;
|
|
|
import com.yohoufo.order.event.PayConfirmEvent;
|
|
|
import com.yohoufo.order.model.PayQueryBo;
|
|
|
import com.yohoufo.order.model.RequestedCancelEventStatusChangeBuyerOrder;
|
|
|
import com.yohoufo.order.model.RequestedStatusChangeBuyerOrder;
|
|
|
import com.yohoufo.order.model.request.TranseferCellNode;
|
|
|
import com.yohoufo.order.model.request.TransferMoneyRequest;
|
|
|
import com.yohoufo.order.service.AbstractBuyerOrderStateChanger;
|
|
|
import com.yohoufo.order.service.impl.TransferService;
|
|
|
import com.yohoufo.order.service.listener.BuyerOrderChangeEvent;
|
|
|
import com.yohoufo.order.service.pay.AbstractPayService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collection;
|
|
|
import java.util.List;
|
...
|
...
|
@@ -29,6 +35,9 @@ import static com.yohobuy.ufo.model.order.common.OrderStatus.*; |
|
|
@Service
|
|
|
public class BuyerOrderWaitingPayCancelChanger extends AbstractBuyerOrderStateChanger<RequestedCancelEventStatusChangeBuyerOrder> {
|
|
|
|
|
|
@Autowired
|
|
|
private TransferService transferService;
|
|
|
|
|
|
@Override
|
|
|
protected boolean beforeChange(RequestedCancelEventStatusChangeBuyerOrder statusChangeBuyerOrder) {
|
|
|
BuyerOrder buyerOrder = statusChangeBuyerOrder.getBuyerOrder();
|
...
|
...
|
@@ -90,9 +99,43 @@ public class BuyerOrderWaitingPayCancelChanger extends AbstractBuyerOrderStateCh |
|
|
* @param buyerOrder
|
|
|
*/
|
|
|
private void bidOrderAfterStatement(BuyerOrder buyerOrder) {
|
|
|
//todo
|
|
|
//定金金额
|
|
|
double depositAmount = getDepositAmount(buyerOrder);
|
|
|
// //定金赔偿给卖家
|
|
|
int buyerUid = buyerOrder.getUid();
|
|
|
long buyerOrderCode = buyerOrder.getOrderCode();
|
|
|
int sellerUid = buyerOrder.getSellerUid();
|
|
|
logger.info("Transfer deposit to sellerUid:{} with depositAmount:{},because buyerOrder:{} is canceled", sellerUid, depositAmount, buyerOrderCode);
|
|
|
TransferMoneyRequest tmReq = buildTransferMoneyRequest4Seller(buyerUid, buyerOrderCode, sellerUid, BigDecimal.valueOf(depositAmount));
|
|
|
transferService.transfer(tmReq);
|
|
|
logger.info("Transfer deposit to sellerUid:{} with depositAmount:{} end ", sellerUid, depositAmount);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param buyerUid
|
|
|
* @param buyerOrderCode
|
|
|
* @param sellerUid
|
|
|
* @param penaltyAmount
|
|
|
* @return
|
|
|
*/
|
|
|
private TransferMoneyRequest buildTransferMoneyRequest4Seller(int buyerUid, long buyerOrderCode,
|
|
|
int sellerUid,
|
|
|
BigDecimal penaltyAmount) {
|
|
|
TransferCase transferCase = TransferCase.PART_GOODS_MONEY_TO_SELLER;
|
|
|
TranseferCellNode transeferCellNode = new TranseferCellNode();
|
|
|
transeferCellNode.setUid(buyerUid);
|
|
|
transeferCellNode.setAmount(penaltyAmount);
|
|
|
TransferMoneyRequest tmReq = TransferMoneyRequest.builder()
|
|
|
.sellerUid(sellerUid)
|
|
|
.buyerOrderCode(buyerOrderCode)
|
|
|
.type(transferCase.getCode())
|
|
|
.transferCase(transferCase)
|
|
|
.transeferCellNode(transeferCellNode)
|
|
|
.build();
|
|
|
return tmReq;
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public boolean isSupport(RequestedStatusChangeBuyerOrder statusChangeBuyerOrder) {
|
|
|
OrderStatus sourceStatus = statusChangeBuyerOrder.getSourceStatus();
|
...
|
...
|
|