data_pb.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "hongze/hongze_task/models/data_manage"
  6. "hongze/hongze_task/utils"
  7. "net/url"
  8. "rdluck_tools/http"
  9. "time"
  10. )
  11. type EdbDataFromPb struct {
  12. Date map[string]int64 `json:"date"`
  13. Ticker map[string]string `json:"ticker"`
  14. Field map[string]string `json:"field"`
  15. Value map[string]float64 `json:"value"`
  16. }
  17. //万得
  18. func SyncEdbDataByPb(edbInfoId int64, edbCode, startDate, endDate string) (err error) {
  19. defer func() {
  20. if err != nil {
  21. fmt.Println("SyncEdbDataByPb Err:" + err.Error())
  22. }
  23. }()
  24. edbCode=url.QueryEscape(edbCode)
  25. pbUrl := utils.Hz_Data_PB_Url + `edbInfo/pb?EdbCode=%s&StartDate=%s&EndDate=%s`
  26. pbUrl = fmt.Sprintf(pbUrl, edbCode, startDate, endDate)
  27. utils.FileLog.Info("pbUrl:%s", pbUrl)
  28. body, err := http.Get(pbUrl)
  29. fmt.Println(pbUrl)
  30. fmt.Println("SyncEdbDataByPb body:")
  31. fmt.Println(string(body))
  32. utils.FileLog.Info("pb %s", string(body))
  33. if err != nil {
  34. return
  35. }
  36. item := new(EdbDataFromPb)
  37. err = json.Unmarshal(body, &item)
  38. if err != nil {
  39. return
  40. }
  41. pbList := make([]*data_manage.EdbDataPb, 0)
  42. if len(item.Date) > 0 {
  43. dateMap := item.Date
  44. for k, v := range dateMap {
  45. v = v / 1000
  46. t := time.Unix(v, 0)
  47. dateTime := t.Format(utils.FormatDate)
  48. val := item.Value[k]
  49. field := item.Field[k]
  50. ticker := item.Ticker[k]
  51. count, err := data_manage.GetEdbDataPbCount(edbCode, dateTime)
  52. if err != nil {
  53. return err
  54. }
  55. if count > 0 {
  56. err = data_manage.ModifyEdbDataPb(edbInfoId,edbCode, dateTime, val)
  57. if err != nil {
  58. return err
  59. }
  60. } else {
  61. item := new(data_manage.EdbDataPb)
  62. item.EdbCode = edbCode
  63. item.EdbInfoId = int(edbInfoId)
  64. item.CreateTime = time.Now()
  65. item.ModifyTime = time.Now()
  66. item.DataTime = dateTime
  67. item.Value = val
  68. item.Status = 1
  69. item.Field=field
  70. item.Ticker=ticker
  71. pbList = append(pbList, item)
  72. }
  73. }
  74. }
  75. if len(pbList) > 0 {
  76. err = data_manage.AddEdbDataPb(pbList)
  77. if err != nil {
  78. return
  79. }
  80. }
  81. return
  82. }