data_pb.go 1.9 KB

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