瀏覽代碼

优化预测指标数据处理和响应格式

- 在获取预测指标信息时增加了数据转换处理
- 优化了 EdbInfoFull 结构,使用 EdbInfoResp 替代 EdbInfo
- 在 EdbData 中添加了 ConvertToResp 方法用于数据转换
- 优化了 EdbData 列表查询和日期处理逻辑
Roc 5 月之前
父節點
當前提交
e1fa458606

+ 1 - 1
controllers/data_manage/line_feature/chart_info.go

@@ -1014,7 +1014,7 @@ func (this *LineFeaturesChartInfoController) MultipleGraphConfigSaveEdb() {
 		br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
 		return
 	}
-	if edbInfoMapping == nil {
+	if edbInfoMapping == nil || edbInfoMapping.EdbInfoId <= 0 {
 		br.Msg = "指标不存在"
 		br.IsSendEmail = false
 		return

+ 17 - 3
controllers/data_manage/predict_edb_info.go

@@ -295,7 +295,8 @@ func (this *PredictEdbInfoController) List() {
 		br.ErrMsg = "查找预测指标关联信息失败"
 		return
 	}
-	if edbInfoItem.EdbType == 1 { //普通的预测指标
+	if edbInfoItem.EdbType == 1 {
+		//普通的预测指标
 		// 查找该预测指标配置
 		predictEdbConfList, err := data_manage.GetPredictEdbConfListById(edbInfoId)
 		if err != nil && !utils.IsErrNoRow(err) {
@@ -1044,8 +1045,14 @@ func (this *PredictEdbInfoController) Detail() {
 		return
 	}
 
+	edbInfoResp, err := edbInfo.ConvertToResp()
+	if err != nil {
+		br.Msg = err.Error()
+		br.ErrMsg = errMsg
+		return
+	}
 	edbInfoFull := new(response.EdbInfoFull)
-	edbInfoFull.EdbInfo = edbInfo
+	edbInfoFull.EdbInfoResp = edbInfoResp
 	// 权限校验
 	{
 		classifyMap := make(map[int]*data_manage.EdbClassifyIdItems)
@@ -1462,7 +1469,14 @@ func (this *PredictEdbInfoController) DataList() {
 		br.ErrMsg = "获取预测指标信息失败,Err:" + err.Error()
 		return
 	}
-	fullEdb.EdbInfo = edbInfo
+
+	edbInfoResp, err := edbInfo.ConvertToResp()
+	if err != nil {
+		br.Msg = "获取预测指标信息失败"
+		br.ErrMsg = "获取预测指标信息失败,Err:" + err.Error()
+		return
+	}
+	fullEdb.EdbInfoResp = edbInfoResp
 	classifyList, err, errMsg := data.GetFullClassifyByClassifyId(edbInfo.ClassifyId)
 	if err != nil {
 		br.Msg = err.Error()

+ 27 - 4
models/data_manage/edb_info.go

@@ -502,6 +502,15 @@ func (e *EdbData) AfterFind(db *gorm.DB) (err error) {
 	return nil
 }
 
+// ConvertToResp
+// @Description: 转成需要输出的格式
+// @receiver m
+func (e *EdbData) ConvertToResp() {
+	e.DataTime = utils.GormDateStrToDateTimeStr(e.DataTime)
+
+	return
+}
+
 type EdbInfoListResp struct {
 	Paging       *paging.PagingItem
 	Item         *EdbInfoList
@@ -568,7 +577,7 @@ func GetEdbDataCountByCondition(condition string, pars []interface{}, source, su
 	return
 }
 
-func GetEdbDataListByCondition(condition string, pars []interface{}, source, subSource, pageSize, startSize int) (item []*EdbData, err error) {
+func GetEdbDataListByCondition(condition string, pars []interface{}, source, subSource, pageSize, startSize int) (items []*EdbData, err error) {
 	o := global.DmSQL["data"]
 	tableName := GetEdbDataTableName(source, subSource)
 	sql := ` SELECT * FROM %s WHERE 1=1 `
@@ -581,13 +590,20 @@ func GetEdbDataListByCondition(condition string, pars []interface{}, source, sub
 	sql += ` LIMIT ?,? `
 	pars = append(pars, startSize)
 	pars = append(pars, pageSize)
-	err = o.Raw(sql, pars...).Find(&item).Error
+	err = o.Raw(sql, pars...).Find(&items).Error
+	if err != nil {
+		return
+	}
+	// 日期处理
+	for _, v := range items {
+		v.ConvertToResp()
+	}
 
 	return
 }
 
 // GetAllEdbDataListByCondition 根据条件获取所有的数据
-func GetAllEdbDataListByCondition(condition string, pars []interface{}, source, subSource int) (item []*EdbData, err error) {
+func GetAllEdbDataListByCondition(condition string, pars []interface{}, source, subSource int) (items []*EdbData, err error) {
 	tableName := GetEdbDataTableName(source, subSource)
 	sql := ` SELECT * FROM %s WHERE 1=1 `
 	sql = fmt.Sprintf(sql, tableName)
@@ -596,7 +612,14 @@ func GetAllEdbDataListByCondition(condition string, pars []interface{}, source,
 		sql += condition
 	}
 	sql += ` ORDER BY data_time DESC `
-	err = global.DmSQL["data"].Raw(sql, pars...).Scan(&item).Error
+	err = global.DmSQL["data"].Raw(sql, pars...).Scan(&items).Error
+	if err != nil {
+		return
+	}
+	// 日期处理
+	for _, v := range items {
+		v.ConvertToResp()
+	}
 
 	return
 }

+ 2 - 1
models/data_manage/response/predit_edb_info.go

@@ -26,7 +26,8 @@ type PredictEdbInfoDataResp struct {
 }
 
 type EdbInfoFull struct {
-	*data_manage.EdbInfo
+	//*data_manage.EdbInfo
+	*data_manage.EdbInfoResp
 	HaveOperaAuth bool `description:"是否有数据权限,默认:false"`
 }