using BLL; using System; using System.Linq; using System.Security.Policy; using System.Web; using System.Web.Http; using System.Web.Security; namespace WebAPI.Controllers { /// /// 用户 /// public class UserController : ApiController { #region 根据账号或手机号码登录方法 /// /// 登录方法 /// /// /// [HttpPost] public Model.ResponeData postLoginOn([FromBody] Model.UserItem userInfo) { //登录方法 Model.UserItem var responeData = new Model.ResponeData { message = "用户名或密码错误,请重新输入!" }; try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var sysUser = db.Sys_User.FirstOrDefault(x => (x.Account == userInfo.Account || x.Telephone == userInfo.Telephone) && x.IsPost == true); if (sysUser != null) { if (sysUser.LockTime.HasValue && sysUser.LockTime.Value > DateTime.Now) { responeData.message = "账号锁定10分钟!"; } else { if (sysUser.Password != Funs.EncryptionPassword(userInfo.Password)) { if (sysUser.ErrorTimes.HasValue && sysUser.ErrorTimes.Value >= 4) { sysUser.ErrorTimes = sysUser.ErrorTimes.Value + 1; sysUser.LockTime = DateTime.Now.AddMinutes(10); db.SubmitChanges(); responeData.message = "账号锁定10分钟!"; } else if (sysUser.ErrorTimes.HasValue) { sysUser.ErrorTimes = sysUser.ErrorTimes.Value + 1; db.SubmitChanges(); // responeData.message = "密码错误" + sysUser.ErrorTimes + "次,超过5次将锁定10分钟!"; responeData.message = "用户名或密码错误,请重新输入"; } else { sysUser.ErrorTimes = 1; db.SubmitChanges(); //responeData.message = "密码错误" + sysUser.ErrorTimes + "次,超过5次将锁定10分钟!"; responeData.message = "用户名或密码错误,请重新输入"; } } else { sysUser.ErrorTimes = null; sysUser.LockTime = null; db.SubmitChanges(); // FormsAuthentication.SetAuthCookie(sysUser.UserId, true, FormsAuthentication.FormsCookiePath); FormsAuthenticationTicket Tick = new FormsAuthenticationTicket(1, sysUser.Account, DateTime.Now, DateTime.Now.AddYears(10), //十年有效期 false, sysUser.UserId); string eny = FormsAuthentication.Encrypt(Tick); HttpCookie HK = new HttpCookie(FormsAuthentication.FormsCookieName,eny); HttpContext.Current.Response.Cookies.Add(HK); responeData.data = APIUserService.UserLogOn(userInfo); responeData.message = "登录成功!"; } } } else { Model.SitePerson_Person person = null; var getUserList = from x in db.SitePerson_Person where (x.Telephone == userInfo.Account || x.PersonName == userInfo.Account) && (x.Password == Funs.EncryptionPassword(userInfo.Password) || (x.IdentityCard != null && x.IdentityCard.Substring(x.IdentityCard.Length - 4) == userInfo.Password)) && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now) && x.IsUsed == true select x; if (!string.IsNullOrEmpty(userInfo.LoginProjectId)) { person = getUserList.Where(x => x.ProjectId == userInfo.LoginProjectId).FirstOrDefault(); } else { person = getUserList.FirstOrDefault(); } if (person != null) { if (person.LockTime.HasValue && person.LockTime.Value > DateTime.Now) { responeData.message = "账号锁定10分钟!"; } if (person.Password != Funs.EncryptionPassword(userInfo.Password)) { if (person.ErrorTimes.HasValue && person.ErrorTimes.Value >= 4) { person.ErrorTimes = person.ErrorTimes.Value+1; person.LockTime = DateTime.Now.AddMinutes(10); db.SubmitChanges(); responeData.message = "账号锁定10分钟!"; } else if (person.ErrorTimes.HasValue) { person.ErrorTimes = person.ErrorTimes.Value + 1; db.SubmitChanges(); // responeData.message = "密码错误" + person.ErrorTimes + "次,超过5次将锁定10分钟!"; responeData.message = "用户名或密码错误,请重新输入"; } else { person.ErrorTimes = 1; db.SubmitChanges(); //responeData.message = "密码错误" + person.ErrorTimes + "次,超过5次将锁定10分钟!"; responeData.message = "用户名或密码错误,请重新输入"; } } else { person.ErrorTimes = null; person.LockTime = null; db.SubmitChanges(); // FormsAuthentication.SetAuthCookie(person.PersonId, true, FormsAuthentication.FormsCookiePath); FormsAuthenticationTicket Tick = new FormsAuthenticationTicket(1, sysUser.Account, DateTime.Now, DateTime.Now.AddYears(10), //十年有效期 false, person.PersonId); string eny = FormsAuthentication.Encrypt(Tick); HttpCookie HK = new HttpCookie(FormsAuthentication.FormsCookieName, eny); HttpContext.Current.Response.Cookies.Add(HK); responeData.message = "登录成功!"; responeData.code = 2; responeData.data = APIUserService.UserLogOn(userInfo); } } } } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据userid获取用户信息 /// /// 根据userid获取用户信息 /// /// /// public Model.ResponeData getUserByUserId(string userId) { var responeData = new Model.ResponeData(); try { responeData.data = APIUserService.getUserByUserId(userId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据unitId获取用户信息 /// /// 根据unitId获取用户信息 /// /// /// public Model.ResponeData getUserByUnitid(string unitId) { var responeData = new Model.ResponeData(); try { var getDataList = APIUserService.getUserByUnitId(unitId, null); responeData.data = new { getDataList.Count, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据unitId获取用户信息 /// /// 根据unitId获取用户信息 /// /// 单位ID /// 查询 /// public Model.ResponeData getUserByUnitidQuery(string unitId, string strParam) { var responeData = new Model.ResponeData(); try { var getDataList = APIUserService.getUserByUnitId(unitId, strParam); responeData.data = new { getDataList.Count, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据projectId、unitid获取用户信息 /// /// 根据projectId、unitid获取用户信息 /// /// /// /// public Model.ResponeData getUserByProjectIdUnitId(string projectId, string unitId) { var responeData = new Model.ResponeData(); try { responeData.data = APIUserService.getUserByProjectIdUnitIdQuery(projectId, unitId, null, null); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据projectId、unitid获取用户信息 /// /// 根据projectId、unitid获取用户信息 /// /// /// /// /// /// /// public Model.ResponeData getUserByProjectIdUnitIdQuery(string projectId, string unitId, string roleIds, string strParam, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIUserService.getUserByProjectIdUnitIdQuery(projectId, unitId, roleIds, strParam); int pageCount = getDataList.Count(); if (pageCount > 0 && pageIndex > 0) { getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); } responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据UnitType单位类型获取用户信息 /// /// 根据UnitType单位类型获取用户信息 /// /// /// (总包1;施工分包2;监理3;业主4;其他5) /// /// /// /// public Model.ResponeData getUserByProjectIdUnitTypeQuery(string projectId, string unitType, string roleIds, string strParam, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIUserService.getUserByProjectIdUnitTypeQuery(projectId, unitType, roleIds, strParam); int pageCount = getDataList.Count(); if (pageCount > 0 && pageIndex > 0) { getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); } responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 保存人员电话号码 /// /// 保存人员电话号码 /// /// /// 电话 /// public Model.ResponeData getSaveUserTel(string userId, string tel) { var responeData = new Model.ResponeData(); try { APIUserService.getSaveUserTel(userId, tel); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 保存人员签名 /// /// 保存人员电话号码 /// /// /// 签名 /// public Model.ResponeData getSaveUserSignatureUrl(string userId, string signatureUrl) { var responeData = new Model.ResponeData(); try { APIUserService.getSaveUserSignatureUrl(userId, signatureUrl); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据用户UnitId判断是否为本单位用户或管理员 /// /// 根据用户UnitId判断是否为本单位用户或管理员 /// /// /// public Model.ResponeData getIsMainUnitOrAdmin(string userId) { var responeData = new Model.ResponeData(); try { responeData.data= CommonService.IsMainUnitOrAdmin(userId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取当前用户是否有菜单权限 /// /// 获取当前用户是否有菜单权限 /// /// 当前人ID /// 菜单ID /// 项目ID /// public Model.ResponeData getIsHaveMenuPower(string userId, string menuId, string projectId) { var responeData = new Model.ResponeData(); try { responeData.data = CommonService.ReturnMenuByUserIdMenuId( userId, menuId, projectId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取当前用户系统权限集合 /// /// 获取当前用户是否有菜单权限 /// /// 当前人ID /// public Model.ResponeData getSystemPowerList(string userId) { var responeData = new Model.ResponeData(); try { responeData.data = CommonService.GetSystemPowerList(userId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取当前用户菜单权限集合 /// /// 获取当前用户是否有菜单权限 /// /// 当前人ID /// 项目ID /// public Model.ResponeData getMenuPowerList(string userId, string projectId) { var responeData = new Model.ResponeData(); try { responeData.data = CommonService.GetAllMenuList(projectId, userId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取当前用户是否有按钮权限 /// /// 获取当前用户是否有菜单权限 /// /// 当前人ID /// 菜单ID /// 项目ID /// 按钮名称 /// public Model.ResponeData getIsHaveButtonPower(string userId, string menuId, string projectId,string buttonName) { var responeData = new Model.ResponeData(); try { responeData.data = CommonService.GetAllButtonPowerList(projectId, userId, menuId, buttonName); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取当前人未读数量 /// /// 获取当前人未读数量 /// /// 菜单ID /// 菜单ID /// 用户id /// public Model.ResponeData getMenuUnreadCount(string menuId, string projectId, string userId) { var responeData = new Model.ResponeData(); try { responeData.data = APIUserService.getMenuUnreadCount(menuId, projectId, userId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获项目安全经理 public Model.ResponeData getHSSEManager(string projectId) { var responeData = new Model.ResponeData(); try { responeData.data = APIBaseInfoService.getHSSEManager(projectId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } public Model.ResponeData GetUserListByProjectIdAndUnitId(string projectId, string unitId,string system) { var responeData = new Model.ResponeData(); try { responeData.data = APIBaseInfoService.GetUserListByProjectIdAndUnitId(projectId,unitId, ""); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 保存浏览记录 /// /// 保存浏览记录 /// /// 菜单ID /// 菜单ID /// 用户id /// 主键ID /// public Model.ResponeData getSaveUserRead(string menuId, string projectId, string userId, string dataId) { var responeData = new Model.ResponeData(); try { APIUserService.getSaveUserRead(menuId, projectId, userId, dataId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion } }