using System; using System.Collections.Generic; using System.Linq; using System.Text; using CY.IDAL; using System.Data.SqlClient; using System.Data; using System.Transactions; using CY.Model; namespace CY.SQLDAL { public class OA_FirmRoleDAL : IOA_FirmRoleDAL { private Database _dataBase = null; public OA_FirmRoleDAL() { _dataBase = new Database(); } /// /// 新增 /// /// /// public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { Model.OA_FirmRole trueModel = model as Model.OA_FirmRole; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@FirmId",trueModel.FirmId), new SqlParameter("@RoleName",trueModel.RoleName), new SqlParameter("@IsUsed",trueModel.IsUsed), new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime), new SqlParameter("@Operator",trueModel.Operator), new SqlParameter("@Remark",trueModel.Remark) }; try { _dataBase.Query("sp_OA_FirmRole_Insert", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 修改 /// /// /// public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.OA_FirmRole trueModel = model as Model.OA_FirmRole; if (trueModel == null) { return false; } IList sqlParms = new List() {new SqlParameter("@Keyid",trueModel.Keyid), new SqlParameter("@FirmId",trueModel.FirmId), new SqlParameter("@RoleName",trueModel.RoleName), new SqlParameter("@IsUsed",trueModel.IsUsed), new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime), new SqlParameter("@Operator",trueModel.Operator), new SqlParameter("@Remark",trueModel.Remark) }; try { _dataBase.Query("sp_OA_FirmRole_Update", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 删除 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { Model.OA_FirmRole trueModel = model as Model.OA_FirmRole; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid) }; try { _dataBase.Query("sp_OA_FirmRole_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 删除角色以及角色的权限 /// /// /// public bool DeleteRole(Infrastructure.Domain.IAggregateRoot model) { OA_FirmRolePermissionsRelDAL dal_OA_FirmRolePermissionsRelDAL = new OA_FirmRolePermissionsRelDAL(_dataBase); Model.Sys_Permissions_Role trueModel = model as Model.Sys_Permissions_Role; if (trueModel == null) { return false; } try { using (TransactionScope transactionscope = new TransactionScope()) { DeleteModel(model); List m_OA_FirmRolePermissionsRelList = dal_OA_FirmRolePermissionsRelDAL.SelectListByRoleId(trueModel.Keyid) as List; foreach (var item in m_OA_FirmRolePermissionsRelList) { dal_OA_FirmRolePermissionsRelDAL.DeleteModel(item); } transactionscope.Complete(); } } catch (Exception ex) { throw ex; } return true; } /// /// 分页查询 /// /// /// /// public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination) { throw new NotImplementedException(); } /// /// 单个查询 /// /// /// public IEnumerable SelectAllModel(Infrastructure.Query.Query query) { throw new NotImplementedException(); } /// /// 根据厂商编号查询全部角色 /// /// /// public IEnumerable SelectList(Guid FirmId) { try { IList result = _dataBase.SelectModel("*", "OA_FirmRole", " FirmId='" + FirmId + "' ") as IList;//执行查询 return result;//返回结果 } catch (Exception ex) { throw ex; } } /// /// 根据编号查询单个角色 /// /// /// public OA_FirmRole SelectModel(int? Keyid) { if (Keyid == null || Keyid <= 0) return null; IList result = _dataBase.SelectModel("*", "OA_FirmRole", string.Format(" Keyid='{0}' ", Keyid)) as IList;//执行查询 if (result != null && result.Count > 0) { return result[0]; } else { return null;//返回结果 } } /// /// 编辑角色权限 /// /// /// /// /// public bool EditMenusRole(int? Roleid,Guid FirmId, Dictionary MenusJionRole) { try { using (TransactionScope transactionscope = new TransactionScope()) { OA_FirmRolePermissionsRelDAL dal_OA_FirmRolePermissionsRelDAL = new OA_FirmRolePermissionsRelDAL(_dataBase); List m_OA_FirmRolePermissionsRelList = dal_OA_FirmRolePermissionsRelDAL.SelectListByRoleId(Roleid) as List; if (m_OA_FirmRolePermissionsRelList != null && m_OA_FirmRolePermissionsRelList.Count > 0) { dal_OA_FirmRolePermissionsRelDAL.DeleteModel(m_OA_FirmRolePermissionsRelList[0]); } foreach (var itemMenuAll in MenusJionRole) { string Menu = itemMenuAll.Key; string Role = itemMenuAll.Value; string[] MenuArry = Menu.Split('-'); string MenusOne = MenuArry[0]; string MenusTwo = MenuArry[1]; string MenusThree = MenuArry[2]; OA_FirmRolePermissionsRel m_OA_FirmRolePermissionsRel = new OA_FirmRolePermissionsRel(); m_OA_FirmRolePermissionsRel.MenuIdOne = Convert.ToInt32(MenusOne); m_OA_FirmRolePermissionsRel.MenuIdTwo = Convert.ToInt32(MenusTwo); m_OA_FirmRolePermissionsRel.MenuIdThree = Convert.ToInt32(MenusThree); m_OA_FirmRolePermissionsRel.RoleId = Roleid; m_OA_FirmRolePermissionsRel.FirmId = FirmId; m_OA_FirmRolePermissionsRel.FuncGroup = Role.ToString().Trim(','); dal_OA_FirmRolePermissionsRelDAL.InserModel(m_OA_FirmRolePermissionsRel); } transactionscope.Complete(); } return true; } catch (Exception ex) { throw ex; } } /// /// 根据角色获取一级菜单 /// /// 角色编号 /// public List MenusOneList(int? RoleId) { string condition = ""; if (RoleId > 0) { condition = "where RoleId = '" + RoleId + "'"; } List result = _dataBase.SelectModel("*", "Sys_Permissions_Menu", " Keyid in ( select MenuIdOne from OA_FirmRolePermissionsRel " + condition + ") order by OrderCode Asc") as IList as List;//执行查询 return result;//返回结果 } /// /// 根据一级菜单获取二级菜单 /// /// 一级菜单 /// public List MenusTwoList(int? MenuIdOne, int? RoleId) { string condition = ""; if (RoleId > 0 && MenuIdOne>0) { condition = "where MenuIdOne = '" + MenuIdOne + "' and RoleId ='" + RoleId + "'"; } List result = _dataBase.SelectModel("*", "Sys_Permissions_Menu", " Keyid in ( select MenuIdTwo from OA_FirmRolePermissionsRel " + condition + ") order by OrderCode Asc") as IList as List;//执行查询 return result;//返回结果 } /// /// 根据二级菜单获取三级菜单 /// /// 二级菜单 /// public List MenusThreeList(int? MenuIdTwo, int? RoleId) { string condition = ""; if (RoleId > 0 && MenuIdTwo > 0) { condition = "where MenuIdTwo = '" + MenuIdTwo + "' and RoleId ='" + RoleId + "'"; } List result = _dataBase.SelectModel("*", "Sys_Permissions_Menu", " Keyid in ( select MenuIdThree from OA_FirmRolePermissionsRel " + condition + ") order by OrderCode Asc") as IList as List;//执行查询 return result;//返回结果 } } }