add point totalConsumed

This commit is contained in:
Timi
2026-08-22 11:45:00 +08:00
parent 376f0ecd05
commit 3c56e21efa
7 changed files with 28 additions and 7 deletions
@@ -24,6 +24,9 @@ public class GaoPointAccount extends UUIDEntity {
/// 累计获得积分
private Long totalEarned;
/// 累计消耗积分
private Long totalConsumed;
/// 累计撤销积分
private Long totalRevoked;
@@ -33,9 +33,10 @@ public interface GaoPointAccountMapper extends BaseMapper<GaoPointAccount, Strin
/// @param id 账户 ID
/// @param delta 本次余额变化
/// @param totalEarnedDelta 累计获得积分变化
/// @param totalConsumedDelta 累计消耗积分变化
/// @param totalRevokedDelta 累计撤销积分变化
/// @param totalAdjustedDelta 累计人工调整积分变化
/// @param updatedAt 更新时间
/// @return 更新行数
int updateBalance(@Param("id") String id, @Param("delta") long delta, @Param("totalEarnedDelta") long totalEarnedDelta, @Param("totalRevokedDelta") long totalRevokedDelta, @Param("totalAdjustedDelta") long totalAdjustedDelta, @Param("updatedAt") long updatedAt);
int updateBalance(@Param("id") String id, @Param("delta") long delta, @Param("totalEarnedDelta") long totalEarnedDelta, @Param("totalConsumedDelta") long totalConsumedDelta, @Param("totalRevokedDelta") long totalRevokedDelta, @Param("totalAdjustedDelta") long totalAdjustedDelta, @Param("updatedAt") long updatedAt);
}
@@ -28,8 +28,9 @@ public interface GaoPointAccountService extends BaseService<GaoPointAccount, Str
/// @param accountId 账户 ID
/// @param delta 本次余额变化
/// @param totalEarnedDelta 累计获得积分变化
/// @param totalConsumedDelta 累计消耗积分变化
/// @param totalRevokedDelta 累计撤销积分变化
/// @param totalAdjustedDelta 累计人工调整积分变化
/// @return 更新行数
int updateBalance(String accountId, long delta, long totalEarnedDelta, long totalRevokedDelta, long totalAdjustedDelta);
int updateBalance(String accountId, long delta, long totalEarnedDelta, long totalConsumedDelta, long totalRevokedDelta, long totalAdjustedDelta);
}
@@ -50,6 +50,7 @@ public class GaoPointAccountServiceImplement extends AbstractEntityService<GaoPo
account.setCustomerId(customerId);
account.setBalance(0L);
account.setTotalEarned(0L);
account.setTotalConsumed(0L);
account.setTotalRevoked(0L);
account.setTotalAdjusted(0L);
account.setVersion(0L);
@@ -64,8 +65,8 @@ public class GaoPointAccountServiceImplement extends AbstractEntityService<GaoPo
}
@Override
public int updateBalance(String accountId, long delta, long totalEarnedDelta, long totalRevokedDelta, long totalAdjustedDelta) {
public int updateBalance(String accountId, long delta, long totalEarnedDelta, long totalConsumedDelta, long totalRevokedDelta, long totalAdjustedDelta) {
TimiException.required(accountId, "not found accountId");
return mapper.updateBalance(accountId, delta, totalEarnedDelta, totalRevokedDelta, totalAdjustedDelta, Time.now());
return mapper.updateBalance(accountId, delta, totalEarnedDelta, totalConsumedDelta, totalRevokedDelta, totalAdjustedDelta, Time.now());
}
}
@@ -155,6 +155,7 @@ public class GaoPointLedgerServiceImplement extends AbstractEntityService<GaoPoi
long balanceBefore = account.getBalance();
long balanceAfter = Math.addExact(balanceBefore, pointDelta);
long totalEarnedDelta = changeType == GaoPointLedger.ChangeType.EARN ? pointDelta : 0L;
long totalConsumedDelta = changeType == GaoPointLedger.ChangeType.CONSUME ? -pointDelta : 0L;
long totalRevokedDelta = changeType == GaoPointLedger.ChangeType.REVOKE ? -pointDelta : 0L;
long totalAdjustedDelta = changeType == GaoPointLedger.ChangeType.ADJUST ? pointDelta : 0L;
@@ -176,7 +177,7 @@ public class GaoPointLedgerServiceImplement extends AbstractEntityService<GaoPoi
ledger.setOperatorUserId(operatorUserId);
ledger.setOccurredAt(occurredAt);
create(ledger);
int updated = accountService.updateBalance(account.getId(), pointDelta, totalEarnedDelta, totalRevokedDelta, totalAdjustedDelta);
int updated = accountService.updateBalance(account.getId(), pointDelta, totalEarnedDelta, totalConsumedDelta, totalRevokedDelta, totalAdjustedDelta);
TimiException.requiredTrue(0 < updated, "积分余额不足");
logger.setLevel(Logger.Level.INFO);
logger.setResult(ledger.getId());