feat 统一先计算变更记录再update user money

This commit is contained in:
damonyuan 2024-11-10 16:41:37 +08:00
parent 4617e5132e
commit 0378999b3e
3 changed files with 12 additions and 10 deletions

View File

@ -167,10 +167,6 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
rechargeOrder.setRefundStatus(1); rechargeOrder.setRefundStatus(1);
rechargeOrderMapper.updateById(rechargeOrder); rechargeOrderMapper.updateById(rechargeOrder);
// 更新用户余额
user.setUserMoney(user.getUserMoney().subtract(rechargeOrder.getOrderAmount()));
userMapper.updateById(user);
// 记录余额日志 // 记录余额日志
userAccountLogMapper.dec( userAccountLogMapper.dec(
user.getId(), user.getId(),
@ -182,6 +178,11 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
null null
); );
// 更新用户余额
user.setUserMoney(user.getUserMoney().subtract(rechargeOrder.getOrderAmount()));
userMapper.updateById(user);
// 生成退款记录 // 生成退款记录
String refundSn = refundRecordMapper.randMakeOrderSn("sn"); String refundSn = refundRecordMapper.randMakeOrderSn("sn");
refundRecord = new RefundRecord(); refundRecord = new RefundRecord();

View File

@ -43,7 +43,7 @@ public interface UserAccountLogMapper extends IBaseMapper<UserAccountLog> {
Integer changeObject = AccountLogEnum.getChangeObject(changeType); Integer changeObject = AccountLogEnum.getChangeObject(changeType);
BigDecimal leftAmount = user.getUserMoney(); //.add(changeAmount); BigDecimal leftAmount = user.getUserMoney().add(changeAmount);
UserAccountLog logMoney = new UserAccountLog(); UserAccountLog logMoney = new UserAccountLog();
logMoney.setSn(this.randMakeOrderSn()); logMoney.setSn(this.randMakeOrderSn());
logMoney.setUserId(userId); logMoney.setUserId(userId);
@ -82,7 +82,7 @@ public interface UserAccountLogMapper extends IBaseMapper<UserAccountLog> {
break; break;
} }
BigDecimal leftAmount = user.getUserMoney(); //.subtract(changeAmount); BigDecimal leftAmount = user.getUserMoney().subtract(changeAmount);
UserAccountLog logMoney = new UserAccountLog(); UserAccountLog logMoney = new UserAccountLog();
logMoney.setSn(this.randMakeOrderSn()); logMoney.setSn(this.randMakeOrderSn());

View File

@ -359,10 +359,6 @@ public class PayServiceImpl implements IPayService {
rechargeOrder.setUpdateTime(System.currentTimeMillis() / 1000); rechargeOrder.setUpdateTime(System.currentTimeMillis() / 1000);
rechargeOrderMapper.updateById(rechargeOrder); rechargeOrderMapper.updateById(rechargeOrder);
User user = userMapper.selectById(rechargeOrder.getUserId());
user.setUserMoney(user.getUserMoney().add(rechargeOrder.getOrderAmount()));
user.setUpdateTime(System.currentTimeMillis() / 1000);
userMapper.updateById(user);
logMoneyMapper.add(rechargeOrder.getUserId(), logMoneyMapper.add(rechargeOrder.getUserId(),
AccountLogEnum.UM_INC_RECHARGE.getCode(), AccountLogEnum.UM_INC_RECHARGE.getCode(),
@ -370,6 +366,11 @@ public class PayServiceImpl implements IPayService {
rechargeOrder.getId(), rechargeOrder.getId(),
rechargeOrder.getSn(), rechargeOrder.getSn(),
"用户充值余额", null); "用户充值余额", null);
User user = userMapper.selectById(rechargeOrder.getUserId());
user.setUserMoney(user.getUserMoney().add(rechargeOrder.getOrderAmount()));
user.setUpdateTime(System.currentTimeMillis() / 1000);
userMapper.updateById(user);
} }
} }
} }