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); }