| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- package api
- import (
- "gfast/app/common/global"
- CommService "gfast/app/common/service"
- "gfast/app/system/model"
- "gfast/app/system/service"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- "github.com/gogf/gf/util/gvalid"
- )
- type authRule struct {
- SystemBase
- }
- var AuthRule = new(authRule)
- func (c *authRule) MenuList(r *ghttp.Request) {
- var (
- req *model.SysAuthRuleReqSearch
- listEntities []*model.SysAuthRuleInfoRes
- err error
- )
- if err := r.Parse(&req); err != nil {
- c.FailJsonExit(r, err.Error())
- }
- listEntities, err = service.Rule.GetMenuListSearch(req)
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- list := make([]*model.SysAuthRuleTreeRes, 0, len(listEntities))
- if !req.IsEmpty() {
- for _, menu := range listEntities {
- list = append(list, &model.SysAuthRuleTreeRes{
- SysAuthRuleInfoRes: menu,
- })
- }
- } else {
- list = service.Rule.GetMenuListTree(0, listEntities)
- }
- c.SusJsonExit(r, g.Map{
- "list": list,
- })
- }
- func (c *authRule) GetMenus(r *ghttp.Request) {
- listEntities, err := service.Rule.GetIsMenuList()
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- c.SusJsonExit(r, g.Map{
- "parentList": listEntities,
- })
- }
- func (c *authRule) AddMenuPost(r *ghttp.Request) {
- var menu *model.MenuReq
- if err := r.Parse(&menu); err != nil {
- c.FailJsonExit(r, err.(gvalid.Error).Current().Error())
- }
- //判断菜单规则是否存在
- if !service.Rule.CheckMenuNameUnique(menu.Name, 0) {
- c.FailJsonExit(r, "菜单规则名称已经存在")
- }
- //判断路由是否已经存在
- if !service.Rule.CheckMenuPathUnique(menu.Path, 0) {
- c.FailJsonExit(r, "路由地址已经存在")
- }
- err, _ := service.Rule.AddMenu(menu)
- if err != nil {
- g.Log().Error(err)
- c.FailJsonExit(r, "添加菜单失败")
- }
- CommService.Cache.New().RemoveByTag(global.SysAuthTag)
- c.SusJsonExit(r, "添加菜单成功")
- }
- func (c *authRule) ModelOptions(r *ghttp.Request) {
- module := r.GetString("module")
- models, err := service.Rule.ModelOptions(module)
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- c.SusJsonExit(r, models)
- }
- func (c *authRule) GetMenu(r *ghttp.Request) {
- id := r.GetUint64("menuId")
- menuEntity, err := service.Rule.One(id)
- if err != nil {
- g.Log().Error(err)
- c.FailJsonExit(r, err.Error())
- }
- listEntities, err := service.Rule.GetIsMenuList()
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- list := service.Rule.ParentSonSort(listEntities, 0)
- var models []*model.SysModelInfo
- if menuEntity.ModuleType != "" {
- models, err = service.Rule.ModelOptions(menuEntity.ModuleType)
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- }
- c.SusJsonExit(r, g.Map{
- "parentList": list,
- "menu": menuEntity,
- "modelOptions": models,
- })
- }
- func (c *authRule) EditPost(r *ghttp.Request) {
- id := r.GetInt("menuId")
- menu := new(model.MenuReq)
- if err := r.Parse(menu); err != nil {
- c.FailJsonExit(r, err.Error())
- }
- //判断菜单规则是否存在
- if !service.Rule.CheckMenuNameUnique(menu.Name, id) {
- c.FailJsonExit(r, "菜单规则名称已经存在")
- }
- //判断路由是否已经存在
- if !service.Rule.CheckMenuPathUnique(menu.Path, id) {
- c.FailJsonExit(r, "路由地址已经存在")
- }
- err, _ := service.Rule.EditMenu(menu, id)
- if err != nil {
- g.Log().Error(err)
- c.FailJsonExit(r, "修改菜单失败")
- }
- CommService.Cache.New().RemoveByTag(global.SysAuthTag)
- c.SusJsonExit(r, "修改菜单成功")
- }
- func (c *authRule) DeleteMenu(r *ghttp.Request) {
- ids := r.GetInts("ids")
- if len(ids) == 0 {
- c.FailJsonExit(r, "删除失败,参数错误")
- }
- err := service.Rule.DeleteMenuByIds(ids)
- if err != nil {
- g.Log().Error(err)
- c.FailJsonExit(r, "删除失败")
- }
- CommService.Cache.New().RemoveByTag(global.SysAuthTag)
- c.SusJsonExit(r, "删除成功")
- }
|