diff --git a/backend/my_work/routers/apiUsers.go b/backend/my_work/routers/apiUsers.go index 0d5d77e..a3aa578 100644 --- a/backend/my_work/routers/apiUsers.go +++ b/backend/my_work/routers/apiUsers.go @@ -107,6 +107,39 @@ func AuthenticationAuthorityFromCookie(c string) (*models.TabUser_, error) { } else { 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{}) { @@ -130,6 +163,8 @@ func AuthenticationAuthority(ctx *gin.Context) (bool, models.TabUser_, map[strin } + + func ApiUser(r *gin.RouterGroup) { r.GET("/test", func(ctx *gin.Context) { @@ -139,6 +174,23 @@ func ApiUser(r *gin.RouterGroup) { 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) { isAuth, user, data := AuthenticationAuthority(ctx) @@ -343,26 +395,15 @@ func ApiUser(r *gin.RouterGroup) { isAuth, user, _ := AuthenticationAuthority(ctx) if isAuth { //载入用户info - var userinfo models.TabUserInfo_ - userinfo.UserID = user.ID + //fmt.Println(userInfo) 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.Salt = "" - redata["user"] = user ReturnJson(ctx, "apiOK", redata) diff --git a/frontend/ops_vue_js/src/api/users.js b/frontend/ops_vue_js/src/api/users.js new file mode 100644 index 0000000..59e9db1 --- /dev/null +++ b/frontend/ops_vue_js/src/api/users.js @@ -0,0 +1,8 @@ +import { api } from './index' + +export const usersApi = { + + getUserInfoFromUserID(UserID) { + return api.get('/users/getuserinfo/'+UserID) + }, +} \ No newline at end of file diff --git a/frontend/ops_vue_js/src/components/AppHeader.vue b/frontend/ops_vue_js/src/components/AppHeader.vue index 41ed532..144e77a 100644 --- a/frontend/ops_vue_js/src/components/AppHeader.vue +++ b/frontend/ops_vue_js/src/components/AppHeader.vue @@ -122,7 +122,7 @@ const navItems = computed(() => [ alt="avatar" /> {{ - userStore.user?.Name || "" + userStore.userInfo?userStore.userInfo.Username:userStore.user.Name }} { const usersInfo =ref([]); function getUsernameFromUserID(userID){ - - return "123" + //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 "..." // 第一次返回这个,不会空白/报错 + } } return{