2024-06-29 16:49:03 +08:00

98 lines
2.3 KiB
Go

package system
import (
"f5"
"github.com/gin-gonic/gin"
"main/constant"
. "main/global"
"main/model/system"
"net/http"
"strings"
)
type UserApi struct {
MetaMaskApi
}
func (this *UserApi) Login(c *gin.Context) {
//username := c.PostForm("username")
//password := c.PostForm("password")
//if username == "" || password == "" {
// c.JSON(http.StatusOK, gin.H{
// "errcode": 1,
// "errmsg": "请求参数不正确",
// })
// return
//}
type loginForm struct {
Username string `binding:"required" json:"username"`
Password string `binding:"required" json:"password"`
}
reqJson := loginForm{}
if err := c.ShouldBindJSON(&reqJson); err != nil {
c.JSON(http.StatusOK, gin.H{
"code": 1,
"message": err.Error(),
})
return
}
user := system.SysUser{}
//err := f5.GetApp().GetOrmDb(constant.ADMIN_DB).Where("username = ?", username).Where("password = ?", password).First(&user).Error
err := f5.GetApp().GetOrmDb(constant.ADMIN_DB).Where("username = ?", reqJson.Username).Where("password = ?", reqJson.Password).First(&user).Error
if err != nil {
c.JSON(http.StatusOK, gin.H{
"code": 1,
"message": "用户名或密码错误",
})
return
}
//token := GetApp().AddSession(username)
token := GetApp().AddSession(reqJson.Username)
c.JSON(http.StatusOK, gin.H{
"code": 0,
"message": "登录成功",
"data": user,
"token": token,
})
}
func (this *UserApi) Info(c *gin.Context) {
token := c.Request.Header.Get("Authorization")
strArr := strings.Split(token, "|")
//username := c.Query("username")
//if username == "" {
// c.JSON(http.StatusOK, gin.H{
// "code": 1,
// "message": "请求参数为空",
// })
// return
//}
user := system.SysUser{}
err := f5.GetApp().GetOrmDb(constant.ADMIN_DB).Where("username = ?", strArr[0]).First(&user).Error
if err != nil {
c.JSON(http.StatusOK, gin.H{
"code": 1,
"message": "暂无此用户",
})
return
}
user.Roles = append(user.Roles, "admin")
c.JSON(http.StatusOK, gin.H{
"code": 0,
"message": "success",
"data": user,
})
}
func (this *UserApi) Logout(c *gin.Context) {
token := c.Request.Header.Get("Authorization")
strArr := strings.Split(token, "|")
GetApp().RemoveSession(strArr[0])
c.JSON(http.StatusOK, gin.H{
"code": 0,
"message": "success",
})
}