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 { /// /// 数据库访问类,处理用户管理模块的数据 /// public class UserRepository : BaseRepository, IUserRepository { public UserRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } #region 系统登录 /// /// 根据条件获取用户信息 /// 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(strSql.ToString()); return user; } } #endregion #region 用户管理 /// /// 根据分页条件获取用户列表数据 /// /// /// /// /// /// 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 depts = dbConn.Query("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", depts); result.Add("totalCount", parameters.Get("@TotalCount")); return result; } } /// /// 根据用户ID获取用户不拥有的角色数据 /// /// /// public List 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 result = dbConn.Query(SqlStringBuilder.ToString()).ToList(); return result; } } /// /// 根据用户ID,获取用户已经具有的角色数据 /// /// /// public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } else { return new List(); } } } /// /// 根据用户ID获取用户信息 /// /// /// public List 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 result = dbConn.Query(strSql.ToString(),param).ToList(); return result; } } //获取工厂信息 public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } /// /// 插入用户数据 /// /// /// 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 resultExistUser = dbConn.Query(strQuery, htQuery).ToList(); if (resultExistUser.Count > 0) { return 2; } else { List sqlStrings = new List(); List parameters = new List(); 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; } } } } /// /// 更新更新数据 /// /// /// public int updateUserInfo(SysEmp htParams,string roles) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); List sqlStrings = new List(); List parameters = new List(); 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 sqlStringsRole = new List(); List parametersRole = new List(); 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; } } } /// /// 删除用户数据 /// /// /// 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 } }