package msg

func MustNotNil[T any](cost []T) []T {
	if cost == nil {
		return make([]T, 0)
	}
	return cost
}

type RPCer interface {
	SetMsgId(int64)
	GetMsgId() int64
}

type RpcRequest interface {
	RPCer
	GetSender() string
	SetSender(sender string)
}

type RpcRequestMsg struct {
	MsgId  int64
	Sender string
}

func (r *RpcRequestMsg) SetMsgId(id int64) {
	r.MsgId = id
}

func (r *RpcRequestMsg) GetMsgId() int64 {
	return r.MsgId
}

func (r *RpcRequestMsg) GetSender() string {
	return r.Sender
}

func (r *RpcRequestMsg) SetSender(sender string) {
	r.Sender = sender
}

type RpcResponse interface {
	RPCer
	GetErrCode() int
}

type RpcResponseMsg struct {
	MsgId   int64
	ErrCode int `json:"errCode"`
}

func (r *RpcResponseMsg) SetMsgId(id int64) {
	r.MsgId = id
}

func (r *RpcResponseMsg) GetMsgId() int64 {
	return r.MsgId
}

func (r *RpcResponseMsg) GetErrCode() int {
	return r.ErrCode
}

// HappyNewDay 跨天包，只返回passroom和视频次数
type HappyNewDay struct {
	PlayerID int64 `json:"userId"`
}

type ResponseHappyNewDay struct {
	ErrCode int              `json:"errCode"`
	Msg     string           `json:"msg,omitempty"`
	Data    *HappyNewDayData `json:"data"`
}

type HappyNewDayData struct {
	// PassRoom []*model.PlayerPassRoom `json:"passRoom"`
	// VipBuffs []*VipBuffData          `json:"buffs"`
	// AdCount  int                     `json:"adCount"`
}

// Heart 心跳
type Heart struct {
}

type ResponseHeart struct {
	ErrCode  int    `json:"errCode"`
	Msg      string `json:"msg,omitempty"`
	ServerTs int64  `json:"serverts"`
}

// 获取时间
type SystemTime struct {
}

type ResponseSystemTime struct {
	ErrCode int    `json:"errCode"`
	Msg     string `json:"msg,omitempty"`
	Data    int64  `json:"data"`
}

// 24点通知
type GoodNewDay struct {
	ErrCode int `json:"errCode"`
}

// 给客户端的公告通知
type Placard struct {
	Type      string            `json:"type"`
	Customize int               `json:"customize"` //1:自定义
	Priority  int               `json:"priority"`
	Content   string            `json:"content,omitempty"`
	Sender    int64             `json:"sender"`
	Params    map[string]string `json:"params,omitempty"`
	Times     int               `json:"times"`
}

// 踢出玩家
type KickOut struct {
	ErrCode int    `json:"errCode"`
	Msg     string `json:"msg,omitempty"`
}

// 消息通知
type MsgNotify struct {
	ErrCode int    `json:"errCode"`
	Msg     string `json:"msg,omitempty"`
	Data    int    `json:"data"` //1:有新邮件 2:有新的邀请好友
}

// // Heart 心跳
// type HeartSync struct {
// }

// type ResponseHeartSync struct {
// 	ServerTs int64 `json:"serverts"`
// }

// // ClientEcho
// type ClientEcho struct {
// }

// type ResponseClientEcho struct {
// 	//ServerTs int64 `json:"serverts"`
// }

// // 服务器在线人数
// type ServerStatus struct {
// 	ServerID int
// 	Online   int
// }

// // 更换穿戴
// type ChangeWear struct {
// 	PlayerID int64  `json:"userId"`
// 	BodyGID  string `json:"bodyId"`
// 	BagGID   string `json:"packId"`
// 	Suit     int    `json:"index"`
// }

// type ResponseChangeWear struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *model.BodyPart `json:"data"`
// }

// // type EquipmentsData struct {
// // 	Old *model.DropEquipment `json:"oldEquip"` //更换前装备
// // 	New *model.DropEquipment `json:"NewEquip"` //更换后装备
// // }

// // 装备升级 物品ID
// type BodyLevelUp struct {
// 	PlayerID int64 `json:"userId"`
// 	Part     int   `json:"part"`
// 	OptType  int64 `json:"optType"` // 0:升级 1:一键升级
// }

// type ResponseBodyLevelUp struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *BodyLevelUpData `json:"data"`
// }

// type BodyLevelUpData struct {
// 	Part  int                   `json:"part"`
// 	Level int                   `json:"level"`
// 	Cost  []*model.DropMaterial `json:"cost"` //消耗的材料
// }

// // 身体升阶
// type BodyStepUp struct {
// 	PlayerID int64 `json:"userId"`
// 	Part     int   `json:"part"`
// }

// type ResponseBodyStepUp struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *BodyStepUpData `json:"data"`
// }

// type BodyStepUpData struct {
// 	Part int                   `json:"part"`
// 	Step int                   `json:"step"`
// 	Cost []*model.DropMaterial `json:"cost"` //消耗的材料
// }

// // 装备升级 物品ID
// type EquipmentStarUp struct {
// 	PlayerID int64    `json:"userId"`
// 	GID      string   `json:"gId"`
// 	MatGIDs  []string `json:"matIds"`
// }

// type ResponseEquipmentStarUp struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *EquipmentStarUpData `json:"data"`
// }

// type EquipmentStarUpData struct {
// 	Wear      int                    `json:"wear"`      //1:穿戴； 0：不穿戴 -> -1:不穿戴 0~2：穿戴套装位置
// 	Equipment *model.DropEquipment   `json:"equipment"` //升级后的装备
// 	Removes   []*model.DropEquipment `json:"removes"`   //移除的装备
// 	Materials []*model.DropMaterial  `json:"materials"` //返还的材料
// }

// // EquipOneSynth 装备一键合成
// type EquipOneSynth struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseEquipOneSynth struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    *EquipOneSynthData `json:"data"`
// }

// type EquipOneSynthData struct {
// 	Wears     []*model.DropEquipment `json:"wears"`     // 需要穿戴的装备
// 	Gets      []*model.DropEquipment `json:"gets"`      // 升级后获得的装备
// 	Removes   []*model.DropEquipment `json:"removes"`   // 移除的装备
// 	Materials []*model.DropMaterial  `json:"materials"` // 返还的材料
// 	Count     int                    `json:"count"`     // 合成次数
// }

// // 装备分解
// type ExtractEquipment struct {
// 	PlayerID int64  `json:"userId"`
// 	GID      string `json:"gId"`
// }

// type ResponseExtractEquipment struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *ExtractEquipmentData `json:"data"`
// }

// type ExtractEquipmentData struct {
// 	Equipments *model.DropEquipment  `json:"equipments"` //分解的装备
// 	Materials  []*model.DropMaterial `json:"materials"`  //分解所得的材料
// }

// // 转换装备
// type EquipmentTransfer struct {
// 	PlayerID int64  `json:"userId"`
// 	OldGID   string `json:"oldGId"`
// 	NewID    int64  `json:"newId"`
// }

// type ResponseEquipmentTransfer struct {
// 	ErrCode int                    `json:"errCode"`
// 	Msg     string                 `json:"msg,omitempty"`
// 	Data    *EquipmentTransferData `json:"data"`
// }

// type EquipmentTransferData struct {
// 	NewID int64                 `json:"newId"`
// 	Cost  []*model.DropMaterial `json:"cost"` //消耗的材料
// }

// // 转换装备
// type EquipmentHistory struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseEquipmentHistory struct {
// 	ErrCode int                     `json:"errCode"`
// 	Msg     string                  `json:"msg,omitempty"`
// 	Data    []*EquipmentHistoryData `json:"data"`
// }

// type EquipmentHistoryData struct {
// 	Star  int `json:"star"`  // 历史拥有最高品质
// 	Model int `json:"model"` //套装ID Material
// 	Body  int `json:"body"`  //穿着部位 WearPart
// }

// // 宝物升星

// type TreasureMaterialData struct {
// 	Materials  []*model.DropMaterial `json:"materials"`
// 	Old        int64                 `json:"old"`
// 	New        int64                 `json:"new"`
// 	LuckyValue float64               `json:"luckyValue"` // 幸运值
// }

// type TreasureStarUp struct {
// 	PlayerID int64 `json:"userId"`
// 	ID       int64 `json:"treasureId"`
// }

// type ResponseTreasureStarUp struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *TreasureMaterialData `json:"data"`
// }

// // 宝物升级
// type TreasureLevelUp struct {
// 	PlayerID int64 `json:"userId"`
// 	ID       int64 `json:"treasureId"`
// 	OptType  int64 `json:"optType"` // 0: 升级  1：一键升级
// }

// type ResponseTreasureLevelUp struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *TreasureMaterialData `json:"data"`
// }

// // 解锁宝物
// type ActiveTreasure struct {
// 	PlayerID int64 `json:"userId"`
// 	TID      int64 `json:"treasureId"`
// }

// type ResponseActiveTreasure struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *ActiveTreasureData `json:"data"`
// }

// // DropedTreasure 拥有的宝物
// // type DropedTreasure struct {
// // 	RoleID int64 `json:"roleId"`     // 佩戴角色
// // 	TID    int64 `json:"treasureId"` // 宝物id
// // }

// type ActiveTreasureData struct {
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Treasures *model.DropedTreasure `json:"treasures"`
// }

// // 佩戴宝物
// type ChangeTreasure struct {
// 	PlayerID int64 `json:"userId"`
// 	ID       int64 `json:"treasureId"`
// 	RoleID   int64 `json:"roleId"`
// }

// // ChangeTreasureData 拥有的宝物
// type ChangeTreasureData struct {
// 	RoleID int64 `json:"roleId"`        // 佩戴角色
// 	OldTID int64 `json:"oldTreasureId"` // 卸下宝物id
// 	NewTID int64 `json:"newTreasureId"` // 装备宝物id
// }

// type ResponseChangeTreasure struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *ChangeTreasureData `json:"data"`
// }

// // 角色升级
// type RoleLevelUp struct {
// 	PlayerID int64 `json:"userId"`
// 	RoleID   int64 `json:"roleId"`
// 	OptType  int64 `json:"optType"` // 0: 升级 1：突破  2：一键升级
// }

// type ResponseRoleLevelUp struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *RoleMaterialData `json:"data"`
// }

// type RoleMaterialData struct {
// 	Materials    []*model.DropMaterial     `json:"materials"`
// 	Old          int64                     `json:"old"`
// 	New          int64                     `json:"New"`
// 	RoleTreasure []*model.RoleTreasureInfo `json:"roleTreasure"` // 专属宝物
// }

// // 购买角色劵
// type BuyRoleKey struct {
// 	PlayerID int64 `json:"userId"`
// 	Num      int   `json:"num"`
// }

// type BuyRoleKeyData struct {
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Cost      []*model.DropMaterial `json:"cost"`
// }

// type ResponseBuyRoleKey struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *BuyRoleKeyData `json:"data"`
// }

// // 角色升星
// type RoleStarUp struct {
// 	PlayerID int64 `json:"userId"`
// 	RoleID   int64 `json:"roleId"`
// }

// type ResponseRoleStarUp struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *RoleMaterialData `json:"data"`
// }

// // 角色重置
// type RoleReplacement struct {
// 	PlayerID int64 `json:"userId"`
// 	RoleID   int64 `json:"roleId"`
// }

// type ResponseRoleReplacement struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *RoleReplacementData `json:"data"`
// }

// type RoleReplacementData struct {
// 	Materials    []*model.DropMaterial     `json:"materials"`
// 	Cost         []*model.DropMaterial     `json:"cost"`
// 	Old          int64                     `json:"old"`
// 	New          int64                     `json:"new"`
// 	RoleTreasure []*model.RoleTreasureInfo `json:"roleTreasure"` // 专属宝物
// }

// // 天赋升级
// type TalentLevelUp struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseTalentLevelUp struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *PlayerMaterialData `json:"data"`
// }

// type PlayerMaterialData struct {
// 	Cost    []*model.DropMaterial `json:"cost"`
// 	Talents *model.DropTalent     `json:"talents"`
// 	Cd      int64                 `json:"cd"`
// 	//Materials []*model.DropMaterial `json:"materials"`
// 	//TalentPoint int                   `json:"talentPoint"`
// }

// // 天赋免费剩余cd
// type TalentVipCd struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseTalentVipCd struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Cd      int64  `json:"data"`
// }

// // 更换角色
// type ChangeRole struct {
// 	PlayerID int64   `json:"userId"`
// 	RoleIDs  []int64 `json:"roleIds"`
// }

// type ResponseChangeRole struct {
// 	ErrCode int     `json:"errCode"`
// 	Msg     string  `json:"msg,omitempty"`
// 	Data    []int64 `json:"data"`
// }

// // 解锁角色
// type ActiveRole struct {
// 	PlayerID int64 `json:"userId"`
// 	RoleID   int64 `json:"roleId"`
// }

// type ResponseActiveRole struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *ActiveRoleData `json:"data"`
// }

// type ActiveRoleData struct {
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Roles     *model.DropedRole     `json:"roles"`
// }

// // 设置角色升级是否提示
// type SetRoleLevelTip struct {
// 	PlayerID int64 `json:"userId"`
// 	RoleID   int64 `json:"roleId"`
// 	NoTip    int   `json:"NoTip"` //0：提示， 1：不提示
// }

// type ResponseSetRoleLevelTip struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    int    `json:"data"`
// }

// type SettleRoomInfo struct {
// 	ID int `json:"id"`
// }

// // 战斗结算
// type SettleBattle struct {
// 	PlayerID      int64                 `json:"userId"`
// 	Chapter       uint                  `json:"chapter"`
// 	Difficulty    int                   `json:"difficulty"`
// 	PassRoom      int                   `json:"passRoom"`    // 最大通过房间 远征表示关卡数
// 	PassChapter   bool                  `json:"passChapter"` // 是否通关
// 	CurPassRoom   int                   `json:"emigrated"`   // 本次通过的房间数
// 	IsActivity    bool                  `json:"isActivity"`  // 是不是活动
// 	Coin          int                   `json:"coin"`        // 金币
// 	Diamond       int                   `json:"diamond"`     // 钻石
// 	WinLose       int                   `json:"result"`      //1:赢， -1：输， 0：中途退出
// 	Equipments    []int64               `json:"equipments"`
// 	KillBoss      int                   `json:"killBoss"` // 击杀BOSS数量
// 	KillMonster   int                   `json:"killMonster"`
// 	Materials     []*model.DropMaterial `json:"materials"`
// 	RoomInfo      *SettleRoomInfo       `json:"roomId"`             // 是否结算房间怪物产出信息
// 	SwitchRole    int                   `json:"switchRole"`         //切换角色
// 	StaminaMulti  int                   `json:"staminaMulti"`       // 花费体力倍数
// 	RewardMulti   float64               `json:"rewardMulti"`        // 结算奖励倍数
// 	EndLessSkills []int                 `json:"endLessSkills"`      // 无尽三选一技能 展示用
// 	SyncGroupId   int64                 `json:"matchRoomId,string"` //多人战时，填写同步分组ID; 单人时填写0
// 	DpsOutput     int64                 `json:"dpsOutput"`
// 	CreateTime    int64                 `json:"createTime"` // 活动开始时间
// 	ClientPlat    string                `json:"clientPlat"`
// }

// type ResponseSettleBattle struct {
// 	ErrCode int         `json:"errCode"`
// 	Msg     string      `json:"msg,omitempty"`
// 	Data    *SettleData `json:"data"`
// }

