response.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package home
  2. import (
  3. "gfast/app/model/admin/cms_category"
  4. "gfast/app/model/admin/cms_category_news"
  5. "gfast/app/model/admin/cms_news"
  6. "gfast/app/service/admin/cms_service"
  7. "gfast/app/service/home/menu_service"
  8. "gfast/app/service/home/news_service"
  9. "gfast/library/response"
  10. "gfast/library/utils"
  11. "github.com/gogf/gf/container/gvar"
  12. "github.com/gogf/gf/frame/g"
  13. "github.com/gogf/gf/net/ghttp"
  14. "github.com/gogf/gf/os/gview"
  15. "github.com/gogf/gf/util/gconv"
  16. )
  17. func Response(r *ghttp.Request, tpl string, params ...gview.Params) error {
  18. v := g.View()
  19. v.SetPath("template/cms")
  20. //绑定模板中需要用到的方法
  21. v.BindFuncMap(g.Map{
  22. //获取导航菜单列表
  23. "GetNav": func(activeId uint64) string {
  24. nav, err := menu_service.GetNav(activeId)
  25. if err != nil {
  26. g.Log().Error(err)
  27. }
  28. return nav
  29. },
  30. //获取文章调用参数
  31. "GetNewsParams": func(args interface{}) *cms_news.ReqListSearchParams {
  32. params := new(cms_news.ReqListSearchParams)
  33. err := gconv.Struct(args, params)
  34. if err != nil {
  35. g.Log().Error(err)
  36. }
  37. return params
  38. },
  39. //设置文章参数
  40. "SetNewsParams": func(params g.Map, key string, value interface{}) g.Map {
  41. data := g.Map{}
  42. if params != nil {
  43. for k, v := range params {
  44. data[k] = v
  45. }
  46. }
  47. data[key] = value
  48. return data
  49. },
  50. //获取文章列表
  51. "GetNewsList": func(cateId int, pageSize int, attr ...*cms_news.ReqListSearchParams) []*cms_news.NewsList {
  52. list, err := news_service.GetNewsList(cateId, pageSize, attr...)
  53. if err != nil {
  54. g.Log().Error(err)
  55. }
  56. return list
  57. },
  58. //
  59. "GetVarsValue": func(val *gvar.Var) map[string]string {
  60. return val.MapStrStr()
  61. },
  62. //获取栏目面包树
  63. "GetMenuBreadTree": func(menu *cms_category.Entity) g.List {
  64. // 获取所有栏目
  65. menus, err := cms_service.GetMenuList()
  66. if err != nil {
  67. g.Log().Error(err)
  68. }
  69. menuList := make(g.List, len(menus))
  70. for k, m := range menus {
  71. menuList[k] = gconv.Map(m)
  72. }
  73. breadMenus := utils.FindParentBySonPid(menuList, gconv.Int(menu.Id), "filter", "parent_id", nil, "id")
  74. //获取最顶级
  75. var topMenus g.Map
  76. if menu != nil {
  77. topMenus = utils.FindTopParent(menuList, gconv.Int64(menu.Id), "parent_id", "id")
  78. }
  79. breadMenus = utils.ParentSonSort(breadMenus, topMenus["parent_id"], 1, "parent_id")
  80. return breadMenus
  81. },
  82. "getArticleCateId": func(cateList *gvar.Var) int {
  83. val := gconv.Map(cateList.Val())
  84. for index, _ := range val {
  85. return gconv.Int(index)
  86. }
  87. return 0
  88. },
  89. "isSon": func(id, menus interface{}) bool {
  90. i := gconv.Int(id)
  91. m := gconv.SliceMap(menus)
  92. for _, v := range m {
  93. if gconv.Int(v["parent_id"]) == i {
  94. return true
  95. }
  96. }
  97. return false
  98. },
  99. "getThumb": func(more interface{}) string {
  100. m := gconv.Map(more)
  101. m1 := gconv.String(m["thumb"])
  102. return m1
  103. },
  104. // 通过文章id获取所属栏目id
  105. "getCateIdByArticleId": func(articleId interface{}) int {
  106. aid := gconv.Uint64(articleId)
  107. cateIds, _ := cms_category_news.GetCheckedCategoryIdByNewsId(aid)
  108. return cateIds[0]
  109. },
  110. // 取出视频格式
  111. "getVideoFormat": func(videoName interface{}) string {
  112. data := []byte(gconv.String(videoName))
  113. var data2 []byte
  114. for i := len(data) - 3; i < len(data); i++ {
  115. data2 = append(data2, data[i])
  116. }
  117. videoFormat := string(data2)
  118. return videoFormat
  119. },
  120. })
  121. //文章参数
  122. params = append(params, g.Map{"newsParams": g.Map{}})
  123. return response.WriteTpl(r, tpl, v, params...)
  124. }