Browse Source

相关性分析、拟合方程曲线、统计特征、区间分析等所有图库删除目录时校验sql报错bug fix

zwxi 5 months ago
parent
commit
ebd4d723d6

+ 38 - 11
controllers/data_manage/chart_classify.go

@@ -435,6 +435,7 @@ func (this *ChartClassifyController) DeleteChartClassifyCheck() {
 	}
 	var deleteStatus int
 	var tipsMsg string
+	childIds := make([]int, 0)
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		// 查找分类
@@ -463,7 +464,6 @@ func (this *ChartClassifyController) DeleteChartClassifyCheck() {
 		}
 
 		//判断图表分类下,是否含有图表
-		childIds := make([]int, 0)
 		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_DEFAULT)
 		if err != nil {
 			br.Msg = "删除失败"
@@ -504,13 +504,13 @@ func (this *ChartClassifyController) DeleteChartClassifyCheck() {
 	}
 
 	if deleteStatus != 1 && req.ChartInfoId == 0 {
-		classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
-			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
-			return
-		}
-		if classifyCount > 0 {
+		//classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
+		if len(childIds) > 0 {
 			deleteStatus = 2
 			tipsMsg = "确认删除当前目录及包含的子目录吗"
 		}
@@ -591,12 +591,39 @@ func (this *ChartClassifyController) DeleteChartClassify() {
 		}
 
 		//判断是否含有指标
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		childIds := make([]int, 0)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_DEFAULT)
+		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			br.Msg = "该目录下存在关联指标,不可删除"

+ 59 - 5
controllers/data_manage/correlation/correlation_chart_classify.go

@@ -343,12 +343,39 @@ func (this *CorrelationChartClassifyController) DeleteChartClassifyCheck() {
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断相关性图表分类下,是否含有图表
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		childIds := make([]int, 0)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_CORRELATION)
 		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			deleteStatus = 1
@@ -419,12 +446,39 @@ func (this *CorrelationChartClassifyController) DeleteChartClassify() {
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断是否含有指标
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		childIds := make([]int, 0)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_CORRELATION)
+		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			br.Msg = "该目录下存在关联指标,不可删除"

+ 67 - 12
controllers/data_manage/cross_variety/classify.go

@@ -177,15 +177,43 @@ func (c *ClassifyController) DeleteChartClassifyCheck() {
 	}
 	var deleteStatus int
 	var tipsMsg string
+	childIds := make([]int, 0)
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断跨品种分析图表分类下,是否含有图表
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_CROSS_HEDGING)
 		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			deleteStatus = 1
@@ -194,13 +222,13 @@ func (c *ClassifyController) DeleteChartClassifyCheck() {
 	}
 
 	if deleteStatus != 1 && req.ChartInfoId == 0 {
-		classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
-			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
-			return
-		}
-		if classifyCount > 0 {
+		//classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
+		if len(childIds) > 0 {
 			deleteStatus = 2
 			tipsMsg = "确认删除当前目录及包含的子目录吗"
 		}
@@ -256,12 +284,39 @@ func (c *ClassifyController) DeleteChartClassify() {
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断是否含有指标
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		childIds := make([]int, 0)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_CROSS_HEDGING)
+		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			br.Msg = "该目录下存在关联指标,不可删除"

+ 66 - 12
controllers/data_manage/future_good/future_good_chart_classify.go

@@ -286,15 +286,42 @@ func (this *FutureGoodChartClassifyController) DeleteChartClassifyCheck() {
 	}
 	var deleteStatus int
 	var tipsMsg string
+	childIds := make([]int, 0)
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断商品价格图表分类下,是否含有图表
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_FUTURE_GOOD)
 		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有指标失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
 			return
 		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
+			return
+		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有指标失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			deleteStatus = 1
@@ -303,13 +330,13 @@ func (this *FutureGoodChartClassifyController) DeleteChartClassifyCheck() {
 	}
 
 	if deleteStatus != 1 && req.ChartInfoId == 0 {
-		classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
-			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
-			return
-		}
-		if classifyCount > 0 {
+		//classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
+		if len(childIds) > 0 {
 			deleteStatus = 2
 			tipsMsg = "确认删除当前目录及包含的子目录吗"
 		}
@@ -365,12 +392,39 @@ func (this *FutureGoodChartClassifyController) DeleteChartClassify() {
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断是否含有指标
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		childIds := make([]int, 0)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_FUTURE_GOOD)
+		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			br.Msg = "该目录下存在关联指标,不可删除"

+ 66 - 12
controllers/data_manage/line_equation/line_chart_classify.go

@@ -291,15 +291,42 @@ func (this *LineEquationChartClassifyController) DeleteChartClassifyCheck() {
 	}
 	var deleteStatus int
 	var tipsMsg string
+	childIds := make([]int, 0)
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断拟合方程图表分类下,是否含有图表
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_LINE_EQUATION)
 		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
 			return
 		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
