160 lines
4.6 KiB
Go
160 lines
4.6 KiB
Go
package auth_api
|
|
|
|
import (
|
|
ginI18n "github.com/gin-contrib/i18n"
|
|
"github.com/gin-gonic/gin"
|
|
"reflect"
|
|
"schisandra-cloud-album/common/result"
|
|
"schisandra-cloud-album/model"
|
|
"schisandra-cloud-album/service"
|
|
"schisandra-cloud-album/utils"
|
|
)
|
|
|
|
var authService = service.Service.AuthService
|
|
|
|
// GetUserList
|
|
// @Summary 获取所有用户列表
|
|
// @Tags 鉴权模块
|
|
// @Success 200 {string} json
|
|
// @Router /api/auth/user/List [get]
|
|
func (AuthAPI) GetUserList(c *gin.Context) {
|
|
userList := authService.GetUserList()
|
|
result.OkWithData(userList, c)
|
|
}
|
|
|
|
// QueryUserByUsername
|
|
// @Summary 根据用户名查询用户
|
|
// @Tags 鉴权模块
|
|
// @Param username query string true "用户名"
|
|
// @Success 200 {string} json
|
|
// @Router /api/auth/user/query_by_username [get]
|
|
func (AuthAPI) QueryUserByUsername(c *gin.Context) {
|
|
username := c.Query("username")
|
|
user := authService.QueryUserByUsername(username)
|
|
if reflect.DeepEqual(user, model.ScaAuthUser{}) {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "NotFoundUser"), c)
|
|
return
|
|
}
|
|
result.OkWithData(user, c)
|
|
}
|
|
|
|
// QueryUserByUuid
|
|
// @Summary 根据uuid查询用户
|
|
// @Tags 鉴权模块
|
|
// @Param uuid query string true "用户uuid"
|
|
// @Success 200 {string} json
|
|
// @Router /api/auth/user/query_by_uuid [get]
|
|
func (AuthAPI) QueryUserByUuid(c *gin.Context) {
|
|
uuid := c.Query("uuid")
|
|
user := authService.QueryUserByUuid(uuid)
|
|
if reflect.DeepEqual(user, model.ScaAuthUser{}) {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "NotFoundUser"), c)
|
|
return
|
|
}
|
|
result.OkWithData(user, c)
|
|
}
|
|
|
|
// DeleteUser 删除用户
|
|
// @Summary 删除用户
|
|
// @Tags 鉴权模块
|
|
// @Param uuid query string true "用户uuid"
|
|
// @Success 200 {string} json
|
|
// @Router /api/auth/user/delete [delete]
|
|
func (AuthAPI) DeleteUser(c *gin.Context) {
|
|
uuid := c.Query("uuid")
|
|
err := authService.DeleteUser(uuid)
|
|
if err != nil {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "DeletedFailed"), c)
|
|
return
|
|
}
|
|
result.OkWithMessage(ginI18n.MustGetMessage(c, "DeletedSuccess"), c)
|
|
}
|
|
|
|
// QueryUserByPhone 根据手机号查询用户
|
|
// @Summary 根据手机号查询用户
|
|
// @Tags 鉴权模块
|
|
// @Param phone query string true "手机号"
|
|
// @Success 200 {string} json
|
|
// @Router /api/auth/user/query_by_phone [get]
|
|
func (AuthAPI) QueryUserByPhone(c *gin.Context) {
|
|
phone := c.Query("phone")
|
|
user := authService.QueryUserByPhone(phone)
|
|
if reflect.DeepEqual(user, model.ScaAuthUser{}) {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "NotFoundUser"), c)
|
|
return
|
|
}
|
|
result.OkWithData(user, c)
|
|
}
|
|
|
|
// AccountLogin 账号登录
|
|
// @Summary 账号登录
|
|
// @Tags 鉴权模块
|
|
// @Param account query string true "账号"
|
|
// @Param password query string true "密码"
|
|
// @Success 200 {string} json
|
|
// @Router /api/auth/user/login [post]
|
|
func (AuthAPI) AccountLogin(c *gin.Context) {
|
|
account := c.PostForm("account")
|
|
password := c.PostForm("password")
|
|
isPhone := utils.IsPhone(account)
|
|
if isPhone {
|
|
user := authService.QueryUserByPhone(account)
|
|
if reflect.DeepEqual(user, model.ScaAuthUser{}) {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "PhoneNotRegister"), c)
|
|
} else {
|
|
verify := utils.Verify(password, *user.Password)
|
|
if verify {
|
|
result.OkWithData(user, c)
|
|
} else {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "PasswordError"), c)
|
|
}
|
|
}
|
|
}
|
|
isEmail := utils.IsEmail(account)
|
|
if isEmail {
|
|
user := authService.QueryUserByEmail(account)
|
|
if reflect.DeepEqual(user, model.ScaAuthUser{}) {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "EmailNotRegister"), c)
|
|
} else {
|
|
verify := utils.Verify(password, *user.Password)
|
|
if verify {
|
|
result.OkWithData(user, c)
|
|
} else {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "PasswordError"), c)
|
|
}
|
|
}
|
|
}
|
|
isUsername := utils.IsUsername(account)
|
|
if isUsername {
|
|
user := authService.QueryUserByUsername(account)
|
|
if reflect.DeepEqual(user, model.ScaAuthUser{}) {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "UsernameNotRegister"), c)
|
|
} else {
|
|
verify := utils.Verify(password, *user.Password)
|
|
if verify {
|
|
result.OkWithData(user, c)
|
|
} else {
|
|
result.FailWithMessage(ginI18n.MustGetMessage(c, "PasswordError"), c)
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
// Register 用户注册
|
|
// @Summary 用户注册
|
|
// @Tags 鉴权模块
|
|
// @Param user body model.ScaAuthUser true "用户信息"
|
|
// @Success 200 {string} json
|
|
// @Router /api/auth/user/register [post]
|
|
func (AuthAPI) Register(c *gin.Context) {
|
|
var user model.ScaAuthUser
|
|
_ = c.ShouldBindJSON(&user)
|
|
err := authService.AddUser(user)
|
|
if err != nil {
|
|
result.FailWithMessage("用户注册失败!", c)
|
|
return
|
|
}
|
|
result.OkWithMessage("用户注册成功!", c)
|
|
}
|