/// <summary> /// save /// </summary> /// <param name="model"></param> /// <returns></returns> public JsonRsp SaveAccountRole(AdminAccount model, int[] itemIds) { AdminAccountRole emp = new AdminAccountRole(); emp.AccountID = model.ID; //删除原有的 OQL q = OQL.From(emp) .Delete() .Where(emp.AccountID) .END; EntityQuery <AdminAccountRole> .Instance.ExecuteOql(q); List <AdminAccountRole> list = new List <AdminAccountRole>(); foreach (int id in itemIds) { list.Add(new AdminAccountRole { AccountID = model.ID, RoleID = id, }); } int returnvalue = EntityQuery <AdminAccountRole> .Instance.Insert(list); return(new JsonRsp { success = returnvalue > 0, code = 0, returnvalue = returnvalue }); }
/// <summary> /// 获取用户角色集合 /// </summary> /// <param name="accountId"></param> /// <returns></returns> public List <AdminAccountRole> GetAccountRoles(int accountId) { AdminAccountRole model = new AdminAccountRole(); model.AccountID = accountId; OQL q = OQL.From(model) .Select() .Where(model.AccountID) .OrderBy(model.ID, "asc") .END; return(q.ToList <AdminAccountRole>());//使用OQL扩展 }
/// <summary> /// 获取用户权限菜单 /// </summary> /// <param name="accountId"></param> /// <param name="menuType"></param> /// <returns></returns> public List <MenuViewModel> GetMenuListByAccountId(long accountId, long menuType) { AdminRole role = new AdminRole(); AdminAccountRole ar = new AdminAccountRole(); ar.AccountID = accountId; OQL joinQ = OQL.From(role) .Join(ar).On(role.ID, ar.RoleID) .Select(role.MenuIds) .Where(ar.AccountID) .OrderBy(role.Sort, "desc") .END; PWMIS.DataProvider.Data.AdoHelper db = PWMIS.DataProvider.Adapter.MyDB.GetDBHelper(); EntityContainer ec = new EntityContainer(joinQ, db); List <AdminRole> roleList = (List <AdminRole>)ec.MapToList <AdminRole>(() => new AdminRole() { MenuIds = role.MenuIds, }); StringBuilder sbMenuIds = new StringBuilder(); foreach (AdminRole item in roleList) { sbMenuIds.Append(item.MenuIds); } //long[] roleArr = Array.ConvertAll(sbMenuIds.ToString().Split(','), long.Parse); JsonRsp <MenuViewModel> rsp = new JsonRsp <MenuViewModel>(); AdminMenu model = new AdminMenu(); OQL q = new OQL(model); if (menuType > 0) { q.Select() .Where(q.Condition.AND(model.MenuType, "=", menuType).AND(model.Status, ">", -1)) .OrderBy(model.Sort, "desc"); } else { q.Select() .Where(q.Condition.AND(model.Status, ">", -1)) .OrderBy(model.Sort, "desc"); } List <AdminMenu> list = q.ToList <AdminMenu>();//使用OQL扩展 return(list.ConvertAll <MenuViewModel>(o => { return new MenuViewModel() { ID = o.ID, ParentID = o.ParentID, MenuKey = o.MenuKey, MenuName = o.MenuName, MenuUrl = o.MenuUrl, MenuType = o.MenuType, Sort = o.Sort, Status = o.Status, CreateTime = o.CreateTime, }; } )); }