using Dapper; using Estsh.Core.Dapper; using Estsh.Core.Model.Result; using Estsh.Core.Models; using Estsh.Core.Repository.IRepositories; using Estsh.Core.Util; using System.Collections; using System.Data; using System.Text; /*************************************************************************************************** * * 更新人:sitong.dong * 描述:菜单模块数据库访问类 * 修改时间:2022.06.22 * 修改日志:系统迭代升级 * **************************************************************************************************/ namespace Estsh.Core.Repositories { /// /// 处理菜单模块的业务数据 /// public class PictureDefineRepository : BaseRepository, IPictureDefineRepository { public PictureDefineRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } #region 成员方法 /// /// 根据登录账号获取菜单列表 /// /// /// public List getListByUser(int empId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT m.* "); SqlStringBuilder.Append("FROM sys_web_menu m "); SqlStringBuilder.Append(" JOIN sys_role_privliege rp ON m.menu_id = rp.fun_name AND rp.program = 'web' "); SqlStringBuilder.Append(" JOIN sys_role_emp re ON rp.role_id = re.role_id "); SqlStringBuilder.Append("WHERE re.emp_id = @emp_id AND m.enabled = 'Y' "); DynamicParameters htParams = new DynamicParameters(); htParams.Add("@emp_id", empId); List result = dbConn.Query(SqlStringBuilder.ToString(), htParams).ToList(); return result; } } /// /// 根据登录账号获取首页菜单列表 /// /// /// public Hashtable getHomeMenuListByUser(int empId, string menuId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); Hashtable result = new Hashtable(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT m.* "); SqlStringBuilder.Append("FROM sys_web_menu m "); SqlStringBuilder.Append(" JOIN sys_role_privliege rp ON m.menu_id = rp.fun_name "); SqlStringBuilder.Append(" AND rp.program = 'web' "); SqlStringBuilder.Append(" JOIN sys_role_emp re ON rp.role_id = re.role_id "); SqlStringBuilder.Append("WHERE re.emp_id = @emp_id "); SqlStringBuilder.Append(" AND m.enabled = 'Y' "); SqlStringBuilder.Append(" AND m.parent_id = 0 "); SqlStringBuilder.Append(" AND m.menu_id <> 0 "); SqlStringBuilder.Append(" AND m.menu_id = @menu_id "); Hashtable htParams = new Hashtable(); htParams.Add("@emp_id", empId); htParams.Add("@menu_id", menuId); List dataList = dbConn.Query(SqlStringBuilder.ToString(), htParams).ToList(); result.Add("dataList", dataList); return result; } } /// /// 根据登录账号获取Main页主菜单列表 /// /// /// public List getMainMenuListByUser(int empId, string menuId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT m.* "); SqlStringBuilder.Append("FROM sys_web_menu m "); SqlStringBuilder.Append(" JOIN sys_role_privliege rp ON m.menu_id = rp.fun_name "); SqlStringBuilder.Append(" AND rp.program = 'web' "); SqlStringBuilder.Append(" JOIN sys_role_emp re ON rp.role_id = re.role_id "); SqlStringBuilder.Append("WHERE re.emp_id = @emp_id "); SqlStringBuilder.Append(" AND m.enabled = 'Y' "); SqlStringBuilder.Append(" AND m.parent_id = @menu_id "); SqlStringBuilder.Append("ORDER BY m.sort_num "); Hashtable htParams = new Hashtable(); htParams.Add("@emp_id", empId); htParams.Add("@menu_id", menuId == null || menuId.Trim().Equals("") ? "-1" : menuId); List dataList = dbConn.Query(SqlStringBuilder.ToString(), htParams).ToList(); return dataList; } } /// /// 根据分页条件获取分页数据列表 /// public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); Hashtable result = new Hashtable(); DynamicParameters parameters = new DynamicParameters(); parameters.Add( "@TotalCount", 100, DbType.Int32, ParameterDirection.Output); parameters.Add( "@TotalPage", 100, DbType.Int32, ParameterDirection.Output); parameters.Add( "@Table", "g_sn_picture a left join sys_terminal b on a.terminal_id=b.terminal_id "); parameters.Add( "@Column", "a.serial_number,a.file_path,terminal_name,a.create_time,a.enabled "); parameters.Add( "@OrderColumn", OrderBy); parameters.Add( "@GroupColumn", ""); parameters.Add( "@PageSize", PageSize); parameters.Add( "@CurrentPage", PageIndex); parameters.Add( "@Group", 0); parameters.Add( "@Condition", strWhere); List depts = dbConn.Query("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", depts); result.Add("totalCount", parameters.Get("@TotalCount")); return result; } } #endregion 成员方法 } }