player.go 1.42 KB
package roomrank

import (
	"apigame/configs"
	"apigame/models"
	"apigame/service-common/svmysql"
	"apigame/util/util-lx/lxalilog"
	"apigame/util/util-lx/lxtime"
)

// SavePlayer 存储数据
func SavePlayer(gameId string, d *DataRoomRankPlayer) {
	d.UpdateTime = lxtime.NowUninx()

	err := svmysql.Save(d, gameId)
	if err != nil {
		lxalilog.Errors(err, "roomrank.SavePlayer error", gameId, d.Uid, d.ActivityId)
		return
	}
}

func _LoadPlayer(gameId string, playerUid int64) (d *DataRoomRankPlayer) {
	d = NewDataRoomRankPlayer(playerUid)
	has, err := svmysql.First(d, gameId)
	if has {
	} else {
		d.Init(playerUid)
		err = svmysql.Create(d, gameId)
		if err != nil {
			lxalilog.Errors(err, "roomrank._LoadPlayer Create error", gameId, d.Uid, d.ActivityId)
			return
		}
	}
	return
}

// LoadPlayer 获取数据 外部接口
func LoadPlayer(gameId string, playerUid int64, config *configs.RoomRankConfig) (d *DataRoomRankPlayer) {
	configId := config.Id
	d = _LoadPlayer(gameId, playerUid)
	// todo 这里要重写 这个活动根据玩家领奖来切换 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新
	if configId != 0 &&
		configId != d.ActivityId {

		d.ActivityId = configId

		SavePlayer(gameId, d)
	}
	return
}

// GetInfo 活动信息
func GetInfo(player *DataRoomRankPlayer, conf *configs.RoomRankConfig) models.RoomRankInfo {
	info := models.RoomRankInfo{}
	return info
}