package manage import ( "SciencesServer/app/api/enterprise/model" "SciencesServer/app/basic/controller" model2 "SciencesServer/app/common/model" "SciencesServer/app/session" "errors" ) type Agent struct { *session.Enterprise } type AgentHandle func(session *session.Enterprise) *Agent type ( // AgentCompany 经纪人公司信息 AgentCompany struct { ID string `json:"id"` } ) // Company 公司信息 func (c *Agent) Company(name string, page, pageSize int) (*controller.ReturnPages, error) { mUserAgent := model.NewUserAgent() isExist, err := model2.FirstField(mUserAgent.UserAgent, []string{"id", "agent_id"}, model2.NewWhere("uid", c.UID), model2.NewWhere("invalid_status", model2.InvalidStatusForNot)) if err != nil { return nil, err } else if !isExist { return nil, errors.New("操作错误,无权限操作") } mManageAgentCompany := model.NewManageAgentCompany() var count int64 out := make([]*model.ManageAgentCompanyInfo, 0) where := []*model2.ModelWhere{model2.NewWhere("c.agent_id", mUserAgent.ID)} if name != "" { where = append(where, model2.NewWhereLike("c.name", name)) } if out, err = mManageAgentCompany.Company(page, pageSize, &count, where...); err != nil { return nil, err } list := make([]*AgentCompany, 0) for _, v := range out { list = append(list, &AgentCompany{ID: v.GetEncodeID()}) } return nil, nil } // Form 数据操作 func (c *Agent) Form(id uint64, name string, industrys []string) error { mUserAgent := model.NewUserAgent() isExist, err := model2.FirstField(mUserAgent.UserAgent, []string{"id", "agent_id"}, model2.NewWhere("uid", c.UID), model2.NewWhere("invalid_status", model2.InvalidStatusForNot)) if err != nil { return err } else if !isExist { return errors.New("操作错误,无权限操作") } mManageAgentCompany := model.NewManageAgentCompany() if id > 0 { mManageAgentCompany.ID = id if isExist, err = model2.FirstField(mManageAgentCompany.ManageAgentCompany, []string{"id", "agent_id", "name", "created_at"}); err != nil { return err } else if !isExist { return errors.New("操作错误,无企业信息") } if mUserAgent.AgentID != mManageAgentCompany.AgentID { return errors.New("无权限操作") } } mManageAgentCompany.Name = name mManageAgentCompany.SetIndustryAttribute(industrys) if mManageAgentCompany.ID > 0 { return model2.Updates(mManageAgentCompany.ManageAgentCompany, mManageAgentCompany.ManageAgentCompany) } return model2.Create(mManageAgentCompany.ManageAgentCompany) } // Delete 删除操作 func (c *Agent) Delete(id uint64) error { mUserAgent := model.NewUserAgent() isExist, err := model2.FirstField(mUserAgent.UserAgent, []string{"id", "agent_id"}, model2.NewWhere("uid", c.UID), model2.NewWhere("invalid_status", model2.InvalidStatusForNot)) if err != nil { return err } else if !isExist { return errors.New("操作错误,无权限操作") } mManageAgentCompany := model.NewManageAgentCompany() mManageAgentCompany.ID = id if isExist, err = model2.FirstField(mManageAgentCompany.ManageAgentCompany, []string{"id", "agent_id", "name", "created_at"}); err != nil { return err } else if !isExist { return errors.New("操作错误,无企业信息") } if mUserAgent.AgentID != mManageAgentCompany.AgentID { return errors.New("无权限操作") } return model2.Delete(mManageAgentCompany.ManageAgentCompany) } func NewAgent() AgentHandle { return func(session *session.Enterprise) *Agent { return &Agent{ Enterprise: session, } } }