Roc 2 місяців тому
батько
коміт
fc76201cb7
5 змінених файлів з 129 додано та 9 видалено
  1. 44 0
      models/chart.go
  2. 15 0
      models/chart_edb_mapping.go
  3. 1 1
      models/data_manage/edb_source.go
  4. 60 0
      utils/common.go
  5. 9 8
      utils/constants.go

+ 44 - 0
models/chart.go

@@ -6,6 +6,7 @@ import (
 	"eta/eta_chart_lib/models/mgo"
 	"eta/eta_chart_lib/utils"
 	"fmt"
+	"gorm.io/gorm"
 	"strconv"
 	"time"
 
@@ -61,11 +62,24 @@ type ChartInfo struct {
 	MarkersAreas      string    `description:"标识区"`
 }
 
+func (m *ChartInfo) ConvertDate() {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.SeasonStartDate = utils.GormDateStrToDateStr(m.SeasonStartDate)
+	m.SeasonEndDate = utils.GormDateStrToDateStr(m.SeasonEndDate)
+
+	return
+}
+
 func GetChartInfoByUniqueCode(uniqueCode string) (item *ChartInfo, err error) {
 	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM chart_info WHERE unique_code=? `
 	//err = o.Raw(sql, uniqueCode).QueryRow(&item)
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, uniqueCode).First(&item).Error
+	if err != nil {
+		item.ConvertDate()
+	}
+
 	return
 }
 
@@ -126,6 +140,26 @@ type ChartEdbInfoMapping struct {
 	IsJoinPermission    int     `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
 }
 
+func (m *ChartEdbInfoMapping) AfterFind(db *gorm.DB) (err error) {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+	m.MoveLatestDate = utils.GormDateStrToDateStr(m.MoveLatestDate)
+	m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
+
+	return
+}
+
+func (m *ChartEdbInfoMapping) ConvertDate() {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+	m.MoveLatestDate = utils.GormDateStrToDateStr(m.MoveLatestDate)
+	m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
+
+	return
+}
+
 func GetChartEdbMappingList(chartInfoId int) (list []*ChartEdbInfoMapping, err error) {
 	aField := `a.chart_edb_mapping_id,a.chart_info_id,a.edb_info_id,a.create_time,a.modify_time,a.unique_code,a.max_data,a.min_data,a.is_order,a.is_axis,a.edb_info_type,a.lead_value,a.lead_unit,a.chart_style,a.chart_color,a.predict_chart_color,a.chart_width,a.source as mapping_source,a.edb_alias_name,a.chart_scale`
 	sql := ` SELECT ` + aField + `,b.source_name,b.source,b.edb_code,b.edb_name,b.edb_name_en,b.frequency,b.unit,b.unit_en,b.start_date,b.end_date,b.modify_time,b.edb_type,b.latest_date,b.latest_value,b.unique_code,b.edb_info_type AS edb_info_category_type,b.sub_source,
@@ -147,6 +181,12 @@ type EdbDataList struct {
 	Value         float64 `description:"数据值"`
 }
 
+func (m *EdbDataList) AfterFind(db *gorm.DB) (err error) {
+	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
+
+	return
+}
+
 // GetEdbDataList 获取指标的数据(日期正序返回)
 func GetEdbDataList(source, subSource, edbInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
 	// 自有数据需要额外处理(从mongo获取)
@@ -957,6 +997,10 @@ func GetChartInfoById(chartInfoId int) (item *ChartInfo, err error) {
 	sql := ` SELECT * FROM chart_info WHERE chart_info_id=? `
 	//err = o.Raw(sql, chartInfoId).QueryRow(&item)
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).First(&item).Error
+	if err != nil {
+		item.ConvertDate()
+	}
+
 	return
 }
 

+ 15 - 0
models/chart_edb_mapping.go

@@ -17,6 +17,11 @@ func GetEtaEdbChartEdbMapping(chartInfoId int) (item *ChartEdbInfoMapping, err e
              ORDER BY chart_edb_mapping_id ASC `
 	//err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_DEFAULT).QueryRow(&item)
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId, utils.CHART_SOURCE_DEFAULT).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertDate()
+
 	return
 }
 
