提交 9a591ed8 作者: xiaowang

提现

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