mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 10:12:59 +00:00
127 lines
3.4 KiB
Go
127 lines
3.4 KiB
Go
package home
|
|
|
|
import (
|
|
"gfast/app/model/admin/cms_category"
|
|
"gfast/app/model/admin/cms_category_news"
|
|
"gfast/app/model/admin/cms_news"
|
|
"gfast/app/service/admin/cms_service"
|
|
"gfast/app/service/home/menu_service"
|
|
"gfast/app/service/home/news_service"
|
|
"gfast/library/response"
|
|
"gfast/library/utils"
|
|
"github.com/gogf/gf/container/gvar"
|
|
"github.com/gogf/gf/frame/g"
|
|
"github.com/gogf/gf/net/ghttp"
|
|
"github.com/gogf/gf/os/gview"
|
|
"github.com/gogf/gf/util/gconv"
|
|
)
|
|
|
|
func Response(r *ghttp.Request, tpl string, params ...gview.Params) error {
|
|
v := g.View()
|
|
v.SetPath("template/cms")
|
|
//绑定模板中需要用到的方法
|
|
v.BindFuncMap(g.Map{
|
|
//获取导航菜单列表
|
|
"GetNav": func(activeId uint64) string {
|
|
nav, err := menu_service.GetNav(activeId)
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
}
|
|
return nav
|
|
},
|
|
//获取文章调用参数
|
|
"GetNewsParams": func(args interface{}) *cms_news.ReqListSearchParams {
|
|
params := new(cms_news.ReqListSearchParams)
|
|
err := gconv.Struct(args, params)
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
}
|
|
return params
|
|
},
|
|
//设置文章参数
|
|
"SetNewsParams": func(params g.Map, key string, value interface{}) g.Map {
|
|
data := g.Map{}
|
|
if params != nil {
|
|
for k, v := range params {
|
|
data[k] = v
|
|
}
|
|
}
|
|
data[key] = value
|
|
return data
|
|
},
|
|
//获取文章列表
|
|
"GetNewsList": func(cateId int, pageSize int, attr ...*cms_news.ReqListSearchParams) []*cms_news.NewsList {
|
|
list, err := news_service.GetNewsList(cateId, pageSize, attr...)
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
}
|
|
return list
|
|
},
|
|
//
|
|
"GetVarsValue": func(val *gvar.Var) map[string]string {
|
|
return val.MapStrStr()
|
|
},
|
|
//获取栏目面包树
|
|
"GetMenuBreadTree": func(menu *cms_category.Entity) g.List {
|
|
// 获取所有栏目
|
|
menus, err := cms_service.GetMenuList()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
}
|
|
menuList := make(g.List, len(menus))
|
|
for k, m := range menus {
|
|
menuList[k] = gconv.Map(m)
|
|
}
|
|
breadMenus := utils.FindParentBySonPid(menuList, gconv.Int(menu.Id), "filter", "parent_id", nil, "id")
|
|
//获取最顶级
|
|
var topMenus g.Map
|
|
if menu != nil {
|
|
topMenus = utils.FindTopParent(menuList, gconv.Int64(menu.Id), "parent_id", "id")
|
|
}
|
|
breadMenus = utils.ParentSonSort(breadMenus, topMenus["parent_id"], 1, "parent_id")
|
|
return breadMenus
|
|
},
|
|
"getArticleCateId": func(cateList *gvar.Var) int {
|
|
val := gconv.Map(cateList.Val())
|
|
for index, _ := range val {
|
|
return gconv.Int(index)
|
|
}
|
|
return 0
|
|
},
|
|
"isSon": func(id, menus interface{}) bool {
|
|
i := gconv.Int(id)
|
|
m := gconv.SliceMap(menus)
|
|
for _, v := range m {
|
|
if gconv.Int(v["parent_id"]) == i {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
},
|
|
"getThumb": func(more interface{}) string {
|
|
m := gconv.Map(more)
|
|
m1 := gconv.String(m["thumb"])
|
|
return m1
|
|
},
|
|
// 通过文章id获取所属栏目id
|
|
"getCateIdByArticleId": func(articleId interface{}) int {
|
|
aid := gconv.Uint64(articleId)
|
|
cateIds, _ := cms_category_news.GetCheckedCategoryIdByNewsId(aid)
|
|
return cateIds[0]
|
|
},
|
|
// 取出视频格式
|
|
"getVideoFormat": func(videoName interface{}) string {
|
|
data := []byte(gconv.String(videoName))
|
|
var data2 []byte
|
|
for i := len(data) - 3; i < len(data); i++ {
|
|
data2 = append(data2, data[i])
|
|
}
|
|
videoFormat := string(data2)
|
|
return videoFormat
|
|
},
|
|
})
|
|
//文章参数
|
|
params = append(params, g.Map{"newsParams": g.Map{}})
|
|
return response.WriteTpl(r, tpl, v, params...)
|
|
}
|