using Dapper; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using VueWebApi.Models; using VueWebApi.Tools; namespace VueWebApi.DLL.DAL { public class LoginDAL { public static DataTable dt; //定义全局变量dt public static bool res; //定义全局变量dt public static ToMessage mes = new ToMessage(); //定义全局返回信息对象 public static string strProcName = ""; //定义全局sql变量 public static List listStr = new List(); //定义全局参数集合 public static SqlParameter[] parameters; //定义全局SqlParameter参数数组 public static string fileip = System.Configuration.ConfigurationManager.AppSettings["FileIP"]; #region [登录查询] public static DataTable LoginSearch(string username, string password) { //执行sql strProcName = "select * from [dbo].[TUser] where usercode=@username and password=@password and is_delete='0'"; //创建参数 listStr.Add(new SqlParameter("@username", username)); listStr.Add(new SqlParameter("@password", password)); parameters = listStr.ToArray(); listStr.Clear(); DataTable dt = DBHelper.GetTable(strProcName, parameters); return dt; } #endregion #region [写入登录记录表] public static ToMessage LoginBas(string usercode, string usertype) { var sql = ""; var cont = 0; var dynamicParams = new DynamicParameters(); try { sql = @"select * from T_Bas_Login where usercode=@usercode and origin=@usertype"; dynamicParams.Add("@usercode", usercode); dynamicParams.Add("@usertype", usertype); cont = DapperHelper.selectcount(sql, dynamicParams); if (cont > 0) { sql = @"update T_Bas_Login set indate=@indate,status='Y' where usercode=@usercode and origin=@usertype"; dynamicParams.Add("@usercode", usercode); dynamicParams.Add("@usertype", usertype); dynamicParams.Add("@indate", DateTime.Now.ToString()); cont = DapperHelper.SQL(sql, dynamicParams); if (cont > 0) { mes.code = "200"; mes.count = 0; mes.Message = "记录成功!"; mes.data = null; } else { mes.code = "300"; mes.count = 0; mes.Message = "记录失败!"; mes.data = null; } } else { sql = @"insert into T_Bas_Login(usercode,status,indate,origin) values(@usercode,'Y',@indate,@usertype)"; dynamicParams.Add("@usercode", usercode); dynamicParams.Add("@usertype", usertype); dynamicParams.Add("@indate", DateTime.Now.ToString()); cont = DapperHelper.SQL(sql, dynamicParams); if (cont > 0) { mes.code = "200"; mes.count = 0; mes.Message = "记录成功!"; mes.data = null; } else { mes.code = "300"; mes.count = 0; mes.Message = "记录失败!"; mes.data = null; } } } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.Message = e.Message; mes.data = null; } return mes; } #endregion #region[查询菜单功能] public static ToMessage LoginMenu(string usercode, string usertype) { string sql = ""; var dynamicParams = new DynamicParameters(); List list = new List(); try { //获取菜单集合(根据登录用户编码查询权限反推菜单) sql = @"select distinct rt.right_code as code,rt.right_name as name,rt.right_seq,rt.is_delete as flag,imgurl from TRight rt where rt.right_code in( select A.parent_id from TRight A left join TRoleRightRelation B on B.right_code=A.right_code left join TRole C on C.role_code=B.role_code left join TUserRoleRelation D on D.role_code=C.role_code left join TUser E on E.usercode=D.user_code where E.usercode=@usercode) and rt.Type=@usertype order by rt.right_seq"; dynamicParams.Add("@usercode", usercode); dynamicParams.Add("@usertype", usertype); var data = DapperHelper.select(sql, dynamicParams); data = data.Select(c => { c.imgurl = fileip + c.imgurl; return c; }).ToList(); for (int i = 0; i < data.Count; i++) { sql = @"select distinct mu.right_code as code,mu.right_name as name,mu.right_seq,mu.is_delete as flag,imgurl from TRight mu inner join TRoleRightRelation rl on mu.right_code=rl.right_code inner join TUserRoleRelation ro on rl.role_code=ro.role_code where mu.type=@usertype and ro.user_code=@usercode and mu.parent_id=@paent_id order by mu.right_seq, mu.right_code"; dynamicParams.Add("@usercode", usercode); dynamicParams.Add("@usertype", usertype); dynamicParams.Add("@paent_id", data[i].code); var data0 = DapperHelper.select(sql, dynamicParams); data0 = data0.Select(c => { c.imgurl = fileip + c.imgurl; return c; }).ToList(); data[i].children = data0; } mes.code = "200"; mes.Message = "查询成功!"; mes.data = data; } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.Message = e.Message; mes.data = null; } return mes; } #endregion #region[修改密码] public static ToMessage UpdateUserPassword(string usercode, string username, string password, string newpassword) { var sql = ""; List list = new List(); var dynamicParams = new DynamicParameters(); sql = @"select * from [dbo].[TUser] where usercode=@usercode and username=@username and password=@password"; dynamicParams.Add("@usercode", usercode); dynamicParams.Add("@username", username); dynamicParams.Add("@password", password); var data = DapperHelper.selectdata(sql, dynamicParams); if (data.Rows.Count <= 0) { mes.code = "300"; mes.count = 0; mes.Message = "输入的密码不正确,请重新输入!"; mes.data = null; } else { //修改密码 sql = @"update [dbo].[TUser] set password=@newpassword where usercode=@usercode and username=@username and password=@password"; list.Add(new { str = sql, parm = new { usercode = usercode, username = username, password = password, newpassword = newpassword } }); //写入操作记录表 sql = @"insert into T_Bas_User_Operlog(usercode,oper_date,oper_type,description,origin) values(@usercode,@oper_date,@oper_type,@description,@origin)"; list.Add(new { str = sql, parm = new { usercode = usercode, oper_date = DateTime.Now.ToString(), oper_type = "PC", description = username + "修改了密码", origin = "PC" } }); bool aa = DapperHelper.DoTransaction(list); if (aa) { mes.code = "200"; mes.count = 0; mes.Message = "修改密码成功!"; mes.data = null; } else { mes.code = "300"; mes.count = 0; mes.Message = "修改密码失败!"; mes.data = null; } } return mes; } #endregion #region[PC登出] public static ToMessage LoginOut(int userid, string usercode, string username, string usertype) { var sql = ""; var cont = 0; var dynamicParams = new DynamicParameters(); RedisHelper redis = new RedisHelper(); try { sql = @"update T_Bas_Login set outdate=@outdate,status='N' where usercode=@usercode and origin=@usertype"; dynamicParams.Add("@usercode", usercode); dynamicParams.Add("@outdate", DateTime.Now.ToString()); dynamicParams.Add("@usertype", usertype); cont = DapperHelper.SQL(sql, dynamicParams); if (cont > 0) { redis.Remove("LoginUserID" + usertype + userid, 0); //删除redis mes.code = "200"; mes.count = 0; mes.Message = "登出成功!"; mes.data = null; } else { mes.code = "300"; mes.count = 0; mes.Message = "登出失败!"; mes.data = null; } } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.Message = e.Message; mes.data = null; } return mes; } #endregion #region[App登出] public static ToMessage LoginAppOut(int userid, string usercode, string username, string usertype) { var sql = ""; var cont = 0; var dynamicParams = new DynamicParameters(); RedisHelper redis = new RedisHelper(); try { sql = @"update T_Bas_Login set outdate=@outdate,status='N' where usercode=@usercode and origin=@usertype"; dynamicParams.Add("@usercode", usercode); dynamicParams.Add("@outdate", DateTime.Now.ToString()); dynamicParams.Add("@usertype", usertype); cont = DapperHelper.SQL(sql, dynamicParams); if (cont > 0) { mes.code = "200"; mes.count = 0; mes.Message = "登出成功!"; mes.data = null; } else { mes.code = "300"; mes.count = 0; mes.Message = "登出失败!"; mes.data = null; } } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.Message = e.Message; mes.data = null; } return mes; } #endregion #region[App登录查询安灯呼叫信息] public static ToMessage LoginAppAnDonMessage(int userid, string usercode, string username, string usertype) { var sql = ""; var dynamicParams = new DynamicParameters(); RedisHelper redis = new RedisHelper(); try { sql = @"select B.eqp_code,E.name as eqp_name,B.wkshp_code,T.org_name as wkshp_name, A.type as typecode,D.name as typename,B.start_user,B.start_date from TAnDnMessagePush A inner join TAnDon_Task_Info B on A.m_id=B.id left join TEqpInfo E on B.eqp_code=E.code left join TOrganization T on B.wkshp_code=T.org_code left join TAnDonType D on A.type=d.code where A.resp_user=@username and B.status='START' and T.description='W'"; dynamicParams.Add("@username", username); var data = DapperHelper.selectdata(sql, dynamicParams); mes.code = "200"; mes.count = 0; mes.Message = "查询成功!"; mes.data = data; } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.Message = e.Message; mes.data = null; } return mes; } #endregion } }