显示创建用户

This commit is contained in:
2026-04-04 22:23:45 +08:00
parent 550646b7d7
commit 77cea1116f
5 changed files with 90 additions and 19 deletions
+55 -14
View File
@@ -107,6 +107,39 @@ func AuthenticationAuthorityFromCookie(c string) (*models.TabUser_, error) {
} else { } else {
return nil, errors.New("cookie 参数错误") return nil, errors.New("cookie 参数错误")
} }
}
func GetUserInfoFromUserID(userID uint) (*models.TabUserInfo_){
//通过id获取用户info
if(userID <=0){
return nil
}
//先查询用户是否存在
var user models.TabUser_
user.ID = userID
if models.DB.Where(&user).First(&user).Error==nil{
var userinfo models.TabUserInfo_
userinfo.UserID=user.ID
if models.DB.Where(&userinfo).First(&userinfo).Error==nil{
return &userinfo
}else{
//无记录,创建一条
userinfo.Username=user.Name
userinfo.FirstName=user.Email
userinfo.Birthdate=(time.Now())
models.DB.Create(&userinfo)
return &userinfo
}
}
return nil
} }
func AuthenticationAuthority(ctx *gin.Context) (bool, models.TabUser_, map[string]interface{}) { func AuthenticationAuthority(ctx *gin.Context) (bool, models.TabUser_, map[string]interface{}) {
@@ -130,6 +163,8 @@ func AuthenticationAuthority(ctx *gin.Context) (bool, models.TabUser_, map[strin
} }
func ApiUser(r *gin.RouterGroup) { func ApiUser(r *gin.RouterGroup) {
r.GET("/test", func(ctx *gin.Context) { r.GET("/test", func(ctx *gin.Context) {
@@ -139,6 +174,23 @@ func ApiUser(r *gin.RouterGroup) {
ReturnJson(ctx, "apiOK", nil) ReturnJson(ctx, "apiOK", nil)
}) })
//get获取用户info
r.GET("/getuserinfo/:id",func(ctx *gin.Context) {
idStr := ctx.Param("id")
id, err := strconv.Atoi(idStr)
var redata map[string]interface{} = make(map[string]interface{})
if err == nil {
userinfo:=GetUserInfoFromUserID(uint(id))
if(userinfo!=nil){
redata["userinfo"]=*userinfo
}
}
ReturnJson(ctx, "apiOK", redata)
})
//修改用户密码 //修改用户密码
r.POST("/changePassword", func(ctx *gin.Context) { r.POST("/changePassword", func(ctx *gin.Context) {
isAuth, user, data := AuthenticationAuthority(ctx) isAuth, user, data := AuthenticationAuthority(ctx)
@@ -343,26 +395,15 @@ func ApiUser(r *gin.RouterGroup) {
isAuth, user, _ := AuthenticationAuthority(ctx) isAuth, user, _ := AuthenticationAuthority(ctx)
if isAuth { if isAuth {
//载入用户info //载入用户info
var userinfo models.TabUserInfo_
userinfo.UserID = user.ID
//fmt.Println(userInfo) //fmt.Println(userInfo)
var redata map[string]interface{} = make(map[string]interface{}) var redata map[string]interface{} = make(map[string]interface{})
if models.DB.Where(&userinfo).First(&userinfo).Error == nil {
redata["userInfo"] = userinfo
} else {
//无记录,创建一条
userinfo.Username=user.Name
userinfo.FirstName=user.Email
userinfo.Birthdate=(time.Now())
models.DB.Create(&userinfo)
//重新拉一条数据
redata["userInfo"] = userinfo info:=GetUserInfoFromUserID(user.ID)
} redata["userInfo"] = *info
user.Pass = "" user.Pass = ""
user.Salt = "" user.Salt = ""
redata["user"] = user redata["user"] = user
ReturnJson(ctx, "apiOK", redata) ReturnJson(ctx, "apiOK", redata)
+8
View File
@@ -0,0 +1,8 @@
import { api } from './index'
export const usersApi = {
getUserInfoFromUserID(UserID) {
return api.get('/users/getuserinfo/'+UserID)
},
}
@@ -122,7 +122,7 @@ const navItems = computed(() => [
alt="avatar" alt="avatar"
/> />
<span class="max-w-24 truncate">{{ <span class="max-w-24 truncate">{{
userStore.user?.Name || "" userStore.userInfo?userStore.userInfo.Username:userStore.user.Name
}}</span> }}</span>
</button> </button>
<Transition <Transition
+23 -1
View File
@@ -2,13 +2,35 @@
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import { ref } from 'vue' import { ref } from 'vue'
import { usersApi } from '@/api/users';
export const useUsersStore = defineStore('users', () => { export const useUsersStore = defineStore('users', () => {
const usersInfo =ref([]); const usersInfo =ref([]);
function getUsernameFromUserID(userID){ function getUsernameFromUserID(userID){
//console.log(userID)
//先在usersInfo找找有没有
const target = usersInfo.value?.find(item => item.UserID === userID)
if(target){
return target.Username //有的话直接返回
}else{
//没有的话 询问后端
usersApi.getUserInfoFromUserID(userID).then((r)=>{
//console.log(r)
if(r.errCode==0)
{
switch(r.raw.err_code){
case 0:
if(r.raw.return.userinfo){
usersInfo.value.push(r.raw.return.userinfo)
}
break;
}
}
})
return "123" return "..." // 第一次返回这个,不会空白/报错
}
} }
return{ return{