GM后台服务初步

This commit is contained in:
huangxiaolei
2022-11-24 19:40:59 +08:00
parent c96deb20e2
commit 2ecc1f0e77
6 changed files with 132 additions and 15 deletions

12
gm/cmd/application.toml Normal file
View File

@@ -0,0 +1,12 @@
http_port = 9001
[logger]
level = "DEBUG"
method = "CONSOLE"
track_line = true
[database]
url = "mongodb://mongo:27017"
[mq]
nats_url = "nats://nats1:4222,nats://nats2:4222,nats://nats3:4222"

37
gm/cmd/main.go Normal file
View File

@@ -0,0 +1,37 @@
package main
import (
"hk4e/common/config"
"hk4e/gm/controller"
"hk4e/logger"
"os"
"os/signal"
"syscall"
"time"
)
func main() {
filePath := "./application.toml"
config.InitConfig(filePath)
logger.InitLogger("gm")
logger.LOG.Info("gm start")
_ = controller.NewController()
c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
for {
s := <-c
logger.LOG.Info("get a signal %s", s.String())
switch s {
case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT:
logger.LOG.Info("gm exit")
time.Sleep(time.Second)
return
case syscall.SIGHUP:
default:
return
}
}
}

View File

@@ -0,0 +1,51 @@
package controller
import (
"github.com/gin-gonic/gin"
"hk4e/common/config"
"hk4e/logger"
"net/http"
"strconv"
)
type Controller struct {
}
func NewController() (r *Controller) {
r = new(Controller)
go r.registerRouter()
return r
}
func (c *Controller) authorize() gin.HandlerFunc {
return func(context *gin.Context) {
if true {
// 验证通过
context.Next()
return
}
// 验证不通过
context.Abort()
context.JSON(http.StatusOK, gin.H{
"code": "10001",
"msg": "没有访问权限",
})
}
}
func (c *Controller) registerRouter() {
if config.CONF.Logger.Level == "DEBUG" {
gin.SetMode(gin.DebugMode)
} else {
gin.SetMode(gin.ReleaseMode)
}
engine := gin.Default()
engine.Use(c.authorize())
engine.POST("/gm/cmd", c.gmCmd)
port := config.CONF.HttpPort
addr := ":" + strconv.Itoa(port)
err := engine.Run(addr)
if err != nil {
logger.LOG.Error("gin run error: %v", err)
}
}

View File

@@ -0,0 +1,20 @@
package controller
import (
"github.com/gin-gonic/gin"
"hk4e/logger"
)
type GmCmdReq struct {
FuncName string `json:"func_name"`
Param []string `json:"param"`
}
func (c *Controller) gmCmd(context *gin.Context) {
gmCmdReq := new(GmCmdReq)
err := context.ShouldBindJSON(gmCmdReq)
if err != nil {
return
}
logger.LOG.Info("%v", gmCmdReq)
}