修复 背包礼物不增加 火箭能量
This commit is contained in:
parent
c4d4f03ddf
commit
4926d5dfd2
@ -207,7 +207,7 @@ func containsGiftToken(list []string, token string) bool {
|
||||
|
||||
func isDefaultBlockedGiftToken(token string) bool {
|
||||
switch normalizeGiftToken(token) {
|
||||
case "BACKPACK", "BAG", "DIAMOND", "LUCKY", "ACTIVITY", "CP", "MAGIC", "FREE":
|
||||
case "DIAMOND", "LUCKY", "ACTIVITY", "CP", "MAGIC", "FREE":
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
|
||||
@ -217,11 +217,83 @@ func TestDecodeGiftEventPayloadEnvelope(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestGiftEnergyRulesRejectUnsupportedAndAllowConfiguredGift(t *testing.T) {
|
||||
func TestBackpackGiftIncreasesRocketEnergy(t *testing.T) {
|
||||
service, db := newTestService(t)
|
||||
ctx := context.Background()
|
||||
seedRocketConfig(t, db)
|
||||
seedLevelConfigs(t, db, []int64{100, 200, 300, 400, 500, 600})
|
||||
seedLevelConfigs(t, db, []int64{1000, 2000, 3000, 4000, 5000, 6000})
|
||||
|
||||
payloads := []struct {
|
||||
raw string
|
||||
energy int64
|
||||
}{
|
||||
{
|
||||
energy: 30,
|
||||
raw: `{
|
||||
"trackId":"track-root-bag-gift",
|
||||
"sysOrigin":"LIKEI",
|
||||
"sendUserId":"1001",
|
||||
"roomId":"9001",
|
||||
"quantity":1,
|
||||
"bagGift":true,
|
||||
"giftConfig":{"id":"11","giftCandy":30,"type":"GOLD","giftTab":"NORMAL"},
|
||||
"giftValue":{"actualAmount":30},
|
||||
"createTime":` + strconvFormatMillis(time.Now()) + `
|
||||
}`,
|
||||
},
|
||||
{
|
||||
energy: 40,
|
||||
raw: `{
|
||||
"trackId":"track-value-bag-gift",
|
||||
"sysOrigin":"LIKEI",
|
||||
"sendUserId":"1001",
|
||||
"roomId":"9001",
|
||||
"quantity":1,
|
||||
"giftConfig":{"id":"11","giftCandy":40,"type":"GOLD","giftTab":"NORMAL"},
|
||||
"giftValue":{"actualAmount":40,"bag":true},
|
||||
"createTime":` + strconvFormatMillis(time.Now().Add(time.Second)) + `
|
||||
}`,
|
||||
},
|
||||
}
|
||||
for _, payload := range payloads {
|
||||
processed, err := service.ProcessGiftPayload(ctx, payload.raw)
|
||||
if err != nil {
|
||||
t.Fatalf("ProcessGiftPayload(backpack) error = %v", err)
|
||||
}
|
||||
if !processed.Processed || processed.AcceptedEnergy != payload.energy {
|
||||
t.Fatalf("processed = %+v, want accepted energy %d", processed, payload.energy)
|
||||
}
|
||||
}
|
||||
|
||||
var status model.VoiceRoomRocketStatus
|
||||
if err := db.Where("sys_origin = ? AND room_id = ?", "LIKEI", 9001).
|
||||
First(&status).Error; err != nil {
|
||||
t.Fatalf("find status: %v", err)
|
||||
}
|
||||
if status.CurrentEnergy != 70 {
|
||||
t.Fatalf("current energy = %d, want 70", status.CurrentEnergy)
|
||||
}
|
||||
|
||||
var logs []model.VoiceRoomRocketGiftEventLog
|
||||
if err := db.Where("track_id IN ?", []string{"track-root-bag-gift", "track-value-bag-gift"}).
|
||||
Find(&logs).Error; err != nil {
|
||||
t.Fatalf("find logs: %v", err)
|
||||
}
|
||||
if len(logs) != 2 {
|
||||
t.Fatalf("logs = %d, want 2", len(logs))
|
||||
}
|
||||
for _, log := range logs {
|
||||
if log.Status != eventStatusSuccess || log.AcceptedEnergy <= 0 {
|
||||
t.Fatalf("log = %+v, want success with accepted energy", log)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestGiftEnergyRulesAllowBackpackAndConfiguredGift(t *testing.T) {
|
||||
service, db := newTestService(t)
|
||||
ctx := context.Background()
|
||||
seedRocketConfig(t, db)
|
||||
seedLevelConfigs(t, db, []int64{1000, 2000, 3000, 4000, 5000, 6000})
|
||||
|
||||
backpackPayload := `{
|
||||
"trackId":"track-backpack",
|
||||
@ -232,12 +304,12 @@ func TestGiftEnergyRulesRejectUnsupportedAndAllowConfiguredGift(t *testing.T) {
|
||||
"giftConfig":{"id":"11","giftCandy":99,"type":"GOLD","giftTab":"BACKPACK"},
|
||||
"createTime":` + strconvFormatMillis(time.Now()) + `
|
||||
}`
|
||||
ignored, err := service.ProcessGiftPayload(ctx, backpackPayload)
|
||||
backpack, err := service.ProcessGiftPayload(ctx, backpackPayload)
|
||||
if err != nil {
|
||||
t.Fatalf("ProcessGiftPayload(backpack) error = %v", err)
|
||||
}
|
||||
if ignored.Processed || ignored.Reason != "unsupported_gift" {
|
||||
t.Fatalf("ignored = %+v, want unsupported_gift", ignored)
|
||||
if !backpack.Processed || backpack.AcceptedEnergy != 99 {
|
||||
t.Fatalf("backpack = %+v, want 99 energy", backpack)
|
||||
}
|
||||
|
||||
if err := db.Model(&model.VoiceRoomRocketConfig{}).
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user