2023-09-07 17:53:11 +08:00

80 lines
1.8 KiB
Go

package model
import (
"database/sql"
"log"
"main/db"
)
// User 结构体表示用户
type User struct {
AccountId string `db:"account_id"`
Username string `db:"name"`
Level int32 `db:"level"`
}
// CreateUser 创建新用户
func CreateUser(user *User) (int64, error) {
query := "INSERT INTO users (username, email) VALUES (?, ?)"
result, err := db.GetDB().Exec(query, user.Username, user.Level)
if err != nil {
log.Printf("Error creating user: %v", err)
return 0, err
}
userID, err := result.LastInsertId()
if err != nil {
log.Printf("Error getting last insert ID: %v", err)
return 0, err
}
return userID, nil
}
// GetUserByID 根据用户ID获取用户信息
func GetUserByID(userID int64) (*User, error) {
query := "SELECT id, username, email FROM users WHERE id = ?"
var user User
err := db.GetDB().Get(&user, query, userID)
if err != nil {
if err == sql.ErrNoRows {
return nil, nil // 用户不存在
}
log.Printf("Error getting user by ID: %v", err)
return nil, err
}
return &user, nil
}
// UpdateUser 更新用户信息
func UpdateUser(user *User) error {
query := "UPDATE users SET username = ?, level = ? WHERE id = ?"
_, err := db.GetDB().Exec(query, user.Username, user.Level, user.AccountId)
if err != nil {
log.Printf("Error updating user: %v", err)
return err
}
return nil
}
// DeleteUser 删除用户
func DeleteUser(userID int64) error {
query := "DELETE FROM users WHERE id = ?"
_, err := db.GetDB().Exec(query, userID)
if err != nil {
log.Printf("Error deleting user: %v", err)
return err
}
return nil
}
// ListUsers 获取所有用户列表
func ListUsers() ([]User, error) {
query := "SELECT account_id, name, level FROM t_user"
var users []User
err := db.GetDB().Select(&users, query)
if err != nil {
log.Printf("Error listing users: %v", err)
return nil, err
}
return users, nil
}