Files
2022-01-06 22:02:09 +08:00

84 lines
2.0 KiB
Go

package tenant
import (
"SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/session"
"errors"
)
// Member 人员信息
type Member struct {
session *session.Admin
}
type MemberHandle func(session *session.Admin) *Member
type (
// MemberInfo 人员信息
MemberInfo struct {
ID string `json:"id"`
Name string `json:"name"`
Account string `json:"account"`
Mobile string `json:"mobile"`
}
// MemberParams 人员参数信息
MemberParams struct {
Mobile, Password string
}
)
// Instance 人员信息
func (c *Member) Instance(tenantID uint64) (*MemberInfo, error) {
mSysUser := model.NewSysUser()
isExist, err := model2.FirstField(mSysUser.SysUser, []string{"id", "name", "account", "mobile"},
model2.NewWhere("tenant_id", tenantID),
model2.NewWhere("is_admin", model2.SysUserAdministratorForAdmin))
if err != nil {
return nil, err
}
out := new(MemberInfo)
if !isExist {
goto RETURNS
}
out.ID = mSysUser.GetEncodeID()
out.Name = mSysUser.Name
out.Account = mSysUser.Account
out.Mobile = mSysUser.Mobile
RETURNS:
return out, nil
}
// Form 数据操作
func (c *Member) Form(tenantID uint64, params *MemberParams) error {
mSysUser := model.NewSysUser()
isExist, err := model2.FirstField(mSysUser.SysUser, []string{"id", "name", "account", "mobile"},
model2.NewWhere("tenant_id", tenantID),
model2.NewWhere("is_admin", model2.SysUserAdministratorForAdmin))
if err != nil {
return err
} else if isExist {
return errors.New("操作错误,当前平台已存在管理员")
}
mSysUser.TenantID = tenantID
mSysUser.Account = params.Mobile
mSysUser.Name = params.Mobile
mSysUser.Mobile = params.Mobile
mSysUser.Password = params.Password
mSysUser.IsAdmin = model2.SysUserAdministratorForAdmin
mSysUser.Remark = "子平台管理员"
return model2.Create(mSysUser.SysUser)
}
func NewMember() MemberHandle {
return func(session *session.Admin) *Member {
return &Member{session: session}
}
}