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 }