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<SqlParameter> listStr = new List<SqlParameter>(); //定义全局参数集合
|
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";
|
//创建参数
|
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<TreeObejct> list = new List<TreeObejct>();
|
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<TreeObejct>(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<TreeObejctCn>(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<object> list = new List<object>();
|
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
|
}
|
}
|