|
@@ -308,17 +308,29 @@ type SandboxLinkCheckResp struct {
|
|
|
// GetSandboxClassifySubcategories 获取所有子级分类id
|
|
|
func GetSandboxClassifySubcategories(classifyId int) (Ids string, err error) {
|
|
|
//o := orm.NewOrmUsingDB("data")
|
|
|
- sql := `SELECT GROUP_CONCAT(sandbox_classify_id) AS ids
|
|
|
-FROM (
|
|
|
-SELECT @pv := ? AS sandbox_classify_id
|
|
|
-UNION ALL
|
|
|
-SELECT sc.sandbox_classify_id
|
|
|
-FROM sandbox_classify sc
|
|
|
-JOIN (SELECT @pv := ?) initial
|
|
|
-WHERE sc.parent_id = @pv
|
|
|
-) subcategories; `
|
|
|
+ // sql := `SELECT GROUP_CONCAT(sandbox_classify_id) AS ids
|
|
|
+ //FROM (
|
|
|
+ //SELECT @pv := ? AS sandbox_classify_id
|
|
|
+ //UNION ALL
|
|
|
+ //SELECT sc.sandbox_classify_id
|
|
|
+ //FROM sandbox_classify sc
|
|
|
+ //JOIN (SELECT @pv := ?) initial
|
|
|
+ //WHERE sc.parent_id = @pv
|
|
|
+ //) subcategories; `
|
|
|
//err = o.Raw(sql, classifyId, classifyId).QueryRow(&Ids)
|
|
|
- err = global.DmSQL["data"].Raw(sql, classifyId, classifyId).First(&Ids).Error
|
|
|
+
|
|
|
+ sql := `WITH RECURSIVE Subcategories (sandbox_classify_id) AS (
|
|
|
+ SELECT ? AS sandbox_classify_id
|
|
|
+ FROM DUAL
|
|
|
+ UNION ALL
|
|
|
+ SELECT sc.sandbox_classify_id
|
|
|
+ FROM "eta_index".sandbox_classify sc
|
|
|
+ JOIN Subcategories s
|
|
|
+ ON sc.parent_id = s.sandbox_classify_id
|
|
|
+)
|
|
|
+SELECT LISTAGG(sandbox_classify_id, ',') WITHIN GROUP (ORDER BY sandbox_classify_id) AS ids
|
|
|
+FROM Subcategories;`
|
|
|
+ err = global.DmSQL["data"].Raw(sql, classifyId).First(&Ids).Error
|
|
|
return
|
|
|
}
|
|
|
|