瀏覽代碼

change gorm

Roc 1 月之前
父節點
當前提交
eb14a5dcaf
共有 3 個文件被更改,包括 24 次插入8 次删除
  1. 10 0
      models/data_manage/edb_info_calculate.go
  2. 2 2
      models/data_manage/predict_edb_conf.go
  3. 12 6
      models/sandbox/sandbox.go

+ 10 - 0
models/data_manage/edb_info_calculate.go

@@ -4,6 +4,7 @@ import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
+	"gorm.io/gorm"
 
 	"strings"
 	"time"
@@ -84,6 +85,15 @@ type EdbInfoCalculateDetail struct {
 	ClassifyId         int       `description:"分类id"`
 }
 
+// AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
+func (m *EdbInfoCalculateDetail) AfterFind(db *gorm.DB) (err error) {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+
+	return
+}
+
 func GetEdbInfoCalculateDetail(edbInfoId, source int) (list []*EdbInfoCalculateDetail, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 

+ 2 - 2
models/data_manage/predict_edb_conf.go

@@ -34,7 +34,7 @@ type PredictEdbConfDetail struct {
 	EndDate          time.Time                               `description:"截止日期"`
 	ModifyTime       time.Time                               `description:"修改时间"`
 	CreateTime       time.Time                               `description:"添加时间"`
-	CalculateList    []*PredictEdbConfCalculateMappingDetail `description:"配置与指标的关联信息"`
+	CalculateList    []*PredictEdbConfCalculateMappingDetail ` gorm:"-" description:"配置与指标的关联信息"`
 	EndNum           int                                     `description:"截止期数"`
 }
 
@@ -50,7 +50,7 @@ type PredictEdbConfAndData struct {
 	EndNum           int            `description:"截止期数"`
 	ModifyTime       time.Time      `description:"修改时间"`
 	CreateTime       time.Time      `description:"添加时间"`
-	DataList         []*EdbDataList `description:"动态数据"`
+	DataList         []*EdbDataList ` gorm:"-" description:"动态数据"`
 }
 
 // GetPredictEdbConfById 根据预测指标id获取预测指标配置信息

+ 12 - 6
models/sandbox/sandbox.go

@@ -1,6 +1,7 @@
 package sandbox
 
 import (
+	sql2 "database/sql"
 	"eta/eta_api/global"
 	"eta/eta_api/models/system"
 	"eta/eta_api/utils"
@@ -244,7 +245,7 @@ func GetSandboxClassify(sandboxClassifyId int) (sandbox_classify_id string, err
 	var sql string
 	var pars []interface{}
 	if utils.DbDriverName == utils.DbDriverByDm {
-		sql =  `WITH RECURSIVE classify_tree (sandbox_classify_id, level) AS (
+		sql = `WITH RECURSIVE classify_tree (sandbox_classify_id, level) AS (
 			-- 获取指定分类
 			SELECT sandbox_classify_id, 1 as level
 			FROM sandbox_classify 
@@ -261,7 +262,7 @@ func GetSandboxClassify(sandboxClassifyId int) (sandbox_classify_id string, err
 		SELECT LISTAGG(sandbox_classify_id, ',') WITHIN GROUP (ORDER BY level, sandbox_classify_id) AS sandbox_classify_id
 		FROM classify_tree`
 		pars = append(pars, sandboxClassifyId)
-	}else{
+	} else {
 		sql = `SELECT GROUP_CONCAT(t.sandbox_classify_id) AS sandbox_classify_id FROM (
 			SELECT a.sandbox_classify_id FROM sandbox_classify AS a 
 			WHERE a.sandbox_classify_id=?
@@ -276,7 +277,7 @@ WHERE
 	parent_id IN ( SELECT sandbox_classify_id FROM sandbox_classify WHERE parent_id = ? )
 			)AS t`
 		pars = append(pars, sandboxClassifyId, sandboxClassifyId, sandboxClassifyId)
-	} 
+	}
 	err = o.Raw(sql, pars...).Scan(&sandbox_classify_id).Error
 	return
 }
@@ -350,7 +351,7 @@ func GetSandboxAllParentByClassifyId(sandboxClassifyId int) (ids string, err err
 )
 SELECT LISTAGG(sandbox_classify_id, ',') WITHIN GROUP (ORDER BY sandbox_classify_id) AS ids
 FROM classify_tree`
-	}else{
+	} else {
 		sql = `SELECT
 		GROUP_CONCAT(DISTINCT m.sandbox_classify_id  ORDER BY m.level) AS ids 
 	FROM
@@ -383,8 +384,13 @@ FROM classify_tree`
 	WHERE
 		sandbox_classify_id = vm._id `
 	}
-		
-	err = o.Raw(sql, sandboxClassifyId).Scan(&ids).Error
+
+	var idStrNull sql2.NullString
+
+	err = o.Raw(sql, sandboxClassifyId).Scan(&idStrNull).Error
+	if err == nil && idStrNull.Valid {
+		ids = idStrNull.String
+	}
 	return
 }