Explorar o código

fix:睿咨得

Roc hai 3 meses
pai
achega
c30a3d7f61

+ 31 - 41
models/data_manage/base_from_clarksons_index.go

@@ -9,15 +9,15 @@ import (
 )
 
 type BaseFromClarksonsIndex struct {
-	BaseFromClarksonsIndexId int    `orm:"column(base_from_clarksons_index_id);pk;auto"`
-	ClassifyId               int    `description:"指标分类id"`
-	IndexCode                string `description:"指标编码"`
-	IndexName                string `description:"指标名称"`
-	Unit                     string `description:"单位"`
-	Frequency                string `description:"频度"`
-	StartDate                string `description:"开始日期"`
-	EndDate                  string `description:"结束日期"`
-	Sort                     int    `description:"排序"`
+	BaseFromClarksonsIndexId int       `orm:"column(base_from_clarksons_index_id);pk;auto"`
+	ClassifyId               int       `description:"指标分类id"`
+	IndexCode                string    `description:"指标编码"`
+	IndexName                string    `description:"指标名称"`
+	Unit                     string    `description:"单位"`
+	Frequency                string    `description:"频度"`
+	StartDate                time.Time `description:"开始日期"`
+	EndDate                  time.Time `description:"结束日期"`
+	Sort                     int       `description:"排序"`
 	CreateTime               time.Time
 	ModifyTime               time.Time
 }
@@ -54,6 +54,26 @@ type BaseFromClarksonsIndexOrm struct {
 	ModifyTime               time.Time
 }
 
+func (m *BaseFromClarksonsIndexOrm) ToView() (item *BaseFromClarksonsIndexView) {
+	item = new(BaseFromClarksonsIndexView)
+	item.BaseFromClarksonsIndexId = m.BaseFromClarksonsIndexId
+	item.EdbInfoId = m.EdbInfoId
+	item.ClassifyId = m.ClassifyId
+	item.IndexCode = m.IndexCode
+	item.IndexName = m.IndexName
+	item.UniqueCode = m.UniqueCode
+	item.Frequency = m.Frequency
+	item.Unit = m.Unit
+	item.StartDate = m.StartDate.Format(utils.FormatDate)
+	item.EndDate = m.EndDate.Format(utils.FormatDate)
+	item.Sort = m.Sort
+	item.LatestDate = m.LatestDate.Format(utils.FormatDateTime)
+	item.EdbExist = m.EdbExist
+	item.ModifyTime = m.ModifyTime.Format(utils.FormatDateTime)
+
+	return
+}
+
 type BaseFromClarksonsIndexView struct {
 	BaseFromClarksonsIndexId int    `orm:"pk"`
 	EdbInfoId                int    `description:"指标库id"`
@@ -196,22 +216,7 @@ func GetClarksonsIndexByClassifyId(classifyIds []int, startSize, pageSize int) (
 		return
 	}
 	for _, v := range itemsOrm {
-		viewItem := new(BaseFromClarksonsIndexView)
-		viewItem.BaseFromClarksonsIndexId = v.BaseFromClarksonsIndexId
-		viewItem.EdbInfoId = v.EdbInfoId
-		viewItem.ClassifyId = v.ClassifyId
-		viewItem.IndexCode = v.IndexCode
-		viewItem.IndexName = v.IndexName
-		viewItem.UniqueCode = v.UniqueCode
-		viewItem.Frequency = v.Frequency
-		viewItem.Unit = v.Unit
-		viewItem.StartDate = v.StartDate.Format(utils.FormatDate)
-		viewItem.EndDate = v.EndDate.Format(utils.FormatDate)
-		viewItem.Sort = v.Sort
-		viewItem.LatestDate = v.LatestDate.Format(utils.FormatDateTime)
-		viewItem.EdbExist = v.EdbExist
-		viewItem.ModifyTime = v.ModifyTime.Format(utils.FormatDateTime)
-		items = append(items, viewItem)
+		items = append(items, v.ToView())
 	}
 	return
 }
