public virtual ReturnInfo <IList <RoleInfo> > QueryByFilter(KeywordFilterInfo filter, string connectionId = null)
 {
     return(ExecReturnFunc <IList <RoleInfo> >((reInfo) =>
     {
         return Persistence.SelectByFilter(filter, connectionId);
     }));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据筛选条件查询角色列表
        /// </summary>
        /// <param name="filter">筛选</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>角色列表</returns>
        public IList <RoleInfo> SelectByFilter(KeywordFilterInfo filter, string connectionId = null)
        {
            DynamicParameters parameters;
            StringBuilder     whereSql = MergeWhereSql(filter, out parameters);

            IList <RoleInfo> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{SelectSql()} " + whereSql.ToString();
                result     = dbConn.Query <RoleInfo>(sql, parameters).AsList();
            }, AccessMode.SLAVE);

            return(result);
        }
        /// <summary>
        /// 追加按关键字查询的SQL
        /// </summary>
        /// <param name="whereSql">条件SQL</param>
        /// <param name="keywordFilter">关键字筛选</param>
        protected virtual void AppendKeywordSql(StringBuilder whereSql, KeywordFilterInfo keywordFilter)
        {
            if (keywordFilter == null || string.IsNullOrWhiteSpace(keywordFilter.Keyword))
            {
                return;
            }

            string[] keywordFields = GetPageKeywordFields();
            if (!keywordFields.IsNullOrLength0())
            {
                whereSql.Append(" AND (");
                foreach (var f in keywordFields)
                {
                    string pfx = f.Contains(".") ? null : Table + ".";
                    whereSql.AppendFormat("{0}{1} LIKE '%{2}%' OR ", pfx, f, keywordFilter.Keyword.FillSqlValue());
                }
                whereSql.Remove(whereSql.Length - 4, 4);
                whereSql.Append(")");
            }
        }
Ejemplo n.º 4
0
        public virtual FileContentResult Export()
        {
            IDictionary <string, string>   dicParams  = Request.QueryString.Value.ToDictionaryFromUrlParams();
            KeywordFilterInfo              filter     = dicParams.ToObject <KeywordFilterInfo, string>();
            ReturnInfo <IList <RoleInfo> > returnInfo = Service.QueryByFilter(filter);

            if (returnInfo.Failure())
            {
                return(File(new byte[] { 0 }, null));
            }

            Response.Headers.Add("Content-Disposition", "attachment;filename=" + WebUtility.UrlEncode("角色_" + DateTime.Now.ToFixedDate() + ".xlsx"));

            try
            {
                return(File(returnInfo.Data.ToExcelBytes(), "application/vnd.ms-excel"));
            }
            catch (Exception ex)
            {
                Log.ErrorAsync("导出Excel发生异常", ex);
                return(null);
            }
        }