Browse Source

Merge branch 'feature/eta2.2.1_usda_fas' of eta_server/eta_data_pubish into master

xyxie 4 months ago
parent
commit
0cbd1f7ea4
4 changed files with 109 additions and 0 deletions
  1. 89 0
      models/base_from_usda_fas.go
  2. 3 0
      services/classify.go
  3. 16 0
      services/index.go
  4. 1 0
      utils/constants.go

+ 89 - 0
models/base_from_usda_fas.go

@@ -0,0 +1,89 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"time"
+)
+
+type BaseFromUsdaFasIndex struct {
+	BaseFromUsdaFasIndexId int `orm:"column(base_from_usda_fas_index_id);pk"`
+	ClassifyId             int
+	IndexCode              string
+	IndexName              string
+	Frequency              string
+	Unit                   string
+	Sort                   int
+	StartDate              time.Time `description:"开始日期"`
+	EndDate                time.Time `description:"结束日期"`
+	EndValue               float64
+	Country                string `description:"国家"`
+	Commodity              string `description:"属性"`
+	CreateTime             time.Time
+	ModifyTime             time.Time
+}
+
+// BaseFromUsdaFasClassify UsdaFas原始数据分类表
+type BaseFromUsdaFasClassify struct {
+	ClassifyId      int       `orm:"column(classify_id);pk"`
+	ClassifyName    string    `description:"分类名称"`
+	ParentId        int       `description:"父级id"`
+	SysUserId       int       `description:"创建人id"`
+	SysUserRealName string    `description:"创建人姓名"`
+	Level           int       `description:"层级"`
+	Sort            int       `description:"排序字段,越小越靠前,默认值:10"`
+	ModifyTime      time.Time `description:"修改时间"`
+	CreateTime      time.Time `description:"创建时间"`
+}
+
+func (obj *BaseFromUsdaFasClassify) GetBaseFromUsdaFasClassifyAll() (list []*BaseFromUsdaFasClassify, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_usda_fas_classify `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+type BaseFromUsdaFasData struct {
+	BaseFromUsdaFasDataId  int       `orm:"column(base_from_usda_fas_data_id);pk"`
+	BaseFromUsdaFasIndexId int       `description:"指标id"`
+	IndexCode              string    `description:"指标编码"`
+	DataTime               string    `description:"日期"`
+	Value                  string    `description:"值"`
+	CreateTime             time.Time `description:"创建时间"`
+	ModifyTime             time.Time `description:"修改时间"`
+}
+
+func GetUsdaFasIndex(startDate, endDate string) (items []*BaseFromUsdaFasIndex, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM base_from_usda_fas_index WHERE modify_time >= ? AND modify_time <= ?  `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&items)
+	return
+}
+
+func GetBaseFromUsdaFasData(indexCode, startDate, endDate string) (list []*BaseFromUsdaFasData, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_usda_fas_data WHERE index_code=? AND modify_time>=? AND modify_time<=? `
+	_, err = o.Raw(sql, indexCode, startDate, endDate).QueryRows(&list)
+	return
+}
+
+// GetComTradeDataList 获取UsdaFas消费指数数据列表
+func GetBaseFromUsdaFasDataList(startDate, endDate string, startSize, pageSize int) (total int, list []*BaseFromUsdaFasData, err error) {
+	o := orm.NewOrm()
+	totalSql := `SELECT count(1) total FROM base_from_usda_fas_data WHERE modify_time>=? AND modify_time<=? `
+	err = o.Raw(totalSql, startDate, endDate).QueryRow(&total)
+	if err != nil {
+		return
+	}
+
+	sql := `SELECT * FROM base_from_usda_fas_data WHERE modify_time>=? AND modify_time<=? ORDER BY base_from_usda_fas_data_id ASC LIMIT ?,?`
+	_, err = o.Raw(sql, startDate, endDate, startSize, pageSize).QueryRows(&list)
+
+	return
+}
+
+// ComTradeIndexDataResp 分页列表响应体
+type BaseFromUsdaFasDataResp struct {
+	List   []*BaseFromUsdaFasData
+	Paging *paging.PagingItem `description:"分页数据"`
+}

+ 3 - 0
services/classify.go

@@ -17,6 +17,9 @@ func GetClassifyList(source int) (list interface{}, err error) {
 	case utils.DATA_SOURCE_EIA_STEO:
 		eiaSteoObj := new(models.BaseFromEiaSteoClassify)
 		list, err = eiaSteoObj.GetBaseFromEiaSteoClassifyAll()
+	case utils.DATA_SOURCE_USDA_FAS:
+		usdaFasObj := new(models.BaseFromUsdaFasClassify)
+		list, err = usdaFasObj.GetBaseFromUsdaFasClassifyAll()
 	default:
 	}
 	return

+ 16 - 0
services/index.go

@@ -48,6 +48,8 @@ func GetIndexList(source int, startDate, endDate string) (list interface{}, err
 		list, err = models.GetBaseFromTradeGuangzhouIndex(startDate, endDate)
 	case utils.DATA_SOURCE_ICPI:
 		list, err = models.GetIcpiIndex(startDate, endDate)
+	case utils.DATA_SOURCE_USDA_FAS:
+		list, err = models.GetUsdaFasIndex(startDate, endDate)
 	default:
 	}
 	return
@@ -65,6 +67,8 @@ func GetIndexDataList(source int, indexCode, startDate, endDate string) (list in
 		list, err = models.GetBaseFromTradeGuangzhouData(indexCode, startDate, endDate)
 	case utils.DATA_SOURCE_ICPI: //ICPI消费指数
 		list, err = models.GetBaseFromIcpiData(indexCode, startDate, endDate)
+	case utils.DATA_SOURCE_USDA_FAS:
+		list, err = models.GetBaseFromUsdaFasData(indexCode, startDate, endDate)
 	default:
 	}
 	return
@@ -109,6 +113,18 @@ func GetIndexDataPageList(source, currPage, pageSize int, startDate, endDate str
 			List:   dataList,
 			Paging: page,
 		}
+	case utils.DATA_SOURCE_USDA_FAS: //美国农业部
+		var total int
+		dataList := make([]*models.BaseFromUsdaFasData, 0)
+		total, dataList, err = models.GetBaseFromUsdaFasDataList(startDate, endDate, currPage*pageSize, pageSize)
+		if err != nil {
+			return
+		}
+		page := paging.GetPaging(currPage, pageSize, total)
+		list = models.BaseFromUsdaFasDataResp{
+			List:   dataList,
+			Paging: page,
+		}
 	default:
 	}
 	return

+ 1 - 0
utils/constants.go

@@ -105,4 +105,5 @@ const (
 	DATA_SOURCE_CALCULATE_RJZ                                   // 日均值计算->75
 	DATA_SOURCE_GFEX                                 = 78       // 广州期货交易所->78
 	DATA_SOURCE_ICPI                                 = 79       // ICPI消费价格指数->79
+	DATA_SOURCE_USDA_FAS                             = 96       //美国农业部
 )