Przeglądaj źródła

ai纪要分类报错,删除报错 fix

zwxi 6 miesięcy temu
rodzic
commit
46b7619327

+ 51 - 9
controllers/ai/ai_summary.go

@@ -296,12 +296,39 @@ func (this *AiController) DeleteAiSummaryClassify() {
 	//删除分类
 	if req.AiSummaryClassifyId > 0 && req.AiSummaryId == 0 {
 		//判断是否含有纪要
-		count, err := ai_summary.GetAiSummaryInfoCountByClassifyId(req.AiSummaryClassifyId)
+		childIds := make([]int, 0)
+		classifyAll, err := ai_summary.GetAiSummaryClassifyAll()
 		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "删除失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*ai_summary.AiSummaryClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.AiSummaryClassifyId] = v
+		}
+		aiSummaryService.GetSummaryClassifyChildIds(req.AiSummaryClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND classify_id IN (` + ids + `) `
+		} else {
+			condition = ` AND classify_id = ? `
+			pars = append(pars, req.AiSummaryClassifyId)
+		}
+		count, err := ai_summary.GetSummaryCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "查询失败"
+			br.ErrMsg = "判断分类下是否有纪要失败,Err:" + err.Error()
 			return
 		}
+		//count, err := ai_summary.GetAiSummaryInfoCountByClassifyId(req.AiSummaryClassifyId)
+		//if err != nil && err.Error() != utils.ErrNoRow() {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			br.Msg = "该目录下存在纪要,不可删除"
@@ -837,6 +864,18 @@ func (this *AiController) AiSummaryList() {
 	}
 	startSize = paging.StartIndex(currentIndex, pageSize)
 
+	classifyAll, err := ai_summary.GetAiSummaryClassifyAll()
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	classifyAllMap := make(map[int]*ai_summary.AiSummaryClassifyItems)
+	for _, v := range classifyAll {
+		classifyAllMap[v.AiSummaryClassifyId] = v
+	}
+
+
 	var condition string
 	var pars []interface{}
 
@@ -871,12 +910,15 @@ func (this *AiController) AiSummaryList() {
 	}
 
 	for i, v := range list {
-		ids, err := ai_summary.GetAiSummaryAllParentByClassifyId(v.ClassifyId)
-		if err != nil {
-			br.Msg = "获取父级信息错误!"
-			br.ErrMsg = "获取父级信息错误,Err:" + err.Error()
-			return
-		}
+		parentIds := make([]int, 0)
+		aiSummaryService.GetSummaryParentIds(v.ClassifyId, classifyAllMap, &parentIds)
+		ids := utils.IntArr2joinString(parentIds,",")
+		//ids, err := ai_summary.GetAiSummaryAllParentByClassifyId(v.ClassifyId)
+		//if err != nil {
+		//	br.Msg = "获取父级信息错误!"
+		//	br.ErrMsg = "获取父级信息错误,Err:" + err.Error()
+		//	return
+		//}
 		list[i].ParentIds = ids
 	}
 	resp := new(ai_summary.AiSummaryListResp)

+ 10 - 0
models/ai_summary/ai_summary.go

@@ -207,3 +207,13 @@ type AiSummaryDetailResp struct {
 	SaDocTitle      string `description:"文档库标题"`
 	SaDocClassifyId int    `description:"文档库分类id"`
 }
+
+func GetSummaryCountByCondition(condition string, pars []interface{}) (count int, err error) {
+	sql := ` SELECT COUNT(1) AS count FROM ai_summary WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	err = global.DEFAULT_DmSQL.Raw(sql, pars...).Scan(&count).Error
+
+	return
+}

+ 20 - 0
services/ai_summary/ai_summary.go

@@ -182,3 +182,23 @@ func SharePrompt(promptId int, adminId int) (err error) {
 	}
 	return
 }
+
+
+func GetSummaryClassifyChildIds(classifyId int, classifymap map[int]*ai_summary.AiSummaryClassifyItems, childIds *[]int) {
+	for _, item := range classifymap {
+		if item.ParentId == classifyId {
+			*childIds = append(*childIds, item.AiSummaryClassifyId)
+			GetSummaryClassifyChildIds(item.AiSummaryClassifyId, classifymap, childIds)
+		}
+	}
+}
+
+func GetSummaryParentIds(classifyId int, classifymap map[int]*ai_summary.AiSummaryClassifyItems, parentIds *[]int) {
+	if item, ok := classifymap[classifyId]; ok {
+		if item.ParentId == 0 {
+			return
+		}
+		*parentIds = append(*parentIds, item.ParentId)
+		GetSummaryParentIds(item.ParentId, classifymap, parentIds)
+	}
+}