Переглянути джерело

统一转换 EDB 信息时间格式

在多个控制器和模型中实现了 EDB 信息时间格式的统一转换。新增了 GormDateStrToDateTimeStr 和 GormDateStrToDateStr 两个工具函数,用于将 GORM 存储的时间字符串转换为常规的日期和日期时间格式。修改涉及 EDB 信息获取、预测、Elasticsearch相关功能,确保了时间显示的一致性和正确性。
Roc 5 місяців тому
батько
коміт
6fadc70f1e

+ 12 - 0
controllers/data_manage/edb_info.go

@@ -2229,6 +2229,8 @@ func (this *EdbInfoController) EdbInfoList() {
 		br.Msg = "获取成功"
 		return
 	}
+	// 时间转格式
+	edbInfoItem.ConvertToResp()
 
 	//获取英文频度
 	edbInfoItem.FrequencyEn = data.GetFrequencyEn(edbInfoItem.Frequency)
@@ -3349,6 +3351,7 @@ func (this *EdbInfoController) EdbInfoFilter() {
 			return
 		}
 		for _, nv := range newEdbInfoList {
+			nv.ConvertToResp()
 			if _, ok := existMap[nv.EdbInfoId]; !ok {
 				edbInfoList = append(edbInfoList, nv)
 			}
@@ -3363,6 +3366,8 @@ func (this *EdbInfoController) EdbInfoFilter() {
 	edbInfoListLen := len(edbInfoList)
 
 	for i := 0; i < edbInfoListLen; i++ {
+		// 时间转格式
+		edbInfoList[i].ConvertToResp()
 		edbInfoList[i].EdbNameAlias = edbInfoList[i].EdbName
 	}
 
@@ -3526,6 +3531,7 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 
 	classifyIdList := make([]int, 0)
 	for i := 0; i < edbInfoListLen; i++ {
+		edbInfoList[i].ConvertToResp()
 		edbInfoList[i].EdbNameAlias = edbInfoList[i].EdbName
 		classifyIdList = append(classifyIdList, edbInfoList[i].ClassifyId)
 	}
@@ -3701,6 +3707,7 @@ func (this *EdbInfoController) EdbInfoFilter2() {
 	edbInfoListLen := len(edbInfoList)
 
 	for i := 0; i < edbInfoListLen; i++ {
+		edbInfoList[i].ConvertToResp()
 		edbInfoList[i].EdbNameAlias = edbInfoList[i].EdbName
 	}
 
@@ -3738,6 +3745,9 @@ func searchEdbInfoFilter(condition string, pars []interface{}, i int, ch chan ma
 		searchWait.Done()
 	}()
 	newEdbInfoList, err := data_manage.GetEdbInfoFilter(condition, pars)
+	for _, v := range newEdbInfoList {
+		v.ConvertToResp()
+	}
 	newEdbInfoListMap[i] = newEdbInfoList
 	return
 }
@@ -4913,6 +4923,7 @@ func (this *EdbInfoController) AllEdbInfoByEs() {
 
 	classifyIdList := make([]int, 0)
 	for i := 0; i < edbInfoListLen; i++ {
+		edbInfoList[i].ConvertToResp()
 		edbInfoList[i].EdbNameAlias = edbInfoList[i].EdbName
 		classifyIdList = append(classifyIdList, edbInfoList[i].ClassifyId)
 	}
@@ -5509,6 +5520,7 @@ func (this *EdbInfoController) EdbChartList() {
 	} else {
 		classifyIdList := make([]int, 0)
 		for _, v := range list {
+			v.ConvertToResp()
 			classifyIdList = append(classifyIdList, v.ClassifyId)
 		}
 

+ 4 - 0
controllers/data_manage/predict_edb_info.go

@@ -132,6 +132,7 @@ func (this *PredictEdbInfoController) EdbChartList() {
 	} else {
 		classifyIdList := make([]int, 0)
 		for _, v := range list {
+			v.ConvertToResp()
 			classifyIdList = append(classifyIdList, v.ClassifyId)
 		}
 
@@ -262,6 +263,8 @@ func (this *PredictEdbInfoController) List() {
 		return
 	}
 
+	edbInfoItem.ConvertToResp()
+
 	//获取英文频度
 	edbInfoItem.FrequencyEn = data.GetFrequencyEn(edbInfoItem.Frequency)
 
@@ -1242,6 +1245,7 @@ func (this *PredictEdbInfoController) FilterByEs() {
 
 	classifyIdList := make([]int, 0)
 	for i := 0; i < edbInfoListLen; i++ {
+		edbInfoList[i].ConvertToResp()
 		edbInfoList[i].EdbNameAlias = edbInfoList[i].EdbName
 		classifyIdList = append(classifyIdList, edbInfoList[i].ClassifyId)
 	}

+ 12 - 0
models/data_manage/edb_info_resp.go

@@ -82,3 +82,15 @@ func (m EdbInfo) ConvertToResp() (*EdbInfoResp, error) {
 
 	return result, err
 }
+
+// ConvertToResp
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *EdbInfoList) ConvertToResp() {
+	m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
+	m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+
+	return
+}

+ 11 - 0
services/elastic/elastic.go

@@ -334,6 +334,10 @@ func SearchEdbInfoDataBak(indexName, keywordStr string, from, size, filterSource
 		if err != nil {
 			fmt.Println("EsAddOrEditData Err:", err.Error())
 		}
+
+		for _, v := range list {
+			v.ConvertToResp()
+		}
 	}()
 	client := utils.EsClient
 
@@ -637,6 +641,10 @@ func SearchAddPredictEdbInfoData(indexName, keywordStr string, noPermissionEdbIn
 		if err != nil {
 			fmt.Println("EsAddOrEditData Err:", err.Error())
 		}
+
+		for _, v := range list {
+			v.ConvertToResp()
+		}
 	}()
 
 	highlight := elastic.NewHighlight()
@@ -1440,6 +1448,9 @@ func SearchEdbInfoDataByAdminId(indexName, keywordStr string, from, size, filter
 		if err != nil {
 			fmt.Println("EsAddOrEditData Err:", err.Error())
 		}
+		for _, v := range list {
+			v.ConvertToResp()
+		}
 	}()
 
 	highlight := elastic.NewHighlight()

+ 46 - 0
utils/common.go

@@ -2753,6 +2753,52 @@ func FormatDateStrToTime(timeStr string) (currTime time.Time, err error) {
 	return time.ParseInLocation(FormatDate, timeStr, time.Local)
 }
 
+// GormDateStrToDateTimeStr
+// @Description: gorm日期字符串格式转正常显示的日期时间字符串
+// @param originalString
+// @return formatStr
+func GormDateStrToDateTimeStr(originalString string) (formatStr string) {
+	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) {
+	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
+}
+
 // ReflectSetField
 // @Description: 通过反射处理时间字段
 // @param original