Files
2021-12-06 14:55:41 +08:00

96 lines
2.7 KiB
Go

package settled
import (
"SciencesServer/app/api/enterprise/model"
"SciencesServer/app/basic/config"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/session"
)
// Instance 首页信息
type Instance struct {
*session.Enterprise
local string
}
type InstanceHandle func(session *session.Enterprise, local string) *Instance
type InstanceInfo struct {
Identity int `json:"identity"` // 所有身份
ExamineIdentity map[int]model2.ExamineStatusKind `json:"examine_identity"` // 审核中信息
SelectIdentity int `json:"select_identity"` // 当前选择的身份
}
func (c *Instance) company() (bool, model2.ExamineStatusKind, error) {
mUserCompany := model.NewUserCompany()
out, err := mUserCompany.Company(c.UID)
return out.ID > 0, out.ExamineStatus, err
}
func (c *Instance) expert() (bool, model2.ExamineStatusKind, error) {
mUserExpert := model.NewUserExpert()
out, err := mUserExpert.Expert(c.UID)
return out.ID > 0, out.ExamineStatus, err
}
func (c *Instance) research() (bool, model2.ExamineStatusKind, error) {
mUserResearch := model.NewUserResearch()
out, err := mUserResearch.Research(c.UID)
return out.ID > 0, out.ExamineStatus, err
}
func (c *Instance) laboratory() (bool, model2.ExamineStatusKind, error) {
mUserLaboratory := model.NewUserLaboratory()
out, err := mUserLaboratory.Laboratory(c.UID)
return out.ID > 0, out.ExamineStatus, err
}
func (c *Instance) agent() (bool, model2.ExamineStatusKind, error) {
mUserAgent := model.NewUserAgent()
out, err := mUserAgent.Agent(c.UID)
return out.ID > 0, out.ExamineStatus, err
}
func (c *Instance) Index() (*InstanceInfo, error) {
out := &InstanceInfo{
Identity: c.Identity,
ExamineIdentity: make(map[int]model2.ExamineStatusKind, 0),
SelectIdentity: c.SelectIdentity,
}
isExist := false
var kind model2.ExamineStatusKind
var err error
// 查询其他信息
for k := range config.TenantUserIdentityData {
if k&c.SelectIdentity > 0 {
continue
}
if k == config.TenantUserIdentityForCompany {
isExist, kind, err = c.company()
} else if k == config.TenantUserIdentityForExpert {
isExist, kind, err = c.expert()
} else if k == config.TenantUserIdentityForResearch {
isExist, kind, err = c.research()
} else if k == config.TenantUserIdentityForLaboratory {
isExist, kind, err = c.laboratory()
} else if k == config.TenantUserIdentityForAgent {
isExist, kind, err = c.agent()
}
if err != nil {
return nil, err
}
if !isExist {
continue
}
out.ExamineIdentity[k] = kind
}
return out, nil
}
func NewInstance() InstanceHandle {
return func(session *session.Enterprise, local string) *Instance {
return &Instance{Enterprise: session, local: local}
}
}