批量优化产品和产品分类
This commit is contained in:
@@ -38,6 +38,7 @@ type projectPayload struct {
|
||||
ContactPhone string `json:"contact_phone"`
|
||||
Address string `json:"address"`
|
||||
Remark string `json:"remark"`
|
||||
Products string `json:"products"` // 项目产品清单JSON(生成时写入产品管理)
|
||||
}
|
||||
|
||||
// List GET /backend/crm/project/list
|
||||
@@ -173,6 +174,7 @@ func (c *BackendCrmProjectController) Create() {
|
||||
ContactPhone: strings.TrimSpace(p.ContactPhone),
|
||||
Address: strings.TrimSpace(p.Address),
|
||||
Remark: p.Remark,
|
||||
Products: p.Products,
|
||||
CreateUserID: pipelineUID(claims),
|
||||
CreateTime: now,
|
||||
UpdateTime: now,
|
||||
@@ -182,6 +184,16 @@ func (c *BackendCrmProjectController) Create() {
|
||||
pipelineErr(&c.Controller, 500, 500, "创建失败: "+err.Error())
|
||||
return
|
||||
}
|
||||
// 项目生成时,把产品清单里的产品参数写入产品管理(按 名称+分类 去重)
|
||||
if strings.TrimSpace(p.Products) != "" {
|
||||
var items []crmProductItem
|
||||
if json.Unmarshal([]byte(p.Products), &items) == nil {
|
||||
if _, _, serr := SyncProjectProducts(tenantID, uint64(id), proj.ProjectName, items); serr != nil {
|
||||
// 同步失败不影响项目创建,仅记录
|
||||
_ = serr
|
||||
}
|
||||
}
|
||||
}
|
||||
// 项目建立后,同步在文档库「共享文档 / 项目文档」下建立同名文件夹(失败不影响项目创建)
|
||||
if cid, err := services.EnsureCrmProjectDocCategory(claims.TenantId, uint64(id), proj.ProjectName, 0); err == nil {
|
||||
proj.DocCategoryID = cid
|
||||
@@ -253,12 +265,20 @@ func (c *BackendCrmProjectController) Update() {
|
||||
proj.ContactPhone = strings.TrimSpace(p.ContactPhone)
|
||||
proj.Address = strings.TrimSpace(p.Address)
|
||||
proj.Remark = p.Remark
|
||||
proj.Products = p.Products
|
||||
proj.UpdateTime = time.Now()
|
||||
|
||||
if _, err := models.Orm.Update(&proj); err != nil {
|
||||
pipelineErr(&c.Controller, 500, 500, "更新失败: "+err.Error())
|
||||
return
|
||||
}
|
||||
// 项目保存时,把产品清单里的产品参数写入产品管理(按 名称+分类 去重)
|
||||
if strings.TrimSpace(p.Products) != "" {
|
||||
var items []crmProductItem
|
||||
if json.Unmarshal([]byte(p.Products), &items) == nil {
|
||||
_, _, _ = SyncProjectProducts(tenantID, proj.ID, proj.ProjectName, items)
|
||||
}
|
||||
}
|
||||
// 项目改名时同步重命名文档库中的项目文件夹(失败静默,不影响项目更新)
|
||||
if proj.DocCategoryID > 0 {
|
||||
_ = services.RenameCrmProjectDocCategory(claims.TenantId, proj.DocCategoryID, proj.ProjectName)
|
||||
|
||||
Reference in New Issue
Block a user