chart.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package services
  2. import (
  3. "context"
  4. "encoding/json"
  5. "fmt"
  6. "hongze/hongze_cygx/models"
  7. "hongze/hongze_cygx/utils"
  8. "io/ioutil"
  9. nhttp "net/http"
  10. "time"
  11. )
  12. //get公共请求方法
  13. func PublicGetDate(url, authorization string) (body []byte, err error) {
  14. defer func() {
  15. if err != nil {
  16. fmt.Println(url + "Get Err:" + err.Error())
  17. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", url+"Get ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  18. }
  19. }()
  20. method := "GET"
  21. client := &nhttp.Client{}
  22. req, err := nhttp.NewRequest(method, url, nil)
  23. if err != nil {
  24. fmt.Println(url+"Get Err:", err.Error())
  25. return
  26. }
  27. req.Header.Add("Authorization", authorization)
  28. res, err := client.Do(req)
  29. if err != nil {
  30. fmt.Println(err)
  31. return
  32. }
  33. defer res.Body.Close()
  34. body, err = ioutil.ReadAll(res.Body)
  35. if err != nil {
  36. fmt.Println("Getres.Body Err:", err.Error())
  37. return
  38. }
  39. return
  40. }
  41. //获取列表
  42. func GetChartListByApi(cont context.Context) (err error) {
  43. defer func() {
  44. if err != nil {
  45. fmt.Println("GetArticleListByApi Err:" + err.Error())
  46. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetArticleListByApi ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  47. }
  48. }()
  49. url := utils.ApiUrl + "charts/mp?take=100&skip=0"
  50. authorization := utils.ApiAuthorization
  51. body, err := PublicGetDate(url, authorization)
  52. if err != nil {
  53. fmt.Println(err)
  54. return
  55. }
  56. var chartResult models.ChartResultApi
  57. err = json.Unmarshal(body, &chartResult)
  58. if err != nil {
  59. fmt.Println("Getres.pdfResult Err:", err.Error())
  60. return err
  61. }
  62. for _, v := range chartResult.Data {
  63. item := new(models.CygxChart)
  64. item.ChartId = v.ChartId
  65. item.Title = v.Title
  66. item.TitleEn = v.TitleEn
  67. item.CreateDateApi = time.Now()
  68. item.CreateDate = v.CreateDate
  69. item.PublishStatus = v.PublishStatus
  70. item.PtagName = v.Ptag.Name
  71. item.CtagName = v.Ctag.Name
  72. item.Cover = v.Cover
  73. count, err := models.GetChartCountById(v.ChartId)
  74. if err != nil && err.Error() != utils.ErrNoRow() {
  75. fmt.Println("GetChartCountById Err:", err.Error())
  76. return err
  77. }
  78. if count == 0 {
  79. _, err := models.AddCygxChart(item)
  80. if err != nil {
  81. fmt.Println("AddCygxChart Err:", err.Error())
  82. return err
  83. }
  84. } else {
  85. updateParams := make(map[string]interface{})
  86. updateParams["Title"] = v.Title
  87. updateParams["TitleEn"] = v.TitleEn
  88. updateParams["CreateDate"] = v.CreateDate
  89. updateParams["PublishStatus"] = v.PublishStatus
  90. updateParams["PtagName"] = v.Ptag.Name
  91. updateParams["CtagName"] = v.Ctag.Name
  92. updateParams["Cover"] = v.Cover
  93. whereParam := map[string]interface{}{"chart_id": v.ChartId}
  94. err = models.UpdateByExpr(models.CygxChart{}, whereParam, updateParams)
  95. }
  96. fmt.Println(v)
  97. }
  98. return
  99. }