package handler import ( "context" "dashoo.cn/common_definition/admin/menu_def" "dashoo.cn/common_definition/comm_def" "dashoo.cn/opms_libary/myerrors" "github.com/gogf/gf/util/gconv" "github.com/gogf/gf/util/gvalid" "dashoo.cn/micro/app/model" "dashoo.cn/micro/app/service" ) type MenuHandler struct{} // GetList 获取列表 func (h *MenuHandler) GetList(ctx context.Context, req *menu_def.SelectReq, rsp *comm_def.CommonMsg) error { menuService, err := service.NewMenuService(ctx) if err != nil { return err } list, err := menuService.GetList(req) if err != nil { return err } rsp.Data = list return nil } // GetEntityById 详情 func (h *MenuHandler) GetEntityById(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error { // 参数校验 if req.Id == 0 { return myerrors.TipsError("请求参数不存在。") } menuService, err := service.NewMenuService(ctx) if err != nil { return err } entity, err := menuService.GetEntity(req.Id) if err != nil { return err } rsp.Data = entity return nil } // Create 添加 func (h *MenuHandler) Create(ctx context.Context, req *model.SysMenuReq, rsp *comm_def.CommonMsg) error { // 检查请求参数 if v := gvalid.CheckStruct(ctx, req, nil); v != nil { return v } menuService, err := service.NewMenuService(ctx) if err != nil { return err } id, err := menuService.Create(req) if err != nil { return err } rsp.Data = gconv.String(id) return nil } // UpdateById 编辑 func (h *MenuHandler) UpdateById(ctx context.Context, req *model.SysMenuReq, rsp *comm_def.CommonMsg) error { // 参数校验 if req.Id == 0 { return myerrors.TipsError("请求参数不存在。") } // 检查请求参数 if v := gvalid.CheckStruct(ctx, req, nil); v != nil { return v } menuService, err := service.NewMenuService(ctx) if err != nil { return err } err = menuService.UpdateById(req) return err } // DeleteById 删除菜单 func (h *MenuHandler) DeleteById(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error { menuService, err := service.NewMenuService(ctx) if err != nil { return err } err = menuService.Delete(req.Id) return err } // GetRoleMenuIds 根据角色获取菜单 //func (o *MenuHandler) GetRoleMenuIds(ctx context.Context, req *menu_def.RoleIdReq, rsp *comm_def.CommonMsg) error { // menuService, err := service.NewMenuService(ctx) // if err != nil { // return err // } // // entity, err := menuService.GetRoleMenuIds(req.RoleId) // if err != nil { // return err // } // rsp.Data = entity // return nil //} // GetMenuTree 获取菜单树 isAll获取完整菜单树 func (h *MenuHandler) GetMenuTree(ctx context.Context, req map[string]interface{}, rsp *comm_def.CommonMsg) error { menuService, err := service.NewMenuService(ctx) if err != nil { return err } isAll := false if val, ok := req["isAll"]; ok && val == "all" { isAll = true } var list interface{} if menuService.GetCxtUserName() == "dashoo" || isAll { list, err = menuService.GetMenuTree(isAll) } else { userService, _ := service.NewUserService(ctx) userRoles, _ := userService.GetUserRoleIds(userService.GetCxtUserId()) list, err = menuService.GetUserRoleMenuTree(userRoles) } if err != nil { return err } rsp.Data = list return nil }