解决空指针错误

pull/23/head
taoshihan1991 3 years ago
parent f8ef8eca9f
commit ff2b0560f0

@ -43,7 +43,7 @@ func run() {
}
}
d := xdaemon.NewDaemon(logFilePath + "go-fly.log")
d.MaxCount = 5
d.MaxCount = 10
d.Run()
}

@ -1,60 +0,0 @@
package controller
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/taoshihan1991/imaptool/config"
"github.com/taoshihan1991/imaptool/database"
"github.com/taoshihan1991/imaptool/tools"
"os"
)
func MysqlGetConf(c *gin.Context) {
mysqlInfo := config.GetMysql()
c.JSON(200, gin.H{
"code": 200,
"msg": "验证成功",
"result": mysqlInfo,
})
}
func MysqlSetConf(c *gin.Context) {
mysqlServer := c.PostForm("server")
mysqlPort := c.PostForm("port")
mysqlDb := c.PostForm("database")
mysqlUsername := c.PostForm("username")
mysqlPassword := c.PostForm("password")
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8", mysqlUsername, mysqlPassword, mysqlServer, mysqlPort, mysqlDb)
mysql := database.NewMysql()
mysql.Dsn = dsn
err := mysql.Ping()
if err != nil {
c.JSON(200, gin.H{
"code": 403,
"msg": "数据库连接失败:" + err.Error(),
})
return
}
isExist, _ := tools.IsFileExist(config.Dir)
if !isExist {
os.Mkdir(config.Dir, os.ModePerm)
}
fileConfig := config.MysqlConf
file, _ := os.OpenFile(fileConfig, os.O_RDWR|os.O_CREATE, os.ModePerm)
format := `{
"Server":"%s",
"Port":"%s",
"Database":"%s",
"Username":"%s",
"Password":"%s"
}
`
data := fmt.Sprintf(format, mysqlServer, mysqlPort, mysqlDb, mysqlUsername, mysqlPassword)
file.WriteString(data)
c.JSON(200, gin.H{
"code": 200,
"msg": "操作成功",
})
}

@ -1,27 +0,0 @@
package database
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/taoshihan1991/imaptool/config"
)
type Mysql struct {
SqlDB *sql.DB
Dsn string
}
func NewMysql() *Mysql {
mysql := config.CreateMysql()
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local", mysql.Username, mysql.Password, mysql.Server, mysql.Port, mysql.Database)
return &Mysql{
Dsn: dsn,
}
}
func (db *Mysql) Ping() error {
sqlDb, _ := sql.Open("mysql", db.Dsn)
db.SqlDB = sqlDb
return db.SqlDB.Ping()
}

@ -56,8 +56,6 @@ func InitApiRouter(engine *gin.Engine) {
engine.GET("/roles", middleware.JwtApiMiddleware, middleware.RbacAuth, controller.GetRoleList)
engine.POST("/role", middleware.JwtApiMiddleware, middleware.RbacAuth, controller.PostRole)
engine.GET("/mysql", middleware.JwtApiMiddleware, middleware.RbacAuth, controller.MysqlGetConf)
engine.POST("/mysql", middleware.JwtApiMiddleware, middleware.RbacAuth, controller.MysqlSetConf)
engine.GET("/visitors_online", controller.GetVisitorOnlines)
engine.GET("/visitors_kefu_online", middleware.JwtApiMiddleware, controller.GetKefusVisitorOnlines)
engine.GET("/clear_online_tcp", controller.DeleteOnlineTcp)

@ -90,7 +90,7 @@ func SuperAdminMessage(str []byte) {
func OneKefuMessage(toId string, str []byte) {
//新版
mKefuConns, ok := KefuList[toId]
if mKefuConns != nil && ok {
if ok && len(mKefuConns) > 0 {
for _, kefu := range mKefuConns {
log.Println("OneKefuMessage lock")
kefu.Mux.Lock()

@ -134,7 +134,10 @@ func VisitorNotice(visitorId string, notice string) {
Data: notice,
}
str, _ := json.Marshal(msg)
visitor := ClientList[visitorId]
visitor, ok := ClientList[visitorId]
if !ok || visitor == nil || visitor.Conn == nil {
return
}
visitor.Conn.WriteMessage(websocket.TextMessage, str)
}
func VisitorMessage(visitorId, content string, kefuInfo models.User) {
@ -151,7 +154,10 @@ func VisitorMessage(visitorId, content string, kefuInfo models.User) {
},
}
str, _ := json.Marshal(msg)
visitor := ClientList[visitorId]
visitor, ok := ClientList[visitorId]
if !ok || visitor == nil || visitor.Conn == nil {
return
}
visitor.Conn.WriteMessage(websocket.TextMessage, str)
}
func VisitorAutoReply(vistorInfo models.Visitor, kefuInfo models.User, content string) {

Loading…
Cancel
Save