generated from root/miduo_server
170 lines
3.4 KiB
Go
170 lines
3.4 KiB
Go
|
|
package role
|
|
|
|
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/role"
|
|
"gmanager/library/base"
|
|
)
|
|
|
|
type Action struct {
|
|
base.BaseRouter
|
|
}
|
|
|
|
// path: /index
|
|
func (action *Action) Index(r *ghttp.Request) {
|
|
tplFile := "pages/system/role_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 := role.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")
|
|
_, err := role.Delete(id, base.GetUser(r).Id)
|
|
if err != nil {
|
|
base.Fail(r, err.Error())
|
|
}
|
|
|
|
base.Succ(r, "")
|
|
}
|
|
|
|
// path: /save
|
|
func (action *Action) Save(r *ghttp.Request) {
|
|
request := new(role.Request)
|
|
err := gconv.Struct(r.GetMap(), request)
|
|
if err != nil {
|
|
glog.Error("save struct error", err)
|
|
base.Error(r, "save error")
|
|
}
|
|
|
|
menus := r.GetString("menus")
|
|
|
|
request.UserId = base.GetUser(r).Id
|
|
_, err = role.Save(request)
|
|
if err != nil {
|
|
base.Fail(r, "保存失败")
|
|
}
|
|
|
|
// 保存菜单信息
|
|
role.SaveRoleMenu(request.Id, menus)
|
|
|
|
base.Succ(r, "")
|
|
}
|
|
|
|
// path: /list
|
|
func (action *Action) List(r *ghttp.Request) {
|
|
form := base.NewForm(r.GetMap())
|
|
|
|
list, err := role.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 := role.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 := role.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,
|
|
})
|
|
}
|
|
|
|
// 角色绑定菜单信息
|
|
func (action *Action) Info(r *ghttp.Request) {
|
|
roleId := r.GetInt("roleId")
|
|
if roleId == 0 {
|
|
base.Fail(r, "参数错误")
|
|
}
|
|
form := base.NewForm(r.GetMap())
|
|
form.SetParam("roleId", gconv.String(roleId))
|
|
|
|
// 选择的列表
|
|
roleMenuList, err := role.ListRoleMenu(&form)
|
|
if err != nil {
|
|
glog.Error("info error", err)
|
|
base.Error(r, err.Error())
|
|
}
|
|
|
|
menuSlice := g.SliceStr{}
|
|
for _, roleMenu := range roleMenuList {
|
|
// 如果是父级菜单不加入集合。防止在未全选子菜单的时候,选择父级菜单导致前端页面子集菜单全选的情况
|
|
count, _ := g.DB("default").GetCount("SELECT * FROM sys_menu WHERE parent_id = ?", roleMenu.MenuId)
|
|
if count == 0 {
|
|
menuSlice = append(menuSlice, gconv.String(roleMenu.MenuId))
|
|
}
|
|
}
|
|
|
|
base.Succ(r, g.Map{
|
|
"roleId": roleId,
|
|
"menus": menuSlice,
|
|
})
|
|
}
|
|
|
|
// 角色绑定菜单
|
|
func (action *Action) MenuSave(r *ghttp.Request) {
|
|
roleId := r.GetInt("roleId")
|
|
menuIds := r.GetString("menuIds")
|
|
if roleId == 0 || menuIds == "" {
|
|
base.Fail(r, "参数错误")
|
|
}
|
|
|
|
err := role.SaveRoleMenu(roleId, menuIds)
|
|
if err != nil {
|
|
glog.Error("MenuSave error", err)
|
|
base.Error(r, err.Error())
|
|
}
|
|
|
|
base.Succ(r, "")
|
|
}
|