From 2b80ce4f57ab07044eac104a8ca48213918a08f6 Mon Sep 17 00:00:00 2001 From: fajiao <1519100073@qq.com> Date: Thu, 1 Dec 2022 14:59:21 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E6=9B=B4=E6=96=B0=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=8F=8A=E4=B8=9A=E5=8A=A1=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cis.Application/Cb/Entity/CbCamera.cs | 4 +- Cis.Application/Cb/Entity/CbCameraParams.cs | 7 ++ .../Cb/Service/CbCameraParamsService.cs | 37 ++++++- Cis.Application/Cb/Service/CbCameraService.cs | 43 +++++++- Cis.Application/Cis.Application.xml | 97 ++++++++++++++++++- .../Cm/Service/CmMarkGroupService.cs | 33 ++++++- .../Cm/Service/CmMarkLabelService.cs | 47 +++++++-- Cis.Application/Sys/Entity/SysDictData.cs | 2 +- Cis.Application/Sys/Entity/SysDictType.cs | 4 +- .../Sys/SeedData/SysDictDataSeedData.cs | 12 +-- .../Sys/Service/SysDictDataService.cs | 39 +++++++- .../Sys/Service/SysDictTypeService.cs | 39 +++++++- Cis.Core/Common/Extension/ObjectExtension.cs | 2 +- 13 files changed, 333 insertions(+), 33 deletions(-) diff --git a/Cis.Application/Cb/Entity/CbCamera.cs b/Cis.Application/Cb/Entity/CbCamera.cs index aa6e005..68f6bce 100644 --- a/Cis.Application/Cb/Entity/CbCamera.cs +++ b/Cis.Application/Cb/Entity/CbCamera.cs @@ -19,8 +19,8 @@ public class CbCamera : EntityBase /// /// ip 地址 /// - [SugarColumn(ColumnDescription = "ip地址", Length = 16)] - [Required, MaxLength(16)] + [SugarColumn(ColumnDescription = "ip地址", Length = 15)] + [Required, MaxLength(15)] [DataValidation(ValidationTypes.IPv4)] public string Ip { get; set; } diff --git a/Cis.Application/Cb/Entity/CbCameraParams.cs b/Cis.Application/Cb/Entity/CbCameraParams.cs index ed5187a..af5e06b 100644 --- a/Cis.Application/Cb/Entity/CbCameraParams.cs +++ b/Cis.Application/Cb/Entity/CbCameraParams.cs @@ -41,4 +41,11 @@ public class CbCameraParams : EntityBase [SugarColumn(ColumnDescription = "FocusY")] [Required] public double FocusY { get; set; } + + /// + /// zoom变化函数 + /// + [SugarColumn(ColumnDescription = "zoom变化函数", Length = 256)] + [Required, MaxLength(256)] + public string ZoomVaryFunc { get; set; } } \ No newline at end of file diff --git a/Cis.Application/Cb/Service/CbCameraParamsService.cs b/Cis.Application/Cb/Service/CbCameraParamsService.cs index fb30cf0..3b01438 100644 --- a/Cis.Application/Cb/Service/CbCameraParamsService.cs +++ b/Cis.Application/Cb/Service/CbCameraParamsService.cs @@ -40,21 +40,54 @@ public class CbCameraParamsService : IDynamicApiController, ITransient return entity; } + /// + /// + /// + /// equal:cameraType; like:name; between:[startTime,endTime]; + /// [HttpGet] public async Task> GetList(string queryJson = "") { JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("cameraType", StringComparison.OrdinalIgnoreCase, out JToken cameraType)) + exp.And(it => it.CameraType.Equals(cameraType)); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()) .ToListAsync(); return list; } + /// + /// + /// + /// equal:cameraType; like:name; between:[startTime,endTime]; + /// index,size + /// [HttpGet] public async Task> GetPageList(string queryJson, string pagination) { Pagination pageObj = pagination.ToObject(); JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("cameraType", StringComparison.OrdinalIgnoreCase, out JToken cameraType)) + exp.And(it => it.CameraType.Equals(cameraType)); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()) .ToPageListAsync(pageObj.Index, pageObj.Size); return list; } diff --git a/Cis.Application/Cb/Service/CbCameraService.cs b/Cis.Application/Cb/Service/CbCameraService.cs index 2606197..5c70ecf 100644 --- a/Cis.Application/Cb/Service/CbCameraService.cs +++ b/Cis.Application/Cb/Service/CbCameraService.cs @@ -40,21 +40,58 @@ public class CbCameraService : IDynamicApiController, ITransient return entity; } + /// + /// + /// + /// equal:cbCameraParamsId; like:ip,name; between:[startTime,endTime]; + /// [HttpGet] public async Task> GetList(string queryJson = "") { JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("cbCameraParamsId", StringComparison.OrdinalIgnoreCase, out JToken cbCameraParamsId)) + exp.And(it => it.CbCameraParamsId.Equals(cbCameraParamsId)); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("ip", StringComparison.OrdinalIgnoreCase, out JToken ip)) + exp.And(it => it.Ip.Contains(ip.ToString())); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()) .ToListAsync(); return list; } + /// + /// + /// + /// equal:cbCameraParamsId; like:ip,name; between:[startTime,endTime]; + /// index,size + /// [HttpGet] public async Task> GetPageList(string queryJson, string pagination) { - Pagination pageObj = pagination.ToObject(); JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + Pagination pageObj = pagination.ToObject(); + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("cbCameraParamsId", StringComparison.OrdinalIgnoreCase, out JToken cbCameraParamsId)) + exp.And(it => it.CbCameraParamsId.Equals(cbCameraParamsId)); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("ip", StringComparison.OrdinalIgnoreCase, out JToken ip)) + exp.And(it => it.Ip.Contains(ip.ToString())); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()) .ToPageListAsync(pageObj.Index, pageObj.Size); return list; } diff --git a/Cis.Application/Cis.Application.xml b/Cis.Application/Cis.Application.xml index 8b02e6a..1b4c7d7 100644 --- a/Cis.Application/Cis.Application.xml +++ b/Cis.Application/Cis.Application.xml @@ -104,16 +104,51 @@ FocusY + + + zoom变化函数 + + 相机参数服务 + + + + + equal:cameraType; like:name; between:[startTime,endTime]; + + + + + + + equal:cameraType; like:name; between:[startTime,endTime]; + index,size + + 相机服务 + + + + + equal:cbCameraParamsId; like:ip,name; between:[startTime,endTime]; + + + + + + + equal:cbCameraParamsId; like:ip,name; between:[startTime,endTime]; + index,size + + Cm -> Camera mark @@ -239,11 +274,41 @@ 标记分组服务 + + + + + like:name; between:[startTime,endTime]; + + + + + + + like:name; between:[startTime,endTime]; + index,size + + 标签服务 + + + + + equal:cbCameraId,cmMarkGroupId; like:name; between:[startTime,endTime]; + + + + + + + equal:cbCameraId,cmMarkGroupId; like:name; between:[startTime,endTime]; + index,size + + {cameraId, List(MarkLabelCalcResult)} @@ -764,7 +829,7 @@ 系统字典值表 - + 字典类型Id @@ -829,10 +894,40 @@ 系统字典值服务 + + + + + equal:sysDictTypeId; like:code; between:[startTime,endTime]; + + + + + + + equal:sysDictTypeId; like:code; between:[startTime,endTime]; + index,size + + 系统字典类型服务 + + + + + equal:code; like:name; between:[startTime,endTime]; + + + + + + + equal:code; like:name; between:[startTime,endTime]; + index,size + + diff --git a/Cis.Application/Cm/Service/CmMarkGroupService.cs b/Cis.Application/Cm/Service/CmMarkGroupService.cs index 341bd51..19b77d5 100644 --- a/Cis.Application/Cm/Service/CmMarkGroupService.cs +++ b/Cis.Application/Cm/Service/CmMarkGroupService.cs @@ -40,21 +40,50 @@ public class CmMarkGroupService : IDynamicApiController, ITransient return entity; } + /// + /// + /// + /// like:name; between:[startTime,endTime]; + /// [HttpGet] public async Task> GetList(string queryJson) { JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()) .ToListAsync(); return list; } + /// + /// + /// + /// like:name; between:[startTime,endTime]; + /// index,size + /// [HttpGet] public async Task> GetPageList(string queryJson, string pagination) { Pagination pageObj = pagination.ToObject(); JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()) .ToPageListAsync(pageObj.Index, pageObj.Size); return list; } diff --git a/Cis.Application/Cm/Service/CmMarkLabelService.cs b/Cis.Application/Cm/Service/CmMarkLabelService.cs index 109591c..a007476 100644 --- a/Cis.Application/Cm/Service/CmMarkLabelService.cs +++ b/Cis.Application/Cm/Service/CmMarkLabelService.cs @@ -1,6 +1,4 @@ -using Cis.Application.Core; -using Cis.Application.Core.Component.CameraSDK; -using Cis.Application.Core.Component.PtzServer; +using Cis.Application.Core.Component.PtzServer; using EC.Helper.CameraSDK; using Newtonsoft.Json.Linq; @@ -67,21 +65,58 @@ public class CmMarkLabelService : IDynamicApiController, ITransient return entity; } + /// + /// + /// + /// equal:cbCameraId,cmMarkGroupId; like:name; between:[startTime,endTime]; + /// [HttpGet] public async Task> GetList(string queryJson = "") { JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("cbCameraId", StringComparison.OrdinalIgnoreCase, out JToken cbCameraId)) + exp.And(it => it.CbCameraId.Equals(cbCameraId)); + if (queryObj.TryGetValue("cmMarkGroupId", StringComparison.OrdinalIgnoreCase, out JToken cmMarkGroupId)) + exp.And(it => it.CmMarkGroupId.Equals(cmMarkGroupId)); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()) .ToListAsync(); return list; } + /// + /// + /// + /// equal:cbCameraId,cmMarkGroupId; like:name; between:[startTime,endTime]; + /// index,size + /// [HttpGet] public async Task> GetPageList(string queryJson, string pagination) { - Pagination pageObj = pagination.ToObject(); JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + Pagination pageObj = pagination.ToObject(); + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("cbCameraId", StringComparison.OrdinalIgnoreCase, out JToken cbCameraId)) + exp.And(it => it.CbCameraId.Equals(cbCameraId)); + if (queryObj.TryGetValue("cmMarkGroupId", StringComparison.OrdinalIgnoreCase, out JToken cmMarkGroupId)) + exp.And(it => it.CmMarkGroupId.Equals(cmMarkGroupId)); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()) .ToPageListAsync(pageObj.Index, pageObj.Size); return list; } diff --git a/Cis.Application/Sys/Entity/SysDictData.cs b/Cis.Application/Sys/Entity/SysDictData.cs index ec34f14..b267d65 100644 --- a/Cis.Application/Sys/Entity/SysDictData.cs +++ b/Cis.Application/Sys/Entity/SysDictData.cs @@ -12,7 +12,7 @@ public class SysDictData : EntityBase /// [SugarColumn(ColumnDescription = "字典类型Id")] [Required] - public long DictTypeId { get; set; } + public long SysDictTypeId { get; set; } /// /// 值 diff --git a/Cis.Application/Sys/Entity/SysDictType.cs b/Cis.Application/Sys/Entity/SysDictType.cs index fdd77f8..318e766 100644 --- a/Cis.Application/Sys/Entity/SysDictType.cs +++ b/Cis.Application/Sys/Entity/SysDictType.cs @@ -1,6 +1,4 @@ -using Cis.Application.Cm; - -namespace Cis.Application.Sys; +namespace Cis.Application.Sys; /// /// 系统字典类型表 diff --git a/Cis.Application/Sys/SeedData/SysDictDataSeedData.cs b/Cis.Application/Sys/SeedData/SysDictDataSeedData.cs index 81d4985..5935110 100644 --- a/Cis.Application/Sys/SeedData/SysDictDataSeedData.cs +++ b/Cis.Application/Sys/SeedData/SysDictDataSeedData.cs @@ -6,13 +6,13 @@ public class SysDictDataSeedData : ISqlSugarEntitySeedData { return new SysDictData[] { - new(){Id=358769934100001, DictTypeId=358728043100001, Code="HiK", Value="1", Order=100, Remark="海康相机", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, - new(){Id=358769934100002, DictTypeId=358728043100001, Code="DaHua", Value="2", Order=100, Remark="大华相机", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, - new(){Id=358769934100003, DictTypeId=358728043100001, Code="YuShi", Value="3", Order=100, Remark="宇视相机", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, + new(){Id=358769934100001, SysDictTypeId=358728043100001, Code="HiK", Value="1", Order=100, Remark="海康相机", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, + new(){Id=358769934100002, SysDictTypeId=358728043100001, Code="DaHua", Value="2", Order=100, Remark="大华相机", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, + new(){Id=358769934100003, SysDictTypeId=358728043100001, Code="YuShi", Value="3", Order=100, Remark="宇视相机", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, - new(){Id=358769934100011, DictTypeId=358728043100002, Code="HiK", Value="8000", Order=100, Remark="海康sdk端口", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, - new(){Id=358769934100012, DictTypeId=358728043100002, Code="DaHua", Value="37777", Order=100, Remark="大华sdk端口", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, - new(){Id=358769934100013, DictTypeId=358728043100002, Code="YuShi", Value="8800", Order=100, Remark="宇视sdk端口", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, + new(){Id=358769934100011, SysDictTypeId=358728043100002, Code="HiK", Value="8000", Order=100, Remark="海康sdk端口", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, + new(){Id=358769934100012, SysDictTypeId=358728043100002, Code="DaHua", Value="37777", Order=100, Remark="大华sdk端口", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, + new(){Id=358769934100013, SysDictTypeId=358728043100002, Code="YuShi", Value="8800", Order=100, Remark="宇视sdk端口", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-11-30 00:00:00")}, }; } } \ No newline at end of file diff --git a/Cis.Application/Sys/Service/SysDictDataService.cs b/Cis.Application/Sys/Service/SysDictDataService.cs index 59b9890..8e737de 100644 --- a/Cis.Application/Sys/Service/SysDictDataService.cs +++ b/Cis.Application/Sys/Service/SysDictDataService.cs @@ -40,21 +40,54 @@ public class SysDictDataService : IDynamicApiController, ITransient return entity; } + /// + /// + /// + /// equal:sysDictTypeId; like:code; between:[startTime,endTime]; + /// [HttpGet] public async Task> GetList(string queryJson) { JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("sysDictTypeId", StringComparison.OrdinalIgnoreCase, out JToken sysDictTypeId)) + exp.And(it => it.SysDictTypeId.Equals(sysDictTypeId)); + if (queryObj.TryGetValue("code", StringComparison.OrdinalIgnoreCase, out JToken code)) + exp.And(it => it.Code.Equals(code)); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()).OrderBy(it => it.Order) .ToListAsync(); return list; } + /// + /// + /// + /// equal:sysDictTypeId; like:code; between:[startTime,endTime]; + /// index,size + /// [HttpGet] public async Task> GetPageList(string queryJson, string pagination) { - Pagination pageObj = pagination.ToObject(); JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + Pagination pageObj = pagination.ToObject(); + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("sysDictTypeId", StringComparison.OrdinalIgnoreCase, out JToken sysDictTypeId)) + exp.And(it => it.SysDictTypeId.Equals(sysDictTypeId)); + if (queryObj.TryGetValue("code", StringComparison.OrdinalIgnoreCase, out JToken code)) + exp.And(it => it.Code.Equals(code)); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()).OrderBy(it => it.Order) .ToPageListAsync(pageObj.Index, pageObj.Size); return list; } diff --git a/Cis.Application/Sys/Service/SysDictTypeService.cs b/Cis.Application/Sys/Service/SysDictTypeService.cs index a6179e0..e0f3f4c 100644 --- a/Cis.Application/Sys/Service/SysDictTypeService.cs +++ b/Cis.Application/Sys/Service/SysDictTypeService.cs @@ -40,21 +40,54 @@ public class SysDictTypeService : IDynamicApiController, ITransient return entity; } + /// + /// + /// + /// equal:code; like:name; between:[startTime,endTime]; + /// [HttpGet] public async Task> GetList(string queryJson) { JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("code", StringComparison.OrdinalIgnoreCase, out JToken code)) + exp.And(it => it.Code.Equals(code)); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()).OrderBy(it => it.Order) .ToListAsync(); return list; } + /// + /// + /// + /// equal:code; like:name; between:[startTime,endTime]; + /// index,size + /// [HttpGet] public async Task> GetPageList(string queryJson, string pagination) { - Pagination pageObj = pagination.ToObject(); JObject queryObj = queryJson.ToJObject(); - List list = await _baseRep.AsQueryable() + Pagination pageObj = pagination.ToObject(); + + var exp = Expressionable.Create(); + if (queryObj.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name)) + exp.And(it => it.Name.Contains(name.ToString())); + if (queryObj.TryGetValue("code", StringComparison.OrdinalIgnoreCase, out JToken code)) + exp.And(it => it.Code.Equals(code)); + if (queryObj.TryGetValue("StartTime", StringComparison.OrdinalIgnoreCase, out JToken startTime) + && queryObj.TryGetValue("EndTime", StringComparison.OrdinalIgnoreCase, out JToken endTime)) + exp.And(it => it.CreateTime >= startTime.ToDateTime() && it.CreateTime <= endTime.ToDateTime()); + + var list = await _baseRep.AsQueryable() + .Where(exp.ToExpression()).OrderBy(it => it.Order) .ToPageListAsync(pageObj.Index, pageObj.Size); return list; } diff --git a/Cis.Core/Common/Extension/ObjectExtension.cs b/Cis.Core/Common/Extension/ObjectExtension.cs index 4afe194..6f3dcac 100644 --- a/Cis.Core/Common/Extension/ObjectExtension.cs +++ b/Cis.Core/Common/Extension/ObjectExtension.cs @@ -125,7 +125,7 @@ public static class ObjectExtension /// public static JObject ToJObject(this string Json) { - return string.IsNullOrEmpty(Json) ? JObject.Parse("{}") : JObject.Parse(Json.Replace(" ", "")); + return !string.IsNullOrEmpty(Json) ? JObject.Parse(Json.Replace(" ", "")) : JObject.Parse("{}"); } ///