|
|
using Dapper;
|
|
|
using Estsh.Core.Dapper;
|
|
|
using Estsh.Core.IRepositories;
|
|
|
using Estsh.Core.Model.Result;
|
|
|
using Estsh.Core.Models;
|
|
|
using System.Collections;
|
|
|
using System.Data;
|
|
|
using System.Text;
|
|
|
|
|
|
/***************************************************************************************************
|
|
|
*
|
|
|
* 更新人:sitong.dong
|
|
|
* 描述:用户管理数据库访问类
|
|
|
* 修改时间:2022.06.22
|
|
|
* 修改日志:系统迭代升级
|
|
|
*
|
|
|
**************************************************************************************************/
|
|
|
namespace Estsh.Core.Repositories
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 数据库访问类,处理用户管理模块的数据
|
|
|
/// </summary>
|
|
|
public class UserRepository : BaseRepository<SysEmp>, IUserRepository
|
|
|
{
|
|
|
public UserRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
|
|
|
{
|
|
|
}
|
|
|
#region 系统登录
|
|
|
/// <summary>
|
|
|
/// 根据条件获取用户信息
|
|
|
/// </summary>
|
|
|
public SysEmp getUserInfo(string strWhere)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT * from sys_emp ");
|
|
|
if (strWhere.Trim() != "")
|
|
|
{
|
|
|
strSql.Append(" where enabled = 'Y' " + strWhere);
|
|
|
}
|
|
|
var user = dbConn.QueryFirstOrDefault<SysEmp>(strSql.ToString());
|
|
|
return user;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 用户管理
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据分页条件获取用户列表数据
|
|
|
/// </summary>
|
|
|
/// <param name="PageSize"></param>
|
|
|
/// <param name="PageIndex"></param>
|
|
|
/// <param name="strWhere"></param>
|
|
|
/// <param name="OrderBy"></param>
|
|
|
/// <returns></returns>
|
|
|
public Hashtable getUserListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
|
|
|
Hashtable result = new Hashtable();
|
|
|
StringBuilder column = new StringBuilder(1024);
|
|
|
column.Append("emp_id,");
|
|
|
column.Append("emp_no,");
|
|
|
column.Append("emp_name,");
|
|
|
column.Append("(SELECT f.factory_name from sys_factory f WHERE f.factory_id = emp.factory_id) as factory,");
|
|
|
column.Append("(SELECT d.dept_name from sys_dept d WHERE d.dept_id = emp.dept_id) as dept,");
|
|
|
column.Append("(SELECT s.shift_name from sys_shift s WHERE s.shift_id = emp.shift_id) as shift,");
|
|
|
column.Append("enabled ");
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add( "@TotalCount", 100, DbType.Int32, ParameterDirection.Output);
|
|
|
parameters.Add( "@TotalPage", 100, DbType.Int32, ParameterDirection.Output);
|
|
|
parameters.Add( "@Table", "sys_emp emp");
|
|
|
parameters.Add( "@Column", column.ToString());
|
|
|
parameters.Add( "@OrderColumn", OrderBy);
|
|
|
parameters.Add( "@GroupColumn", "");
|
|
|
parameters.Add( "@PageSize", PageSize);
|
|
|
parameters.Add( "@CurrentPage", PageIndex);
|
|
|
parameters.Add( "@Group", 0);
|
|
|
parameters.Add( "@Condition", strWhere);
|
|
|
|
|
|
List<SysEmp> depts = dbConn.Query<SysEmp>("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
|
|
|
result.Add("dataList", depts);
|
|
|
result.Add("totalCount", parameters.Get<int>("@TotalCount"));
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据用户ID获取用户不拥有的角色数据
|
|
|
/// </summary>
|
|
|
/// <param name="emp_id"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<KeyValueResult> fromRoleList(String emp_id)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
|
|
|
if (emp_id != null && !"".Equals(emp_id.Trim()))
|
|
|
{
|
|
|
SqlStringBuilder.Append("SELECT r.role_id AS [value] ");
|
|
|
SqlStringBuilder.Append(" , r.role_name AS [key] ");
|
|
|
SqlStringBuilder.Append("FROM sys_role r ");
|
|
|
SqlStringBuilder.Append(" WHERE ");
|
|
|
SqlStringBuilder.Append(" NOT EXISTS (SELECT 1 FROM sys_role_emp re ");
|
|
|
SqlStringBuilder.Append(" WHERE r.role_id = re.role_id ");
|
|
|
SqlStringBuilder.Append(" AND re.emp_id = " + emp_id.Trim() + ") ");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SqlStringBuilder.Append("SELECT DISTINCT role_id as [value],role_name as [key] from sys_role where enabled = 'Y'");
|
|
|
}
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据用户ID,获取用户已经具有的角色数据
|
|
|
/// </summary>
|
|
|
/// <param name="emp_id"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<KeyValueResult> toRoleList(String emp_id)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
|
|
|
if (emp_id != null && !"".Equals(emp_id.Trim()))
|
|
|
{
|
|
|
strSql.Append("SELECT DISTINCT r.role_id as [value],r.role_name as [key] ");
|
|
|
strSql.Append(" from sys_role_emp re INNER JOIN sys_role r on re.role_id = r.role_id ");
|
|
|
strSql.Append(" where r.enabled = 'Y' AND re.emp_id = " + emp_id.Trim());
|
|
|
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return new List<KeyValueResult>();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据用户ID获取用户信息
|
|
|
/// </summary>
|
|
|
/// <param name="emp_id"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<SysEmp> getUserInfoById(String emp_id)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select emp_id,emp_no,emp_name as emp_name,shift_id as shiftId,factory_id,dept_id,enabled ");
|
|
|
strSql.Append(" from sys_emp where emp_id = @emp_id");
|
|
|
DynamicParameters param = new DynamicParameters();
|
|
|
param.Add("@emp_id", emp_id);
|
|
|
List<SysEmp> result = dbConn.Query<SysEmp>(strSql.ToString(),param).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//获取工厂信息
|
|
|
public List<SysFactory> getSelectFactory(int factoryID)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select * from sys_factory where factory_id=" + factoryID + " and Enabled = 'Y'");
|
|
|
List<SysFactory> result = dbConn.Query<SysFactory>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 插入用户数据
|
|
|
/// </summary>
|
|
|
/// <param name="htParams"></param>
|
|
|
/// <returns></returns>
|
|
|
public int saveUserInfo(SysEmp htParams,string roles)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strQuery = "select emp_id from sys_emp where emp_no = @emp_no";
|
|
|
DynamicParameters htQuery = new DynamicParameters();
|
|
|
htQuery.Add("@emp_no", htParams.EmpNo);
|
|
|
List<SysEmp> resultExistUser = dbConn.Query<SysEmp>(strQuery, htQuery).ToList();
|
|
|
|
|
|
if (resultExistUser.Count > 0)
|
|
|
{
|
|
|
return 2;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
List<string> sqlStrings = new List<string>();
|
|
|
List<DynamicParameters> parameters = new List<DynamicParameters>();
|
|
|
|
|
|
String createUserId = htParams.CreateUserId.ToString();
|
|
|
String[] roleArray = roles.Split(',');
|
|
|
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" INSERT INTO sys_emp(emp_no,emp_name,create_userid,create_time,enabled,shift_id,factory_id,dept_id) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@empNo,@empName,@createUserId,CONVERT(varchar(50), GETDATE(), 21), ");
|
|
|
SqlStringBuilder.Append(" @enabled,@shiftId,@factoryId,@deptId) ");
|
|
|
int insert = dbConn.Execute(SqlStringBuilder.ToString(), htParams);
|
|
|
|
|
|
if (insert > 0)
|
|
|
{
|
|
|
object emp_id = dbConn.ExecuteScalar(strQuery, htQuery);
|
|
|
|
|
|
SqlStringBuilder.Clear();
|
|
|
SqlStringBuilder.Append("INSERT INTO sys_role_emp(role_id,emp_id,enabled,create_userid,create_time) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@roleId,@emp_id,'Y',@createUserId,CONVERT(varchar(50), GETDATE(), 21)) ");
|
|
|
foreach (String roleId in roleArray)
|
|
|
{
|
|
|
DynamicParameters dyParams = new DynamicParameters();
|
|
|
dyParams.Add("@roleId", roleId);
|
|
|
dyParams.Add("@emp_id", emp_id);
|
|
|
dyParams.Add("@createUserId", createUserId);
|
|
|
sqlStrings.Add(SqlStringBuilder.ToString());
|
|
|
parameters.Add(dyParams);
|
|
|
}
|
|
|
int excResult = 0;
|
|
|
for (int i = 0; i < sqlStrings.Count; i++)
|
|
|
{
|
|
|
excResult = dbConn.Execute(sqlStrings[i], parameters[i]);
|
|
|
}
|
|
|
if (excResult==1)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 更新更新数据
|
|
|
/// </summary>
|
|
|
/// <param name="htParams"></param>
|
|
|
/// <returns></returns>
|
|
|
public int updateUserInfo(SysEmp htParams,string roles)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
List<string> sqlStrings = new List<string>();
|
|
|
List<SysEmp> parameters = new List<SysEmp>();
|
|
|
|
|
|
String updateUserId = htParams.UpdateUserId.ToString();
|
|
|
String emp_id = htParams.EmpId.ToString();
|
|
|
String[] roleArray = roles.Split(',');
|
|
|
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("UPDATE sys_emp ");
|
|
|
SqlStringBuilder.Append("SET ");
|
|
|
SqlStringBuilder.Append(" emp_name = @empName, ");
|
|
|
SqlStringBuilder.Append(" shift_id = @shiftId, ");
|
|
|
SqlStringBuilder.Append(" factory_id = @factoryId, ");
|
|
|
SqlStringBuilder.Append(" dept_id = @deptId, ");
|
|
|
SqlStringBuilder.Append(" enabled = @enabled, ");
|
|
|
SqlStringBuilder.Append(" update_userid = @updateUserId, ");
|
|
|
SqlStringBuilder.Append(" update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
SqlStringBuilder.Append("WHERE ");
|
|
|
SqlStringBuilder.Append(" emp_id = @empId ");
|
|
|
sqlStrings.Add(SqlStringBuilder.ToString());
|
|
|
parameters.Add(htParams);
|
|
|
|
|
|
SqlStringBuilder.Clear();
|
|
|
SqlStringBuilder.Append(" delete from sys_role_emp WHERE emp_id = @empId ");
|
|
|
htParams = new SysEmp();
|
|
|
htParams.EmpId=Convert.ToInt32(emp_id);
|
|
|
sqlStrings.Add(SqlStringBuilder.ToString());
|
|
|
parameters.Add(htParams);
|
|
|
|
|
|
SqlStringBuilder.Clear();
|
|
|
|
|
|
List<string> sqlStringsRole = new List<string>();
|
|
|
List<DynamicParameters> parametersRole = new List<DynamicParameters>();
|
|
|
SqlStringBuilder.Append("INSERT INTO sys_role_emp(role_id,emp_id,enabled,create_userid,create_time) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@roleId,@empId,'Y',@createUserId,CONVERT(varchar(50), GETDATE(), 21)) ");
|
|
|
foreach (String roleId in roleArray)
|
|
|
{
|
|
|
if (roleId != null && !"".Equals(roleId.Trim()))
|
|
|
{
|
|
|
DynamicParameters dyParams = new DynamicParameters();
|
|
|
dyParams.Add("@roleId", roleId);
|
|
|
dyParams.Add("@empId", emp_id);
|
|
|
dyParams.Add("@createUserId", updateUserId);
|
|
|
sqlStringsRole.Add(SqlStringBuilder.ToString());
|
|
|
parametersRole.Add(dyParams);
|
|
|
}
|
|
|
}
|
|
|
int excResult = 0;
|
|
|
for (int i = 0; i < sqlStrings.Count; i++)
|
|
|
{
|
|
|
excResult = dbConn.Execute(sqlStrings[i], parameters[i]);
|
|
|
}
|
|
|
for (int i = 0; i < sqlStringsRole.Count; i++)
|
|
|
{
|
|
|
excResult = dbConn.Execute(sqlStringsRole[i], parametersRole[i]);
|
|
|
}
|
|
|
if (excResult>0)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除用户数据
|
|
|
/// </summary>
|
|
|
/// <param name="ruid"></param>
|
|
|
/// <returns></returns>
|
|
|
public int deleteUser(String emp_id)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder delStr = new StringBuilder();
|
|
|
delStr.Append(" update sys_emp set Enabled='N' WHERE emp_id = @emp_id ");
|
|
|
delStr.Append(" update sys_role_emp set Enabled='N' WHERE emp_id = @emp_id1 ");
|
|
|
|
|
|
DynamicParameters htparams = new DynamicParameters();
|
|
|
htparams.Add("@emp_id", emp_id);
|
|
|
htparams.Add("@emp_id1", emp_id);
|
|
|
int result = dbConn.Execute(delStr.ToString(), htparams);
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//启用
|
|
|
public int EnableData(String ids)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder delStr = new StringBuilder();
|
|
|
delStr.Append(" update sys_emp set Enabled='Y' WHERE emp_id = @emp_id ");
|
|
|
delStr.Append(" update sys_role_emp set Enabled='Y' WHERE emp_id = @emp_id1 ");
|
|
|
|
|
|
DynamicParameters htparams = new DynamicParameters();
|
|
|
htparams.Add("@emp_id", ids);
|
|
|
htparams.Add("@emp_id1", ids);
|
|
|
int result = dbConn.Execute(delStr.ToString(), htparams);
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//禁用
|
|
|
public int DisableData(String ids)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder delStr = new StringBuilder();
|
|
|
delStr.Append(" update sys_emp set Enabled='N' WHERE emp_id = @emp_id ");
|
|
|
delStr.Append(" update sys_role_emp set Enabled='N' WHERE emp_id = @emp_id1 ");
|
|
|
|
|
|
DynamicParameters htparams = new DynamicParameters();
|
|
|
htparams.Add("@emp_id", ids);
|
|
|
htparams.Add("@emp_id1", ids);
|
|
|
int result = dbConn.Execute(delStr.ToString(), htparams);
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public bool UpdatePassword(string emp_id, string password, string updateUserid)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
string sql = string.Format("update {0} set passwd = '{1}',update_time=CONVERT(varchar(50), GETDATE(), 21),update_userid='{2}' where emp_id = '{3}'", "sys_emp", password, updateUserid, emp_id);
|
|
|
int count = dbConn.Execute(sql);
|
|
|
|
|
|
if (count > 0)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public int restPassWord(String userID)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strSql = @"UPDATE dbo.sys_emp
|
|
|
SET passwd = '38b3eff8baf56627478ec76a704e9b52' ,
|
|
|
update_time = CONVERT(varchar(50), GETDATE(), 21)
|
|
|
WHERE emp_no = '" + userID + "'";
|
|
|
int result = dbConn.Execute(strSql);
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|