diff --git a/aufs/core/setting.go b/aufs/core/setting.go index 0350645..380e8b9 100644 --- a/aufs/core/setting.go +++ b/aufs/core/setting.go @@ -1,37 +1,65 @@ package core import ( + "aufs/db" + "encoding/json" "fmt" + "log" "net/http" "github.com/jmoiron/sqlx" + _ "github.com/logoove/sqlite" ) +// 输出的结构 +type ScJson struct { + Message string `json:"message"` + Status int `json:"status"` + Data []db.StServerInfo `json:"data"` +} + // 系统设置 func Settdb(w http.ResponseWriter, r *http.Request) { // 检查数据表是否存在 - scdb, err := sqlx.Open("sqlite3", "./sc.db") + scdb, err := sqlx.Open("sqlite", "./ups.db") if err != nil { fmt.Printf("Failed to open database: %v\n", err) return } defer scdb.Close() - //创建服务表 - sts := ` - CREATE TABLE sc_server ( - id INTEGER PRIMARY KEY NOT NULL PRIMARY KEY AUTOINCREMENT, - scname TEXT NOT NULL, - addr TEXT NOT NULL, - port TEXT NOT NULL, - token TEXT NOT NULL, - status INTEGER NOT NULL - );` - // 执行建表语句 - _, err = scdb.Exec(sts) + // 如果表sc_server不存在,则创建 + _, err = scdb.Exec("SELECT name FROM sqlite_master WHERE type='table' AND name='sc_server'") if err != nil { - fmt.Printf("Failed to create database table: %v\n", err) - return + // cuowu + log.Fatalf("table has exists:%s", err) } - fmt.Printf("Successfully created database table! \n") + //如果表存在 + sclst := db.GetlScList() + // + scresp := ScJson{ + Message: "success", + Status: 200, + Data: sclst, + } + uCorsHadler(w, r) + json.NewEncoder(w).Encode(scresp) + + // 表不存在,创建表 + // sts := ` + // CREATE TABLE IF NOT EXISTS sc_server ( + // id INTEGER PRIMARY KEY NOT NULL, + // scname TEXT NOT NULL, + // addr TEXT NOT NULL, + // port TEXT NOT NULL, + // token TEXT NOT NULL, + // status INTEGER NOT NULL + // );` + // 执行建表语句 + // _, err = scdb.Exec(sts) + // if err != nil { + // fmt.Printf("Failed to create database table: %v\n", err) + // return + // } + // fmt.Printf("Successfully created database table! \n") } diff --git a/aufs/db/servDb.go b/aufs/db/servDb.go index 61e9e75..4e86d18 100644 --- a/aufs/db/servDb.go +++ b/aufs/db/servDb.go @@ -40,9 +40,9 @@ func AddServerInfo(info *StServerInfo) error { } // 查询所有的记录 -func GetlScList() (sclist []StFileInfo) { +func GetlScList() (sclist []StServerInfo) { // 结果集 - sclist = make([]StFileInfo, 0) + sclist = make([]StServerInfo, 0) // 查询语句 rows, err := db.Query("SELECT * FROM f_info WHERE fpbs = ?") @@ -54,8 +54,10 @@ func GetlScList() (sclist []StFileInfo) { // FOR loop for rows.Next() { // var weight float64 - var st StFileInfo - err = rows.Scan(&st.Id, &st.Fname, &st.Fpath, &st.Fhash) + var st StServerInfo + //将赋值到对应的字段上 + err = rows.Scan(&st.Id, &st.Port, &st.Scname, &st.Status, &st.Token) + if err != nil { fmt.Printf("Failed to read data: %v\n", err) continue diff --git a/aufs/main.go b/aufs/main.go index 6dba790..6611986 100644 --- a/aufs/main.go +++ b/aufs/main.go @@ -30,12 +30,14 @@ func startWeb() { // http.HandleFunc("/sendZip", core.SendZip) // 系统监控 http.HandleFunc("/sysinfo", core.SysMonitor) + //保存监听的服务器 + http.HandleFunc("/scdb", core.Settdb) // 内存信息 http.HandleFunc("/dtmem", core.Dtmem) // 启动HTTP服务器并监听端口 80,如果出现错误,则打印错误信息并退出 - fmt.Printf("Starting server at port:" + config.G.Port) + fmt.Printf("Starting server at port:%v\n", config.G.Port) sport := fmt.Sprintf(":%v", config.G.Port) if err := http.ListenAndServe(sport, nil); err != nil { log.Fatal(err) diff --git a/aufs/ups.db b/aufs/ups.db index 3b76a15..1278718 100644 Binary files a/aufs/ups.db and b/aufs/ups.db differ