|
@@ -338,7 +338,30 @@ WHERE
|
|
|
|
|
|
func GetAiSummaryAllParentByClassifyId(aiSummaryClassifyId int) (ids string, err error) {
|
|
|
o := global.DbMap[utils.DbNameMaster]
|
|
|
- sql := `SELECT
|
|
|
+ var sql string
|
|
|
+ if utils.DbDriverName == utils.DbDriverByDm {
|
|
|
+ sql = `WITH RECURSIVE parent_tree (ai_summary_classify_id, parent_id, level) AS (
|
|
|
+ -- 获取起始节点的父级
|
|
|
+ SELECT ai_summary_classify_id, parent_id, 1 as level
|
|
|
+ FROM ai_summary_classify
|
|
|
+ WHERE ai_summary_classify_id = (
|
|
|
+ SELECT parent_id
|
|
|
+ FROM ai_summary_classify
|
|
|
+ WHERE ai_summary_classify_id = ?
|
|
|
+ )
|
|
|
+
|
|
|
+ UNION ALL
|
|
|
+
|
|
|
+ -- 递归获取所有上级节点
|
|
|
+ SELECT ac.ai_summary_classify_id, ac.parent_id, pt.level + 1
|
|
|
+ FROM ai_summary_classify ac
|
|
|
+ JOIN parent_tree pt ON ac.ai_summary_classify_id = pt.parent_id
|
|
|
+ WHERE ac.parent_id IS NOT NULL
|
|
|
+)
|
|
|
+SELECT LISTAGG(ai_summary_classify_id, ',') WITHIN GROUP (ORDER BY level DESC) AS ids
|
|
|
+FROM parent_tree`
|
|
|
+ }else{
|
|
|
+ sql = `SELECT
|
|
|
GROUP_CONCAT(DISTINCT m.ai_summary_classify_id ORDER BY m.level) AS ids
|
|
|
FROM
|
|
|
(
|
|
@@ -369,6 +392,7 @@ FROM
|
|
|
INNER JOIN ai_summary_classify m
|
|
|
WHERE
|
|
|
ai_summary_classify_id = vm._id `
|
|
|
+ }
|
|
|
err = o.Raw(sql, aiSummaryClassifyId).Scan(&ids).Error
|
|
|
return
|
|
|
}
|