package logic import ( "HttpServer/redishandler" "common/logger" "common/redis" "encoding/json" "fmt" "net/http" "strconv" ) func HandlerLogin(w http.ResponseWriter, data string, uuid int) { SetHeader(w) var resp UserLoginResp resp.Code = 0 var rdata UserLoginReq err := json.Unmarshal([]byte(data), &rdata) for { if err != nil { logger.Info("json decode HandlerLogin data failed:%v,for:%v", err, data) resp.Message = "json unmarshal failed" resp.Code = ERROR_JSONUNMASH_ERROR } //先判断一下是否是新用户 isexist,err := redishandler.GetRedisClient().HExists(redis.USER_DATA_KEY, strconv.Itoa(uuid)) if err != nil { logger.Error("redis failed err=%v", err) resp.Message = "ERROR_SRV_ERROR" resp.Code = ERROR_SRV_ERROR } if !isexist { //不存在 //属于新登录的玩家数据 err = InitUserInfo(&rdata, &resp, uuid) } else { //已经登陆过了 需要获取玩家数据 err = GetUserData(uuid, &resp) } if err != nil { logger.Error("redis failed err=%v", err) resp.Message = "ERROR_SRV_ERROR" resp.Code = ERROR_SRV_ERROR } } //回包 respstr, _ := json.Marshal(&resp) fmt.Fprint(w, string(respstr)) logger.Info("###HandlerLogin###rdata:%v", string(respstr)) }