Przeglądaj źródła

新增弘则数据接口

tuoling805 2 lat temu
commit
165a5a55bf

+ 57 - 0
controllers/index_data.go

@@ -0,0 +1,57 @@
+package controllers
+
+import (
+	"encoding/json"
+	"hongze/hz_data_api/models"
+	"hongze/hz_data_api/services"
+	"hongze/hz_data_api/utils"
+	"strconv"
+	"time"
+)
+
+// @Title 获取指标接口
+// @Description 获取指标接口
+// @Success 200 {object} models.IndexDataListReq
+// @router /data/list [post]
+func (this *IndexController) IndexDataList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.IndexDataListReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.IndexCode == "" {
+		br.Msg = "请输入指标编码"
+		return
+	}
+	if req.Source <= 0 {
+		br.Msg = "渠道编码错误!"
+		br.ErrMsg = "渠道编码错误,Source:" + strconv.Itoa(req.Source)
+		return
+	}
+
+	if req.StartDate == "" {
+		req.StartDate = time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
+	}
+
+	if req.EndDate == "" {
+		req.EndDate = time.Now().Format(utils.FormatDate)
+	}
+
+	list, err := services.GetIndexDataList(req.Source, req.IndexCode, req.StartDate, req.EndDate)
+	if err != nil {
+		br.Msg = "获取数据失败!"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = list
+}

+ 31 - 0
models/base_from_changes_visitors_covid.go

