menu.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package cms_service
  2. import (
  3. "gfast/app/model/admin/cms_category"
  4. "gfast/app/service/cache_service"
  5. "github.com/gogf/gf/errors/gerror"
  6. "github.com/gogf/gf/frame/g"
  7. "github.com/gogf/gf/text/gstr"
  8. "github.com/gogf/gf/util/gconv"
  9. )
  10. //获取频道列表
  11. func GetMenuListChannel() (list []*cms_category.Entity, err error) {
  12. listAll, err := GetMenuList()
  13. if err != nil {
  14. return
  15. }
  16. list = make([]*cms_category.Entity, 0, len(listAll))
  17. for _, v := range listAll {
  18. if v.Status == 1 && v.CateType == cms_category.ChannelCateType {
  19. list = append(list, v)
  20. }
  21. }
  22. return
  23. }
  24. //获取所有菜单列表
  25. func GetMenuList() (list []*cms_category.Entity, err error) {
  26. cache := cache_service.New()
  27. //从缓存获取数据
  28. iList := cache.Get(cache_service.AdminCmsMenu)
  29. if iList != nil {
  30. list = iList.([]*cms_category.Entity)
  31. return
  32. }
  33. list, err = cms_category.Model.Order("list_order ASC,id ASC").All()
  34. if err != nil {
  35. g.Log().Error()
  36. err = gerror.New("获取菜单数据失败")
  37. }
  38. //缓存数据
  39. cache.Set(cache_service.AdminCmsMenu, list, 0, cache_service.AdminCmsTag)
  40. return
  41. }
  42. //保存栏目操作
  43. func AddSave(req *cms_category.ReqAdd) (id int64, err error) {
  44. var entity cms_category.Entity
  45. entity.ParentId = req.ParentId
  46. entity.CateType = req.CateType
  47. entity.Status = req.Status
  48. entity.Name = req.Name
  49. entity.Description = req.Description
  50. entity.SeoTitle = req.InputSeoTitle
  51. entity.SeoKeywords = req.InputSeoKeywords
  52. entity.SeoDescription = req.InputSeoDescription
  53. entity.CateAddress = req.CateAddress
  54. entity.CateContent = req.CateContent
  55. res, err := entity.Insert()
  56. if err != nil {
  57. g.Log().Error(err)
  58. err = gerror.New("保存失败")
  59. return
  60. }
  61. id, err = res.LastInsertId()
  62. if err != nil {
  63. g.Log().Error(err)
  64. err = gerror.New("保存失败")
  65. return
  66. }
  67. return
  68. }
  69. //修改栏目操作
  70. func EditSave(req *cms_category.ReqEdit) (id int64, err error) {
  71. entity, err := GetMenuInfoById(req.Id)
  72. if err != nil {
  73. return
  74. }
  75. if entity == nil {
  76. err = gerror.New("栏目信息不存在")
  77. return
  78. }
  79. entity.Id = gconv.Uint64(req.Id)
  80. entity.ParentId = req.ParentId
  81. entity.CateType = req.CateType
  82. entity.Status = req.Status
  83. entity.Name = req.Name
  84. entity.Description = req.Description
  85. entity.SeoTitle = req.InputSeoTitle
  86. entity.SeoKeywords = req.InputSeoKeywords
  87. entity.SeoDescription = req.InputSeoDescription
  88. entity.CateAddress = req.CateAddress
  89. entity.CateContent = req.CateContent
  90. res, err := entity.Update()
  91. if err != nil {
  92. g.Log().Error(err)
  93. err = gerror.New("修改保存失败")
  94. return
  95. }
  96. id, err = res.RowsAffected()
  97. if err != nil {
  98. g.Log().Error(err)
  99. err = gerror.New("修改保存失败")
  100. return
  101. }
  102. return
  103. }
  104. //获取搜索栏目结果
  105. func GetMenuListSearch(req *cms_category.ReqSearchList) (menus []*cms_category.Entity, err error) {
  106. menus, err = GetMenuList()
  107. if req != nil {
  108. searchMenus := make([]*cms_category.Entity, 0, len(menus))
  109. if req.Name != "" {
  110. for _, entity := range menus {
  111. if gstr.Contains(entity.Name, req.Name) {
  112. searchMenus = append(searchMenus, entity)
  113. }
  114. }
  115. }
  116. menus = searchMenus
  117. }
  118. return
  119. }
  120. //根据栏目ID获取栏目信息
  121. func GetMenuInfoById(id int) (menu *cms_category.Entity, err error) {
  122. menus, err := GetMenuList()
  123. if err != nil {
  124. return
  125. }
  126. for _, entity := range menus {
  127. if entity.Id == gconv.Uint64(id) {
  128. menu = entity
  129. break
  130. }
  131. }
  132. return
  133. }