...
|
...
|
@@ -15,6 +15,7 @@ import com.yohoufo.order.common.*; |
|
|
import com.yohoufo.order.event.ErpCancelSellerOrderEvent;
|
|
|
import com.yohoufo.order.event.OrderCancelEvent;
|
|
|
import com.yohoufo.order.model.request.PaymentRequest;
|
|
|
import com.yohoufo.order.model.request.TransferMoneyRequest;
|
|
|
import com.yohoufo.order.mq.TopicConstants;
|
|
|
import com.yohoufo.order.mq.producer.TradeMqSender;
|
|
|
import com.yohoufo.order.service.IPaymentService;
|
...
|
...
|
@@ -27,7 +28,6 @@ import com.yohoufo.order.service.support.codegenerator.bean.CodeMeta; |
|
|
import com.yohoufo.order.utils.LoggerUtils;
|
|
|
import lombok.experimental.Builder;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
...
|
...
|
@@ -115,7 +115,7 @@ public class SellerOrderCancelService { |
|
|
if (Objects.isNull(status)){
|
|
|
return result;
|
|
|
}
|
|
|
List<Integer> sellerCanCancelStatus = ActionStatusHold.getSellerCanRefundStatus();
|
|
|
List<Integer> sellerCanCancelStatus = ActionStatusHold.getSellerCanCancelStatus();
|
|
|
if (!sellerCanCancelStatus.contains(status)){
|
|
|
logger.warn("seller cancel can not execute in this status, uid {} orderCode {}, status {}", uid, orderCode, status);
|
|
|
throw new ServiceException(ServiceError.ORDER_REQUEST_PARM_IS_EMPTY);
|
...
|
...
|
@@ -226,26 +226,30 @@ public class SellerOrderCancelService { |
|
|
*/
|
|
|
final int sellerUid = sellerOrder.getUid();
|
|
|
final long orderCode = sellerOrder.getOrderCode();
|
|
|
int skup = sellerOrder.getSkup();
|
|
|
logger.info("in seller cancel when Seller Pay But Not Buy Action, uid {}, orderCode {}",
|
|
|
sellerUid, orderCode);
|
|
|
|
|
|
double earnestMoney = sellerOrder.getEarnestMoney().doubleValue();
|
|
|
PaymentRequest refundReq = PaymentRequest.builder().uid(sellerUid)
|
|
|
.orderCode(orderCode)
|
|
|
.refundAmount(earnestMoney).build();
|
|
|
paymentService.refund(refundReq);
|
|
|
logger.info("in cancelAfterPayButNotBuyAction, refund earnestMoney finish, seller {}, order code {}, skup {}, earnestMoney {}",
|
|
|
sellerUid, orderCode, skup, earnestMoney );
|
|
|
|
|
|
int result = 0;
|
|
|
SellerOrderStatus targetSOStatus;
|
|
|
|
|
|
targetSOStatus = SellerOrderStatus.PLAY_SELF;
|
|
|
SellerOrderStatus expectStatus = SellerOrderStatus.HAS_PAYED;
|
|
|
int skup = sellerOrder.getSkup();
|
|
|
|
|
|
SellerOrderStatusNode statusNode = SellerOrderStatusNode.builder().targetStatus(targetSOStatus)
|
|
|
.exceptStatus(expectStatus).build();
|
|
|
result = cancelBeforePayAction(sellerUid, orderCode, skup, statusNode);
|
|
|
//refund earnestMoney
|
|
|
if (result>0){
|
|
|
double earnestMoney = sellerOrder.getEarnestMoney().doubleValue();
|
|
|
PaymentRequest refundReq = PaymentRequest.builder().uid(sellerUid)
|
|
|
.orderCode(orderCode)
|
|
|
.refundAmount(earnestMoney).build();
|
|
|
paymentService.refund(refundReq);
|
|
|
logger.info("in cancelAfterPayButNotBuyAction, refund earnestMoney finish, seller {}, order code {}, skup {}, earnestMoney {}",
|
|
|
sellerUid, orderCode, skup, earnestMoney );
|
|
|
|
|
|
}
|
|
|
return result;
|
|
|
}
|
...
|
...
|
@@ -264,6 +268,11 @@ public class SellerOrderCancelService { |
|
|
|
|
|
logger.info("in seller cancel After Pay while Exist Buy Action, uid {}, orderCode {}, buyerOrderCode {}",
|
|
|
sellerUid, sellerOrderCode, buyerOrderCode);
|
|
|
|
|
|
//TODO 分赃(分账) 有待考虑使用2比对
|
|
|
TransferMoneyRequest tmReq = TransferMoneyRequest.builder().buyerOrderCode(buyerOrderCode)
|
|
|
.type(TransferCase.SELLER_PLAY_BUYER.getCode()).build();
|
|
|
paymentService.transferMon(tmReq);
|
|
|
int result = 0;
|
|
|
|
|
|
//actions of buyer order and related
|
...
|
...
|
@@ -290,10 +299,8 @@ public class SellerOrderCancelService { |
|
|
target.setExceptStatus(SellerOrderStatus.HAS_PAYED.getCode());
|
|
|
result += sellerOrderMapper.updateByOrderCode(target);
|
|
|
|
|
|
//TODO 分赃(分账) 有待考虑使用2比对
|
|
|
if(result == 2){
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
...
|
...
|
@@ -307,8 +314,6 @@ public class SellerOrderCancelService { |
|
|
|
|
|
int buyOrderCnt = buyerOrder== null ? 0 : 1;
|
|
|
|
|
|
|
|
|
|
|
|
if (buyOrderCnt == 0){
|
|
|
/**case 2: 支付完成,没有买家下单
|
|
|
* actions as blow:
|
...
|
...
|
@@ -388,6 +393,16 @@ public class SellerOrderCancelService { |
|
|
logger.warn("in offShelveCancelCase, SellerOrderGoods status illegal, skup {}, status {}", skup, skupStatus);
|
|
|
return;
|
|
|
}
|
|
|
SellerOrder sellerOrder = sellerOrderMapper.selectBySkup(skup);
|
|
|
Integer sellerUid = sellerOrder.getUid();
|
|
|
Long orderCode = sellerOrder.getOrderCode();
|
|
|
double earnestMoney = sellerOrder.getEarnestMoney().doubleValue();
|
|
|
PaymentRequest refundReq = PaymentRequest.builder().uid(sellerOrder.getUid())
|
|
|
.orderCode(sellerOrder.getOrderCode())
|
|
|
.refundAmount(earnestMoney).build();
|
|
|
paymentService.refund(refundReq);
|
|
|
logger.info("in yoho Off Shelve Cancel , refund earnestMoney finish, seller {}, order code {}, skup {}, earnestMoney {}",
|
|
|
sellerUid, orderCode, skup, earnestMoney );
|
|
|
|
|
|
final SellerOrderStatus targetSellerOrderStatus = SellerOrderStatus.YOHO_CANCEL_SELL;
|
|
|
//TODO check skup is buy away
|
...
|
...
|
@@ -401,9 +416,6 @@ public class SellerOrderCancelService { |
|
|
return;
|
|
|
}
|
|
|
|
|
|
SellerOrder sellerOrder = sellerOrderMapper.selectBySkup(skup);
|
|
|
Integer sellerUid = sellerOrder.getUid();
|
|
|
Long orderCode = sellerOrder.getOrderCode();
|
|
|
SellerOrder tso = new SellerOrder();
|
|
|
tso.setOrderCode(sellerOrder.getOrderCode());
|
|
|
tso.setExceptStatus(sellerOrder.getStatus());
|
...
|
...
|
@@ -413,13 +425,7 @@ public class SellerOrderCancelService { |
|
|
result = sellerOrderMapper.updateByOrderCode(tso);
|
|
|
//refund earnestMoney only has payed
|
|
|
if (isPayEarnestMoney && result > 0) {
|
|
|
double earnestMoney = sellerOrder.getEarnestMoney().doubleValue();
|
|
|
PaymentRequest refundReq = PaymentRequest.builder().uid(sellerOrder.getUid())
|
|
|
.orderCode(sellerOrder.getOrderCode())
|
|
|
.refundAmount(earnestMoney).build();
|
|
|
paymentService.refund(refundReq);
|
|
|
logger.info("in yoho Off Shelve Cancel , refund earnestMoney finish, seller {}, order code {}, skup {}, earnestMoney {}",
|
|
|
sellerUid, orderCode, skup, earnestMoney );
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
...
|
...
|
|