public async Task <List <IPrivilege> > QueryUserPrivilegeList(string appCode, string userId, int type) { string sql = @"SELECT DISTINCT A.privilege_code as PrivilegeCode,A.privilege_name as PrivilegeName,A.privilege_type as PrivilegeType,A.parent_code as ParentCode,A.mark as Mark,A.resource as Resource,A.sequence as Sequence FROM privilege A INNER JOIN role_privilege_relation B on A.privilege_code = B.privilege_code INNER JOIN role_user_relation C on B.role_code = C.role_code WHERE A.app_code = @AppCode"; if (type > 0) { sql += " and A.privilege_type=" + type; } sql += " ORDER BY A.sequence ASC"; var param = new { AppCode = appCode, UserUID = userId, EveryoneRoleCode = RuleHelper.GetAppEveryoneRuleCode(appCode) }; var list = await base.QueryAsync <Privilege>(sql, param); return(list.ToList <IPrivilege>()); }