Basf_EProject/EProject/BLL/SysManage/Sys_UserService.cs

543 lines
19 KiB
C#

namespace BLL
{
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web.Security;
using System.Web.UI.WebControls;
using Model;
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, bool rememberMe, System.Web.UI.Page page)
{
string https = ConfigurationManager.AppSettings["Https"];
bool IsSuccess = false;
password = EncryptionPassword(password);
var q = from y in Funs.DB.Sys_User where y.Account.ToLower() == account.ToLower() select y;
List<Model.Sys_User> x = null;
ErrLogInfo.WriteLog($"q.Count={q.Count()}");
if (q.Count() > 0)
{
x = (from y in Funs.DB.Sys_User
where y.Account.ToLower() == account.ToLower() && y.IsPost == true
&& y.Password == password
select y).ToList();
if (x.Any())
{
ErrLogInfo.WriteLog($"登录成功");
FormsAuthentication.SetAuthCookie(account, false);
Model.Sys_User s = x.First();
page.Session[SessionName.CurrUser] = s;
//page.Session.Timeout = 600;
//if (rememberMe)
//{
// System.Web.HttpCookie u = new System.Web.HttpCookie("UserInfo");
// u["username"] = account;
// //u["password"] = null;
// // Cookies过期时间设置为一年.
// u.Expires = DateTime.Now.AddYears(1);
// if (https == "true")
// {
// 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;
}
}
return IsSuccess;
}
/// <summary>
/// 登陆获取用户信息
/// </summary>
/// <param name="account"></param>
/// <param name="password"></param>
/// <param name="rememberMe"></param>
/// <param name="page"></param>
/// <returns></returns>
public static bool ADUserLogOn(string account, bool rememberMe, System.Web.UI.Page page)
{
string https = ConfigurationManager.AppSettings["Https"];
bool IsSuccess = false;
var user = Funs.DB.Sys_User.FirstOrDefault(x => x.Account.ToLower() == account.ToLower() && x.IsPost == true);
if (user != null)
{
FormsAuthentication.SetAuthCookie(account, false);
page.Session[SessionName.CurrUser] = user;
//if (rememberMe)
//{
// System.Web.HttpCookie u = new System.Web.HttpCookie("UserInfo");
// u["username"] = account;
// // u["password"] = null;
// // Cookies过期时间设置为一年.
// u.Expires = DateTime.Now.AddYears(1);
// if (https == "true")
// {
// u.Secure = true;
// }
// page.Response.Cookies.Add(u);
//}
//else
//{
// // 当选择不提交用户名时,Cookies过期时间设置为昨天.
// page.Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1);
//}
IsSuccess = true;
}
return IsSuccess;
}
/// <summary>
/// 加密密码
/// </summary>
/// <param name="password">加密前的密码</param>
/// <returns>加密后的密码</returns>
public static string EncryptionPassword(string password)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
}
/// <summary>
/// 获取用户初始密码
/// </summary>
/// <param name="unitId">单位id</param>
/// <param name="phone">手机号码</param>
/// <returns></returns>
public static string GetEncryptionPassword(string account)
{
string passNo = string.Empty;
if (!string.IsNullOrEmpty(account))
{
passNo += account.ToLower() + ".1234";
}
return EncryptionPassword(passNo);
}
/// <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;
if (!string.IsNullOrEmpty(userId))
{
var user = Funs.DB.Sys_User.FirstOrDefault(x => x.Account == account && x.UserId != userId);
if (user != null)
{
isExist = true;
}
}
else
{
var user = Funs.DB.Sys_User.FirstOrDefault(x => x.Account == account);
if (user != null)
{
isExist = true;
}
}
return isExist;
}
/// <summary>
/// 获取同单位用户名称是否存在
/// </summary>
/// <param name="userId">用户id</param>
/// <param name="userName">账号</param>
/// <param name="unitId">项目ID</param>
/// <returns>是否存在</returns>
//public static bool IsExistUserName(string userId, string userName)
//{
// bool isExist = false;
// var name = Funs.DB.Sys_User.FirstOrDefault(x => x.UserName == userName && x.UserId != userId);
// if (name != null)
// {
// isExist = true;
// }
// return isExist;
//}
/// <summary>
/// 根据部门获取用户信息
/// </summary>
/// <param name="departId"></param>
/// <returns></returns>
//public static List<Model.Sys_User> GetUsersByDep(string departId)
//{
// return (from x in Funs.DB.Sys_User where x.DepartId == departId select x).ToList();
//}
/// <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.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId);
if (m != null)
{
m.Password = password;
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 增加人员信息
/// </summary>
/// <param name="user">人员实体</param>
public static void AddUser(Model.Sys_User user)
{
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.RoleId = user.RoleId;
newUser.IsPost = user.IsPost;
newUser.DepartId = user.DepartId;
newUser.Email = user.Email;
newUser.EmailPassword = user.EmailPassword;
newUser.Phone = user.Phone;
newUser.Remark = user.Remark;
newUser.ActType = user.ActType;
newUser.IsCTE = user.IsCTE;
newUser.IsCalculated = user.IsCalculated;
newUser.ChineseName = user.ChineseName;
newUser.IsThirdParty = user.IsThirdParty;
newUser.ManagerName = user.ManagerName;
Funs.DB.Sys_User.InsertOnSubmit(newUser);
Funs.DB.SubmitChanges();
}
/// <summary>
/// 修改人员信息
/// </summary>
/// <param name="user">人员实体</param>
public static void UpdateUser(Model.Sys_User user)
{
Model.Sys_User newUser = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == user.UserId);
if (newUser != null)
{
newUser.Account = user.Account;
newUser.UserCode = user.UserCode;
//newUser.Password = user.Password;
newUser.UserName = user.UserName;
newUser.UnitId = user.UnitId;
newUser.RoleId = user.RoleId;
newUser.IsPost = user.IsPost;
newUser.DepartId = user.DepartId;
newUser.Email = user.Email;
if (!String.IsNullOrEmpty(user.EmailPassword))
{
newUser.EmailPassword = user.EmailPassword;
}
newUser.Phone = user.Phone;
newUser.Remark = user.Remark;
newUser.ActType = user.ActType;
newUser.IsCTE = user.IsCTE;
newUser.IsCalculated = user.IsCalculated;
newUser.ChineseName = user.ChineseName;
newUser.IsThirdParty = user.IsThirdParty;
newUser.ManagerName = user.ManagerName;
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 根据主键删除用户信息
/// </summary>
/// <param name="userId"></param>
public static void DeleteUserById(string userId)
{
Model.Sys_User u = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId);
if (u != null)
{
Funs.DB.Sys_User.DeleteOnSubmit(u);
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 根据帐号获取用户信息
/// </summary>
/// <param name="account">帐号</param>
/// <returns>用户信息</returns>
public static Model.Sys_User GetUserByAccount(string account)
{
Model.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.Account == account);
return m;
}
/// <summary>
/// 根据部门获得所有对应在岗且是CTE用户
/// </summary>
/// <returns></returns>
public static List<Model.Sys_User> GetUserListByDepartId(string departId)
{
var q = (from x in Funs.DB.Sys_User
where x.IsPost == true && x.DepartId == departId
&& x.IsCTE == true
orderby x.UserName
select x).ToList();
return q;
}
/// <summary>
/// 根据用户ID判断该用户是否是CTE人员并参与人工时计算
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public static bool IsCTEAndCalculated(string userId)
{
bool isExist = false;
var q = from x in Funs.DB.Sys_User
where x.UserId==userId && x.IsCTE == true && x.IsCalculated == true
orderby x.UserName
select x;
if (q.Count() > 0)
{
isExist = true;
}
return isExist;
}
/// <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();
}
/// <summary>
/// 根据角色获得最大编号的在岗用户
/// </summary>
/// <returns></returns>
public static Model.Sys_User GetMaxUserByRoleId(string roleId)
{
return (from x in Funs.DB.Sys_User where x.IsPost == true && x.RoleId == roleId && (x.UserCode != "" && x.UserCode != null) orderby x.UserCode descending select x).FirstOrDefault();
}
/// <summary>
///
/// </summary>
/// <param name="user"></param>
public static void UpdateUserList(Model.Sys_User user)
{
Model.Sys_User newUser = Funs.DB.Sys_User.FirstOrDefault(e => e.Account == user.Account);
if (newUser != null)
{
newUser.DepartId = user.DepartId;
newUser.ManagerName = user.ManagerName;
newUser.UserName = user.UserName;
newUser.ChineseName = user.ChineseName;
newUser.Email = user.Email;
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 根据角色id获取用户视图列表信息
/// </summary>
/// <returns></returns>
public static List<Model.View_Sys_Users> GetUserRoleIdViewList(string RoleId)
{
return (from x in Funs.DB.View_Sys_Users where x.IsPost == true && x.RoleId == RoleId orderby x.DepartName, x.UserName select x).ToList();
}
/// <summary>
/// 获取用户视图列表信息
/// </summary>
/// <returns></returns>
public static List<Model.View_Sys_Users> GetUserViewList()
{
return (from x in Funs.DB.View_Sys_Users where x.IsPost == true orderby x.DepartName, x.UserName select x).ToList();
}
/// <summary>
/// 获取所有用户列表信息
/// </summary>
/// <returns></returns>
public static List<Model.View_Sys_Users> GetAllUserViewList()
{
return (from x in Funs.DB.View_Sys_Users orderby x.DepartName, x.UserName select x).ToList();
}
/// <summary>
/// 获取CTE用户
/// </summary>
/// <returns></returns>
public static List<Model.View_Sys_Users> GetCTEUser()
{
return (from x in Funs.DB.View_Sys_Users
where x.IsPost == true && x.IsCTE==true
orderby x.DepartName, x.UserName
select x).ToList();
}
public static void InitCTEUserDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataGroupField = "DepartName";
dropName.DataValueField = "UserId";
dropName.DataTextField = "UserName";
dropName.DataSource = BLL.Sys_UserService.GetCTEUser();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
/// <summary>
/// 常量表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
public static void InitUserDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataGroupField = "DepartName";
dropName.DataValueField = "UserId";
dropName.DataTextField = "UserName";
dropName.DataSource = BLL.Sys_UserService.GetAllUserViewList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
public static void InitUserDrpNA(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataGroupField = "DepartName";
dropName.DataValueField = "UserId";
dropName.DataTextField = "UserName";
dropName.DataSource = BLL.Sys_UserService.GetUserViewList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUINA(dropName);
}
}
/// <summary>
/// 根据用户姓名获取用户信息
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
public static Model.Sys_User GetUserByUserName(string username)
{
return Funs.DB.Sys_User.FirstOrDefault(e => e.UserName == username);
}
/// <summary>
/// 根据ID获取CTE用户
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public static Model.View_Sys_Users GetCTEUserByUserId(string userId)
{
return Funs.DB.View_Sys_Users.FirstOrDefault(e => e.DepartName.Contains("CTE") && e.UserId == userId);
}
/// <summary>
/// 下拉选择部门或用户
/// </summary>
/// <param name="dropName"></param>
/// <param name="isShowPlease"></param>
public static void InitUserAndDepartDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataValueField = "ID";
dropName.DataTextField = "Name";
dropName.DataSource = (from x in Funs.DB.View_UserDropDownList orderby x.GroupId, x.Name select x).ToList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
public static void InitDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataValueField = "ID";
dropName.DataTextField = "Name";
dropName.DataSource = (from x in Funs.DB.View_UserDepartDropDownList orderby x.GroupId, x.Name select x).ToList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
public static void InitDrpNA(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataValueField = "ID";
dropName.DataTextField = "Name";
dropName.DataSource = (from x in Funs.DB.View_UserDepartDropDownList orderby x.GroupId, x.Name select x).ToList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUINA(dropName);
}
}
}
}