🎨 complete SMS login function

This commit is contained in:
landaiqing
2024-08-14 00:11:32 +08:00
parent 48c5aeb0f4
commit 368adadf52
38 changed files with 687 additions and 232 deletions

View File

@@ -1,3 +0,0 @@
package auth_service
type AuthService struct{}

View File

@@ -0,0 +1,3 @@
package role_service
type RoleService struct{}

View File

@@ -0,0 +1,15 @@
package role_service
import (
"schisandra-cloud-album/global"
"schisandra-cloud-album/model"
)
// GetRoleById : 通过Id获取角色信息
func (RoleService) GetRoleById(id int64) (model.ScaAuthRole, error) {
var role model.ScaAuthRole
if err := global.DB.Where("id = ? and deleted = 0", id).First(&role).Error; err != nil {
return model.ScaAuthRole{}, err
}
return role, nil
}

View File

@@ -1,12 +1,16 @@
package service
import (
"schisandra-cloud-album/service/auth_service"
"schisandra-cloud-album/service/role_service"
"schisandra-cloud-album/service/user_role_service"
"schisandra-cloud-album/service/user_service"
)
// Services 统一导出的service
type Services struct {
AuthService auth_service.AuthService
UserService user_service.UserService
RoleService role_service.RoleService
UserRoleService user_role_service.UserRoleService
}
// Service new函数实例化实例化完成后会返回结构体地指针类型

View File

@@ -0,0 +1,3 @@
package user_role_service
type UserRoleService struct{}

View File

@@ -0,0 +1,23 @@
package user_role_service
import (
"schisandra-cloud-album/global"
"schisandra-cloud-album/model"
)
// GetUserRoleIdsByUserId 通过用户ID获取用户角色ID列表
func (UserRoleService) GetUserRoleIdsByUserId(userId int64) ([]*int64, error) {
var roleIds []*int64
if err := global.DB.Table("sca_auth_user_role").Where("user_id = ?", userId).Pluck("role_id", &roleIds).Error; err != nil {
return nil, err
}
return roleIds, nil
}
// AddUserRole 新增用户角色
func (UserRoleService) AddUserRole(userRole model.ScaAuthUserRole) error {
if err := global.DB.Create(&userRole).Error; err != nil {
return err
}
return nil
}

View File

@@ -0,0 +1,3 @@
package user_service
type UserService struct{}

View File

@@ -1,4 +1,4 @@
package auth_service
package user_service
import (
"gorm.io/gorm"
@@ -8,52 +8,60 @@ import (
)
// GetUserList 获取所有用户列表
func (AuthService) GetUserList() []*model.ScaAuthUser {
func (UserService) GetUserList() []*model.ScaAuthUser {
data := make([]*model.ScaAuthUser, 0)
global.DB.Where("deleted = 0 ").Find(&data)
return data
}
// QueryUserByUsername 根据用户名查询用户
func (AuthService) QueryUserByUsername(username string) model.ScaAuthUser {
func (UserService) QueryUserByUsername(username string) model.ScaAuthUser {
authUser := model.ScaAuthUser{}
global.DB.Where("username = ? and deleted = 0", username).First(&authUser)
return authUser
}
// QueryUserByUuid 根据用户uuid查询用户
func (AuthService) QueryUserByUuid(uuid string) model.ScaAuthUser {
func (UserService) QueryUserByUuid(uuid string) model.ScaAuthUser {
authUser := model.ScaAuthUser{}
global.DB.Where("uuid = ? and deleted = 0", uuid).First(&authUser)
return authUser
}
// AddUser 添加用户
func (AuthService) AddUser(user model.ScaAuthUser) error {
return global.DB.Create(&user).Error
func (UserService) AddUser(user model.ScaAuthUser) (model.ScaAuthUser, error) {
if err := global.DB.Create(&user).Error; err != nil {
return model.ScaAuthUser{}, err
}
// 查询创建后的用户信息
var createdUser model.ScaAuthUser
if err := global.DB.First(&createdUser, user.ID).Error; err != nil {
return model.ScaAuthUser{}, err
}
return createdUser, nil
}
// UpdateUser 更新用户
func (AuthService) UpdateUser(user model.ScaAuthUser) *gorm.DB {
func (UserService) UpdateUser(user model.ScaAuthUser) *gorm.DB {
authUser := model.ScaAuthUser{}
return global.DB.Model(&authUser).Where("uuid = ?", user.UUID).Updates(user)
return global.DB.Model(&authUser).Where("uuid = ?", user.UID).Updates(user)
}
// DeleteUser 删除用户
func (AuthService) DeleteUser(uuid string) error {
func (UserService) DeleteUser(uuid string) error {
authUser := model.ScaAuthUser{}
return global.DB.Model(&authUser).Where("uuid = ?", uuid).Updates(&model.ScaAuthUser{Deleted: &enum.DELETED}).Error
}
// QueryUserByPhone 根据手机号查询用户
func (AuthService) QueryUserByPhone(phone string) model.ScaAuthUser {
func (UserService) QueryUserByPhone(phone string) model.ScaAuthUser {
authUser := model.ScaAuthUser{}
global.DB.Where("phone = ? and deleted = 0", phone).First(&authUser)
return authUser
}
// QueryUserByEmail 根据邮箱查询用户
func (AuthService) QueryUserByEmail(email string) model.ScaAuthUser {
func (UserService) QueryUserByEmail(email string) model.ScaAuthUser {
authUser := model.ScaAuthUser{}
global.DB.Where("email = ? and deleted = 0", email).First(&authUser)
return authUser