@@ -46,6 +51,11 @@ func GetFutureGoodEdbChartEdbMapping(chartInfoId int) (item *ChartEdbInfoMapping
              ORDER BY chart_edb_mapping_id ASC `
 	//err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_FUTURE_GOOD).QueryRow(&item)
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId, utils.CHART_SOURCE_FUTURE_GOOD).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertDate()
+
 	return
 }
 
@@ -71,6 +81,11 @@ func GetChartEdbMappingByEdbInfoId(edbInfoId int) (item *ChartEdbInfoMapping, er
 			 WHERE edb_info_id = ? limit 1`
 	//err = o.Raw(sql, edbInfoId).QueryRow(&item)
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertDate()
+
 	return
 }
 

+ 1 - 1
models/data_manage/edb_source.go

@@ -37,7 +37,7 @@ func GetEdbSourceItemsByCondition(condition string, pars []interface{}, fieldArr
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM edb_source WHERE 1=1 %s %s`, fields, condition, order)
-	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars).Find(&items).Error
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 

+ 60 - 0
utils/common.go

@@ -1404,3 +1404,63 @@ func ForwardPars(pars []interface{}, values ...interface{}) []interface{} {
 	}
 	return append(values, pars...)
 }
+
+// GormDateStrToDateTimeStr
+// @Description: gorm日期字符串格式转正常显示的日期时间字符串
+// @param originalString
+// @return formatStr
+func GormDateStrToDateTimeStr(originalString string) (formatStr string) {
+	if originalString == `` {
+		return
+	}
+	if strings.Contains(originalString, "0001-01-01") {
+		return
+	}
+
+	formatStr = originalString
+	if !strings.Contains(originalString, "T") {
+		return
+	}
+
+	// 解析原始字符串
+	t, err := time.Parse(FormatDateWallWithLoc, originalString)
+	if err != nil {
+		fmt.Println("Error parsing time:", err)
+		return
+	}
+
+	// 重新格式化时间
+	formatStr = t.Format(FormatDateTime)
+
+	return
+}
+
+// GormDateStrToDateStr
+// @Description: gorm日期字符串格式转正常显示的日期字符串
+// @param originalString
+// @return formatStr
+func GormDateStrToDateStr(originalString string) (formatStr string) {
+	if originalString == `` {
+		return
+	}
+	if strings.Contains(originalString, "0001-01-01") {
+		return
+	}
+
+	formatStr = originalString
+	if !strings.Contains(originalString, "T") {
+		return
+	}
+
+	// 解析原始字符串
+	t, err := time.Parse(FormatDateWallWithLoc, originalString)
+	if err != nil {
+		fmt.Println("Error parsing time:", err)
+		return
+	}
+
+	// 重新格式化时间
+	formatStr = t.Format(FormatDate)
+
+	return
+}

+ 9 - 8
utils/constants.go

@@ -2,14 +2,15 @@ package utils
 
 // 常量定义
 const (
-	FormatTime            = "15:04:05"                //时间格式
-	FormatDate            = "2006-01-02"              //日期格式
-	FormatDateUnSpace     = "20060102"                //日期格式
-	FormatDateTime        = "2006-01-02 15:04:05"     //完整时间格式
-	HlbFormatDateTime     = "2006-01-02_15:04:05.999" //完整时间格式
-	FormatDateTimeUnSpace = "20060102150405"          //完整时间格式
-	FormatYearMonthDate   = "2006-01"                 //日期格式
-	PageSize15            = 15                        //列表页每页数据量
+	FormatTime            = "15:04:05"                  //时间格式
+	FormatDate            = "2006-01-02"                //日期格式
+	FormatDateUnSpace     = "20060102"                  //日期格式
+	FormatDateWallWithLoc = "2006-01-02T15:04:05-07:00" //日期格式
+	FormatDateTime        = "2006-01-02 15:04:05"       //完整时间格式
+	HlbFormatDateTime     = "2006-01-02_15:04:05.999"   //完整时间格式
+	FormatDateTimeUnSpace = "20060102150405"            //完整时间格式
+	FormatYearMonthDate   = "2006-01"                   //日期格式
+	PageSize15            = 15                          //列表页每页数据量
 	PageSize5             = 5
 	PageSize10            = 10
 	PageSize20            = 20