资源组vip

This commit is contained in:
hy001 2026-05-23 12:04:14 +08:00
parent 0a11372d96
commit 3639cad484
3 changed files with 46 additions and 8 deletions

View File

@ -235,13 +235,14 @@ type OfficialNoticeCustomizeRequest struct {
}
type RewardGroupItem struct {
ID Int64Value `json:"id"`
Type string `json:"type"`
Name string `json:"name"`
Content string `json:"content"`
Quantity Int64Value `json:"quantity"`
Cover string `json:"cover"`
Remark string `json:"remark"`
ID Int64Value `json:"id"`
Type string `json:"type"`
Name string `json:"name"`
Content string `json:"content"`
Quantity Int64Value `json:"quantity"`
Cover string `json:"cover"`
SourceURL string `json:"sourceUrl"`
Remark string `json:"remark"`
}
type RewardGroupDetail struct {

View File

@ -124,7 +124,7 @@ func rewardItemsFromGroup(detail integration.RewardGroupDetail) []RewardItem {
Name: strings.TrimSpace(item.Name),
Content: strings.TrimSpace(item.Content),
Quantity: int64(item.Quantity),
Cover: strings.TrimSpace(item.Cover),
Cover: firstNonEmpty(item.Cover, item.SourceURL),
Remark: strings.TrimSpace(item.Remark),
})
}

View File

@ -43,6 +43,43 @@ func TestSaveConfigReturnsRewardItems(t *testing.T) {
}
}
func TestSaveConfigReturnsVipCoverFromSourceURL(t *testing.T) {
service, gateway, _ := newTestService(t)
gateway.groups[2001] = integration.RewardGroupDetail{
ID: integration.Int64Value(2001),
Name: "VIP礼包",
RewardConfigList: []integration.RewardGroupItem{
{
ID: integration.Int64Value(11),
Type: "PROPS",
Name: "VIP 1",
Content: "2049402425177018400",
Quantity: integration.Int64Value(30),
Cover: "",
SourceURL: "https://example.com/vip-short-badge.png",
Remark: "30 天",
},
},
}
resp, err := service.SaveConfig(context.Background(), mustDecodeSaveConfigRequest(t, `{
"sysOrigin": "LIKEI",
"enabled": true,
"levelConfigs": [
{"level": 1, "rechargeAmount": "9.99", "rewardGroupId": "2001", "rewardGroupName": "VIP礼包", "enabled": true}
]
}`))
if err != nil {
t.Fatalf("SaveConfig() error = %v", err)
}
if len(resp.LevelConfigs) != 1 || len(resp.LevelConfigs[0].RewardItems) != 1 {
t.Fatalf("reward items = %+v", resp.LevelConfigs)
}
if got := resp.LevelConfigs[0].RewardItems[0].Cover; got != "https://example.com/vip-short-badge.png" {
t.Fatalf("vip cover = %q", got)
}
}
func TestProcessRechargeEventFiltersAndGrantsOnce(t *testing.T) {
service, gateway, db := newTestService(t)
gateway.groups[1001] = testRewardGroup(1001, "首冲礼包")