@@ -0,0 +1,31 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// 谷歌出行指数
+type BaseFromChangesVisitorsCovid struct {
+	Id                  uint64    `orm:"column(id);pk"`    //序号
+	Entity              string    `orm:"column(entity)"`   //国家
+	Code                string    `orm:"column(code)"`     //国家编码
+	EdbCode             string    `orm:"column(edb_code)"` //指标ID
+	Day                 time.Time `orm:"column(day)"`      //统计的日期
+	RetailAndRecreation string    `orm:"column(retail_and_recreation)"`
+	GroceryAndPharmacy  string    `orm:"column(grocery_and_pharmacy)"`
+	Residential         string    `orm:"column(residential)"`
+	TransitStations     string    `orm:"column(transit_stations)"`
+	Parks               string    `orm:"column(parks)"`
+	Workplaces          string    `orm:"column(workplaces)"`
+	Total               string    `orm:"column(total)"`
+	CreateTime          time.Time `orm:"auto_now_add;column(create_time)"` //创建时间
+	ModifyTime          time.Time `orm:"auto_now_add;column(modify_time)"` //修改时间
+}
+
+func GetChangesVisitorsCovid(startDate, endDate string) (list []*BaseFromChangesVisitorsCovid, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_changes_visitors_covid WHERE create_time>=? AND create_time<=? `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+	return
+}

+ 51 - 0
models/base_from_eia_steo.go

@@ -0,0 +1,51 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// BaseFromEiaSteoIndex EiaSteo指标
+type BaseFromEiaSteoIndex struct {
+	BaseFromEiaSteoIndexId    int       `orm:"column(base_from_eia_steo_index_id);pk"`
+	BaseFromEiaSteoClassifyId int       `description:"指标分类id"`
+	IndexCode                 string    `description:"指标编码"`
+	IndexName                 string    `description:"指标名称(中文名称)"`
+	IndexNameOriginal         string    `description:"指标名称(原始名称)"`
+	Frequency                 string    `description:"频度"`
+	Level                     int       `description:"指标层级(原始层级)"`
+	Unit                      string    `description:"单位"`
+	Super                     string    `description:"我也不知道是个啥,反正先存起来,万一用到了呢"`
+	Precision                 int       `description:"精度,我也不知道会不会用到,反正先存起来,万一用到了呢"`
+	LastHistorical            string    `description:"最近的历史记录,我也不知道会不会用到,反正先存起来,万一用到了呢"`
+	Description               string    `description:"备注信息,我也不知道会不会用到,反正先存起来,万一用到了呢"`
+	IsMappable                int       `description:"是否可映射,我也不知道会不会用到,反正先存起来,万一用到了呢"`
+	StartDate                 time.Time `description:"开始日期"`
+	EndDate                   time.Time `description:"结束日期"`
+	ModifyTime                time.Time `description:"最新更新时间"`
+	CreateTime                time.Time `description:"创建时间"`
+}
+
+type BaseFromEiaSteoData struct {
+	BaseFromEiaSteoDataId  int       `orm:"column(base_from_eia_steo_data_id);pk"`
+	BaseFromEiaSteoIndexId int       `description:"指标id"`
+	IndexCode              string    `description:"指标编码"`
+	DataTime               time.Time `description:"数据日期"`
+	Value                  float64   `description:"数据值"`
+	ModifyTime             time.Time `description:"最新更新时间"`
+	CreateTime             time.Time `description:"创建时间"`
+}
+
+func GetEiaSteoIndex(startDate, endDate string) (list []*BaseFromTradeDalianIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_eia_steo_index WHERE create_time>=? AND create_time<=?  ORDER BY create_time ASC `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+	return
+}
+
+func GetEiaSteoIndexData(indexCode, startDate, endDate string) (list []*BaseFromEiaSteoData, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_eia_steo_data WHERE index_code=? AND create_time>=? AND create_time<=? ORDER BY create_time ASC `
+	_, err = o.Raw(sql, indexCode, startDate, endDate).QueryRows(&list)
+	return
+}

+ 39 - 0
models/base_from_trade_cffex.go

@@ -0,0 +1,39 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type BaseFromTradeCffexIndex struct {
+	BaseFromTradeCffexIndexId int `orm:"column(base_from_trade_cffex_index_id);pk"`
+	Rank                      int
+	DealShortName             string
+	DealName                  string
+	DealCode                  string
+	DealValue                 int
+	DealChange                int
+	BuyShortName              string
+	BuyName                   string
+	BuyCode                   string
+	BuyValue                  int
+	BuyChange                 int
+	SoldShortName             string
+	SoldName                  string
+	SoldCode                  string
+	SoldValue                 int
+	SoldChange                int
+	Frequency                 string
+	ClassifyName              string
+	ClassifyType              string
+	CreateTime                time.Time
+	ModifyTime                time.Time
+	DataTime                  string
+}
+
+func GetTradeCffexIndex(startDate, endDate string) (list []*BaseFromTradeCffexIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_trade_cffex_index WHERE create_time>=? AND create_time<=? `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+	return
+}

+ 39 - 0
models/base_from_trade_dalian.go

