|
@@ -11,6 +11,7 @@ import (
|
|
|
"github.com/mhaya/game/game_cluster/internal/mdb/models"
|
|
|
"github.com/mhaya/game/game_cluster/internal/param"
|
|
|
mhayaLogger "github.com/mhaya/logger"
|
|
|
+ "strconv"
|
|
|
)
|
|
|
|
|
|
func (p *actorPlayer) claim(req *param.ClaimReq) (*param.ChangeData, int32) {
|
|
@@ -28,6 +29,8 @@ func (p *actorPlayer) claim(req *param.ClaimReq) (*param.ChangeData, int32) {
|
|
|
resp, code = p.ClaimFirstReward(req.Id)
|
|
|
case 4:
|
|
|
resp, code = p.ClaimInviteNodeReward(req.Id)
|
|
|
+ case 5:
|
|
|
+ resp, code = p.ClaimInviteAggregation()
|
|
|
}
|
|
|
p.dirty = true
|
|
|
|
|
@@ -84,16 +87,26 @@ func (p *actorPlayer) inviteClaimRatio(userName string) (*param.ChangeData, int3
|
|
|
return resp, resCode
|
|
|
}
|
|
|
|
|
|
+ var addItem models.AddItem
|
|
|
key := fmt.Sprintf("%v:1:%v", constant.InviteScoreKey, p.Player.UserName)
|
|
|
- claimScore, err := mdb.RDB.HGet(context.Background(), key, userName).Int()
|
|
|
- if err != nil {
|
|
|
- return nil, code.OK
|
|
|
+
|
|
|
+ var claimScore int
|
|
|
+ if userName != "" {
|
|
|
+ // 多次领取
|
|
|
+ claimScore, _ = mdb.RDB.HGet(context.Background(), key, userName).Int()
|
|
|
+ mdb.RDB.HDel(context.Background(), key, userName)
|
|
|
+ } else {
|
|
|
+ // 一次领取
|
|
|
+ hMap := mdb.RDB.HGetAll(context.Background(), key).Val()
|
|
|
+ for _, vStr := range hMap {
|
|
|
+ score, _ := strconv.Atoi(vStr)
|
|
|
+ claimScore += score
|
|
|
+ }
|
|
|
+ mdb.RDB.Del(context.Background(), key)
|
|
|
}
|
|
|
|
|
|
p.Player.Item[models.ItemGold].Num += claimScore
|
|
|
|
|
|
- mdb.RDB.HDel(context.Background(), key, userName)
|
|
|
-
|
|
|
reward := make([]data.ItemReward, 0)
|
|
|
item := &data.ItemReward{
|
|
|
ItemBaseType: 1,
|
|
@@ -105,7 +118,7 @@ func (p *actorPlayer) inviteClaimRatio(userName string) (*param.ChangeData, int3
|
|
|
p.Player.Item.AddItem(reward)
|
|
|
|
|
|
// 统计收益
|
|
|
- addItem := models.NewAddItem().Add(reward)
|
|
|
+ addItem = models.NewAddItem().Add(reward)
|
|
|
p.itemStat(addItem)
|
|
|
|
|
|
var resp param.ChangeData
|