You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.8 KiB
Go
73 lines
1.8 KiB
Go
package dao
|
|
|
|
import (
|
|
"context"
|
|
"github.com/gogf/gf/os/glog"
|
|
do "awesomeProject/internal/model/do"
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"awesomeProject/internal/model/entity"
|
|
|
|
)
|
|
|
|
// UserDAO 定义了用户数据访问对象。
|
|
type UserDAO struct {
|
|
DB gdb.DB
|
|
|
|
}
|
|
|
|
// NewUserDAO 创建一个新的用户数据访问对象。
|
|
func NewUserDAO() *UserDAO {
|
|
return &UserDAO{DB: g.DB()}
|
|
}
|
|
|
|
// GetUserByID 根据用户ID从数据库中查询用户信息。
|
|
func (d *UserDAO) GetUserByID(ctx context.Context, id int64) (*do.UserDO, error) {
|
|
user := &do.UserDO{}
|
|
err := d.DB.Model("user").Where("id", id).Scan(user)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return user, nil
|
|
}
|
|
|
|
|
|
func newUserByUserDO(user do.UserDO) entity.User {
|
|
var userEntity entity.User
|
|
gconv.Struct(user, &userEntity)
|
|
return userEntity
|
|
}
|
|
|
|
|
|
// GetUserByID 根据用户ID从数据库中查询用户信息。
|
|
func (d *UserDAO) GetUserByUsernameAndPassword(ctx context.Context, uname string,password string) (entity.User, error) {
|
|
user := &do.UserDO{}
|
|
err := d.DB.Model("user").Where("uname=? AND password=?", uname,password).Scan(user)
|
|
if err != nil {
|
|
glog.Error(ctx, "user:" + uname + " not found!")
|
|
return nil, err
|
|
}
|
|
|
|
return newUserByUserDO(user), nil
|
|
}
|
|
|
|
// CreateUser 向数据库中插入新用户。
|
|
func (d *UserDAO) CreateUser(ctx context.Context, user *do.UserDO) error {
|
|
_, err := d.DB.Model("user").Data(user).Insert()
|
|
return err
|
|
}
|
|
|
|
// UpdateUser 更新数据库中的用户信息。
|
|
func (d *UserDAO) UpdateUser(ctx context.Context, user *do.UserDO) error {
|
|
_, err := d.DB.Model("user").Data(user).Where("id", user.UID).Update()
|
|
return err
|
|
}
|
|
|
|
// DeleteUser 删除数据库中的用户。
|
|
func (d *UserDAO) DeleteUser(ctx context.Context, id int64) error {
|
|
_, err := d.DB.Model("user").Where("id", id).Delete()
|
|
return err
|
|
}
|
|
|
|
|