From 8ca48912f0f19570c20858208d8d77a9b370e319 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 19 Dec 2020 15:01:25 +0800 Subject: [PATCH] q --- server/admin/dbengine.go | 1 + server/admin/usermgr.go | 96 +++++++++++++++++++++++----------------- third_party/f5 | 2 +- 3 files changed, 58 insertions(+), 41 deletions(-) diff --git a/server/admin/dbengine.go b/server/admin/dbengine.go index 69c669c..49e2d91 100644 --- a/server/admin/dbengine.go +++ b/server/admin/dbengine.go @@ -17,5 +17,6 @@ func (this *DBEngine) UnInit() { func (this *DBEngine) NewAdminConn() *q5.Mysql { conn := q5.NewMysql("127.0.0.1", 3306, "root", "keji178", "admindb") + conn.Open() return conn } diff --git a/server/admin/usermgr.go b/server/admin/usermgr.go index b38165a..433f0e3 100644 --- a/server/admin/usermgr.go +++ b/server/admin/usermgr.go @@ -1,6 +1,8 @@ package main import ( + "encoding/json" + "database/sql" "q5" "f5" ) @@ -38,53 +40,67 @@ func (this *UserMgr) _userLogin(c *f5.Context) { content := q5.NewMxoObject() content.SetXValue("username", c.Request("username")) content.SetXValue("password", c.Request("password")) - respStr, err := q5.HttpPostContent(url, + respStr := "" + if err := q5.HttpPostContent(url, "application/json;charset=utf-8", - content.ToJsonStr()) - if err == nil { - f5.SysLog().Debug("respStr:%s", respStr) - respObj := q5.NewXoFromJsonStr(respStr) - if respObj == nil || !respObj.IsObject() { + content.ToJsonStr(), + &respStr); err != nil { + c.ResponseErr(500, "服务器内部错误") + return + } + f5.SysLog().Debug("respStr:%s", respStr) + respObj := struct { + ErrCode *int32 `json:"errcode"` + ErrMsg string `json:"errmsg"` + Token string `json:"token"` + UserInfo *struct { + UserName string `json:"username"` + FullName string `json:"fullname"` + AvatarUrl string `json:"avatar"` + } `json:"userInfo"` + }{} + if err := json.Unmarshal([]byte(respStr), &respObj); err != nil || respObj.ErrCode == nil { + c.ResponseErr(500, "服务器内部错误") + return + } + if *respObj.ErrCode != 0 { + c.Response(respStr) + return + } + userInfo := respObj.UserInfo + nowUnix := f5.App.NowUnix() + conn := G.DBEngine.NewAdminConn() + row := conn.QueryRow("SELECT username FROM `user` WHERE username=?;", + userInfo.UserName) + { + userName := "" + err := row.Scan(&userName) + if err != nil && err != sql.ErrNoRows { c.ResponseErr(500, "服务器内部错误") return } - errCode := respObj.GetSimpleStr("errcode", "") - userInfo := respObj.At("userinfo") - if errCode != "0" || userInfo == nil || !userInfo.IsObject() { - c.Response(respStr) + if err == sql.ErrNoRows { + //新用户 + conn.Exec("INSERT `user`(username, fullname, avatar_url, createtime, " + + " modifytime) " + + "VALUES(?, ?, ?, ?, ?);", + userInfo.UserName, + userInfo.FullName, + userInfo.AvatarUrl, + nowUnix, + nowUnix) } else { - userName := userInfo.GetSimpleStr("username", "") - fullName := userInfo.GetSimpleStr("fullname", "") - avatarUrl := userInfo.GetSimpleStr("avatar_url", "") - nowUnix := f5.App.NowUnix() - conn := G.DBEngine.NewAdminConn() - row := conn.QueryRow("SELECT username FROM `user` WHERE username='?'", userName) - var idx int64 - if err := row.Scan(&idx); err == nil { - //新用户 - conn.Exec("INSERT `user`(username, fullname, avatar_url, createtime, " + - " modifytime) " + - "VALUES('?', '?', '?', ?, ?);", - userName, - fullName, - avatarUrl, - nowUnix, - nowUnix) - } else { - //老用户 - conn.Exec("UPDATE `user` SET fullname='?', avatar_url='?', " + - " modifytime=? " + - "WHERE username='?';", - fullName, - avatarUrl, - nowUnix, - userName) - } - c.Response(respStr) + //老用户 + conn.Exec("UPDATE `user` SET fullname=?, avatar_url=?, " + + " modifytime=? " + + "WHERE username=?;", + userInfo.FullName, + userInfo.AvatarUrl, + nowUnix, + userInfo.UserName) } - } else { - c.ResponseErr(500, "服务器内部错误") } + c.Response(respStr) } func (this *UserMgr) _userInfo(c *f5.Context, user *AuthedUser) { diff --git a/third_party/f5 b/third_party/f5 index 60518a8..72fe2ec 160000 --- a/third_party/f5 +++ b/third_party/f5 @@ -1 +1 @@ -Subproject commit 60518a8f3ccb28de37ba2b386fd36923b085b965 +Subproject commit 72fe2ec77dfada4c3e839718327c63afd2254070