logic.go 3.68 KB
package logic

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

func HandlerSyncuserdata(w http.ResponseWriter, data string, uniqueuuid string) {
	SetHeader(w)

	var resp SyncuserdataResp
	resp.Code = 0
	resp.Message = "success"

	for {

		uinfo, err := GetUserInfo(uniqueuuid)

		if err != nil {
			logger.Info("GetUserInfo HandlerSyncuserdata data failed:%v,for:%v", err, data)
			resp.Message = "GetUserInfo failed"
			resp.Code = 1
			break
		}

		resp.Data.Walletgold = uinfo.RealGold
		resp.Data.Guangold = uinfo.GuanGold
		resp.Data.Sumloginday = uinfo.SumLoginDay
		resp.Data.Nowtime = int(time.Now().Unix())
		break
	}

	//回包
	respstr, _ := json.Marshal(&resp)
	fmt.Fprint(w, string(respstr))
}

func HandlerUpdatedata(w http.ResponseWriter, data string, uniqueuuid string) {
	SetHeader(w)

	var resp UpdatedataResp
	resp.Code = 0
	resp.Message = "success"
	var rdata UpdatedataReq
	err := json.Unmarshal([]byte(data), &rdata)
	for {

		if err != nil {
			logger.Info("json decode HandlerUpdatedata data failed:%v,for:%v", err, data)
			resp.Message = "json解析错误"
			resp.Code = ERROR_JSONUNMASH_ERROR
			break
		}

		//直接保存
		err := SaveUserSelfData(uniqueuuid, rdata.PlayerData)
		if err != nil {
			logger.Info("SaveUserSelfData HandlerUpdatedata data failed:%v,for:%v", err, data)
			resp.Message = "保存失败"
			resp.Code = ERROR_JSONUNMASH_ERROR
			break
		}

		break
	}

	//回包
	respstr, _ := json.Marshal(&resp)
	fmt.Fprint(w, string(respstr))
}

func HandlerUploaduserbasicinfo(w http.ResponseWriter, data string, uniqueuuid string) {
	SetHeader(w)

	var resp UploaduserbasicinfoResp
	resp.Code = 0
	resp.Message = "success"
	var rdata UploaduserbasicinfoReq
	err := json.Unmarshal([]byte(data), &rdata)
	for {

		if err != nil {
			logger.Info("json decode HandlerUploaduserbasicinfo data failed:%v,for:%v", err, data)
			resp.Message = "json解析错误"
			resp.Code = ERROR_JSONUNMASH_ERROR
			break
		}
		uinfo, err := GetUserInfo(uniqueuuid)

		if err != nil {
			logger.Info("GetUserInfo HandlerUploaduserbasicinfo data failed:%v,for:%v", err, data)
			resp.Message = "GetUserInfo failed"
			resp.Code = 1
			break
		}

		uinfo.HeadUrl = rdata.Headurl
		uinfo.NickName = rdata.Nickname

		SaveUserInfo(uinfo, uniqueuuid)
		break
	}

	//回包
	respstr, _ := json.Marshal(&resp)
	fmt.Fprint(w, string(respstr))
}

func HandlerLogin(w http.ResponseWriter, data string, uniqueuuid, gameid, channel string, uuid int) {
	SetHeader(w)

	var resp UserLoginResp
	resp.Code = 0

	for {

		//先判断一下是否是新用户
		isexist, err := redishandler.GetRedisClient().HExists(redis.USER_DATA_KEY, uniqueuuid)
		if err != nil {
			logger.Error("redis failed err=%v", err)
			resp.Message = "服务器错误"
			resp.Code = ERROR_SRV_ERROR
			break
		}

		if !isexist {
			//不存在

			//不存在老的数据 之间走新号流程
			err = InitUserInfo(&resp, uniqueuuid, gameid, channel, uuid)

		} else {
			uinfo, err := GetUserInfo(uniqueuuid)

			if err != nil {
				logger.Info("GetUserInfo HandlerLogin data failed:%v,for:%v", err, data)
				resp.Message = "GetUserInfo failed"
				resp.Code = 1
				break
			}

			resp.Data.Guangold = uinfo.GuanGold
			resp.Data.Walletgold = uinfo.RealGold

			resp.Data.Isnew = 0
		}

		pdata, err := GetUserSelfData(uniqueuuid)

		if err != nil {
			logger.Info("GetUserSelfData HandlerLogin data failed:%v,for:%v", err, data)
			resp.Message = "GetUserSelfData failed"
			resp.Code = 1
			break
		}
		resp.Data.PlayerData = pdata

		resp.Code = ERROR_OK
		break
	}

	//回包
	respstr, _ := json.Marshal(&resp)
	fmt.Fprint(w, string(respstr))

	logger.Info("###HandlerLogin###rdata:%v", string(respstr))
}