/// <summary> /// 新增用户 /// </summary> /// <param name="user"></param> public void AddUser(SYS_USERINFO user, ref string errMsg) { try { using (HISDataEntities appEntity = new HISDataEntities()) { //检查重复用户名 IQueryable <SYS_USERINFO> appList = appEntity.SYS_USERINFO.Where(o => o.LoginName == user.LoginName); if (appList.Count() > 0) { errMsg = "用户名已经存在"; return; } user.GUID = Guid.NewGuid(); user.PASSWORD = Common.MD5Helper.MD5Encrypt32bit(user.PASSWORD); appEntity.SYS_USERINFO.Add(user); //为用户设置默认角色 appEntity.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 编辑角色 /// </summary> /// <param name="roleInfo"></param> /// <param name="errMsg"></param> public void EditRole(SYS_ROLE roleInfo, ref string errMsg) { try { using (HISDataEntities appEntities = new HISDataEntities()) { SYS_ROLE roleItem = appEntities.SYS_ROLE.Where(o => o.ID == roleInfo.ID).FirstOrDefault(); if (roleItem == null) { errMsg = "查无数据"; return; } //检查用户编码不能重复 if (appEntities.SYS_ROLE.Where(o => o.ROLENUM == roleInfo.ROLENUM && o.ID != roleInfo.ID).Count() > 0) { errMsg = "角色编码不能重复"; return; } roleItem.ROLENAME = roleInfo.ROLENAME; roleItem.ROLENUM = roleInfo.ROLENUM; //roleItem.Disc = roleInfo.Disc; appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 编辑部门 /// </summary> /// <param name="department"></param> /// <param name="errMsg"></param> public void EditDepartment(SYS_Department department, ref string errMsg) { try { using (HISDataEntities appEntitys = new HISDataEntities()) { SYS_Department editItem = appEntitys.SYS_Department.Where(o => o.ID == department.ID).FirstOrDefault(); if (editItem == null) { errMsg = "查无数据"; return; } editItem.DepartmentNum = department.DepartmentNum; editItem.Department = department.Department; //editItem.Disc = department.Disc; editItem.ParentID = department.ParentID; editItem.Flag = department.Flag; appEntitys.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 编辑User /// </summary> /// <param name="user"></param> /// <param name="errMsg"></param> public void EditUser(SYS_USERINFO user, ref string errMsg) { try { using (HISDataEntities appEntity = new HISDataEntities()) { var item = appEntity.SYS_USERINFO.Where(o => o.ID == user.ID).FirstOrDefault(); if (item == null) { errMsg = "无此数据"; return; } item.NAME = user.NAME; item.LoginName = user.LoginName; item.Position = user.Position; item.QQ = user.QQ; item.Tel = user.Tel; item.Email = user.Email; item.DepartmentID = user.DepartmentID; item.HeadImg = user.HeadImg; appEntity.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 添加部门 /// </summary> /// <param name="department"></param> /// <param name="errMsg"></param> public void AddDepartment(SYS_Department department, ref string errMsg) { try { department.Flag = 1; using (HISDataEntities appEntitys = new HISDataEntities()) { if (department.ParentID == null) { department.ParentID = 0; } //检查部门编号和部门名称不能重复 var queryList = appEntitys.SYS_Department.Where(o => o.Department == department.Department || o.DepartmentNum == department.DepartmentNum); if (queryList.Count() > 0) { errMsg = "部门名称或部门编号重复"; return; } department.DepartmentNum = CreateDeptNum(department); appEntitys.SYS_Department.Add(department); appEntitys.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 添加菜单 /// </summary> /// <param name="menuItem"></param> /// <param name="errMsg"></param> public void AddMenu(SYS_ITEMMENU menuItem, ref string errMsg) { try { using (HISDataEntities hisEntities = new HISDataEntities()) { menuItem.MenuNum = CreateMenuNum(menuItem); menuItem.CREATETIME = DateTime.Now; menuItem.STATE = "open"; //更新上级菜单state 为 closeed var findItem = hisEntities.SYS_ITEMMENU.Where(o => o.ID == menuItem.ParentID).FirstOrDefault(); if (findItem != null) { findItem.STATE = "closed"; } menuItem.CHECKED = true; menuItem.SEQ = 1;//排序 hisEntities.SYS_ITEMMENU.Add(menuItem); hisEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 删除用户数据 /// </summary> /// <param name="userId"></param> /// <param name="errMsg"></param> public void DeleteUser(int userId, ref string errMsg) { try { using (HISDataEntities appEntitys = new HISDataEntities()) { var appUser = appEntitys.SYS_USERINFO.Where(o => o.ID == userId).FirstOrDefault(); if (appUser == null) { errMsg = "查找不到数据数据"; return; } //删除用户 appEntitys.SYS_USERINFO.Remove(appUser); //删除用户级联的角色 var roleMapping = appEntitys.SYS_USERROLEMAPPING.Where(o => o.USERID == userId); if (roleMapping.Count() > 0) { foreach (var item in roleMapping) { appEntitys.SYS_USERROLEMAPPING.Remove(item); } } appEntitys.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 添加角色 /// </summary> /// <param name="roleInfo"></param> /// <param name="errMsg"></param> public void AddRole(SYS_ROLE roleInfo, ref string errMsg) { try { using (HISDataEntities appEntities = new HISDataEntities()) { roleInfo.FLAG = 1; roleInfo.CREATETIME = DateTime.Now; //判断角色编码不能重复 var existRole = appEntities.SYS_ROLE.Where(o => (o.ROLENUM == roleInfo.ROLENUM || o.ROLENAME == roleInfo.ROLENAME) && o.FLAG != -1).FirstOrDefault(); if (existRole != null) { errMsg = "角色编码/名称不能重复"; return; } roleInfo.ROLENUM = CreateRoleNum(roleInfo); appEntities.SYS_ROLE.Add(roleInfo); appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 删除权限 /// </summary> public void DeleteAction(int actionId, ref string errMsg) { try { List <SYS_Action> deleteList = null; using (HISDataEntities appEntities = new HISDataEntities()) { SYS_Action actionItem = appEntities.SYS_Action.Where(o => o.ID == actionId).FirstOrDefault(); if (actionItem == null) { errMsg = "查无数据"; return; } actionItem.Flag = 0; deleteList = DeleteActionChildren(appEntities, actionId); deleteList.Add(actionItem); //更新菜单中的ActionNum SYS_ITEMMENU findMenu = appEntities.SYS_ITEMMENU.Where(o => o.ActionNum == actionItem.ActionNum).FirstOrDefault(); if (findMenu != null) { findMenu.ActionNum = string.Empty; } // 保存 appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 设置角色的权限 /// </summary> /// <param name="roleid">角色Id</param> /// <param name="p">权限Id</param> /// <param name="errMsg"></param> public void SaveRoleAction(int roleid, string[] actionIds, ref string errMsg) { try { List <SYS_ROLEACTIONMAPPING> existList = null; using (HISDataEntities appEntities = new HISDataEntities()) { existList = appEntities.SYS_ROLEACTIONMAPPING.Where(o => o.ROLEID == roleid).ToList(); //检查是否存在,存在则忽略,不存在则插入 foreach (string actionId in actionIds) { int intActionId = Convert.ToInt32(actionId); var actionItem = existList.Where(o => o.ACTIONID == intActionId).ToList(); if (actionItem != null && actionItem.Count() > 0) { continue; } //不存在的插入进数据库 SYS_ROLEACTIONMAPPING newMapping = new SYS_ROLEACTIONMAPPING(); newMapping.ROLEID = roleid; newMapping.ACTIONID = intActionId; newMapping.CREATETIME = DateTime.Now; appEntities.SYS_ROLEACTIONMAPPING.Add(newMapping); } //遍历数据库中的数据,数据库存在但是参数中没有的,需要删除 foreach (var item in existList) { if (!actionIds.Contains(item.ACTIONID.ToString())) { var deleteItem = appEntities.SYS_ROLEACTIONMAPPING.Where(o => o.ID == item.ID).FirstOrDefault(); appEntities.SYS_ROLEACTIONMAPPING.Remove(deleteItem); } } //提交所做的更改 appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 添加权限 /// </summary> /// <param name="actionItem"></param> /// <param name="errMsg"></param> public void AddAction(SYS_Action actionItem, ref string errMsg) { try { string actionNum = CreateActionNum(actionItem); //创建权限 actionItem.ActionNum = actionNum; if (actionItem.ParentID == null) { actionItem.ParentID = 0; } using (HISDataEntities appEntities = new HISDataEntities()) { actionItem.CREATETIME = DateTime.Now; actionItem.Flag = 1; //新增权限名称不能重复 var findList = appEntities.SYS_Action.Where(o => o.Flag == 1 && o.ActionName == actionItem.ActionName && o.ParentID == actionItem.ParentID); if (findList.Count() > 0) { errMsg = "权限名称已经存在"; return; } if (actionItem.Type == 1) { //给菜单编写权限编码 var appMenu = appEntities.SYS_ITEMMENU.Where(o => o.ID == actionItem.ActionMenu).FirstOrDefault(); //如果菜单已被其他权限关联,则不能继续被关联 if (!string.IsNullOrEmpty(appMenu.ActionNum)) { errMsg = "菜单已被权限" + appMenu.ActionNum + "关联,请选择其他菜单"; return; } appMenu.ActionNum = actionItem.ActionNum; } appEntities.SYS_Action.Add(actionItem); appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 删除角色 /// </summary> /// <param name="roleId"></param> /// <param name="errMsg"></param> public void DeleteRole(int roleId, ref string errMsg) { try { using (HISDataEntities appEntities = new HISDataEntities()) { var roleItem = appEntities.SYS_ROLE.Where(o => o.ID == roleId).FirstOrDefault(); if (roleItem == null) { errMsg = "查无数据"; return; } //标记删除角色 roleItem.FLAG = -1; //删除角色关联的权限 var roleMapping = appEntities.SYS_ROLEACTIONMAPPING.Where(o => o.ROLEID == roleId); if (roleMapping.Count() > 0) { foreach (var item in roleMapping) { appEntities.SYS_ROLEACTIONMAPPING.Remove(item); } } //删除角色关联的用户 var userMapping = appEntities.SYS_USERROLEMAPPING.Where(o => o.ROLEID == roleId); if (userMapping.Count() > 0) { foreach (var item in userMapping) { appEntities.SYS_USERROLEMAPPING.Remove(item); } } appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 想修改用户密码 /// </summary> /// <param name="userId"></param> /// <param name="errMsg"></param> public void ChangePassword(int userId, string password, ref string errMsg) { try { using (HISDataEntities appEntities = new HISDataEntities()) { var findUser = appEntities.SYS_USERINFO.Where(o => o.ID == userId).FirstOrDefault(); if (findUser == null) { errMsg = "查无用户"; return; } // 密码使用md5 加密 findUser.PASSWORD = Common.MD5Helper.MD5Encrypt32bit(password); appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 删除菜单 /// </summary> /// <param name="menuId"></param> /// <param name="errMsg"></param> public void DeleteMenu(int menuId, ref string errMsg) { try { using (HISDataEntities appEntities = new HISDataEntities()) { var menuItem = appEntities.SYS_ITEMMENU.Where(o => o.ID == menuId).FirstOrDefault(); if (menuId == null) { errMsg = "查无菜单"; return; } appEntities.SYS_ITEMMENU.Remove(menuItem); appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 删除部门 /// </summary> /// <param name="departmentID"></param> /// <param name="errMsg"></param> public void DeleteDepartment(int departmentID, ref string errMsg) { try { using (HISDataEntities appEntitys = new HISDataEntities()) { SYS_Department editItem = appEntitys.SYS_Department.Where(o => o.ID == departmentID).FirstOrDefault(); if (editItem == null) { errMsg = "查无数据"; return; } //标记删除 editItem.Flag = 0; appEntitys.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 删除user的role /// </summary> /// <param name="userid"></param> /// <param name="intRoleIds"></param> /// <param name="errMsg"></param> public void DeleteUserRole(int userid, int roleid, ref string errMsg) { try { using (HISDataEntities appEntitys = new HISDataEntities()) { var item = appEntitys.SYS_USERROLEMAPPING.Where(o => o.USERID == userid && o.ROLEID == roleid).FirstOrDefault(); if (item == null) { errMsg = "用户不存在该角色"; return; } appEntitys.SYS_USERROLEMAPPING.Remove(item); appEntitys.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 设置用户角色 /// </summary> /// <param name="p"></param> /// <param name="intRoleIds"></param> /// <param name="errMsg"></param> public void SetUserRole(int userid, int[] intRoleIds, ref string errMsg, out string existRoleNames) { try { using (HISDataEntities appEntitys = new HISDataEntities()) { existRoleNames = string.Empty; var items = appEntitys.SYS_USERROLEMAPPING.Where(o => o.USERID == userid); foreach (int roleId in intRoleIds) { //存在则不添加 if (items.Where(o => o.ROLEID == roleId).Count() > 0) { var appRole = appEntitys.SYS_ROLE.Where(o => o.ID == roleId).FirstOrDefault(); if (appRole != null) { existRoleNames += "," + appRole.ROLENAME; } continue; } SYS_USERROLEMAPPING mapping = new SYS_USERROLEMAPPING(); mapping.USERID = userid; mapping.ROLEID = roleId; mapping.CREATEDATE = DateTime.Now; appEntitys.SYS_USERROLEMAPPING.Add(mapping); } appEntitys.SaveChanges(); } } catch (Exception e) { existRoleNames = string.Empty; errMsg = e.Message; } }
/// <summary> /// 编辑菜单 /// </summary> /// <param name="menuItem"></param> /// <param name="errMsg"></param> public void EditMenu(SYS_ITEMMENU menuItem, ref string errMsg) { try { using (HISDataEntities appEntities = new HISDataEntities()) { var findItem = appEntities.SYS_ITEMMENU.Where(o => o.ID == menuItem.ID).FirstOrDefault(); findItem.TEXT = menuItem.TEXT; findItem.ParentID = menuItem.ParentID; findItem.MenuNum = menuItem.MenuNum; //findItem.Disc = menuItem.Disc; findItem.ICON = menuItem.ICON; findItem.URL = menuItem.URL; findItem.ORDERINDEX = menuItem.ORDERINDEX; appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }
/// <summary> /// 编辑权限 /// </summary> /// <param name="actionItem">最新的权限数据</param> /// <param name="errMsg">错误提示</param> public void EditAction(SYS_Action actionItem, ref string errMsg) { try { using (HISDataEntities appEntities = new HISDataEntities()) { //原来的数据 var findItem = (from a in appEntities.SYS_Action join b in appEntities.SYS_ITEMMENU on a.ActionNum equals b.ActionNum into temp from b in temp.DefaultIfEmpty() where a.ID == actionItem.ID select new { a, b }).FirstOrDefault(); SYS_Action updateItem = findItem.a; if (findItem.b != null) { updateItem.ActionMenu = findItem.b.ID; } if (updateItem == null) { errMsg = "查无数据"; return; } //关联菜单发生变化 //1:菜单权限下关联的菜单发生改变 //2: 权限类型按钮权限和控制权限之间互相转换 if ((actionItem.ActionMenu != updateItem.ActionMenu) || (actionItem.Type != updateItem.Type)) { //如果需要关联的菜单已经被关联了,则限制不能被关联 var updateMenu = appEntities.SYS_ITEMMENU.Where(o => o.ID == actionItem.ActionMenu).FirstOrDefault(); if (!string.IsNullOrEmpty(updateMenu.ActionNum) && updateMenu.ActionNum != actionItem.ActionNum) { errMsg = "菜单已被权限" + updateMenu.ActionNum + "关联,请选择其他菜单"; return; } if (updateItem.Type == 1) { //将原来的关联菜单取消 var appMenu = appEntities.SYS_ITEMMENU.Where(o => o.ActionNum == updateItem.ActionNum).FirstOrDefault(); if (appMenu != null) { appMenu.ActionNum = string.Empty; } } if (actionItem.Type == 1) { //关联最新的权限Num updateMenu.ActionNum = actionItem.ActionNum; } } updateItem.ActionNum = actionItem.ActionNum; updateItem.ActionName = actionItem.ActionName; updateItem.ActionMenu = actionItem.ActionMenu; //updateItem.Disc = actionItem.Disc; updateItem.ParentID = actionItem.ParentID; updateItem.Type = actionItem.Type; appEntities.SaveChanges(); } } catch (Exception e) { errMsg = e.Message; } }