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 成员方法
}
}