package manage import ( "SciencesServer/app/api/website/model" "SciencesServer/app/basic/controller" model2 "SciencesServer/app/common/model" "SciencesServer/app/session" config2 "SciencesServer/config" "errors" ) type Company struct { *session.Enterprise } type CompanyHandle func(session *session.Enterprise) *Company type ( // CompanyBasicInfo 公司基本信息 CompanyBasicInfo struct { ID string `json:"id"` Kind model2.ManageCompanyKind `json:"kind"` Name string `json:"name"` Image string `json:"image"` Product string `json:"product"` Url string `json:"url"` Keywords []string `json:"keywords"` } // CompanyInstanceInfo 公司信息 CompanyInstanceInfo struct { CompanyBasicInfo Industrys []string `json:"industrys"` Directions []string `json:"directions"` Introduce string `json:"introduce"` } // CompanyProductInfo 公司产品信息 CompanyProductInfo struct { *model.ManageCompanyProduct ID string `json:"id"` Industrys []string `json:"industrys"` Keywords []string `json:"keywords"` } ) // Instance 公司企业信息 func (c *Company) Instance(id uint64) (*CompanyInstanceInfo, error) { mManageCompany := model.NewManageCompany() mManageCompany.ID = id if isExist, err := model2.First(mManageCompany.ManageCompany); err != nil { return nil, err } else if !isExist { return nil, errors.New("操作错误,公司信息不存在或已被删除") } return &CompanyInstanceInfo{ CompanyBasicInfo: CompanyBasicInfo{ ID: mManageCompany.GetEncodeID(), Kind: mManageCompany.Kind, Name: mManageCompany.Name, Image: mManageCompany.Image.Analysis(config2.SystemConfig[config2.SysImageDomain]), Url: mManageCompany.Url, Keywords: mManageCompany.GetKeywordAttribute(), }, Industrys: mManageCompany.GetIndustryAttribute(), Directions: mManageCompany.GetDirectionAttribute(), Introduce: mManageCompany.Introduce, }, nil } // Product 产品信息 func (c *Company) Product(id uint64, page, pageSize int) (*controller.ReturnPages, error) { mManageCompany := model.NewManageCompany() var count int64 out, err := mManageCompany.Product(id, c.UID, page, pageSize, &count) if err != nil { return nil, err } list := make([]*CompanyProductInfo, 0) for _, v := range out { list = append(list, &CompanyProductInfo{ ManageCompanyProduct: v, ID: v.GetEncodeID(), Industrys: v.GetIndustryAttribute(), Keywords: v.GetKeywordAttribute(), }) } return &controller.ReturnPages{Data: list, Count: count}, nil } func NewCompany() CompanyHandle { return func(session *session.Enterprise) *Company { return &Company{session} } }