Browse Source

重构数据获取逻辑并添加日期格式化功能

- 将直接的SQL查询替换为封装好的函数GetAllEdbDataListByTo,提高了代码的复用性和可维护性
- 在多个模型中添加了ConvertDate方法,用于统一格式化日期字符串,提高了数据的一致性
- 修复了一些潜在的错误,如未处理的错误返回和不必要的变量声明
Roc 5 tháng trước cách đây
mục cha
commit
1f6adb9233

+ 2 - 6
models/base_from_calculate.go

@@ -409,13 +409,9 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 	addSql := ` INSERT INTO edb_data_calculate(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	var isAdd bool
 
-	//获取指标所有数据
-	dataList := make([]*EdbData, 0)
 	dataTableName := GetEdbDataTableName(source, subSource)
-	sql := `SELECT * FROM %s WHERE edb_info_id=? `
-	sql = fmt.Sprintf(sql, dataTableName)
-	//_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)
-	err = to.Raw(sql, edbInfoId).Find(&dataList).Error
+	//获取指标所有数据
+	dataList, err := GetAllEdbDataListByTo(to, source, subSource, edbInfoId)
 	if err != nil {
 		return err
 	}

+ 3 - 6
models/base_predict_from_calculate.go

@@ -400,13 +400,10 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 	addSql := ` INSERT INTO edb_data_predict_calculate (edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	var isAdd bool
 
-	//获取指标所有数据
-	dataList := make([]*EdbData, 0)
+	var sql string
 	dataTableName := GetEdbDataTableName(source, subSource)
-	sql := `SELECT * FROM %s WHERE edb_info_id=? `
-	sql = fmt.Sprintf(sql, dataTableName)
-	//_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)
-	err = to.Raw(sql, edbInfoId).Find(&dataList).Error
+	//获取指标所有数据
+	dataList, err := GetAllEdbDataListByTo(to, source, subSource, edbInfoId)
 	if err != nil {
 		return
 	}

+ 28 - 1
models/edb_data_base.go

@@ -154,16 +154,34 @@ func GetAllEdbDataList(edbInfoId, source, subSource int) (existDataList []*EdbDa
 	sql := `SELECT * FROM %s WHERE edb_info_id=? order by data_time asc`
 	sql = fmt.Sprintf(sql, dataTableName)
 	err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).Find(&existDataList).Error
+	if err != nil {
+		return
+	}
+
+	// 日期格式化
+	for _, item := range existDataList {
+		item.ConvertDate()
+	}
 	return
 }
 
 // GetAllEdbDataListByTo 获取所有的指标数据列表
 func GetAllEdbDataListByTo(to *gorm.DB, edbInfoId, source, subSource int) (existDataList []*EdbData, err error) {
 	dataTableName := GetEdbDataTableName(source, subSource)
-	fmt.Println("dataTableName:", dataTableName)
+	//fmt.Println("dataTableName:", dataTableName)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? order by data_time asc`
 	sql = fmt.Sprintf(sql, dataTableName)
 	err = to.Raw(sql, edbInfoId).Find(&existDataList).Error
+
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 日期格式化
+	//for _, item := range existDataList {
+	//	item.ConvertDate()
+	//}
+
 	return
 }
 
@@ -270,3 +288,12 @@ type EditEdbBaseInfoReq struct {
 	UnitEn          string `description:"英文单位"`
 	ClassifyId      int    `description:"分类id"`
 }
+
+// ConvertDate
+// @Description: 格式化EdbData的日期
+// @receiver e
+func (m *EdbData) ConvertDate() {
+	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
+
+	return
+}

+ 20 - 2
models/edb_info.go

@@ -802,7 +802,7 @@ func GetEdbDataListAllV1(condition string, pars []interface{}, source, subSource
 }
 
 // GetEdbDataListAllV1ByTo 通过事务链接获取数据列表
-func GetEdbDataListAllV1ByTo(to *gorm.DB, condition string, pars []interface{}, source, subSource, order int) (item []*EdbInfoSearchDataV1, err error) {
+func GetEdbDataListAllV1ByTo(to *gorm.DB, condition string, pars []interface{}, source, subSource, order int) (items []*EdbInfoSearchDataV1, err error) {
 	sql := ``
 	tableName := GetEdbDataTableName(source, subSource)
 	sql = ` SELECT * FROM %s WHERE 1=1 `
@@ -816,7 +816,16 @@ func GetEdbDataListAllV1ByTo(to *gorm.DB, condition string, pars []interface{},
 	} else {
 		sql += ` ORDER BY data_time DESC `
 	}
-	err = to.Raw(sql, pars...).Scan(&item).Error
+	err = to.Raw(sql, pars...).Scan(&items).Error
+	if err != nil {
+		return
+	}
+
+	// 日期格式化
+	for _, item := range items {
+		item.ConvertDate()
+	}
+
 	return
 }
 
@@ -1811,3 +1820,12 @@ func (m SortEdbDataList) Less(i, j int) bool {
 func (m SortEdbDataList) Swap(i, j int) {
 	m[i], m[j] = m[j], m[i]
 }
+
+// ConvertDate
+// @Description: 格式化EdbData的日期
+// @receiver e
+func (m *EdbInfoSearchDataV1) ConvertDate() {
+	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
+
+	return
+}