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