56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
|
|
package database
|
||
|
|
|
||
|
|
import (
|
||
|
|
"errors"
|
||
|
|
"github.com/Nanqipro/YunQue-Tech-Projects/ai_english_learning/serve/internal/model"
|
||
|
|
)
|
||
|
|
|
||
|
|
type UserRepository struct {
|
||
|
|
// 实际项目中这里会有数据库连接
|
||
|
|
}
|
||
|
|
|
||
|
|
func NewUserRepository() *UserRepository {
|
||
|
|
return &UserRepository{}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 创建用户
|
||
|
|
func (r *UserRepository) Create(user *model.User) (string, error) {
|
||
|
|
// 实际项目中这里会执行数据库插入操作
|
||
|
|
// 模拟生成用户ID
|
||
|
|
user.ID = "user-123"
|
||
|
|
return user.ID, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
// 根据ID获取用户
|
||
|
|
func (r *UserRepository) GetByID(id string) (*model.User, error) {
|
||
|
|
// 实际项目中这里会执行数据库查询操作
|
||
|
|
if id == "user-123" {
|
||
|
|
return &model.User{
|
||
|
|
ID: id,
|
||
|
|
Username: "testuser",
|
||
|
|
Email: "test@example.com",
|
||
|
|
Avatar: "",
|
||
|
|
}, nil
|
||
|
|
}
|
||
|
|
return nil, errors.New("用户不存在")
|
||
|
|
}
|
||
|
|
|
||
|
|
// 根据邮箱获取用户
|
||
|
|
func (r *UserRepository) GetByEmail(email string) (*model.User, error) {
|
||
|
|
// 实际项目中这里会执行数据库查询操作
|
||
|
|
if email == "test@example.com" {
|
||
|
|
return &model.User{
|
||
|
|
ID: "user-123",
|
||
|
|
Username: "testuser",
|
||
|
|
Email: email,
|
||
|
|
Password: "password123", // 实际项目中密码应该是加密的
|
||
|
|
}, nil
|
||
|
|
}
|
||
|
|
return nil, errors.New("用户不存在")
|
||
|
|
}
|
||
|
|
|
||
|
|
// 更新用户信息
|
||
|
|
func (r *UserRepository) Update(user *model.User) error {
|
||
|
|
// 实际项目中这里会执行数据库更新操作
|
||
|
|
return nil
|
||
|
|
}
|