// type SettleData struct {
// 	UID              int64                  `json:"userId"`
// 	Exp              int64                  `json:"userExp"`
// 	Level            int                    `json:"userLevel"`
// 	TalentPoint      int                    `json:"talentPoint"`
// 	FirstPass        bool                   `json:"firstPass"`
// 	Materials        []*model.DropMaterial  `json:"materials"`
// 	Equipments       []*model.DropEquipment `json:"equipments"`
// 	UserRewards      []*model.DropMaterial  `json:"userRewards"`
// 	UserRewardEquips []*model.DropEquipment `json:"userRewardsEquip"`
// 	PassRoom         *model.PlayerPassRoom  `json:"passRoom"`
// 	RewardMultiId    int                    `json:"rewardMultiId"` // 结算奖励倍数
// 	SyncOtherData    *SyncOther             `json:"syncOther"`
// }

// // RequestLevelData 客户端存储数据
// type RequestLevelData struct {
// 	PlayerID int64  `json:"id"`
// 	Level    int    `json:"level"`
// 	Token    string `json:"token"`
// 	Score    int    `json:"score"`
// }

// // ResponseLevelData 1
// type ResponseLevelData struct {
// 	ErrCode  int        `json:"errCode"`
// 	ErrMsg   string     `json:"errMsg"`
// 	PlayerID int64      `json:"playerId"`
// 	RankInfo []RankData `json:"rank"`
// }

// type RankData struct {
// 	PlayerID  int64  `json:"id"`
// 	Score     int    `json:"score"`
// 	NickName  string `json:"nickname"`
// 	AvatarURL string `json:"avarurl"`
// 	Rank      int32  `json:"rank"`
// 	Level     int    `json:"level"`
// }

// // 商店商品
// type BuyGoods struct {
// 	PlayerID    int64                  `json:"userId"`
// 	GoodsID     int64                  `json:"-"`
// 	Cost        []*model.DropMaterial  `json:"cost"`
// 	Equipments  []*model.DropEquipment `json:"equipments"`
// 	Materials   []*model.DropMaterial  `json:"materials"`
// 	CoinTimeLen int                    `json:"coinTimeLen"` //巡逻时长的金币收益
// 	Guide       int                    `json:"guide"`
// 	BuyNum      int                    `json:"buyNum"`     //购买箱子数目
// 	BoxType     int                    `json:"boxType"`    // 0白银 1黄金
// 	BoxExp      int                    `json:"boxExp"`     // 箱子经验
// 	BuyItemNum  int                    `json:"buyItemNum"` //购买道具数目
// 	CurBuyNum   int                    `json:"buyCount"`   // 已经购买次数
// 	// CD            int                    `json:"cd"`            //CD
// 	// MaxCount int `json:"maxCount"` //剩余最大次数
// 	// DrawEpicCount int                    `json:"drawEpicCount"` //宝箱必出诗史剩余次数
// 	// CostType      int                    `json:"type"`          // 2：广告券 3：看广告
// }

// type ResponseBuyGoods struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    *ChangedAssetsData `json:"data"`
// }

// type ChangedAssetsData struct {
// 	Coin       int                    `json:"coin"`
// 	Diamond    int                    `json:"diamond"`
// 	Equipments []*model.DropEquipment `json:"equipments"`
// 	Materials  []*model.DropMaterial  `json:"restores"`
// 	Cost       []*model.DropMaterial  `json:"cost,omitempty"`
// }

// // 买宝箱
// type BuyBox struct {
// 	PlayerID int64 `json:"userId"`
// 	GoodsID  int64 `json:"boxId"`
// 	Num      int   `json:"num"` //抽几次
// 	// CostType int   `json:"type"`    //0:price配置，金币或钻石；1：钥匙
// 	Guide      int    `json:"guide"`   // 新手引导:1; 正常购买：0
// 	BoxType    int    `json:"boxType"` // 1白银 2黄金
// 	BuyNum     int    `json:"buyNum"`  //购买几次道具
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseBuyBox struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    *BoxAssetsData `json:"data"`
// }

// type BoxAssetsData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	// CD            int                    `json:"cd"`            //CD
// 	// MaxCount      int                    `json:"maxCount"`      //剩余最大次数
// 	// DrawEpicCount int                    `json:"drawEpicCount"` //抽了多少次 宝箱剩余次数
// 	Equipments []*model.DropEquipment `json:"equipments"`
// 	Materials  []*model.DropMaterial  `json:"restores"`
// 	Cost       []*model.DropMaterial  `json:"cost"`
// 	// CostType      int                    `json:"costType"` //0:price配置，金币或钻石；1：钥匙
// 	BoxType       int `json:"boxType"`  // 0白银 1黄金
// 	BoxExp        int `json:"boxExp"`   // 箱子经验
// 	BuyItemNum    int `json:"buyNum"`   //购买几次道具
// 	CurBuyItemNum int `json:"buyCount"` //道具剩余次数 只有每日限制道具返回
// }

// // 买宝箱
// type FreeBox struct {
// 	PlayerID int64 `json:"userId"`
// 	BoxID    int64 `json:"boxId"`
// 	CostType int   `json:"type"` // 2：广告券 3：看广告
// }

// type ResponseFreeBox struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    *BoxAssetsData `json:"data"`
// }

// // 使用宝箱
// type UseBox struct {
// 	PlayerID int64   `json:"userId"`
// 	BoxID    int64   `json:"boxId"`
// 	Num      int     `json:"num"`     // 使用宝箱数量
// 	Selects  []int64 `json:"selects"` //自选商品，自选礼包用，其他两个礼包不用
// }

// type ResponseUseBox struct {
// 	ErrCode int         `json:"errCode"`
// 	Msg     string      `json:"msg,omitempty"`
// 	Data    *UseBoxData `json:"data"`
// }

// type UseBoxData struct {
// 	BoxID      int64                  `json:"boxId"`
// 	Num        int                    `json:"num"` // 使用宝箱数量
// 	Equipments []*model.DropEquipment `json:"equipments"`
// 	Materials  []*model.DropMaterial  `json:"materials"`
// }

// // UpdateClientData 客户端存储数据
// type UpdateClientData struct {
// 	PlayerID int64  `json:"userId"`
// 	Token    string `json:"token"`
// 	Type     string `json:"type"`
// 	Data     string `json:"data"`
// }

// // ResponseUpdateClientData 1
// type ResponseUpdateClientData struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    string `json:"data"`
// }

// // ClientData 客户端存储数据
// type ClientData struct {
// 	PlayerID int64  `json:"userId"`
// 	Type     string `json:"type"`
// }

// // ResponseClientData 用户名注册
// type ResponseClientData struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    ClientDataItem `json:"data"`
// }

// type ClientDataItem struct {
// 	Type string `json:"type"`
// 	Data string `json:"data"`
// }

// // 请求购买信息
// type BuyGoodsInfo struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseBuyGoodsInfo struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *BuyGoodsInfoData `json:"data"`
// }

// type BuyGoodsInfoData struct {
// 	BoxInfo        []*BoxGoodsData `json:"boxInfo"`
// 	RandRoleAccNum int             `json:"randRoleCount"`
// 	GoldKeyExp     int             `json:"goldKeyExp"`
// 	SilverKeyExp   int             `json:"silverKeyExp"`
// 	DrawNum        int             `json:"drawNum"`  // 抽奖次数
// 	DrawRole       int64           `json:"drawRole"` // 选择角色
// }

// type BoxGoodsData struct {
// 	GoodsID     int64 `json:"goodsId"`
// 	DayAdCount  int   `json:"buyCount"`
// 	ToEpicCount int   `json:"toEpicCount"`
// 	CD          int64 `json:"cd"`
// }

// // CoinGiftInfo
// type CoinGiftInfo struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseCoinGiftInfo struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *CoinGiftInfoData `json:"data"`
// }

// type CoinGiftInfoData struct {
// 	GoodsID  int64 `json:"goodsId"`
// 	BuyCount int   `json:"buyCount"`
// 	CD       int64 `json:"cd"`
// }

// // 钻石购买道具信息
// type DiamondBuyInfo struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseDiamondBuyInfo struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *DiamondBuyInfoData `json:"data"`
// }

// type DiamondBuyInfoData struct {
// 	ShopInfo    []*DiamondBuyShopData     `json:"shopInfo"`
// 	RefreshInfo []*DiamondShopRefreshData `json:"refreshInfo"`
// }

// type DiamondShopRefreshData struct {
// 	ShopType int                   `json:"shopType"`
// 	Count    int                   `json:"count"`
// 	Cd       int64                 `json:"cd"`
// 	Cost     []*model.DropMaterial `json:"cost"`
// }

// type DiamondBuyShopData struct {
// 	GoodsID  int64 `json:"goodsId"`
// 	Count    int   `json:"buyCount"`
// 	Discount int   `json:"Discount"` // 100代表 不打折
// }

// // 刷新
// type DiamondBuyRefresh struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// 	ShopType   int    `json:"shopType"`
// }

// type ResponseDiamondBuyRefresh struct {
// 	ErrCode int                    `json:"errCode"`
// 	Msg     string                 `json:"msg,omitempty"`
// 	Data    *DiamondBuyRefreshData `json:"data"`
// }

// type DiamondBuyRefreshData struct {
// 	ShopInfo    []*DiamondBuyShopData   `json:"shopInfo"`
// 	RefreshInfo *DiamondShopRefreshData `json:"refreshInfo"`
// }

// // 神秘商人商店信息
// type DealerShop struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseDealerShop struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *DealerSalesGoodsData `json:"data"`
// }

// type DealerSalesGoodsData struct {
// 	CurTick    int64                 `json:"timeStamp"`
// 	DealerID   int                   `json:"dealerId"`
// 	Equipments []int64               `json:"equipments"`
// 	Materials  []*model.DropMaterial `json:"materials"`
// 	//Favorites  []*model.Favorite     `json:"favorite"`
// 	RefTotalTimes int64                 `json:"refTotalTimes"` // 总次数
// 	RefUseTimes   int64                 `json:"refUseTimes"`   // 使用次数
// 	RefCDTime     int64                 `json:"refCDTime"`     // CD时间
// 	Cost          []*model.DropMaterial `json:"cost"`          // 刷新消耗
// }

// // 神秘商人交换物品
// type SwitchDealerGoods struct {
// 	PlayerID   int64                 `json:"userId"`
// 	Cost       []*model.DropMaterial `json:"cost"`
// 	Equipments []int64               `json:"equipments"`
// 	Materials  []*model.DropMaterial `json:"materials"`
// }

// type ResponseSwitchDealerGoods struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *SwitchGoodsData `json:"data"`
// }

// type SwitchGoodsData struct {
// 	Equipments []*model.DropEquipment `json:"equipments"`
// 	Materials  []*model.DropMaterial  `json:"restores"`
// 	Cost       []*model.DropMaterial  `json:"cost"`
// }

// // 神秘商人刷新
// type TraderRef struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseTraderRef struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *DealerSalesGoodsData `json:"data"`
// }

// type TraderRefCost struct {
// 	PlayerId int64 `json:"playerId"`
// 	RefTimes int64 `json:"refTimes"`
// }

// type ResponseTraderRefCost struct {
// 	ErrCode       int                     `json:"errCode"`
// 	Msg           string                  `json:"msg,omitempty"`
// 	BuffMaterials []*model.ExpireMaterial `json:"buffMaterials"`
// 	Cost          []*model.DropMaterial   `json:"cost"`
// }

// // 购买活动次数
// type BuyZoneTicket struct {
// 	PlayerID int64 `json:"userId"`
// 	ActiveID uint  `json:"activeId"`
// }

// type ResponseBuyZoneTicket struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    *BuyZoneTicketData `json:"data"`
// }

// type BuyZoneTicketData struct {
// 	ActiveID   uint                  `json:"activeID"`
// 	JoinTime   int                   `json:"joinTime"`
// 	UsedCount  int                   `json:"usedCount"`
// 	BuyCount   int                   `json:"buyCount"`
// 	AvailCount int                   `json:"availCount"`
// 	Cost       []*model.DropMaterial `json:"cost"`
// 	CD         int64                 `json:"cd"`
// }

// // 地下城活动参与情况
// type ZoneActives struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseZoneActives struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *ZoneActivesData `json:"data"`
// }

// type ZoneActivesData struct {
// 	Week   int                     `json:"week"` // 今天是周几
// 	Opened []*OpenedActiveItem     `json:"opend"`
// 	Closed []*ClosedZoneActiveItem `json:"closed"`
// }

// type OpenedActiveItem struct {
// 	ActiveID       uint                 `json:"activeID"`
// 	JoinTime       int                  `json:"joinTime"`
// 	UsedCount      int                  `json:"usedCount"`      // 使用了多少次
// 	BuyCount       int                  `json:"buyCount"`       // 购买了多少次
// 	AdCount        int                  `json:"adCount"`        // 看广告了多少次
// 	AvailCount     int                  `json:"availCount"`     // 剩余可用次数
// 	CD             int64                `json:"cd"`             // 活动CD
// 	AdCD           int64                `json:"adCd"`           // 看广告CD
// 	Bonus          map[int]*ActiveBonus `json:"bonus"`          // 活动加成
// 	AllCanBuyCount int                  `json:"allCanBuyCount"` // 可购买总次数
// }

// type ActiveBonus struct {
// 	RewardId int `json:"rewardId"` // 奖励倍数Id
// }

// type ClosedZoneActiveItem struct {
// 	ID uint  `json:"activeID"`
// 	CD int64 `json:"cd"`
// 	//ActiveTime []int `json:"timeInterval"`
// }

// // //进入地下城
// // type EnterZone struct {
// // 	PlayerID int64 `json:"userId"`
// // 	ActiveID uint  `json:"activeId"`
// // }

// // type ResponseEnterZone struct {
// // 	ErrCode int            `json:"errCode"`
// // 	Msg     string         `json:"msg,omitempty"`
// // 	Data    *EnterZoneData `json:"data"`
// // }

// // type EnterZoneData struct {
// // 	ActiveID   uint  `json:"activeID"`
// // 	JoinTime   int   `json:"joinTime"`
// // 	UsedCount  int   `json:"usedCount"`
// // 	BuyCount   int   `json:"buyCount"`
// // 	AvailCount int   `json:"availCount"`
// // 	Difficulty int   `json:"difficulty"`
// // 	CD         int64 `json:"cd"`
// // }

// type EnterChapter struct {
// 	PlayerID     int64  `json:"userId"`
// 	ChapterID    uint   `json:"activeId"`
// 	Difficulty   int    `json:"difficulty"`   //普通 困难模式
// 	IsActivity   int    `json:"isActivity"`   //是否活动
// 	Stamina      int    `json:"stamina"`      //花费体力
// 	StaminaMulti int    `json:"staminaMulti"` // 花费体力倍数
// 	ClientPlat   string `json:"clientPlat"`
// }

// type ResponseEnterChapter struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *EnterChapterData `json:"data"`
// }

// type EnterChapterData struct {
// 	PlayerID     int64   `json:"userId"`
// 	ChapterID    uint    `json:"activeId"`
// 	Difficulty   int     `json:"difficulty"` //普通 困难模式
// 	ActiveID     uint    `json:"activeID"`
// 	JoinTime     int     `json:"joinTime"` //非活动返回0
// 	UsedCount    int     `json:"usedCount"`
// 	BuyCount     int     `json:"buyCount"`
// 	AvailCount   int     `json:"availCount"`
// 	Stamina      int     `json:"stamina"` //剩余体力
// 	CD           int64   `json:"cd"`
// 	DifScale     int     `json:"difScale"`     // 难度系数
// 	StaminaMulti int     `json:"staminaMulti"` // 花费体力倍数
// 	RewardMulti  float64 `json:"rewardMulti"`  // 结算奖励倍数
// 	// 当前最高关卡 无尽使用
// 	CurRoomId       int   `json:"roomId"`          // 房间id
// 	EndLessLimitId  int   `json:"endLessLimitId"`  // 房间限制
// 	SkillTurntables []int `json:"skillTurntables"` // 槽位技能
// 	Skills          []int `json:"exSkills"`        // 额外技能
// 	EndLessEndTs    int64 `json:"endLessEndTs"`    // 无尽关闭时间
// }

