Browse Source

新增icpi数据推送

tuoling805 1 year ago
parent
commit
ba798c622e

+ 42 - 0
controllers/contract.go

@@ -1,6 +1,48 @@
 package controllers
 
+import (
+	"encoding/json"
+	"eta/eta_data_push/models"
+	"eta/eta_data_push/services"
+	"strconv"
+)
+
 // 合约
 type ContractController struct {
 	BaseAuthController
 }
+
+// @Title 获取合约接口
+// @Description 获取合约接口
+// @Success 200 {object} models.ContractListReq
+// @router /list [post]
+func (this *ClassifyController) ContractList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.ContractListReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.Source <= 0 {
+		br.Msg = "渠道编码错误!"
+		br.ErrMsg = "渠道编码错误,Source:" + strconv.Itoa(req.Source)
+		return
+	}
+
+	list, err := services.GetContractList(req.Source)
+	if err != nil {
+		br.Msg = "获取数据失败!"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = list
+}

+ 81 - 0
models/base_from_icpi.go

@@ -0,0 +1,81 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type BaseFromIcpiIndex struct {
+	BaseFromIcpiIndexId    int       `orm:"column(base_from_icpi_index_id);pk"`
+	BaseFromIcpiClassifyId int       `description:"分类id"`
+	IndexCode              string    `description:"指标编码"`
+	IndexName              string    `description:"指标名称"`
+	Frequency              string    `description:"频度"`
+	StartDate              time.Time `description:"开始日期"`
+	EndDate                time.Time `description:"结束日期"`
+	CreateTime             time.Time `description:"创建时间"`
+	ModifyTime             time.Time `description:"修改时间"`
+}
+
+type BaseFromIcpiData struct {
+	BaseFromIcpiDataId  int       `orm:"column(base_from_icpi_data_id);pk"`
+	BaseFromIcpiIndexId int       `description:"指标id"`
+	IndexCode           string    `description:"指标编码"`
+	DataTime            string    `description:"日期"`
+	Value               string    `description:"值"`
+	CreateTime          time.Time `description:"创建时间"`
+	ModifyTime          time.Time `description:"修改时间"`
+}
+
+type BaseFromIcpiClassify struct {
+	BaseFromIcpiClassifyId int    `orm:"column(base_from_icpi_classify_id);pk"`
+	ClassifyName           string `description:"分类名称"`
+	ClassifyNameEn         string `description:"英文名称"`
+	ParentId               int    `description:"上级id"`
+	CreateTime             string `description:"创建时间"`
+	ModifyTime             string `description:"修改时间"`
+}
+
+func (obj *BaseFromIcpiIndex) GetBaseFromIcpiClassifyAll() (list []*BaseFromIcpiClassify, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT * FROM base_from_icpi_classify `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+type BaseFromIcpiDataView struct {
+	BaseFromIcpiDataId  int       `orm:"column(base_from_icpi_data_id);pk"`
+	BaseFromIcpiIndexId int       `description:"指标id"`
+	IndexCode           string    `description:"指标编码"`
+	DataTime            string    `description:"日期"`
+	Value               string    `description:"值"`
+	CreateTime          time.Time `description:"创建时间"`
+	ModifyTime          time.Time `description:"修改时间"`
+}
+
+type BaseFromIcpiIndexView struct {
+	BaseFromIcpiIndexId    int    `description:"指标id"`
+	BaseFromIcpiClassifyId int    `description:"分类id"`
+	IndexCode              string `description:"指标编码"`
+	IndexName              string `description:"指标名称"`
+	Frequency              string `description:"频度"`
+	Unit                   string `description:"单位"`
+	StartDate              string `description:"开始日期"`
+	EndDate                string `description:"结束日期"`
+	CreateTime             string `description:"创建时间"`
+	ModifyTime             string `description:"修改时间"`
+}
+
+func GetIcpiIndex(startDate, endDate string) (items []*BaseFromIcpiIndexView, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM base_from_icpi_index WHERE end_date >= ? AND end_date <= ?  `
+	_, err = o.Raw(sql, startDate, endDate).QueryRows(&items)
+	return
+}
+
+func GetBaseFromIcpiData(indexCode, startDate, endDate string) (list []*BaseFromIcpiData, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_icpi_data WHERE index_code=? AND modify_time>=? AND modify_time<=? `
+	_, err = o.Raw(sql, indexCode, startDate, endDate).QueryRows(&list)
+	return
+}

+ 29 - 4
models/base_from_trade_guangzhou.go

@@ -5,6 +5,20 @@ import (
 	"time"
 )
 
+type BaseFromTradeGuangzhouIndex struct {
+	BaseFromTradeGuangzhouIndexId    int       `orm:"column(base_from_trade_guangzhou_index_id);pk"`
+	BaseFromTradeGuangzhouClassifyId int       `description:"分类id"`
+	IndexCode                        string    `description:"指标编码"`
+	IndexName                        string    `description:"指标名称"`
+	Frequency                        string    `description:"频率"`
+	Unit                             string    `description:"单位"`
+	StartDate                        string    `description:"开始日期"`
+	EndDate                          string    `description:"结束日期"`
+	CreateTime                       time.Time `description:"创建日期"`
+	ModifyTime                       time.Time `description:"修改日期"`
+	Value                            float64   `description:"数据值"`
+}
+
 type BaseFromTradeGuangzhouClassify struct {
 	BaseFromTradeGuangzhouClassifyId int       `orm:"column(base_from_trade_guangzhou_classify_id);pk"`
 	ClassifyName                     string    `description:"分类名称"`
@@ -14,9 +28,20 @@ type BaseFromTradeGuangzhouClassify struct {
 	CreateTime                       time.Time `description:"创建时间"`
 }
 
-func (obj *BaseFromTradeGuangzhouClassify) GetBaseFromTradeGuangzhouClassifyAll() (list []*BaseFromTradeGuangzhouClassify, err error) {
+type BaseFromTradeGuangzhouData struct {
+	BaseFromTradeGuangzhouDataId  int       `orm:"column(base_from_trade_guangzhou_data_id);pk"`
+	BaseFromTradeGuangzhouIndexId int       `description:"指标id"`
+	IndexCode                     string    `description:"指标编码"`
+	DataTime                      string    `description:"数据日期"`
+	Value                         float64   `description:"数据值"`
+	QtySub                        float64   `description:"增减"`
+	CreateTime                    time.Time `description:"创建日期"`
+	ModifyTime                    time.Time `description:"修改日期"`
+}
+
+func GetBaseFromTradeGuangzhouData(indexCode, startDate, endDate string) (list []*BaseFromTradeGuangzhouData, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM base_from_trade_guangzhou_classify `
-	_, err = o.Raw(sql).QueryRows(&list)
-	return list, err
+	sql := `SELECT * FROM base_from_trade_guangzhou_data WHERE index_code=? AND create_time>=? AND create_time<=? `
+	_, err = o.Raw(sql, indexCode, startDate, endDate).QueryRows(&list)
+	return
 }

