using EmitMapper; using Model; 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.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { var getUser = db.View_Sys_User.FirstOrDefault(x => (x.Account == userInfo.Account || x.Telephone == userInfo.Telephone) && x.IsPost == true && x.Password == Funs.EncryptionPassword(userInfo.Password)); if (getUser != null) { return ObjectMapperManager.DefaultInstance.GetMapper().Map(getUser); } else { var getPerson = 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.IsUsed == true orderby x.InTime descending select new Model.UserItem { UserId = x.PersonId, UserCode = x.CardNo, Password = x.Password, UserName = x.PersonName, UnitId = x.UnitId, LoginProjectId = x.ProjectId, IdentityCard = x.IdentityCard, Account = x.PersonName, UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName, LoginProjectName = db.Base_Project.First(u => u.ProjectId == x.ProjectId).ProjectName, Telephone = x.Telephone, WorkPostId = x.WorkPostId, WorkPostName = db.Base_WorkPost.First(w => w.WorkPostId == x.WorkPostId).WorkPostName, }; return getPerson.FirstOrDefault(); } } } /// /// 根据userId获取用户信息 /// /// /// public static Model.UserItem getUserByUserId(string userId) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { var getUser = db.View_Sys_User.FirstOrDefault(x => x.UserId == userId); getUser.Password = null; return ObjectMapperManager.DefaultInstance.GetMapper().Map(getUser); } } /// /// 根据unitid获取用户信息 /// /// /// public static List getUserByUnitId(string unitId, string strParam) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { var getUser = (from x in db.Sys_User join y in db.Sys_Role on x.RoleId equals y.RoleId where x.UnitId == unitId && x.IsPost == true && (strParam == null || x.UserName.Contains(strParam)) orderby x.UserName select new Model.BaseInfoItem { BaseInfoId = x.UserId, BaseInfoName = x.UserName, BaseInfoCode = x.Telephone }).ToList(); return getUser; } } /// /// 根据projectId、unitid获取用户信息 /// /// /// /// /// public static List getUserByProjectIdUnitIdQuery(string projectId, string unitId, string roleIds, string strParam) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { List getDataList = new List(); HashSet userid = new HashSet(); List roleList = Funs.GetStrListByStr(roleIds, ','); if (!string.IsNullOrEmpty(projectId)) { var templist = (from x in db.Sys_User join y in db.Project_ProjectUser on x.UserId equals y.UserId where y.ProjectId == projectId && (x.UnitId == unitId || unitId == null) && (strParam == null || x.UserName.Contains(strParam)) select new Model.UserItem { UserId = x.UserId, Account = x.Account, UserCode = x.UserCode, Password = x.Password, UserName = x.UserName, RoleId = y.RoleId, RoleName = RoleService.getRoleNamesRoleIds(y.RoleId), 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, }).ToList(); foreach (var item in templist) { if (!string.IsNullOrEmpty(item.SignatureUrl)) { item.SignatureUrl = item.SignatureUrl.Replace('\\', '/'); } if (roleList.Count > 0) { foreach (var role in roleList) { if (item.RoleId != null && item.RoleId.IndexOf(role) >= 0) { if (!userid.Contains(item.UserId)) { getDataList.Add(item); userid.Add(item.UserId); } } } } else { if (!userid.Contains(item.UserId)) { getDataList.Add(item); userid.Add(item.UserId); } } } } else { var templist = (from x in db.Sys_User where x.IsPost == true && (x.UnitId == unitId || unitId == null) && (strParam == null || x.UserName.Contains(strParam)) select new Model.UserItem { UserId = x.UserId, Account = x.Account, UserCode = x.UserCode, Password = x.Password, UserName = x.UserName, RoleId = x.RoleId, RoleName = db.Sys_Role.First(z => z.RoleId == x.RoleId).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('\\', '/'), }).ToList(); foreach (var item in templist) { if (roleList.Count > 0) { foreach (var role in roleList) { if (item.RoleId.IndexOf(role) >= 0) { if (!userid.Contains(item.UserId)) { getDataList.Add(item); userid.Add(item.UserId); } } } } else { if (!userid.Contains(item.UserId)) { getDataList.Add(item); userid.Add(item.UserId); } } } } return getDataList.OrderBy(x => x.UnitName).ThenBy(x => x.UserName).ToList(); } } /// /// 根据单位类型获取用户信息 /// /// /// /// /// public static List getUserByProjectIdUnitTypeQuery(string projectId, string unitType, string roleIds, string strParam) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { List getDataList = new List(); List roleList = Funs.GetStrListByStr(roleIds, ','); getDataList = (from x in db.Sys_User join y in db.Project_ProjectUser on x.UserId equals y.UserId join z in db.Project_ProjectUnit on x.UnitId equals z.UnitId where y.ProjectId == projectId && z.ProjectId == projectId && z.UnitType == unitType && (roleIds == null || roleList.Contains(y.RoleId)) && (strParam == null || x.UserName.Contains(strParam)) select new Model.UserItem { UserId = x.UserId, Account = x.Account, UserCode = x.UserCode, Password = x.Password, UserName = x.UserName, RoleId = y.RoleId, RoleName = RoleService.getRoleNamesRoleIds(y.RoleId), 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 getDataList.OrderBy(x => x.UnitName).ThenBy(x => x.UserName).ToList(); } } /// /// 获取所有在岗用户 /// /// public static List UserLogOn2() { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { var user = from x in db.Sys_User where x.IsPost == true select x; return ObjectMapperManager.DefaultInstance.GetMapper, List>().Map(user.ToList()); } } /// /// 根据userId获取用户信息 /// /// /// public static void getSaveUserTel(string userId, string tel) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { var getUser = db.Sys_User.FirstOrDefault(x => x.UserId == userId); if (getUser != null) { getUser.Telephone = tel; db.SubmitChanges(); } } } /// /// 根据userId获取用户信息 /// /// /// public static void getSaveUserSignatureUrl(string userId, string SignatureUrl) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { var getUser = db.Sys_User.FirstOrDefault(x => x.UserId == userId); if (getUser != null) { getUser.SignatureUrl = SignatureUrl; db.SubmitChanges(); } } } /// /// 获取人员未浏览记录数 /// /// /// public static int getMenuUnreadCount(string menuId, string projectId, string userId) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { int count = 0; var readCount = db.Sys_UserRead.Where(x => x.MenuId == menuId && x.ProjectId == projectId && x.UserId == userId).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 getSaveUserRead(string menuId, string projectId, string userId, string dataId) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { var userRead = db.Sys_UserRead.FirstOrDefault(x => x.ProjectId == projectId && x.UserId == userId && x.DataId == dataId); if (userRead == null) { Model.Sys_UserRead newRead = new Model.Sys_UserRead { UserReadId = SQLHelper.GetNewID(), UserId = userId, MenuId = menuId, ProjectId = projectId, DataId = dataId, ReadTime = DateTime.Now, }; db.Sys_UserRead.InsertOnSubmit(newRead); db.SubmitChanges(); } } } #region 保存用户 /// /// 保存用户 /// /// 保存用户 /// public static string SaveCNCCGUserInfo(Model.UserListItem listItem) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { string returnInfos = string.Empty; int i = 0; int rowNum = 0; foreach (var item in listItem.list) { Model.Sys_User newUser = new Model.Sys_User { UserId = item.UserId, UserCode = item.UserCode, UserName = item.UserName, Account = item.Account, Sex = item.Sex=="男"?"1":"0", // Password = item.Password, IdentityCard = item.IdentityCard, Telephone = item.Telephone, IsPost = item.IsPost, Remark = item.Remark, }; #region 用户单位 if (!string.IsNullOrEmpty(item.UnitName) || !string.IsNullOrEmpty(item.UnitCode)) { var getUnit = db.Base_Unit.FirstOrDefault(x => x.UnitName == item.UnitName); if (getUnit != null) { newUser.UnitId = getUnit.UnitId; } else { Model.Base_Unit newUnit = new Model.Base_Unit { UnitId = SQLHelper.GetNewID(), UnitName = item.UnitName, UnitCode = item.UnitCode, }; db.Base_Unit.InsertOnSubmit(newUnit); db.SubmitChanges(); newUser.UnitId = newUnit.UnitId; } if (item.UnitName == "中化学交通建设集团有限公司") { newUser.IsOffice = true; } } #endregion /* #region 用户部门 if (!string.IsNullOrEmpty(item.DepartName)) { var getDepart = db.Base_Depart.FirstOrDefault(x => x.DepartName == item.DepartName); if (getDepart != null) { newUser.DepartId = getDepart.DepartId; } else { Model.Base_Depart newDepart = new Model.Base_Depart { DepartId = SQLHelper.GetNewID(), DepartName = item.DepartName, }; db.Base_Depart.InsertOnSubmit(newDepart); db.SubmitChanges(); newUser.DepartId = newDepart.DepartId; } } #endregion #region 用户角色 if (!string.IsNullOrEmpty(item.RoleName)) { var getRole = db.Sys_Role.FirstOrDefault(x => x.RoleName == item.RoleName); if (getRole != null) { newUser.RoleId = getRole.RoleId; } else { Model.Sys_Role newRole = new Model.Sys_Role { RoleId = SQLHelper.GetNewID(), RoleName = item.RoleName, }; db.Sys_Role.InsertOnSubmit(newRole); db.SubmitChanges(); newUser.RoleId = newRole.RoleId; } } #endregion*/ /* if (!string.IsNullOrEmpty(item.Password)) { newUser.Password = item.Password; } else { newUser.RawPassword = UserService.getInitialPassword(newUser.UnitId, newUser.IdentityCard); newUser.Password = Funs.EncryptionPassword(newUser.RawPassword); }*/ var geUser = db.Sys_User.FirstOrDefault(x => (x.Account == item.Account && item.Account != null) || (x.IdentityCard == item.IdentityCard && item.IdentityCard != null)); if (geUser != null) { geUser.UserCode = newUser.UserCode; geUser.UserName = newUser.UserName; geUser.Sex= newUser.Sex; // geUser.Account = newUser.Account; // geUser.Password = newUser.Password; geUser.IdentityCard = newUser.IdentityCard; geUser.Telephone = newUser.Telephone; // geUser.UnitId = newUser.UnitId; // geUser.DepartId = newUser.DepartId; // geUser.RoleId = newUser.RoleId; geUser.IsPost = newUser.IsPost; geUser.Remark = newUser.Remark; db.SubmitChanges(); rowNum++; } else { newUser.UserId = SQLHelper.GetNewID(); newUser.RawPassword = UserService.getInitialPassword(newUser.UnitId, newUser.IdentityCard); newUser.Password = Funs.EncryptionPassword(newUser.RawPassword); db.Sys_User.InsertOnSubmit(newUser); db.SubmitChanges(); rowNum++; } } if (!string.IsNullOrEmpty(returnInfos)) { returnInfos = "同步成功" + rowNum.ToString() + "条记录。" + returnInfos; } else { returnInfos = "同步成功" + rowNum.ToString() + "条记录。"; } return returnInfos; } } #endregion } }