/// <summary> /// 获取操作日志分页 /// </summary> /// <param name="operationLogsQuery"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public PagingDataSet <OperationLogs> GetPageOperationLogs(OperationLogsQuery operationLogsQuery, int pageIndex, int pageSize) { int totalCount = 0; int totalPage = 0; string whereSql = string.Empty; string orderBy = string.Empty; HandleOrderByEunm(operationLogsQuery.OperationLogsSortBy.Value, out orderBy); object pars = new object(); whereSql = HandleQueryBySqlable(operationLogsQuery, out pars); return(GetPageListByCache <int>(pageIndex, pageSize, out totalCount, out totalPage, whereSql, pars, orderBy, i => i.Id)); }
/// <summary> /// 使用Sqlable处理SQL拼接(支持参数化) /// </summary> /// <param name="operationLogsQuery"></param> /// <param name="pars"></param> /// <returns></returns> public string HandleQueryBySqlable(OperationLogsQuery operationLogsQuery, out object pars) { Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); var sqlTable = new Sqlable(); sqlTable.Sql = new StringBuilder(); if (operationLogsQuery.ApplicationId.HasValue) { sqlTable = sqlTable.Where("applicationid = @ApplicationId"); paramsDictionary.Add("ApplicationId", operationLogsQuery.ApplicationId.Value); } if (!string.IsNullOrWhiteSpace(operationLogsQuery.OperationName)) { sqlTable = sqlTable.Where("operation_object_name LIKE @OperationName"); paramsDictionary.Add("OperationName", $"%{operationLogsQuery.OperationName}%"); } if (!string.IsNullOrWhiteSpace(operationLogsQuery.Username)) { sqlTable = sqlTable.Where("operator_username LIKE @Username"); paramsDictionary.Add("Username", $"%{operationLogsQuery.Username}%"); } if (!string.IsNullOrWhiteSpace(operationLogsQuery.OperationType)) { sqlTable = sqlTable.Where("operation_type = @OperationType"); paramsDictionary.Add("OperationType", operationLogsQuery.OperationType); } if (operationLogsQuery.TimeLowerLimit.HasValue) { sqlTable = sqlTable.Where("date_created >= @TimeLowerLimit"); paramsDictionary.Add("TimeLowerLimit", operationLogsQuery.TimeLowerLimit); } if (operationLogsQuery.TimeUpperLimit.HasValue) { sqlTable = sqlTable.Where("date_created <= @TimeUpperLimit"); paramsDictionary.Add("TimeUpperLimit", operationLogsQuery.TimeUpperLimit); } pars = paramsDictionary; foreach (var item in sqlTable.Where) { sqlTable.Sql.Append(item); } return(sqlTable.Sql.ToString().TrimStart(" AND".ToCharArray())); }
/// <summary> /// 获取操作日志分页 /// </summary> /// <param name="operationLogsQuery"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public PagingDataSet <OperationLogs> GetPageOperationLogs(OperationLogsQuery operationLogsQuery, int pageIndex, int pageSize) { return(operationLogsRepository.GetPageOperationLogs(operationLogsQuery, pageIndex, pageSize)); }