From 5fe9cc7e8497e00b1f100f8fd65d33d694951cdb Mon Sep 17 00:00:00 2001 From: xc Date: Fri, 22 Aug 2025 17:18:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E8=82=8C=E7=B3=BB=E7=BB=9F=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=EF=BC=8C=E5=8C=85=E5=90=AB=E5=88=9B=E5=BB=BA=E4=BF=9D?= =?UTF-8?q?=E5=AD=98sqlite=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aufs/core/setting.go | 37 ++++++++++ aufs/db/dbconst.go | 10 +++ aufs/db/servDb.go | 171 +++++++++++++++++++++++++++++++++++++++++++ aufs/ups.db | Bin 0 -> 16384 bytes 4 files changed, 218 insertions(+) create mode 100644 aufs/core/setting.go create mode 100644 aufs/db/servDb.go diff --git a/aufs/core/setting.go b/aufs/core/setting.go new file mode 100644 index 0000000..0350645 --- /dev/null +++ b/aufs/core/setting.go @@ -0,0 +1,37 @@ +package core + +import ( + "fmt" + "net/http" + + "github.com/jmoiron/sqlx" +) + +// 系统设置 +func Settdb(w http.ResponseWriter, r *http.Request) { + // 检查数据表是否存在 + scdb, err := sqlx.Open("sqlite3", "./sc.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) + 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/dbconst.go b/aufs/db/dbconst.go index d83b0f6..e6d929a 100644 --- a/aufs/db/dbconst.go +++ b/aufs/db/dbconst.go @@ -7,3 +7,13 @@ type StFileInfo struct { Fhash string `json:"fhash"` Fname string `json:"fname"` } + +// 服务器信息 +type StServerInfo struct { + Id string `json:"id"` + Scname string `json:"scname"` + Addr string `json:"addr"` + Port string `json:"port"` + Token string `json:"token"` + Status int `json:"status"` +} diff --git a/aufs/db/servDb.go b/aufs/db/servDb.go new file mode 100644 index 0000000..61e9e75 --- /dev/null +++ b/aufs/db/servDb.go @@ -0,0 +1,171 @@ +package db + +import "fmt" + +// 创建服务器数据库 +func CreateScdb() { + // 建表语句 + 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 = db.Exec(sts) + if err != nil { + fmt.Printf("Failed to create database table: %v\n", err) + return + } + fmt.Printf("Successfully created database table! \n") +} + +//记录服务器的信息 +func AddServerInfo(info *StServerInfo) error { + // 插入语句 + stmt, err := db.Prepare("INSERT INTO s_info (id, addr, port, token) VALUES (?, ?, ?, ?)") + if err != nil { + return err + } + defer stmt.Close() + // 执行插入语句 + _, err = stmt.Exec(info.Id, info.Addr, info.Port, info.Token) + if err != nil { + return err + } + return nil +} + +// 查询所有的记录 +func GetlScList() (sclist []StFileInfo) { + // 结果集 + sclist = make([]StFileInfo, 0) + + // 查询语句 + rows, err := db.Query("SELECT * FROM f_info WHERE fpbs = ?") + // + if err != nil { + fmt.Printf("Failed to query data: %v\n", err) + return + } + // FOR loop + for rows.Next() { + // var weight float64 + var st StFileInfo + err = rows.Scan(&st.Id, &st.Fname, &st.Fpath, &st.Fhash) + if err != nil { + fmt.Printf("Failed to read data: %v\n", err) + continue + } + sclist = append(sclist, st) + } + return sclist +} + +// 获取服务器信息 +func GetServerInfo(id string) (*StServerInfo, error) { + // 查询语句 + stmt, err := db.Prepare("SELECT id, addr, port, token FROM s_info WHERE id = ?") + if err != nil { + return nil, err + } + defer stmt.Close() + // 执行查询语句 + row := stmt.QueryRow(id) + // 定义一个结构体变量 + var info StServerInfo + // 扫描查询结果 + err = row.Scan(&info.Id, &info.Addr, &info.Port, &info.Token) + if err != nil { + return nil, err + } + return &info, nil +} + +// 更新服务器信息 +func UpdateServerInfo(info *StServerInfo) error { + // 更新语句 + stmt, err := db.Prepare("UPDATE s_info SET addr = ?, port = ?, token = ? WHERE id = ?") + if err != nil { + return err + } + defer stmt.Close() + // 执行更新语句 + _, err = stmt.Exec(info.Addr, info.Port, info.Token, info.Id) + if err != nil { + return err + } + return nil +} + +// 删除服务器信息 +func DeleteServerInfo(id string) error { + // 删除语句 + stmt, err := db.Prepare("DELETE FROM s_info WHERE id = ?") + if err != nil { + return err + } + defer stmt.Close() + // 执行删除语句 + _, err = stmt.Exec(id) + if err != nil { + return err + } + return nil +} + +// 获取所有服务器信息 +func GetAllServerInfo() ([]*StServerInfo, error) { + // 查询语句 + stmt, err := db.Prepare("SELECT id, addr, port, token FROM s_info") + if err != nil { + return nil, err + } + defer stmt.Close() + // 执行查询语句 + rows, err := stmt.Query() + if err != nil { + return nil, err + } + defer rows.Close() + // 定义一个结构体变量 + var info StServerInfo + // 定义一个切片变量 + var infos []*StServerInfo + // 遍历查询结果 + for rows.Next() { + // 扫描查询结果 + err = rows.Scan(&info.Id, &info.Addr, &info.Port, &info.Token) + if err != nil { + return nil, err + } + // 追加到切片变量 + infos = append(infos, &info) + } + // 返回切片变量 + return infos, nil +} + +// 检查服务器是否存在 +func CheckServerExist(id string) (bool, error) { + // 查询语句 + stmt, err := db.Prepare("SELECT id FROM s_info WHERE id = ?") + if err != nil { + return false, err + } + defer stmt.Close() + // 执行查询语句 + row := stmt.QueryRow(id) + // 定义一个结构体变量 + var info StServerInfo + // 扫描查询结果 + err = row.Scan(&info.Id) + if err != nil { + return false, err + } + // 返回结果 + return true, nil +} diff --git a/aufs/ups.db b/aufs/ups.db index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3b76a159ca8e79ae91248a5a95bd86ab4cf9becf 100644 GIT binary patch literal 16384 zcmeI#y$%6E5Ww+Sj&9Luw-R!q@dA!qC-K>+-OOLNUS}8v