|
|
@@ -4,9 +4,12 @@ import (
|
|
|
"gfast/app/model/admin/cms_category"
|
|
|
"gfast/app/service/admin/cms_service"
|
|
|
"gfast/app/service/admin/dict_service"
|
|
|
+ "gfast/app/service/cache_service"
|
|
|
"gfast/library/response"
|
|
|
+ "gfast/library/utils"
|
|
|
"github.com/gogf/gf/frame/g"
|
|
|
"github.com/gogf/gf/net/ghttp"
|
|
|
+ "github.com/gogf/gf/util/gconv"
|
|
|
"github.com/gogf/gf/util/gvalid"
|
|
|
)
|
|
|
|
|
|
@@ -14,7 +17,31 @@ import (
|
|
|
type CmsMenu struct{}
|
|
|
|
|
|
func (c *CmsMenu) MenuList(r *ghttp.Request) {
|
|
|
- response.SusJson(true, r, "栏目列表")
|
|
|
+ var req *cms_category.ReqSearchList
|
|
|
+ //获取参数
|
|
|
+ if err := r.Parse(&req); err != nil {
|
|
|
+ response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
|
|
+ }
|
|
|
+ var menus []*cms_category.Entity
|
|
|
+ var err error
|
|
|
+ var list g.List
|
|
|
+ if req != nil && req.Name != "" {
|
|
|
+ //按栏目名搜索
|
|
|
+ menus, err = cms_service.GetMenuListSearch(req)
|
|
|
+ list = gconv.Maps(menus)
|
|
|
+ } else {
|
|
|
+ //获取所有栏目
|
|
|
+ menus, err = cms_service.GetMenuList()
|
|
|
+ if err != nil {
|
|
|
+ response.FailJson(true, r, err.Error())
|
|
|
+ }
|
|
|
+ list = gconv.Maps(menus)
|
|
|
+ list = utils.PushSonToParent(list, 0, "parent_id")
|
|
|
+ }
|
|
|
+ res := g.Map{
|
|
|
+ "list": list,
|
|
|
+ }
|
|
|
+ response.SusJson(true, r, "ok", res)
|
|
|
}
|
|
|
|
|
|
//添加栏目分类
|
|
|
@@ -29,6 +56,7 @@ func (c *CmsMenu) MenuAdd(r *ghttp.Request) {
|
|
|
if err != nil {
|
|
|
response.FailJson(true, r, err.Error())
|
|
|
}
|
|
|
+ cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
|
|
|
response.SusJson(true, r, "栏目添加成功")
|
|
|
}
|
|
|
//获取上级分类(频道)
|
|
|
@@ -36,13 +64,73 @@ func (c *CmsMenu) MenuAdd(r *ghttp.Request) {
|
|
|
if err != nil {
|
|
|
response.FailJson(true, r, err.Error())
|
|
|
}
|
|
|
+ list := gconv.Maps(menus)
|
|
|
+ list = utils.PushSonToParent(list, 0, "parent_id")
|
|
|
typeChecker, err := dict_service.GetDictWithDataByType("cms_category_type")
|
|
|
if err != nil {
|
|
|
response.FailJson(true, r, err.Error())
|
|
|
}
|
|
|
res := g.Map{
|
|
|
- "menus": menus,
|
|
|
+ "menus": list,
|
|
|
"typeChecker": typeChecker,
|
|
|
}
|
|
|
response.SusJson(true, r, "添加栏目", res)
|
|
|
}
|
|
|
+
|
|
|
+//修改栏目
|
|
|
+func (c *CmsMenu) MenuEdit(r *ghttp.Request) {
|
|
|
+ if r.Method == "POST" {
|
|
|
+ var req *cms_category.ReqEdit
|
|
|
+ //获取参数
|
|
|
+ if err := r.Parse(&req); err != nil {
|
|
|
+ response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
|
|
+ }
|
|
|
+ _, err := cms_service.EditSave(req)
|
|
|
+ if err != nil {
|
|
|
+ response.FailJson(true, r, err.Error())
|
|
|
+ }
|
|
|
+ cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
|
|
|
+ response.SusJson(true, r, "栏目修改成功")
|
|
|
+ }
|
|
|
+ //获取栏目数据
|
|
|
+ id := r.GetInt("id")
|
|
|
+ menuInfo, err := cms_service.GetMenuInfoById(id)
|
|
|
+ if err != nil {
|
|
|
+ response.FailJson(true, r, err.Error())
|
|
|
+ }
|
|
|
+ if menuInfo == nil {
|
|
|
+ response.FailJson(true, r, "参数错误")
|
|
|
+ }
|
|
|
+ //获取上级分类(频道)
|
|
|
+ menus, err := cms_service.GetMenuListChannel()
|
|
|
+ if err != nil {
|
|
|
+ response.FailJson(true, r, err.Error())
|
|
|
+ }
|
|
|
+ list := gconv.Maps(menus)
|
|
|
+ list = utils.PushSonToParent(list, 0, "parent_id")
|
|
|
+ typeChecker, err := dict_service.GetDictWithDataByType("cms_category_type")
|
|
|
+ if err != nil {
|
|
|
+ response.FailJson(true, r, err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ res := g.Map{
|
|
|
+ "menuInfo": menuInfo,
|
|
|
+ "menus": list,
|
|
|
+ "typeChecker": typeChecker,
|
|
|
+ }
|
|
|
+ response.SusJson(true, r, "修改栏目", res)
|
|
|
+}
|
|
|
+
|
|
|
+//栏目排序
|
|
|
+func (c *CmsMenu) MenuSort(r *ghttp.Request) {
|
|
|
+ sorts := r.Get("sorts")
|
|
|
+ s := gconv.Map(sorts)
|
|
|
+ if s == nil {
|
|
|
+ response.FailJson(true, r, "排序失败")
|
|
|
+ }
|
|
|
+ for k, v := range s {
|
|
|
+ cms_category.Model.Where("id=?", k).Data("list_order", v).Update()
|
|
|
+ }
|
|
|
+ cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
|
|
|
+ response.SusJson(true, r, "排序成功")
|
|
|
+}
|