@@ -0,0 +1,39 @@
+package models
+
+import "github.com/beego/beego/v2/client/orm"
+
+type BaseFromTradeDalianIndex struct {
+	BaseFromTradeDalianIndexId int    `orm:"column(base_from_trade_dalian_index_id);pk"`
+	Rank                       string `description:"排名"`
+	DealShortName              string `description:"成交量公司简称"`
+	DealName                   string `description:"成交量指标名称"`
+	DealCode                   string `description:"成交量指标编码"`
+	DealValue                  string `description:"成交量"`
+	DealChange                 string `description:"成交变化量"`
+	BuyShortName               string `description:"成交量公司简称"`
+	BuyName                    string `description:"持买单量指标名称"`
+	BuyCode                    string `description:"持买单量指标编码"`
+	BuyValue                   string `description:"持买单量"`
+	BuyChange                  string `description:"持买单量变化量"`
+	SoldShortName              string `description:"成交量公司简称"`
+	SoldName                   string `description:"持买单量指标名称"`
+	SoldCode                   string `description:"持买单量指标编码"`
+	SoldValue                  string `description:"持买单量"`
+	SoldChange                 string `description:"持买单量变化量"`
+	Frequency                  string `description:"频度"`
+	ClassifyName               string `description:"分类名称"`
+	ClassifyType               string `description:"分类名称下的类型"`
+	//CreateTime                 time.Time `description:"插入时间"`
+	//ModifyTime                 time.Time `description:"修改时间"`
+	//DataTime                   time.Time `description:"数据日期"`
+	CreateTime string `description:"插入时间"`
+	ModifyTime string `description:"修改时间"`
+	DataTime   string `description:"数据日期"`
+}
+
+func GetTradeDalianIndex(startDate, endDate string) (list []*BaseFromTradeDalianIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_trade_dalian_index WHERE create_time>=? AND create_time<=? `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+	return
+}

+ 39 - 0
models/base_from_trade_ine.go

@@ -0,0 +1,39 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type BaseFromTradeIneIndex struct {
+	BaseFromTradeIneIndexId int `orm:"column(base_from_trade_ine_index_id);pk"`
+	Rank                    int
+	DealShortName           string
+	DealName                string
+	DealCode                string
+	DealValue               int
+	DealChange              int
+	BuyShortName            string
+	BuyName                 string
+	BuyCode                 string
+	BuyValue                int
+	BuyChange               int
+	SoldShortName           string
+	SoldName                string
+	SoldCode                string
+	SoldValue               int
+	SoldChange              int
+	Frequency               string
+	ClassifyName            string
+	ClassifyType            string
+	CreateTime              time.Time
+	ModifyTime              time.Time
+	DataTime                string
+}
+
+func GetTradeIneIndex(startDate, endDate string) (list []*BaseFromTradeIneIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_trade_ine_index WHERE create_time>=? AND create_time<=? `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+	return
+}

+ 39 - 0
models/base_from_trade_shanghai.go

@@ -0,0 +1,39 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type BaseFromTradeShanghaiIndex struct {
+	BaseFromTradeShangHaiIndexId int `orm:"column(base_from_trade_shanghai_index_id);pk"`
+	Rank                         int
+	DealShortName                string
+	DealName                     string
+	DealCode                     string
+	DealValue                    int
+	DealChange                   int
+	BuyShortName                 string
+	BuyName                      string
+	BuyCode                      string
+	BuyValue                     int
+	BuyChange                    int
+	SoldShortName                string
+	SoldName                     string
+	SoldCode                     string
+	SoldValue                    int
+	SoldChange                   int
+	Frequency                    string
+	ClassifyName                 string
+	ClassifyType                 string
+	CreateTime                   time.Time
+	ModifyTime                   time.Time
+	DataTime                     string
+}
+
+func GetTradeShanghaiIndex(startDate, endDate string) (list []*BaseFromTradeShanghaiIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_trade_shanghai_index WHERE create_time>=? AND create_time<=? `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+	return
+}

+ 39 - 0
models/base_from_trade_zhengzhou.go

@@ -0,0 +1,39 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type BaseFromTradeZhengzhouIndex struct {
+	BaseFromTradeZhengzhouIndexId int `orm:"column(base_from_trade_zhengzhou_index_id);pk"`
+	Rank                          int
+	DealShortName                 string
+	DealName                      string
+	DealCode                      string
+	DealValue                     int
+	DealChange                    int
+	BuyShortName                  string
+	BuyName                       string
+	BuyCode                       string
+	BuyValue                      int
+	BuyChange                     int
+	SoldShortName                 string
+	SoldName                      string
+	SoldCode                      string
+	SoldValue                     int
+	SoldChange                    int
+	Frequency                     string
+	ClassifyName                  string
+	ClassifyType                  string
+	CreateTime                    time.Time
+	ModifyTime                    time.Time
+	DataTime                      string
+}
+
+func GetTradeZhengzhouIndex(startDate, endDate string) (list []*BaseFromTradeZhengzhouIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_trade_zhengzhou_index WHERE create_time>=? AND create_time<=? `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+	return
+}

+ 27 - 0
models/edb_data_pb.go

