package services import ( "context" "encoding/json" "fmt" "hongze/hongze_cygx/models" "hongze/hongze_cygx/utils" "io/ioutil" nhttp "net/http" "time" ) //get公共请求方法 func PublicGetDate(url, authorization string) (body []byte, err error) { defer func() { if err != nil { fmt.Println(url + "Get Err:" + err.Error()) go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", url+"Get ErrMsg:"+err.Error(), utils.EmailSendToUsers) } }() method := "GET" client := &nhttp.Client{} req, err := nhttp.NewRequest(method, url, nil) if err != nil { fmt.Println(url+"Get Err:", err.Error()) return } req.Header.Add("Authorization", authorization) res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err = ioutil.ReadAll(res.Body) if err != nil { fmt.Println("Getres.Body Err:", err.Error()) return } return } //获取列表 func GetChartListByApi(cont context.Context) (err error) { defer func() { if err != nil { fmt.Println("GetArticleListByApi Err:" + err.Error()) go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetArticleListByApi ErrMsg:"+err.Error(), utils.EmailSendToUsers) } }() url := utils.ApiUrl + "charts/mp?take=100&skip=0" authorization := utils.ApiAuthorization body, err := PublicGetDate(url, authorization) if err != nil { fmt.Println(err) return } var chartResult models.ChartResultApi err = json.Unmarshal(body, &chartResult) if err != nil { fmt.Println("Getres.pdfResult Err:", err.Error()) return err } for _, v := range chartResult.Data { item := new(models.CygxChart) item.ChartId = v.ChartId item.Title = v.Title item.TitleEn = v.TitleEn item.CreateDateApi = time.Now() item.CreateDate = v.CreateDate item.PublishStatus = v.PublishStatus item.PtagName = v.Ptag.Name item.CtagName = v.Ctag.Name item.Cover = v.Cover count, err := models.GetChartCountById(v.ChartId) if err != nil && err.Error() != utils.ErrNoRow() { fmt.Println("GetChartCountById Err:", err.Error()) return err } if count == 0 { _, err := models.AddCygxChart(item) if err != nil { fmt.Println("AddCygxChart Err:", err.Error()) return err } } else { updateParams := make(map[string]interface{}) updateParams["Title"] = v.Title updateParams["TitleEn"] = v.TitleEn updateParams["CreateDate"] = v.CreateDate updateParams["PublishStatus"] = v.PublishStatus updateParams["PtagName"] = v.Ptag.Name updateParams["CtagName"] = v.Ctag.Name updateParams["Cover"] = v.Cover whereParam := map[string]interface{}{"chart_id": v.ChartId} err = models.UpdateByExpr(models.CygxChart{}, whereParam, updateParams) } fmt.Println(v) } return }