public async Task <ActionResult <object> > Query() { var key = (string)this.ControllerContext.RouteData.Values["key"]; Log.ObjectId = key; var dict = Request.Query.ToDictionary(kv => kv.Key, kv => (object)kv.Value.FirstOrDefault()); dict.Remove("_"); //排除jQuery的随机数 var result = await _dg.QueryAsync(key, dict); //throw new ArgumentException("手动引发的异常"); return(result); }
//在角色管理里自动勾选的父级菜单不会保存到AppRoleMenu表,所以这里 //要重新取出子级被授权的父级菜单 private async Task <IList <AppMenu> > GetUserMenus(string userId) { var allMenus = await _menu.GetAllAsync(); DataGateService ds = Consts.Get <DataGateService>(); var userMenuIds = ((JArray)(await ds.QueryAsync("GetUserMenuIds", new { userId }))) .Select(dr => (string)dr.First); userMenuIds = userMenuIds.Select(id => GetParentIds(allMenus, id)).UnionAll(); return(allMenus.Where(m => userMenuIds.Contains(m.Id)).ToList()); }
/// <summary> /// 根据token获取用户信息,将用户表所有字段(除密码等信息外)返回给客户端 /// </summary> /// <param name="token"></param> /// <returns></returns> public async Task <object> GetUserAsync(string token) { var userSession = await Get(token); if (userSession == null) { return(MSG.SessionExpired); } DataGateService ds = Consts.Get <DataGateService>(); var user = await ds.QueryAsync("GetUser", new { userSession.Id }) as Dictionary <string, object>; if (user == null) { return(MSG.UserNotExists); } user["menus"] = await GetUserMenus(userSession.Id); return(user); }
/// <summary> /// 根据MD5查找第一个匹配的文件 /// </summary> /// <param name="md5"></param> /// <returns></returns> public async Task <SysFile> GetByMd5Async(string md5) { var doc = await _dg.QueryAsync("GetByMd5", new { md5 }); return(doc == null ? null : JObject.FromObject(doc).ToObject <SysFile>()); }