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 getUser = db.View_Sys_User.FirstOrDefault(x => (x.Account == userInfo.Account || x.Telephone == userInfo.Telephone) && x.IsPost == true && x.Password == Funs.EncryptionPassword(userInfo.Password)); return ObjectMapperManager.DefaultInstance.GetMapper().Map(getUser); } } /// /// 根据userId获取用户信息 /// /// /// public static Model.UserItem getUserByUserId(string userId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getUser = db.View_Sys_User.FirstOrDefault(x => x.UserId == userId); return ObjectMapperManager.DefaultInstance.GetMapper().Map(getUser); } } /// /// 根据unitid获取用户信息 /// /// /// public static List getUserByUnitId(string unitId, string strParam) { using (Model.SGGLDB db = new Model.SGGLDB(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.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List getDataList = new List(); List roleList = Funs.GetStrListByStr(roleIds, ','); if (!string.IsNullOrEmpty(projectId)) { getDataList = (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) && (roleIds == null || roleList.Contains(y.RoleId)) && (strParam == null || x.UserName.Contains(strParam)) && y.IsPost ==true 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(); } else { getDataList = (from x in db.Sys_User where x.IsPost == true && (x.UnitId == unitId || unitId == null) && (roleIds == null || roleList.Contains(x.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 = 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(); } 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.SGGLDB db = new Model.SGGLDB(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)) && y.IsPost == true 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.SGGLDB db = new Model.SGGLDB(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.SGGLDB db = new Model.SGGLDB(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.SGGLDB db = new Model.SGGLDB(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.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 == 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.SGGLDB db = new Model.SGGLDB(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(); } } } /// /// 根据单位类型获取用户信息 /// /// /// /// /// 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 getDataLists = (from x in db.Sys_User join y in db.Project_ProjectUser on x.UserId equals y.UserId where y.ProjectId == projectId 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('\\', '/'), }); if (!string.IsNullOrEmpty(strParam)) { getDataLists = getDataLists.Where(x => x.UserName.Contains(strParam)); } string unitId = Const.UnitId_CWCEC; var unitList = (from x in db.Sys_User where userList.Contains(x.UserId) select x.UnitId).Distinct().ToList(); if (unitList.Count() == 1) { unitId = unitList.FirstOrDefault(); getDataList = getDataLists.Where(x => x.UnitId == unitId).ToList(); } else if (!unitList.Contains(unitId)) { getDataList = getDataLists.Where(x => unitList.Contains(x.UnitId)).ToList(); } else { getDataList = getDataLists.Where(x => x.UnitId == unitId).ToList(); } } return getDataList.OrderBy(x => x.UnitName).ThenBy(x => x.UserName).ToList(); } } } }