github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/blogweb_gin/controllers/home_controller.go (about)

     1  package controllers
     2  
     3  import (
     4  	"github.com/gin-gonic/gin"
     5  	"github.com/qiuhoude/go-web/blogweb_gin/logs"
     6  	"github.com/qiuhoude/go-web/blogweb_gin/models"
     7  	"net/http"
     8  	"strconv"
     9  )
    10  
    11  //主页
    12  //可以通过翻页来获取该网页,也可以通过tag标签获取
    13  //传page参数代表翻页,传tag参数代表标签
    14  //首先判断page有值那么就是翻页,否则判断tag有值就是标签,否则就是默认的第一页
    15  func HomeGet(c *gin.Context) {
    16  	//获取session,判断用户是否登录
    17  	islogin := GetSession(c)
    18  
    19  	tag := c.Query("tag")
    20  	logs.Info.Println("tag:", tag)
    21  	page, _ := strconv.Atoi(c.Query("page"))
    22  
    23  	var hasFooter bool
    24  	var artList []models.Article
    25  
    26  	if len(tag) > 0 {
    27  		//按照指定的标签搜索
    28  		artList, _ = models.QueryArticlesWithTag(tag)
    29  		hasFooter = false
    30  	} else {
    31  		if page <= 0 {
    32  			page = 1
    33  		}
    34  		artList, _ = models.FindArticleWithPage(page)
    35  		hasFooter = true
    36  	}
    37  
    38  	homeFooterPageCode := models.ConfigHomeFooterPageCode(page)
    39  	html := models.MakeHomeBlocks(artList, islogin)
    40  
    41  	c.HTML(http.StatusOK, "home.html", gin.H{"IsLogin": islogin, "Content": html, "HasFooter": hasFooter, "PageCode": homeFooterPageCode})
    42  }