@@ -248,22 +253,7 @@ func GetClarksonsIndexByPage(startSize, pageSize int) (items []*BaseFromClarkson
 		return
 	}
 	for _, v := range itemsOrm {
-		viewItem := new(BaseFromClarksonsIndexView)
-		viewItem.BaseFromClarksonsIndexId = v.BaseFromClarksonsIndexId
-		viewItem.EdbInfoId = v.EdbInfoId
-		viewItem.ClassifyId = v.ClassifyId
-		viewItem.IndexCode = v.IndexCode
-		viewItem.IndexName = v.IndexName
-		viewItem.UniqueCode = v.UniqueCode
-		viewItem.Frequency = v.Frequency
-		viewItem.Unit = v.Unit
-		viewItem.StartDate = v.StartDate.Format(utils.FormatDate)
-		viewItem.EndDate = v.EndDate.Format(utils.FormatDate)
-		viewItem.Sort = v.Sort
-		viewItem.LatestDate = v.LatestDate.Format(utils.FormatDateTime)
-		viewItem.EdbExist = v.EdbExist
-		viewItem.ModifyTime = v.ModifyTime.Format(utils.FormatDateTime)
-		items = append(items, viewItem)
+		items = append(items, v.ToView())
 	}
 	return
 }

+ 62 - 4
models/data_manage/base_from_rzd_data.go

@@ -4,8 +4,31 @@ package data_manage
 import (
 	"eta/eta_api/utils"
 	"github.com/beego/beego/v2/client/orm"
+	"time"
 )
 
+type BaseFromRzdDataOrm struct {
+	BaseFromRzdDataId  int       `orm:"column(base_from_rzd_data_id);pk"`
+	BaseFromRzdIndexId int       `orm:"column(base_from_rzd_index_id)"`
+	CreateTime         time.Time `orm:"column(create_time)"`
+	DataTime           time.Time `orm:"column(data_time)"`
+	IndexCode          string    `orm:"column(index_code)"`
+	ModifyTime         time.Time `orm:"column(modify_time)"`
+	Value              float64   `orm:"column(value)"`
+}
+
+func (m *BaseFromRzdDataOrm) ToItem() (item *BaseFromRzdData) {
+	return &BaseFromRzdData{
+		BaseFromRzdDataId:  m.BaseFromRzdDataId,
+		BaseFromRzdIndexId: m.BaseFromRzdIndexId,
+		CreateTime:         m.CreateTime.Format(utils.FormatDateTime),
+		DataTime:           m.DataTime.Format(utils.FormatDate),
+		IndexCode:          m.IndexCode,
+		ModifyTime:         m.ModifyTime.Format(utils.FormatDateTime),
+		Value:              m.Value,
+	}
+}
+
 type BaseFromRzdData struct {
 	BaseFromRzdDataId  int     `orm:"column(base_from_rzd_data_id);pk"`
 	BaseFromRzdIndexId int     `orm:"column(base_from_rzd_index_id)"`
@@ -47,17 +70,36 @@ func GetRzdIndexDataCountGroup(indexCodes []string) (items []*RzdIndexDataCountG
 }
 
 func GetRzdIndexData(indexCode string, startSize, pageSize int) (items []*BaseFromRzdData, err error) {
+	var ormList []*BaseFromRzdDataOrm
+	items = make([]*BaseFromRzdData, 0)
+
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *  FROM base_from_rzd_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
-	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToItem())
+	}
+
 	return
 }
 
 // GetBaseFormRzdDataByIndexCode 根据指标编码查询
 func GetBaseFormRzdDataByIndexCode(indexCode string) (items []*BaseFromRzdData, err error) {
+	var ormList []*BaseFromRzdDataOrm
+	items = make([]*BaseFromRzdData, 0)
 	sql := `SELECT * FROM base_from_rzd_data WHERE index_code=? ORDER BY data_time desc`
 	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, indexCode).QueryRows(&items)
+	_, err = o.Raw(sql, indexCode).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToItem())
+	}
+
 	return
 }
 
@@ -75,12 +117,22 @@ func GetBaseFormRzdDataByConditionCount(condition string, pars interface{}) (cou
 }
 
 func GetBaseFormRzdDataByCondition(condition string, pars interface{}) (items []*BaseFromRzdData, err error) {
+	var ormList []*BaseFromRzdDataOrm
+	items = make([]*BaseFromRzdData, 0)
+
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM base_from_rzd_data WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	_, err = o.Raw(sql, pars).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToItem())
+	}
+
 	return
 }
 
