sk_gm_server/app/api/menu/menuAction.go

130 lines
2.5 KiB
Go

package menu
import (
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
"github.com/gogf/gf/os/glog"
"github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/util/gconv"
"gmanager/app/service/menu"
"gmanager/library/base"
)
type Action struct {
base.BaseRouter
}
// path: /index
func (action *Action) Index(r *ghttp.Request) {
tplFile := "pages/system/menu_index.html"
err := r.Response.WriteTpl(tplFile, g.Map{
"now": gtime.Datetime(),
})
if err != nil {
glog.Error(err)
}
}
// path: /get/{id}
func (action *Action) Get(r *ghttp.Request) {
id := r.GetInt64("id")
model, err := menu.GetById(id)
if err != nil {
base.Fail(r, err.Error())
}
base.Succ(r, model)
}
// path: /delete/{id}
func (action *Action) Delete(r *ghttp.Request) {
id := r.GetInt64("id")
form := base.NewForm(g.Map{"parentId": id})
childModel, err := menu.GetOne(&form)
if err != nil {
base.Fail(r, err.Error())
} else if childModel != nil && childModel.Id > 0 {
base.Fail(r, "请先删除子菜单")
}
_, err1 := menu.Delete(id, base.GetUser(r).Id)
if err1 != nil {
base.Fail(r, err1.Error())
}
base.Succ(r, "")
}
// path: /save
func (action *Action) Save(r *ghttp.Request) {
request := new(menu.Request)
err := gconv.Struct(r.GetMap(), request)
if err != nil {
glog.Error("save struct error", err)
base.Error(r, "save error")
}
request.UserId = base.GetUser(r).Id
_, err = menu.Save(request)
if err != nil {
base.Fail(r, "保存失败")
}
base.Succ(r, "")
}
// path: /tree
func (action *Action) Tree(r *ghttp.Request) {
action.List(r)
}
// path: /list
func (action *Action) List(r *ghttp.Request) {
form := base.NewForm(r.GetMap())
list, err := menu.List(&form)
if err != nil {
glog.Error("page error", err)
base.Error(r, err.Error())
}
base.Succ(r, list)
}
// path: /page
func (action *Action) Page(r *ghttp.Request) {
form := base.NewForm(r.GetMap())
page, err := menu.Page(&form)
if err != nil {
glog.Error("page error", err)
base.Error(r, err.Error())
}
base.Succ(r,
g.Map{
"page": form.Page,
"rows": page,
"total": form.TotalPage,
"records": form.TotalSize,
})
}
// path: /jqgrid
func (action *Action) Jqgrid(r *ghttp.Request) {
form := base.NewForm(r.GetMap())
page, err := menu.Page(&form)
if err != nil {
glog.Error("jqgrid error", err)
base.Error(r, err.Error())
}
r.Response.WriteJson(g.Map{
"page": form.Page,
"rows": page,
"total": form.TotalPage,
"records": form.TotalSize,
})
}