using Dapper;
using Estsh.Core.Dapper;
using Estsh.Core.IRepositories;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using SqlSugar;
using System.Data;
using System.Security.Policy;
using System.Text;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:公共数据类,可以将一些常用的公共方法放在此类中,供其他模块调用。
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Repositories
{
///
/// 公共数据访问层
///
public class CommonRepository : BaseRepository, ICommonRepository
{
public CommonRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
///
/// 获取工厂信息,用于下拉列表框填充数据
///
///
public List getFactoryInfo()
{
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
//{
// dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT factory_id as [value],factory_name as [key] from sys_factory where enabled = 'Y'");
//List lists = SqlSugarDbContext.Ado.SqlQuery(strSql.ToString()).ToList();
List lists = SqlSugarDbContext.SqlQueryable(strSql.ToString()).ToList();
return lists;
//}
}
///
/// 获取部门信息,用于下拉列表框填充数据
///
///
public List getDeptInfo()
{
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
//{
// dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT dept_id as [value],dept_name as [key] from sys_dept where enabled = 'Y'");
List lists = SqlSugarDbContext.SqlQueryable(strSql.ToString()).ToList();
return lists;
//}
}
///
/// 获取班别信息,用于下拉列表框填充数据
///
///
public List getShiftInfo()
{
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
//{
// dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT shift_id as [value],shift_name as [key] from sys_shift where enabled = 'Y'");
List lists = SqlSugarDbContext.SqlQueryable(strSql.ToString()).ToList();
return lists;
//}
}
///
/// 获取枚举表中的数据,用于下拉列表框填充数据
///
///
public List GetSysEnum(String enumType)
{
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
//{
//dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT enum_value as [value],enum_desc as [key] from sys_enum where enum_type=@enum_type and enabled='Y' ");
List htParams = new List();
htParams.Add(new SugarParameter("@enum_type", enumType));
//List lists = SqlSugarDbContext.Ado.SqlQuery(strSql.ToString(), htParams).ToList();
List lists = SqlSugarDbContext.SqlQueryable(strSql.ToString()).AddParameters(htParams).ToList();
return lists;
//}
}
///
/// 获取供应商信息,用于下拉列表框填充数据
///
///
public List getVendorInfo()
{
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
//{
//dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT vendor_id as [value],vendor_name as [key] FROM sys_vendor WHERE enabled='Y' ORDER BY vendor_name");
List lists = SqlSugarDbContext.SqlQueryable(strSql.ToString()).ToList();
return lists;
//}
}
///
/// 获取项目名称信息,用于下拉列表框填充数据
///
///
public List getModelTypeInfo()
{
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
//{
// dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT type_id as [value],type_name as [key] FROM sys_model_type WHERE enabled='Y' ORDER BY type_name");
List lists = SqlSugarDbContext.SqlQueryable(strSql.ToString()).ToList();
return lists;
//}
}
///
/// 根据菜单url获取操作权限
///
///
///
public List getOpMenuList(string url, string opType, string gridName)
{
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
//{
// dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT DISTINCT op.op_name,op_class,op_method,op_params,op_type,op.sort_num ");
SqlStringBuilder.Append("FROM dbo.sys_program_fun_op op ");
SqlStringBuilder.Append(" JOIN dbo.sys_web_menu wm ON op.fun_name = wm.menu_id ");
SqlStringBuilder.Append("WHERE op.enabled = 'Y' ");
SqlStringBuilder.Append(" AND wm.url = @url ");
SqlStringBuilder.Append(" AND op.op_type = @opType ");
if (!String.IsNullOrEmpty(gridName))
{
SqlStringBuilder.Append(" AND op.grid_name = @gridName ");
}
SqlStringBuilder.Append(" ORDER BY op.sort_num ");
List htParams = new List();
htParams.Add(new SugarParameter("@url", url));
htParams.Add(new SugarParameter("@opType", opType));
if (!String.IsNullOrEmpty(gridName))
{
htParams.Add(new SugarParameter("@gridName", gridName));
}
//DynamicParameters htParams = new DynamicParameters();
// htParams.Add("@url", url);
// htParams.Add("@opType", opType);
// if (!String.IsNullOrEmpty(gridName))
// {
// htParams.Add("@gridName", gridName);
// }
List lists = SqlSugarDbContext.SqlQueryable(SqlStringBuilder.ToString()).AddParameters(htParams).ToList();
return lists;
//}
}
///
/// 更加用户获取和菜单路径获取操作权限
///
///
///
///
public List getOpMenuListByUser(int empId, string url, string opType, string gridName)
{
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
//{
// dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT DISTINCT op.op_name,op_class,op_method,op_params,op_type,op.sort_num ");
SqlStringBuilder.Append("FROM dbo.sys_program_fun_op op ");
SqlStringBuilder.Append(" JOIN dbo.sys_role_op_privliege rop ON op.fun_name = rop.menu_id ");
SqlStringBuilder.Append(" AND op.ruid = rop.op_id ");
SqlStringBuilder.Append(" JOIN dbo.sys_role_emp re ON rop.role_id = re.role_id ");
SqlStringBuilder.Append(" JOIN dbo.sys_web_menu wm ON op.fun_name = wm.menu_id ");
SqlStringBuilder.Append("WHERE re.emp_id = @emp_id ");
SqlStringBuilder.Append(" AND op.enabled = 'Y' ");
SqlStringBuilder.Append(" AND wm.url = @url ");
SqlStringBuilder.Append(" AND op.op_type = @opType ");
if (!String.IsNullOrEmpty(gridName))
{
SqlStringBuilder.Append(" AND op.grid_name = @gridName ");
}
SqlStringBuilder.Append(" ORDER BY op.sort_num ");
List htParams = new List();
htParams.Add(new SugarParameter("@emp_id", empId));
htParams.Add(new SugarParameter("@url", url));
htParams.Add(new SugarParameter("@opType", opType));
if (!String.IsNullOrEmpty(gridName))
{
htParams.Add(new SugarParameter("@gridName", gridName));
}
//DynamicParameters htParams = new DynamicParameters();
// htParams.Add("@emp_id", empId);
// htParams.Add("@url", url);
// htParams.Add("@opType", opType);
// if (!String.IsNullOrEmpty(gridName))
// {
// htParams.Add("@gridName", gridName);
// }
List lists = SqlSugarDbContext.Ado.SqlQuery(SqlStringBuilder.ToString(), htParams).ToList();
return lists;
//}
}
///
/// 根据人员id 工厂id,通过权限 找到home页的菜单
///
///
///
///
public List GetWebMenus(int empid ,int factoryId)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select a.name,a.menu_id,a.url ,a.icon_url,A.sort_num from dbo.sys_web_menu as A (nolock) ");
SqlStringBuilder.Append("INNER join dbo.sys_role_privliege as B (nolock) on a.menu_id=b.fun_name ");
SqlStringBuilder.Append("INNER join sys_role_emp as D (nolock) on d.role_id=b.role_id ");
SqlStringBuilder.Append("INNER join sys_emp as E (nolock) on e.emp_id=d.emp_id ");
SqlStringBuilder.Append("where e.emp_id='"+ empid + "' AND E.factory_id='"+ factoryId + "' ");
SqlStringBuilder.Append(" AND a.parent_id=0 AND a.sort_num>0 AND a.name!='PDA' AND a.enabled='Y' order by A.sort_num ");
List result = dbConn.Query(SqlStringBuilder.ToString()).ToList();
return result;
}
}
}
}