function.go 5.07 KB
package logic

import (
	"HttpServer/redishandler"
	"common/logger"
	"common/redis"
	"encoding/json"
	"net/http"
	"strconv"
)

func SetHeader(w http.ResponseWriter) {
	w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
	w.Header().Set("Content-Type", "application/json")
	w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid")
}

func (tinfo *TeamInfo) IsInTeam(uuid int) bool {
	inteam := false
	for _,val := range tinfo.MemInfo.MemList {
		if val == uuid {
			inteam = true
			break
		}
	}
	return inteam
}

func (tinfo *TeamInfo) DelTeamMember(uuid int)  {

	for k,val := range tinfo.MemInfo.MemList {
		if val == uuid {
			tinfo.MemInfo.MemList = append(tinfo.MemInfo.MemList[:k],tinfo.MemInfo.MemList[k+1:]...)
			break
		}
	}

}

//设置
func SetTouristUid(utoken string,uid int) error{
	err := redishandler.GetRedisClient().HSet(redis.USER_TOURIST_UID, utoken,strconv.Itoa(uid))
	if err != nil {
		logger.Error("SetTouristUid failed,err=%v",err)
		return err
	}
	return nil
}

//获取游客的uid 返回值为uid
func GetTouristUid(utoken string) (int,error){
	uidstr, err := redishandler.GetRedisClient().HGet(redis.USER_TOURIST_UID, utoken)
	if err != nil {
		return 0,err
	}

	uid,err := strconv.Atoi(uidstr)
	return uid,err
}

//获取玩家新的uuid
func GetNewUUid() int {
	redishandler.GetRedisClient().Incr(redis.USER_MAX_UUID)
	newuuid ,err:= redishandler.GetRedisClient().GetInt(redis.USER_MAX_UUID)
	if err != nil {
		logger.Error("GetNewUUid failed,err=%v",err)
		return 0
	}

	return newuuid+100000
}

//获取新的teamid
func GetNewTeamId() int {
	redishandler.GetRedisClient().Incr(redis.TEAM_MAX_UUID)
	newuuid ,err:= redishandler.GetRedisClient().GetInt(redis.TEAM_MAX_UUID)
	if err != nil {
		logger.Error("GetNewUUid failed,err=%v",err)
		return 0
	}

	return newuuid+100000
}

func SaveUserBaseData(uuid int,value string) error {
	err := redishandler.GetRedisClient().HSet(redis.USER_BASE_DATA, strconv.Itoa(uuid), value)
	return err
}

func GetUserBaseData(uuid int ) (string,error) {
	strval,err := redishandler.GetRedisClient().HGet(redis.USER_BASIC_DATA, strconv.Itoa(uuid))
	if err != nil {
		logger.Error("GetUserBasic failed,err=%v",err)
		return "",err
	}

	return strval,err

}

func SaveUserBasic(uuid int,value string) error {
	err := redishandler.GetRedisClient().HSet(redis.USER_BASIC_DATA, strconv.Itoa(uuid), value)
	return err
}

func GetUserBasic(uuid int ) (*UserBaseData,error) {
	strval,err := redishandler.GetRedisClient().HGet(redis.USER_BASIC_DATA, strconv.Itoa(uuid))
	if err != nil {
		logger.Error("GetUserBasic failed,err=%v",err)
		return nil,err
	}
	basic := new(UserBaseData)
	err = json.Unmarshal([]byte(strval), basic)
	return basic,err

}

func SaveUserExt(extdata * UserData) error {
	if extdata == nil {
		return nil
	}
	m_userInfo.Set(uint32(extdata.Userid),extdata)

	ext,_ := json.Marshal(&extdata)
	err := redishandler.GetRedisClient().HSet(redis.USER_EXT_DATA, strconv.Itoa(extdata.Userid), string(ext))
	return err
}

func GetUserExt(uuid int) (*UserExtData,error) {
	strval,err := redishandler.GetRedisClient().HGet(redis.USER_EXT_DATA, strconv.Itoa(uuid))
	if err != nil {
		logger.Error("GetUserExt failed,err=%v",err)
		return nil,err
	}
	ext := new(UserExtData)
	err = json.Unmarshal([]byte(strval), ext)
	return ext,err
}

//检测队伍名称是否已经存在
func GetUserTeamNameIsExist(name string) bool {
	_,err := redishandler.GetRedisClient().HGet(redis.TEAM_USERTEAM_NAME, name)
	if err != nil {
		return true
	}
	return false
}

//删除存储的队伍名称
func DelUserTeamName(name string) error{
	err := redishandler.GetRedisClient().HDel(redis.TEAM_USERTEAM_NAME, name)
	if err != nil {
		logger.Error("SetUserTeamName err=%v),err")
	}
	return err
}

//存储队伍名称
func SetUserTeamName(name string,teamid int) {
	err := redishandler.GetRedisClient().HSet(redis.TEAM_USERTEAM_NAME, name, strconv.Itoa(teamid))
	if err != nil {
		logger.Error("SetUserTeamName err=%v),err")
	}
}

//保存队伍信息
func SaveTeamInfo(teamid int,tinfo *TeamInfo) error {
	team,_ := json.Marshal(tinfo)
	err := redishandler.GetRedisClient().HSet(redis.TEAM_INFO, strconv.Itoa(teamid), string(team))
	if err != nil {
		logger.Error("SaveTeamInfo err=%v),err")
		return err
	}
	return nil
}

//获取队伍信息
func GetTeamInfo(teamid int) (*TeamInfo,error) {
	info := new(TeamInfo)
	vv,err := redishandler.GetRedisClient().HGet(redis.TEAM_INFO,strconv.Itoa(teamid))
	if err != nil {
		logger.Error("GetTeamInfo failed,err=%v",err)
		return nil,err
	}

	err = json.Unmarshal([]byte(vv), info)
	return info,err
}

//保存teamid与uuid
func SaveTeamToUuid(teamid,uuid int) error {
	err := redishandler.GetRedisClient().HSet(redis.TEAM_TEAMID_TOUUID, strconv.Itoa(uuid),  strconv.Itoa(teamid))
	if err != nil {
		logger.Error("SaveTeamToUuid err=%v),err")
		return err
	}
	return nil
}

//获取teamid与uuid
func GetTeamByUuid(uuid int) (int,error) {
	vv,err := redishandler.GetRedisClient().HGet(redis.TEAM_TEAMID_TOUUID,strconv.Itoa(uuid))
	if err != nil {
		logger.Error("GetTeamByUuid failed,err=%v",err)
		return 0,err
	}

	teamid,err := strconv.Atoi(vv)
	return teamid,err
}