111
This commit is contained in:
parent
fbb70d1969
commit
2cab5d0b73
|
@ -902,49 +902,55 @@ public class EtOrderServiceImpl implements IEtOrderService
|
||||||
EtOrder etOrder1 = new EtOrder();
|
EtOrder etOrder1 = new EtOrder();
|
||||||
etOrder1.setStatus(ServiceConstants.ORDER_STATUS_ORDER_END);
|
etOrder1.setStatus(ServiceConstants.ORDER_STATUS_ORDER_END);
|
||||||
etOrder1.setOrderId(etOrder.getOrderId());
|
etOrder1.setOrderId(etOrder.getOrderId());
|
||||||
int updateEtOrder = etOrderMapper.updateEtOrder(etOrder1);
|
Boolean execute = transactionTemplate.execute(e -> {
|
||||||
if(updateEtOrder == 0){
|
int updateEtOrder = etOrderMapper.updateEtOrder(etOrder1);
|
||||||
throw new ServiceException("还车审核失败,更新订单失败");
|
if(updateEtOrder == 0){
|
||||||
}
|
throw new ServiceException("还车审核失败,更新订单失败");
|
||||||
Boolean refunded = isRefunded(etOrder.getUserId());
|
}
|
||||||
if(!refunded){
|
Boolean refunded = isRefunded(etOrder.getUserId());
|
||||||
/** 2.退剩余押金 = 押金 - 扣除金额*/
|
if(!refunded){
|
||||||
EtOrder depositOrder = getDepositOrder(etOrder.getUserId());
|
/** 2.退剩余押金 = 押金 - 扣除金额*/
|
||||||
BigDecimal deductionAmount = new BigDecimal(etOrder.getDeductionAmount());
|
EtOrder depositOrder = getDepositOrder(etOrder.getUserId());
|
||||||
BigDecimal residualDeposit = depositOrder.getTotalFee().subtract(deductionAmount);//抵扣后的金额
|
BigDecimal deductionAmount = new BigDecimal(etOrder.getDeductionAmount());
|
||||||
String refNo = IdUtils.getOrderNo("ref");
|
BigDecimal residualDeposit = depositOrder.getTotalFee().subtract(deductionAmount);//抵扣后的金额
|
||||||
wxPayService.refund(depositOrder, "还车审核通过后退押金",residualDeposit,refNo);
|
String refNo = IdUtils.getOrderNo("ref");
|
||||||
/** 3.记录退款表 创建退款对象*/
|
/** 3.记录退款表 创建退款对象*/
|
||||||
depositOrder.setReason("还车审核通过后退押金");
|
depositOrder.setReason("还车审核通过后退押金");
|
||||||
if(deductionAmount.compareTo(BigDecimal.ZERO) > 0){
|
if(deductionAmount.compareTo(BigDecimal.ZERO) > 0){
|
||||||
EtRefund refund1= createRefund(depositOrder, residualDeposit, null, null, null, null, refNo,ServiceConstants.REFUND_TYPE_DEPOSIT);
|
EtRefund refund1= createRefund(depositOrder, residualDeposit, null, null, null, null, refNo,ServiceConstants.REFUND_TYPE_DEPOSIT);
|
||||||
int i = etRefundService.insertEtRefund(refund1);
|
int i = etRefundService.insertEtRefund(refund1);
|
||||||
if(i == 0){
|
if(i == 0){
|
||||||
log.info("【还车审核通过】保存退款对象失败");
|
log.info("【还车审核通过】保存退款对象失败");
|
||||||
throw new ServiceException("【还车审核通过】,保存退款对象失败");
|
throw new ServiceException("【还车审核通过】,保存退款对象失败");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
/** 4.更新用户余额*/
|
||||||
/** 4.更新用户余额*/
|
AsUser asUser = asUserService.selectUserById(depositOrder.getUserId());
|
||||||
AsUser asUser = asUserService.selectUserById(depositOrder.getUserId());
|
if(asUser!=null){
|
||||||
if(asUser!=null){
|
// 更新用户并更新缓存
|
||||||
// 更新用户并更新缓存
|
asUser.setBalance(BigDecimal.ZERO);
|
||||||
asUser.setBalance(BigDecimal.ZERO);
|
if (asUserService.updateUserProfile(asUser) > 0)
|
||||||
if (asUserService.updateUserProfile(asUser) > 0)
|
{
|
||||||
{
|
log.info("【还车审核通过】更新用户信息成功:"+ JSON.toJSON(asUser));
|
||||||
log.info("【还车审核通过】更新用户信息成功:"+ JSON.toJSON(asUser));
|
}else{
|
||||||
}else{
|
throw new ServiceException("【还车审核通过】,更新用户信息失败");
|
||||||
throw new ServiceException("【还车审核通过】,更新用户信息失败");
|
}
|
||||||
}
|
}
|
||||||
|
if(deductionAmount.compareTo(BigDecimal.ZERO) >= 0){//抵扣金额大于0时,增加车损收入
|
||||||
|
/** 押金抵扣后生成资金流水记录 */
|
||||||
|
etOrder.setPayFee(deductionAmount);
|
||||||
|
callbackService.capitalFlowRecords(etOrder,ServiceConstants.FLOW_TYPE_INCOME,ServiceConstants.ORDER_TYPE_VEHICLE_DAMAGE,
|
||||||
|
ServiceConstants.OWNER_TYPE_OPERATOR,null,ServiceConstants.PAY_TYPE_YJ,null,null);
|
||||||
|
}
|
||||||
|
if(BigDecimal.ZERO.compareTo(residualDeposit) < 0){
|
||||||
|
wxPayService.refund(depositOrder, "还车审核通过后退押金",residualDeposit,refNo);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.info("【还车审核通过】当前用户押金已退款!!------不退押金");
|
||||||
}
|
}
|
||||||
if(deductionAmount.compareTo(BigDecimal.ZERO) >= 0){//抵扣金额大于0时,增加车损收入
|
return Boolean.TRUE;
|
||||||
/** 押金抵扣后生成资金流水记录 */
|
});
|
||||||
etOrder.setPayFee(deductionAmount);
|
if(Boolean.FALSE.equals(execute))throw new ServiceException("官方审核通过失败");
|
||||||
callbackService.capitalFlowRecords(etOrder,ServiceConstants.FLOW_TYPE_INCOME,ServiceConstants.ORDER_TYPE_VEHICLE_DAMAGE,
|
|
||||||
ServiceConstants.OWNER_TYPE_OPERATOR,null,ServiceConstants.PAY_TYPE_YJ,null,null);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
log.info("【还车审核通过】当前用户押金已退款!!------不退押金");
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user