Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/dm' into dm

Roc 2 mesi fa
parent
commit
0b64d3a381

+ 1 - 1
controllers/oilchem_data.go

@@ -103,7 +103,7 @@ func (this *TradeCommonController) OilchemIndexList() {
 		for _, v1 := range dataList {
 			if v.BaseFromOilchemIndexId == v1.BaseFromOilchemIndexId {
 				indexList[i].DataTime = v1.DataTime
-				indexList[i].Value = v1.Value
+				indexList[i].Value = v1.Value.String()
 			}
 		}
 	}

+ 1 - 1
controllers/sandbox/sandbox.go

@@ -1156,7 +1156,7 @@ func (this *SandboxController) DeleteSandboxClassify() {
 	//删除分类
 	if req.SandboxClassifyId > 0 && req.SandboxId == 0 {
 		//判断是否含有指标
-		count, err := sandbox.GetSandboxInfoCountByClassifyId(req.SandboxId)
+		count, err := sandbox.GetSandboxInfoCountByClassifyId(req.SandboxClassifyId)
 		if err != nil && !utils.IsErrNoRow(err) {
 			br.Msg = "删除失败"
 			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()

+ 1 - 1
models/ai_predict_model/ai_predict_model_classify.go

@@ -317,7 +317,7 @@ func GetAiPredictModelIndexCountByClassifyId(classifyId int) (count int, err err
 		)
 		SELECT COUNT(1) AS count
 		FROM ai_predict_model_index a
-			WHERE a.ai_predict_model_classify_id IN (
+			WHERE a.classify_id IN (
 				SELECT ai_predict_model_classify_id
 				FROM ai_predict_model_classify_cte
 				UNION

+ 25 - 1
models/ai_summary/ai_summary_classify.go

@@ -338,7 +338,30 @@ WHERE
 
 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
 }

+ 2 - 1
models/data_manage/base_from_oilchem.go

@@ -3,6 +3,7 @@ package data_manage
 import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
+	"github.com/shopspring/decimal"
 	"gorm.io/gorm"
 
 	"github.com/rdlucklib/rdluck_tools/paging"
@@ -48,7 +49,7 @@ type BaseFromOilchemData struct {
 	BaseFromOilchemIndexId int    // 指标ID
 	IndexCode              string // 指标编码
 	DataTime               string
-	Value                  string
+	Value                  decimal.Decimal
 	CreateTime             string
 	ModifyTime             string
 }

+ 6 - 1
models/data_manage/my_chart.go

@@ -1,6 +1,7 @@
 package data_manage
 
 import (
+	sql2 "database/sql"
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
@@ -131,8 +132,12 @@ func GetMyChartClassifyMastSort(adminId int) (sort int, err error) {
 // GetMyChartClassifyMinSort 获取MY ETA 分类中排序最小的值
 func GetMyChartClassifyMinSort(adminId int) (sort int, err error) {
 	o := global.DbMap[utils.DbNameIndex]
+	var scanSort sql2.NullInt64
 	sql := ` SELECT MIN(sort) sort FROM my_chart_classify WHERE admin_id=? `
-	err = o.Raw(sql, adminId).Scan(&sort).Error
+	err = o.Raw(sql, adminId).Scan(&scanSort).Error
+	if scanSort.Valid {
+		sort = int(scanSort.Int64)
+	}
 	return
 }
 

+ 49 - 0
models/english_report.go

@@ -7,6 +7,7 @@ import (
 	"eta/eta_api/models/data_manage/excel"
 	"eta/eta_api/utils"
 	"fmt"
+	"gorm.io/gorm"
 	"strings"
 	"time"
 
@@ -248,9 +249,51 @@ type EnglishReportDetail struct {
 	ClassifyNameRoot   string `description:"顶级分类名称"`
 }
 
+func (obj *EnglishReportDetail) AfterFind(tx *gorm.DB) (err error) {
+	if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
+		if obj.CreateTime != "" {
+			obj.CreateTime = utils.GormDateStrToDateTimeStr(obj.CreateTime)
+		}
+		if obj.ModifyTime != "" {
+			obj.ModifyTime = utils.GormDateStrToDateTimeStr(obj.ModifyTime)
+		}
+		if obj.PublishTime != "" {
+			obj.PublishTime = utils.GormDateStrToDateTimeStr(obj.PublishTime)
+		}
+		if obj.PrePublishTime != "" {
+			obj.PrePublishTime = utils.GormDateStrToDateTimeStr(obj.PrePublishTime)
+		}
+	}
+	return
+}
+
+func (obj *EnglishReportDetail) ConvertTimeStr() {
+	if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
+		if obj.CreateTime != "" {
+			obj.CreateTime = utils.GormDateStrToDateTimeStr(obj.CreateTime)
+		}
+		if obj.ModifyTime != "" {
+			obj.ModifyTime = utils.GormDateStrToDateTimeStr(obj.ModifyTime)
+		}
+		if obj.PublishTime != "" {
+			obj.PublishTime = utils.GormDateStrToDateTimeStr(obj.PublishTime)
+		}
+		if obj.PrePublishTime != "" {
+			obj.PrePublishTime = utils.GormDateStrToDateTimeStr(obj.PrePublishTime)
+		}
+	}
+	return
+}
+
 func GetEnglishReportById(reportId int) (item *EnglishReportDetail, err error) {
 	sql := `SELECT * FROM english_report WHERE id=?`
 	err = global.DbMap[utils.DbNameReport].Raw(sql, reportId).First(&item).Error
+	if err != nil {
+		return
+	}
+	if item != nil && item.Id > 0 {
+		item.ConvertTimeStr()
+	}
 	return
 }
 
@@ -538,6 +581,12 @@ func GetEnglishReportDetailByClassifyId(classifyIdFirst, classifyIdSecond int) (
 		sql = sql + ` AND classify_id_first=?   ORDER BY stage DESC LIMIT 1`
 		err = o.Raw(sql, classifyIdFirst).First(&item).Error
 	}
+	if err != nil {
+		return
+	}
+	if item != nil && item.Id > 0 {
+		item.ConvertTimeStr()
+	}
 	return
 }
 

+ 43 - 23
models/sandbox/sandbox.go

@@ -333,37 +333,57 @@ func GetSandboxItemsByClassifyId(sandboxClassifyId int) (list []*SandboxClassify
 
 func GetSandboxAllParentByClassifyId(sandboxClassifyId int) (ids string, err error) {
 	o := global.DbMap[utils.DbNameIndex]
-	sql := `SELECT
-	GROUP_CONCAT(DISTINCT m.sandbox_classify_id  ORDER BY m.level) AS ids 
-FROM
-	(
-	SELECT
-		@id AS _id,(
-		SELECT
-			@id := parent_id 
-		FROM
-			sandbox_classify 
-		WHERE
-			sandbox_classify_id = _id 
-		) 
+	var sql string
+	if utils.DbDriverName == utils.DbDriverByDm {
+		sql = `WITH RECURSIVE classify_tree (sandbox_classify_id) AS (
+    -- 基础查询:获取起始节点
+    SELECT sandbox_classify_id
+    FROM sandbox_classify 
+    WHERE sandbox_classify_id = ?
+    
+    UNION ALL
+    
+    -- 递归查询:获取直接子节点
+    SELECT sc.sandbox_classify_id
+    FROM sandbox_classify sc
+    INNER JOIN classify_tree ct ON sc.parent_id = ct.sandbox_classify_id
+)
+SELECT LISTAGG(sandbox_classify_id, ',') WITHIN GROUP (ORDER BY sandbox_classify_id) AS ids
+FROM classify_tree`
+	}else{
+		sql = `SELECT
+		GROUP_CONCAT(DISTINCT m.sandbox_classify_id  ORDER BY m.level) AS ids 
 	FROM
 		(
 		SELECT
-			@id :=(
+			@id AS _id,(
 			SELECT
-				parent_id 
+				@id := parent_id 
 			FROM
 				sandbox_classify 
 			WHERE
-				sandbox_classify_id = ? 
-			)) vm,
-		sandbox_classify m 
+				sandbox_classify_id = _id 
+			) 
+		FROM
+			(
+			SELECT
+				@id :=(
+				SELECT
+					parent_id 
+				FROM
+					sandbox_classify 
+				WHERE
+					sandbox_classify_id = ? 
+				)) vm,
+			sandbox_classify m 
+		WHERE
+			@id IS NOT NULL 
+		) vm
+		INNER JOIN sandbox_classify m 
 	WHERE
-		@id IS NOT NULL 
-	) vm
-	INNER JOIN sandbox_classify m 
-WHERE
-	sandbox_classify_id = vm._id `
+		sandbox_classify_id = vm._id `
+	}
+		
 	err = o.Raw(sql, sandboxClassifyId).Scan(&ids).Error
 	return
 }