data_pb.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. addEdbCode := edbCode
  25. edbCode = url.QueryEscape(edbCode)
  26. pbUrl := utils.Hz_Data_PB_Url + `edbInfo/pb?EdbCode=%s&StartDate=%s&EndDate=%s`
  27. pbUrl = fmt.Sprintf(pbUrl, edbCode, startDate, endDate)
  28. utils.FileLog.Info("pbUrl:%s", pbUrl)
  29. body, err := http.Get(pbUrl)
  30. fmt.Println(pbUrl)
  31. fmt.Println("SyncEdbDataByPb body:")
  32. fmt.Println(string(body))
  33. utils.FileLog.Info("pb %s", string(body))
  34. if err != nil {
  35. return
  36. }
  37. item := new(EdbDataFromPb)
  38. err = json.Unmarshal(body, &item)
  39. if err != nil {
  40. return
  41. }
  42. pbList := make([]*data_manage.EdbDataPb, 0)
  43. if len(item.Date) > 0 {
  44. dateMap := item.Date
  45. for k, v := range dateMap {
  46. dataTimestamp := v
  47. v = v / 1000
  48. t := time.Unix(v, 0)
  49. dateTime := t.Format(utils.FormatDate)
  50. val := item.Value[k]
  51. field := item.Field[k]
  52. ticker := item.Ticker[k]
  53. count, err := data_manage.GetEdbDataPbCount(edbCode, dateTime)
  54. if err != nil {
  55. return err
  56. }
  57. if count > 0 {
  58. err = data_manage.ModifyEdbDataPb(edbInfoId, edbCode, dateTime, val)
  59. if err != nil {
  60. return err
  61. }
  62. } else {
  63. item := new(data_manage.EdbDataPb)
  64. item.EdbCode = addEdbCode
  65. item.EdbInfoId = int(edbInfoId)
  66. item.CreateTime = time.Now()
  67. item.ModifyTime = time.Now()
  68. item.DataTime = dateTime
  69. item.Value = val
  70. item.Status = 1
  71. item.Field = field
  72. item.Ticker = ticker
  73. item.DataTimestamp = dataTimestamp
  74. pbList = append(pbList, item)
  75. }
  76. }
  77. }
  78. if len(pbList) > 0 {
  79. err = data_manage.AddEdbDataPb(pbList)
  80. if err != nil {
  81. return
  82. }
  83. }
  84. return
  85. }