初始化项目文件

This commit is contained in:
2025-07-11 16:54:11 +08:00
parent 6bffd582a0
commit 39fedaac16
213 changed files with 16944 additions and 0 deletions

68
api_iris/utils/user.go Normal file
View File

@ -0,0 +1,68 @@
package utils
import (
"errors"
"github.com/golang-jwt/jwt/v4"
"github.com/kataras/iris/v12"
"github.com/sirupsen/logrus"
"main/database"
"main/model"
)
var UserList []model.Userinfo
// GetLoginUser 根据token获取用户,返回用户信息
func GetLoginUser(ctx iris.Context) model.Userinfo {
if ctx.Values().Get("jwt") == nil {
ctx.StatusCode(iris.StatusUnauthorized)
ctx.SetErr(errors.New("未登录"))
logrus.Warningln("请求未携带token信息")
return model.Userinfo{}
}
var tokens []model.JwtKeys
db := database.GetInstance().GetMysqlDb()
auth := ctx.Values().Get("jwt").(*jwt.Token)
if err := db.Where("token = ?", auth.Raw).Find(&tokens).Error; err != nil {
logrus.Errorln("sql执行失败", err)
}
if len(tokens) == 0 {
ctx.StatusCode(iris.StatusUnauthorized)
ctx.SetErr(errors.New("未登录"))
logrus.Warningln("token信息无效")
return model.Userinfo{}
}
foobar := auth.Claims.(jwt.MapClaims)
for key, value := range foobar {
if key == "username" {
return GetUserInfo(value.(string))
}
}
ctx.StatusCode(iris.StatusInternalServerError)
ctx.SetErr(errors.New("系统错误,请联系管理员"))
logrus.Errorln("token存在但获取用户信息失败")
return model.Userinfo{}
}
// GetUserInfo 根据用户名获取用户信息,先更新本地数据
func GetUserInfo(username string) model.Userinfo {
if len(UserList) == 0 {
logrus.Warnln("暂存用户列表为空,刷新数据")
UpdateUserInfo()
}
for _, u := range UserList {
if u.Username == username {
return u
}
}
logrus.Warnln("未找到对应的用户信息")
return model.Userinfo{}
}
// UpdateUserInfo 更新当前用户信息
func UpdateUserInfo() {
db := database.GetInstance().GetMysqlDb()
if err := db.Find(&UserList).Error; err != nil {
logrus.Errorln("sql执行失败", err)
}
logrus.Infoln("刷新暂存用户列表")
}