Authored by LUOXC

fixbug

... ... @@ -3,6 +3,7 @@ package com.yohoufo.dal.order.model;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Objects;
/**
* 交易流水表
... ... @@ -38,7 +39,7 @@ public class TradeBills {
private Integer tradeType;
//1:用户收入; 2:用户支出
private Integer incomeOutcome;
private Integer incomeOutcome;
private BigDecimal amount;
... ... @@ -66,4 +67,12 @@ public class TradeBills {
//支付阶段,0:普通,1:定金
private int payLevel = 0;
public boolean isIncome() {
return Objects.equals(incomeOutcome, 1);
}
public boolean isOutcome() {
return Objects.equals(incomeOutcome, 2);
}
}
... ...
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;
}
}
... ...