自动发奖
This commit is contained in:
parent
49d788be18
commit
4777c6dabb
@ -97,12 +97,13 @@ func (WeekStarRewardRecord) TableName() string { return "week_star_reward_record
|
|||||||
|
|
||||||
// RoomTurnoverRewardConfig 保存房间流水奖励的系统级配置。
|
// RoomTurnoverRewardConfig 保存房间流水奖励的系统级配置。
|
||||||
type RoomTurnoverRewardConfig struct {
|
type RoomTurnoverRewardConfig struct {
|
||||||
ID int64 `gorm:"column:id;primaryKey"`
|
ID int64 `gorm:"column:id;primaryKey"`
|
||||||
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_room_turnover_reward_sys_origin"`
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_room_turnover_reward_sys_origin"`
|
||||||
Enabled bool `gorm:"column:enabled;index:idx_room_turnover_reward_enabled"`
|
Enabled bool `gorm:"column:enabled;index:idx_room_turnover_reward_enabled"`
|
||||||
Timezone string `gorm:"column:timezone;size:64"`
|
AutoRewardEnabled bool `gorm:"column:auto_reward_enabled"`
|
||||||
CreateTime time.Time `gorm:"column:create_time"`
|
Timezone string `gorm:"column:timezone;size:64"`
|
||||||
UpdateTime time.Time `gorm:"column:update_time"`
|
CreateTime time.Time `gorm:"column:create_time"`
|
||||||
|
UpdateTime time.Time `gorm:"column:update_time"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (RoomTurnoverRewardConfig) TableName() string { return "room_turnover_reward_config" }
|
func (RoomTurnoverRewardConfig) TableName() string { return "room_turnover_reward_config" }
|
||||||
@ -141,6 +142,7 @@ type RoomTurnoverRewardRecord struct {
|
|||||||
TurnoverThreshold int64 `gorm:"column:turnover_threshold"`
|
TurnoverThreshold int64 `gorm:"column:turnover_threshold"`
|
||||||
RewardGold int64 `gorm:"column:reward_gold"`
|
RewardGold int64 `gorm:"column:reward_gold"`
|
||||||
TrackID string `gorm:"column:track_id;size:128;uniqueIndex:uk_room_turnover_reward_track"`
|
TrackID string `gorm:"column:track_id;size:128;uniqueIndex:uk_room_turnover_reward_track"`
|
||||||
|
SourceID string `gorm:"column:source_id;size:128"`
|
||||||
Status string `gorm:"column:status;size:32;index:idx_room_turnover_reward_record_status"`
|
Status string `gorm:"column:status;size:32;index:idx_room_turnover_reward_record_status"`
|
||||||
RetryCount int `gorm:"column:retry_count"`
|
RetryCount int `gorm:"column:retry_count"`
|
||||||
LastError string `gorm:"column:last_error;size:1024"`
|
LastError string `gorm:"column:last_error;size:1024"`
|
||||||
|
|||||||
@ -208,6 +208,9 @@ func (s *RoomTurnoverRewardSettlementService) settleCycle(
|
|||||||
if record.Status != roomTurnoverRewardStatusPending && record.Status != roomTurnoverRewardStatusFailed {
|
if record.Status != roomTurnoverRewardStatusPending && record.Status != roomTurnoverRewardStatusFailed {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if !configRow.AutoRewardEnabled {
|
||||||
|
continue
|
||||||
|
}
|
||||||
if err := s.dispatchRewardRecord(ctx, &record, contribution.ID); err != nil {
|
if err := s.dispatchRewardRecord(ctx, &record, contribution.ID); err != nil {
|
||||||
lastErr = err
|
lastErr = err
|
||||||
}
|
}
|
||||||
@ -276,6 +279,7 @@ func (s *RoomTurnoverRewardSettlementService) ensureRewardRecord(
|
|||||||
TurnoverThreshold: level.TurnoverThreshold,
|
TurnoverThreshold: level.TurnoverThreshold,
|
||||||
RewardGold: level.RewardGold,
|
RewardGold: level.RewardGold,
|
||||||
TrackID: roomTurnoverRewardTrackID(sysOrigin, cycleKey, roomID),
|
TrackID: roomTurnoverRewardTrackID(sysOrigin, cycleKey, roomID),
|
||||||
|
SourceID: strings.TrimSpace(contribution.ID),
|
||||||
Status: roomTurnoverRewardStatusPending,
|
Status: roomTurnoverRewardStatusPending,
|
||||||
CreateTime: now,
|
CreateTime: now,
|
||||||
UpdateTime: now,
|
UpdateTime: now,
|
||||||
@ -295,6 +299,16 @@ func (s *RoomTurnoverRewardSettlementService) ensureRewardRecord(
|
|||||||
First(&saved).Error; err != nil {
|
First(&saved).Error; err != nil {
|
||||||
return model.RoomTurnoverRewardRecord{}, err
|
return model.RoomTurnoverRewardRecord{}, err
|
||||||
}
|
}
|
||||||
|
if strings.TrimSpace(saved.SourceID) == "" && strings.TrimSpace(contribution.ID) != "" {
|
||||||
|
sourceID := strings.TrimSpace(contribution.ID)
|
||||||
|
if err := s.repo.DB.WithContext(ctx).
|
||||||
|
Model(&model.RoomTurnoverRewardRecord{}).
|
||||||
|
Where("id = ?", saved.ID).
|
||||||
|
Update("source_id", sourceID).Error; err != nil {
|
||||||
|
return model.RoomTurnoverRewardRecord{}, err
|
||||||
|
}
|
||||||
|
saved.SourceID = sourceID
|
||||||
|
}
|
||||||
return saved, nil
|
return saved, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user