using EmitMapper; using System; using System.Collections.Generic; using System.Linq; namespace BLL { public static class APIUserService { /// /// 获取用户登录信息 /// /// /// public static Model.UserItem UserLogOn(Model.UserItem userInfo) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getPersons = db.Person_Persons.Where(x => !x.IsPost.HasValue || x.IsPost == true); var getUser = getPersons.FirstOrDefault(x => x.Account == userInfo.Account && x.Password == Funs.EncryptionPassword(userInfo.Password)); if (getUser == null) { getUser = getPersons.FirstOrDefault(x => (x.Telephone == userInfo.Telephone || x.PersonName == userInfo.Account) && x.IdentityCard != null && x.IdentityCard.Substring(x.IdentityCard.Length - 4) == userInfo.Password); } if (getUser != null) { Model.UserItem newItem = new Model.UserItem(); newItem.PersonId = getUser.PersonId; newItem.Account = getUser.Account; newItem.UserCode = getUser.JobNum; newItem.Password = getUser.Password; newItem.PersonName = getUser.PersonName; newItem.RoleId = getUser.RoleIds; //RoleName= RoleService.getRoleNamesRoleIds(getUser.RoleIds); newItem.UnitId = getUser.UnitId; newItem.UnitName = UnitService.GetUnitNameByUnitId(getUser.UnitId); newItem.LoginProjectId = getUser.LastProjectId; newItem.IdentityCard = getUser.IdentityCard; newItem.Telephone = getUser.Telephone; newItem.IsOffice = getUser.IsOffice; newItem.SignatureUrl = getUser.SignatureUrl; if (!string.IsNullOrEmpty(getUser.Account)) { newItem.UserType = (getUser.PersonId == Const.sedinId ? "2" : "1"); if (string.IsNullOrEmpty(newItem.LoginProjectId)) { newItem.LoginProjectId = getUser.CurrentProjectId; } } else { newItem.UserType = "3"; var getSitePerson = db.SitePerson_Person.FirstOrDefault(x => x.PersonId == getUser.PersonId && x.States == Const.ProjectPersonStates_1); if (getSitePerson != null) { newItem.LoginProjectId = getSitePerson.ProjectId; } } newItem.LoginProjectName = ProjectService.GetProjectNameByProjectId(newItem.LoginProjectId); return newItem; } else { return null; } } } /// /// 根据userId获取用户信息 /// /// /// public static Model.UserItem getUserByUserId(string userId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.UserItem newItem = new Model.UserItem(); var getUser = db.Person_Persons.FirstOrDefault(x => x.PersonId == userId); if (getUser != null) { newItem.PersonId = getUser.PersonId; newItem.Account = getUser.Account; newItem.UserCode = getUser.JobNum; newItem.Password = getUser.Password; newItem.PersonName = getUser.PersonName; newItem.RoleId = getUser.RoleIds; //RoleName= RoleService.getRoleNamesRoleIds(getUser.RoleIds); newItem.UnitId = getUser.UnitId; newItem.UnitName = UnitService.GetUnitNameByUnitId(getUser.UnitId); newItem.LoginProjectId = getUser.LastProjectId; newItem.IdentityCard = getUser.IdentityCard; newItem.Telephone = getUser.Telephone; newItem.IsOffice = getUser.IsOffice; newItem.SignatureUrl = getUser.SignatureUrl; newItem.UserType = (getUser.PersonId == Const.sedinId ? "2" : "1"); } return newItem; } } /// /// 根据unitid获取用户信息 /// /// /// public static List getUserByUnitId(string unitId, string strParam) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getUser = (from x in db.Person_Persons join y in db.Sys_Role on x.RoleIds equals y.RoleId where x.UnitId == unitId && x.IsPost == true && (strParam == null || x.PersonName.Contains(strParam)) && x.RoleIds != null orderby x.PersonName select new Model.BaseInfoItem { BaseInfoId = x.PersonId, BaseInfoName = x.PersonName, BaseInfoCode = x.Telephone }).ToList(); return getUser; } } /// /// 根据projectId、unitid获取用户信息 /// /// /// /// /// public static List getUserByProjectIdUnitIdQuery(string projectId, string unitId, string roleIds, string strParam) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List getDataList = new List(); List roleList = Funs.GetStrListByStr(roleIds, ','); if (!string.IsNullOrEmpty(projectId)) { var getDatas = from x in db.Person_Persons join y in db.SitePerson_Person on x.PersonId equals y.PersonId where y.ProjectId == projectId && y.States == Const.State_1 && y.RoleIds != null select new Model.UserItem { PersonId = x.PersonId, Account = x.Account, UserCode = y.CardNo, Password = x.Password, PersonName = x.PersonName, RoleId = y.RoleIds, RoleName = RoleService.getRoleNamesRoleIds(y.RoleIds), UnitId = y.UnitId, UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, LoginProjectId = y.ProjectId, LoginProjectName = db.Base_Project.First(z => z.ProjectId == y.ProjectId).ProjectName, IdentityCard = x.IdentityCard, Email = x.Email, Telephone = x.Telephone, IsOffice = x.IsOffice, SignatureUrl = x.SignatureUrl.Replace('\\', '/'), }; if (!string.IsNullOrEmpty(unitId)) { getDatas = getDatas.Where(x => x.UnitId == unitId); } if (!string.IsNullOrEmpty(roleIds)) { getDatas = getDatas.Where(x => roleList.Contains(x.RoleId)); } if (!string.IsNullOrEmpty(strParam)) { getDatas = getDatas.Where(x => x.PersonName.Contains(strParam)); } if (getDatas.Count() > 0) { getDataList = getDatas.OrderBy(x => x.UnitName).ThenBy(x => x.PersonName).ToList(); } } else { var getPersons =from x in db.Person_Persons where x.IsPost == true && x.RoleIds != null select new Model.UserItem { PersonId = x.PersonId, Account = x.Account, UserCode = x.JobNum, Password = x.Password, PersonName = x.PersonName, RoleId = x.RoleIds, RoleName = db.Sys_Role.First(z => z.RoleId == x.RoleIds).RoleName, UnitId = x.UnitId, UnitName = db.Base_Unit.First(z => z.UnitId == x.UnitId).UnitName, //LoginProjectId = y.ProjectId, //LoginProjectName = db.Base_Project.First(z => z.ProjectId == y.ProjectId).ProjectName, IdentityCard = x.IdentityCard, Email = x.Email, Telephone = x.Telephone, IsOffice = x.IsOffice, SignatureUrl = x.SignatureUrl.Replace('\\', '/'), }; if (!string.IsNullOrEmpty(unitId)) { getPersons = getPersons.Where(x => x.UnitId == unitId); } if (!string.IsNullOrEmpty(roleIds)) { getPersons = getPersons.Where(x => roleList.Contains(x.RoleId)); } if (!string.IsNullOrEmpty(strParam)) { getPersons = getPersons.Where(x => x.PersonName.Contains(strParam)); } if (getPersons.Count() > 0) { getDataList = getPersons.OrderBy(x => x.UnitName).ThenBy(x => x.PersonName).ToList(); } } return getDataList; } } /// /// 根据单位类型获取用户信息 /// /// /// /// /// public static List getUserByProjectIdUnitTypeQuery(string projectId, string unitType, string roleIds, string strParam) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List getDataLists = new List(); if (string.IsNullOrEmpty(roleIds)) { getDataLists = (from x in db.Person_Persons join y in db.SitePerson_Person on x.PersonId equals y.PersonId join z in db.Project_ProjectUnit on x.UnitId equals z.UnitId where y.ProjectId == projectId && z.ProjectId == projectId && z.UnitType == unitType && y.States == Const.State_1 && (strParam == null || x.PersonName.Contains(strParam)) && y.RoleIds != null select new Model.UserItem { PersonId = x.PersonId, Account = x.Account, UserCode = x.JobNum, Password = x.Password, PersonName = x.PersonName, RoleId = y.RoleIds, RoleName = RoleService.getRoleNamesRoleIds(y.RoleIds), UnitId = y.UnitId, UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, LoginProjectId = y.ProjectId, LoginProjectName = db.Base_Project.First(z => z.ProjectId == y.ProjectId).ProjectName, IdentityCard = x.IdentityCard, Email = x.Email, Telephone = x.Telephone, IsOffice = x.IsOffice, SignatureUrl = x.SignatureUrl.Replace('\\', '/'), }).ToList(); return getDataLists.OrderBy(x => x.UnitName).ThenBy(x => x.PersonName).ToList(); } else { List roleList = Funs.GetStrListByStr(roleIds, ','); foreach (var item in roleList) { var getDataList = (from x in db.Person_Persons join y in db.SitePerson_Person on x.PersonId equals y.PersonId join z in db.Project_ProjectUnit on x.UnitId equals z.UnitId where y.ProjectId == projectId && z.ProjectId == projectId && z.UnitType == unitType && y.States == Const.State_1 && (strParam == null || x.PersonName.Contains(strParam)) && y.RoleIds.Contains(item) && y.RoleIds != null select new Model.UserItem { PersonId = x.PersonId, Account = x.Account, UserCode = x.JobNum, Password = x.Password, PersonName = x.PersonName, RoleId = y.RoleIds, RoleName = RoleService.getRoleNamesRoleIds(y.RoleIds), UnitId = y.UnitId, UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, LoginProjectId = y.ProjectId, LoginProjectName = db.Base_Project.First(z => z.ProjectId == y.ProjectId).ProjectName, IdentityCard = x.IdentityCard, Email = x.Email, Telephone = x.Telephone, IsOffice = x.IsOffice, SignatureUrl = x.SignatureUrl.Replace('\\', '/'), }).ToList(); if (getDataList.Count() > 0) { getDataLists.AddRange(getDataList); } } if (getDataLists.Count() > 0) { return getDataLists.OrderBy(x => x.UnitName).ThenBy(x => x.PersonName).ToList(); } else { return getDataLists; } } } } /// /// 获取所有在岗用户 /// /// public static List UserLogOn2() { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var user = from x in db.Person_Persons where x.IsPost == true && x.RoleIds != null select x; return ObjectMapperManager.DefaultInstance.GetMapper, List>().Map(user.ToList()); } } /// /// 根据personId获取用户信息 /// /// /// public static void getSaveUserTel(string personId, string tel) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getUser = db.Person_Persons.FirstOrDefault(x => x.PersonId == personId); if (getUser != null) { getUser.Telephone = tel; db.SubmitChanges(); } } } /// /// 根据personId获取用户信息 /// /// /// public static void getSaveUserSignatureUrl(string personId, string SignatureUrl) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getUser = db.Person_Persons.FirstOrDefault(x => x.PersonId == personId); if (getUser != null) { getUser.SignatureUrl = SignatureUrl; db.SubmitChanges(); } } } /// /// 获取人员未浏览记录数 /// /// /// public static int getMenuUnreadCount(string menuId, string projectId, string personId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { int count = 0; var readCount = db.Sys_UserRead.Where(x => x.MenuId == menuId && x.ProjectId == projectId && x.UserId == personId).Select(x => x.DataId).Distinct().Count(); if (menuId == Const.ProjectNoticeMenuId) { var noticeCount = db.InformationProject_Notice.Where(x => x.AccessProjectId.Contains(projectId) && x.IsRelease == true).Count(); count = noticeCount - readCount; } count = count < 0 ? 0 : count; return count; } } /// /// 新增待浏览记录 /// /// /// public static void getAddUserRead(string menuId, string projectId, string personId, string dataId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.Sys_UserRead newRead = new Model.Sys_UserRead { UserReadId = SQLHelper.GetNewID(), UserId = personId, MenuId = menuId, ProjectId = projectId, DataId = dataId, }; db.Sys_UserRead.InsertOnSubmit(newRead); db.SubmitChanges(); } } /// /// 保存浏览记录 /// /// /// public static void getSaveUserRead(string menuId, string projectId, string personId, string dataId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var userRead = db.Sys_UserRead.FirstOrDefault(x => x.ProjectId == projectId && x.UserId == personId && x.DataId == dataId); if (userRead == null) { Model.Sys_UserRead newRead = new Model.Sys_UserRead { UserReadId = SQLHelper.GetNewID(), UserId = personId, MenuId = menuId, ProjectId = projectId, DataId = dataId, ReadTime = DateTime.Now, }; db.Sys_UserRead.InsertOnSubmit(newRead); db.SubmitChanges(); } } } /// /// 根据单位类型获取用户信息 /// /// /// /// /// public static List getUserByProjectIdUserIdsQuery(string projectId, string userIds, string strParam) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List getDataList = new List(); List userList = Funs.GetStrListByStr(userIds, ','); if (userList.Count() > 0) { var getDatas = (from x in db.Person_Persons join y in db.SitePerson_Person on x.PersonId equals y.PersonId where y.ProjectId == projectId && y.States == Const.State_1 && y.RoleIds != null select new Model.UserItem { PersonId = x.PersonId, Account = x.Account, UserCode = x.JobNum, Password = x.Password, PersonName = x.PersonName, RoleId = y.RoleIds, RoleName = RoleService.getRoleNamesRoleIds(y.RoleIds), UnitId = y.UnitId, UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, LoginProjectId = y.ProjectId, LoginProjectName = db.Base_Project.First(z => z.ProjectId == y.ProjectId).ProjectName, IdentityCard = x.IdentityCard, Email = x.Email, Telephone = x.Telephone, IsOffice = x.IsOffice, SignatureUrl = x.SignatureUrl.Replace('\\', '/'), }); if (!string.IsNullOrEmpty(strParam)) { getDatas = getDatas.Where(x => x.PersonName.Contains(strParam)); } string unitId = Const.UnitId_SEDIN; var unitList = (from x in db.Person_Persons where userList.Contains(x.PersonId) select x.UnitId).Distinct().ToList(); if (unitList.Count() == 1) { unitId = unitList.FirstOrDefault(); getDatas = getDatas.Where(x => x.UnitId == unitId); } else if (!unitList.Contains(unitId)) { getDatas = getDatas.Where(x => unitList.Contains(x.UnitId)); } else { getDatas = getDatas.Where(x => x.UnitId == unitId); } getDataList = getDatas.OrderBy(x => x.UnitName).ThenBy(x => x.PersonName).ToList(); } return getDataList; } } } }