package dao import ( "errors" "file-manger-server/db" "file-manger-server/domain" ) type UserDao struct{} func (dao UserDao) TableName() string { return "user" } func (dao UserDao) GetAll(user domain.User) ([]domain.User, int64, error) { var users []domain.User count, err := db.Engin.Table("user").FindAndCount(&users, &user) return users, count, err } func (dao UserDao) GetById(id int64) (domain.User, error) { var user domain.User res, err := db.Engin.Table("user").Where("id=?", id).Get(&user) if !res { return user, errors.New("用户不存在") } return user, err } func (dao UserDao) GetByUsername(username string) (domain.User, error) { var user domain.User res, err := db.Engin.Table("user").Where("username=?", username).Get(&user) if !res { return user, errors.New("用户不存在") } return user, err } func (dao UserDao) Login(username, password string) (domain.User, error) { var user domain.User pwd := PasswordHashCompute(password) _, err := db.Engin.Table("user").Where("username=? and password=?", username, pwd).Get(&user) if err != nil { return user, err } if user.Id != 0 { return user, nil } else { return user, errors.New("用户名或密码错误") } } // Register 简单注册功能 func (dao UserDao) Register(username, password string) error { count, err := db.Engin.Table("user").Where("username=?", username).Count() if err != nil { return err } if count > 0 { return errors.New("用户名已存在") } user := domain.User{ Username: username, Password: PasswordHashCompute(password), Status: 1, } _, err = db.Engin.Table("user").Insert(&user) return err }