feat: 首次提交,添加Web界面和Redis支持的数据管理系统

This commit is contained in:
2025-09-01 00:45:37 +08:00
parent 7abb872b2c
commit b9fbe07b70
30 changed files with 4970 additions and 0 deletions

107
db/local.go Normal file
View File

@@ -0,0 +1,107 @@
package db
import (
"encoding/json"
"errors"
"fmt"
"os"
)
var localDB []Token
type Token struct {
Token string `json:"token"`
DedupObject string `json:"dedup_object"`
}
func InitLocalDB() {
start:
data, err := os.ReadFile("./token.json")
if os.IsNotExist(err) {
os.WriteFile("./token.json", []byte("[]"), 0644)
goto start
} else if err != nil {
fmt.Println(err)
}
err = json.Unmarshal(data, &localDB)
if err != nil {
fmt.Println(err)
}
}
func ListToken() []Token {
InitLocalDB()
return localDB
}
func CreateToken(token string, dedupObject string) error {
InitLocalDB()
for _, t := range localDB {
if t.Token == token {
return errors.New("token已经存在")
}
}
a := append(localDB, Token{token, dedupObject})
marshal, err := json.Marshal(a)
if err != nil {
return err
}
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
return err
}
InitLocalDB()
return nil
}
func UpdateToken(token string, dedupObject string) error {
InitLocalDB()
for i, t := range localDB {
if t.Token == token {
localDB[i].DedupObject = dedupObject
marshal, err := json.Marshal(localDB)
if err != nil {
return err
}
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
return err
}
return nil
}
}
InitLocalDB()
return errors.New("token not found")
}
func DeleteToken(token string) error {
InitLocalDB()
for i, t := range localDB {
if t.Token == token {
localDB = append(localDB[:i], localDB[i+1:]...)
marshal, err := json.Marshal(localDB)
if err != nil {
return err
}
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
return err
}
return nil
}
}
InitLocalDB()
return errors.New("token not found")
}
func GetDedupObject(token string) (dedupObject string, err error) {
for i, t := range localDB {
if t.Token == token {
return localDB[i].DedupObject, nil
}
}
return "", errors.New("未找到Token")
}

26
db/redis.go Normal file
View File

@@ -0,0 +1,26 @@
package db
import (
"dypid/config"
"dypid/global"
"fmt"
"github.com/redis/go-redis/v9"
)
// InitRedis 初始化Redis
func InitRedis() {
global.RDB = redis.NewClient(&redis.Options{
Addr: config.APPConfig.Redis.Host,
Password: config.APPConfig.Redis.Password,
DB: config.APPConfig.Redis.DB,
//PoolSize: 1000,
})
ping := global.RDB.Ping(global.RCtx)
if ping.Err() != nil {
fmt.Println("Redis初始化失败", ping.Err())
panic("Redis error")
} else {
fmt.Println("Redis初始化完成")
}
}