+			return
+		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			deleteStatus = 1
@@ -308,13 +335,13 @@ func (this *LineEquationChartClassifyController) DeleteChartClassifyCheck() {
 	}
 
 	if deleteStatus != 1 && req.ChartInfoId == 0 {
-		classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
-			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
-			return
-		}
-		if classifyCount > 0 {
+		//classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
+		if len(childIds) > 0 {
 			deleteStatus = 2
 			tipsMsg = "确认删除当前目录及包含的子目录吗"
 		}
@@ -370,12 +397,39 @@ func (this *LineEquationChartClassifyController) DeleteChartClassify() {
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断是否含有指标
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		childIds := make([]int, 0)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_LINE_EQUATION)
+		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			br.Msg = "该目录下存在关联指标,不可删除"

+ 66 - 12
controllers/data_manage/line_feature/classify.go

@@ -291,15 +291,42 @@ func (this *LineFeaturesChartClassifyController) DeleteChartClassifyCheck() {
 	}
 	var deleteStatus int
 	var tipsMsg string
+	childIds := make([]int, 0)
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断统计特征图表分类下,是否含有图表
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION)
 		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
 			return
 		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
+			return
+		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			deleteStatus = 1
@@ -308,13 +335,13 @@ func (this *LineFeaturesChartClassifyController) DeleteChartClassifyCheck() {
 	}
 
 	if deleteStatus != 1 && req.ChartInfoId == 0 {
-		classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
-			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
-			return
-		}
-		if classifyCount > 0 {
+		//classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
+		if len(childIds) > 0 {
 			deleteStatus = 2
 			tipsMsg = "确认删除当前目录及包含的子目录吗"
 		}
@@ -370,12 +397,39 @@ func (this *LineFeaturesChartClassifyController) DeleteChartClassify() {
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断是否含有指标
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		childIds := make([]int, 0)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION)
+		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			br.Msg = "该目录下存在关联指标,不可删除"

+ 66 - 12
controllers/data_manage/range_analysis/chart_classify.go

@@ -339,15 +339,42 @@ func (this *RangeChartClassifyController) DeleteChartClassifyCheck() {
 	}
 	var deleteStatus int
 	var tipsMsg string
+	childIds := make([]int, 0)
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断区间分析图表分类下,是否含有图表
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_RANGE_ANALYSIS)
 		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
 			return
 		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
+			return
+		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			deleteStatus = 1
@@ -356,13 +383,13 @@ func (this *RangeChartClassifyController) DeleteChartClassifyCheck() {
 	}
 
 	if deleteStatus != 1 && req.ChartInfoId == 0 {
-		classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
-			br.Msg = "删除失败"
-			br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
-			return
-		}
-		if classifyCount > 0 {
+		//classifyCount, err := data_manage.GetChartClassifyCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "分类下是否含有图表失败,Err:" + err.Error()
+		//	return
+		//}
+		if len(childIds) > 0 {
 			deleteStatus = 2
 			tipsMsg = "确认删除当前目录及包含的子目录吗"
 		}
@@ -418,12 +445,39 @@ func (this *RangeChartClassifyController) DeleteChartClassify() {
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
 		//判断是否含有指标
-		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		childIds := make([]int, 0)
+		classifyAll, err := data_manage.GetChartClassifyAllBySource(utils.CHART_SOURCE_RANGE_ANALYSIS)
+		if err != nil {
 			br.Msg = "删除失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+			br.ErrMsg = "获取分类数据失败,Err:" + err.Error()
+			return
+		}
+		classifyAllMap := make(map[int]*data_manage.ChartClassifyItems)
+		for _, v := range classifyAll {
+			classifyAllMap[v.ChartClassifyId] = v
+		}
+		data.GetChartClassifyChildIds(req.ChartClassifyId, classifyAllMap, &childIds)
+		condition := ``
+		pars := make([]interface{}, 0)
+		if len(childIds) > 0 {
+			ids := utils.IntArr2joinString(childIds, ",")
+			condition = ` AND chart_classify_id IN (`+ ids +`) `
+		} else {
+			condition = ` AND chart_classify_id = ? `
+			pars = append(pars, req.ChartClassifyId)
+		}
+		count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "判断图表名称是否存在失败"
+			br.ErrMsg = "判断图表名称是否存在失败,Err:" + err.Error()
 			return
 		}
+		//count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
+		//if err != nil && !utils.IsErrNoRow(err) {
+		//	br.Msg = "删除失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
 
 		if count > 0 {
 			br.Msg = "该目录下存在关联指标,不可删除"