logic.go 1.42 KB
package logic

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

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))
}