From 3639cad4848aa0b88a0679978c9127b467eb3334 Mon Sep 17 00:00:00 2001 From: hy001 Date: Sat, 23 May 2026 12:04:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=BA=90=E7=BB=84vip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/integration/java.go | 15 ++++---- .../service/firstrechargereward/mapper.go | 2 +- .../firstrechargereward/service_test.go | 37 +++++++++++++++++++ 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/internal/integration/java.go b/internal/integration/java.go index 91499f3..1d06cfd 100644 --- a/internal/integration/java.go +++ b/internal/integration/java.go @@ -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 { diff --git a/internal/service/firstrechargereward/mapper.go b/internal/service/firstrechargereward/mapper.go index 4140465..2182a28 100644 --- a/internal/service/firstrechargereward/mapper.go +++ b/internal/service/firstrechargereward/mapper.go @@ -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), }) } diff --git a/internal/service/firstrechargereward/service_test.go b/internal/service/firstrechargereward/service_test.go index 09df3bf..1650c5b 100644 --- a/internal/service/firstrechargereward/service_test.go +++ b/internal/service/firstrechargereward/service_test.go @@ -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, "首冲礼包")