Browse Source

fix: 工具箱gorm

hsun 3 weeks ago
parent
commit
fab6cafa80

+ 3 - 3
models/data_manage/chart_info.go

@@ -731,10 +731,10 @@ type ChartEdbInfoMapping struct {
 	LatestValue         float64     `description:"数据最新值"`
 	MoveLatestDate      string      `description:"移动后的数据最新日期"`
 	UniqueCode          string      `description:"指标唯一编码"`
-	MinValue            float64     `gorm:"-" json:"-" description:"最小值"`
-	MaxValue            float64     `gorm:"-" json:"-" description:"最大值"`
+	MinValue            float64     `json:"-" description:"最小值"`
+	MaxValue            float64     `json:"-" description:"最大值"`
 	DataList            interface{} `gorm:"-"`
-	IsNullData          bool        `gorm:"-" json:"-" description:"是否空数据"`
+	IsNullData          bool        `json:"-" description:"是否空数据"`
 	MappingSource       int         `description:"1:ETA图库;2:商品价格曲线"`
 	RegionType          string      `description:"交易所来源,海外还是国内" json:"-"`
 	ClassifyId          int         `description:"分类id"`

+ 18 - 4
models/data_manage/my_chart.go

@@ -13,7 +13,7 @@ type ChartListResp struct {
 	List   []*ChartInfoView
 }
 
-func GetChartListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*ChartInfoView, err error) {
+func GetChartListByCondition(condition string, pars []interface{}, startSize, pageSize int) (items []*ChartInfoView, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT * FROM chart_info WHERE 1=1 `
 	if condition != "" {
@@ -22,7 +22,7 @@ func GetChartListByCondition(condition string, pars []interface{}, startSize, pa
 	//sql += " ORDER BY sort ASC,chart_info_id DESC LIMIT ?,? "
 	sql += " ORDER BY create_time DESC LIMIT ?,? "
 	pars = append(pars, startSize, pageSize)
-	err = o.Raw(sql, pars...).Find(&item).Error
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -426,7 +426,21 @@ type ChartRecommendListResp struct {
 
 func GetChartClassify(chartClassifyId int) (chart_classify_id string, err error) {
 	o := global.DbMap[utils.DbNameIndex]
-	sql := `SELECT GROUP_CONCAT(t.chart_classify_id) AS chart_classify_id FROM (
+	//	sql := `SELECT GROUP_CONCAT(t.chart_classify_id) AS chart_classify_id FROM (
+	//			SELECT a.chart_classify_id FROM chart_classify AS a
+	//			WHERE a.chart_classify_id=?
+	//			UNION ALL
+	//			SELECT a.chart_classify_id FROM chart_classify AS a
+	//			WHERE a.parent_id=? UNION ALL
+	//	SELECT
+	//		chart_classify_id
+	//	FROM
+	//		chart_classify
+	//WHERE
+	//	parent_id IN ( SELECT chart_classify_id FROM chart_classify WHERE parent_id = ? )
+	//			)AS t`
+
+	sql := fmt.Sprintf(`SELECT %s AS chart_classify_id FROM (
 			SELECT a.chart_classify_id FROM chart_classify AS a 
 			WHERE a.chart_classify_id=?
 			UNION ALL
@@ -438,7 +452,7 @@ func GetChartClassify(chartClassifyId int) (chart_classify_id string, err error)
 		chart_classify 
 WHERE
 	parent_id IN ( SELECT chart_classify_id FROM chart_classify WHERE parent_id = ? )
-			)AS t`
+			)AS t`, utils.GroupUnitFunc(utils.DbDriverName, "t.chart_classify_id", ","))
 	err = o.Raw(sql, chartClassifyId, chartClassifyId, chartClassifyId).Scan(&chart_classify_id).Error
 	return
 }

+ 1 - 0
models/data_manage/mysteel_chemical_classify.go

@@ -95,6 +95,7 @@ func EditBaseFromMysteelChemicalClassifyEn(classifyId int, classifyNameEn string
 type BaseFromMysteelChemicalIndexResp struct {
 	List []*BaseFromMysteelChemicalClassifyItems
 }
+
 type BaseFromMysteelChemicalClassifyItems struct {
 	BaseFromMysteelChemicalClassifyId int                                        `orm:"column(base_from_mysteel_chemical_classify_id)"`
 	BaseFromMysteelChemicalIndexId    int                                        `orm:"column(base_from_mysteel_chemical_index_id)"`

+ 3 - 0
models/data_manage/trade_analysis/trade_classify.go

@@ -40,6 +40,7 @@ func GetTradeTopLastDataTime(exchange string, classifyName, classifyType string)
 		pars = append(pars, classifyType)
 	}
 	sql += ` ORDER BY latest_date desc`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
@@ -47,6 +48,7 @@ func GetTradeTopLastDataTime(exchange string, classifyName, classifyType string)
 // GetClassifyTypeByClassifyName 根据分类名称获取分类类型
 func GetClassifyTypeByClassifyName(exchange, classifyName string) (item *TradeClassifyName, err error) {
 	sql := `SELECT classify_name, classify_type FROM base_from_trade_classify WHERE exchange = ? AND classify_name=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, exchange, classifyName).First(&item).Error
 
 	return
@@ -103,6 +105,7 @@ func (m *BaseFromTradeClassify) GetClassifyItemsByCondition(condition string, pa
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s GROUP BY %s %s`, fields, m.TableName(), condition, m.Cols().ClassifyName, order)
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }

+ 3 - 2
utils/sql.go

@@ -91,8 +91,9 @@ func ReplaceDriverKeywords(driver string, sql string) string {
 	dbDriver, _ := getDriverInstance(driver)
 	rules := map[Driver]map[string]string{
 		DM: {
-			"admin": `"admin"`,
-			"value": `"value"`,
+			"admin":    `"admin"`,
+			"value":    `"value"`,
+			"exchange": `"exchange"`,
 		},
 	}
 	replacements, ok := rules[dbDriver]