feat:优化专家导入接口
This commit is contained in:
@ -9,9 +9,11 @@ import (
|
|||||||
"SciencesServer/app/session"
|
"SciencesServer/app/session"
|
||||||
config2 "SciencesServer/config"
|
config2 "SciencesServer/config"
|
||||||
"SciencesServer/lib"
|
"SciencesServer/lib"
|
||||||
|
"SciencesServer/serve/orm"
|
||||||
"SciencesServer/utils"
|
"SciencesServer/utils"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"gorm.io/gorm"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@ -84,6 +86,12 @@ type (
|
|||||||
Tag2 string `json:"tag_2" xlsx:"已合作企业"`
|
Tag2 string `json:"tag_2" xlsx:"已合作企业"`
|
||||||
Tag3 string `json:"tag_3" xlsx:"想合作企业"`
|
Tag3 string `json:"tag_3" xlsx:"想合作企业"`
|
||||||
}
|
}
|
||||||
|
// ExpertExcelInfo 表格详细信息
|
||||||
|
ExpertExcelInfo struct {
|
||||||
|
*model2.ManageExpert
|
||||||
|
Tag2 string `json:"tag_2" xlsx:"已合作企业"`
|
||||||
|
Tag3 string `json:"tag_3" xlsx:"想合作企业"`
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// Instance 首页信息
|
// Instance 首页信息
|
||||||
@ -348,7 +356,7 @@ func (c *Expert) Import(file string) error {
|
|||||||
}
|
}
|
||||||
data := excel.Analysis(&ExpertExcel{})
|
data := excel.Analysis(&ExpertExcel{})
|
||||||
|
|
||||||
rows := make([]*model2.ManageExpert, 0, len(data))
|
rows := make([]*ExpertExcelInfo, 0, len(data))
|
||||||
|
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
|
||||||
@ -418,31 +426,71 @@ func (c *Expert) Import(file string) error {
|
|||||||
}
|
}
|
||||||
row.CreatedAt = now
|
row.CreatedAt = now
|
||||||
row.UpdatedAt = now
|
row.UpdatedAt = now
|
||||||
rows = append(rows, row)
|
rows = append(rows, &ExpertExcelInfo{
|
||||||
|
ManageExpert: row,
|
||||||
|
Tag2: _data.Tag2,
|
||||||
|
Tag3: _data.Tag3,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
if len(rows) > 0 {
|
if len(rows) > 0 {
|
||||||
mManageExpert := model2.NewManageExpert()
|
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||||
|
//mManageExpert := model2.NewManageExpert()
|
||||||
|
manage := service.NewESManage()
|
||||||
|
|
||||||
if err = model2.Creates(mManageExpert, rows); err != nil {
|
for _, v := range rows {
|
||||||
return err
|
if err = model2.Create(v.ManageExpert, tx); err != nil {
|
||||||
}
|
return err
|
||||||
manage := service.NewESManage()
|
}
|
||||||
|
enterprises := make([]*model2.ManageCooperateEnterprise, 0)
|
||||||
|
// 已合作的企业
|
||||||
|
if v.Tag2 != "" {
|
||||||
|
for _, val := range strings.Split(v.Tag2, "\n") {
|
||||||
|
enterprises = append(enterprises, &model2.ManageCooperateEnterprise{
|
||||||
|
ModelTenant: model2.ModelTenant{TenantID: v.TenantID},
|
||||||
|
Mode: model2.ManageCooperateEnterpriseModeForCooperateAlready,
|
||||||
|
Name: val,
|
||||||
|
ModelAt: model2.ModelAt{
|
||||||
|
CreatedAt: now, UpdatedAt: now,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 想合作的企业
|
||||||
|
if v.Tag3 != "" {
|
||||||
|
for _, val := range strings.Split(v.Tag2, "\n") {
|
||||||
|
enterprises = append(enterprises, &model2.ManageCooperateEnterprise{
|
||||||
|
ModelTenant: model2.ModelTenant{TenantID: v.TenantID},
|
||||||
|
Mode: model2.ManageCooperateEnterpriseModeForCooperateToWant,
|
||||||
|
Name: val,
|
||||||
|
ModelAt: model2.ModelAt{
|
||||||
|
CreatedAt: now, UpdatedAt: now,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(enterprises) > 0 {
|
||||||
|
mManageCooperateEnterprise := model.NewManageCooperateEnterprise()
|
||||||
|
|
||||||
for _, row := range rows {
|
if err = model2.Creates(mManageCooperateEnterprise.ManageCooperateEnterprise, &enterprises, tx); err != nil {
|
||||||
_industrys := make([]string, 0)
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_industrys := make([]string, 0)
|
||||||
|
|
||||||
for _, v := range row.GetIndustryAttribute() {
|
for _, val := range v.GetIndustryAttribute() {
|
||||||
_industrys = append(_industrys, config.GetIndustryInfo(v, "-", "-").Value)
|
_industrys = append(_industrys, config.GetIndustryInfo(val, "-", "-").Value)
|
||||||
|
}
|
||||||
|
service.WithManageID(v.ID)(manage)
|
||||||
|
service.WithManageTitle(v.Name)(manage)
|
||||||
|
service.WithManageIdentity(config.TenantUserIdentityForExpert)(manage)
|
||||||
|
service.WithManageIndustry(strings.Join(_industrys, ";"))(manage)
|
||||||
|
service.WithManageKeyword(strings.Join(v.GetKeywordAttribute(), ";"))(manage)
|
||||||
}
|
}
|
||||||
service.WithManageID(row.ID)(manage)
|
if err = manage.Create(); err != nil {
|
||||||
service.WithManageTitle(row.Name)(manage)
|
return err
|
||||||
service.WithManageIdentity(config.TenantUserIdentityForExpert)(manage)
|
}
|
||||||
service.WithManageIndustry(strings.Join(_industrys, ";"))(manage)
|
return nil
|
||||||
service.WithManageKeyword(strings.Join(row.GetKeywordAttribute(), ";"))(manage)
|
})
|
||||||
}
|
|
||||||
if err = manage.Create(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user