提交 9a591ed8 作者: xiaowang

提现

上级 465333b5
......@@ -103,7 +103,7 @@ public class WithdrawalServiceImpl implements WithdrawalService {
withdrawalLogDO.setPayNo(payNo);
withdrawalLogDO.setPayTime(new Date());
withdrawalLogDO.setSalaryFreeze(applyWithdrawalVO.getPayAmount());
withdrawalLogDO.setSalaryPaid(new BigDecimal(0));
withdrawalLogDO.setSalaryPaid(BigDecimal.ZERO);
withdrawalLogDO.setXzWithdrawalApplyId(xzWithdrawalApplyDO.getId());
withdrawalLogDO.setUserAccountId(userAccountId);
withdrawalLogDO.setPayMethod(WithdrawalMethod.TXDJ.getCode());
......
......@@ -306,7 +306,7 @@ public class XzServiceImpl implements XzService {
xzWithdrawalApplyDO.setTradeStatus(data.getTradeStatus());
payWalletDao.updateWithdrawalApply(xzWithdrawalApplyDO);
// 提现失败回滚用户金额
callbackUserPayWallet(data, withdrawCashApplyDetails, wallet);
callbackUserPayWallet(data, withdrawCashApplyDetails, wallet, 0);
}
} else if (XzEnums.trade_result.getCode().equals(data.getNotifyType())) {
// 根据回调信息返回数据更新提现申请
......@@ -329,6 +329,9 @@ public class XzServiceImpl implements XzService {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return "error";
}
// 解冻冻结金,记录流水
callbackUserPayWallet(data, withdrawCashApplyDetails, wallet, 1);
return "success";
} else if (XzEnums.handle.getCode().equals(data.getTradeStatus())) {
// 修改提现申请状态
xzWithdrawalApplyDO.setTradeStatus(XzEnums.handle.getCode());
......@@ -356,7 +359,7 @@ public class XzServiceImpl implements XzService {
return "error";
}
// 提现失败回滚用户金额
callbackUserPayWallet(data, withdrawCashApplyDetails, wallet);
callbackUserPayWallet(data, withdrawCashApplyDetails, wallet, 0);
}
}
} else {
......@@ -366,8 +369,14 @@ public class XzServiceImpl implements XzService {
return "success";
}
/**
* @param data 回调返回的数据
* @param withdrawCashApplyDetails 提现申请信息
* @param wallet 用户钱包信息
* @param flag 0:失败 1:成功
*/
@Transactional(rollbackFor = Exception.class)
public void callbackUserPayWallet(WithdrawalResp.Data data, XzWithdrawalApplyDO withdrawCashApplyDetails, PayWalletDO wallet) {
public void callbackUserPayWallet(WithdrawalResp.Data data, XzWithdrawalApplyDO withdrawCashApplyDetails, PayWalletDO wallet, Integer flag) {
String payNo = "T" + TDateUtil.getDateStr(new Date(), TDateUtil.TYPE) + withdrawCashApplyDetails.getUserAccountId() + CodeUtil.getRandomNum(4);
// 记录流水记录
WithdrawalLogDO withdrawalLogDO = new WithdrawalLogDO();
......@@ -376,18 +385,24 @@ public class XzServiceImpl implements XzService {
withdrawalLogDO.setPayTime(new Date());
withdrawalLogDO.setUserAccountId(withdrawCashApplyDetails.getUserAccountId());
withdrawalLogDO.setSalaryPaid(data.getPayAmount());
withdrawalLogDO.setPayMethod(WithdrawalMethod.TXSB.getCode());
withdrawalLogDO.setSalaryFreeze(new BigDecimal(0));
if (flag == 0) {
withdrawalLogDO.setPayMethod(WithdrawalMethod.TXSB.getCode());
} else {
withdrawalLogDO.setPayMethod(WithdrawalMethod.TXCG.getCode());
}
withdrawalLogDO.setSalaryFreeze(BigDecimal.ZERO);
payWalletDao.insertWithdrawalLog(withdrawalLogDO);
// 修改钱包信息,钱包冻结金额
PayWalletDO payWalletDO = new PayWalletDO();
payWalletDO.setPid(wallet.getPid());
payWalletDO.setUserAccountId(withdrawCashApplyDetails.getUserAccountId());
payWalletDO.setSalaryAmt(wallet.getSalaryAmt().add(data.getPayAmount()));
if (flag == 0) {
payWalletDO.setSalaryAmt(wallet.getSalaryAmt().add(data.getPayAmount()));
}
payWalletDO.setSalaryFreeze(wallet.getSalaryFreeze().subtract(data.getPayAmount()));
int updatePayWalletCount = payWalletDao.updatePayWallet(payWalletDO);
if (updatePayWalletCount != 1) {
log.error("回调返回提现失败时,修改钱包信息失败,信息是:{}", JSON.toJSONString(payWalletDO));
log.error("回调返回提现时,修改钱包信息失败,信息是:{}", JSON.toJSONString(payWalletDO));
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论