You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
6.7 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
{
/// <summary>
/// 处理菜单模块的业务数据
/// </summary>
public class PictureDefineRepository : BaseRepository<GSnPicture>, IPictureDefineRepository
{
public PictureDefineRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
#region 成员方法
/// <summary>
/// 根据登录账号获取菜单列表
/// </summary>
/// <param name="empId"></param>
/// <returns></returns>
public List<SysWebMenu> 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<SysWebMenu> result = dbConn.Query<SysWebMenu>(SqlStringBuilder.ToString(), htParams).ToList();
return result;
}
}
/// <summary>
/// 根据登录账号获取首页菜单列表
/// </summary>
/// <param name="empId"></param>
/// <returns></returns>
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<SysWebMenu> dataList = dbConn.Query<SysWebMenu>(SqlStringBuilder.ToString(), htParams).ToList();
result.Add("dataList", dataList);
return result;
}
}
/// <summary>
/// 根据登录账号获取Main页主菜单列表
/// </summary>
/// <param name="empId"></param>
/// <returns></returns>
public List<SysWebMenu> 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<SysWebMenu> dataList = dbConn.Query<SysWebMenu>(SqlStringBuilder.ToString(), htParams).ToList();
return dataList;
}
}
/// <summary>
/// 根据分页条件获取分页数据列表
/// </summary>
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<GSnPicture> depts = dbConn.Query<GSnPicture>("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", depts);
result.Add("totalCount", parameters.Get<int>("@TotalCount"));
return result;
}
}
#endregion 成员方法
}
}