admin_backend/controller/server.go
2025-02-12 11:13:06 +08:00

119 lines
2.4 KiB
Go

package controller
import (
"backend/common"
"backend/model"
"fmt"
"time"
"github.com/gin-gonic/gin"
)
func AppList(c *gin.Context) {
Server := model.Server{}
AppList, err := Server.AppList()
if err != nil {
failed(c, err.Error())
return
}
success(c, AppList)
}
func ServerList(c *gin.Context) {
Server := model.Server{}
c.BindJSON(&Server)
ServerList, err := Server.ServerList()
if err != nil {
failed(c, err.Error())
return
}
success(c, ServerList)
}
func AddServer(c *gin.Context) {
Server := model.Server{}
c.BindJSON(&Server)
err := Server.AddServer()
if err != nil {
failed(c, err.Error())
return
}
success(c, nil)
}
func UpdateApp(c *gin.Context) {
Server := model.Server{}
c.BindJSON(&Server)
msg, err := Server.UpdateApp()
if err != nil {
failed(c, err.Error())
return
}
success(c, map[string]string{"msg": msg})
}
func UpdateAppFeishu(c *gin.Context) {
Server := model.Server{}
c.BindJSON(&Server)
go Server.UpdateAppFeishu()
success(c, map[string]string{"msg": "have send feishu"})
}
func RestartServer(c *gin.Context) {
Server := model.Server{}
c.BindJSON(&Server)
msg, err := Server.RestartServer()
if err != nil {
failed(c, err.Error())
return
}
success(c, map[string]string{"msg": msg})
}
func ReloadServer(c *gin.Context) {
Server := model.Server{}
c.BindJSON(&Server)
msg, err := Server.ReloadServer()
if err != nil {
failed(c, err.Error())
return
}
success(c, map[string]string{"msg": msg})
}
func AppPortNmap() {
NMapEnable := common.GetNMap()
if !NMapEnable {
return
}
for {
Server := model.Server{}
AppList, err := Server.AppList()
if err != nil {
return
}
for _, app := range AppList {
Server.AppId = app.AppId
ServerList, err := Server.ServerList()
if err != nil {
continue
}
App, err := model.GetAppConfig(app.AppId)
if err != nil {
continue
}
for _, server := range ServerList {
err := model.PortMap(App.WsHost, fmt.Sprintf("%d", server.ServerId+App.WsPort))
if err != nil {
// fmt.Printf("%s 端口扫描异常: %v/n", fmt.Sprintf("%s:%d", App.WsHost, server.ServerId+App.WsPort), err)
common.SendFeishuMsg(fmt.Sprintf("App: %s, Server: %s, 端口扫描异常 failed: %v", App.AppName, server.ServerName, err))
} else {
// fmt.Printf("%s 端口扫描完成/n", fmt.Sprintf("%s:%d", App.WsHost, server.ServerId+App.WsPort))
}
}
}
time.Sleep(1 * time.Minute)
}
}