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

View File

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

View File

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