up
This commit is contained in:
@@ -1,71 +0,0 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// 定义User模型
|
||||
type User struct {
|
||||
UserID int `gorm:"primaryKey"`
|
||||
Username string `gorm:"not null"`
|
||||
Email string `gorm:"not null"`
|
||||
AvatarURL string
|
||||
AccessToken string `gorm:"not null"`
|
||||
}
|
||||
|
||||
// 初始化GORM数据库
|
||||
func initializeDB() (*gorm.DB, error) {
|
||||
dsn := os.Getenv("MYSQL_DSN")
|
||||
|
||||
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return db, nil
|
||||
}
|
||||
|
||||
// 创建用户
|
||||
func createUser(db *gorm.DB, user *User) error {
|
||||
result := db.Create(user)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// 根据用户ID查询用户
|
||||
func getUserByID(db *gorm.DB, userID int) (*User, error) {
|
||||
var user User
|
||||
|
||||
result := db.First(&user, userID)
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
// 更新用户
|
||||
func updateUser(db *gorm.DB, user *User) error {
|
||||
result := db.Save(user)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
func deleteUser(db *gorm.DB, user *User) error {
|
||||
result := db.Delete(user)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
package db
|
||||
|
||||
import "time"
|
||||
|
||||
type Key struct {
|
||||
ID uint `gorm:"primarykey" json:"id,omitempty"`
|
||||
Key string `gorm:"unique;not null" json:"key,omitempty"`
|
||||
Name string `gorm:"unique;not null" json:"name,omitempty"`
|
||||
UserId string `json:"-,omitempty"`
|
||||
CreatedAt time.Time `json:"createdAt,omitempty"`
|
||||
UpdatedAt time.Time `json:"updatedAt,omitempty"`
|
||||
}
|
||||
|
||||
func GetKeyrByName(name string) (*Key, error) {
|
||||
var key Key
|
||||
result := db.First(&key, "name = ?", name)
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
return &key, nil
|
||||
}
|
||||
|
||||
func GetAllKeys() ([]Key, error) {
|
||||
var keys []Key
|
||||
if err := db.Find(&keys).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return keys, nil
|
||||
}
|
||||
|
||||
// 添加记录
|
||||
func AddKey(apikey, name string) error {
|
||||
key := Key{
|
||||
Key: apikey,
|
||||
Name: name,
|
||||
}
|
||||
if err := db.Create(&key).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 删除记录
|
||||
func DeleteKey(id uint) error {
|
||||
if err := db.Delete(&Key{}, id).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 更新记录
|
||||
func UpdateKey(id uint, apikey string, userId string) error {
|
||||
key := Key{
|
||||
Key: apikey,
|
||||
UserId: userId,
|
||||
}
|
||||
if err := db.Model(&Key{}).Where("id = ?", id).Updates(key).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
IsDelete bool `gorm:"default:false" json:"IsDelete"`
|
||||
ID uint `gorm:"primarykey" json:"id,omitempty"`
|
||||
Name string `gorm:"unique;not null" json:"name,omitempty"`
|
||||
Token string `gorm:"unique;not null" json:"token,omitempty"`
|
||||
CreatedAt time.Time `json:"createdAt,omitempty"`
|
||||
UpdatedAt time.Time `json:"updatedAt,omitempty"`
|
||||
TotalTokens int `json:"total_tokens,omitempty"`
|
||||
// DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
||||
}
|
||||
|
||||
func CreateUser(u *User) error {
|
||||
result := db.Create(u)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 添加用户
|
||||
func AddUser(name, token string) error {
|
||||
user := &User{Name: name, Token: token}
|
||||
result := db.Create(&user)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
func DeleteUser(id uint) error {
|
||||
result := db.Delete(&User{}, id)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 修改用户
|
||||
func UpdateUser(id uint, token string) error {
|
||||
user := &User{Token: token}
|
||||
result := db.Model(&User{}).Where("id = ?", id).Updates(user)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetUserByID(id uint) (*User, error) {
|
||||
var user User
|
||||
result := db.Where("id = ?", id).First(&user)
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
func GetUserByName(name string) (*User, error) {
|
||||
var user User
|
||||
result := db.Where(&User{Name: name}).First(&user)
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
func GetAllUsers() ([]*User, error) {
|
||||
var users []*User
|
||||
result := db.Find(&users)
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
return users, nil
|
||||
}
|
||||
16
pkg/store/mysql/mysql.go
Normal file
16
pkg/store/mysql/mysql.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package mysql
|
||||
|
||||
import (
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// 初始化GORM数据库
|
||||
func NewDB(dsn string) *gorm.DB {
|
||||
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return db
|
||||
}
|
||||
@@ -8,9 +8,7 @@ import (
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
var db *gorm.DB
|
||||
|
||||
func init() {
|
||||
func NewDB() *gorm.DB {
|
||||
if _, err := os.Stat("db"); os.IsNotExist(err) {
|
||||
errDir := os.MkdirAll("db", 0755)
|
||||
if errDir != nil {
|
||||
@@ -23,9 +21,4 @@ func init() {
|
||||
panic("failed to connect database")
|
||||
}
|
||||
|
||||
// 自动迁移 User 结构体
|
||||
err = db.AutoMigrate(&User{}, &Key{})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user