yl
2022-11-21 b166c0f80252ab4e1af4136789cb976364b779b2
VueWebApi/DLL/DAL/LoginDAL.cs
@@ -1,6 +1,7 @@
using Dapper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
@@ -18,13 +19,16 @@
        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"];
        //获取企业配置Enterprise
        private static readonly string Enterprise = ConfigurationManager.AppSettings["Enterprise"];
        #region [登录查询]
        public static DataTable LoginSearch(string username,string password)
        public static DataTable LoginSearch(string username, string password)
        {
            //执行sql
            strProcName = "select *  from [dbo].[TUser] where username=@username and password=@password";
            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));
@@ -35,9 +39,77 @@
        }
        #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)
        public static ToMessage LoginMenu(string usercode, string usertype)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
@@ -45,28 +117,39 @@
            try
            {
                //获取菜单集合(根据登录用户编码查询权限反推菜单)
                sql = @"select distinct rt.right_code as code,rt.right_name as name,rt.right_seq from TRight rt where rt.right_code in(
                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='PC' order by rt.right_seq";
                     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
                    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='PC' and ro.user_code=@usercode and mu.parent_id=@paent_id
                            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 = "查询成功!";
@@ -75,57 +158,188 @@
            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 username, string password, string newpassword)
        public static ToMessage UpdateUserPassword(string usercode, string username, string password, string newpassword)
        {
            //执行sql,判断当前用户登录账号是否正确
            strProcName = "select *  from [dbo].[TUser] where username=@username and password=@password";
            //创建参数
            listStr.Add(new SqlParameter("@username", username));
            listStr.Add(new SqlParameter("@password", password));
            parameters = listStr.ToArray();
            listStr.Clear();
            dt = DBHelper.GetTable(strProcName, parameters);
            if (dt.Rows.Count <= 0)
            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
            else
            {
                //执行sql,判断当前用户登录账号是否正确
                strProcName = "update [dbo].[TUser] set password=@newpassword where username=@username and password=@password";
                //创建参数
                listStr.Add(new SqlParameter("@username", username));
                listStr.Add(new SqlParameter("@password", password));
                listStr.Add(new SqlParameter("@newpassword", newpassword));
                parameters = listStr.ToArray();
                listStr.Clear();
                res = DBHelper.ExecuteSql(strProcName, parameters);
                if (res)
                //修改密码
                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.Message = "修改密码成功!";
                    mes.count = 0;
                    mes.Message = "修改密码成功!";
                    mes.data = null;
                }
                else
                else
                {
                    mes.code = "300";
                    mes.Message = "修改密码失败!";
                }
                    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(Enterprise+"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
    }
}