|
@@ -304,7 +304,7 @@ func UpdateAiSummaryClassifySortByParentId(parentId, classifyId, nowSort int, up
|
|
|
// 获取所有子级分类id
|
|
|
func GetAiSummaryClassifySubcategories(classifyId int) (Ids string, err error) {
|
|
|
o := global.DbMap[utils.DbNameMaster]
|
|
|
- sql := `SELECT GROUP_CONCAT(ai_summary_classify_id) AS ids
|
|
|
+ sql := fmt.Sprintf(`SELECT %s AS ids
|
|
|
FROM (
|
|
|
SELECT @pv := ? AS ai_summary_classify_id
|
|
|
UNION ALL
|
|
@@ -312,14 +312,14 @@ SELECT sc.ai_summary_classify_id
|
|
|
FROM ai_summary_classify sc
|
|
|
JOIN (SELECT @pv := ?) initial
|
|
|
WHERE sc.parent_id = @pv
|
|
|
-) subcategories; `
|
|
|
+) subcategories; `, utils.GroupUnitFunc(utils.DbDriverName, "ai_summary_classify_id", ",", false, "", "", false))
|
|
|
err = o.Raw(sql, classifyId, classifyId).Scan(&Ids).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func GetAiSummaryClassify(aiSummaryClassify int) (aiSummaryClassifyIds string, err error) {
|
|
|
o := global.DbMap[utils.DbNameMaster]
|
|
|
- sql := `SELECT GROUP_CONCAT(t.ai_summary_classify_id) AS ai_summary_classify_id FROM (
|
|
|
+ sql :=fmt.Sprintf(`SELECT %s AS ai_summary_classify_id FROM (
|
|
|
SELECT a.ai_summary_classify_id FROM ai_summary_classify AS a
|
|
|
WHERE a.ai_summary_classify_id=?
|
|
|
UNION ALL
|
|
@@ -331,14 +331,37 @@ func GetAiSummaryClassify(aiSummaryClassify int) (aiSummaryClassifyIds string, e
|
|
|
ai_summary_classify
|
|
|
WHERE
|
|
|
parent_id IN ( SELECT ai_summary_classify_id FROM ai_summary_classify WHERE parent_id = ? )
|
|
|
- )AS t`
|
|
|
+ )AS t`, utils.GroupUnitFunc(utils.DbDriverName, "t.ai_summary_classify_id", ",", false, "", "", false))
|
|
|
err = o.Raw(sql, aiSummaryClassify, aiSummaryClassify, aiSummaryClassify).Scan(&aiSummaryClassifyIds).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
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
|
|
|
}
|