//数据库read操作 func pid3(cmd *common.RequestData, c *online.Client) { if checkParamError(cmd, c, "Id", "Param") { return } id := cmd.GetString("Id") m := make(map[string]interface{}) col, rows, err := rpc.BySqlParamName(id, m) if err != nil { log.Error(err.Error()) writePrror("db error", cmd, c) return } dp := new(common.OutputParam) dp.RowMap = col dp.Rows = rows dp.Time = time.Now() writepid(c, cmd, 0, dp) }
// login in func pid_1(cmd *common.RequestData, c *online.Client) { if checkParamError(cmd, c, "Login", "Password") { return } login := cmd.GetString("Login") pwd := cmd.GetString("Password") c.Name = login log.Infof("user %s login", c.Name, common.IsDebug) loginSuccess := false if common.IsDebug { //调试时直接登陆,不验证密码 loginSuccess = true } else { param := make(map[string]interface{}) param["login"] = login _, epwd, err := rpc.BySqlParamName("login", param) if err != nil { log.Error(err.Error()) } if err == nil && len(epwd) > 0 { loginSuccess = epwd[0][0] == pwd //需要对密码进行加密再进行比较 } } //check re := make(map[string]interface{}) if loginSuccess { c.IsLogin = true c.Key = common.HashString(c.UUID + ":" + c.Name) online.SetSession(c.UUID, c.Name, c.Key) re["LoginState"] = 0 re["Message"] = "login success" re["UID"] = c.UUID re["Key"] = c.Key online.Set(c) } else { re["LoginState"] = -1 re["Message"] = "login failed" } writepid(c, cmd, 0, re) }