data_wind.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. windUrl := utils.Hz_Data_Url + `edbInfo/wind?EdbCode=%s&StartDate=%s&EndDate=%s`
  22. windUrl = fmt.Sprintf(windUrl, edbCode, startDate, endDate)
  23. utils.FileLog.Info("thsUrl:%s", windUrl)
  24. body, err := http.Get(windUrl)
  25. fmt.Println(windUrl)
  26. fmt.Println("SyncEdbDataByWind body:")
  27. fmt.Println(string(body))
  28. utils.FileLog.Info("wind %s", string(body))
  29. if err != nil {
  30. return
  31. }
  32. item := new(EdbDataFromWind)
  33. err = json.Unmarshal(body, &item)
  34. if err != nil {
  35. return
  36. }
  37. windList := make([]*data_manage.EdbDataWind, 0)
  38. for k, v := range item.Dt {
  39. v = v / 1000
  40. fmt.Println(k, v)
  41. t := time.Unix(v, 0)
  42. dateTime := t.Format(utils.FormatDate)
  43. fmt.Println(dateTime)
  44. val := item.Close[k]
  45. count, err := data_manage.GetEdbDataWindCount(edbCode, dateTime)
  46. if err != nil {
  47. return err
  48. }
  49. if count > 0 {
  50. err = data_manage.ModifyEdbDataWind(edbInfoId,edbCode, dateTime, val)
  51. if err != nil {
  52. return err
  53. }
  54. } else {
  55. item := new(data_manage.EdbDataWind)
  56. item.EdbCode = edbCode
  57. item.EdbInfoId = int(edbInfoId)
  58. item.CreateTime = time.Now()
  59. item.ModifyTime = time.Now()
  60. item.DataTime = dateTime
  61. item.Value = val
  62. item.Status = 1
  63. windList = append(windList, item)
  64. }
  65. }
  66. if len(windList) > 0 {
  67. err = data_manage.AddEdbDataWind(windList)
  68. if err != nil {
  69. return
  70. }
  71. }
  72. return
  73. }