fix(listing): 外部上传按后台实时配置归类皮肤与折算消耗品,并补齐新增消耗品字段
- 皮肤归类:删除代码内硬编码的 externalSkinCatalog 快照,改为读取 listing.publish_options。 修复运营在后台新增皮肤后,上传的商品被归入 other 的问题(详情页显示“其他皮肤”、 按刀皮/金皮/红皮/武器皮分组筛选搜不到) - 消耗品折算:externalResources 改为按 publish_options.quantity_items 生成条目与单价, 修复 AWM 子弹按 0.6 元/发旧价折算等价格漂移(线上已调为 0.7 元/发) - 上传契约:ExternalUploadInventory 新增 level6Ammo/barrettAmmo/gridCard9/redPacket45/ coffeeBean/bulletPart 六个字段,字段名与消耗品 key 对齐;后续后台再新增消耗品, 按同样 key 登记即可被上传链路识别 - 数量为 0 的消耗品不再写入资源清单,与网站自身发布流程(filter quantity > 0)保持一致 - 客服调整外部商品同样改用实时单价;Service 增加 externalPublishOptions 统一读配置并带默认值 - 验证:新增回归测试 TestExternalAccountToCreateRequestFollowsPublishOptions; 并以线上 mobile-home-config 的真实配置 + 上传工具产出的 JSON 做跨仓库联调, 确认“重塑→近战皮肤、骇爪-骇客少女→干员金皮”,9 项消耗品全部按线上单价生成
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
"hfb_sys/backend/internal/database"
|
||||
"hfb_sys/backend/internal/model"
|
||||
"hfb_sys/backend/internal/modules/systemconfig"
|
||||
)
|
||||
|
||||
type stubConfigReader map[string]string
|
||||
@@ -503,7 +504,7 @@ func TestExternalAccountToCreateRequestMapsUploadFields(t *testing.T) {
|
||||
Level6Armor: 17,
|
||||
Skins: []string{"信条", "电锯惊魂"},
|
||||
},
|
||||
}, defaultSalePriceConfig())
|
||||
}, defaultSalePriceConfig(), systemconfig.DefaultPublishOptions())
|
||||
|
||||
if req.Description != "有语音封禁\n封禁历史:2026/01/23封禁3天" {
|
||||
t.Fatalf("Description = %q", req.Description)
|
||||
@@ -613,7 +614,7 @@ func TestExternalAccountToCreateRequestSeparatesPureCoinAndExtraItems(t *testing
|
||||
AWMBullets: 10,
|
||||
Level6Armor: 2,
|
||||
},
|
||||
}, defaultSalePriceConfig())
|
||||
}, defaultSalePriceConfig(), systemconfig.DefaultPublishOptions())
|
||||
|
||||
breakdown, ok := req.AssetSummary["price_breakdown"].(map[string]any)
|
||||
if !ok {
|
||||
@@ -637,7 +638,7 @@ func TestExternalAccountToCreateRequestSeparatesPureCoinAndExtraItems(t *testing
|
||||
}
|
||||
|
||||
func TestExternalSkinGroupsClassifiesKnownSkins(t *testing.T) {
|
||||
groups := externalSkinGroups([]string{"暗星", "凌霄成卫", "蛊-不羁人生", "未知皮肤X"})
|
||||
groups := externalSkinGroups([]string{"暗星", "凌霄成卫", "蛊-不羁人生", "未知皮肤X"}, systemconfig.DefaultPublishOptions().SkinGroups)
|
||||
if got := groups["melee"]; len(got) != 1 || got[0] != "暗星" {
|
||||
t.Fatalf("melee = %#v", got)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user