From 09b8e8e2626b1757a4b3cb0d5eccc3e2e7837e9e Mon Sep 17 00:00:00 2001 From: Zhaolong Date: Wed, 27 Apr 2022 23:12:20 +0800 Subject: [PATCH] fix: statistic upstream url change & save article to private --- global/global.go | 2 +- handler/article.go | 2 +- models/article.go | 2 +- router/article.go | 2 +- service/article/article.go | 15 +++++++-------- service/statistics/cache.go | 8 ++------ 6 files changed, 13 insertions(+), 18 deletions(-) diff --git a/global/global.go b/global/global.go index fecac83..7d40c34 100644 --- a/global/global.go +++ b/global/global.go @@ -35,7 +35,7 @@ func GetHttpClient(key string) (*http.Client, error) { } const ( - CHINA_NCOV_STATISTIC_URL = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5" + CHINA_NCOV_STATISTIC_URL = "https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=statisGradeCityDetail,diseaseh5Shelf" ENV_NOLOG = "nolog" TOKEN_EXPIRE_DAYS = 15 FACKER_HOST = "http://myhost.fallen-angle.com:5000/" diff --git a/handler/article.go b/handler/article.go index adbe7f8..e7e87e5 100644 --- a/handler/article.go +++ b/handler/article.go @@ -60,7 +60,7 @@ func ListArticlesByUser(c *gin.Context) { Forbidden(c) return } - var articles *[]models.ListArtile + var articles *[]models.ListArticle if published == "published" { articles = article.ListPublishedArticlesByUser(claims.ID) } else if published == "notpublished" { diff --git a/models/article.go b/models/article.go index a903cf7..bab8d76 100644 --- a/models/article.go +++ b/models/article.go @@ -20,7 +20,7 @@ type BackArticle struct { IsDelete int8 `gorm:"column:is_delete" json:"isDelete"` // 删除标志 } -type ListArtile struct { +type ListArticle struct { ID int `json:"-"` Username string `json:"username"` CreateTime time.Time `json:"createTime"` diff --git a/router/article.go b/router/article.go index 589405f..30680a6 100644 --- a/router/article.go +++ b/router/article.go @@ -8,6 +8,7 @@ import ( func articlePrivateRouter(router *gin.RouterGroup) { articleRouter := router.Group("/article") { + articleRouter.POST("", handler.SaveArticleHandler) articleRouter.DELETE("/:id", handler.DeleteArticleHandler) articleRouter.POST("/:id/publish", handler.PublishArticleHandler) articleRouter.GET("/list/:published", handler.ListArticlesByUser) @@ -17,7 +18,6 @@ func articlePrivateRouter(router *gin.RouterGroup) { func articlePublicRouter(router *gin.RouterGroup) { articleRouter := router.Group("/article") { - articleRouter.POST("", handler.SaveArticleHandler) articleRouter.GET("/list", handler.ListPublishedArticlesHandler) articleRouter.GET("/:id", handler.GetArticleHandler) } diff --git a/service/article/article.go b/service/article/article.go index 05bbe40..bbc1b30 100644 --- a/service/article/article.go +++ b/service/article/article.go @@ -7,32 +7,31 @@ import ( ) //ListPublishedArticles list the articles published, use to show the articles to all people -func ListPublishedArticles() *[]models.ListArtile { +func ListPublishedArticles() *[]models.ListArticle { return listArticles(1, 0) } -func ListPublishedArticlesByUser(id int) *[]models.ListArtile { +func ListPublishedArticlesByUser(id int) *[]models.ListArticle { return listArticles(1, id) } -//ListAllArticles list all articles(without not published) -// TODO: need only show the user's not published article -func ListNotPublishedArticlesByUser(id int) *[]models.ListArtile { +//ListNotPublishedArticlesByUser list all articles(without not published) +func ListNotPublishedArticlesByUser(id int) *[]models.ListArticle { return listArticles(0, id) } -func listArticles(isPublish int, createUser int) *[]models.ListArtile { +func listArticles(isPublish int, createUser int) *[]models.ListArticle { queryStr := "back_article.is_delete = 0 AND is_publish = " + strconv.Itoa(isPublish) if createUser != 0 { queryStr += " AND create_user = " + strconv.Itoa(createUser) } - var res []models.ListArtile + var res []models.ListArticle global.Db.Table("back_article"). Select("back_user.username, back_article.*"). Joins("join back_user on back_article.create_user=back_user.id"). Where(queryStr).Find(&res) if res == nil { - res = []models.ListArtile{} + res = []models.ListArticle{} } return &res } diff --git a/service/statistics/cache.go b/service/statistics/cache.go index 3537ff0..c5322c4 100644 --- a/service/statistics/cache.go +++ b/service/statistics/cache.go @@ -45,13 +45,9 @@ type AreaSlice []models.AreaInfo func cacheNCovStatistics() { resp := utils.GetWhioutHeader(global.CHINA_NCOV_STATISTIC_URL) - var nCovRes map[string]string + var nCovRes map[string]interface{} json.Unmarshal([]byte(resp), &nCovRes) - var nCovResData map[string]interface{} - err := json.Unmarshal([]byte(nCovRes["data"]), &nCovResData) - if err != nil { - panic(err) - } + nCovResData := (nCovRes["data"].(map[string]interface{}))["diseaseh5Shelf"].(map[string]interface{}) if !needToRecache(nCovResData) { return }