修复 背包礼物不增加 火箭能量
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 {
|
func isDefaultBlockedGiftToken(token string) bool {
|
||||||
switch normalizeGiftToken(token) {
|
switch normalizeGiftToken(token) {
|
||||||
case "BACKPACK", "BAG", "DIAMOND", "LUCKY", "ACTIVITY", "CP", "MAGIC", "FREE":
|
case "DIAMOND", "LUCKY", "ACTIVITY", "CP", "MAGIC", "FREE":
|
||||||
return true
|
return true
|
||||||
default:
|
default:
|
||||||
return false
|
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)
|
service, db := newTestService(t)
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
seedRocketConfig(t, db)
|
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 := `{
|
backpackPayload := `{
|
||||||
"trackId":"track-backpack",
|
"trackId":"track-backpack",
|
||||||
@ -232,12 +304,12 @@ func TestGiftEnergyRulesRejectUnsupportedAndAllowConfiguredGift(t *testing.T) {
|
|||||||
"giftConfig":{"id":"11","giftCandy":99,"type":"GOLD","giftTab":"BACKPACK"},
|
"giftConfig":{"id":"11","giftCandy":99,"type":"GOLD","giftTab":"BACKPACK"},
|
||||||
"createTime":` + strconvFormatMillis(time.Now()) + `
|
"createTime":` + strconvFormatMillis(time.Now()) + `
|
||||||
}`
|
}`
|
||||||
ignored, err := service.ProcessGiftPayload(ctx, backpackPayload)
|
backpack, err := service.ProcessGiftPayload(ctx, backpackPayload)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("ProcessGiftPayload(backpack) error = %v", err)
|
t.Fatalf("ProcessGiftPayload(backpack) error = %v", err)
|
||||||
}
|
}
|
||||||
if ignored.Processed || ignored.Reason != "unsupported_gift" {
|
if !backpack.Processed || backpack.AcceptedEnergy != 99 {
|
||||||
t.Fatalf("ignored = %+v, want unsupported_gift", ignored)
|
t.Fatalf("backpack = %+v, want 99 energy", backpack)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := db.Model(&model.VoiceRoomRocketConfig{}).
|
if err := db.Model(&model.VoiceRoomRocketConfig{}).
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user