2020-10-16 19:08:50 +08:00

100 lines
2.1 KiB
Go

package main
import (
"../cmd/mmysql"
"encoding/json"
"fmt"
"github.com/gin-gonic/gin"
//"log"
"github.com/op/go-logging"
"net/http"
"os"
"time"
)
var log = logging.MustGetLogger("example")
var format = logging.MustStringFormatter(
`%{color}%{time:15:04:05.000} %{shortfunc} > %{level:.4s} %{id:03x}%{color:reset} %{message}`,
)
func init() {
logFile, err := os.OpenFile("errors.log", os.O_WRONLY, 0666)
if err != nil {
fmt.Println(err)
}
backend1 := logging.NewLogBackend(logFile, "", 0)
backend2 := logging.NewLogBackend(os.Stderr, "", 0)
backend2Formatter := logging.NewBackendFormatter(backend2, format)
backend1Leveled := logging.AddModuleLevel(backend1)
backend1Leveled.SetLevel(logging.INFO, "")
logging.SetBackend(backend1Leveled, backend2Formatter)
}
func main() {
log.Info("run main")
//test_db_query()
router := gin.Default()
router.GET("/healcheck", func(c *gin.Context) {
// 使用结构体
var msg struct {
Name string `json:"user"`
Message string
}
msg.Name = "kingsome"
msg.Message = "Hello world!"
c.JSON(http.StatusOK, msg)
})
router.GET("/servicelist", func(c *gin.Context) {
area := c.DefaultQuery("area", "bj")
vv, err := mmysql.GetServiceList(area)
if err != nil {
log.Error(err)
}
//jsons, errs := json.Marshal(vv)
//log.Info(string(jsons))
//if errs != nil {
// log.Error(errs.Error())
//}
//body := bytes.NewBuffer(jsons)
c.JSON(http.StatusOK, vv)
})
router.POST("/servicestatus", func(c *gin.Context) {
//data=[{"id":1,"cost":1199,"ip":"192.168.100.2","status":true,"area":"bj"},{"id":2,"cost":1199,"ip":"192.168.100.3","status":true,"area":"bj"}]
data := c.PostForm("data")
log.Info(data)
var vv []*mmysql.ServiceStatus
err := json.Unmarshal([]byte(data), &vv)
if err != nil {
log.Error(err)
c.JSON(500, "failed")
}
status := mmysql.SaveServiceStatus(vv)
if status != false {
c.JSON(http.StatusOK, "success")
} else {
c.JSON(500, "failed")
}
})
s := &http.Server{
Addr: ":8000",
Handler: router,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
s.ListenAndServe()
}