|
@@ -134,7 +134,32 @@ type DeleteChartClassifyReq struct {
|
|
|
}
|
|
|
|
|
|
func GetChartInfoCountByClassifyId(classifyId int) (count int, err error) {
|
|
|
- sqlStr := ` SELECT COUNT(1) AS count FROM chart_info AS a
|
|
|
+ var pars []interface{}
|
|
|
+ var sqlStr string
|
|
|
+
|
|
|
+ if utils.DbDriverName == utils.DbDriverByDm {
|
|
|
+ sqlStr = `WITH RECURSIVE chart_classify_cte (chart_classify_id, parent_id) AS (
|
|
|
+ SELECT chart_classify_id, parent_id
|
|
|
+ FROM chart_classify
|
|
|
+ WHERE parent_id = ?
|
|
|
+ UNION ALL
|
|
|
+ SELECT c.chart_classify_id, c.parent_id
|
|
|
+ FROM chart_classify c
|
|
|
+ INNER JOIN chart_classify_cte ct ON c.parent_id = ct.chart_classify_id
|
|
|
+ )
|
|
|
+ SELECT COUNT(1) AS count
|
|
|
+ FROM chart_info a
|
|
|
+ WHERE a.chart_classify_id IN (
|
|
|
+ SELECT chart_classify_id
|
|
|
+ FROM chart_classify_cte
|
|
|
+ UNION
|
|
|
+ SELECT chart_classify_id
|
|
|
+ FROM chart_classify
|
|
|
+ WHERE chart_classify_id = ?
|
|
|
+ )`
|
|
|
+ pars = append(pars, classifyId, classifyId)
|
|
|
+ } else {
|
|
|
+ sqlStr = ` SELECT COUNT(1) AS count FROM chart_info AS a
|
|
|
WHERE a.chart_classify_id IN(
|
|
|
SELECT t.chart_classify_id FROM
|
|
|
(
|
|
@@ -146,10 +171,11 @@ func GetChartInfoCountByClassifyId(classifyId int) (count int, err error) {
|
|
|
UNION SELECT * FROM chart_classify WHERE chart_classify_id = @pid
|
|
|
)AS t
|
|
|
) `
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ }
|
|
|
|
|
|
var totalNull sql.NullInt64
|
|
|
- err = global.DbMap[utils.DbNameIndex].Raw(sqlStr, classifyId).Scan(&totalNull).Error
|
|
|
-
|
|
|
+ err = global.DbMap[utils.DbNameIndex].Raw(sqlStr, pars...).Scan(&totalNull).Error
|
|
|
if !totalNull.Valid {
|
|
|
count = 0
|
|
|
} else {
|
|
@@ -159,7 +185,31 @@ func GetChartInfoCountByClassifyId(classifyId int) (count int, err error) {
|
|
|
}
|
|
|
|
|
|
func DeleteChartClassify(classifyId int) (err error) {
|
|
|
- sql := ` DELETE FROM chart_classify
|
|
|
+ var pars []interface{}
|
|
|
+ var strSql string
|
|
|
+
|
|
|
+ if utils.DbDriverName == utils.DbDriverByDm {
|
|
|
+ strSql = `WITH RECURSIVE chart_classify_cte (chart_classify_id, parent_id) AS (
|
|
|
+ SELECT chart_classify_id, parent_id
|
|
|
+ FROM chart_classify
|
|
|
+ WHERE parent_id = ?
|
|
|
+ UNION ALL
|
|
|
+ SELECT c.chart_classify_id, c.parent_id
|
|
|
+ FROM chart_classify c
|
|
|
+ INNER JOIN chart_classify_cte ct ON c.parent_id = ct.chart_classify_id
|
|
|
+ )
|
|
|
+ DELETE FROM chart_classify
|
|
|
+ WHERE chart_classify_id IN (
|
|
|
+ SELECT chart_classify_id
|
|
|
+ FROM chart_classify_cte
|
|
|
+ UNION
|
|
|
+ SELECT chart_classify_id
|
|
|
+ FROM chart_classify
|
|
|
+ WHERE chart_classify_id = ?
|
|
|
+ )`
|
|
|
+ pars = append(pars, classifyId, classifyId)
|
|
|
+ } else {
|
|
|
+ strSql = ` DELETE FROM chart_classify
|
|
|
WHERE chart_classify_id IN(
|
|
|
SELECT t.chart_classify_id FROM
|
|
|
(
|
|
@@ -171,7 +221,10 @@ func DeleteChartClassify(classifyId int) (err error) {
|
|
|
UNION SELECT * FROM chart_classify WHERE chart_classify_id = @pid
|
|
|
)AS t
|
|
|
) `
|
|
|
- err = global.DbMap[utils.DbNameIndex].Exec(sql, classifyId).Error
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = global.DbMap[utils.DbNameIndex].Exec(strSql, pars...).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -250,7 +303,32 @@ type ChartClassifyDeleteCheckReq struct {
|
|
|
}
|
|
|
|
|
|
func GetChartClassifyCountByClassifyId(chartClassifyId int) (count int, err error) {
|
|
|
- sql := ` SELECT COUNT(1) AS count FROM (
|
|
|
+ var strSql string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ if utils.DbDriverName == utils.DbDriverByDm {
|
|
|
+ strSql = `WITH RECURSIVE chart_classify_cte (chart_classify_id, parent_id) AS (
|
|
|
+ SELECT chart_classify_id, parent_id
|
|
|
+ FROM chart_classify
|
|
|
+ WHERE parent_id = ?
|
|
|
+ UNION ALL
|
|
|
+ SELECT c.chart_classify_id, c.parent_id
|
|
|
+ FROM chart_classify c
|
|
|
+ INNER JOIN chart_classify_cte ct ON c.parent_id = ct.chart_classify_id
|
|
|
+ )
|
|
|
+ SELECT COUNT(1) AS count
|
|
|
+ FROM (
|
|
|
+ SELECT chart_classify_id
|
|
|
+ FROM chart_classify_cte
|
|
|
+ UNION
|
|
|
+ SELECT chart_classify_id
|
|
|
+ FROM chart_classify
|
|
|
+ WHERE chart_classify_id = ?
|
|
|
+ ) AS t
|
|
|
+ WHERE t.chart_classify_id <> ?`
|
|
|
+ pars = append(pars, chartClassifyId, chartClassifyId, chartClassifyId)
|
|
|
+ } else {
|
|
|
+ strSql = ` SELECT COUNT(1) AS count FROM (
|
|
|
SELECT rd.*
|
|
|
FROM (SELECT * FROM chart_classify WHERE parent_id IS NOT NULL) rd,
|
|
|
(SELECT @pid := ?) pd
|
|
@@ -259,7 +337,9 @@ func GetChartClassifyCountByClassifyId(chartClassifyId int) (count int, err erro
|
|
|
UNION SELECT * FROM chart_classify WHERE chart_classify_id = @pid
|
|
|
)AS t
|
|
|
WHERE t.chart_classify_id<>? `
|
|
|
- err = global.DbMap[utils.DbNameIndex].Raw(sql, chartClassifyId, chartClassifyId).Scan(&count).Error
|
|
|
+ pars = append(pars, chartClassifyId, chartClassifyId)
|
|
|
+ }
|
|
|
+ err = global.DbMap[utils.DbNameIndex].Raw(strSql, pars...).Scan(&count).Error
|
|
|
return
|
|
|
}
|
|
|
|