From f42be17ce8955724b7729fb5a8fee6da2bf42b1b Mon Sep 17 00:00:00 2001 From: henry Date: Tue, 3 May 2022 23:21:04 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=AE=8C=E6=88=90=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E5=92=8C=E4=B8=93=E5=AE=B6=E5=AF=BC=E5=85=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E7=BC=BA=E5=B0=91=E4=BF=9D=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=A1=A8=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/admin/api/manage.go | 31 ++++++++++-- app/api/admin/controller/manage/company.go | 25 ++++++++-- app/api/admin/controller/manage/expert.go | 55 ++++++++++++++++++++++ router/address.go | 1 + 4 files changed, 103 insertions(+), 9 deletions(-) diff --git a/app/api/admin/api/manage.go b/app/api/admin/api/manage.go index f749639..374de41 100644 --- a/app/api/admin/api/manage.go +++ b/app/api/admin/api/manage.go @@ -396,7 +396,7 @@ func (*Manage) EnterpriseDelete(c *gin.Context) { api.APIResponse(err)(c) } -// ImportCompany 导入公司 +// ImportCompany 导入公司模板信息 func (*Manage) ImportCompany(c *gin.Context) { file, err := c.FormFile("file") @@ -407,20 +407,41 @@ func (*Manage) ImportCompany(c *gin.Context) { resp := new(lib.UploadHandle) if resp, err = lib.Upload(config2.SystemConfig[config2.UploadPath], []string{"xlsx"}, - 0, true).Handle()(file, config2.SystemConfig[config2.SysImageDomain]); err != nil { + 0, false).Handle()(file, config2.SystemConfig[config2.SysImageDomain]); err != nil { api.APIFailure(err)(c) return } - fmt.Println(resp) - return if err = c.SaveUploadedFile(file, resp.RelativePath); err != nil { api.APIFailure(err)(c) return } - api.APIResponse(nil)(c) + fmt.Println(resp) + //err := manage.NewCompany()(api.GetSession()(c).(*session.Admin)).Import(resp.RelativePath) + err = manage.NewCompany()(nil).Import(resp.Filepath) + api.APIResponse(err)(c) } // ImportExpert 导入专家 func (*Manage) ImportExpert(c *gin.Context) { + file, err := c.FormFile("file") + if err != nil { + api.APIFailure(err)(c) + return + } + resp := new(lib.UploadHandle) + + if resp, err = lib.Upload(config2.SystemConfig[config2.UploadPath], []string{"xlsx"}, + 0, false).Handle()(file, config2.SystemConfig[config2.SysImageDomain]); err != nil { + api.APIFailure(err)(c) + return + } + if err = c.SaveUploadedFile(file, resp.RelativePath); err != nil { + api.APIFailure(err)(c) + return + } + fmt.Println(resp) + //err := manage.NewCompany()(api.GetSession()(c).(*session.Admin)).Import(resp.RelativePath) + err = manage.NewExpert()(nil).Import(resp.Filepath) + api.APIResponse(err)(c) } diff --git a/app/api/admin/controller/manage/company.go b/app/api/admin/controller/manage/company.go index 466d5fb..7ce08cf 100644 --- a/app/api/admin/controller/manage/company.go +++ b/app/api/admin/controller/manage/company.go @@ -10,8 +10,8 @@ import ( config2 "SciencesServer/config" "SciencesServer/lib" "errors" + "fmt" "strings" - "time" ) type Company struct { @@ -46,7 +46,21 @@ type ( // CompanyExcel 公司企业表格信息 CompanyExcel struct { - Name string `json:"name" xlsx:"名称"` + Name string `json:"name" xlsx:"企业名称"` + Province string `json:"province" xlsx:"所在省"` + City string `json:"city" xlsx:"所在市"` + District string `json:"district" xlsx:"所在区"` + Address string `json:"address" xlsx:"详细地址"` + Code string `json:"code" xlsx:"信用代码"` + RegisterAt string `json:"register_at" xlsx:"注册时间"` + Industry string `json:"industry" xlsx:"所属领域"` + Url string `json:"url" xlsx:"企业网站"` + Introduce string `json:"introduce" xlsx:"企业简介"` + Kind string `json:"kind" xlsx:"企业类型"` + TechnologyScene string `json:"technology_scene" xlsx:"核心技术与产品及应用场景"` + Keyword string `json:"keyword" xlsx:"关键词"` + Contact string `json:"contact" xlsx:"联系人"` // 联系人 + ContactMobile string `json:"contact_mobile" xlsx:"联系电话"` // 联系方式 } ) @@ -216,17 +230,20 @@ func (c *Company) Detail(id uint64) (*CompanyDetail, error) { // Import 导入数据 func (c *Company) Import(file string) error { excel := lib.NewExcel() - err := excel.Import(strings.Replace(file, "/", "", 1), 0, 0) + err := excel.Import(strings.Replace(file, "/", "", 1), 1, 0) if err != nil { return err } data := excel.Analysis(&CompanyExcel{}) - now := time.Now() + //now := time.Now() for _, v := range data { _data := v.(*CompanyExcel) + // 所属领域 + //industrys := strings.Split(_data.Industry, "\n") + fmt.Println(_data) } return nil } diff --git a/app/api/admin/controller/manage/expert.go b/app/api/admin/controller/manage/expert.go index d204dba..f66b8cd 100644 --- a/app/api/admin/controller/manage/expert.go +++ b/app/api/admin/controller/manage/expert.go @@ -8,8 +8,10 @@ import ( "SciencesServer/app/service" "SciencesServer/app/session" config2 "SciencesServer/config" + "SciencesServer/lib" "SciencesServer/utils" "errors" + "fmt" "strings" "time" ) @@ -53,6 +55,38 @@ type ( *model.ManageExpertPatent IsBind bool `json:"is_bind"` } + + // ExpertExcel 专家表格数据 + ExpertExcel struct { + Name string `json:"name" xlsx:"专家姓名"` + Province string `json:"province" xlsx:"所在省"` + City string `json:"city" xlsx:"所在市"` + District string `json:"district" xlsx:"所在区"` + Address string `json:"address" xlsx:"详细地址"` + Site string `json:"site" form:"所属站点"` + Industry string `json:"industry" xlsx:"所属领域"` + Research string `json:"research" xlsx:"所属单位"` + Laboratory string `json:"laboratory" xlsx:"所属实验室"` + School string `json:"school" xlsx:"毕业院校"` + Keyword string `json:"keyword" xlsx:"关键词"` + Education string `json:"education" xlsx:"最高学历"` + Major string `json:"major" xlsx:"主修专业"` + Job string `json:"job" xlsx:"职务"` + WorkAt string `json:"work_at" xlsx:"从业时间"` + Gender string `json:"gender" xlsx:"性别"` + ResearchWhere string `json:"research_where" xlsx:"研究方向"` + Mobile string `json:"mobile" xlsx:"手机号"` + Introduce string `json:"introduce" xlsx:"个人简介"` + Technology string `json:"technology" xlsx:"核心技术及产品"` + Scene string `json:"scene" xlsx:"应用场景"` + Tag1 string `json:"tag_1" xlsx:"代表成果及合作模式"` + Tag2 string `json:"tag_2" xlsx:"承担科研项目"` + Tag3 string `json:"tag_3" xlsx:"代表专利"` + Tag4 string `json:"tag_4" xlsx:"代表论文"` + Tag5 string `json:"tag_5" xlsx:"已合作企业"` + Tag6 string `json:"tag_6" xlsx:"想合作企业"` + Tag7 string `json:"tag_7" xlsx:"我的需求"` + } ) // Instance 首页信息 @@ -307,6 +341,27 @@ func (c *Expert) PatentUnbind(id uint64, patentID []uint64) error { }) } +// Import 导入数据 +func (c *Expert) Import(file string) error { + excel := lib.NewExcel() + err := excel.Import(strings.Replace(file, "/", "", 1), 1, 0) + + if err != nil { + return err + } + data := excel.Analysis(&ExpertExcel{}) + + //now := time.Now() + + for _, v := range data { + _data := v.(*ExpertExcel) + // 所属领域 + //industrys := strings.Split(_data.Industry, "\n") + fmt.Println(_data) + } + return nil +} + func NewExpert() ExpertHandle { return func(session *session.Admin) *Expert { return &Expert{session} diff --git a/router/address.go b/router/address.go index ed6566e..ff46b2d 100644 --- a/router/address.go +++ b/router/address.go @@ -162,6 +162,7 @@ func registerAdminAPI(app *gin.Engine) { apiPrefix + "/v1/captcha", apiPrefix + "/v1/account/login", apiPrefix + "/v1/account/logout", + apiPrefix + "/v1/manage/import/company", }...))) // 权限验证 v1.Use(NeedPermission(AddSkipperURL([]string{