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() }