data_wind.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "hongze/hongze_task/models/data_manage"
  6. "hongze/hongze_task/utils"
  7. "rdluck_tools/http"
  8. "time"
  9. )
  10. type EdbDataFromWind struct {
  11. Close map[string]float64 `json:"CLOSE"`
  12. Dt map[string]int64 `json:"DT"`
  13. }
  14. //万得
  15. func SyncEdbDataByWind(edbInfoId int64, edbCode, startDate, endDate string) (err error) {
  16. defer func() {
  17. if err != nil {
  18. fmt.Println("GetEdbDataByWind Err:" + err.Error())
  19. }
  20. }()
  21. thsUrl := utils.Hz_Data_Url + `edbInfo/wind/?EdbCode=%s&StartDate=%s&EndDate=%s`
  22. thsUrl = fmt.Sprintf(thsUrl, edbCode, startDate, endDate)
  23. utils.FileLog.Info("thsUrl:%s", thsUrl)
  24. body, err := http.Get(thsUrl)
  25. fmt.Println("GetEdbDataByThs body:")
  26. fmt.Println(string(body))
  27. utils.FileLog.Info("wind %s", string(body))
  28. if err != nil {
  29. return
  30. }
  31. item := new(EdbDataFromWind)
  32. err = json.Unmarshal(body, &item)
  33. if err != nil {
  34. return
  35. }
  36. windList := make([]*data_manage.EdbDataWind, 0)
  37. for k, v := range item.Dt {
  38. v = v / 1000
  39. fmt.Println(k, v)
  40. t := time.Unix(v, 0)
  41. dateTime := t.Format(utils.FormatDate)
  42. fmt.Println(dateTime)
  43. val := item.Close[k]
  44. count, err := data_manage.GetEdbDataWindCount(edbInfoId, dateTime)
  45. if err != nil {
  46. return err
  47. }
  48. if count > 0 {
  49. err = data_manage.ModifyEdbDataWind(edbInfoId, dateTime, val)
  50. if err != nil {
  51. return
  52. }
  53. } else {
  54. item := new(data_manage.EdbDataWind)
  55. item.EdbCode = edbCode
  56. item.EdbInfoId = 0
  57. item.CreateTime = time.Now()
  58. item.ModifyTime = time.Now()
  59. item.DataTime = dateTime
  60. item.Value = val
  61. item.Status = 1
  62. windList = append(windList, item)
  63. }
  64. }
  65. if len(windList) > 0 {
  66. err = data_manage.AddEdbDataWind(windList)
  67. if err != nil {
  68. return
  69. }
  70. }
  71. return
  72. }