data_pb.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. v = v / 1000
  47. t := time.Unix(v, 0)
  48. dateTime := t.Format(utils.FormatDate)
  49. val := item.Value[k]
  50. field := item.Field[k]
  51. ticker := item.Ticker[k]
  52. count, err := data_manage.GetEdbDataPbCount(edbInfoId, dateTime)
  53. if err != nil {
  54. return err
  55. }
  56. if count > 0 {
  57. err = data_manage.ModifyEdbDataPb(edbInfoId, dateTime, val)
  58. if err != nil {
  59. return err
  60. }
  61. } else {
  62. item := new(data_manage.EdbDataPb)
  63. item.EdbCode = addEdbCode
  64. item.EdbInfoId = int(edbInfoId)
  65. item.CreateTime = time.Now()
  66. item.ModifyTime = time.Now()
  67. item.DataTime = dateTime
  68. item.Value = val
  69. item.Status = 1
  70. item.Field=field
  71. item.Ticker=ticker
  72. pbList = append(pbList, item)
  73. }
  74. }
  75. }
  76. if len(pbList) > 0 {
  77. err = data_manage.AddEdbDataPb(pbList)
  78. if err != nil {
  79. return
  80. }
  81. }
  82. return
  83. }