@@ -94,6 +146,9 @@ func GetRzdDataListByIndexCodes(IndexCodes string) (items []string, err error) {
 
 // GetRzdLastUpdateTimeLastByIndexCode 根据指标编码查询 返回ModifyTime最后一条数据
 func GetRzdLastUpdateTimeLastByIndexCode(indexCodes []string) (items []*BaseFromRzdData, err error) {
+	var ormList []*BaseFromRzdDataOrm
+	items = make([]*BaseFromRzdData, 0)
+
 	o := orm.NewOrmUsingDB("data")
 
 	// 构造 SQL 查询
@@ -107,9 +162,12 @@ func GetRzdLastUpdateTimeLastByIndexCode(indexCodes []string) (items []*BaseFrom
 			JOIN base_from_rzd_data AS t2 ON t1.index_code = t2.index_code AND t1.data_time = t2.data_time`
 
 	// 执行 SQL 查询
-	_, err = o.Raw(sql, indexCodes).QueryRows(&items)
+	_, err = o.Raw(sql, indexCodes).QueryRows(&ormList)
 	if err != nil {
 		return nil, err
 	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToItem())
+	}
 	return items, nil
 }

+ 26 - 3
models/data_manage/base_from_rzd_index.go

@@ -19,6 +19,9 @@ type BaseFromRzdIndex struct {
 	IndexName             string    `orm:"column(index_name)"`
 	Frequency             string    `orm:"column(frequency)"`
 	Unit                  string    `orm:"column(unit)"`
+	StartDate             time.Time `orm:"column(start_date)"`
+	EndDate               time.Time `orm:"column(end_date)"`
+	LatestValue           float64   `orm:"column(latest_value)" description:"数据值"`
 }
 
 type BaseFromRzdIndexAndData struct {
@@ -49,6 +52,22 @@ func (m *BaseFromRzdIndex) ToIndexAndData() (item *BaseFromRzdIndexAndData) {
 	}
 }
 
+func (m *BaseFromRzdIndex) ToIndexList() (item *BaseFromRzdIndexList) {
+	return &BaseFromRzdIndexList{
+		BaseFromRzdIndexId:    m.BaseFromRzdIndexId,
+		CreateTime:            m.CreateTime.Format(utils.FormatDateTime),
+		ModifyTime:            m.ModifyTime.Format(utils.FormatDateTime),
+		BaseFromRzdClassifyId: m.BaseFromRzdClassifyId,
+		IndexCode:             m.IndexCode,
+		IndexName:             m.IndexName,
+		Frequency:             m.Frequency,
+		Unit:                  m.Unit,
+		//DataList:              nil,
+		//Paging:                nil,
+		//EdbInfoId:             0,
+	}
+}
+
 type BaseFromRzdIndexPage struct {
 	List   []*BaseFromRzdIndexAndData `description:"指标列表"`
 	Paging *paging.PagingItem         `description:"分页数据"`
@@ -101,9 +120,13 @@ func init() {
 
 // GetRzdIndexByClassifyIds 根据分类id获取指标信息
 func GetRzdIndexByClassifyIds(classifyIds []int) (items []*BaseFromRzdIndex, err error) {
-	o := orm.NewOrmUsingDB("data")
+	num := len(classifyIds)
+	if num <= 0 {
+		return
+	}
 
-	sql := fmt.Sprintf(`SELECT * FROM base_from_rzd_index WHERE base_from_rzd_classify_id IN (`+utils.GetOrmInReplace(len(classifyIds))) + `)`
+	o := orm.NewOrmUsingDB("data")
+	sql := fmt.Sprintf(`SELECT * FROM base_from_rzd_index WHERE base_from_rzd_classify_id IN (`+utils.GetOrmInReplace(num)) + `)`
 	_, err = o.Raw(sql, classifyIds).QueryRows(&items)
 	if err != nil {
 		return nil, err
@@ -112,7 +135,7 @@ func GetRzdIndexByClassifyIds(classifyIds []int) (items []*BaseFromRzdIndex, err
 	return items, nil
 }
 
-func GetRzdIndex(condition string, pars interface{}) (items []*BaseFromRzdIndexList, err error) {
+func GetRzdIndex(condition string, pars interface{}) (items []*BaseFromRzdIndex, err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM base_from_rzd_index WHERE 1=1  `
 	if condition != "" {

+ 6 - 3
services/data/base_from_clarksons.go

@@ -626,7 +626,7 @@ func GetClarksonsIndexInfo(keyWord string, classifyIdList []string, frequencyLis
 
 // GetClarkssonsIndexList 获取指标列表
 func GetClarkssonsIndexList(searchParams string) (rzdIndexInfoList []*data_manage.BaseFromRzdIndexList, err error) {
-
+	rzdIndexInfoList = make([]*data_manage.BaseFromRzdIndexList, 0)
 	// 获取指标
 	var condition string
 	var pars []interface{}
@@ -634,12 +634,15 @@ func GetClarkssonsIndexList(searchParams string) (rzdIndexInfoList []*data_manag
 		condition += ` and index_code like ? or index_name like ?`
 		pars = append(pars, "%"+searchParams+"%", "%"+searchParams+"%")
 	}
-	rzdIndexList, err := data_manage.GetRzdIndex(condition, pars)
+	list, err := data_manage.GetRzdIndex(condition, pars)
 	if err != nil {
 		return nil, err
 	}
+	for _, v := range list {
+		rzdIndexInfoList = append(rzdIndexInfoList, v.ToIndexList())
+	}
 
-	return rzdIndexList, nil
+	return
 }
 
 // MoveClarksonsClassify 移动克拉克森分类

+ 9 - 14
services/data/base_from_rzd_index_service.go

@@ -67,16 +67,7 @@ func RzdIndexData(classifyId int, frequency string, currentIndex, startSize, pag
 
 	resultList := make([]*data_manage.BaseFromRzdIndexList, 0)
 	for _, v := range indexes {
-		product := new(data_manage.BaseFromRzdIndexList)
-		product.BaseFromRzdIndexId = v.BaseFromRzdIndexId
-		product.BaseFromRzdClassifyId = v.BaseFromRzdClassifyId
-		product.Unit = v.Unit
-		product.IndexCode = v.IndexCode
-		product.IndexName = v.IndexName
-		product.Frequency = v.Frequency
-		product.CreateTime = v.CreateTime
-		product.ModifyTime = v.ModifyTime
-
+		product := v.ToIndexList()
 		edbInfo := edbCodeMap[v.IndexCode]
 		if edbInfo != nil {
 			product.EdbInfoId = edbInfo.EdbInfoId
@@ -382,7 +373,7 @@ func GetRzdIndexDetail(indexCode string, currentIndex, startSize, pageSize int)
 
 	var rzdIndex *data_manage.BaseFromRzdIndexList
 	if len(rzdIndexList) > 0 {
-		rzdIndex = rzdIndexList[0]
+		rzdIndex = rzdIndexList[0].ToIndexList()
 		// 查询指标数据
 		var condition string
 		var pars []interface{}
@@ -427,7 +418,7 @@ func GetRzdIndexDetail(indexCode string, currentIndex, startSize, pageSize int)
 
 // GetRzdIndexList 获取指标列表
 func GetRzdIndexList(searchParams string) (rzdIndexInfoList []*data_manage.BaseFromRzdIndexList, err error) {
-
+	rzdIndexInfoList = make([]*data_manage.BaseFromRzdIndexList, 0)
 	// 获取指标
 	var condition string
 	var pars []interface{}
@@ -435,10 +426,14 @@ func GetRzdIndexList(searchParams string) (rzdIndexInfoList []*data_manage.BaseF
 		condition += ` and index_code like ? or index_name like ?`
 		pars = append(pars, "%"+searchParams+"%", "%"+searchParams+"%")
 	}
-	rzdIndexList, err := data_manage.GetRzdIndex(condition, pars)
+	list, err := data_manage.GetRzdIndex(condition, pars)
 	if err != nil {
 		return nil, err
 	}
 
-	return rzdIndexList, nil
+	for _, v := range list {
+		rzdIndexInfoList = append(rzdIndexInfoList, v.ToIndexList())
+	}
+
+	return
 }