97 lines
2.1 KiB
Go
97 lines
2.1 KiB
Go
package controllers
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"server/models"
|
|
"server/services"
|
|
|
|
beego "github.com/beego/beego/v2/server/web"
|
|
)
|
|
|
|
type BackendAdminUserController struct {
|
|
beego.Controller
|
|
}
|
|
|
|
type backendUserInfoDTO struct {
|
|
ID uint64 `json:"id"`
|
|
Tid uint64 `json:"tid"`
|
|
Uid uint64 `json:"uid"`
|
|
Account *string `json:"account"`
|
|
Name *string `json:"name"`
|
|
Phone *string `json:"phone"`
|
|
Email *string `json:"email"`
|
|
Status int8 `json:"status"`
|
|
CreateTime string `json:"create_time"`
|
|
TenantName string `json:"tenant_name"`
|
|
TenantCode string `json:"tenant_code"`
|
|
}
|
|
|
|
// GetUserInfo 获取当前登录租户用户的详情
|
|
// GET /backend/getUserInfo
|
|
func (c *BackendAdminUserController) GetUserInfo() {
|
|
var uid uint64
|
|
var tid uint64
|
|
|
|
data := c.Ctx.Input.Data()
|
|
if jwtUid := data["uid"]; jwtUid != nil {
|
|
uid = jwtUid.(uint64)
|
|
}
|
|
if jwtTid := data["tid"]; jwtTid != nil {
|
|
tid = jwtTid.(uint64)
|
|
}
|
|
|
|
if uid == 0 {
|
|
idStr := c.Ctx.Input.Param(":id")
|
|
uid, _ = strconv.ParseUint(idStr, 10, 64)
|
|
}
|
|
|
|
if uid == 0 {
|
|
c.Data["json"] = map[string]interface{}{"code": 401, "msg": "未登录或非法请求"}
|
|
_ = c.ServeJSON()
|
|
return
|
|
}
|
|
|
|
var u *models.SystemTenantUser
|
|
var err error
|
|
|
|
if tid > 0 {
|
|
u, err = services.GetTenantUserByUidAndTid(uid, tid)
|
|
} else {
|
|
u, err = services.GetTenantUserByUid(uid)
|
|
}
|
|
|
|
if err != nil || u == nil {
|
|
c.Data["json"] = map[string]interface{}{"code": 404, "msg": "后台用户信息不存在"}
|
|
_ = c.ServeJSON()
|
|
return
|
|
}
|
|
|
|
tenant, err := services.GetTenantByID(u.Tid)
|
|
tenantName := "未知租户"
|
|
tenantCode := ""
|
|
if err == nil && tenant != nil {
|
|
tenantName = tenant.TenantName
|
|
tenantCode = tenant.TenantCode
|
|
}
|
|
|
|
c.Data["json"] = map[string]interface{}{
|
|
"code": 200,
|
|
"msg": "success",
|
|
"data": backendUserInfoDTO{
|
|
ID: u.ID,
|
|
Tid: u.Tid,
|
|
Uid: u.Uid,
|
|
Account: u.Account,
|
|
Name: u.Name,
|
|
Phone: u.Phone,
|
|
Email: u.Email,
|
|
Status: u.Status,
|
|
CreateTime: u.CreateTime.Format("2006-01-02 15:04:05"),
|
|
TenantName: tenantName,
|
|
TenantCode: tenantCode,
|
|
},
|
|
}
|
|
_ = c.ServeJSON()
|
|
}
|