+ 16 - 0
models/classify.go

@@ -1,5 +1,21 @@
 package models
 
+import "github.com/beego/beego/v2/client/orm"
+
 type ClassifyListReq struct {
 	Source int `description:"渠道编码"`
 }
+
+func (obj *BaseFromTradeGuangzhouClassify) GetBaseFromTradeGuangzhouClassifyAll() (list []*BaseFromTradeGuangzhouClassify, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_trade_guangzhou_classify `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return list, err
+}
+
+func (obj *BaseFromIcpiClassify) GetBaseFromIcpiClassifyAll() (list []*BaseFromIcpiClassify, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_icpi_classify `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return list, err
+}

+ 29 - 0
models/contract.go

@@ -0,0 +1,29 @@
+package models
+
+import "github.com/beego/beego/v2/client/orm"
+
+type BaseFromTradeGuangzhouContract struct {
+	BaseFromTradeGuangzhouContractId int    `orm:"column(base_from_trade_guangzhou_contract_id);pk"`
+	BaseFromTradeGuangzhouClassifyId int    `description:"分类id"`
+	ClassifyCode                     string `description:"分类编码"`
+	Contract                         string `description:"合约编码"`
+	TradeDate                        string `description:"合约日期"`
+}
+
+type ContractListReq struct {
+	Source int `description:"渠道编码"`
+}
+
+// 获取所有合约
+func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouContract(tradeDate string) (list []*BaseFromTradeGuangzhouContract, err error) {
+	o := orm.NewOrm()
+	if tradeDate != "" {
+		sql := ` SELECT * FROM base_from_trade_guangzhou_contract WHERE trade_date=? `
+		_, err = o.Raw(sql, tradeDate).QueryRows(&list)
+		return
+	} else {
+		sql := ` SELECT * FROM base_from_trade_guangzhou_contract `
+		_, err = o.Raw(sql).QueryRows(&list)
+		return
+	}
+}

