icpi.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package services
  2. import (
  3. "encoding/json"
  4. "eta/eta_task/models/data_manage"
  5. "eta/eta_task/utils"
  6. "fmt"
  7. "time"
  8. )
  9. // ICPI消费指数指标数据同步
  10. func SyncBaseFromIcpi() (err error) {
  11. var startDate string
  12. maxDate, err := data_manage.GetBaseFromIcpiIndexMaxDate()
  13. if err != nil || maxDate.IsZero() {
  14. startDate = time.Now().AddDate(0, 0, -1).Format(utils.FormatDate) + " 00:00:00"
  15. } else {
  16. startDate = maxDate.AddDate(0, 0, 1).Format(utils.FormatDate) + " 00:00:00"
  17. }
  18. method := `index/list`
  19. data := make(map[string]interface{})
  20. data["Source"] = utils.DATA_SOURCE_ICPI
  21. data["StartDate"] = startDate
  22. //data["EndDate"] = endDate
  23. result, err := HttpPost("SyncRankingFromIcpi", method, data)
  24. utils.FileLog.Info(result)
  25. fmt.Println(result)
  26. respObj := new(data_manage.IcpiIndexResp)
  27. err = json.Unmarshal([]byte(result), &respObj)
  28. if err != nil {
  29. return err
  30. }
  31. //获取所有指标信息 某一天的
  32. allIndex, err := data_manage.GetBaseFromIcpiIndexAll(startDate)
  33. if err != nil {
  34. return
  35. }
  36. existIndexMap := make(map[int]*data_manage.BaseFromIcpiIndex)
  37. for _, v := range allIndex {
  38. existIndexMap[v.BaseFromIcpiIndexId] = v
  39. }
  40. icpiObj := new(data_manage.BaseFromIcpiIndex)
  41. for _, zv := range respObj.Data {
  42. if _, ok := existIndexMap[zv.BaseFromIcpiIndexId]; !ok {
  43. newID, err := icpiObj.AddBaseFromIcpiIndex(zv)
  44. if err != nil {
  45. fmt.Println("insert error:", err)
  46. }
  47. fmt.Println("insert new indexID:", newID)
  48. }
  49. }
  50. return err
  51. }
  52. // ICPI消费指数-分类
  53. func SyncBaseFromIcpiClassify() (err error) {
  54. data := make(map[string]interface{})
  55. data["Source"] = utils.DATA_SOURCE_ICPI
  56. method := `classify/list`
  57. result, err := HttpPost("SyncBaseFromIcpiClassify", method, data)
  58. if err != nil {
  59. fmt.Println("SyncBaseFromIcpiClassify HttpPost Err:", err.Error())
  60. }
  61. utils.FileLog.Info(result)
  62. fmt.Println("SyncBaseFromIcpiClassify result:", result)
  63. respObj := new(data_manage.IcpiClassifyResp)
  64. err = json.Unmarshal([]byte(result), &respObj)
  65. if err != nil {
  66. return err
  67. }
  68. //获取所有分类
  69. allClassify, err := data_manage.GetBaseFromIcpiClassifyAll()
  70. if err != nil {
  71. return
  72. }
  73. existIndexMap := make(map[int]*data_manage.BaseFromIcpiClassify)
  74. for _, v := range allClassify {
  75. existIndexMap[v.BaseFromIcpiClassifyId] = v
  76. }
  77. for _, item := range respObj.Data {
  78. if _, ok := existIndexMap[item.BaseFromIcpiClassifyId]; !ok {
  79. newID, err := data_manage.AddBaseFromIcpiClassify(item)
  80. if err != nil {
  81. fmt.Println("AddBaseFromIcpiClassify error:", err)
  82. }
  83. fmt.Println("AddBaseFromIcpiClassify new indexID:", newID)
  84. }
  85. }
  86. return err
  87. }