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(); 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.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); } } } } 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.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)) 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(); } } } #region 保存Meeting /// /// 保存Meeting /// /// 会议信息 /// public static string SaveUserInfo(Model.UserListItem listItem) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List userInfo = listItem.list; string returnInfos = string.Empty; int i = 0; int rowNum = 0; foreach (var item in userInfo) { i++; string info = string.Empty; if (string.IsNullOrEmpty(item.UnitName)) { info += "单位名称为空。"; } if (string.IsNullOrEmpty(item.UserName)) { info += "用户名称为空。"; } if (string.IsNullOrEmpty(item.Account)) { info += "用户账号为空。"; } if (string.IsNullOrEmpty(info)) { Model.Sys_User newUser = new Model.Sys_User { UserId = item.UserId, UserCode = item.UserCode, UserName = item.UserName, Account = item.Account, Password = item.Password, IdentityCard = item.IdentityCard, Telephone = item.Telephone, IsPost = item.IsPost == "1" ? true : false, IsOffice = true, }; #region 用户单位 newUser.UnitId = Const.UnitId_CD; if (!string.IsNullOrEmpty(item.UnitName) || !string.IsNullOrEmpty(item.UnitCode)) { var getUnit = db.Base_Unit.FirstOrDefault(x => x.UnitName == item.UnitName || 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; } } #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.Password = Funs.EncryptionPassword(Const.Password); } 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.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; db.SubmitChanges(); } else { newUser.UserId = SQLHelper.GetNewID(); db.Sys_User.InsertOnSubmit(newUser); db.SubmitChanges(); } rowNum++; } else { returnInfos += "第" + i.ToString() + "行," + info; } } if (!string.IsNullOrEmpty(returnInfos)) { returnInfos = "同步成功" + rowNum.ToString() + "条记录。" + returnInfos; } else { returnInfos = "同步成功" + rowNum.ToString() + "条记录。"; } return returnInfos; } } #endregion } }