4 changed files with 218 additions and 0 deletions
@ -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") |
|||
|
|||
} |
|||
@ -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 |
|||
} |
|||
Binary file not shown.
Loading…
Reference in new issue