123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- package edb_data
- import (
- "errors"
- "fmt"
- "hongze/hongze_yb/global"
- "hongze/hongze_yb/utils"
- "strconv"
- "time"
- )
- // 指标数据->存储表
- func GetEdbDataTableName(source int) (tableName string) {
- switch source {
- case utils.DATA_SOURCE_THS:
- tableName = "edb_data_ths"
- case utils.DATA_SOURCE_WIND:
- tableName = "edb_data_wind"
- case utils.DATA_SOURCE_PB:
- tableName = "edb_data_pb"
- case utils.DATA_SOURCE_CALCULATE:
- tableName = "edb_data_calculate"
- case utils.DATA_SOURCE_CALCULATE_LJZZY:
- tableName = "edb_data_calculate_ljzzy"
- case utils.DATA_SOURCE_CALCULATE_TBZ:
- tableName = "edb_data_calculate_tbz"
- case utils.DATA_SOURCE_CALCULATE_TCZ:
- tableName = "edb_data_calculate_tcz"
- case utils.DATA_SOURCE_CALCULATE_NSZYDPJJS:
- tableName = "edb_data_calculate_nszydpjjs"
- case utils.DATA_SOURCE_MANUAL:
- tableName = "edb_data_manual"
- case utils.DATA_SOURCE_LZ:
- tableName = "edb_data_lz"
- case utils.DATA_SOURCE_YS:
- tableName = "edb_data_ys"
- case utils.DATA_SOURCE_CALCULATE_HBZ:
- tableName = "edb_data_calculate_hbz"
- case utils.DATA_SOURCE_CALCULATE_HCZ:
- tableName = "edb_data_calculate_hcz"
- case utils.DATA_SOURCE_CALCULATE_BP:
- tableName = "edb_data_calculate_bp"
- case utils.DATA_SOURCE_GL:
- tableName = "edb_data_gl"
- case utils.DATA_SOURCE_ZZ:
- tableName = "edb_data_zz"
- case utils.DATA_SOURCE_DL:
- tableName = "edb_data_dl"
- case utils.DATA_SOURCE_SH:
- tableName = "edb_data_sh"
- case utils.DATA_SOURCE_CFFEX:
- tableName = "edb_data_cffex"
- case utils.DATA_SOURCE_SHFE:
- tableName = "edb_data_ine"
- case utils.DATA_SOURCE_GIE:
- tableName = "edb_data_gie"
- case utils.DATA_SOURCE_CALCULATE_ZJPJ:
- tableName = "edb_data_calculate_zjpj"
- case utils.DATA_SOURCE_CALCULATE_TIME_SHIFT:
- tableName = "edb_data_calculate_time_shift"
- case utils.DATA_SOURCE_CALCULATE_LJZTBPJ:
- tableName = "edb_data_calculate_ljztbpj"
- case utils.DATA_SOURCE_LT:
- tableName = "edb_data_lt"
- default:
- tableName = ""
- }
- return
- }
- type EdbDataList struct {
- EdbDataId int `description:" 指标数据ID"`
- EdbInfoId int `description:"指标ID"`
- DataTime string `json:"-" description:"数据日期"`
- DataTimestamp int64 `description:"数据日期"`
- Value float64 `description:"数据值"`
- }
- type EdbDataItems struct {
- Items []*EdbDataList
- Year int
- }
- type EdbDataResult struct {
- List []*EdbDataItems
- }
- type QuarterData struct {
- Year int
- DataList []*EdbDataList
- }
- // GetEdbDataList 获取指标数据
- func GetEdbDataList(source, endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
- tableName := GetEdbDataTableName(source)
- if tableName == "" {
- err = errors.New("无效的渠道:" + strconv.Itoa(source))
- list = make([]*EdbDataList, 0)
- return list, err
- }
- var pars []interface{}
- sql := `SELECT edb_data_id,edb_info_id,data_time,value,data_timestamp FROM %s WHERE edb_info_id = ? `
- if startDate != "" {
- sql += ` AND data_time >= ? `
- pars = append(pars, startDate)
- }
- if endDate != "" {
- sql += ` AND data_time <= ? `
- pars = append(pars, endDate)
- }
- sql += ` ORDER BY data_time ASC `
- sql = fmt.Sprintf(sql, tableName)
- err = global.MYSQL["data"].Raw(sql, endInfoId, pars).Scan(&list).Error
- return
- }
- func GetEdbDataThsByCodeAndDate(edbCode string, startDate string) (count int, err error) {
- sql := ` SELECT COUNT(1) AS count FROM edb_data_ths WHERE edb_code = ? AND data_time = ? `
- err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
- return
- }
- func GetEdbDataWindByCodeAndDate(edbCode string, startDate string) (count int, err error) {
- sql := ` SELECT COUNT(1) AS count FROM edb_data_wind WHERE edb_code=? AND data_time=? `
- err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
- return
- }
- func GetEdbDataPbByCodeAndDate(edbCode string, startDate string) (count int, err error) {
- sql := ` SELECT COUNT(1) AS count FROM edb_data_pb WHERE edb_code=? AND data_time>=? `
- err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
- return
- }
- type ManualEdbdata struct {
- TradeCode string `orm:"column(TRADE_CODE);pk" description:"指标编码"`
- Dt string `orm:"column(DT)" description:"日期"`
- Close string `orm:"column(CLOSE)" description:"值"`
- ModifyTime time.Time `orm:"column(modify_time)" description:"修改时间"`
- }
- func GetEdbdataManualByTradeCode(condition string, pars []interface{}) (item []*ManualEdbdata, err error) {
- sql := ` SELECT * FROM edbdata WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY DT DESC `
- err = global.MYSQL["edb"].Raw(sql, pars).Scan(&item).Error
- return
- }
- type EdbDataBase struct {
- EdbDataId int `orm:"column(edb_data_id);pk"`
- EdbInfoId int
- EdbCode string
- DataTime string
- Value string
- Status int
- CreateTime time.Time
- ModifyTime time.Time
- DataTimestamp int64
- }
- type lzSurveyData struct {
- DataTime string `orm:"column(data_time)" description:"日期"`
- InputValue string `orm:"column(input_value)" description:"值"`
- }
- func GetLzSurveyDataByTradeCode(condition string, pars []interface{}) (item []*lzSurveyData, err error) {
- sql := ` SELECT a.* FROM longzhong_survey_data AS a
- INNER JOIN longzhong_survey_product AS b ON a.survey_product_id=b.survey_product_id
- WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY a.data_time DESC `
- err = global.MYSQL["edb"].Raw(sql, pars).Scan(&item).Error
- return
- }
- func GetEdbDataLzByCodeAndDate(edbCode string, startDate string) (count int, err error) {
- sql := ` SELECT COUNT(1) AS count FROM edb_data_lz WHERE edb_code=? AND data_time=? `
- err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
- return
- }
- 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
- }
- type BaseFromSmm struct {
- BaseFromSmmId int `orm:"column(base_from_smm_id);pk"`
- Aid int
- Name string
- Interface string
- ApiUpdate int
- ApiUpdateType string
- ApiType int
- ApiTypeAll string
- Type1 string `orm:"column(type_1)"`
- Type2 string `orm:"column(type_2)"`
- Type3 string `orm:"column(type_3)"`
- ApiStartTime string
- ApiUpdateTime string
- StartTime string
- FinishTime string
- AuthModule string
- AuthLang string
- ApiLabel string
- Enable string
- EditPerson string
- EditTime string
- AuthDur int
- AuthDurType string
- }
- type BaseFromSmmIndex struct {
- BaseFromSmmIndexId int `orm:"column(base_from_smm_index_id);pk"`
- Interface string
- Name string
- IndexCode string
- IndexName string
- Type1 string `orm:"column(type_1)"`
- Type2 string `orm:"column(type_2)"`
- Type3 string `orm:"column(type_3)"`
- Frequency string
- Unit string
- ApiStartTime string
- ApiUpdateTime string
- StartTime string
- FinishTime string
- CreateTime time.Time
- ModifyTime time.Time
- }
- type BaseFromSmmData struct {
- SmmDataId int `orm:"column(smm_data_id);pk"`
- BaseFromSmmIndexId int
- IndexCode string
- DataTime string
- Value string
- CreateTime time.Time
- ModifyTime time.Time
- DataTimestamp int64
- }
- func GetBaseFromSmmBySmmCode(smmCode string) (item *BaseFromSmm, err error) {
- sql := `SELECT * FROM base_from_smm WHERE interface = ?`
- err = global.MYSQL["data"].Raw(sql, smmCode).Scan(&item).Error
- return
- }
- func GetBaseFromSmmIndexBySmmCode(smmCode string) (list []*BaseFromSmmIndex, err error) {
- sql := ` SELECT * FROM base_from_smm_index WHERE interface = ? `
- err = global.MYSQL["data"].Raw(sql, smmCode).Scan(&list).Error
- return
- }
- func GetBaseFromSmmDataAllByIndexCode(indexCode string) (list []*BaseFromSmmData, err error) {
- sql := `SELECT * FROM base_from_smm_data WHERE index_code=? `
- err = global.MYSQL["data"].Raw(sql, indexCode).Scan(&list).Error
- return
- }
- func GetBaseFromSmmMaxOrMinDate(indexCode string) (min_date, max_date string, err error) {
- sql := ` SELECT MIN(data_time) AS min_date FROM base_from_smm_data WHERE index_code=? `
- err = global.MYSQL["data"].Raw(sql, indexCode).Scan(&min_date).Error
- sql = ` SELECT MAX(data_time) AS max_date FROM base_from_smm_data WHERE index_code=? `
- err = global.MYSQL["data"].Raw(sql, indexCode).Scan(&max_date).Error
- return
- }
- type YsResult struct {
- Code int64 `json:"Code"`
- Data struct {
- CompanyList []interface{} `json:"CompanyList"`
- Content [][]string `json:"Content"`
- Field []struct {
- ColIndex int64 `json:"ColIndex"`
- ColumnType string `json:"ColumnType"`
- Info string `json:"Info"`
- IsDate string `json:"IsDate"`
- Name string `json:"Name"`
- Unit string `json:"Unit"`
- DBColName string `json:"db_col_name"`
- } `json:"Field"`
- CountPage int64 `json:"count_page"`
- CurrentPage int64 `json:"current_page"`
- Frequency string `json:"frequency"`
- Mindate string `json:"mindate"`
- PageNum int64 `json:"page_num"`
- Status int64 `json:"status"`
- TotalNum int64 `json:"total_num"`
- } `json:"Data"`
- Msg string `json:"Msg"`
- }
- type BaseFromSmmDataSimple struct {
- SmmDataId int `orm:"column(smm_data_id);pk"`
- BaseFromSmmIndexId int
- IndexCode string
- DataTime string
- Value string
- }
- type BaseFromDlDataSimple struct {
- Id int `orm:"column(base_from_trade_dalian_index_id);pk"`
- DealCode string
- BuyCode string
- SoldCode string
- DataTime string
- DealValue string
- BuyValue string
- SoldValue string
- }
- func GetDlDataByTradeCode(condition string, pars []interface{}) (item []*BaseFromDlDataSimple, err error) {
- sql := ` SELECT * FROM base_from_trade_dalian_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY data_time DESC `
- err = global.MYSQL["data"].Raw(sql, pars).Scan(&item).Error
- return
- }
- func GetEdbDataDlByCodeAndDate(edbCode string, startDate string) (count int, err error) {
- sql := ` SELECT COUNT(1) AS count FROM edb_data_dl WHERE edb_code=? AND data_time=? `
- err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
- return
- }
- type GlData struct {
- InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
- DataTime string `orm:"column(DATA_DATE)" description:"值"`
- }
- func GetGlDataByTradeCode(condition string, pars []interface{}) (item []*GlData, err error) {
- condition += " AND IS_DELETE=0 "
- sql := ` SELECT * FROM mb_index_main_data WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY PUBLISH_TIME DESC `
- err = global.MYSQL["data"].Raw(sql, pars).Scan(&item).Error
- return
- }
- func GetEdbDataGlByCodeAndDate(edbCode string, startDate string) (count int, err error) {
- sql := ` SELECT COUNT(1) AS count FROM edb_data_gl WHERE edb_code=? AND data_time=? `
- err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
- return
- }
- type EdbDataFromLt struct {
- Close map[int64]interface{} `json:"CLOSE"`
- }
- type BaseFromZzDataSimple struct {
- Id int `orm:"column(base_from_trade_zhengzhou_index_id);pk"`
- DealCode string
- BuyCode string
- SoldCode string
- DataTime string
- DealValue string
- BuyValue string
- SoldValue string
- }
- func GetZzDataByTradeCode(condition string, pars []interface{}) (item []*BaseFromZzDataSimple, err error) {
- sql := ` SELECT * FROM base_from_trade_zhengzhou_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY data_time DESC `
- err = global.MYSQL["data"].Raw(sql, pars).Scan(&item).Error
- return
- }
- func GetEdbDataZzByCodeAndDate(edbCode string, startDate string) (count int, err error) {
- sql := ` SELECT COUNT(1) AS count FROM edb_data_zz WHERE edb_code=? AND data_time=? `
- err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
- return
- }
|