From bfd681f75776bc778b38ad8134d494570147db7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B6=E5=A3=AB=E6=B6=B5?= <630892807@qq.com> Date: Thu, 25 Jun 2020 18:14:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=9C=8D=E5=8F=96=E8=87=AA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/go-fly.sql | 1 + controller/chat.go | 26 +++------------- controller/kefu.go | 20 ++++++++++++ controller/login.go | 2 ++ middleware/jwt.go | 5 +++ models/users.go | 8 ++++- server.go | 7 ++--- static/html/chat_main.html | 63 +++++++++++++++++++++++++++----------- 8 files changed, 86 insertions(+), 46 deletions(-) create mode 100644 controller/kefu.go diff --git a/config/go-fly.sql b/config/go-fly.sql index 1376b87..6b4839d 100644 --- a/config/go-fly.sql +++ b/config/go-fly.sql @@ -6,5 +6,6 @@ CREATE TABLE `user` ( `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `deleted_at` timestamp NULL DEFAULT NULL, + `avator` varchar(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 \ No newline at end of file diff --git a/controller/chat.go b/controller/chat.go index 027f9e4..9333a22 100644 --- a/controller/chat.go +++ b/controller/chat.go @@ -4,31 +4,15 @@ import ( "encoding/json" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" - "github.com/taoshihan1991/imaptool/tmpl" "github.com/taoshihan1991/imaptool/tools" "log" "net/http" "time" ) -//聊天主界面 -func ActionChatMain(w http.ResponseWriter, r *http.Request) { - render := tmpl.NewRender(w) - render.Display("chat_main", nil) -} - -//聊天客户端界面 -func ActionChatPage(w http.ResponseWriter, r *http.Request) { - render := tmpl.NewRender(w) - render.Display("chat_page", nil) -} - -//咨询界面 -func PageChat(c *gin.Context) { - html := tools.FileGetContent("html/chat_page.html") - c.Header("Content-Type", "text/html; charset=utf-8") - c.String(200, html) -} +var clientList = make(map[string]*websocket.Conn) +var clientNameList = make(map[string]string) +var kefuList = make(map[string]*websocket.Conn) //获取在线用户 func ChatUsers(w http.ResponseWriter, r *http.Request) { @@ -362,6 +346,4 @@ func getOnlineUser(w *websocket.Conn,messageType int) { -var clientList = make(map[string]*websocket.Conn) -var clientNameList = make(map[string]string) -var kefuList = make(map[string]*websocket.Conn) + diff --git a/controller/kefu.go b/controller/kefu.go new file mode 100644 index 0000000..021a05d --- /dev/null +++ b/controller/kefu.go @@ -0,0 +1,20 @@ +package controller + +import ( + "github.com/gin-gonic/gin" + "github.com/taoshihan1991/imaptool/models" +) + +func GetKefuInfo(c *gin.Context){ + kefuId, _ := c.Get("kefu_id") + user:=models.FindUserById(kefuId) + info:=make(map[string]interface{}) + info["kf_name"]=user.Nickname + info["kf_id"]=user.Name + info["avator"]=user.Avator + c.JSON(200, gin.H{ + "code": 200, + "msg": "获取成功", + "result":info, + }) +} diff --git a/controller/login.go b/controller/login.go index 8b6b76b..5511903 100644 --- a/controller/login.go +++ b/controller/login.go @@ -45,8 +45,10 @@ func LoginCheckPass(c *gin.Context) { return } userinfo["name"] = info.Name + userinfo["kefu_id"] = info.ID userinfo["type"] = "kefu" userinfo["create_time"] = time.Now().Unix() + token, _ := tools.MakeToken(userinfo) userinfo["ref_token"]=true refToken, _ := tools.MakeToken(userinfo) diff --git a/middleware/jwt.go b/middleware/jwt.go index 58d53f0..f254bde 100644 --- a/middleware/jwt.go +++ b/middleware/jwt.go @@ -3,6 +3,7 @@ package middleware import ( "github.com/gin-gonic/gin" "github.com/taoshihan1991/imaptool/tools" + "log" "time" ) func JwtPageMiddleware(c *gin.Context){ @@ -17,6 +18,7 @@ func JwtPageMiddleware(c *gin.Context){ func JwtApiMiddleware(c *gin.Context){ token := c.GetHeader("token") userinfo := tools.ParseToken(token) + log.Println(userinfo) if userinfo == nil||userinfo["name"]==nil { c.JSON(200, gin.H{ "code": 400, @@ -35,4 +37,7 @@ func JwtApiMiddleware(c *gin.Context){ c.Abort() } c.Set("user",userinfo["name"]) + if userinfo["type"]=="kefu"{ + c.Set("kefu_id",userinfo["kefu_id"]) + } } diff --git a/models/users.go b/models/users.go index 1957713..af1fb4c 100644 --- a/models/users.go +++ b/models/users.go @@ -6,9 +6,10 @@ import ( ) type User struct { gorm.Model - Id int64 Name string Password string + Nickname string + Avator string } func CreateUser(name string,password string){ user:=&User{ @@ -21,4 +22,9 @@ func FindUser(username string)User{ var user User DB.Where("name = ?", username).First(&user) return user +} +func FindUserById(id interface{})User{ + var user User + DB.Where("id = ?", id).First(&user) + return user } \ No newline at end of file diff --git a/server.go b/server.go index 58b523f..809efd4 100644 --- a/server.go +++ b/server.go @@ -31,6 +31,8 @@ func main() { engine.POST("/check_auth",middleware.JwtApiMiddleware, controller.MainCheckAuth) //前后聊天 engine.GET("/chat_server", controller.NewChatServer) + //获取客服信息 + engine.GET("/kefuinfo",middleware.JwtApiMiddleware, controller.GetKefuInfo) //设置页 engine.GET("/setting", tmpl.PageSetting) //设置mysql @@ -61,13 +63,8 @@ func main() { mux.HandleFunc("/setting_account", controller.SettingAccount) //发送邮件接口 mux.HandleFunc("/send", controller.FolderSend) - //聊天界面 - mux.HandleFunc("/chat_main", controller.ActionChatMain) //新邮件提醒服务 mux.HandleFunc("/push_mail", controller.PushMailServer) - //聊天界面 - mux.HandleFunc("/chat_page", controller.ActionChatPage) - //聊天服务 //mux.Handle("/chat_server", websocket.Handler(controller.ChatServer)) //获取在线用户 mux.HandleFunc("/chat_users", controller.ChatUsers) diff --git a/static/html/chat_main.html b/static/html/chat_main.html index f58e19e..acd9780 100644 --- a/static/html/chat_main.html +++ b/static/html/chat_main.html @@ -95,7 +95,7 @@ - 常用工具 + 访客信息 @@ -105,12 +105,7 @@