/// <summary> /// 获取员工菜单权限 /// </summary> /// <param name="staffId"></param> /// <returns></returns> public IEnumerable <SystemMenuRoleViewModel> FindStaffMenuRole(int staffId) { var query = (from a in _systemStaffRoleRepository.Find() join b in _systemRoleRepository.Find() on a.RoleId equals b.Id into temp from bb in temp.DefaultIfEmpty() join c in _systemRoleRulesRepository.Find() on bb.Id equals c.RoleId into temp2 from cc in temp2.DefaultIfEmpty() join d in _systemMenuRepository.Find() on cc.MenuId equals d.Id into temp3 from dd in temp3.DefaultIfEmpty() where a.StaffId == staffId && cc.Id != null && dd.Id != null orderby dd.MenuSort ascending select new SystemMenuRoleViewModel { Id = dd.Id, Level = dd.Level, MenuButtonId = dd.MenuButtonId, MenuIcon = dd.MenuIcon, MenuName = dd.MenuName, MenuSort = dd.MenuSort, MenuUrl = dd.MenuUrl, ParentId = dd.ParentId, PageTitle = dd.PageTitle }).Distinct(); var list = query.ToList(); return(list); }
public BusinessBaseViewModel <string> Insert(AddSystemMenuRequestModel requestModel) { var res = new BusinessBaseViewModel <string>() { Status = ResponseStatus.Fail }; if (requestModel == null) { res.ErrorMessage = "参数错误"; return(res); } if (requestModel.MenuName.IsNullOrWhiteSpace()) { res.ErrorMessage = "菜单名称不能为空"; return(res); } if (requestModel.Level <= 0) { res.ErrorMessage = "菜单层级不能为空"; return(res); } var menuCode = 1001; var query = _systemMenuRepository.Find(x => x.ParentCode == requestModel.ParentCode); if (query.Any()) { var maxCode = query.Max(x => x.MenuCode); menuCode = maxCode + 1; } else { menuCode = requestModel.ParentCode * 100 + 1; } //菜单导行 var pageTitle = ""; if (!requestModel.MenuUrl.IsNullOrWhiteSpace() && requestModel.Level != 1) { var len = requestModel.Level - 2; var code = new int[len + 1]; code[len] = requestModel.ParentCode; var num = 1; for (var i = 0; i < len; i++) { num = num * 100; code[i] = requestModel.ParentCode / num; } var queryMenuName = _systemMenuRepository.Find(x => code.Contains(x.MenuCode)).OrderBy(x => x.Level).Select(x => x.MenuName).ToList(); if (queryMenuName.Any()) { pageTitle = string.Join("-", queryMenuName) + "-" + requestModel.MenuName; } } var model = new SystemMenu() { MenuCode = menuCode, Level = requestModel.Level, MenuDesc = requestModel.MenuDesc, MenuIcon = requestModel.MenuIcon, MenuName = requestModel.MenuName, MenuSort = requestModel.MenuSort, MenuUrl = requestModel.MenuUrl, PageTitle = pageTitle, ParentId = requestModel.ParentId, ParentCode = requestModel.ParentCode, MenuButtonId = requestModel.MenuButtonId, Enabled = requestModel.Enabled, CreateTime = DateTime.Now, ModifyTime = DateTime.Now }; _systemMenuRepository.Insert(model); _systemMenuRepository.SaveChanges(); res.Status = ResponseStatus.Success; return(res); }