Authored by chenchao

买家货款打到卖家钱包,原订单现货保证金未退还

... ... @@ -760,7 +760,7 @@ public class AppraiseService {
skup, orderCode, buyerUid);
//退款给卖家(仅退一次)
PaymentRequest refundReqOfSeller = operateMoneyWhenOk(buyerUid, orderCode, skup, sellerOrder, targetSoStatus);
PaymentRequest refundReqOfSeller = operateMoneyWhenOk(buyerUid, orderCode, sellerOrder, targetSoStatus);
//记录新的调拨信息
//记录调拨信息(只保存卖家一条)
... ... @@ -879,7 +879,7 @@ public class AppraiseService {
//将卖家的保证金扣掉10元后,剩余的钱退回给卖家
BigDecimal earnestMoney = sellerOrder.getEarnestMoney().subtract(new BigDecimal(miniFaultRejectPunishFee));
PaymentRequest refundReqOfSeller = refundEarnestMoney(SellerWalletDetail.Type.MINI_FAULT_REJECT, orderCode, sellerUid, sellerOrder, skup, buyerUid, targetSoStatus, earnestMoney.doubleValue());
PaymentRequest refundReqOfSeller = refundEarnestMoney(SellerWalletDetail.Type.MINI_FAULT_REJECT, orderCode, sellerUid, sellerOrder, buyerUid, targetSoStatus, earnestMoney.doubleValue());
LOGGER.info("in miniFaultReject,refund ok, refundReqOfSeller {}", refundReqOfSeller);
//退买家的钱
... ... @@ -1086,7 +1086,14 @@ public class AppraiseService {
}
//退保证金给卖家
private PaymentRequest refundEarnestMoney(SellerWalletDetail.Type swdType, Long orderCode, Integer sellerUid, SellerOrder sellerOrder, int skup, Integer buyerUid, SellerOrderStatus targetSoStatus, double refundMoney) {
private PaymentRequest refundEarnestMoney(SellerWalletDetail.Type swdType,
Long orderCode,
Integer sellerUid,
SellerOrder sellerOrder,
Integer buyerUid,
SellerOrderStatus targetSoStatus,
double refundMoney) {
Integer skup = sellerOrder.getSkup();
Long sellerOrderCode = sellerOrder.getOrderCode();
Integer sop = sellerOrder.getPayment() == null ? 0 : sellerOrder.getPayment();
PaymentRequest refundReqOfSeller = PaymentRequest.builder().uid(sellerUid)
... ... @@ -1112,7 +1119,8 @@ public class AppraiseService {
}
//瑕疵不接受的情况,并且是超级卖家的话,直接走惩罚接口
if (SellerWalletDetail.Type.MINI_FAULT_REJECT == swdType && sellerIsSuper && PaymentHelper.isWallet(sellerOrder.getPayment())) {
if (SellerWalletDetail.Type.MINI_FAULT_REJECT == swdType && sellerIsSuper
&& PaymentHelper.isWallet(sellerOrder.getPayment())) {
LOGGER.info("in refundEarnestMoney call punishEarnest orderCode {} ,swdType {} seller uid {},sellerIsSuper {},seller order code {}, skup {}, refundMoney {},refundReqOfSeller {}"
, orderCode, swdType,
sellerUid, sellerIsSuper, sellerOrderCode, skup, refundMoney, refundReqOfSeller);
... ... @@ -1474,7 +1482,7 @@ public class AppraiseService {
SellerOrderGoods sellerOrderGoods = updateSellerOrderStatusAndCleanCache(sellerUid, sellerOrderCode, expectSOStatus, targetSoStatus,
skup, orderCode, buyerUid);
//退款给卖家(仅退一次)
PaymentRequest refundReqOfSeller = operateMoneyWhenOk(buyerUid, orderCode, skup, sellerOrder, targetSoStatus);
PaymentRequest refundReqOfSeller = operateMoneyWhenOk(buyerUid, orderCode, sellerOrder, targetSoStatus);
try {
//记录订单的状态变更信息
LOGGER.info("in judgeCenterPass record status change, orderCode {},uid {} ,sellerUid {}", orderCode, buyerUid, sellerUid);
... ... @@ -1548,13 +1556,17 @@ public class AppraiseService {
/**
* 通过时 ,操作钱
*/
private PaymentRequest operateMoneyWhenOk(Integer buyerUid, Long orderCode, int skup, SellerOrder sellerOrder, SellerOrderStatus targetSoStatus) {
private PaymentRequest operateMoneyWhenOk(Integer buyerUid,
Long orderCode,
SellerOrder sellerOrder,
SellerOrderStatus targetSoStatus) {
Integer skup = sellerOrder.getSkup();
final Integer sellerUid = sellerOrder.getUid();
transferGoodsMoneyWhenPass(sellerUid, skup, orderCode);
//退保证金给卖家
//refund earnestMoney
BigDecimal earnestMoney = sellerOrder.getEarnestMoney();
PaymentRequest refundReqOfSeller = refundEarnestMoney(SellerWalletDetail.Type.APPRAISE_OK, orderCode, sellerUid, sellerOrder, skup, buyerUid, targetSoStatus, earnestMoney.doubleValue());
PaymentRequest refundReqOfSeller = refundEarnestMoney(SellerWalletDetail.Type.APPRAISE_OK, orderCode, sellerUid, sellerOrder, buyerUid, targetSoStatus, earnestMoney.doubleValue());
LOGGER.info("in appraiseSuccess,refund ok, refundReqOfSeller {}", refundReqOfSeller);
return refundReqOfSeller;
}
... ... @@ -1613,7 +1625,7 @@ public class AppraiseService {
skup, orderCode, buyerUid);
//退款给卖家(仅退一次)
PaymentRequest refundReqOfSeller = operateMoneyWhenOk(buyerUid, orderCode, skup, sellerOrder, targetSoStatus);
PaymentRequest refundReqOfSeller = operateMoneyWhenOk(buyerUid, orderCode, sellerOrder, targetSoStatus);
try {
//鉴定通过后自动发货,这个时候产生:买家确认收货的mq
BuyerConfirmEvent buyerConfirmEvent = BuyerConfirmEvent.builder()
... ... @@ -1899,18 +1911,22 @@ public class AppraiseService {
BuyerOrderGoods pbog = preparedData.getBuyerOrderGoods();
BuyerOrder pbo = preparedData.getBuyerOrder();
Long orderCode = pbo.getOrderCode();
int uid = pbo.getUid();
Integer buyerUid = pbo.getUid();
Integer sellerUid = pbo.getSellerUid();
Integer skup = pbog.getSkup();
try {
transferGoodsMoneyWhenPass(sellerUid, skup, orderCode);
final SellerOrderStatus targetSoStatus = SellerOrderStatus.FINISH;
SellerOrder sellerOrder = sellerOrderMapper.selectBySkup(skup);
double earnestMoneyDouble = sellerOrder.getEarnestMoney().doubleValue();
PaymentRequest refundReqOfSeller = refundEarnestMoney(SellerWalletDetail.Type.APPRAISE_OK, orderCode, sellerUid, sellerOrder, buyerUid, targetSoStatus, earnestMoneyDouble);
}catch (Exception ex){
LOGGER.warn("in processInstockDepositOrderAfterDeliver transferGoodsMoneyWhenPass fail orderCode {} sellerUid {}",
orderCode, sellerUid, ex);
}
try {
depositService.changeOwner(sellerUid, skup, orderCode, uid, true);
depositService.changeOwner(sellerUid, skup, orderCode, buyerUid, true);
}catch (Exception ex){
LOGGER.warn("deliver 2 depot successful, processInstockDepositOrderAfterDeliver invoke depositService.changeOwner fail, sellerUid {}, orderCode {},skup {}",
sellerUid, orderCode, skup);
... ...