cms_menu.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package admin
  2. import (
  3. "gfast/app/model/admin/cms_category"
  4. "gfast/app/service/admin/cms_service"
  5. "gfast/app/service/admin/dict_service"
  6. "gfast/app/service/cache_service"
  7. "gfast/library/response"
  8. "gfast/library/utils"
  9. "github.com/gogf/gf/frame/g"
  10. "github.com/gogf/gf/net/ghttp"
  11. "github.com/gogf/gf/util/gconv"
  12. "github.com/gogf/gf/util/gvalid"
  13. )
  14. //cms栏目管理
  15. type CmsMenu struct{}
  16. func (c *CmsMenu) List(r *ghttp.Request) {
  17. var req *cms_category.ReqSearchList
  18. //获取参数
  19. if err := r.Parse(&req); err != nil {
  20. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  21. }
  22. var menus []*cms_category.Entity
  23. var err error
  24. var list g.List
  25. if req != nil && req.Name != "" {
  26. //按栏目名搜索
  27. menus, err = cms_service.GetMenuListSearch(req)
  28. if err != nil {
  29. response.FailJson(true, r, err.Error())
  30. }
  31. list = gconv.Maps(menus)
  32. } else {
  33. //获取所有栏目
  34. menus, err = cms_service.GetMenuList()
  35. if err != nil {
  36. response.FailJson(true, r, err.Error())
  37. }
  38. list = gconv.Maps(menus)
  39. list = utils.PushSonToParent(list, 0, "parent_id")
  40. }
  41. res := g.Map{
  42. "list": list,
  43. }
  44. response.SusJson(true, r, "ok", res)
  45. }
  46. //添加栏目分类
  47. func (c *CmsMenu) Add(r *ghttp.Request) {
  48. if r.Method == "POST" {
  49. var req *cms_category.ReqAdd
  50. //获取参数
  51. if err := r.Parse(&req); err != nil {
  52. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  53. }
  54. _, err := cms_service.AddSave(req)
  55. if err != nil {
  56. response.FailJson(true, r, err.Error())
  57. }
  58. cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
  59. response.SusJson(true, r, "栏目添加成功")
  60. }
  61. //获取上级分类(频道)
  62. menus, err := cms_service.GetMenuListChannel()
  63. if err != nil {
  64. response.FailJson(true, r, err.Error())
  65. }
  66. list := gconv.Maps(menus)
  67. list = utils.PushSonToParent(list, 0, "parent_id")
  68. typeChecker, err := dict_service.GetDictWithDataByType("cms_category_type", "")
  69. if err != nil {
  70. response.FailJson(true, r, err.Error())
  71. }
  72. res := g.Map{
  73. "menus": list,
  74. "typeChecker": typeChecker,
  75. }
  76. response.SusJson(true, r, "添加栏目", res)
  77. }
  78. //修改栏目
  79. func (c *CmsMenu) Edit(r *ghttp.Request) {
  80. if r.Method == "POST" {
  81. var req *cms_category.ReqEdit
  82. //获取参数
  83. if err := r.Parse(&req); err != nil {
  84. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  85. }
  86. _, err := cms_service.EditSave(req)
  87. if err != nil {
  88. response.FailJson(true, r, err.Error())
  89. }
  90. cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
  91. response.SusJson(true, r, "栏目修改成功")
  92. }
  93. //获取栏目数据
  94. id := r.GetInt("id")
  95. menuInfo, err := cms_service.GetMenuInfoById(id)
  96. if err != nil {
  97. response.FailJson(true, r, err.Error())
  98. }
  99. if menuInfo == nil {
  100. response.FailJson(true, r, "参数错误")
  101. }
  102. //获取上级分类(频道)
  103. menus, err := cms_service.GetMenuListChannel()
  104. if err != nil {
  105. response.FailJson(true, r, err.Error())
  106. }
  107. list := gconv.Maps(menus)
  108. list = utils.PushSonToParent(list, 0, "parent_id")
  109. typeChecker, err := dict_service.GetDictWithDataByType("cms_category_type", gconv.String(menuInfo.CateType))
  110. if err != nil {
  111. response.FailJson(true, r, err.Error())
  112. }
  113. res := g.Map{
  114. "menuInfo": menuInfo,
  115. "menus": list,
  116. "typeChecker": typeChecker,
  117. }
  118. response.SusJson(true, r, "修改栏目", res)
  119. }
  120. //栏目排序
  121. func (c *CmsMenu) Sort(r *ghttp.Request) {
  122. sorts := r.Get("sorts")
  123. s := gconv.Map(sorts)
  124. if s == nil {
  125. response.FailJson(true, r, "排序失败")
  126. }
  127. for k, v := range s {
  128. cms_category.Model.Where("id=?", k).Data("list_order", v).Update()
  129. }
  130. cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
  131. response.SusJson(true, r, "排序成功")
  132. }