feat:优化专家导入接口
This commit is contained in:
@ -9,9 +9,11 @@ import (
|
||||
"SciencesServer/app/session"
|
||||
config2 "SciencesServer/config"
|
||||
"SciencesServer/lib"
|
||||
"SciencesServer/serve/orm"
|
||||
"SciencesServer/utils"
|
||||
"errors"
|
||||
"fmt"
|
||||
"gorm.io/gorm"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
@ -84,6 +86,12 @@ type (
|
||||
Tag2 string `json:"tag_2" 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 首页信息
|
||||
@ -348,7 +356,7 @@ func (c *Expert) Import(file string) error {
|
||||
}
|
||||
data := excel.Analysis(&ExpertExcel{})
|
||||
|
||||
rows := make([]*model2.ManageExpert, 0, len(data))
|
||||
rows := make([]*ExpertExcelInfo, 0, len(data))
|
||||
|
||||
now := time.Now()
|
||||
|
||||
@ -418,31 +426,71 @@ func (c *Expert) Import(file string) error {
|
||||
}
|
||||
row.CreatedAt = now
|
||||
row.UpdatedAt = now
|
||||
rows = append(rows, row)
|
||||
rows = append(rows, &ExpertExcelInfo{
|
||||
ManageExpert: row,
|
||||
Tag2: _data.Tag2,
|
||||
Tag3: _data.Tag3,
|
||||
})
|
||||
}
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
manage := service.NewESManage()
|
||||
for _, v := range rows {
|
||||
if err = model2.Create(v.ManageExpert, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
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 {
|
||||
_industrys := make([]string, 0)
|
||||
if err = model2.Creates(mManageCooperateEnterprise.ManageCooperateEnterprise, &enterprises, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
_industrys := make([]string, 0)
|
||||
|
||||
for _, v := range row.GetIndustryAttribute() {
|
||||
_industrys = append(_industrys, config.GetIndustryInfo(v, "-", "-").Value)
|
||||
for _, val := range v.GetIndustryAttribute() {
|
||||
_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)
|
||||
service.WithManageTitle(row.Name)(manage)
|
||||
service.WithManageIdentity(config.TenantUserIdentityForExpert)(manage)
|
||||
service.WithManageIndustry(strings.Join(_industrys, ";"))(manage)
|
||||
service.WithManageKeyword(strings.Join(row.GetKeywordAttribute(), ";"))(manage)
|
||||
}
|
||||
if err = manage.Create(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = manage.Create(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user