mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 10:12:59 +00:00
栏目完善
This commit is contained in:
@@ -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, "排序成功")
|
||||
}
|
||||
|
||||
@@ -8,6 +8,11 @@ const (
|
||||
SingleCateType = 4 //单页栏目
|
||||
)
|
||||
|
||||
//列表搜索参数
|
||||
type ReqSearchList struct {
|
||||
Name string `p:"name"`
|
||||
}
|
||||
|
||||
//添加请求参数
|
||||
type ReqAdd struct {
|
||||
ParentId uint64 `p:"parent_id" v:"integer|min:0#父级ID不能为空|父级ID必须为大于等于0的整数"`
|
||||
@@ -23,3 +28,9 @@ type ReqAdd struct {
|
||||
CateAddress string `p:"cate_address"`
|
||||
CateContent string `p:"content"`
|
||||
}
|
||||
|
||||
//修改请求参数
|
||||
type ReqEdit struct {
|
||||
Id int `p:"id" v:"required|min:1#栏目id不能为空|栏目id参数错误"`
|
||||
ReqAdd
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import (
|
||||
"gfast/app/service/cache_service"
|
||||
"github.com/gogf/gf/errors/gerror"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/text/gstr"
|
||||
"github.com/gogf/gf/util/gconv"
|
||||
)
|
||||
|
||||
//获取频道列表
|
||||
@@ -22,7 +24,7 @@ func GetMenuListChannel() (list []*cms_category.Entity, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
//获取菜单列表
|
||||
//获取所有菜单列表
|
||||
func GetMenuList() (list []*cms_category.Entity, err error) {
|
||||
cache := cache_service.New()
|
||||
//从缓存获取数据
|
||||
@@ -68,3 +70,71 @@ func AddSave(req *cms_category.ReqAdd) (id int64, err error) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//修改栏目操作
|
||||
func EditSave(req *cms_category.ReqEdit) (id int64, err error) {
|
||||
entity, err := GetMenuInfoById(req.Id)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if entity == nil {
|
||||
err = gerror.New("栏目信息不存在")
|
||||
return
|
||||
}
|
||||
entity.Id = gconv.Uint64(req.Id)
|
||||
entity.ParentId = req.ParentId
|
||||
entity.CateType = req.CateType
|
||||
entity.Status = req.Status
|
||||
entity.Name = req.Name
|
||||
entity.Description = req.Description
|
||||
entity.SeoTitle = req.InputSeoTitle
|
||||
entity.SeoKeywords = req.InputSeoKeywords
|
||||
entity.SeoDescription = req.InputSeoDescription
|
||||
entity.CateAddress = req.CateAddress
|
||||
entity.CateContent = req.CateContent
|
||||
res, err := entity.Update()
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
err = gerror.New("修改保存失败")
|
||||
return
|
||||
}
|
||||
id, err = res.RowsAffected()
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
err = gerror.New("修改保存失败")
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//获取搜索栏目结果
|
||||
func GetMenuListSearch(req *cms_category.ReqSearchList) (menus []*cms_category.Entity, err error) {
|
||||
menus, err = GetMenuList()
|
||||
if req != nil {
|
||||
searchMenus := make([]*cms_category.Entity, 0, len(menus))
|
||||
if req.Name != "" {
|
||||
for _, entity := range menus {
|
||||
if gstr.Contains(entity.Name, req.Name) {
|
||||
searchMenus = append(searchMenus, entity)
|
||||
}
|
||||
}
|
||||
}
|
||||
menus = searchMenus
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//根据栏目ID获取栏目信息
|
||||
func GetMenuInfoById(id int) (menu *cms_category.Entity, err error) {
|
||||
menus, err := GetMenuList()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
for _, entity := range menus {
|
||||
if entity.Id == gconv.Uint64(id) {
|
||||
menu = entity
|
||||
break
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -81,10 +81,14 @@ func EditSave(req *sys_dict_type.EditReq, userId int) (int64, error) {
|
||||
func SelectListByPage(req *sys_dict_type.SelectPageReq) (total, page int, list []*sys_dict_type.Entity, err error) {
|
||||
model := sys_dict_type.Model
|
||||
if req != nil {
|
||||
if req.DictType != "" {
|
||||
if req.DictName != "" {
|
||||
model = model.Where("dict_name like ?", "%"+req.DictName+"%")
|
||||
}
|
||||
|
||||
if req.DictType != "" {
|
||||
model = model.Where("dict_type like ?", "%"+req.DictType+"%")
|
||||
}
|
||||
|
||||
if req.Status != "" {
|
||||
model = model.Where("status = ", gconv.Int(req.Status))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user