|
|
package com.yohoufo.order.service.handler.transfer;
|
|
|
|
|
|
import com.yoho.error.exception.ServiceException;
|
|
|
import com.yohobuy.ufo.model.order.common.EntrySellerDepositType;
|
|
|
import com.yohobuy.ufo.model.order.common.OrderCodeType;
|
|
|
import com.yohoufo.common.alarm.CommonAlarmEventPublisher;
|
|
|
import com.yohoufo.dal.order.EntrySellerRechargeOrderMapper;
|
|
|
import com.yohoufo.dal.order.model.EntrySellerRechargeOrder;
|
|
|
import com.yohoufo.dal.order.model.TradeBills;
|
|
|
import com.yohoufo.order.common.TradeType;
|
|
|
import com.yohoufo.order.repository.TradeBillsRepository;
|
|
|
import com.yohoufo.order.service.impl.TransferService;
|
|
|
import com.yohoufo.order.service.support.codegenerator.OrderCodeGenerator;
|
|
|
import com.yohoufo.order.service.support.codegenerator.bean.CodeMeta;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
import static com.yohoufo.order.utils.ServiceExceptions.throwServiceExceptionIf;
|
|
|
|
|
|
@Slf4j
|
...
|
...
|
@@ -93,29 +98,22 @@ public class TradeBillsSupport { |
|
|
// '1:买家uid; 2:卖家uid','1:保证金;2:货款;3:补偿款', '1:用户收入; 2:用户支出'
|
|
|
private boolean isRefundEarnestMoneyTradeBills(TradeBills tradeBills) {
|
|
|
long orderCode = tradeBills.getOrderCode();
|
|
|
return tradeBills.getUserType() == 2
|
|
|
&& tradeBills.getTradeType() == 1
|
|
|
&& tradeBills.getIncomeOutcome() == 1
|
|
|
&& !isMerchantExit(orderCode);
|
|
|
return tradeBills.getUserType() == TransferService.TargetUserType.seller.getCode()
|
|
|
&& tradeBills.getTradeType() == TradeType.guarantee_cash.getCode()
|
|
|
&& tradeBills.isIncome()
|
|
|
&& !isMerchantExitOrder(orderCode);
|
|
|
}
|
|
|
|
|
|
private boolean isMerchantExit(long orderCode) {
|
|
|
boolean isMerchantExit = false;
|
|
|
private boolean isMerchantExitOrder(long orderCode) {
|
|
|
// 是否为退出入驻订单
|
|
|
CodeMeta codeMeta = orderCodeGenerator.expId(orderCode);
|
|
|
if (codeMeta.getType() == OrderCodeType.SELLER_RECHARGE_EARNEST_TYPE.getType()) {
|
|
|
// 检查退出入驻订单是否存在
|
|
|
EntrySellerRechargeOrder order = entrySellerRechargeOrderMapper.selectByOrderCode(orderCode);
|
|
|
if (order != null && order.getStatus() != null && order.getType() != null && order.getType() == 3) {
|
|
|
if (order.getStatus() == 0) {
|
|
|
isMerchantExit = true;
|
|
|
} else {
|
|
|
throw new ServiceException(400, "退款已成功");
|
|
|
}
|
|
|
} else {
|
|
|
throw new ServiceException(400, "商家退出入驻订单异常");
|
|
|
}
|
|
|
throwServiceExceptionIf(Objects.isNull(order) || !Objects.equals(order.getType(), EntrySellerDepositType.GO_BACK.getType()), 400, "商家退出入驻订单异常");
|
|
|
return true;
|
|
|
}
|
|
|
return isMerchantExit;
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
} |
...
|
...
|
|