| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- package home
- import (
- "gfast/app/model/admin/plug_link"
- "gfast/app/service/admin/plug_link_service"
- "gfast/app/service/admin/plug_service"
- "gfast/library/response"
- "gfast/library/response/plugin/blog"
- "gfast/plugin/blog/model/blog_classification"
- "gfast/plugin/blog/model/blog_comment"
- "gfast/plugin/blog/model/blog_log"
- "gfast/plugin/blog/service/blog_service"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- "github.com/gogf/gf/util/gvalid"
- )
- type Index struct{}
- type Classification struct {
- *blog_classification.Entity
- Children []*Classification
- }
- // 首页
- func (c *Index) Index(r *ghttp.Request) {
- // 查询文章列表
- var req = new(blog_log.SelectPageReq)
- req.PageSize = 8
- req.Status = 1
- _, _, logList, err := blog_service.SelectLogListByPage(req)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询3篇置顶文章列表
- topList, err := blog_service.FindSizeArticleBySign(3, 1, 1, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询3篇幻灯
- slideList, err := blog_service.FindSizeArticleBySign(3, 1, 2, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询10篇根据点击数排序的文章用于排行榜
- hitsList, err := blog_service.FindArticleByHits(10, 1)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询友情链接
- linkList, err := plug_link_service.ListByTypeId(13, 6, 1)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询赞助分类
- coffeeArticle, err := plug_service.GetSizeAd(2, 1, 21)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询推荐文章
- recommendList, err := blog_service.FindSizeArticleBySign(4, 1, 3, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询最新文章
- newList, err := blog_service.FindSizeArticleBySign(4, 1, 0, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询所有状态为正常的分类
- classificationList, err := blog_service.FindAllList()
- if err != nil {
- g.Log().Error(err)
- }
- classifications := getClassificationgList(classificationList, 0)
- blog.Response(r, "homePage.html", g.Map{
- "logList": logList,
- "topList": topList,
- "slideList": slideList,
- "hitsList": hitsList,
- "linkList": linkList,
- "coffeeArticle": coffeeArticle,
- "recommendList": recommendList,
- "newList": newList,
- "classificationList": classifications,
- })
- }
- func getClassificationgList(classificationList []*blog_classification.Entity, pid uint) (cList []*Classification) {
- cList = make([]*Classification, 0, len(classificationList))
- for _, c1 := range classificationList {
- var cl *Classification
- if c1.ClassificationPid == pid {
- cl = &Classification{Entity: c1}
- cl.Children = getClassificationgList(classificationList, c1.ClassificationId)
- cList = append(cList, cl)
- }
- }
- return
- }
- // 分类、搜索
- func (c *Index) BlogList(r *ghttp.Request) {
- // 根据条件查询当前分类下的文章
- var req = new(blog_log.SelectPageReq)
- req.PageNum = r.GetInt64("page")
- pageSize := 10
- req.PageSize = int64(pageSize)
- req.LogTitle = r.GetString("keyboard")
- req.Status = 1
- cateId := r.GetInt("cateId")
- req.CateTypeId = cateId
- total, _, list, err := blog_service.SelectLogListByPage(req)
- if err != nil {
- g.Log().Error(err)
- }
- // 根据分类id查询分类(分类名用于导航)
- classification, err := blog_service.GetClassificationByID(int64(cateId))
- if err != nil {
- g.Log().Error(err)
- }
- // 以下为右边侧栏所需数据
- // 查询10篇根据点击数排序的文章用于排行榜
- hitsList, err := blog_service.FindArticleByHits(10, 1)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询友情链接
- linkList, err := plug_link_service.ListByTypeId(13, 6, 1)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询赞助分类
- coffeeArticle, err := plug_service.GetSizeAd(2, 1, 21)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询推荐文章
- recommendList, err := blog_service.FindSizeArticleBySign(4, 1, 3, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询最新文章
- newList, err := blog_service.FindSizeArticleBySign(4, 1, 0, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询所有状态为正常的分类
- classificationList, err := blog_service.FindAllList()
- if err != nil {
- g.Log().Error(err)
- }
- classifications := getClassificationgList(classificationList, 0)
- tplData := g.Map{
- "list": list,
- "pageStyle": r.GetPage(total, pageSize).GetContent(3),
- "classificationList": classifications,
- "hitsList": hitsList,
- "linkList": linkList,
- "coffeeArticle": coffeeArticle,
- "recommendList": recommendList,
- "newList": newList,
- "classification": classification,
- }
- if classification != nil && classification.ClassificationType == 4 {
- //单页
- blog.Response(r, "content.html", tplData)
- } else {
- blog.Response(r, "blogList.html", tplData)
- }
- }
- // 内容页面(关于博主)
- func (c *Index) Content(r *ghttp.Request) {
- logId := r.GetInt("logId")
- // 根据id查询对应博客日志
- log, err := blog_service.GetLogByID(int64(logId))
- if err != nil {
- g.Log().Error(err)
- }
- // 更新点击数
- log.LogHits += 1
- blog_log.Model.Save(log.Entity)
- if log.LogUrl != "" {
- //跳转连接
- r.Response.RedirectTo(log.LogUrl)
- r.Exit()
- }
- // 查询4篇相关文章(同一分类下最新的4篇)
- relevantList, err := blog_service.FindSizeArticle(4, 1, log.LogType)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询10篇根据点击数排序的文章用于排行榜
- hitsList, err := blog_service.FindArticleByHits(10, 1)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询友情链接
- linkList, err := plug_link_service.ListByTypeId(13, 6, 1)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询赞助分类
- coffeeArticle, err := plug_service.GetSizeAd(2, 1, 21)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询推荐文章
- recommendList, err := blog_service.FindSizeArticleBySign(4, 1, 3, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询最新文章
- newList, err := blog_service.FindSizeArticleBySign(4, 1, 0, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询所有状态为正常的分类
- classificationList, err := blog_service.FindAllList()
- if err != nil {
- g.Log().Error(err)
- }
- classifications := getClassificationgList(classificationList, 0)
- // 查询当前日志的未停用评论
- req := new(blog_comment.SelectPageReq)
- req.Status = "1"
- req.PageSize = 5
- req.Flag = 1
- req.PageNum = r.GetInt64("page")
- req.CommentLogIds = append(req.CommentLogIds, logId)
- total, _, commentList, err := blog_service.SelectCommentListByPage(req) // 分页查询一级评论
- commentList, err = blog_service.GetChildren(commentList) // 查出二级评论(回复)
- blog.Response(r, "content.html", g.Map{
- "classificationList": classifications,
- "log": log,
- "hitsList": hitsList,
- "linkList": linkList,
- "coffeeArticle": coffeeArticle,
- "recommendList": recommendList,
- "newList": newList,
- "pageStyle": r.GetPage(total, int(req.PageSize)).GetContent(3),
- "commentList": commentList,
- "relevantList": relevantList,
- })
- }
- // 新增评论
- func (c *Index) AddComment(r *ghttp.Request) {
- if r.Method == "POST" {
- var req *blog_comment.AddReq
- err := r.Parse(&req)
- if err != nil {
- response.FailJson(true, r, err.(*gvalid.Error).FirstString())
- }
- err = blog_service.AddCommentSave(req)
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- response.SusJson(true, r, "添加成功")
- }
- }
- // 友情链接申请
- func (c *Index) Link(r *ghttp.Request) {
- // 查询10篇根据点击数排序的文章用于排行榜
- hitsList, err := blog_service.FindArticleByHits(10, 1)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询友情链接
- linkList, err := plug_link_service.ListByTypeId(13, 6, 1)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询赞助分类
- coffeeArticle, err := plug_service.GetSizeAd(2, 1, 21)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询推荐文章
- recommendList, err := blog_service.FindSizeArticleBySign(4, 1, 3, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询最新文章
- newList, err := blog_service.FindSizeArticleBySign(4, 1, 0, 0)
- if err != nil {
- g.Log().Error(err)
- }
- // 查询所有状态为正常的分类
- classificationList, err := blog_service.FindAllList()
- if err != nil {
- g.Log().Error(err)
- }
- classifications := getClassificationgList(classificationList, 0)
- blog.Response(r, "link.html", g.Map{
- "classificationList": classifications,
- "hitsList": hitsList,
- "linkList": linkList,
- "coffeeArticle": coffeeArticle,
- "recommendList": recommendList,
- "newList": newList,
- })
- }
- // 添加申请友情链接
- func (c *Index) AddLink(r *ghttp.Request) {
- if r.Method == "POST" {
- var req = new(plug_link.AddReq)
- err := r.Parse(req)
- req.LinkOpen = 0
- req.LinkTarget = "_blank"
- if err != nil {
- response.FailJson(true, r, err.(*gvalid.Error).FirstString())
- }
- err = plug_link_service.AddSavePlugLink(req)
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- response.SusJson(true, r, "提交成功")
- }
- }
|