From 40fdd0e248b773992e1957ae6180592adf6d8833 Mon Sep 17 00:00:00 2001 From: fajiao <1519100073@qq.com> Date: Fri, 2 Dec 2022 17:04:30 +0800 Subject: [PATCH] =?UTF-8?q?advance:=20=E6=B7=BB=E5=8A=A0=20ServiceBase=20?= =?UTF-8?q?=E7=B1=BB=EF=BC=8C=E6=BB=A1=E8=B6=B3=E5=9F=BA=E6=9C=AC=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Cb/Service/CbCameraParamsService.cs | 39 +---- Cis.Application/Cb/Service/CbCameraService.cs | 39 +---- .../Cm/Service/CmMarkGroupService.cs | 39 +---- .../Cm/Service/CmMarkLabelService.cs | 38 +--- .../Core/Service/MarkSearchService.cs | 2 +- .../Sys/Service/SysDictDataService.cs | 39 +---- .../Sys/Service/SysDictTypeService.cs | 39 +---- Cis.Core/Cis.Core.xml | 78 +++++++++ Cis.Core/Common/Entity/ServiceBase.cs | 165 ++++++++++++++++++ 9 files changed, 281 insertions(+), 197 deletions(-) create mode 100644 Cis.Core/Common/Entity/ServiceBase.cs diff --git a/Cis.Application/Cb/Service/CbCameraParamsService.cs b/Cis.Application/Cb/Service/CbCameraParamsService.cs index 3b01438..30a82da 100644 --- a/Cis.Application/Cb/Service/CbCameraParamsService.cs +++ b/Cis.Application/Cb/Service/CbCameraParamsService.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json.Linq; +using Cis.Core.Common; +using Newtonsoft.Json.Linq; namespace Cis.Application.Cb; @@ -6,38 +7,10 @@ namespace Cis.Application.Cb; /// 相机参数服务 /// [ApiDescriptionSettings(CbInfo.GroupName, Order = CbInfo.GroupOrder)] -public class CbCameraParamsService : IDynamicApiController, ITransient +public class CbCameraParamsService : ServiceBase, ITransient { - private readonly SqlSugarRepository _baseRep; - - public CbCameraParamsService(SqlSugarRepository baseRep) - { - _baseRep = baseRep; - } - - [HttpPost] - public async Task Add([FromForm] CbCameraParams entity) - { - return await _baseRep.InsertAsync(entity); - } - - [HttpPost] - public async Task Update([FromForm] CbCameraParams entity) - { - return await _baseRep.UpdateAsync(entity); - } - - [HttpPost] - public async Task Delete([FromForm] CbCameraParams entity) - { - return await _baseRep.DeleteAsync(entity); - } - - [HttpGet] - public async Task Get(long id) + public CbCameraParamsService(SqlSugarRepository baseRep) : base(baseRep) { - CbCameraParams entity = await _baseRep.GetByIdAsync(id); - return entity; } /// @@ -46,7 +19,7 @@ public class CbCameraParamsService : IDynamicApiController, ITransient /// equal:cameraType; like:name; between:[startTime,endTime]; /// [HttpGet] - public async Task> GetList(string queryJson = "") + public override async Task> GetList(string queryJson = "") { JObject queryObj = queryJson.ToJObject(); @@ -72,7 +45,7 @@ public class CbCameraParamsService : IDynamicApiController, ITransient /// index,size /// [HttpGet] - public async Task> GetPageList(string queryJson, string pagination) + public override async Task> GetPageList(string queryJson, string pagination) { Pagination pageObj = pagination.ToObject(); JObject queryObj = queryJson.ToJObject(); diff --git a/Cis.Application/Cb/Service/CbCameraService.cs b/Cis.Application/Cb/Service/CbCameraService.cs index 5c70ecf..109a953 100644 --- a/Cis.Application/Cb/Service/CbCameraService.cs +++ b/Cis.Application/Cb/Service/CbCameraService.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json.Linq; +using Cis.Core.Common; +using Newtonsoft.Json.Linq; namespace Cis.Application.Cb; @@ -6,38 +7,10 @@ namespace Cis.Application.Cb; /// 相机服务 /// [ApiDescriptionSettings(CbInfo.GroupName, Order = CbInfo.GroupOrder)] -public class CbCameraService : IDynamicApiController, ITransient +public class CbCameraService : ServiceBase, ITransient { - private readonly SqlSugarRepository _baseRep; - - public CbCameraService(SqlSugarRepository baseRep) - { - _baseRep = baseRep; - } - - [HttpPost] - public async Task Add([FromForm] CbCamera entity) - { - return await _baseRep.InsertAsync(entity); - } - - [HttpPost] - public async Task Update([FromForm] CbCamera entity) - { - return await _baseRep.UpdateAsync(entity); - } - - [HttpPost] - public async Task Delete([FromForm] CbCamera entity) - { - return await _baseRep.DeleteAsync(entity); - } - - [HttpGet] - public async Task Get(long id) + public CbCameraService(SqlSugarRepository baseRep) : base(baseRep) { - CbCamera entity = await _baseRep.GetByIdAsync(id); - return entity; } /// @@ -46,7 +19,7 @@ public class CbCameraService : IDynamicApiController, ITransient /// equal:cbCameraParamsId; like:ip,name; between:[startTime,endTime]; /// [HttpGet] - public async Task> GetList(string queryJson = "") + public override async Task> GetList(string queryJson = "") { JObject queryObj = queryJson.ToJObject(); @@ -74,7 +47,7 @@ public class CbCameraService : IDynamicApiController, ITransient /// index,size /// [HttpGet] - public async Task> GetPageList(string queryJson, string pagination) + public override async Task> GetPageList(string queryJson, string pagination) { JObject queryObj = queryJson.ToJObject(); Pagination pageObj = pagination.ToObject(); diff --git a/Cis.Application/Cm/Service/CmMarkGroupService.cs b/Cis.Application/Cm/Service/CmMarkGroupService.cs index 19b77d5..cbc8607 100644 --- a/Cis.Application/Cm/Service/CmMarkGroupService.cs +++ b/Cis.Application/Cm/Service/CmMarkGroupService.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json.Linq; +using Cis.Core.Common; +using Newtonsoft.Json.Linq; namespace Cis.Application.Cm; @@ -6,38 +7,10 @@ namespace Cis.Application.Cm; /// 标记分组服务 /// [ApiDescriptionSettings(CmInfo.GroupName, Order = CmInfo.GroupOrder)] -public class CmMarkGroupService : IDynamicApiController, ITransient +public class CmMarkGroupService : ServiceBase, ITransient { - private readonly SqlSugarRepository _baseRep; - - public CmMarkGroupService(SqlSugarRepository baseRep) - { - _baseRep = baseRep; - } - - [HttpPost] - public async Task Add([FromForm] CmMarkGroup entity) - { - return await _baseRep.InsertAsync(entity); - } - - [HttpPost] - public async Task Update([FromForm] CmMarkGroup entity) - { - return await _baseRep.UpdateAsync(entity); - } - - [HttpPost] - public async Task Delete([FromForm] CmMarkGroup entity) - { - return await _baseRep.DeleteAsync(entity); - } - - [HttpGet] - public async Task Get(long id) + public CmMarkGroupService(SqlSugarRepository baseRep) : base(baseRep) { - CmMarkGroup entity = await _baseRep.GetByIdAsync(id); - return entity; } /// @@ -46,7 +19,7 @@ public class CmMarkGroupService : IDynamicApiController, ITransient /// like:name; between:[startTime,endTime]; /// [HttpGet] - public async Task> GetList(string queryJson) + public override async Task> GetList(string queryJson) { JObject queryObj = queryJson.ToJObject(); @@ -70,7 +43,7 @@ public class CmMarkGroupService : IDynamicApiController, ITransient /// index,size /// [HttpGet] - public async Task> GetPageList(string queryJson, string pagination) + public override async Task> GetPageList(string queryJson, string pagination) { Pagination pageObj = pagination.ToObject(); JObject queryObj = queryJson.ToJObject(); diff --git a/Cis.Application/Cm/Service/CmMarkLabelService.cs b/Cis.Application/Cm/Service/CmMarkLabelService.cs index ce2c93d..200f2b9 100644 --- a/Cis.Application/Cm/Service/CmMarkLabelService.cs +++ b/Cis.Application/Cm/Service/CmMarkLabelService.cs @@ -1,4 +1,5 @@ using Cis.Application.Core.Component.PtzServer; +using Cis.Core.Common; using EC.Helper.CameraSDK; using Newtonsoft.Json.Linq; @@ -8,23 +9,17 @@ namespace Cis.Application.Cm; /// 标签服务 /// [ApiDescriptionSettings(CmInfo.GroupName, Order = CmInfo.GroupOrder)] -public class CmMarkLabelService : IDynamicApiController, ITransient +public class CmMarkLabelService : ServiceBase, ITransient { - private readonly SqlSugarRepository _baseRep; - private ICameraSdkServer _cameraSdk { get; set; } - public CmMarkLabelService( - SqlSugarRepository baseRep, - ICameraSdkServer cameraSdk - ) + public CmMarkLabelService(SqlSugarRepository baseRep, ICameraSdkServer cameraSdk) : base(baseRep) { - _baseRep = baseRep; _cameraSdk = cameraSdk; } [HttpPost] - public async Task Add([FromForm] CmMarkLabel entity) + public override async Task Add([FromForm] CmMarkLabel entity) { bool ret = _cameraSdk.TryGetPtzInfoById(entity.CbCameraId.ToString(), out PtzInfo ptzInfo); if (!ret) return false; @@ -35,7 +30,7 @@ public class CmMarkLabelService : IDynamicApiController, ITransient } [HttpPost] - public async Task AddReturnId([FromForm] CmMarkLabel entity) + public override async Task AddReturnId([FromForm] CmMarkLabel entity) { bool ret = _cameraSdk.TryGetPtzInfoById(entity.CbCameraId.ToString(), out PtzInfo ptzInfo); if (!ret) return 0; @@ -46,32 +41,13 @@ public class CmMarkLabelService : IDynamicApiController, ITransient return entity.Id; } - [HttpPost] - public async Task Update([FromForm] CmMarkLabel entity) - { - return await _baseRep.UpdateAsync(entity); - } - - [HttpPost] - public async Task Delete([FromForm] CmMarkLabel entity) - { - return await _baseRep.DeleteAsync(entity); - } - - [HttpGet] - public async Task Get(long id) - { - CmMarkLabel entity = await _baseRep.GetByIdAsync(id); - return entity; - } - /// /// /// /// equal:cbCameraId,cmMarkGroupId; like:name; between:[startTime,endTime]; /// [HttpGet] - public async Task> GetList(string queryJson = "") + public override async Task> GetList(string queryJson = "") { JObject queryObj = queryJson.ToJObject(); @@ -99,7 +75,7 @@ public class CmMarkLabelService : IDynamicApiController, ITransient /// index,size /// [HttpGet] - public async Task> GetPageList(string queryJson, string pagination) + public override async Task> GetPageList(string queryJson, string pagination) { JObject queryObj = queryJson.ToJObject(); Pagination pageObj = pagination.ToObject(); diff --git a/Cis.Application/Core/Service/MarkSearchService.cs b/Cis.Application/Core/Service/MarkSearchService.cs index cd3ba3f..1a630e8 100644 --- a/Cis.Application/Core/Service/MarkSearchService.cs +++ b/Cis.Application/Core/Service/MarkSearchService.cs @@ -11,7 +11,7 @@ public class MarkSearchService : IDynamicApiController, ITransient #endregion Attr - public MarkSearchService(CameraDataCenter cameraDataCenter, IMarkSearcherServer markSearcherServer) + public MarkSearchService(IMarkSearcherServer markSearcherServer) { _markSearcherServer = markSearcherServer; } diff --git a/Cis.Application/Sys/Service/SysDictDataService.cs b/Cis.Application/Sys/Service/SysDictDataService.cs index 8e737de..a24fcdd 100644 --- a/Cis.Application/Sys/Service/SysDictDataService.cs +++ b/Cis.Application/Sys/Service/SysDictDataService.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json.Linq; +using Cis.Core.Common; +using Newtonsoft.Json.Linq; namespace Cis.Application.Sys; @@ -6,38 +7,10 @@ namespace Cis.Application.Sys; /// 系统字典值服务 /// [ApiDescriptionSettings(SysInfo.GroupName, Order = SysInfo.GroupOrder)] -public class SysDictDataService : IDynamicApiController, ITransient +public class SysDictDataService : ServiceBase, ITransient { - private readonly SqlSugarRepository _baseRep; - - public SysDictDataService(SqlSugarRepository baseRep) - { - _baseRep = baseRep; - } - - [HttpPost] - public async Task Add([FromForm] SysDictData entity) - { - return await _baseRep.InsertAsync(entity); - } - - [HttpPost] - public async Task Update([FromForm] SysDictData entity) - { - return await _baseRep.UpdateAsync(entity); - } - - [HttpPost] - public async Task Delete([FromForm] SysDictData entity) - { - return await _baseRep.DeleteAsync(entity); - } - - [HttpGet] - public async Task Get(long id) + public SysDictDataService(SqlSugarRepository baseRep) : base(baseRep) { - SysDictData entity = await _baseRep.GetByIdAsync(id); - return entity; } /// @@ -46,7 +19,7 @@ public class SysDictDataService : IDynamicApiController, ITransient /// equal:sysDictTypeId; like:code; between:[startTime,endTime]; /// [HttpGet] - public async Task> GetList(string queryJson) + public override async Task> GetList(string queryJson) { JObject queryObj = queryJson.ToJObject(); @@ -72,7 +45,7 @@ public class SysDictDataService : IDynamicApiController, ITransient /// index,size /// [HttpGet] - public async Task> GetPageList(string queryJson, string pagination) + public override async Task> GetPageList(string queryJson, string pagination) { JObject queryObj = queryJson.ToJObject(); Pagination pageObj = pagination.ToObject(); diff --git a/Cis.Application/Sys/Service/SysDictTypeService.cs b/Cis.Application/Sys/Service/SysDictTypeService.cs index e0f3f4c..c961216 100644 --- a/Cis.Application/Sys/Service/SysDictTypeService.cs +++ b/Cis.Application/Sys/Service/SysDictTypeService.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json.Linq; +using Cis.Core.Common; +using Newtonsoft.Json.Linq; namespace Cis.Application.Sys; @@ -6,38 +7,10 @@ namespace Cis.Application.Sys; /// 系统字典类型服务 /// [ApiDescriptionSettings(SysInfo.GroupName, Order = SysInfo.GroupOrder)] -public class SysDictTypeService : IDynamicApiController, ITransient +public class SysDictTypeService : ServiceBase, ITransient { - private readonly SqlSugarRepository _baseRep; - - public SysDictTypeService(SqlSugarRepository baseRep) - { - _baseRep = baseRep; - } - - [HttpPost] - public async Task Add([FromForm] SysDictType entity) - { - return await _baseRep.InsertAsync(entity); - } - - [HttpPost] - public async Task Update([FromForm] SysDictType entity) - { - return await _baseRep.UpdateAsync(entity); - } - - [HttpPost] - public async Task Delete([FromForm] SysDictType entity) - { - return await _baseRep.DeleteAsync(entity); - } - - [HttpGet] - public async Task Get(long id) + public SysDictTypeService(SqlSugarRepository baseRep) : base(baseRep) { - SysDictType entity = await _baseRep.GetByIdAsync(id); - return entity; } /// @@ -46,7 +19,7 @@ public class SysDictTypeService : IDynamicApiController, ITransient /// equal:code; like:name; between:[startTime,endTime]; /// [HttpGet] - public async Task> GetList(string queryJson) + public override async Task> GetList(string queryJson) { JObject queryObj = queryJson.ToJObject(); @@ -72,7 +45,7 @@ public class SysDictTypeService : IDynamicApiController, ITransient /// index,size /// [HttpGet] - public async Task> GetPageList(string queryJson, string pagination) + public override async Task> GetPageList(string queryJson, string pagination) { JObject queryObj = queryJson.ToJObject(); Pagination pageObj = pagination.ToObject(); diff --git a/Cis.Core/Cis.Core.xml b/Cis.Core/Cis.Core.xml index c891a44..b3a18db 100644 --- a/Cis.Core/Cis.Core.xml +++ b/Cis.Core/Cis.Core.xml @@ -194,6 +194,84 @@ 时间戳 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + between:[startTime,endTime]; + + + + + + + between:[startTime,endTime]; + index,size + + 通用状态枚举 diff --git a/Cis.Core/Common/Entity/ServiceBase.cs b/Cis.Core/Common/Entity/ServiceBase.cs new file mode 100644 index 0000000..1964d77 --- /dev/null +++ b/Cis.Core/Common/Entity/ServiceBase.cs @@ -0,0 +1,165 @@ +using Furion.DynamicApiController; +using Newtonsoft.Json.Linq; + +namespace Cis.Core.Common; + +[NonController] +public class ServiceBase : IDynamicApiController where T : EntityBase, new() +{ + protected readonly SqlSugarRepository _baseRep; + + public ServiceBase(SqlSugarRepository baseRep) + { + _baseRep = baseRep; + } + + /// + /// + /// + /// + /// + [HttpPost] + public virtual async Task Add([FromForm] T entity) + { + return await _baseRep.InsertAsync(entity); + } + + /// + /// + /// + /// + /// + [HttpPost] + public virtual async Task AddReturnId([FromForm] T entity) + { + bool ret = await _baseRep.InsertAsync(entity); + if (!ret) return 0; + return entity.Id; + } + + /// + /// + /// + /// + /// + [HttpPost] + public virtual async Task AddArray([FromForm] T[] array) + { + return await _baseRep.InsertRangeAsync(array); + } + + /// + /// + /// + /// + /// + [HttpPost] + public virtual async Task Update([FromForm] T entity) + { + return await _baseRep.UpdateAsync(entity); + } + + /// + /// + /// + /// + /// + [HttpPost] + public virtual async Task UpdateArray([FromForm] T[] array) + { + return await _baseRep.UpdateRangeAsync(array); + } + + /// + /// + /// + /// + /// + [HttpPost] + public virtual async Task Delete(long id) + { + return await _baseRep.DeleteByIdAsync(id); + } + + /// + /// + /// + /// + /// + [HttpPost] + public virtual async Task DeleteArray(T[] array) + { + return await _baseRep.DeleteByIdsAsync(array); + } + + /// + /// + /// + /// + /// + [HttpPost] + public virtual async Task FakeDelete(long id) + { + return await _baseRep.AsUpdateable() + .Where(it => it.Id.Equals(id)) + .Where("limit 1") + .ReSetValue(it => it.IsDelete = true) + .ExecuteCommandAsync() > 0; + } + + /// + /// + /// + /// + /// + [HttpGet] + public virtual async Task Get(long id) + { + T entity = await _baseRep.GetByIdAsync(id); + return entity; + } + + /// + /// + /// + /// between:[startTime,endTime]; + /// + [HttpGet] + public virtual async Task> GetList(string queryJson = "") + { + JObject queryObj = queryJson.ToJObject(); + + var exp = Expressionable.Create(); + 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; + } + + /// + /// + /// + /// between:[startTime,endTime]; + /// index,size + /// + [HttpGet] + public virtual async Task> GetPageList(string queryJson, string pagination) + { + JObject queryObj = queryJson.ToJObject(); + Pagination pageObj = pagination.ToObject(); + + var exp = Expressionable.Create(); + 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; + } +} \ No newline at end of file