feat: 首次提交,添加Web界面和Redis支持的数据管理系统
This commit is contained in:
107
db/local.go
Normal file
107
db/local.go
Normal 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
26
db/redis.go
Normal 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初始化完成")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user