package manage import ( "SciencesServer/app/api/website/model" "SciencesServer/app/basic/config" "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 KindTitle string `json:"kind_title"` Industrys []string `json:"industrys"` Directions []string `json:"directions"` Introduce string `json:"introduce"` } // CompanyProductInfo 公司产品信息 CompanyProductInfo struct { *model.ManageCompanyProduct ID string `json:"id"` IsCollect bool `json:"is_collect"` Industrys []string `json:"industrys"` Keywords []string `json:"keywords"` LeadStandardTitle string `json:"lead_standard_title"` MaturityTitle string `json:"maturity_title"` CooperationModeTitle string `json:"cooperation_mode_title"` } ) // 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(), }, KindTitle: mManageCompany.KindTitle(), 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 { v.Image.Image = v.Image.Analysis(config2.SystemConfig[config2.SysImageDomain]) v.Video = (&model2.Image{Image: v.Video}).Analysis(config2.SystemConfig[config2.SysImageDomain]) v.Material = (&model2.Image{Image: v.Material}).Analysis(config2.SystemConfig[config2.SysImageDomain]) _industrys := make([]string, 0) for _, v := range v.GetIndustryAttribute() { _industrys = append(_industrys, config.GetIndustryInfo(v, "-", "/").Value) } list = append(list, &CompanyProductInfo{ ManageCompanyProduct: v, ID: v.GetEncodeID(), IsCollect: v.IsCollect > 0, LeadStandardTitle: v.GetLeadStandardTitle(), MaturityTitle: config.GetTechnologyMaturityTitle(v.Maturity), CooperationModeTitle: config.GetTechnologyCooperationModeTitle(v.CooperationMode), Industrys: _industrys, Keywords: v.GetKeywordAttribute(), }) } return &controller.ReturnPages{Data: list, Count: count}, nil } func NewCompany() CompanyHandle { return func(session *session.Enterprise) *Company { return &Company{session} } }