// type EnterChapterIs struct {
// 	RpcRequestMsg
// 	PlayerID     int64 `json:"userId"`
// 	ChapterID    uint  `json:"activeId"`
// 	Difficulty   int   `json:"difficulty"`   //普通 困难模式
// 	IsActivity   int   `json:"isActivity"`   //是否活动
// 	Stamina      int   `json:"stamina"`      //剩余体力
// 	Level        int   `json:"level"`        //用户体力
// 	StaminaMulti int   `json:"staminaMulti"` // 花费体力倍数
// }

// type ResponseEnterChapterIs struct {
// 	RpcResponseMsg
// 	ErrCode int               `json:"errCode"`
// 	Data    *EnterChapterData `json:"data"`
// }

// // 关卡商人
// type StageDealer struct {
// 	PlayerID int64 `json:"userId"`
// 	GoodsID  int   `json:"goodsId"`
// }

// type ResponseStageDealer struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *StageDealerData `json:"data"`
// }

// type StageDealerData struct {
// 	Diamond int                 `json:"diamond"`
// 	Goods   *model.DropMaterial `json:"goods"`
// }

// // 买关卡商人物品
// type BuyStageDealerGoods struct {
// 	PlayerID int64                 `json:"userId"`
// 	GoodsID  int                   `json:"goodsId"`
// 	Goods    []*model.DropMaterial `json:"goods"`
// 	Cost     []*model.DropMaterial `json:"cost"`
// }

// type ResponseBuyStageDealerGoods struct {
// 	ErrCode  int   `json:"errCode"`
// 	PlayerID int64 `json:"userId"`
// 	GoodsID  int   `json:"goodsId"`
// 	Diamond  int   `json:"diamond"`
// }

// // 怨鬼商人
// type YuanGuiDealer struct {
// 	PlayerID int64 `json:"userId"`
// 	GoodsID  int   `json:"goodsId"`
// }

// type ResponseYuanGuiDealer struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *StageDealerData `json:"data"`
// }

// // 请求计算恢复体力数
// type RestoreStamina struct {
// 	PlayerID int64 `json:"userId"`
// 	// Type     int   `json:"type"`
// 	// Stamina  int   `json:"data"`
// }

// type ResponseRestoreStamina struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *RestoreStaminaData `json:"data"`
// }

// type RestoreStaminaData struct {
// 	Diamond  int `json:"diamond"`
// 	Stamina  int `json:"stamina"`
// 	MaxStama int `json:"maxStama"`
// 	CoolDown int `json:"cd"`
// }

// // Type 2：广告券 3：看广告 0:消耗钻石
// // -> Type 2：广告券 3：看广告 6： 消耗钻石  0:免费
// type BuyStamina struct {
// 	PlayerID   int64  `json:"userId"`
// 	CostType   int    `json:"type"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseBuyStamina struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *BuyStaminaData `json:"data"`
// }

// type BuyStaminaData struct {
// 	Stamina      int                   `json:"stamina"`
// 	FreeCount    int                   `json:"freeCount"`
// 	DiamondCount int                   `json:"diamondCount"`
// 	Cost         []*model.DropMaterial `json:"cost"`
// 	AdCount      int                   `json:"adCount"`
// 	CostType     int                   `json:"costType"`
// 	CD           int64                 `json:"cd"`
// 	Materials    []*model.DropMaterial `json:"materials"`
// }

// // 查询购买次数
// type QueryBuyStamina struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }
// type StaminaBuyData struct {
// 	AdCount      int   `json:"adCount"`
// 	DiamondCount int   `json:"diamondCount"`
// 	CD           int64 `json:"cd"`
// }

// type ResponseQueryBuyStamina struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    StaminaBuyData `json:"data"`
// }

// // 购买钻石
// type BuyDiamond struct {
// 	PlayerID int64 `json:"userId"`
// 	Diamond  int   `json:"diamond"`
// 	Coin     int   `json:"coin"`
// }

// type ResponseBuyDiamond struct {
// 	ErrCode int         `json:"errCode"`
// 	Msg     string      `json:"msg,omitempty"`
// 	Data    *BuyDiamond `json:"data"`
// }

// // 获取时间
// type SystemTime struct {
// }

// type ResponseSystemTime struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    int64  `json:"data"`
// }

// // 发送给服务器的通知
// // Type 1:服务器停服维护；2：消息通知 limit：时长，超时之后停服； Msg：消息内容
// type ServerNotifyData struct {
// 	Type  int    `json:"type"`
// 	Limit int    `json:"limit"`
// 	Msg   string `json:"msg"`
// }

// type ServerNotify struct {
// 	ErrCode int               `json:"errCode"`
// 	Data    *ServerNotifyData `json:"data"`
// }

// // 更新关卡数据
// type UpdateChapter struct {
// 	PlayerID   int64  `json:"userId"`
// 	Difficulty int    `json:"difficulty"`
// 	Chapter    int    `json:"chapter"`
// 	Doors      string `json:"archive"`
// 	Stuff      string `json:"gameStuff"`
// 	Guide      int    `json:"guide"`
// }

// type ResponseUpdateChapter struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    string `json:"data"`
// }

// // 请求关卡数据
// type RequestChapter struct {
// 	PlayerID   int64 `json:"userId"`
// 	Difficulty int   `json:"difficulty"`
// 	Chapter    int   `json:"chapter"`
// 	InviterId  int64 `json:"inviterId"`
// }

// type RequestChapterData struct {
// 	Doors *string `json:"archive"`
// 	Stuff *string `json:"gameStuff"`
// 	Guide int     `json:"guide"`
// }

// type ResponseRequestChapter struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *RequestChapterData `json:"data"`
// }

// //选择第一把武器
// // type SelectFirstWeapon struct {
// // 	PlayerID int64 `json:"userId"`
// // 	EID      uint  `json:"equipId"`
// // }

// // type ResponseSelectFirstWeapon struct {
// // 	ErrCode int             `json:"errCode"`
// // 	Msg     string          `json:"msg,omitempty"`
// // 	Data    *EquipmentsData `json:"data"`
// // }

// // 新手指导步骤
// type SetGuide struct {
// 	PlayerID int64 `json:"userId"`
// 	Guide    int   `json:"guide"`
// 	Type     int   `json:"type"` // 1:引导项 2：功能项
// }

// type ResponseSetGuide struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    int    `json:"data"`
// }

// type GetGuide struct {
// 	PlayerID int64 `json:"userId"`
// 	Type     int   `json:"type"`
// }

// type ResponseGetGuide struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    []int  `json:"data"`
// }

// // 获取签到情况
// type QuerySignIn struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseQuerySignIn struct {
// 	ErrCode int        `json:"errCode"`
// 	Msg     string     `json:"msg,omitempty"`
// 	Data    SignInData `json:"data"`
// }

// type SignInData struct {
// 	Time       int64 `json:"time"`       //最后签到时间
// 	ServerTime int64 `json:"serverTime"` //服务器时间
// 	Count      int   `json:"count"`      //总签到次数
// }

