edb_data_lt.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "eta_gn/eta_task/global"
  5. "eta_gn/eta_task/utils"
  6. "fmt"
  7. "github.com/rdlucklib/rdluck_tools/http"
  8. "time"
  9. )
  10. type EdbDataLt struct {
  11. EdbDataId int `gorm:"column:edb_data_id;primaryKey"` //`orm:"column(edb_data_id);pk"`
  12. EdbInfoId int
  13. EdbCode string
  14. DataTime string
  15. Value float64
  16. Status int
  17. CreateTime time.Time
  18. ModifyTime time.Time
  19. DataTimestamp int64
  20. }
  21. // AddEdbDataLtBySql 执行添加数据的sql
  22. func AddEdbDataLtBySql(sqlStr string) (err error) {
  23. //o := orm.NewOrm()
  24. //_, err = o.Raw(sqlStr).Exec()
  25. err = global.DEFAULT_DmSQL.Exec(sqlStr).Error
  26. return
  27. }
  28. // ModifyEdbDataLt 修改路透社数据
  29. func ModifyEdbDataLt(edbInfoId int64, dataTime string, value float64) (err error) {
  30. //o := orm.NewOrm()
  31. sql := ` UPDATE edb_data_lt SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
  32. //_, err = o.Raw(sql, value, edbInfoId, dataTime).Exec()
  33. err = global.DEFAULT_DmSQL.Exec(sql, value, edbInfoId, dataTime).Error
  34. return
  35. }
  36. func GetEdbDataLtMaxOrMinDate(edbCode string) (min_date, max_date string, err error) {
  37. //o := orm.NewOrm()
  38. sql := ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date FROM edb_data_lt WHERE edb_code=? `
  39. //err = o.Raw(sql, edbCode).QueryRow(&min_date, &max_date)
  40. err = global.DEFAULT_DmSQL.Raw(sql, edbCode).First(&min_date, &max_date).Error
  41. return
  42. }
  43. func GetEdbDataLtByCodeAndDate(edbCode string, startDate string) (count int, err error) {
  44. //o := orm.NewOrm()
  45. sql := ` SELECT COUNT(1) AS count FROM edb_data_lt WHERE edb_code=? AND data_time=? `
  46. //err = o.Raw(sql, edbCode, startDate).QueryRow(&count)
  47. err = global.DEFAULT_DmSQL.Raw(sql, edbCode, startDate).Scan(&count).Error
  48. return
  49. }
  50. func GetEdbDataLtByCode(edbCode string, size int) (items []*EdbInfoSearchData, err error) {
  51. //o := orm.NewOrm()
  52. sql := ` SELECT * FROM edb_data_lt WHERE edb_code=? ORDER BY data_time DESC LIMIT ? `
  53. //_, err = o.Raw(sql, edbCode, size).QueryRows(&items)
  54. err = global.DEFAULT_DmSQL.Raw(sql, edbCode, size).Find(&items).Error
  55. return
  56. }
  57. type EdbDataFromLt struct {
  58. Close map[int64]interface{} `json:"CLOSE"`
  59. }
  60. // QueryEdbDataByLt 获取路透社数据
  61. func QueryEdbDataByLt(edbCode, startDate, endDate string) (dataList map[int64]interface{}, err error) {
  62. dataList = make(map[int64]interface{})
  63. ltUrl := utils.LtServerUrl + `edbInfo/ek?EdbCode=%s&StartDate=%s&EndDate=%s`
  64. ltUrl = fmt.Sprintf(ltUrl, edbCode, startDate, endDate)
  65. utils.FileLog.Info("ltUrl:%s", ltUrl)
  66. body, err := http.Get(ltUrl)
  67. utils.FileLog.Info("lt result:%s", string(body))
  68. if err != nil {
  69. return
  70. }
  71. //fmt.Println(string(body))
  72. item := new(EdbDataFromLt)
  73. err = json.Unmarshal(body, &item)
  74. if err != nil {
  75. return
  76. }
  77. dataList = item.Close
  78. return
  79. }