Files
2022-01-15 16:48:49 +08:00

104 lines
2.9 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
tenantID uint64
}
type InstanceHandle func(session *session.Enterprise, tenantID uint64) *Instance
type InstanceInfo struct {
Identity int `json:"identity"` // 所有身份
ExamineIdentity map[int]*InstanceExamineInfo `json:"examine_identity"` // 审核中信息
SelectIdentity int `json:"select_identity"` // 当前选择的身份
}
type InstanceExamineInfo struct {
Status model2.ExamineStatusKind `json:"status"`
Remark string `json:"remark"`
}
func (c *Instance) company() (bool, *model2.Examine, error) {
mUserCompany := model.NewUserCompany()
out, err := mUserCompany.Settled(c.UID)
return out.ID > 0, out.Examine, err
}
func (c *Instance) expert() (bool, *model2.Examine, error) {
mUserExpert := model.NewUserExpert()
out, err := mUserExpert.Settled(c.UID)
return out.ID > 0, out.Examine, err
}
func (c *Instance) research() (bool, *model2.Examine, error) {
mUserResearch := model.NewUserResearch()
out, err := mUserResearch.Settled(c.UID)
return out.ID > 0, out.Examine, err
}
func (c *Instance) laboratory() (bool, *model2.Examine, error) {
mUserLaboratory := model.NewUserLaboratory()
out, err := mUserLaboratory.Settled(c.UID)
return out.ID > 0, out.Examine, err
}
func (c *Instance) agent() (bool, *model2.Examine, error) {
mUserAgent := model.NewUserAgent()
out, err := mUserAgent.Settled(c.UID)
return out.ID > 0, out.Examine, err
}
func (c *Instance) Index() (*InstanceInfo, error) {
out := &InstanceInfo{
Identity: c.Identity,
ExamineIdentity: make(map[int]*InstanceExamineInfo, 0),
SelectIdentity: c.SelectIdentity,
}
isExist := false
examine := new(model2.Examine)
var err error
// 查询其他信息
for k := range config.TenantUserIdentityData {
if k&c.SelectIdentity > 0 {
continue
}
if k == config.TenantUserIdentityForCompany {
isExist, examine, err = c.company()
} else if k == config.TenantUserIdentityForExpert {
isExist, examine, err = c.expert()
} else if k == config.TenantUserIdentityForResearch {
isExist, examine, err = c.research()
} else if k == config.TenantUserIdentityForLaboratory {
isExist, examine, err = c.laboratory()
} else if k == config.TenantUserIdentityForAgent {
isExist, examine, err = c.agent()
}
if err != nil {
return nil, err
}
if !isExist {
continue
}
out.ExamineIdentity[k] = &InstanceExamineInfo{
Status: examine.ExamineStatus,
Remark: examine.ExamineRemark,
}
}
return out, nil
}
func NewInstance() InstanceHandle {
return func(session *session.Enterprise, tenantID uint64) *Instance {
return &Instance{Enterprise: session, tenantID: tenantID}
}
}