Browse Source

增肌系统设置,包含创建保存sqlite数据库

master
xyiege 5 months ago
parent
commit
5fe9cc7e84
  1. 37
      aufs/core/setting.go
  2. 10
      aufs/db/dbconst.go
  3. 171
      aufs/db/servDb.go
  4. BIN
      aufs/ups.db

37
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")
}

10
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"`
}

171
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
}

BIN
aufs/ups.db

Binary file not shown.
Loading…
Cancel
Save