using Estsh.Core.Dapper; using Estsh.Core.IRepositories; using Estsh.Core.IServices; using Estsh.Core.Model.Result; using Estsh.Core.Models; using Estsh.Core.Util; using System.Collections; using System.Text; /*************************************************************************************************** * * 更新人:sitong.dong * 描述:菜单模块业务类 * 修改时间:2022.06.22 * 修改日志:系统迭代升级 * **************************************************************************************************/ namespace Estsh.Core.Services { /// /// 菜单业务处理类 /// public class MenuService : BaseService, IMenuService { private readonly IMenuRepository repository; public MenuService(IMenuRepository _repository) : base(_repository) { repository = _repository; } /// /// 获取菜单列表 /// /// /// /// public List getMenuList(SysEmp userInfo, String rootPath) { List menus = repository.getListByUser(userInfo.EmpId); List treeNodes = new List(); TreeNode node; foreach (var menu in menus) { node = new TreeNode(); node.id = menu.MenuId.ToString(); node.name = menu.Name != null ? menu.Name : ""; node.parentId = menu.ParentId.ToString(); node.icon = menu.IconUrl != null ? menu.IconUrl : ""; if (node.parentId.Equals("10")) { node.iconSkin = menu.IconSkin != null ? menu.IconSkin : ""; } else { node.tabUrl = rootPath + (menu.Url != null ? menu.Url : ""); } node.target = "frmright"; treeNodes.Add(node); } return treeNodes; } /// /// 获取首页菜单列表 /// /// /// public Hashtable getHomeMenuList(SysEmp userInfo, string menuId) { Hashtable result = new Hashtable(); result = repository.getHomeMenuListByUser(userInfo.EmpId, menuId); return result; } /// /// 获取Main页主菜单列表 /// /// /// public Hashtable getMainMenuList(SysEmp userInfo, string menuId) { List menus = repository.getMainMenuListByUser(userInfo.EmpId, menuId); Hashtable result = new Hashtable(); List dataList = new List(); Hashtable node; foreach (var menu in menus) { node = new Hashtable(); node.Add("id", menu.MenuId); node.Add("name", menu.Name != null ? menu.Name : ""); node.Add("className", menu.IconSkin != null ? menu.IconSkin : ""); dataList.Add(node); } result.Add("list", dataList); return result; } /// /// 获取Main页子菜单列表 /// /// /// public Hashtable getChildMenuList(SysEmp userInfo, string menuId,string rootPath) { List menus = repository.getMainMenuListByUser(userInfo.EmpId, menuId); Hashtable result = new Hashtable(); List treeNodes = new List(); TreeNode node; foreach (var menu in menus) { node = new TreeNode(); node.id = menu.MenuId.ToString(); node.name = menu.Name != null ? menu.Name : ""; node.parentId = menu.ParentId.ToString(); node.icon = menu.IconUrl != null ? menu.IconUrl : ""; node.tabUrl = rootPath + (menu.Url != null ? menu.Url : ""); node.target = "frmright"; treeNodes.Add(node); } result.Add("treeNodes", treeNodes); return result; } /// /// 获取非tab的Main页子菜单列表 /// /// /// public Hashtable getNoNTabChildMenuList(SysEmp userInfo, string menuId, string rootPath) { List menus = repository.getMainMenuListByUser(userInfo.EmpId, menuId); Hashtable result = new Hashtable(); List treeNodes = new List(); TreeNode node; foreach (var menu in menus) { node = new TreeNode(); node.id = menu.MenuId.ToString(); node.name = menu.Name != null ? menu.Name : ""; node.parentId = menu.ParentId.ToString(); node.icon = menu.IconUrl != null ? menu.IconUrl : ""; node.url = rootPath + (menu.Url != null ? menu.Url : ""); node.target = "frmright"; treeNodes.Add(node); } result.Add("treeNodes", treeNodes); return result; } public Hashtable getNoNTabChildMenuList1(SysEmp userInfo, string menuId, string rootPath) { List menus = repository.getMainMenuListByUser(userInfo.EmpId, menuId); Hashtable result = new Hashtable(); List treeNodes = new List(); TreeNode node; foreach (var menu in menus) { node = new TreeNode(); node.id = menu.MenuId.ToString(); node.name = menu.Name != null ? menu.Name : ""; node.parentId = menu.ParentId.ToString(); node.icon = menu.IconUrl != null ? menu.IconUrl : ""; node.url = rootPath + (menu.Url != null ? menu.Url : ""); node.target = "frmright"; treeNodes.Add(node); } result.Add("treeNodes", treeNodes); return result; } /// /// 根据用户,访问菜单连接,操作类型,获取操作权限 /// /// /// /// /// public List getOpMenuList(SysEmp userInfo, string url, string opType, string gridName) { return repository.getOpMenuListByUser(userInfo.EmpId, url, opType, gridName); } /// /// 根据用户,访问菜单连接,操作类型,获取小尺寸工具栏的操作权限 /// /// /// /// /// public string getMinToolbar(SysEmp userInfo, string url, string opType) { Hashtable result = new Hashtable(); StringBuilder sqlToolbar = new StringBuilder(); List programFunOps = repository.getOpMenuListByUser(userInfo.EmpId, url, opType, null); foreach (var item in programFunOps) { sqlToolbar.Append(""); sqlToolbar.Append(item.OpName); sqlToolbar.Append(""); sqlToolbar.Append("
"); } sqlToolbar.Append("
"); return sqlToolbar.ToString(); } /// /// 根据分页条件获取分页菜单数据 /// /// /// /// /// /// public Hashtable getMenuListByPage(String menuName, Pager pager, String direction, String sort, String enabled) { Hashtable result = new Hashtable(); String strWhere = " 1=1 "; if (menuName != null && !menuName.Trim().Equals("")) { strWhere += " and name like '%" + menuName.Trim() + "%'"; } if (enabled != null && !enabled.Trim().Equals("")) { strWhere += " and enabled = '" + enabled + "'"; } String orderBy = ""; if (sort != null && !"".Equals(sort.Trim())) { orderBy += typeof(SysWebMenu).GetEntityColumnName(sort.Trim()) + " " + direction; } else { orderBy += typeof(SysWebMenu).GetEntityColumnName("MenuId") + " " + direction; } result = repository.getListByPage(pager.pageSize, pager.pageNo, strWhere, orderBy); return result; } /// /// 获取下拉框中的菜单数据 /// /// public List getSelectMenu() { return repository.getSelectMenu(); } /// /// 保存菜单数据 /// /// /// public int saveMenu(SysWebMenu menu) { return repository.saveMenu(menu); } /// /// 更新菜单数据 /// /// /// public int updateMenu(SysWebMenu menu) { return repository.updateMenu(menu); } /// /// 查看菜单详情 /// /// /// public List getMenuDetail(String menuId) { menuId = "menu_id = " + menuId; return repository.getList(menuId, ""); } /// /// 删除菜单 /// /// /// public int deleteMenu(String ids) { String[] idArray = ids.Split(','); int count = 0; foreach (String id in idArray) { if (!"".Equals(id)) { count += repository.deleteMenu(id); } } return count; } /// /// 启用 /// /// /// public int EnableData(String ids) { ids = ids.Substring(0, ids.Length - 1); return this.repository.EnableData(ids); } /// /// 禁用 /// /// /// public int DisableData(String ids) { ids = ids.Substring(0, ids.Length - 1); return this.repository.DisableData(ids); } } }