|
@@ -303,26 +303,76 @@ func UpdateAiPredictModelClassifyChildByParentClassifyId(classifyIds []int, root
|
|
// GetAiPredictModelIndexCountByClassifyId 获取目录下(包含子目录)的指标数量
|
|
// GetAiPredictModelIndexCountByClassifyId 获取目录下(包含子目录)的指标数量
|
|
func GetAiPredictModelIndexCountByClassifyId(classifyId int) (count int, err error) {
|
|
func GetAiPredictModelIndexCountByClassifyId(classifyId int) (count int, err error) {
|
|
o := global.DbMap[utils.DbNameIndex]
|
|
o := global.DbMap[utils.DbNameIndex]
|
|
- sql := `SELECT COUNT(1) AS count FROM ai_predict_model_index AS a
|
|
|
|
- WHERE a.classify_id IN(
|
|
|
|
- SELECT t.ai_predict_model_classify_id FROM
|
|
|
|
- (
|
|
|
|
- SELECT rd.*
|
|
|
|
- FROM (SELECT * FROM ai_predict_model_classify WHERE parent_id IS NOT NULL) rd,
|
|
|
|
- (SELECT @pid := ?) pd
|
|
|
|
- WHERE FIND_IN_SET(parent_id, @pid) > 0
|
|
|
|
- AND @pid := CONCAT(@pid, ',', ai_predict_model_classify_id)
|
|
|
|
- UNION SELECT * FROM ai_predict_model_classify WHERE ai_predict_model_classify_id = @pid
|
|
|
|
- )AS t
|
|
|
|
|
|
+ var pars []interface{}
|
|
|
|
+ var sql string
|
|
|
|
+ if utils.DbDriverName == utils.DbDriverByDm {
|
|
|
|
+ sql = `WITH RECURSIVE ai_predict_model_classify_cte (ai_predict_model_classify_id, parent_id) AS (
|
|
|
|
+ SELECT ai_predict_model_classify_id, parent_id
|
|
|
|
+ FROM ai_predict_model_classify
|
|
|
|
+ WHERE parent_id = ?
|
|
|
|
+ UNION ALL
|
|
|
|
+ SELECT c.ai_predict_model_classify_id, c.parent_id
|
|
|
|
+ FROM ai_predict_model_classify c
|
|
|
|
+ INNER JOIN ai_predict_model_classify_cte ct ON c.parent_id = ct.ai_predict_model_classify_id
|
|
|
|
+ )
|
|
|
|
+ SELECT COUNT(1) AS count
|
|
|
|
+ FROM ai_predict_model_index a
|
|
|
|
+ WHERE a.ai_predict_model_classify_id IN (
|
|
|
|
+ SELECT ai_predict_model_classify_id
|
|
|
|
+ FROM ai_predict_model_classify_cte
|
|
|
|
+ UNION
|
|
|
|
+ SELECT ai_predict_model_classify_id
|
|
|
|
+ FROM ai_predict_model_classify
|
|
|
|
+ WHERE ai_predict_model_classify_id = ?
|
|
)`
|
|
)`
|
|
- err = o.Raw(sql, classifyId).Scan(&count).Error
|
|
|
|
|
|
+ pars = append(pars, classifyId, classifyId, classifyId)
|
|
|
|
+ }else{
|
|
|
|
+ sql = `SELECT COUNT(1) AS count FROM ai_predict_model_index AS a
|
|
|
|
+ WHERE a.classify_id IN(
|
|
|
|
+ SELECT t.ai_predict_model_classify_id FROM
|
|
|
|
+ (
|
|
|
|
+ SELECT rd.*
|
|
|
|
+ FROM (SELECT * FROM ai_predict_model_classify WHERE parent_id IS NOT NULL) rd,
|
|
|
|
+ (SELECT @pid := ?) pd
|
|
|
|
+ WHERE FIND_IN_SET(parent_id, @pid) > 0
|
|
|
|
+ AND @pid := CONCAT(@pid, ',', ai_predict_model_classify_id)
|
|
|
|
+ UNION SELECT * FROM ai_predict_model_classify WHERE ai_predict_model_classify_id = @pid
|
|
|
|
+ )AS t
|
|
|
|
+ )`
|
|
|
|
+ pars = append(pars, classifyId)
|
|
|
|
+ }
|
|
|
|
+ err = o.Raw(sql, pars...).Scan(&count).Error
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
// GetAiPredictModelClassifyCountByClassifyId 获取目录下子目录数量
|
|
// GetAiPredictModelClassifyCountByClassifyId 获取目录下子目录数量
|
|
func GetAiPredictModelClassifyCountByClassifyId(chartClassifyId int) (count int, err error) {
|
|
func GetAiPredictModelClassifyCountByClassifyId(chartClassifyId int) (count int, err error) {
|
|
o := global.DbMap[utils.DbNameIndex]
|
|
o := global.DbMap[utils.DbNameIndex]
|
|
- sql := `SELECT COUNT(1) AS count FROM (
|
|
|
|
|
|
+ var pars []interface{}
|
|
|
|
+ var sql string
|
|
|
|
+ if utils.DbDriverName == utils.DbDriverByDm {
|
|
|
|
+ sql = `WITH RECURSIVE ai_predict_model_classify_cte (ai_predict_model_classify_id, parent_id) AS (
|
|
|
|
+ SELECT ai_predict_model_classify_id, parent_id
|
|
|
|
+ FROM ai_predict_model_classify
|
|
|
|
+ WHERE parent_id = ?
|
|
|
|
+ UNION ALL
|
|
|
|
+ SELECT c.ai_predict_model_classify_id, c.parent_id
|
|
|
|
+ FROM ai_predict_model_classify c
|
|
|
|
+ INNER JOIN ai_predict_model_classify_cte ct ON c.parent_id = ct.ai_predict_model_classify_id
|
|
|
|
+ )
|
|
|
|
+ SELECT COUNT(1) AS count
|
|
|
|
+ FROM (
|
|
|
|
+ SELECT ai_predict_model_classify_id
|
|
|
|
+ FROM ai_predict_model_classify_cte
|
|
|
|
+ UNION
|
|
|
|
+ SELECT ai_predict_model_classify_id
|
|
|
|
+ FROM ai_predict_model_classify
|
|
|
|
+ WHERE ai_predict_model_classify_id = ?
|
|
|
|
+ ) AS t
|
|
|
|
+ WHERE t.ai_predict_model_classify_id <> ?`
|
|
|
|
+ pars = append(pars, chartClassifyId, chartClassifyId, chartClassifyId)
|
|
|
|
+ }else{
|
|
|
|
+ sql = `SELECT COUNT(1) AS count FROM (
|
|
SELECT rd.*
|
|
SELECT rd.*
|
|
FROM (SELECT * FROM ai_predict_model_classify WHERE parent_id IS NOT NULL) rd,
|
|
FROM (SELECT * FROM ai_predict_model_classify WHERE parent_id IS NOT NULL) rd,
|
|
(SELECT @pid := ?) pd
|
|
(SELECT @pid := ?) pd
|
|
@@ -331,14 +381,39 @@ func GetAiPredictModelClassifyCountByClassifyId(chartClassifyId int) (count int,
|
|
UNION SELECT * FROM ai_predict_model_classify WHERE ai_predict_model_classify_id = @pid
|
|
UNION SELECT * FROM ai_predict_model_classify WHERE ai_predict_model_classify_id = @pid
|
|
)AS t
|
|
)AS t
|
|
WHERE t.ai_predict_model_classify_id <> ?`
|
|
WHERE t.ai_predict_model_classify_id <> ?`
|
|
- err = o.Raw(sql, chartClassifyId, chartClassifyId).Scan(&count).Error
|
|
|
|
|
|
+ pars = append(pars, chartClassifyId, chartClassifyId)
|
|
|
|
+ }
|
|
|
|
+ err = o.Raw(sql, pars...).Scan(&count).Error
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
// RemoveAiPredictModelClassify 删除分类及子分类
|
|
// RemoveAiPredictModelClassify 删除分类及子分类
|
|
func RemoveAiPredictModelClassify(classifyId int) (err error) {
|
|
func RemoveAiPredictModelClassify(classifyId int) (err error) {
|
|
o := global.DbMap[utils.DbNameIndex]
|
|
o := global.DbMap[utils.DbNameIndex]
|
|
- sql := `DELETE FROM ai_predict_model_classify
|
|
|
|
|
|
+ var pars []interface{}
|
|
|
|
+ var sql string
|
|
|
|
+ if utils.DbDriverName == utils.DbDriverByDm {
|
|
|
|
+ sql = `WITH RECURSIVE ai_predict_model_classify_cte (ai_predict_model_classify_id, parent_id) AS (
|
|
|
|
+ SELECT ai_predict_model_classify_id, parent_id
|
|
|
|
+ FROM ai_predict_model_classify
|
|
|
|
+ WHERE parent_id = ?
|
|
|
|
+ UNION ALL
|
|
|
|
+ SELECT c.ai_predict_model_classify_id, c.parent_id
|
|
|
|
+ FROM ai_predict_model_classify c
|
|
|
|
+ INNER JOIN ai_predict_model_classify_cte ct ON c.parent_id = ct.ai_predict_model_classify_id
|
|
|
|
+ )
|
|
|
|
+ DELETE FROM ai_predict_model_classify
|
|
|
|
+ WHERE ai_predict_model_classify_id IN (
|
|
|
|
+ SELECT ai_predict_model_classify_id
|
|
|
|
+ FROM ai_predict_model_classify_cte
|
|
|
|
+ UNION
|
|
|
|
+ SELECT ai_predict_model_classify_id
|
|
|
|
+ FROM ai_predict_model_classify
|
|
|
|
+ WHERE ai_predict_model_classify_id = ?
|
|
|
|
+ )`
|
|
|
|
+ pars = append(pars, classifyId, classifyId)
|
|
|
|
+ }else{
|
|
|
|
+ sql = `DELETE FROM ai_predict_model_classify
|
|
WHERE ai_predict_model_classify_id IN(
|
|
WHERE ai_predict_model_classify_id IN(
|
|
SELECT t.ai_predict_model_classify_id FROM
|
|
SELECT t.ai_predict_model_classify_id FROM
|
|
(
|
|
(
|
|
@@ -350,7 +425,9 @@ func RemoveAiPredictModelClassify(classifyId int) (err error) {
|
|
UNION SELECT * FROM ai_predict_model_classify WHERE ai_predict_model_classify_id = @pid
|
|
UNION SELECT * FROM ai_predict_model_classify WHERE ai_predict_model_classify_id = @pid
|
|
)AS t
|
|
)AS t
|
|
)`
|
|
)`
|
|
- err = o.Exec(sql, classifyId).Error
|
|
|
|
|
|
+ pars = append(pars, classifyId)
|
|
|
|
+ }
|
|
|
|
+ err = o.Exec(sql, pars...).Error
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|