// // 签到请求
// type DoSignIn struct {
// 	PlayerID int64 `json:"userId"`
// 	// Double     bool   `json:"double"`
// 	CostType   int    `json:"type"`      //0:无广告 2：广告券 3：看广告 4:底部广告
// 	ClassID    int64  `json:"adClassID"` // 广告分类ID
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseDoSignIn struct {
// 	ErrCode int          `json:"errCode"`
// 	Msg     string       `json:"msg,omitempty"`
// 	Data    DoSignInData `json:"data"`
// }

// // 通知服务器签到奖励
// type DoSignInData struct {
// 	Time       int64                  `json:"time"`       //最后签到时间
// 	ServerTime int64                  `json:"serverTime"` //服务器时间
// 	Count      int                    `json:"count"`      //总签到次数
// 	Equipments []*model.DropEquipment `json:"equipments"` //增加的装备
// 	Materials  []*model.DropMaterial  `json:"restores"`   //增加的材料
// 	Cost       []*model.DropMaterial  `json:"cost"`
// 	AdCount    int                    `json:"adCount"`
// 	CostType   int                    `json:"costType"` // 0:无消耗,2：广告券 3：看广告 4：底部广告
// }

// // 进度奖励
// type ProcessAward struct {
// 	PlayerID int64                `json:"userId"`
// 	CostType int                  `json:"type"` //0:无消耗,2：广告券 3：看广告 4：底部广告
// 	Awards   []*model.ProcessNode `json:"awards"`
// }

// type ResponseProcessAward struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *ProcessAwardData `json:"data"`
// }

// type ProcessAwardData struct {
// 	Awards     []*model.ProcessNode   `json:"awards"`
// 	Equipments []*model.DropEquipment `json:"equipments"` //增加的装备
// 	Materials  []*model.DropMaterial  `json:"materials"`  //增加的材料
// 	Cost       []*model.DropMaterial  `json:"cost"`
// 	AdCount    int                    `json:"adCount"`
// 	CostType   int                    `json:"costType"` //0:无消耗,2：广告券 3：看广告 4：底部广告
// }

// // 进度领取情况
// type ProcessAwardInfo struct {
// 	PlayerID   int64  `json:"userId"`
// 	Chapters   []uint `json:"chapter"`
// 	Difficulty int    `json:"difficulty"`
// }

// type ResponseProcessAwardInfo struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    []*model.ProcessNode `json:"data"`
// }

// // type ProcessNode struct {
// // 	ID    int
// // 	Award []int
// // }

// // 更新摘要数据
// type UpdateSummary struct {
// 	PlayerID int64  `json:"userId"`
// 	ExitPos  string `json:"exitPos"`
// }

// type ResponseUpdateSummary struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    string `json:"data"`
// }

// // 请求摘要数据
// type RequestSummary struct {
// 	PlayerID int64  `json:"userId"`
// 	Type     string `json:"type"`
// }

// type RequestSummaryData struct {
// 	ExitPos string `json:"exitPos"`
// }

// type ResponseRequestSummary struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    RequestSummaryData `json:"data"`
// }

// // 占卜次数
// type DivinationCount struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseDivinationCount struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    DivinationBuffData `json:"data"`
// }

// // 占卜
// type Divination struct {
// 	PlayerID int64 `json:"userId"`
// 	CostType int   `json:"type"` //2：广告券 3：看广告
// }

// type ResponseDivination struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    DivinationData `json:"data"`
// }

// type DivinationData struct {
// 	DvnId       int                   `json:"dvnId"`       //占卜ID
// 	BuffId      int                   `json:"buffId"`      //bufID
// 	EndTime     int64                 `json:"buffTime"`    //buf剩余时间
// 	ReuseCount  int                   `json:"reuseCount"`  //已延长BUF次数
// 	DvnCount    int                   `json:"dvnCount"`    //占卜次数
// 	ModifyCount int                   `json:"modifyCount"` //改命次数
// 	Material    []*model.DropMaterial `json:"material"`    //所得材料
// 	Cost        []*model.DropMaterial `json:"cost"`        //耗费材料
// 	CostType    int                   `json:"costType"`    //2：广告券 3：看广告
// }

// // 增加时长
// type AddBuffTimeLen struct {
// 	PlayerID int64 `json:"userId"`
// 	CostType int   `json:"type"` //2：广告券 3：看广告
// }

// type ResponseAddBuffTimeLen struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    DivinationBuffData `json:"data"`
// }

// type DivinationBuffData struct {
// 	DvnId       int                   `json:"dvnId"`       //占卜ID
// 	BuffId      int                   `json:"buffId"`      //bufID
// 	EndTime     int64                 `json:"buffTime"`    //buf剩余时间
// 	ReuseCount  int                   `json:"reuseCount"`  //已延长BUF次数
// 	DvnCount    int                   `json:"dvnCount"`    //占卜次数
// 	ModifyCount int                   `json:"modifyCount"` //改命次数
// 	Cost        []*model.DropMaterial `json:"cost"`        //消耗
// 	Materials   []*model.DropMaterial `json:"materials"`   //获得
// 	CostType    int                   `json:"costType"`
// }

// // 创建订单
// type NewOrder struct {
// 	PlayerID   int64  `json:"userId"`
// 	Platform   int    `json:"platform"` //微信：1； 抖音：2; quick: 3;
// 	GoodsID    int64  `json:"goodsId"`
// 	PayMethod  int    `json:"midasPay"` //0：苹果游戏外微信支付 1:安卓游戏内支付 2：安卓游戏外微信支付 3:苹果游戏内支付
// 	Level      int    `json:"level"`
// 	OpenId     string `json:"openId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseNewOrder struct {
// 	ErrCode int           `json:"errCode"`
// 	Msg     string        `json:"msg,omitempty"`
// 	Data    *NewOrderData `json:"data"`
// }

// type NewOrderData struct {
// 	OrderID string `json:"orderID"`
// 	Url     string `json:"callUrl"`
// }

// // 取消订单
// type CancleOrder struct {
// 	PlayerID   int64  `json:"userId"`
// 	OrderID    string `json:"orderID"`
// 	Platform   int    `json:"platform"` // 购买平台 微信：1； 抖音：2 quick 3
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseCancleOrder struct {
// 	ErrCode int    `json:"errCode"`
// 	Data    string `json:"data"`
// }

// type QueryOrder struct {
// 	PlayerID int64  `json:"userId"`
// 	OrderID  string `json:"orderID"`
// 	MidasPay int    `json:"midasPay"`
// }

// // type ResponseQueryOrder struct {
// // 	ErrCode int `json:"errCode"`
// // 	//Data    *PayBuyData `json:"data"`
// // }

// type AndroidPayedNotify struct {
// 	GoodsID int64  `json:"goodsId"`
// 	OrderID string `json:"orderID"`
// }

// // 支付购买
// type PayBuy struct {
// 	PlayerID   int64  `json:"userId"`
// 	Platform   int    `json:"platform"` // 购买平台 微信：1； 抖音：2 quick 3
// 	GoodsID    int64  `json:"goodsId"`
// 	OrderID    string `json:"orderID"`
// 	Level      int    `json:"level"`
// 	Num        int64  `json:"num"` //发送本消息次数
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponsePayBuy struct {
// 	ErrCode int         `json:"errCode"`
// 	Msg     string      `json:"msg,omitempty"`
// 	Data    *PayBuyData `json:"data"`
// }

// type PayBuyData struct {
// 	GoodsId    int64                  `json:"goodsId"`
// 	Diamond    int                    `json:"diamond"`
// 	Materials  []*model.DropMaterial  `json:"materials"`
// 	Equipments []*model.DropEquipment `json:"equipments"`
// 	Buffs      *VipBuffData           `json:"buffs"`
// }

// // 请求支付次数
// type PayRequestCd struct {
// 	PlayerID int64  `json:"userId"`
// 	Platform int    `json:"platform"` // 购买平台 微信：1； 抖音：2 quick 3
// 	GoodsID  int64  `json:"goodsId"`
// 	OrderID  string `json:"orderID"`
// 	Num      int64  `json:"num"`
// }

// type ResponsePayRequestCd struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *PayRequestCdData `json:"data"`
// }

// type PayRequestCdData struct {
// 	Num int64 `json:"num"`
// 	Cd  int   `json:"cd"`
// }

// type VipBuffData struct {
// 	ID      int64 `json:"goodsId"`
// 	BuyCD   int64 `json:"buyCD"`
// 	DailyCD int64 `json:"dailyCD"`
// }

// // 购买钻石信息
// type PayDiamondInfo struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponsePayDiamondInfo struct {
// 	ErrCode int     `json:"errCode"`
// 	Msg     string  `json:"msg,omitempty"`
// 	Data    []int64 `json:"data"`
// }

// // 无尽排行
// type ElRank struct {
// 	PlayerId int64 `json:"userId"`
// 	//Level    int   `json:"level"`
// }

// type ResponseElRank struct {
// 	ErrCode int         `json:"errCode"`
// 	Msg     string      `json:"msg,omitempty"`
// 	Data    *ElRankData `json:"data"`
// }

// type ElRankData struct {
// 	RankList []*EndlessRank `json:"rankList"`
// 	SelfRank *EndlessRank   `json:"selfRank"`
// }

// type EndlessRank struct {
// 	PlayerID int64 `json:"userId"`
// 	Level    int   `json:"level"`
// 	Rank     int   `json:"rank"`
// 	//NickName   string `json:"nickName"`
// 	CombatEffe   int64 `json:"combatEffe"`
// 	PersonalItem `json:"personalItem"`
// }

// // 无尽模式 查看关卡奖励
// type ViewElStagePrize struct {
// 	PlayerId int64 `json:"userId"`
// }

// type ResponseViewElStagePrize struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    ViewElStagePrizeData `json:"data"`
// }

// type ViewElStagePrizeData struct {
// 	CurrentLevel int `json:"current"`
// 	PrizeLevel   int `json:"prize"`
// }

// // 领取关卡奖励
// type ElStagePrize struct {
// 	PlayerId int64 `json:"userId"`
// }

// type ResponseElStagePrize struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *ElStagePrizeData `json:"data"`
// }

// type ElStagePrizeData struct {
// 	Level     int                    `json:"level"` //领到哪一层
// 	Materials []*model.DropMaterial  `json:"materials"`
// 	Equips    []*model.DropEquipment `json:"equips"`
// }

// // ElWeekTask 无尽周任务
// type ElWeekTask struct {
// 	PlayerId int64 `json:"userId"`
// }

// type ResponseElWeekTask struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *ElWeekTaskData `json:"data"`
// }

// type ElWeekTaskData struct {
// 	Type     int              `json:"type"`     // 任务类型
// 	Progress int              `json:"progress"` // 任务进度
// 	Received map[int]struct{} `json:"received"` // 已领取的档位ID
// }

// // ElWeekTaskReceive 无尽周任务领取
// type ElWeekTaskReceive struct {
// 	PlayerId int64 `json:"userId"`
// 	Ids      []int `json:"ids"` // 要领取的档位ID集合
// }

// type ResponseElWeekTaskReceive struct {
// 	ErrCode int                    `json:"errCode"`
// 	Msg     string                 `json:"msg,omitempty"`
// 	Data    *ElWeekTaskReceiveData `json:"data"`
// }

// type ElWeekTaskReceiveData struct {
// 	Type      int                   `json:"type"`     // 任务类型
// 	Progress  int                   `json:"progress"` // 任务进度
// 	Received  map[int]struct{}      `json:"received"` // 已领取的档位ID
// 	Materials []*model.DropMaterial `json:"materials"`
// }

// // 无尽关卡显示
// type EndLessShowActive struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseEndLessShowActive struct {
// 	ErrCode int                    `json:"errCode"`
// 	Msg     string                 `json:"msg,omitempty"`
// 	Data    *EndLessShowActiveData `json:"data"`
// }

// type EndLessShowActiveData struct {
// 	HistoryRank    int   `json:"historyRank"` // 历史最高排名
// 	Skills         []int `json:"skills"`
// 	CurRank        int   `json:"curRank"`
// 	CurMaxRoomId   int   `json:"curMaxRoomId"`   //最大闯关数
// 	EndLessLimitId int   `json:"endLessLimitId"` // 房间限制
// 	StartTs        int64 `json:"startTs"`        // 开始时间
// 	EndTs          int64 `json:"endTs"`          // 结束时间
// 	ShowTs         int64 `json:"showTs"`         // 展示时间
// }

// // 查看无尽通行证奖励
// type EndLessShowPass struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseEndLessShowPass struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *EndLessShowPassData `json:"data"`
// }

// type EndLessShowPassData struct {
// 	Exp            int64 `json:"exp"`            // 当前活跃度
// 	IsMiddleVip    int   `json:"isMiddleVip"`    // 是否开通中级奖励 0:未开通;1:已开通
// 	IsSeniorVip    int   `json:"isSeniorVip"`    // 是否开通高级奖励 0:未开通;1:已开通
// 	FreeReceived   []int `json:"FreeReceived"`   // 已领取免费奖励
// 	MiddleReceived []int `json:"MiddleReceived"` // 已领取中级奖励
// 	SeniorReceived []int `json:"SeniorReceived"` // 已领取高级奖励
// }

// type ReceivePassData struct {
// 	Mode  int `json:"mode"` // 1 免费奖励 2 中级奖励 3 高级奖励
// 	Level int `json:"level"`
// }

// // 领取无尽通行证奖励
// type EndLessReceivePassAward struct {
// 	PlayerID int64              `json:"userId"`
// 	Receive  []*ReceivePassData `json:"receivePass"`
// }

// type ResponseEndLessReceivePassAward struct {
// 	ErrCode int                          `json:"errCode"`
// 	Msg     string                       `json:"msg,omitempty"`
// 	Data    *EndLessReceivePassAwardData `json:"data"`
// }

// type EndLessReceivePassAwardData struct {
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Receive   []*ReceivePassData    `json:"receivePass"`
// }

// // 购买无尽通行证经验
// type EndLessPassBuyExp struct {
// 	PlayerID int64 `json:"userId"`
// 	Num      int   `json:"num"`
// }

// type ResponseEndLessPassBuyExp struct {
// 	ErrCode int                         `json:"errCode"`
// 	Msg     string                      `json:"msg,omitempty"`
// 	Data    *EndLessPassBuyExpAwardData `json:"data"`
// }

// type EndLessPassBuyExpAwardData struct {
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Cost      []*model.DropMaterial `json:"cost"`
// }

// // 能否购买
// type PayEndLessPassLimitIs struct {
// 	PlayerId int64 `json:"userId"`
// 	Ts       int64 `json:"Ts"`
// }

// // 购买成功
// type BuyEndLessPassIs struct {
// 	PlayerId int64 `json:"userId"`
// 	Mode     int   `json:"mode"` // 1 中级奖励 2 高级奖励
// 	Exp      int   `json:"exp"`
// }

// // 看视频领钻石
// type DiamondGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	GoodsID    int64  `json:"goodsId"`
// 	CostType   int    `json:"type"` // 2：广告券 3：看广告
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseDiamondGift struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *DiamondGiftData `json:"data"`
// }

// type DiamondGiftData struct {
// 	GoodsID   int64                 `json:"goodsId"`
// 	MaxCount  int                   `json:"maxCount"` //可以领取次数
// 	CD        int64                 `json:"cd"`
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Cost      []*model.DropMaterial `json:"cost"`
// 	AdCount   int                   `json:"adCount"`
// 	CostType  int                   `json:"costType"` // 2：广告券 3：看广告
// }

// // 看视频领金币
// type CoinGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	GoodsID    int64  `json:"goodsId"`
// 	CostType   int    `json:"type"`      // 2：广告券 3：看广告
// 	ClassID    int64  `json:"adClassID"` // 广告分类ID
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseCoinGift struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *DiamondGiftData `json:"data"`
// }

// type CoinGiftData struct {
// 	CostType  int                   `json:"costType"` // 2：广告券 3：看广告
// 	AdCount   int                   `json:"adCount"`  //双倍广告
// 	GoodsID   int64                 `json:"goodsId"`
// 	MaxCount  int                   `json:"maxCount"` //可以领取次数
// 	CD        int64                 `json:"cd"`
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Cost      []*model.DropMaterial `json:"cost"`
// }

// // 巡逻
// type Patrol struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponsePatrol struct {
// 	ErrCode int         `json:"errCode"`
// 	Msg     string      `json:"msg,omitempty"`
// 	Data    *PatrolData `json:"data"`
// }

// type PatrolData struct {
// 	TimeLen    int                   `json:"timeLen"` //巡逻时长
// 	MaxTimeLen int                   `json:"maxTimeLen"`
// 	CointSpeed int                   `json:"cointSpeed"`
// 	ExpSpeed   int                   `json:"expSpeed"`
// 	Materials  []*model.DropMaterial `json:"materials"` //收益
// 	Equipments []int64               `json:"equipments"`
// }

// // 巡逻时长
// type PatrolTimeLen struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponsePatrolTimeLen struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    *PatrolTimeLenData `json:"data"`
// }

// type PatrolTimeLenData struct {
// 	TimeLen    int `json:"timeLen"` //巡逻时长
// 	MaxTimeLen int `json:"maxTimeLen"`
// }

// // 服务器使用 结算
// type PatrolDataIs struct {
// 	PlayerId   int64
// 	TimeLen    int                   `json:"timeLen"` //巡逻时长
// 	MaxTimeLen int                   `json:"maxTimeLen"`
// 	CointSpeed int                   `json:"cointSpeed"`
// 	ExpSpeed   int                   `json:"expSpeed"`
// 	Materials  []*model.DropMaterial `json:"materials"` //目前收益
// 	Equipments []int64               `json:"equipments"`
// 	Cost       []*model.DropMaterial `json:"cost"`
// 	CostType   int                   `json:"type"` //0:无广告 2：广告券 3：看广告
// }

// // 领取收益
// type SettlePatrol struct {
// 	PlayerID   int64  `json:"userId"`
// 	Times      int    `json:"times"`
// 	CostType   int    `json:"type"`      //0:无广告 2：广告券 3：看广告
// 	ClassID    int64  `json:"adClassID"` // 广告分类ID
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseSettlePatrol struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *SettlePatrolData `json:"data"`
// }

// type SettlePatrolData struct {
// 	Level            int                    `json:"userLevel"`
// 	Exp              int                    `json:"userExp"`
// 	TimeLen          int                    `json:"timeLen"` //巡逻时长
// 	MaxTimeLen       int                    `json:"maxTimeLen"`
// 	CointSpeed       int                    `json:"cointSpeed"`
// 	ExpSpeed         int                    `json:"expSpeed"`
// 	Materials        []*model.DropMaterial  `json:"materials"` //收益
// 	Equipments       []*model.DropEquipment `json:"equipments"`
// 	Cost             []*model.DropMaterial  `json:"cost"` //消耗
// 	UserRewards      []*model.DropMaterial  `json:"userRewards"`
// 	UserRewardEquips []*model.DropEquipment `json:"userRewardsEquip"`
// 	CostType         int                    `json:"costType"` //0:无广告 2：广告券 3：看广告
// 	StaminaInfo      MopUpStaminaInfo       `json:"staminaInfo"`
// 	//TalentPoint int                    `json:"talentPoint"`
// }

// // 24点通知
// type GoodNewDay struct {
// 	ErrCode int `json:"errCode"`
// }

// // 给客户端的公告通知
// type Placard struct {
// 	Type      string            `json:"type"`
// 	Customize int               `json:"customize"` //1:自定义
// 	Priority  int               `json:"priority"`
// 	Content   string            `json:"content,omitempty"`
// 	Sender    int64             `json:"sender"`
// 	Params    map[string]string `json:"params,omitempty"`
// 	Times     int               `json:"times"`
// }

// // 服务器停止
// type ServerStop struct {
// 	State int `json:"state"`
// }

// // 踢出玩家
// type KickOut struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// }

// // 邮件列表
// type LetterList struct {
// 	PlayerId int64 `json:"userId"`
// }

// type ResponseLetterList struct {
// 	ErrCode int           `json:"errCode"`
// 	Msg     string        `json:"msg,omitempty"`
// 	Data    []*LetterData `json:"data"`
// }

// type LetterData struct {
// 	Id         int64            `json:"id"`
// 	Type       int              `json:"type"`
// 	ViewState  int              `json:"readState"`
// 	DrawState  int              `json:"drawState"`
// 	Title      string           `json:"title"`
// 	Content    string           `json:"content"`
// 	Extra      *model.ExtraData `json:"extra"`
// 	CreateTime int64            `json:"createTime"`
// }

// // 领取附件
// type DrawLetterExtra struct {
// 	PlayerId int64   `json:"userId"`
// 	Letters  []int64 `json:"letters"`
// }

// type ResponseDrawLetterExtra struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *DrawLetterExtraData `json:"data"`
// }

// type DrawLetterExtraData struct {
// 	Letters   []int64                `json:"letters"`
// 	Materials []*model.DropMaterial  `json:"materials"`
// 	Equips    []*model.DropEquipment `json:"equips"`
// 	Stamina   int                    `json:"stamina"`
// 	Roles     []*DropedRoleDate      `json:"roles"`
// }

// // 删除邮件
// type DeleteLetter struct {
// 	PlayerId int64   `json:"userId"`
// 	Letters  []int64 `json:"letters"`
// }

// type ResponseDeleteLetter struct {
// 	ErrCode int     `json:"errCode"`
// 	Msg     string  `json:"msg,omitempty"`
// 	Data    []int64 `json:"data"`
// }

// // 查看邮件
// type ViewLetter struct {
// 	PlayerId int64   `json:"userId"`
// 	Letters  []int64 `json:"letters"`
// }

// type ResponseViewLetter struct {
// 	ErrCode int     `json:"errCode"`
// 	Msg     string  `json:"msg,omitempty"`
// 	Data    []int64 `json:"data"`
// }

// type AddNewLetterNotfiyIs struct {
// 	PlayerIds []int64 `json:"userId"`
// 	// Letters  []int64 `json:"letters"`
// }

// // 兑换材料
// type ExchangeMaterial struct {
// 	PlayerId  int64                 `json:"userId"`
// 	Materials []*model.DropMaterial `json:"materials"`
// }

// type ResponseExchangeMaterial struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *ExchangeMaterialData `json:"data"`
// }

// type ExchangeMaterialData struct {
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Cost      []*model.DropMaterial `json:"cost"`
// }

// // 兑换金币
// type ExchangeGold struct {
// 	PlayerId int64 `json:"userId"`
// 	// //0:广告购买 1：钻石购买 -》2:广告券 3：看广告 0：消耗钻石
// 	CostType int `json:"type"`
// }

// type ResponseExchangeGold struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *ExchangeGoldData `json:"data"`
// }

// type ExchangeGoldData struct {
// 	AdCount   int                   `json:"adCount"`
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Cost      []*model.DropMaterial `json:"cost"`
// 	CostType  int                   `json:"costType"`
// }

// // 道具兑换
// type ItemExchange struct {
// 	PlayerId int64 `json:"userId"`
// 	ItemId   int64 `json:"itemId"`
// 	ItemNum  int64 `json:"itemNum"`
// }

// type ResponseItemExchange struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *ItemExchangeData `json:"data"`
// }

// type ItemExchangeData struct {
// 	Cost      []*model.DropMaterial `json:"cost"`
// 	Materials []*model.DropMaterial `json:"materials"`
// }

// // 消息通知
// type MsgNotify struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    int    `json:"data"` //1:有新邮件 2:有已支付商品
// }

// // 用户订阅消息
// type PlayerSubMsgType struct {
// 	PlayerID   int64   `json:"userId"`
// 	TemplateID string  `json:"templateId"` // 订阅的消息类型
// 	Param      []int64 `json:"param"`      //[结束CD, 最大时长]
// }

// type ResponsePlayerSubMsgType struct {
// 	ErrCode int64 `json:"errCode"`
// }

// // 用户退订消息
// type PlayerUnSubMsgType struct {
// 	PlayerID    int64    `json:"userId"`
// 	All         bool     `json:"all"`         // 用户退订全部消息
// 	TemplateIDs []string `json:"templateIds"` // 用户退订的消息类型
// }

// type ResponsePlayerUnSubMsgType struct {
// 	ErrCode int64 `json:"errCode"`
// }

// func (resp *ResponsePlayerUnSubMsgType) SetErrCode(code int64) {
// 	resp.ErrCode = code
// }

// // Vip每日福利领取
// type VIPDayGift struct {
// 	PlayerId int64 `json:"userId"`
// 	GoodsId  int64 `json:"goodsId"`
// }

// type ResponseVIPDayGift struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *VIPDayGiftData `json:"data"`
// }

// type VIPDayGiftData struct {
// 	GoodsId   int64                 `json:"goodsId"`
// 	BuyCD     int64                 `json:"buyCD"`
// 	DailyCD   int64                 `json:"dailyCD"`
// 	Materials []*model.DropMaterial `json:"materials"`
// }

// // Vip状态
// type VIPStatus struct {
// 	PlayerId int64 `json:"userId"`
// 	//GoodsId  uint  `json:"goodsId"`
// }

// type ResponseVIPStatus struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    []*VipBuffData `json:"data"`
// }

// // -----------
// // PlayerDayAwards 查看每日任务和奖励情况
// type PlayerDayAwards struct {
// 	PlayerID   int64  `json:"userId"`
// 	Level      int    `json:"level"`
// 	ClientPlat string `json:"clientPlat"`
// }

// // DayAward 每日进度完成奖励
// type DayAward struct {
// 	ID        int                    `json:"id"`
// 	Process   uint8                  `json:"process"` // 进度 eg, 20,40,75,100
// 	Material  []*model.DropMaterial  `json:"material"`
// 	Equipment []*model.DropEquipment `json:"equipment"`
// 	Recieved  bool                   `json:"recieved"`
// }

// // DayTask 每日任务
// type DayTask struct {
// 	ID       uint8  `json:"id"`
// 	Order    uint8  `json:"order"`
// 	Type     uint8  `json:"type"`
// 	Text     string `json:"text"`
// 	Value    int    `json:"value"`    // 目标值
// 	Process  int    `json:"process"`  // 完成值，达标后显示目标值，不显示更多
// 	Reward   uint8  `json:"reward"`   // 奖励多少活跃度
// 	Recieved bool   `json:"recieved"` // 是否领取
// }

// // ResponsePlayerDayAwards 玩家的每日任务
// type ResponsePlayerDayAwards struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    PlayerDayAwardsData `json:"data"`
// 	// PlayerID int64 `json:"userId"`
// 	// Day          string      `json:"day"`
// 	// Process      int64       `json:"process"`
// 	// TaskAward    []*DayTask  `json:"taskAward"`    // 任务列表
// 	// ProcessAward []*DayAward `json:"processAward"` // 进度奖励列表
// }

// type PlayerDayAwardsData struct {
// 	Day          int64              `json:"day"`
// 	Process      int                `json:"process"`
// 	TaskAward    []TaskAwardItem    `json:"taskAward"`    // 任务列表 [id,recieved]
// 	ProcessAward []ProcessAwardItem `json:"processAward"` // 进度奖励列表 [id,recieved,max,val]
// }

// type ProcessAwardItem struct {
// 	ID       int `json:"id"`   // 进度奖赏ID
// 	Recieved int `json:"type"` // 是否领取，0 未 1 已
// }

// type TaskAwardItem struct {
// 	ID       int `json:"id"`    // 任务奖赏ID
// 	Recieved int `json:"type"`  // 是否领取，0 未 1 已
// 	Value    int `json:"max"`   // 最大值
// 	Process  int `json:"count"` // 当前进度
// }

// // DayTaskProcess 领取每日任务的活跃度奖励
// type DayTaskProcess struct {
// 	PlayerID   int64  `json:"userId"`
// 	TaskID     int    `json:"taskId"`
// 	Day        string `json:"day"` // 2022-02-22
// 	Level      int    `json:"level"`
// 	ClientPlat string `json:"clientPlat"`
// }

// // ResponseDayTaskProcess resp
// type ResponseDayTaskProcess struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg"`
// }

// type AwardData struct {
// 	ServerTime int64                  `json:"serverTime"` //服务器时间
// 	Equipments []*model.DropEquipment `json:"equipments"` //增加的装备
// 	Materials  []*model.DropMaterial  `json:"restores"`   //增加的材料
// }

// // DayTaskAward 领取每日进度的奖励
// type DayTaskAward struct {
// 	PlayerID   int64  `json:"userId"`
// 	AwardID    int    `json:"awardId"`
// 	Day        string `json:"day"` // 2022-02-22
// 	Level      int    `json:"level"`
// 	ClientPlat string `json:"clientPlat"`
// }

// // ResponseDayTaskAward resp
// type ResponseDayTaskAward struct {
// 	ErrCode int       `json:"errCode"`
// 	Msg     string    `json:"msg"`
// 	Data    AwardData `json:"data"`
// }

// // 扫荡关卡
// type MopUpChapter struct {
// 	PlayerID   int64 `json:"userId"`
// 	ChapterID  uint  `json:"activeId"`
// 	Difficulty int   `json:"difficulty"` //普通 困难模式
// 	Stamina    int   `json:"stamina"`    //花费体力
// }

// type ResponseMopUpChapter struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    MopUpChapterData `json:"data"`
// }

// type MopUpChapterData struct {
// 	Level            int                    `json:"userLevel"`
// 	Exp              int                    `json:"userExp"`
// 	Cost             []*model.DropMaterial  `json:"cost"`
// 	Equipments       []*model.DropEquipment `json:"equipments"` //增加的装备
// 	Materials        []*model.DropMaterial  `json:"restores"`   //增加的材料
// 	UserRewards      []*model.DropMaterial  `json:"userRewards"`
// 	UserRewardEquips []*model.DropEquipment `json:"userRewardsEquip"`
// 	StaminaInfo      MopUpStaminaInfo       `json:"staminaInfo"`
// 	PassRoom         *model.PlayerPassRoom  `json:"passRoom"`
// }

// type MopUpStaminaInfo struct {
// 	Stamina     int `json:"stamina"`     //剩余体力
// 	CostStamina int `json:"costStamina"` //消耗体力
// 	MaxStama    int `json:"maxStama"`
// 	CoolDown    int `json:"cd"`
// }

// type GiftCenterListData struct {
// 	DailyGiftCD int64 `json:"dailyGiftCd"`
// 	//RoleGiftCD   int64           `json:"roleGiftCd"`
// 	RoleDayGiftCD    int64            `json:"roleDayGiftCd"`   // 限时特惠 日分类CD
// 	RoleWeekGiftCD   int64            `json:"roleWeekGiftCd"`  // 限时特惠 周分类CD
// 	RoleMonthGiftCD  int64            `json:"roleMonthGiftCd"` // 限时特惠 月分类CD
// 	AccPayGiftCD     int64            `json:"accPayGiftCD"`
// 	AccCostDiamondCD int64            `json:"accCostDiamondCD"`
// 	DailyGift        []int64          `json:"dailyGift"`
// 	RoleGift         map[int64]int64  `json:"roleGift"` // 限时特惠{礼包ID:礼包CD}
// 	InviteGift       []int64          `json:"inviteGift"`
// 	NewerGift        []int64          `json:"newerGift"`
// 	LuckDrawGift     []int            `json:"luckDrawGift"`
// 	AccPayGift       []int64          `json:"accPayGift"`
// 	GrowthGift       []int64          `json:"growthGift"`
// 	DayNGift         []int64          `json:"dayNGift"`
// 	WeekendGift      *WeekendGiftData `json:"weekendGift"`
// }

// // 福利中心
// type GiftCenter struct {
// 	PlayerID   int64  `json:"userId"`
// 	Level      int    `json:"level"`
// 	ClientPlat string `json:"clientPlat"`
// 	// Ios      int   `json:"ios"`
// 	// Level    int   `json:"level"`
// 	// Open     int   `json:"open"`
// }

// type ResponseGiftCenter struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    GiftCenterData `json:"data"`
// }

// type GiftCenterData struct {
// 	List *GiftCenterListData `json:"list"`
// 	Buys *GiftCenterBuysData `json:"buys"`
// }

// type GiftCenterBuysData struct {
// 	FirstPay          map[int64]int     `json:"firstPay"`        //首冲 新手
// 	DailyGift         map[int64]int     `json:"dailyGift"`       // 每日
// 	RoleGift          map[int64]int     `json:"roleGift"`        //角色 限时
// 	InviteGift        map[int64]int     `json:"inviteGift"`      //邀请
// 	AccPayGift        []int64           `json:"accPayGift"`      //累计充值领取记录
// 	AccPay            int64             `json:"accPay"`          //累计充值金额
// 	AccCostReceived   []int             `json:"accCostReceived"` //累计消费领取记录
// 	AccCostDiamond    int64             `json:"accCostDiamond"`  //累计消费钻石数量
// 	InviteNum         int               `json:"inviteNum"`
// 	LuckDrawCD        int64             `json:"luckDrawCD"`
// 	LuckDrawSuperGift int               `json:"luckDrawSuper"` // 用户秘宝id
// 	LuckDrawNum       int               `json:"luckDrawNum"`   // 今日购买次数
// 	LuckNum           int               `json:"luckNum"`       // 幸运值
// 	Growth            *model.GrowthGift `json:"growth"`        // 成长基金礼包
// 	SpecialBuy        *SpecialBuy       `json:"specialBuy"`    // 尊享特购
// 	WxMpGift          bool              `json:"wxMpGift"`      //微信公众号礼包
// 	WeekendGift       map[int64]int     `json:"weekendGift"`   // 周末礼包
// }

// // 更新限时礼包购买信息
// type UpdataRoleGoods struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseUpdataRoleGoods struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    map[int64]int64 `json:"data"`
// }

// type SpecialBuy struct {
// 	GiftId      int64 `json:"giftId"`      // 礼包ID
// 	ReceivedDay int64 `json:"receivedDay"` // 已领取天数 0：代表未购买
// 	NextCD      int64 `json:"nextCD"`      // 下一天可领取礼包CD，所有礼包领完以后固定返回-1
// }

// // WeekendGift 周末礼包
// type WeekendGift struct {
// 	PlayerID int64 `json:"userId"`
// 	Ios      int   `json:"ios"`
// 	Level    int   `json:"level"`
// 	Open     int   `json:"open"`
// }

// type ResponseWeekendGift struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *WeekendGiftData `json:"data"`
// }

// type WeekendGiftData struct {
// 	FreeGoodsId int64           `json:"freeGoodsId"` // 免费礼包ID
// 	Gifts       map[int64]int64 `json:"gifts"`       // map[礼包ID]剩余数量
// 	StartCD     int64           `json:"startCD"`     // 开始CD
// 	EndCD       int64           `json:"endCD"`       // 结束CD
// }

// type InviteNotfiy struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    InviteNotfiyData `json:"data"`
// }

// type InviteNotfiyData struct {
// 	InviteGift map[int64]int `json:"inviteGift"` //领取记录
// 	InviteNum  int           `json:"inviteNum"`  //邀请总数
// }

// // 福利中心 每日免费礼包
// type DailyFreeGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	Level      int    `json:"level"`
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseDailyFreeGift struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    []*model.DropMaterial `json:"data"`
// }

// // 免费礼包
// type HappyFreeGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	Level      int    `json:"level"`
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseHappyFreeGift struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    []*model.DropMaterial `json:"data"`
// }

// // 购买非现金充值钥匙礼包
// type BoxKeyGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }
// type BoxKeyGiftData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"` // 剩余时间
// 	Num     int   `json:"num"`
// }

// type ResponseBoxKeyGift struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    []*BoxKeyGiftData `json:"data"`
// }

// // 购买非现金充值钥匙礼包
// type BuyBoxKeyNoPayGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	CostType   int    `json:"costType"` // 广告类型 0：免费 234：广告 6：钻石
// 	GoodsId    int64  `json:"goodsId"`
// 	BuyNum     int    `json:"buyNum"` //购买几次道具
// 	ClientPlat string `json:"clientPlat"`
// 	// BoxType  int   `json:"boxType"` // 0白银 1黄金
// }

// type BuyBoxKeyNoPayGiftData struct {
// 	GoodsId  int64                 `json:"goodsId"`
// 	Num      int                   `json:"num"`
// 	Material []*model.DropMaterial `json:"material"`
// 	Cost     []*model.DropMaterial `json:"cost"`
// 	CD       int                   `json:"cd"`
// }

// type ResponseBuyBoxKeyNoPayGift struct {
// 	ErrCode int                     `json:"errCode"`
// 	Msg     string                  `json:"msg,omitempty"`
// 	Data    *BuyBoxKeyNoPayGiftData `json:"data"`
// }

// // 购买礼包
// type BuyNotPayGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	CostType   int    `json:"costType"` // 广告类型 234：广告 6：钻石
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type BuyActNoPayGiftData struct {
// 	GoodsId    int64                  `json:"goodsId"`
// 	Num        int                    `json:"num"`
// 	Material   []*model.DropMaterial  `json:"material"`
// 	Cost       []*model.DropMaterial  `json:"cost"`
// 	Equipments []*model.DropEquipment `json:"eqipments"`
// 	CD         int                    `json:"cd"`
// }

// type ResponseBuyNotPayGift struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *BuyActNoPayGiftData `json:"data"`
// }

// // 元旦礼包
// type YuanDanGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type GoodsCDNum struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"`  // 剩余CD
// 	Num     int   `json:"num"` // 可购买次数
// }

// type ResponseYuanDanGift struct {
// 	ErrCode int           `json:"errCode"`
// 	Msg     string        `json:"msg,omitempty"`
// 	Data    []*GoodsCDNum `json:"data"`
// }

// // 新年礼包
// type NewYearGiftV24 struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type GiftDayLimitData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"`  // 购买剩余时间
// 	Num     int   `json:"num"` // 可购次数
// }

// type ResponseNewYearGiftV24 struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    []*GiftDayLimitData `json:"data"`
// }

// // 元宵礼包
// type NewFifteenGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type NewFifteenGiftData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"` // 剩余时间
// 	Num     int   `json:"num"`
// }

// type ResponseNewFifteenGift struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    []*NewFifteenGiftData `json:"data"`
// }

// // 女神节礼包
// type Lady38Gift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type NewLady38GiftData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"` // 剩余时间
// 	Num     int   `json:"num"`
// }

// type ResponseLady38Gift struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    []*NewLady38GiftData `json:"data"`
// }

// // 清明节礼包
// type QingMingGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type QingMingGiftData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"` // 剩余时间
// 	Num     int   `json:"num"`
// }

// type ResponseQingMingGift struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    []*QingMingGiftData `json:"data"`
// }

// // 端午节礼包
// type DragonBoatGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type NewDragonBoatGiftData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"` // 剩余时间
// 	Num     int   `json:"num"`
// }

// type ResponseDragonBoatGift struct {
// 	ErrCode int                      `json:"errCode"`
// 	Msg     string                   `json:"msg,omitempty"`
// 	Data    []*NewDragonBoatGiftData `json:"data"`
// }

// // 七夕礼包
// type QiXiGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type NewQiXiGiftData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"` // 剩余时间
// 	Num     int   `json:"num"`
// }

// type ResponseQiXiGift struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    []*NewQiXiGiftData `json:"data"`
// }

// // 国庆礼包
// type NationalGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseNationalGift struct {
// 	ErrCode int                    `json:"errCode"`
// 	Msg     string                 `json:"msg,omitempty"`
// 	Data    []*NewNationalGiftData `json:"data"`
// }

// type NewNationalGiftData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	CD      int   `json:"cd"` // 剩余时间
// 	Num     int   `json:"num"`
// }

// // 回归礼包
// type ReturneGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseReturneGift struct {
// 	ErrCode int           `json:"errCode"`
// 	Msg     string        `json:"msg,omitempty"`
// 	Data    []*GoodsCDNum `json:"data"`
// }

// // 开服礼包
// type NewServerActGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type NewServerActGiftData struct {
// 	GoodsId int64 `json:"goodsId"`
// 	Num     int   `json:"num"` // 可购买次数
// 	CD      int   `json:"cd"`  // 剩余CD
// }

// type ResponseNewServerActGift struct {
// 	ErrCode int                     `json:"errCode"`
// 	Msg     string                  `json:"msg,omitempty"`
// 	Data    []*NewServerActGiftData `json:"data"`
// }

// type NewerBox struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// 	Level      int64  `json:"level"`
// }

// type PlayerNewerBoxData struct {
// 	GoodsId     int64 `json:"goodsId"`     // 礼包id
// 	ReceivedDay []int `json:"receivedDay"` // 已经领取
// 	Day         int   `json:"curDay"`      //  可以领取到那一天
// }

// // 礼包总数据
// type NewBoxData struct {
// 	NowTime       int64          `json:"nowtime"`       // 当前服务器时间
// 	NewerBoxData  *NewerBoxData  `json:"NewerBoxData"`  // 新手充
// 	ChanceBoxGift *ChanceBoxGift `json:"chanceBoxGift"` // 机缘宝盒
// }

// type NewerBoxData struct {
// 	EndCd       int64                 `json:"endCd"`       // 结束时间
// 	ReceivedDay []*PlayerNewerBoxData `json:"receivedDay"` // 礼包领取情况
// }

// type ChanceBoxGift struct {
// 	BuyCount int64 `json:"buyCount"` //购买次数
// 	EndCD    int64 `json:"endCD"`    //活动倒计时
// }

// type ResponseNewerBox struct {
// 	ErrCode int         `json:"errCode"`
// 	Msg     string      `json:"msg,omitempty"`
// 	Data    *NewBoxData `json:"data"`
// }

// // 领取首充奖励
// type NewerBoxReward struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// 	GoodId     int64  `json:"goodId"`
// 	Day        int    `json:"day"`
// }

// type NewerBoxRewardData struct {
// 	Materials  []*model.DropMaterial  `json:"materials"`
// 	Equipments []*model.DropEquipment `json:"eqipments"`
// 	Roles      []*DropedRoleDate      `json:"roles"`
// 	GoodId     int64                  `json:"goodId"`
// 	Day        int                    `json:"day"`
// }

// type ResponseNewerBoxReward struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *NewerBoxRewardData `json:"data"`
// }

// // 服务端用
// type NewerBoxRewardIs struct {
// 	RpcRequestMsg
// 	PlayerId   int64                 `json:"userId"`
// 	Materials  []*model.DropMaterial `json:"materials"` //奖励
// 	Equipments []int64               `json:"eqipments"`
// 	Roles      []int64               `json:"roles"`
// }

// type ResponseNewerBoxRewardIs struct {
// 	RpcResponseMsg
// 	Equipments []*model.DropEquipment `json:"eqipments"`
// 	Roles      []*DropedRoleDate      `json:"roles"`
// }

// type NewServerActivity struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// 	Line       int    `json:"line"`
// }

// type NewServerCdData struct {
// 	StartCd int64 `json:"startCd"` // 开始时间
// 	EndCd   int64 `json:"endCd"`   // 结束时间
// }

// type NewServerActivityData struct {
// 	StartCd         int64            `json:"startCd"`   // 开始时间
// 	EndCd           int64            `json:"endCd"`     // 结束时间
// 	GiftCdData      *NewServerCdData `json:"giftName"`  // 礼包cd
// 	PlayerBoxCdData *NewServerCdData `json:"playerBox"` // 抽奖cd
// 	TiliCdData      *NewServerCdData `json:"tili"`      // 体力cd
// 	DealerCdData    *NewServerCdData `json:"dealer"`    // 商人cd
// 	Received        []int64          `json:"received"`  // 免费礼包是否领取
// }

// type ResponseNewServerActivity struct {
// 	ErrCode int                    `json:"errCode"`
// 	Msg     string                 `json:"msg,omitempty"`
// 	Data    *NewServerActivityData `json:"data"`
// }

// // 领取新服奖励
// type NewServerActReward struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseNewServerActReward struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    []*model.DropMaterial `json:"data"`
// }

// // 服务端用
// type NewServerActRewardIs struct {
// 	RpcRequestMsg
// 	PlayerId  int64                 `json:"userId"`
// 	Materials []*model.DropMaterial `json:"materials"` //奖励
// }

// type ResponseNewServerActRewardIs struct {
// 	RpcResponseMsg
// }

// // 购买新服活动礼包
// type NewServerActBuyNotPayGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	CostType   int    `json:"costType"` // 广告类型 234：广告 6：钻石
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseNewServerActBuyNotPayGift struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *BuyActNoPayGiftData `json:"data"`
// }

// // 购买非现金无尽通行证
// type BuyNotPayEndLessPass struct {
// 	PlayerID   int64  `json:"userId"`
// 	CostType   int    `json:"costType"` // 广告类型 234：广告 6：钻石
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type BuyActNoPayEndLessPassData struct {
// 	GoodsId  int64                 `json:"goodsId"`
// 	Material []*model.DropMaterial `json:"material"`
// 	Cost     []*model.DropMaterial `json:"cost"`
// }

// type ResponseBuyNotPayEndLessPass struct {
// 	ErrCode int                         `json:"errCode"`
// 	Msg     string                      `json:"msg,omitempty"`
// 	Data    *BuyActNoPayEndLessPassData `json:"data"`
// }

// // 福利中心 邀请礼包
// type InviteGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	Level      int    `json:"level"`
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseInviteGift struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    []*model.DropMaterial `json:"data"`
// }

// // 累计充值礼包
// type AccPayGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	Level      int    `json:"level"`   //人物等级
// 	GoodsId    int64  `json:"goodsId"` //领取哪一档
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseAccPayGift struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    []*model.DropMaterial `json:"data"`
// }

// // 累计充值礼包
// type GrowthGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	Level      int    `json:"level"`   //人物等级
// 	Tab        int    `json:"tab"`     //页签
// 	Process    int    `json:"process"` //领取哪一项
// 	Goods      []int  `json:"sub"`     //领取哪一档 0 1 2
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseGrowthGift struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *GrowthGiftData `json:"data"`
// }

// type GrowthGiftData struct {
// 	Process   int                   `json:"process"` //进度
// 	Goods     []int                 `json:"sub"`     //领取哪一档
// 	Materials []*model.DropMaterial `json:"materials"`
// }

// // 累计消耗钻石
// type AddCostDiamondIs struct {
// 	PlayerId    int64  `json:"userId"`
// 	StartTs     int64  `json:"startTs"`
// 	CostDiamond int    `json:"taskData"`
// 	ClientPlat  string `json:"clientPlat"`
// }

// // 领取累计消耗钻石奖励
// type ReceiveAccCostRewards struct {
// 	PlayerID   int64  `json:"userId"`
// 	RewardId   int    `json:"rewardId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ReceiveAccCostRewardsData struct {
// 	RewardId int                   `json:"rewardId"`
// 	Material []*model.DropMaterial `json:"material"`
// }

// type ResponseReceiveAccCostRewards struct {
// 	ErrCode int                        `json:"errCode"`
// 	Msg     string                     `json:"msg,omitempty"`
// 	Data    *ReceiveAccCostRewardsData `json:"data"`
// }

// // SpecialGift 领取尊享特惠礼包
// type SpecialGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseSpecialGift struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *SpecialGiftData `json:"data"`
// }

// type SpecialGiftData struct {
// 	Materials  []*model.DropMaterial  `json:"materials"`
// 	Equipments []*model.DropEquipment `json:"equipments"`
// }

// // SpecialGiftSum 尊享特惠礼包摘要
// type SpecialGiftSum struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseSpecialGiftSum struct {
// 	ErrCode int         `json:"errCode"`
// 	Msg     string      `json:"msg,omitempty"`
// 	Data    *SpecialBuy `json:"data"`
// }

// // 看广告
// type SeeAd struct {
// 	PlayerID   int64  `json:"userId"`
// 	CostType   int    `json:"costType"` //2：广告券 3：看广告
// 	Scene      uint   `json:"scene"`    //场景 没起作用
// 	ClientPlat string `json:"clientPlat"`
// 	FuncType   int    `json:"costDiamondType"` // 功能类型 0 章节、活动刷新技能 1 复活  2 技能刷新  远征 3 暗影突袭 4 无尽大转盘 5 双人复活
// }

// type ResponseSeeAd struct {
// 	ErrCode int       `json:"errCode"`
// 	Msg     string    `json:"msg,omitempty"`
// 	Data    SeeAdData `json:"data"`
// }

// type SeeAdData struct {
// 	Cost      []*model.DropMaterial `json:"cost"`
// 	Materials []*model.DropMaterial `json:"materials"`
// 	CostType  int                   `json:"costType"`
// }

// // // IOS支付控制
// // type IosPayOpen struct {
// // 	PlayerID int64 `json:"userId"`
// // 	Level    int   `json:"level"`
// // }

// // type ResponseIosPayOpen struct {
// // 	ErrCode int    `json:"errCode"`
// // 	Msg     string `json:"msg,omitempty"`
// // 	Data    int    `json:"data"` //0:未开放； 1：开放
// // }

// // 支付方式
// type PayMethod struct {
// 	PlayerID int64 `json:"userId"`
// 	// Level    int   `json:"level"`
// }

// type ResponsePayMethod struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *model.PayMethodData `json:"data"`
// }

// // 随机角色
// type RandRole struct {
// 	PlayerID int64 `json:"userId"`
// 	Guide    int   `json:"guide"` // 新手引导
// 	// DrawType   int    `json:"drawType"` // 0 单抽 1 多抽
// 	ClientPlat string `json:"clientPlat"`
// 	GoodsType  int    `json:"goodsType"` // 商品类型
// 	// Count      int    `json:"count"`     // 1-单抽  10-十连抽（高级角色券)
// 	// CostType   int    `json:"costType"`  // 0:配置(钻石或金币); 1:钥匙
// }

// type ResponseRandRole struct {
// 	ErrCode int           `json:"errCode"`
// 	Msg     string        `json:"msg,omitempty"`
// 	Data    *RandRoleData `json:"data"`
// }

// type DropedRoleMaterialDate struct {
// 	Materials *model.DropMaterial `json:"materials"`
// 	Status    int                 `json:"status"` // 0 碎片 1 由角色转换成的碎片
// }

// type RandRoleData struct {
// 	Materials     []*DropedRoleMaterialDate `json:"materials"`
// 	Roles         []*model.DropedRole       `json:"roles"`
// 	Cost          []*model.DropMaterial     `json:"cost"`
// 	Score         []*model.DropMaterial     `json:"score"`
// 	AccNum        int                       `json:"accNum"`
// 	DrawRoles     []*model.DropedRole       `json:"drawRoles"`
// 	DrawMaterials []*DropedRoleMaterialDate `json:"drawMaterials"`
// 	DrawNum       int                       `json:"drawNum"` // 抽奖次数
// }

// type DropedRoleDate struct {
// 	Materials *model.DropMaterial `json:"materials"`
// 	RoleID    int64               `json:"roleId"` // 有值代表是完整角色
// }

// // 选择连抽奖励
// type ChangeDrawRole struct {
// 	PlayerID   int64  `json:"userId"`
// 	RoleID     int64  `json:"roleId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ChangeDrawRoleData struct {
// 	RoleID        int64                     `json:"roleId"`
// 	DrawRoles     []*model.DropedRole       `json:"drawRoles"`
// 	DrawMaterials []*DropedRoleMaterialDate `json:"drawMaterials"`
// 	DrawNum       int                       `json:"drawNum"` // 抽奖次数
// }

// type ResponseChangeDrawRole struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *ChangeDrawRoleData `json:"data"`
// }

// // 角色兑换列表
// type RoleExchangeList struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseRoleExchangeList struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *RoleExchangeListData `json:"data"`
// }

// type RoleExchangeListData struct {
// 	Score     int64         `json:"score"`
// 	Exchanges map[int64]int `json:"exchanges"`
// }

// // 角色兑换
// type RoleExchange struct {
// 	PlayerID   int64  `json:"userId"`
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseRoleExchange struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *RoleExchangeData `json:"data"`
// }

// type RoleExchangeData struct {
// 	GoodsId  int64               `json:"goodsId"`
// 	Cost     *model.DropMaterial `json:"cost"`
// 	Material *model.DropMaterial `json:"material"`
// }

// type RoleExchangeIs struct {
// 	PlayerID int64               `json:"userId"`
// 	Material *model.DropMaterial `json:"material"`
// }

// // 回收角色碎片
// type RecoverRoleFragment struct {
// 	PlayerID   int64               `json:"userId"`
// 	Cost       *model.DropMaterial `json:"cost"`
// 	ClientPlat string              `json:"clientPlat"`
// }

// type ResponseRecoverRoleFragment struct {
// 	ErrCode int                      `json:"errCode"`
// 	Msg     string                   `json:"msg,omitempty"`
// 	Data    *RecoverRoleFragmentData `json:"data"`
// }

// type RecoverRoleFragmentData struct {
// 	Cost     *model.DropMaterial `json:"cost"`
// 	Material *model.DropMaterial `json:"material"`
// }

// type RecoverRoleFragmentIs struct {
// 	PlayerID int64                 `json:"userId"`
// 	Cost     []*model.DropMaterial `json:"cost"`
// }

// // type ReplaceRole struct {
// // 	Role     int `json:"role"`
// // 	Material *model.DropMaterial
// // }

// type PlayerAdsStatus struct {
// 	PlayerID int64 `json:"userId"`
// }

// type SuperCity struct {
// 	AdState int `json:"adState"` // 0 未知 1 是北上广深 2 非
// }

// type ResponsePlayerAdsStatus struct {
// 	ErrCode int       `json:"errCode"`
// 	Msg     string    `json:"msg,omitempty"`
// 	Data    SuperCity `json:"data"`
// }

// // 抽奖
// type LuckDraw struct {
// 	PlayerID   int64  `json:"userId"`
// 	CostType   int    `json:"costType"` //2：广告券 3：看广告 4:底部广告 0:免费
// 	ClientPlat string `json:"clientPlat"`
// }

// type LuckDrawData struct {
// 	Cd        int64                  `json:"cd"`       // 冷却倒计时
// 	CostType  int                    `json:"costType"` //2：广告券 3：看广告
// 	BuyTimes  int                    `json:"buyTimes"`
// 	Position  int                    `json:"position"`
// 	LuckyNum  int                    `json:"luckyNum"` // 幸运值
// 	Cost      []*model.DropMaterial  `json:"cost"`
// 	Materials []*model.DropMaterial  `json:"marterials"`
// 	Equipment []*model.DropEquipment `json:"equipment"`
// 	ADCount   int                    `json:"adCount"`
// }

// type ResponseLuckDraw struct {
// 	ErrCode int          `json:"errCode"`
// 	Msg     string       `json:"msg,omitempty"`
// 	Data    LuckDrawData `json:"data"`
// }

// // 抽奖
// type LuckDrawExchange struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type LuckDrawExchangeData struct {
// 	Materials []*model.DropMaterial  `json:"marterials"`
// 	Equipment []*model.DropEquipment `json:"equipment"`
// 	NextSuper int                    `json:"super"`    // 下次购买的秘宝
// 	LuckyNum  int                    `json:"luckyNum"` // 当前幸运值
// }

// type ResponseLuckDrawExchange struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    LuckDrawExchangeData `json:"data"`
// }

// // 产出
// // 获取玩家章节信息
// type PlayerChapter struct {
// 	PlayerID   int64 `json:"userId"`
// 	ChapterID  uint  `json:"chapterId"`
// 	Difficulty int   `json:"difficulty"`
// 	Floor      int   `json:"floor"`  // 关卡 爬塔子关卡
// 	RoomID     int   `json:"roomId"` // 起始房间id
// 	// RoomCount   int     `json:"roomCount"`   // 返回房间数
// 	PlayerLevel int     `json:"playerLevel"` // 玩家等级
// 	Reconnect   bool    `json:"reconnect"`   // 是否重连
// 	Roles       []int64 `json:"roleId"`      // 角色id
// 	CreateTime  int64   `json:"createTime"`  //重连时，填写创建时间；新开时，填写0
// 	ClientPlat  string  `json:"clientPlat"`
// 	SyncGroupId int64   `json:"matchRoomId,string"` //多人战时，填写同步分组ID; 单人时填写0
// 	//以下服务器之间用，客户端不传
// 	BodyParts               [6]*model.BodyPart2              `json:"body"` //身体部位
// 	Talents                 map[int]int                      `json:"talents"`
// 	Chapters                [][]uint                         `json:"chapters"`
// 	RoleCoinAddition        []*model.RoleSkillAddition       `json:"roleSkill"`
// 	TreasuresCoinAddition   []*model.TreasuresSkillAddition  `json:"treasureSkill"`
// 	HeadFramesSkillAddition []*model.HeadFramesSkillAddition `json:"headFramesSkill"`
// 	AllRoles                []int64                          `json:"allRoles"`
// 	OrderRoles              []int64                          `json:"orderRoles"`
// 	CommbatEffe             int64                            `json:"commbatEffe"`
// 	Treasures               []*model.RolesTreasures          `json:"treasures"` //宝物
// 	RoleCollocate           []int                            `json:"roleCollocate"`
// 	HeadFrames              []int                            `json:"headFrames"`   // 头像头像框
// 	VipBuffID               []int64                          `json:"VipID"`        // 进入游戏生效的vipid
// 	RoleTreasure            []*model.RoleTreasureInfo        `json:"roleTreasure"` //专属宝物
// }

// type PlayerChapterRoom struct {
// 	RoomId         int                  `json:"roomId"` // 房间id
// 	SceneID        int                  `json:"sceneID"`
// 	Monster        []*model.MonsterTeam `json:"monster"`        // 怪物信息
// 	RandomBox      *model.ChapterBox    `json:"randomBox"`      // 随机箱子
// 	Ghost          *model.RoomGhost     `json:"ghost"`          // 墓鬼，赌鬼，怨鬼
// 	SecretRoomId   int                  `json:"secretRoomId"`   // 秘境房间id
// 	RoomType       [][]int              `json:"roomType"`       // 房间类型
// 	EndLessLimitId int                  `json:"endLessLimitId"` // 房间限制
// 	GhostExchange  *model.GhostExchange `json:"exchange"`       // 鬼兑换信息
// }

// type PlayerChapterData struct {
// 	ReconnectCount int                        `json:"reconnectCount"`
// 	CreateTime     int64                      `json:"createTime"`    //创建时间
// 	MapInfo        map[int]*PlayerChapterRoom `json:"mapInfo"`       // 地图信息
// 	AllRandBox     map[int]int64              `json:"allRandBox"`    //所有随机箱子 房间ID:箱子ID（暂时只有主线章节需要用到）
// 	RandBoxReward  []int                      `json:"randBoxReward"` // 随机箱子领取记录 房间ID
// 	WatchAdvTimes  int64                      `json:"watchAdvTimes"` // 累计观看次数
// 	VipBuffID      []int64                    `json:"VipID"`         // 进入游戏生效的vipid
// }

// type ResponsePlayerChapter struct {
// 	ErrCode int               `json:"errCode"`
// 	Data    PlayerChapterData `json:"data"`
// }

// // 鬼、箱子，宝箱，走个新接口
// type PlayerChapterGhostAndBox struct {
// 	PlayerID int64 `json:"userId"`

// 	RoomId int `json:"roomId"`

// 	Type       int     `json:"type"` //1:箱子 2：随机箱子 3：鬼
// 	Value      []int64 `json:"value"`
// 	ClientPlat string  `json:"clientPlat"`
// 	//箱子 value[id, TalmapID]
// 	//随机箱子
// 	//鬼：value[购买方式，商品ID]
// 	// 鬼类型： 1：墓鬼 2：赌鬼 3：怨鬼

// 	//ChapterID  int   `json:"chapterId"`
// 	//Difficulty int   `json:"difficulty"`
// 	// Boxes   [][]int `json:"boxes"`   // [箱子id，telmapID]
// 	// RandBox int     `json:"randBox"` // 随机箱子id
// 	// Ghost   int     `json:"ghosts"`  // 赌鬼：无广告 1,有广告2。 墓鬼：鬼内容的id
// }

// type PlayerChapterGhostAndBoxData struct {
// 	Materials []*model.DropMaterial `json:"materials"` // 得的材料
// 	Cost      []*model.DropMaterial `json:"cost"`      // 花费
// }
// type ResponsePlayerChapterGhostAndBox struct {
// 	ErrCode int                          `json:"errCode"`
// 	Data    PlayerChapterGhostAndBoxData `json:"data"`
// }

// // 玩家上报房间已清理完毕 过关
// type PlayerChapterMonster struct {
// 	PlayerID    int64         `json:"userId"`
// 	RoomID      int           `json:"roomId"`
// 	PassChapter bool          `json:"passChapter"` // 是否通关 秘境使用
// 	NextRoomId  int           `json:"nextRoomId"`
// 	Skills      map[int]int   `json:"skill"` //所有已选技能
// 	Roles       []*BattleRole `json:"role"`  //角色属性
// 	ClientPlat  string        `json:"clientPlat"`
// 	SyncGroupId int64         `json:"matchRoomId,string"` //多人战时，填写同步分组ID; 单人时填写0
// 	DpsOutput   int64         `json:"dpsOutput"`          // 玩家总输出伤害

// 	//ChapterID   int   `json:"chapterId"`
// 	//Difficulty  int   `json:"difficulty"`
// 	//PlayerLevel int   `json:"playerLevel"`
// }

// // type BattleRole struct {
// // 	RoleId     int64    `json:"roleId"`
// // 	State      int      `json:"state"` //0死亡 1休息 2出站
// // 	BattleAttr RoleItem `json:"attr"`
// // }

// type PlayerChapterMonsterData struct {
// 	// Materials []*model.DropMaterial `json:"materials"` // 得的材料
// 	// Cost      []*model.DropMaterial    `json:"cost"`      // 花费
// 	RoomInfo   *PlayerChapterRoom `json:"roomInfo"`
// 	CheckToken string             `json:"checkToken"` // 当前房间随机种子 创建房间或者过房间发送客户端
// }
// type ResponsePlayerChapterMonster struct {
// 	ErrCode int                      `json:"errCode"`
// 	Data    PlayerChapterMonsterData `json:"data"`
// }

// type PlayerChapterCheck struct {
// 	CheckResult int    `json:"errCode"`
// 	Msg         string `json:"msg,omitempty"`
// }

// // 登陆后上报本地缓存关卡
// type ReportCacheChapter struct {
// 	PlayerID   int64 `json:"userId"`
// 	ChapterID  uint  `json:"chapterId"`
// 	Difficulty int   `json:"difficulty"`
// 	RoomId     int   `json:"roomId"`
// 	CreateTime int64 `json:"createTime"` // 秒级时间戳
// }

// type ReportCacheChapterData struct {
// 	Exist          bool `json:"exist"` // 1 表示服务端有该记录，其他 表示没有/已清理；
// 	ReconnectCount int  `json:"reconnectCount"`
// }

// type ResponseReportCacheChapter struct {
// 	ErrCode int                    `json:"errCode"` // 为0
// 	Data    ReportCacheChapterData `json:"data"`
// }

// // 爬梯通关情况
// type ClimbFloorSummary struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseClimbFloorSummary struct {
// 	ErrCode int                    `json:"errCode"` // 为0
// 	Msg     string                 `json:"msg,omitempty"`
// 	Data    *ClimbFloorSummaryData `json:"data"`
// }

// type ClimbFloorSummaryData struct {
// 	MaxFloor int         `json:"maxFloor"` // 为0
// 	Floors   map[int]int `json:"floors"`   //每关卡已挑战次数
// 	UseCount int         `json:"haveCount"`
// 	// BuyCount int         `json:"buyCount"`
// 	// AdCount  int         `json:"adCount"`
// 	//DayBuyUse *model.DayBuyAdUse `json:"dayBuyUse"`
// 	//ChallengeCount int                `json:"haveCount"` //磁石购买信息
// }

// // 挑战某一关
// type EnterClimbFloor struct {
// 	PlayerID int64 `json:"userId"`
// 	Floor    int   `json:"floor"`
// 	CostType int   `json:"costType"` // 0：次数 1：磁石
// }

// type ResponseEnterClimbFloor struct {
// 	ErrCode int                  `json:"errCode"` // 为0
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *EnterClimbFloorData `json:"data"`
// }

// type EnterClimbFloorData struct {
// 	CostType int                   `json:"costType"` // 0：次数 1：磁石
// 	Floor    *model.DropMaterial   `json:"floor"`
// 	Cost     []*model.DropMaterial `json:"cost"`
// 	//DayBuyUse *model.DayBuyAdUse    `json:"dayBuyUse"`
// }

// // 扫荡某一关
// type MopClimbFloor struct {
// 	PlayerID int64 `json:"userId"`
// 	Floor    int   `json:"floor"`
// 	CostType int   `json:"costType"` // 0：次数 1：磁石
// }

// type ResponseMopClimbFloor struct {
// 	ErrCode int                `json:"errCode"` // 为0
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    *MopClimbFloorData `json:"data"`
// }

// type MopClimbFloorData struct {
// 	CostType  int                   `json:"costType"`  // 0：次数 1：磁石
// 	UseCount  int                   `json:"haveCount"` //剩余免费次数
// 	Floor     int                   `json:"floor"`     //挑战了几次
// 	Cost      []*model.DropMaterial `json:"cost"`
// 	Materials []*model.DropMaterial `json:"restores"` //增加的材料
// }

// // 购买星石
// type BuyLimitGoods struct {
// 	PlayerID   int64  `json:"userId"`
// 	CostType   int    `json:"costType"` //0:无广告 钻石 2：广告券 3：看广告 4:底部广告
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseBuyLimitGoods struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    *BuyLimitGoodsData `json:"data"`
// }

// type BuyLimitGoodsData struct {
// 	CostType      int                   `json:"costType"` //0:无广告 钻石 2：广告券 3：看广告 4:底部广告
// 	GoodsId       int64                 `json:"goodsId"`
// 	BuyCount      int                   `json:"buyCount"`
// 	AdCount       int                   `json:"adCount"`
// 	DoubleAdCount int                   `json:"doubleAdCount"` //剩余双倍广告数
// 	CD            int64                 `json:"cd"`
// 	Materials     []*model.DropMaterial `json:"materials"`
// 	Cost          []*model.DropMaterial `json:"cost"`
// }

// // 查询快捷购买项
// type QueryLimitGoods struct {
// 	PlayerID   int64  `json:"userId"`
// 	GoodsId    int64  `json:"goodsId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseQueryLimitGoods struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *QueryLimitGoodsData `json:"data"`
// }

// type QueryLimitGoodsData struct {
// 	GoodsId  int64 `json:"goodsId"`
// 	BuyCount int   `json:"buyCount"`
// 	AdCount  int   `json:"adCount"`
// 	CD       int64 `json:"cd"`
// }

// // 金榜题名排行
// type IdiomRank struct {
// 	PlayerId   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseIdiomRank struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    *IdiomRankData `json:"data"`
// }

// type IdiomRankData struct {
// 	RankList []*IdiomRankItem `json:"rankList"`
// 	SelfRank *IdiomRankItem   `json:"selfRank"`
// }

// type IdiomRankItem struct {
// 	PlayerID int64 `json:"-"` //不用传给客户端，但服务端要用
// 	Score    int   `json:"score"`
// 	Rank     int   `json:"rank"`
// 	// NickName   string            `json:"nickName"`
// 	// HeadImg    string            `json:"headImg"`
// 	CombatEffe   int64 `json:"combatEffe"`
// 	PersonalItem `json:"personalItem"`
// }

// // 金榜题名
// type IdiomActivity struct {
// 	PlayerId   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseIdiomActivity struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    *IdiomActivityData `json:"data"`
// }

// type IdiomActivityData struct {
// 	Id         int         `json:"Id"`       //活动ID
// 	RewardId   int         `json:"rewardId"` //奖励ID
// 	ActivityCD int64       `json:"cd"`       //活动CD
// 	Ink        *InkItem    `json:"ink"`      //墨水
// 	Score      *IdiomScore `json:"score"`    //积分
// 	HelpCD     int64       `json:"helpCd"`   //锦囊CD
// 	// Scene      *model.SceneState `json:"scene"` //通过关卡
// }

// type InkItem struct {
// 	Value     int   `json:"ink"`       //剩余墨水数
// 	BuyCount  int   `json:"buyCount"`  //钻石购买次数
// 	ADCount   int   `json:"adCount"`   //广告购买次数
// 	RecoverCD int64 `json:"recoverCD"` // 最后恢复时间
// 	AdCD      int64 `json:"adCD"`      // 最后看广告时间
// }

// type IdiomScore struct {
// 	DayScore int   `json:"dayScore"` //日积分
// 	Reward   []int `json:"reward"`   //领取箱子
// }

// // 开始闯关
// type StartIdiom struct {
// 	PlayerId   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// 	// SceneId  int   `json:"sceneId"`
// }

// type ResponseStartIdiom struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *StartIdiomData `json:"data"` //墨水
// }

// type StartIdiomData struct {
// 	SceneId      int       `json:"scene"`        //当前关卡
// 	SceneSum     int       `json:"sum"`          //已完成
// 	Ink          *InkItem  `json:"ink"`          //墨水
// 	IdiomRewards [][]int64 `json:"idiomRewards"` //完成成语的奖励
// }

// // 成语结算
// type IdiomSettle struct {
// 	PlayerId   int64  `json:"userId"`
// 	SceneId    int    `json:"sceneId"` // 场景ID
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseIdiomSettle struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *IdiomSettleData `json:"data"` //积分
// }

// type IdiomSettleData struct {
// 	Score    int `json:"score"`    //本次得分
// 	DayScore int `json:"dayScore"` //日积分
// }

// // 成语开宝箱
// type IdiomBox struct {
// 	PlayerId   int64  `json:"userId"`
// 	BoxIds     []int  `json:"boxId"` //领取箱子ID
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseIdiomBox struct {
// 	ErrCode int           `json:"errCode"`
// 	Msg     string        `json:"msg,omitempty"`
// 	Data    *IdiomBoxData `json:"data"`
// }

// type IdiomBoxData struct {
// 	BoxId     []int                 `json:"boxId"`     //领取箱子ID
// 	Materials []*model.DropMaterial `json:"materials"` //领取物品
// }

// // 墨水补给
// // 0：钻石 2：广告券 3：看广告 4:底部广告
// // 6：钻石 2：广告券 3：看广告 4:底部广告 0:免费
// type InkSupply struct {
// 	PlayerId   int64  `json:"userId"`
// 	CostType   int    `json:"type"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseInkSupply struct {
// 	ErrCode int            `json:"errCode"`
// 	Msg     string         `json:"msg,omitempty"`
// 	Data    *InkSupplyData `json:"data"`
// }

// type InkSupplyData struct {
// 	CostType  int                   `json:"costType"`
// 	Ink       *InkItem              `json:"ink"` //墨水
// 	Cost      []*model.DropMaterial `json:"cost"`
// 	Materials []*model.DropMaterial `json:"materials"`
// 	// EnableADCount int                   `json:"enableADCount"`
// }

// // 恢复墨水
// type RestoreInk struct {
// 	PlayerId   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseRestoreInk struct {
// 	ErrCode int      `json:"errCode"`
// 	Msg     string   `json:"msg,omitempty"`
// 	Data    *InkItem `json:"data"`
// }

// // 成语结算
// type IdiomReward struct {
// 	PlayerId   int64  `json:"userId"`
// 	SceneId    int    `json:"sceneId"` // 场景ID
// 	Rewards    []int  `json:"reward"`  // 成语奖励奖品索引 0，1，...
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseIdiomReward struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    []*model.DropMaterial `json:"data"` //积分
// }

// // 使用锦囊
// type IdiomUseHelp struct {
// 	PlayerId   int64  `json:"userId"`
// 	CostType   int    `json:"costType"` //2：广告券 3：看广告 6 钻石
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseIdiomUseHelp struct {
// 	ErrCode int               `json:"errCode"`
// 	Msg     string            `json:"msg,omitempty"`
// 	Data    *IdiomUseHelpData `json:"data"`
// }

// type IdiomUseHelpData struct {
// 	Cost      []*model.DropMaterial `json:"cost"`
// 	Materials []*model.DropMaterial `json:"materials"`
// 	CostType  int                   `json:"costType"`
// 	Cd        int64                 `json:"cd"`
// }

// // type IdiomRewardData struct {
// // 	Score    int `json:"score"`    //本次得分
// // 	DayScore int `json:"dayScore"` //日积分
// // }

// // // 使用锦囊
// // type UseHelp struct {
// // 	PlayerId int64 `json:"userId"`
// // }

// // type ResponseUseHelp struct {
// // 	ErrCode int    `json:"errCode"`
// // 	Msg     string `json:"msg,omitempty"`
// // }

// // NoviceDetails 获取任务详情
// type NoviceDetails struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseNoviceDetails struct {
// 	ErrCode int                `json:"errCode"`
// 	Msg     string             `json:"msg,omitempty"`
// 	Data    *NoviceDetailsData `json:"data"`
// }

// type NoviceDetailsData struct {
// 	UnlockDays int64                     `json:"unlockDays"` // 当前开启的任务天数
// 	CD         int64                     `json:"closeDown"`  // 活动关闭倒计时
// 	Integral   int64                     `json:"integral"`   // 积分
// 	Active     []*model.NoviceRewardItem `json:"active"`     // 活跃度任务进度
// 	Task       []*model.NoviceTaskItem   `json:"task"`       // 每天任务进度
// }

// // NoviceTaskAward 领取单个任务奖励
// type NoviceTaskAward struct {
// 	PlayerID int64 `json:"userId"`
// 	ID       int64 `json:"ID"`
// }

// type ResponseNoviceTaskAward struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    NoviceTaskAwardData `json:"data"`
// }

// type NoviceTaskAwardData struct {
// 	ServerTime  int64                  `json:"serverTime"`  //服务器时间
// 	ID          int                    `json:"id"`          // 任务id
// 	NewIntegral int64                  `json:"newIntegral"` // 更新后的总活跃度
// 	Equipments  []*model.DropEquipment `json:"equipments"`  //增加的装备
// 	Materials   []*model.DropMaterial  `json:"restores"`    //增加的材料
// }

// // NoviceActiveAward 领取活跃度奖励
// type NoviceActiveAward struct {
// 	PlayerID int64 `json:"userId"`
// 	ID       int64 `json:"ID"`
// }

// type ResponseNoviceActiveAward struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    NoviceActiveAwardData `json:"data"`
// }

// type NoviceActiveAwardData struct {
// 	ServerTime int64                  `json:"serverTime"` //服务器时间
// 	ID         int                    `json:"id"`         // 任务id
// 	Equipments []*model.DropEquipment `json:"equipments"` //增加的装备
// 	Materials  []*model.DropMaterial  `json:"restores"`   //增加的材料
// 	RoleId     int64                  `json:"roleId"`     // 增加的角色
// }

// // GemOneSynth 宝石一键合成
// type GemOneSynth struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseGemOneSynth struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *GemOneSynthData `json:"data"`
// }

// type GemOneSynthData struct {
// 	News  []*model.DropMaterial `json:"news"`  // 新获得材料
// 	Cost  []*model.DropMaterial `json:"cost"`  // 消耗材料
// 	Count int                   `json:"count"` // 合成次数
// }

// // 宝石升级 三合一
// type GemLevelUp struct {
// 	PlayerID int64 `json:"userId"`
// 	GemId    int64 `json:"gem"`
// }

// type ResponseGemLevelUp struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *GemLevelUpData `json:"data"`
// }

// type GemLevelUpData struct {
// 	News []*model.DropMaterial `json:"news"`
// 	Cost []*model.DropMaterial `json:"cost"`
// }

// // 宝石镶嵌
// type GemInlay struct {
// 	PlayerID int64 `json:"userId"`
// 	Part     int   `json:"part"`  //部位 1-6
// 	Index    int   `json:"index"` //套装位置 0-2
// 	Slot     int   `json:"slot"`  // 1-4
// 	GemId    int64 `json:"gem"`   //宝石ID
// }

// type ResponseGemInlay struct {
// 	ErrCode int           `json:"errCode"`
// 	Msg     string        `json:"msg,omitempty"`
// 	Data    *GemInlayData `json:"data"`
// }

// type GemInlayData struct {
// 	Part  int     `json:"part"`  //部位 1-6
// 	Slots []int64 `json:"slots"` // 1-4
// 	Index int     `json:"index"` //套装位置 0-2
// }

// // 宝石挖出
// type GemDigOut struct {
// 	PlayerID int64 `json:"userId"`
// 	Part     int   `json:"part"`  //部位 1-6
// 	Slot     int   `json:"slot"`  // 1-4
// 	Index    int   `json:"index"` //套装位置 0-2
// }

// type ResponseGemDigOut struct {
// 	ErrCode int           `json:"errCode"`
// 	Msg     string        `json:"msg,omitempty"`
// 	Data    *GemInlayData `json:"data"`
// }

// // 兑换码兑换物品
// type RedeemGoods struct {
// 	PlayerId int64  `json:"userId"`
// 	Code     string `json:"code"`
// }

// type ResponseRedeemGoods struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *RedeemGoodsData `json:"data"`
// }

// type RedeemGoodsData struct {
// 	ErrCode    int                    `json:"errCode"`
// 	Materials  []*model.DropMaterial  `json:"materials"`
// 	Equipments []*model.DropEquipment `json:"equipments"`
// }

// // 服务器内部协议
// type RedeemGoodsIs struct {
// 	PlayerId int64  `json:"userId"`
// 	OpenId   string `json:"openId"`
// 	GateId   int    `json:"gateId"`
// 	Code     string `json:"code"`
// }

// // 前三个字段必传
// type ResponseRedeemGoodsIs struct {
// 	ErrCode    int                   `json:"errCode"`
// 	PlayerId   int64                 `json:"userId"`
// 	GateId     int                   `json:"gateId"`
// 	Materials  []*model.DropMaterial `json:"materials"`
// 	Equipments []int64               `json:"equipments"`
// }

// // 添加新手引导材料
// type AddGuideMaterials struct {
// 	PlayerId   int64  `json:"userId"`
// 	Guide      int    `json:"guide"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type ResponseAddGuideMaterials struct {
// 	ErrCode int                      `json:"errCode"`
// 	Msg     string                   `json:"msg,omitempty"`
// 	Data    *AddCurioMaterialsIsData `json:"data"`
// }

// type AddCurioMaterialsIs struct {
// 	PlayerId   int64                 `json:"userId"`
// 	Guide      int                   `json:"guide"`
// 	Materials  []*model.DropMaterial `json:"Materials"`
// 	ClientPlat string                `json:"clientPlat"`
// }

// type AddCurioMaterialsIsData struct {
// 	ErrCode    int                   `json:"errCode"`
// 	Guide      int                   `json:"guide"`
// 	Materials  []*model.DropMaterial `json:"materials"`
// 	CombineBox []int64               `json:"combineBox"` //合成箱
// 	Curios     map[int64]int         `json:"curios"`     //古玩
// }

// // 元宵活动
// type YearFifteen struct {
// 	PlayerId int64 `json:"userId"`
// }

// type ResponseYearFifteen struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *YearFifteenData `json:"data"`
// }

// type YearFifteenData struct {
// 	StartCD   int64         `json:"startCD"`
// 	EndCD     int64         `json:"endCD"`
// 	ShowCD    int64         `json:"showCD"`
// 	Exchanges map[int]int   `json:"exchanges"`
// 	Items     map[int64]int `json:"items"` //拥有的道具 数量
// }

// // 制作元宵
// type FifteenCompose struct {
// 	PlayerId int64 `json:"userId"`
// 	Num      int   `json:"num"` //制作次数：1或10
// }

// type ResponseFifteenCompose struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *FifteenComposeData `json:"data"`
// }

// type FifteenComposeData struct {
// 	Materials [][]*model.DropMaterial `json:"materials"`
// 	Cost      []*model.DropMaterial   `json:"cost"`
// 	Effect    int                     `json:"effect"`
// }

// // 元宵排行
// type FifteenRank struct {
// 	PlayerId int64 `json:"userId"`
// }

// type ResponseFifteenRank struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *FifteenRankData `json:"data"`
// }

// type FifteenRankData struct {
// 	RankList []*FifteenRankItem `json:"rankList"`
// 	SelfRank *FifteenRankItem   `json:"selfRank"`
// }

// type FifteenRankItem struct {
// 	PlayerID int64 `json:"userId"`
// 	Score    int64 `json:"score"`
// 	Rank     int   `json:"rank"`
// 	//NickName     string `json:"nickName"`
// 	CombatEffe   int64 `json:"combatEffe"`
// 	PersonalItem `json:"personalItem"`
// }

// // 汤圆兑换
// type ExchangeFifteen struct {
// 	PlayerId int64 `json:"userId"`
// 	GoodsId  int   `json:"goodsId"`
// }

// type ResponseExchangeFifteen struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *ExchangeFifteenData `json:"data"`
// }

// type ExchangeFifteenData struct {
// 	GoodsId   int                   `json:"goodsId"`
// 	Limit     int                   `json:"limit"`
// 	Materials []*model.DropMaterial `json:"materials"`
// 	Cost      []*model.DropMaterial `json:"cost"`
// }

// // AddYearFifteenMaterialIs 增加元宵节材料
// type AddYearFifteenMaterialIs struct {
// 	PlayerId  int64                 `json:"userId"`
// 	Materials []*model.DropMaterial `json:"materials"`
// }

// // 用户分享游戏
// type UseShareGame struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseUseShareGame struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    int64  `json:"data"`
// }

// // ChapterWatchAdv 关卡看广告
// type ChapterWatchAdv struct {
// 	PlayerID int64 `json:"userId"`
// }

// type ResponseChapterWatchAdv struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *ChapterWatchAdvData `json:"data"`
// }

// type ChapterWatchAdvData struct {
// 	WatchAdvTimes int64 `json:"watchAdvTimes"` // 累计观看次数
// }

// // 设置装备
// type SetPvpBodyParts struct {
// 	PlayerId int64  `json:"userId"`
// 	Suits    [6]int `json:"indexs"`
// 	// 以下客户端不用
// 	BodyParts [6]*model.BodyPart2 `json:"parts"`
// }

// type ResponseSetPvpBodyParts struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    [6]int `json:"data"`
// }

// // 返回装备
// type GetPvpBodyParts struct {
// 	PlayerId int64 `json:"userId"`
// }

// type ResponseGetPvpBodyParts struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    [6]int `json:"data"`
// }

// // 生成游戏随机种子
// type GameCheckToken struct {
// 	PlayerId int64 `json:"userId"`
// }

// type ResponseGameCheckToken struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    string `json:"data"`
// }

// // 玩家成就
// type HeadAchievement struct {
// 	PlayerId int64 `json:"userId"`
// }

// type HeadAchievementData struct {
// 	MaxChapterProcess model.ChapterProcess `json:"maxChapterProcess"`
// 	MaxEndlessLevel   int                  `json:"maxEndlessLevel"`
// 	MaxMasterTier     int                  `json:"maxMasterTier"`
// }

// type ResponseHeadAchievement struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *HeadAchievementData `json:"data"`
// }

// // 个人信息
// type PersonalItem struct {
// 	HeadId   int    `json:"headId"`  // 头像 -1 代表使用 AvatarURL 微信授权头像
// 	FrameId  int    `json:"frameId"` // 头像框
// 	NickName string `json:"nickName"`
// 	HeadImg  string `json:"headImg"`
// }

// // SetInviterStatus  邀请设置
// type InviterStatus struct {
// 	PlayerId      int64 `json:"userId"`
// 	InviterStatus int   `json:"inviterStatus"`
// }

// type ResponseInviterStatus struct {
// 	ErrCode int    `json:"errCode"`
// 	Msg     string `json:"msg,omitempty"`
// 	Data    int    `json:"data"`
// }
// type SendGiftIs struct {
// 	PlayerId   int64  `json:"userId"`
// 	Gift       int64  `json:"gift"`
// 	ClientPlat string `json:"clientPlat"`
// }

// // 小地图传送
// type TeleportCost struct {
// 	PlayerID   int64 `json:"userId"`
// 	ChapterID  uint  `json:"activeId"`
// 	Difficulty int   `json:"difficulty"` //普通 困难模式
// }

// type ResponseTeleportCost struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Cost    []*model.DropMaterial `json:"data"`
// }

// type AddChapterBuffMaterialsIs struct {
// 	PlayerID int64   `json:"userId"`
// 	VipIds   []int64 `json:"vipIds"`
// }

// // 等级变动
// type LevelChangeAfter struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"ClientPlat"`
// 	Level      int    `json:"level"` //用户等级
// }

// // 专属宝物获取
// type RoleTreasureGet struct {
// 	PlayerID int64 `json:"userId"`
// 	Id       int   `json:"id"` // 宝物Id
// }

// type RoleTreasureGetData struct {
// 	RoleTreasure []*model.RoleTreasureInfo `json:"roleTreasure"` // 专属宝物
// }

// type ResponseRoleTreasureGet struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *RoleTreasureGetData `json:"data"`
// }

// // 专属宝物升级
// type RoleTreasureLevel struct {
// 	PlayerID int64 `json:"userId"`
// 	Id       int   `json:"id"` // 宝物Id
// }

// type RoleTreasureLevelData struct {
// 	Id    int                   `json:"id"`    // 宝物Id
// 	Level int                   `json:"level"` // 宝物lev
// 	Cost  []*model.DropMaterial `json:"cost"`  // 消耗道具
// }

// type ResponseRoleTreasureLevel struct {
// 	ErrCode int                    `json:"errCode"`
// 	Msg     string                 `json:"msg,omitempty"`
// 	Data    *RoleTreasureLevelData `json:"data"`
// }

// // 魔君数据
// type MonarchGift struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type MonarchGiftData struct {
// 	StartCD     int64         `json:"startCd"`     // 开始CD
// 	EndCD       int64         `json:"endCd"`       // 结束CD
// 	ShowCD      int64         `json:"showCd"`      // 结束展示CD
// 	StartTime   int64         `json:"startTime"`   // 活动开始时间(哪一期活动的开始标记)
// 	ShopTypes   []int64       `json:"shopTypes"`   // 商品类型
// 	DayFreeTime int64         `json:"dayFreeTime"` // 每天免费领奖时间
// 	GoodBuys    map[int64]int `json:"goodBuys"`    // 商品购买数据
// 	GiftBuys    map[int64]int `json:"giftBuys"`    // 礼包购买数据
// }

// type ResponseMonarchGift struct {
// 	ErrCode int              `json:"errCode"`
// 	Msg     string           `json:"msg,omitempty"`
// 	Data    *MonarchGiftData `json:"data"`
// }

// // 魔君每日领奖
// type MonarchDayFree struct {
// 	PlayerID   int64  `json:"userId"`
// 	ClientPlat string `json:"clientPlat"`
// }

// type MonarchDayFreeData struct {
// 	DayFreeTime int64                 `json:"dayFreeTime"` // 每天免费领奖时间
// 	Material    []*model.DropMaterial `json:"material"`    // 奖励
// }

// type ResponseMonarchDayFree struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *MonarchDayFreeData `json:"data"`
// }

// // 服务端用
// type MonarchDayFreeIs struct {
// 	RpcRequestMsg
// 	PlayerId int64                 `json:"userId"`
// 	Rewards  []*model.DropMaterial `json:"rewards"` //道具
// }

// type ResponseMonarchDayFreeIs struct {
// 	RpcResponseMsg
// }
