303 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			303 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
namespace BLL
 | 
						|
{
 | 
						|
    using System;
 | 
						|
    using System.Collections;
 | 
						|
    using System.Diagnostics.CodeAnalysis;
 | 
						|
    using System.Globalization;
 | 
						|
    using System.Linq;
 | 
						|
    using System.Data.Linq;
 | 
						|
    using System.Web.Security;
 | 
						|
    using System.Web.UI.WebControls;
 | 
						|
    using Model;
 | 
						|
    using BLL;
 | 
						|
    using System.Collections.Generic;
 | 
						|
 | 
						|
    public static class Sys_UserService
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// 用户登陆方法
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="loginname">登陆名</param>
 | 
						|
        /// <param name="password">未加密密码</param>
 | 
						|
        /// <param name="rememberMe">记住我开关</param>
 | 
						|
        /// <param name="page">调用页面</param>
 | 
						|
        /// <returns>是否登陆成功</returns>
 | 
						|
        public static bool UserLogOn(string account, string password,string projectArea, bool rememberMe, System.Web.UI.Page page)
 | 
						|
        {
 | 
						|
            bool IsSuccess = false;
 | 
						|
            var q = from y in Funs.DB.Sys_User where y.Account == account select y;
 | 
						|
            List<Model.Sys_User> x = null;
 | 
						|
            if (q.Count() > 0)
 | 
						|
            {
 | 
						|
                x = (from y in Funs.DB.Sys_User
 | 
						|
                     where y.Account == account && y.IsPost == true
 | 
						|
                     && y.Password == EncryptionPassword(password)
 | 
						|
                     select y).ToList();
 | 
						|
                if (x.Any())
 | 
						|
                {
 | 
						|
                    FormsAuthentication.SetAuthCookie(account, false);
 | 
						|
                    Model.Sys_User s = x.First();
 | 
						|
                    s.LoginProjectArea = projectArea;
 | 
						|
                    page.Session[SessionName.CurrUser] = s;
 | 
						|
 | 
						|
                    if (rememberMe)
 | 
						|
                    {
 | 
						|
                        System.Web.HttpCookie u = new System.Web.HttpCookie("UserInfo");
 | 
						|
                        u["username"] = account;
 | 
						|
                        u["projectArea"] = projectArea;
 | 
						|
                        //u["password"] = null;
 | 
						|
                        // Cookies过期时间设置为一年.
 | 
						|
                        u.Expires = DateTime.Now.AddYears(1);
 | 
						|
                        //u.Secure = true;
 | 
						|
                        page.Response.Cookies.Add(u);
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        // 当选择不提交用户名时,Cookies过期时间设置为昨天.
 | 
						|
                        page.Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1);
 | 
						|
                        page.Response.Cookies["UserInfo"].Secure = true;
 | 
						|
                    }
 | 
						|
                    IsSuccess = true;
 | 
						|
                    // 如果登陆成功则数次置为0,锁定时间置空
 | 
						|
                    UpdateErrorNum(q.First().UserId, 0);
 | 
						|
                    UpdateLockTime(q.First().UserId, null);
 | 
						|
 | 
						|
                    //page.Application.Lock();
 | 
						|
                    //page.Application["IsValiad"] = true;
 | 
						|
                    //page.Application.UnLock();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    int errorNum = q.First().ErrorNum != null ? q.First().ErrorNum.Value : 0;
 | 
						|
                    UpdateErrorNum(q.First().UserId, errorNum + 1);
 | 
						|
                    // 如果密码输入错误10次则账户锁定
 | 
						|
                    if (errorNum + 1 == 10)
 | 
						|
                    {
 | 
						|
                        UpdateLockTime(q.First().UserId, DateTime.Now);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            return IsSuccess;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 修改登陆错误次数
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId"></param>
 | 
						|
        /// <param name="errorNum"></param>
 | 
						|
        public static void UpdateErrorNum(string userId, int errorNum)
 | 
						|
        {
 | 
						|
            Model.HJGLDB db = Funs.DB;
 | 
						|
            Model.Sys_User m = db.Sys_User.FirstOrDefault(e => e.UserId == userId);
 | 
						|
            m.ErrorNum = errorNum;
 | 
						|
            db.SubmitChanges();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 修改登陆锁定时间
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId"></param>
 | 
						|
        /// <param name="lockTime"></param>
 | 
						|
        public static void UpdateLockTime(string userId, DateTime? lockTime)
 | 
						|
        {
 | 
						|
            Model.HJGLDB db = Funs.DB;
 | 
						|
            Model.Sys_User m = db.Sys_User.FirstOrDefault(e => e.UserId == userId);
 | 
						|
            m.LockTime = lockTime;
 | 
						|
            db.SubmitChanges();
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 加密密码
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="password">加密前的密码</param>
 | 
						|
        /// <returns>加密后的密码</returns>
 | 
						|
        public static string EncryptionPassword(string password)
 | 
						|
        {
 | 
						|
            return FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取用户信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId">用户Id</param>
 | 
						|
        /// <returns>用户信息</returns>
 | 
						|
        public static Model.Sys_User GetUsersByUserId(string userId)
 | 
						|
        {
 | 
						|
            Model.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId);
 | 
						|
            return m;
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取用户账号是否存在
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId">用户id</param>
 | 
						|
        /// <param name="account">账号</param>
 | 
						|
        /// <param name="projectId">项目ID</param>
 | 
						|
        /// <returns>是否存在</returns>
 | 
						|
        public static bool IsExistUserAccount(string userId, string account)
 | 
						|
        {
 | 
						|
            bool isExist = false;
 | 
						|
            var user  = Funs.DB.Sys_User.FirstOrDefault(x => x.Account == account && x.UserId != userId);
 | 
						|
            if (user != null)
 | 
						|
            {
 | 
						|
                isExist = true;
 | 
						|
            }
 | 
						|
            return isExist;
 | 
						|
        }
 | 
						|
 | 
						|
        
 | 
						|
        /// <summary>
 | 
						|
        /// 根据用户Id查询所有用户的数量
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId">用户Id</param>
 | 
						|
        /// <returns>用户的数量</returns>
 | 
						|
        public static int GetUserCount(string userId)
 | 
						|
        {
 | 
						|
            var q = (from x in Funs.DB.Sys_User where x.UserId == userId select x).ToList();
 | 
						|
            return q.Count();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据用户获取密码
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static string GetPasswordByUserId(string userId)
 | 
						|
        {
 | 
						|
            Model.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId);
 | 
						|
            return m.Password;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据用户ID获取名称
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static string GetUserNameByUserId(string userId)
 | 
						|
        {
 | 
						|
            string userName = string.Empty;
 | 
						|
            Model.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId);
 | 
						|
            if (m != null)
 | 
						|
            {
 | 
						|
                userName = m.UserName;
 | 
						|
            }
 | 
						|
            return userName;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 修改密码
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId"></param>
 | 
						|
        /// <param name="password"></param>
 | 
						|
        public static void UpdatePassword(string userId, string password)
 | 
						|
        {
 | 
						|
            Model.HJGLDB db = Funs.DB;
 | 
						|
            Model.Sys_User m = db.Sys_User.FirstOrDefault(e => e.UserId == userId);
 | 
						|
            m.Password = EncryptionPassword(password);
 | 
						|
            db.SubmitChanges();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 增加人员信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="user">人员实体</param>
 | 
						|
        public static void AddUser(Model.Sys_User user)
 | 
						|
        {
 | 
						|
            Model.HJGLDB db = Funs.DB;
 | 
						|
            Model.Sys_User newUser = new Model.Sys_User();
 | 
						|
            newUser.UserId = user.UserId;
 | 
						|
            newUser.Account = user.Account;
 | 
						|
            newUser.UserCode = user.UserCode;
 | 
						|
            newUser.Password = user.Password;
 | 
						|
            newUser.UserName = user.UserName;
 | 
						|
            newUser.UnitId = user.UnitId;
 | 
						|
            newUser.Depart = user.Depart;
 | 
						|
            newUser.RoleIds = user.RoleIds;
 | 
						|
            newUser.IsPost = user.IsPost;
 | 
						|
            newUser.Email = user.Email;
 | 
						|
            newUser.EmailPassword = user.EmailPassword;
 | 
						|
            newUser.AllowLoginSystem = user.AllowLoginSystem;
 | 
						|
 | 
						|
            db.Sys_User.InsertOnSubmit(newUser);
 | 
						|
            db.SubmitChanges();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 修改人员信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="user">人员实体</param>
 | 
						|
        public static void UpdateUser(Model.Sys_User user)
 | 
						|
        {
 | 
						|
            Model.HJGLDB db = Funs.DB;
 | 
						|
            Model.Sys_User newUser = db.Sys_User.FirstOrDefault(e => e.UserId == user.UserId);
 | 
						|
            if (newUser != null)
 | 
						|
            {
 | 
						|
                newUser.Account = user.Account;
 | 
						|
                newUser.UserCode = user.UserCode;
 | 
						|
                newUser.UserName = user.UserName;
 | 
						|
                newUser.UnitId = user.UnitId;
 | 
						|
                newUser.Depart = user.Depart;
 | 
						|
                newUser.RoleIds = user.RoleIds;
 | 
						|
                newUser.IsPost = user.IsPost;
 | 
						|
                newUser.Email = user.Email;
 | 
						|
                if (!String.IsNullOrEmpty(user.EmailPassword))
 | 
						|
                {
 | 
						|
                    newUser.EmailPassword = user.EmailPassword;
 | 
						|
                }
 | 
						|
                newUser.AllowLoginSystem = user.AllowLoginSystem;
 | 
						|
 | 
						|
                db.SubmitChanges();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据人员Id删除一个人员信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="userId"></param>
 | 
						|
        public static void DeleteUser(string userId)
 | 
						|
        {
 | 
						|
            Model.HJGLDB db = Funs.DB;
 | 
						|
            Model.Sys_User user = db.Sys_User.FirstOrDefault(e => e.UserId == userId);
 | 
						|
            var log = from x in Funs.DB.Sys_Log where x.UserId == userId select x;
 | 
						|
            if (user != null)
 | 
						|
            {
 | 
						|
                if (log.Count() > 0)
 | 
						|
                {
 | 
						|
                    db.Sys_Log.DeleteAllOnSubmit(log);
 | 
						|
                }
 | 
						|
                db.Sys_User.DeleteOnSubmit(user);
 | 
						|
                db.SubmitChanges();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据单位主键获得用户
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="unitId">单位主键</param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static List<Model.Sys_User> GetUsersByUnitId(string unitId)
 | 
						|
        {
 | 
						|
            var q = (from x in Funs.DB.Sys_User where x.UnitId == unitId select x).ToList();
 | 
						|
            return q;
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 查询所有在岗的用户
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static List<Model.Sys_User> GetUserList()
 | 
						|
        {
 | 
						|
            return (from x in Funs.DB.Sys_User where x.IsPost == true orderby x.UserName select x).ToList();
 | 
						|
        }
 | 
						|
 | 
						|
        public static Model.Sys_User GetUsersByUserName(string userName)
 | 
						|
        {
 | 
						|
            return Funs.DB.Sys_User.FirstOrDefault(e => e.UserName == userName);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |