12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package models
- import (
- "github.com/mhaya/game/game_cluster/internal/data"
- mhayaLogger "github.com/mhaya/logger"
- )
- type InviteReward struct {
- IsClaim int `json:"isClaim" bson:"isClaim"`
- Reward []data.ItemReward `json:"reward" bson:"reward"`
- RewardTime int64 `json:"rewardTime" bson:"rewardTime"`
- }
- type Invite map[int]*InviteModel
- type InviteModel struct {
- Type int `json:"type" bson:"type"` //2普通3会员
- Num int `json:"num" bson:"num"`
- Reward map[int]*data.ItemReward `json:"reward" bson:"reward"`
- }
- func NewInvite() map[int]*InviteModel {
- var invite = make(map[int]*InviteModel)
- invite[InvitePlayer] = &InviteModel{
- Type: InvitePlayer,
- Num: 0,
- }
- invite[InvitePlayer].Reward = make(map[int]*data.ItemReward)
- invite[InviteVipPlayer] = &InviteModel{
- Type: InviteVipPlayer,
- Num: 0,
- }
- invite[InviteVipPlayer].Reward = make(map[int]*data.ItemReward)
- return invite
- }
- func (i Invite) Set(tp int, reward []data.ItemReward) {
- if _, ok := i[tp]; ok {
- i[tp].Num += 1
- mhayaLogger.Infof("player set total invite, tp=%v,num=%v", tp, i[tp].Num)
- for _, v := range reward {
- if _, ok = i[tp].Reward[v.ItemID]; ok {
- i[tp].Reward[v.ItemID].Amount += v.Amount
- } else {
- i[tp].Reward[v.ItemID] = &v
- }
- }
- }
- }
- func (ir *InviteReward) Merge() {
- m := make(map[int]int)
- for _, kv := range ir.Reward {
- m[kv.ItemID] += kv.Amount
- }
- result := make([]data.ItemReward, 0, len(m))
- for k, v := range m {
- result = append(result, data.ItemReward{ItemID: k, Amount: v, ItemBaseType: 1})
- }
- ir.Reward = result
- }
|