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