Beispiel #1
0
        public async Task <BaseResponse> CronJobList(CronJobListRequest request)
        {
            var filterBuilder = Builders <CronJob> .Filter;
            var filter        = filterBuilder.Empty;

            if (!string.IsNullOrEmpty(request.Name))
            {
                filter = filter & filterBuilder.Eq("Name", request.Name);
            }

            if (request.JobState != 0)
            {
                filter = filter & filterBuilder.Eq("JobState", request.JobState);
            }

            if (request.CreateTime != null && request.CreateTime.Count == 2)
            {
                filter = filter & filterBuilder.Gte("CreateTime", request.CreateTime.First()) & filterBuilder.Lte("CreateTime", request.CreateTime.Last());
            }


            var sort = request.OrderBy == 0 ? Builders <CronJob> .Sort.Ascending(request.OrderByField) : Builders <CronJob> .Sort.Descending(request.OrderByField);

            var list = await _cronJobRepository.GetListAsync(filter, request.Skip, request.PageSize, sort);

            //最多数到300就不往下继续数了。
            long count = await _cronJobRepository.Context.CountDocumentsAsync(filter, new CountOptions { Limit = 300 });

            BasePageResponse <CronJob> res = new BasePageResponse <CronJob>();

            res.DataList   = list;
            res.TotalCount = count;

            return(BaseResponse <List <CronJob> > .Ok(list));
        }
        public async Task <BasePageResponse <CronJob> > CronJobList(CronJobListRequest request)
        {
            //MySqlDbType同时存在于“MySql.Data, Version=8.0.19.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”和“MySqlConnector, Version=0.61.0.0, Culture=neutral, PublicKeyToken=d33d3e53aa5f8c92”中
            //List<MySqlParameter> ps = new List<MySqlParameter>();
            //选取完所有数据,再对数据进行排序。

            StringBuilder whereSql = new StringBuilder(" 1=1 ");

            if (!string.IsNullOrEmpty(request.Name))
            {
                whereSql.Append($" and  cron_job.Name='{request.Name}'");
                //ps.Add(new MySqlParameter
                //{
                //    Value = request.Name,
                //    ParameterName = "Name",
                //    MySqlDbType = MySqlDbType.VarChar
                //});
            }

            if (request.JobState != 0)
            {
                whereSql.Append($" and  cron_job.JobState={request.JobState}");
                //ps.Add(new MySqlParameter
                //{
                //    Value = request.JobState,
                //    ParameterName = "JobState",
                //    MySqlDbType = MySqlDbType.Int32
                //});
            }

            StringBuilder orderSql = new StringBuilder(" ");

            orderSql.Append(request.OrderByField);

            orderSql.Append(request.OrderBy == 0 ?" desc ":" asc ");

            #region 开始和结束时间筛选

            if (request.CreateTime != null && request.CreateTime.Count == 2)
            {
                whereSql.Append($" AND cron_job.CreateTime BETWEEN '{request.CreateTime.First()}' AND '{request.CreateTime.Last()}' ");
            }

            if (request.UpdateTime != null && request.UpdateTime.Count == 2)
            {
                whereSql.Append($" AND cron_job.UpdateTime BETWEEN '{request.UpdateTime.First()}' AND '{request.UpdateTime.Last()}' ");
            }

            #endregion

            #region 查总数

            string sqlcount = $@"
                        SELECT
	                        count(1)  as Count
                        FROM
	                        cron_job 
                             WHERE {whereSql} ";
            _logger.LogInformation(sqlcount);

            var count = await Context.SqlQueryFirstAsync <int>(sqlcount);

            #endregion

            StringBuilder limit = new StringBuilder();

            limit.Append(request.LimitSql());

            var sqlList = string.Format(@"SELECT * FROM cron_job WHERE {0} ORDER BY {1} ", whereSql, orderSql);

            string sql = string.Concat(sqlList, limit);
            _logger.LogInformation(sql);
            var data = await Context.SqlQueryAsync <CronJob>(sql);

            return(new BasePageResponse <CronJob>
            {
                TotalCount = count,
                DataList = data
            });
        }
 public async Task <BaseResponse> CronJobList([FromBody] CronJobListRequest request)
 {
     return(await _cronJobService.CronJobList(request));
 }
Beispiel #4
0
        public async Task <BaseResponse> CronJobList(CronJobListRequest request)
        {
            var res = await _cronJobRepository.CronJobList(request);

            return(BaseResponse <BasePageResponse <CronJob> > .Ok(res));
        }