@@ -0,0 +1,27 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type EdbDataPb struct {
+	EdbDataId     int `orm:"column(edb_data_id);pk"`
+	EdbInfoId     int
+	EdbCode       string
+	DataTime      string
+	Value         float64
+	Status        int
+	CreateTime    time.Time
+	ModifyTime    time.Time
+	Ticker        string
+	Field         string
+	DataTimestamp int64
+}
+
+func GetEdbDataPb(indexCode, startDate, endDate string) (list []*EdbDataPb, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM edb_data_pb WHERE edb_code=? AND create_time>=? AND create_time<=? `
+	_, err = o.Raw(sql, indexCode, startDate, endDate).QueryRows(&list)
+	return
+}

+ 25 - 0
models/edb_data_ths.go

@@ -0,0 +1,25 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type EdbDataThs struct {
+	EdbDataId     int `orm:"column(edb_data_id);pk"`
+	EdbInfoId     int
+	EdbCode       string
+	DataTime      string
+	Value         float64
+	Status        int
+	CreateTime    time.Time
+	ModifyTime    time.Time
+	DataTimestamp int64
+}
+
+func GetEdbDataThs(indexCode, startDate, endDate string) (list []*EdbDataThs, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM edb_data_ths WHERE edb_code=? AND create_time>=? AND create_time<=?  ORDER BY create_time ASC `
+	_, err = o.Raw(sql, indexCode, startDate, endDate).QueryRows(&list)
+	return
+}

+ 14 - 0
models/index.go

@@ -0,0 +1,14 @@
+package models
+
+type IndexListReq struct {
+	Source    int    `description:"渠道编码"`
+	StartDate string `description:"指标同步开始日期"`
+	EndDate   string `description:"指标同步结束日期"`
+}
+
+type IndexDataListReq struct {
+	IndexCode string `description:"指标编码"`
+	Source    int    `description:"渠道编码"`
+	StartDate string `description:"指标同步开始日期"`
+	EndDate   string `description:"指标同步结束日期"`
+}

+ 40 - 0
services/index.go

@@ -0,0 +1,40 @@
+package services
+
+import (
+	"hongze/hz_data_api/models"
+	"hongze/hz_data_api/utils"
+)
+
+func GetIndexList(source int, startDate, endDate string) (list interface{}, err error) {
+	switch source {
+	case utils.DATA_SOURCE_ZZ:
+		list, err = models.GetTradeZhengzhouIndex(startDate, endDate)
+	case utils.DATA_SOURCE_DL:
+		list, err = models.GetTradeDalianIndex(startDate, endDate)
+	case utils.DATA_SOURCE_SH:
+		list, err = models.GetTradeShanghaiIndex(startDate, endDate)
+	case utils.DATA_SOURCE_CFFEX:
+		list, err = models.GetTradeCffexIndex(startDate, endDate)
+	case utils.DATA_SOURCE_SHFE:
+		list, err = models.GetTradeIneIndex(startDate, endDate)
+	case utils.DATA_SOURCE_GOOGLE_TRAVEL:
+		list, err = models.GetChangesVisitorsCovid(startDate, endDate)
+	case utils.DATA_SOURCE_EIA_STEO:
+		list, err = models.GetEiaSteoIndex(startDate, endDate)
+	default:
+	}
+	return
+}
+
+func GetIndexDataList(source int, indexCode, startDate, endDate string) (list interface{}, err error) {
+	switch source {
+	case utils.DATA_SOURCE_EIA_STEO:
+		list, err = models.GetEiaSteoIndexData(indexCode, startDate, endDate)
+	case utils.DATA_SOURCE_THS:
+		list, err = models.GetEdbDataThs(indexCode, startDate, endDate)
+	case utils.DATA_SOURCE_PB, utils.DATA_SOURCE_PB_FINANCE:
+		list, err = models.GetEdbDataPb(indexCode, startDate, endDate)
+	default:
+	}
+	return
+}