2026-06-06 13:50:46 +08:00

131 lines
3.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package cumulativerecharge
const (
TierStatusActive = "active"
TierStatusInactive = "inactive"
GrantStatusPending = "pending"
GrantStatusGranted = "granted"
GrantStatusFailed = "failed"
ReasonEligible = "eligible"
ReasonNotConfigured = "not_configured"
ReasonDisabled = "disabled"
ReasonNoQualifyingValue = "no_qualifying_value"
ReasonAlreadyConsumed = "already_consumed"
ReasonNoTierMatched = "no_tier_matched"
ReasonPendingReward = "pending_reward"
RechargeEventWalletRecorded = "WalletRechargeRecorded"
RechargeTypeCoinSeller = "coin_seller_transfer"
)
// Tier 是累充奖励的 USD 档位,金额统一用美分保存,避免后台小数金额和发放判断出现精度漂移。
type Tier struct {
TierID int64
TierCode string
TierName string
ThresholdUSDMinor int64
ResourceGroupID int64
Status string
SortOrder int32
CreatedAtMS int64
UpdatedAtMS int64
}
// Config 是当前 App 的累充奖励配置activity-service 保存档位快照并负责后续充值事件判定。
type Config struct {
AppCode string
Enabled bool
Tiers []Tier
UpdatedByAdminID int64
CreatedAtMS int64
UpdatedAtMS int64
}
// Progress 是用户在一个 UTC 自然周内的累充累计投影。
type Progress struct {
AppCode string
CycleKey string
UserID int64
TotalUSDMinor int64
TotalCoinAmount int64
FirstRechargedAtMS int64
LastRechargedAtMS int64
UpdatedAtMS int64
}
// Grant 是用户命中某个累充档位后的资源组发放事实event 字段用于 MQ 重试复用原命令。
type Grant struct {
GrantID string
AppCode string
CycleKey string
UserID int64
EventID string
TransactionID string
CommandID string
TierID int64
TierCode string
ThresholdUSDMinor int64
ResourceGroupID int64
ReachedUSDMinor int64
QualifyingUSDMinor int64
RechargeCoinAmount int64
RechargeType string
Status string
WalletCommandID string
WalletGrantID string
FailureReason string
GrantedAtMS int64
CreatedAtMS int64
UpdatedAtMS int64
}
// RechargeEvent 是 wallet_outbox 里进入累充奖励的成功充值事实。
type RechargeEvent struct {
AppCode string
EventID string
EventType string
TransactionID string
CommandID string
UserID int64
RechargeCoinAmount int64
RechargeSequence int64
RechargeType string
QualifyingUSDMinor int64
PayloadJSON string
OccurredAtMS int64
}
// Cycle 表达 UTC 自然周周期边界。
type Cycle struct {
Key string
StartMS int64
EndMS int64
}
// StatusResult 是 App H5 页面读取的完整累充状态。
type StatusResult struct {
Config Config
Progress Progress
Grants []Grant
Cycle Cycle
ServerTimeMS int64
}
// PrepareResult 表达一次充值事实在 MySQL 事务内是否产生了需要执行的发放命令。
type PrepareResult struct {
Grants []Grant
Consumed bool
Reason string
}
// GrantQuery 是后台发放记录分页查询条件。
type GrantQuery struct {
Status string
UserID int64
CycleKey string
Page int32
PageSize int32
}