123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- package trade_analysis
- import (
- "github.com/beego/beego/v2/client/orm"
- "time"
- )
- type TradePositionTop struct {
- Id uint64 `gorm:"primaryKey;column:id" json:"id"`
- ClassifyName string `gorm:"column:classify_name" json:"classify_name"`
- ClassifyType string `gorm:"column:classify_type" json:"classify_type"`
- DealShortName string `gorm:"column:deal_short_name" json:"deal_short_name"`
- DealValue int `gorm:"column:deal_value" json:"deal_value"`
- DealChange int `gorm:"column:deal_change" json:"deal_change"`
- DataTime time.Time `gorm:"column:data_time" json:"data_time"`
- CreateTime time.Time `gorm:"column:create_time" json:"create_time"`
- ModifyTime time.Time `gorm:"column:modify_time" json:"modify_time"`
- DealType int `gorm:"column:deal_type" json:"deal_type"`
- SourceType int `gorm:"column:source_type" json:"source_type"`
- Rank int `gorm:"column:rank" json:"rank"`
- }
- type TradeClassifyNameList struct {
- Exchange string `description:"交易所"`
- Sort int `description:"排序字段" `
- Num int `description:"品种数量"`
- DataTime string `description:"最新更新时间"`
- CurrDate string `description:"当前日期"`
- Items []TradeClassifyNameListItem `description:"子类"`
- }
- type TradeClassifyNameListSort []TradeClassifyNameList
- func (v TradeClassifyNameListSort) Len() int {
- return len(v)
- }
- func (v TradeClassifyNameListSort) Swap(i, j int) {
- v[i], v[j] = v[j], v[i]
- }
- func (v TradeClassifyNameListSort) Less(i, j int) bool {
- return v[i].Sort < v[j].Sort
- }
- type TradeClassifyNameListItemSort []TradeClassifyNameListItem
- func (v TradeClassifyNameListItemSort) Len() int {
- return len(v)
- }
- func (v TradeClassifyNameListItemSort) Swap(i, j int) {
- v[i], v[j] = v[j], v[i]
- }
- func (v TradeClassifyNameListItemSort) Less(i, j int) bool {
- return v[i].ClassifyName < v[j].ClassifyName
- }
- type TradeClassifyNameListItem struct {
- ClassifyName string `description:"交易分类"`
- Items []TradeClassifyNameListItemItem `description:"合约代码"`
- }
- type TradeClassifyNameListItemItemSort []TradeClassifyNameListItemItem
- func (v TradeClassifyNameListItemItemSort) Len() int {
- return len(v)
- }
- func (v TradeClassifyNameListItemItemSort) Swap(i, j int) {
- v[i], v[j] = v[j], v[i]
- }
- func (v TradeClassifyNameListItemItemSort) Less(i, j int) bool {
- return v[i].ClassifyType < v[j].ClassifyType
- }
- type TradeClassifyNameListItemItem struct {
- ClassifyType string `description:"分类名称下的类型"`
- }
- type TradeClassifyName struct {
- ClassifyName string
- ClassifyType string
- LatestDate string
- }
- func GetExchangeClassify(exchange string) (list []TradeClassifyName, err error) {
- tableName := "base_from_trade_" + exchange + "_index"
- orderStr := "classify_name DESC, classify_type asc"
- if exchange == "zhengzhou" {
- orderStr = "classify_name asc"
- }
- sql := `SELECT classify_name, classify_type FROM ` + tableName + ` WHERE rank <=20 and rank > 0 GROUP BY classify_name, classify_type `
- sql += ` ORDER BY ` + orderStr
- o := orm.NewOrmUsingDB("data")
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- type LastTimeItem struct {
- CreateTime time.Time
- }
- func GetExchangeLastTime(exchange string) (item LastTimeItem, err error) {
- tableName := "base_from_trade_" + exchange + "_index"
- sql := `SELECT create_time FROM ` + tableName + ` ORDER BY create_time desc`
- o := orm.NewOrmUsingDB("data")
- err = o.Raw(sql).QueryRow(&item)
- return
- }
- type GetPositionTopReq struct {
- Exchange string `json:"exchange" form:"exchange"`
- ClassifyName string `json:"classify_name" form:"classify_name"`
- ClassifyType string `json:"classify_type" form:"classify_type"`
- DataTime string `json:"data_time" form:"data_time"`
- }
- type GetPositionTopResp struct {
- BuyList GetPositionTopList `description:"多单列表"`
- SoldList GetPositionTopList `description:"空单列表"`
- CleanBuyList GetPositionTopList `description:"净多单列表"`
- CleanSoldList GetPositionTopList `description:"净空单列表"`
- DataTime string `description:"最新日期或者请求日期"`
- LastDataTime string `description:"最新日期"`
- }
- type GetPositionTopList struct {
- TotalDealValue int `description:"总计成交量"`
- TotalDealChange int `description:"校昨日变化"`
- List []GetPositionTopListItem `description:"榜单详情列表"`
- }
- type GetPositionTopListItem struct {
- DealShortName string `description:"成交量公司简称"`
- DealValue int `description:"成交量"`
- DealChange int `description:"成交变化量"`
- Rank int `description:"当前名次"`
- Rate string `description:"当前占比"`
- BeforeAllRate string `description:"排在前面的成交量总计占比(包含)"`
- BeforeAllValue int `description:"排在前面的成交量总计"`
- BeforeAllChange int `description:"排在前面的成交量增减总计"`
- }
- func GetTradePositionTop(exchange string, classifyName, classifyType, dataTime string) (list []TradePositionTop, err error) {
- tableName := "trade_position_" + exchange + "_top"
- sql := `SELECT * FROM ` + tableName + ` WHERE classify_name=? and classify_type=? and data_time=? and rank <=20 and rank > 0 ORDER BY deal_value desc`
- o := orm.NewOrmUsingDB("data")
- _, err = o.Raw(sql, classifyName, classifyType, dataTime).QueryRows(&list)
- return
- }
|