cms_menu.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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) MenuList(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. list = gconv.Maps(menus)
  29. } else {
  30. //获取所有栏目
  31. menus, err = cms_service.GetMenuList()
  32. if err != nil {
  33. response.FailJson(true, r, err.Error())
  34. }
  35. list = gconv.Maps(menus)
  36. list = utils.PushSonToParent(list, 0, "parent_id")
  37. }
  38. res := g.Map{
  39. "list": list,
  40. }
  41. response.SusJson(true, r, "ok", res)
  42. }
  43. //添加栏目分类
  44. func (c *CmsMenu) MenuAdd(r *ghttp.Request) {
  45. if r.Method == "POST" {
  46. var req *cms_category.ReqAdd
  47. //获取参数
  48. if err := r.Parse(&req); err != nil {
  49. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  50. }
  51. _, err := cms_service.AddSave(req)
  52. if err != nil {
  53. response.FailJson(true, r, err.Error())
  54. }
  55. cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
  56. response.SusJson(true, r, "栏目添加成功")
  57. }
  58. //获取上级分类(频道)
  59. menus, err := cms_service.GetMenuListChannel()
  60. if err != nil {
  61. response.FailJson(true, r, err.Error())
  62. }
  63. list := gconv.Maps(menus)
  64. list = utils.PushSonToParent(list, 0, "parent_id")
  65. typeChecker, err := dict_service.GetDictWithDataByType("cms_category_type")
  66. if err != nil {
  67. response.FailJson(true, r, err.Error())
  68. }
  69. res := g.Map{
  70. "menus": list,
  71. "typeChecker": typeChecker,
  72. }
  73. response.SusJson(true, r, "添加栏目", res)
  74. }
  75. //修改栏目
  76. func (c *CmsMenu) MenuEdit(r *ghttp.Request) {
  77. if r.Method == "POST" {
  78. var req *cms_category.ReqEdit
  79. //获取参数
  80. if err := r.Parse(&req); err != nil {
  81. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  82. }
  83. _, err := cms_service.EditSave(req)
  84. if err != nil {
  85. response.FailJson(true, r, err.Error())
  86. }
  87. cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
  88. response.SusJson(true, r, "栏目修改成功")
  89. }
  90. //获取栏目数据
  91. id := r.GetInt("id")
  92. menuInfo, err := cms_service.GetMenuInfoById(id)
  93. if err != nil {
  94. response.FailJson(true, r, err.Error())
  95. }
  96. if menuInfo == nil {
  97. response.FailJson(true, r, "参数错误")
  98. }
  99. //获取上级分类(频道)
  100. menus, err := cms_service.GetMenuListChannel()
  101. if err != nil {
  102. response.FailJson(true, r, err.Error())
  103. }
  104. list := gconv.Maps(menus)
  105. list = utils.PushSonToParent(list, 0, "parent_id")
  106. typeChecker, err := dict_service.GetDictWithDataByType("cms_category_type")
  107. if err != nil {
  108. response.FailJson(true, r, err.Error())
  109. }
  110. res := g.Map{
  111. "menuInfo": menuInfo,
  112. "menus": list,
  113. "typeChecker": typeChecker,
  114. }
  115. response.SusJson(true, r, "修改栏目", res)
  116. }
  117. //栏目排序
  118. func (c *CmsMenu) MenuSort(r *ghttp.Request) {
  119. sorts := r.Get("sorts")
  120. s := gconv.Map(sorts)
  121. if s == nil {
  122. response.FailJson(true, r, "排序失败")
  123. }
  124. for k, v := range s {
  125. cms_category.Model.Where("id=?", k).Data("list_order", v).Update()
  126. }
  127. cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
  128. response.SusJson(true, r, "排序成功")
  129. }