+ 5 - 0
routers/router.go

@@ -35,6 +35,11 @@ func init() {
 				&controllers.ClassifyController{},
 			),
 		),
+		beego.NSNamespace("/classify",
+			beego.NSInclude(
+				&controllers.ContractController{},
+			),
+		),
 	)
 	beego.AddNamespace(ns)
 }

+ 5 - 1
services/classify.go

@@ -6,10 +6,14 @@ import (
 )
 
 func GetClassifyList(source int) (list interface{}, err error) {
-	gzObj := new(models.BaseFromTradeGuangzhouClassify)
+
 	switch source {
 	case utils.DATA_SOURCE_GFEX:
+		gzObj := new(models.BaseFromTradeGuangzhouClassify)
 		list, err = gzObj.GetBaseFromTradeGuangzhouClassifyAll()
+	case utils.DATA_SOURCE_ICPI:
+		icpiObj := new(models.BaseFromIcpiClassify)
+		list, err = icpiObj.GetBaseFromIcpiClassifyAll()
 	default:
 	}
 	return

+ 16 - 0
services/contract.go

@@ -0,0 +1,16 @@
+package services
+
+import (
+	"eta/eta_data_push/models"
+	"eta/eta_data_push/utils"
+)
+
+func GetContractList(source int) (list interface{}, err error) {
+	gzObj := new(models.BaseFromTradeGuangzhouIndex)
+	switch source {
+	case utils.DATA_SOURCE_GFEX:
+		list, err = gzObj.GetBaseFromTradeGuangzhouContract("")
+	default:
+	}
+	return
+}

+ 6 - 0
services/index.go

@@ -41,6 +41,8 @@ func GetIndexList(source int, startDate, endDate string) (list interface{}, err
 		}
 	case utils.DATA_SOURCE_MEETING_PROBABILITIES:
 		list, err = models.GetMeetingProbabilities(startDate, endDate)
+	case utils.DATA_SOURCE_ICPI:
+		list, err = models.GetIcpiIndex(startDate, endDate)
 	default:
 	}
 	return
@@ -54,6 +56,10 @@ func GetIndexDataList(source int, indexCode, startDate, endDate string) (list in
 		list, err = models.GetEdbDataThs(indexCode, startDate, endDate)
 	case utils.DATA_SOURCE_PB, utils.DATA_SOURCE_PB_FINANCE:
 		list, err = models.GetEdbDataPb(indexCode, startDate, endDate)
+	case utils.DATA_SOURCE_GFEX: //广期所
+		list, err = models.GetBaseFromTradeGuangzhouData(indexCode, startDate, endDate)
+	case utils.DATA_SOURCE_ICPI: //ICPI消费指数
+		list, err = models.GetBaseFromIcpiData(indexCode, startDate, endDate)
 	default:
 	}
 	return

+ 1 - 0
utils/constants.go

@@ -104,4 +104,5 @@ const (
 	DATA_SOURCE_CALCULATE_ZDYFX                                 // 自定义分析->74
 	DATA_SOURCE_CALCULATE_RJZ                                   // 日均值计算->75
 	DATA_SOURCE_GFEX                                 = 78       // 广州期货交易所->78
+	DATA_SOURCE_ICPI                                 = 79       // ICPI消费价格指数->79
 )