From 217d9f7770eab9f288a08a1845967603a4bf4cdf Mon Sep 17 00:00:00 2001 From: cheche <717840555@qq.com> Date: Tue, 19 Mar 2024 15:26:40 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=20=E9=85=8D=E9=80=81=E7=82=B9=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/BookingAddresController.cs | 47 +++++++++++++++++++ .../MealUser/Request/GetAddresPageRequest.cs | 8 ++++ .../MealUser/Request/SaveAddresRequest.cs | 16 +++++++ .../Response/GetAddresPageResponse.cs | 15 ++++++ .../Services/IBookingAddresService.cs | 12 +++++ .../Implements/BookingAddresService.cs | 47 +++++++++++++++++++ .../Basic/Entity/BookingAddresEntity.cs | 28 +++++++++++ Src/Dlhis.Entity/Common/ApiLogEntity.cs | 3 +- .../CommonJobs/DelApiLogTaskJob.cs | 32 +++++++++++++ Src/Dlhis.ScheduledTask/Packs/JobPack.cs | 5 ++ Src/Dlhis.ScheduledTask/Packs/SqlSugarPack.cs | 14 ++++++ Src/Dlhis.ScheduledTask/appsettings.json | 1 + 12 files changed, 227 insertions(+), 1 deletion(-) create mode 100644 Src/Dlhis.Basic/MealUser/Controllers/BookingAddresController.cs create mode 100644 Src/Dlhis.Basic/MealUser/Request/GetAddresPageRequest.cs create mode 100644 Src/Dlhis.Basic/MealUser/Request/SaveAddresRequest.cs create mode 100644 Src/Dlhis.Basic/MealUser/Response/GetAddresPageResponse.cs create mode 100644 Src/Dlhis.Basic/MealUser/Services/IBookingAddresService.cs create mode 100644 Src/Dlhis.Basic/MealUser/Services/Implements/BookingAddresService.cs create mode 100644 Src/Dlhis.Entity/Basic/Entity/BookingAddresEntity.cs create mode 100644 Src/Dlhis.ScheduledTask/CommonJobs/DelApiLogTaskJob.cs diff --git a/Src/Dlhis.Basic/MealUser/Controllers/BookingAddresController.cs b/Src/Dlhis.Basic/MealUser/Controllers/BookingAddresController.cs new file mode 100644 index 00000000..481ea041 --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Controllers/BookingAddresController.cs @@ -0,0 +1,47 @@ +using Dlhis.Basic.MealUser.Request; +using Dlhis.Basic.MealUser.Response; +using Dlhis.Basic.MealUser.Services; +using Kurisu.Core.DataAccess.Dto; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Dlhis.Basic.MealUser.Controllers +{ + /// + /// 订餐地址 + /// + [Authorize] + [Route("api/[controller]")] + [ApiController] + public class BookingAddresController : ControllerBase + { + private readonly IBookingAddresService _bookingAddresService; + + public BookingAddresController(IBookingAddresService bookingAddresService) + { + _bookingAddresService = bookingAddresService; + } + + /// + /// 地址分页 + /// + /// + /// + [HttpGet("pageAddres")] + public async Task> GetAddresPageAsync([FromQuery] GetAddresPageRequest request) + { + return await _bookingAddresService.GetAddresPageRequest(request); + } + + /// + /// 地址保存 + /// + /// + /// + [HttpPost("saveAddres")] + public async Task SaveAddresAsync(SaveAddresRequest request) + { + await _bookingAddresService.SaveAddresAsync(request); + } + } +} diff --git a/Src/Dlhis.Basic/MealUser/Request/GetAddresPageRequest.cs b/Src/Dlhis.Basic/MealUser/Request/GetAddresPageRequest.cs new file mode 100644 index 00000000..4f290222 --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Request/GetAddresPageRequest.cs @@ -0,0 +1,8 @@ +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Basic.MealUser.Request +{ + public class GetAddresPageRequest : PageDto + { + } +} diff --git a/Src/Dlhis.Basic/MealUser/Request/SaveAddresRequest.cs b/Src/Dlhis.Basic/MealUser/Request/SaveAddresRequest.cs new file mode 100644 index 00000000..c40c413f --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Request/SaveAddresRequest.cs @@ -0,0 +1,16 @@ +using SqlSugar; + +namespace Dlhis.Basic.MealUser.Request +{ + public class SaveAddresRequest + { + + public long? Id { get; set; } + + /// + /// 订餐地址 + /// + [SugarColumn(ColumnDescription = "订餐地址")] + public string Addres { get; set; } + } +} diff --git a/Src/Dlhis.Basic/MealUser/Response/GetAddresPageResponse.cs b/Src/Dlhis.Basic/MealUser/Response/GetAddresPageResponse.cs new file mode 100644 index 00000000..ff35ae8b --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Response/GetAddresPageResponse.cs @@ -0,0 +1,15 @@ +using SqlSugar; + +namespace Dlhis.Basic.MealUser.Response +{ + public class GetAddresPageResponse + { + public long Id { get; set; } + + /// + /// 订餐地址 + /// + public string Addres { get; set; } + + } +} diff --git a/Src/Dlhis.Basic/MealUser/Services/IBookingAddresService.cs b/Src/Dlhis.Basic/MealUser/Services/IBookingAddresService.cs new file mode 100644 index 00000000..a8ed76e5 --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Services/IBookingAddresService.cs @@ -0,0 +1,12 @@ +using Dlhis.Basic.MealUser.Request; +using Dlhis.Basic.MealUser.Response; +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Basic.MealUser.Services +{ + public interface IBookingAddresService : IScopeDependency + { + Task> GetAddresPageRequest(GetAddresPageRequest request); + Task SaveAddresAsync(SaveAddresRequest request); + } +} diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/BookingAddresService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/BookingAddresService.cs new file mode 100644 index 00000000..d70bee81 --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/BookingAddresService.cs @@ -0,0 +1,47 @@ +using Dlhis.Basic.MealUser.Request; +using Dlhis.Basic.MealUser.Response; +using Dlhis.Entity.Basic.Entity; +using Kurisu.AspNetCore.Utils.Extensions; +using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Extensions; +using Kurisu.SqlSugar.Services; +using Mapster; +using Microsoft.AspNetCore.Mvc; + +namespace Dlhis.Basic.MealUser.Services.Implements +{ + public class BookingAddresService : IBookingAddresService + { + private readonly IDbContext _dbContext; + + public BookingAddresService(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task> GetAddresPageRequest(GetAddresPageRequest request) + { + return await _dbContext.Queryable() + .WhereIF(request.Search.IsPresent(),x=>x.Addres.Contains(request.Search)) + .Select() + .ToPageListAsync(request); + } + + public async Task SaveAddresAsync(SaveAddresRequest request) + { + if (!request.Id.HasValue) + { + var entity = request.Adapt(); + await _dbContext.InsertAsync(entity); + } + else + { + var entity = await _dbContext.Queryable() + .Where(x => x.Id == request.Id) + .FirstAsync(); + request.Adapt(entity); + await _dbContext.UpdateAsync(entity); + } + } + } +} diff --git a/Src/Dlhis.Entity/Basic/Entity/BookingAddresEntity.cs b/Src/Dlhis.Entity/Basic/Entity/BookingAddresEntity.cs new file mode 100644 index 00000000..cb39c6a4 --- /dev/null +++ b/Src/Dlhis.Entity/Basic/Entity/BookingAddresEntity.cs @@ -0,0 +1,28 @@ +using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dlhis.Entity.Basic.Entity +{ + /// + /// 就餐地址 + /// + [SugarTable(TableName = "BookingAddres", TableDescription = "就餐地址")] + public class BookingAddresEntity : SugarBaseEntity, ITenantId + { + + + /// + /// 订餐地址 + /// + [SugarColumn(ColumnDescription = "订餐地址")] + public string Addres { get; set; } + + public string TenantId { get; set; } + } +} diff --git a/Src/Dlhis.Entity/Common/ApiLogEntity.cs b/Src/Dlhis.Entity/Common/ApiLogEntity.cs index 70e0849e..e2005b72 100644 --- a/Src/Dlhis.Entity/Common/ApiLogEntity.cs +++ b/Src/Dlhis.Entity/Common/ApiLogEntity.cs @@ -1,6 +1,7 @@ using SqlSugar; using SqlSugar.DbConvert; using Microsoft.Extensions.Logging; +using Kurisu.SqlSugar; namespace Dlhis.Entity.Common; @@ -8,7 +9,7 @@ namespace Dlhis.Entity.Common; /// api日志表 /// [SugarTable(TableName = "Logs", TableDescription = "api日志表")] -public class ApiLogEntity +public class ApiLogEntity { /// /// 时间 diff --git a/Src/Dlhis.ScheduledTask/CommonJobs/DelApiLogTaskJob.cs b/Src/Dlhis.ScheduledTask/CommonJobs/DelApiLogTaskJob.cs new file mode 100644 index 00000000..50126b15 --- /dev/null +++ b/Src/Dlhis.ScheduledTask/CommonJobs/DelApiLogTaskJob.cs @@ -0,0 +1,32 @@ +using Dlhis.Entity.Common; +using Kurisu.SqlSugar.Services; +using SqlSugar; + +namespace Dlhis.ScheduledTask.CommonJobs; + + public class DelApiLogTaskJob +{ + private readonly IDbContext _dbContext; + + public DelApiLogTaskJob(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task RunAsync() + { + DateTime now = DateTime.Now; + DateTime todayStart = now.Date; + DateTime threeDaysAgoStart = todayStart.AddDays(-3); + + var logs = await _dbContext.ChangeDb("log") + .Queryable() + .Where(x => x._ts<= threeDaysAgoStart) + .OrderBy(x =>x._ts,OrderByType.Asc) + .ToListAsync(); + + await _dbContext.ChangeDb("log").DeleteReallyAsync(logs); + } +} + + diff --git a/Src/Dlhis.ScheduledTask/Packs/JobPack.cs b/Src/Dlhis.ScheduledTask/Packs/JobPack.cs index bacad69f..429c60cc 100644 --- a/Src/Dlhis.ScheduledTask/Packs/JobPack.cs +++ b/Src/Dlhis.ScheduledTask/Packs/JobPack.cs @@ -64,5 +64,10 @@ public class JobPack : BaseAppPack { TimeZone = TimeZoneInfo.Local }); + //删除前三天前的日志 + RecurringJob.AddOrUpdate("DelApiLogTask", s => s.RunAsync(), "0 0 2 * * *", new RecurringJobOptions + { + TimeZone = TimeZoneInfo.Local + }); } } diff --git a/Src/Dlhis.ScheduledTask/Packs/SqlSugarPack.cs b/Src/Dlhis.ScheduledTask/Packs/SqlSugarPack.cs index 6ba87c85..ae038436 100644 --- a/Src/Dlhis.ScheduledTask/Packs/SqlSugarPack.cs +++ b/Src/Dlhis.ScheduledTask/Packs/SqlSugarPack.cs @@ -25,6 +25,20 @@ public class SqlSugarPack : BaseAppPack InitKeyType = InitKeyType.Attribute, IsAutoCloseConnection = true, + MoreSettings = new ConnMoreSettings + { + DisableNvarchar = true, + } + }, + new ConnectionConfig + { + ConfigId = "log", + + ConnectionString = configuration.GetSection("SqlSugarOptions:LogConnectionString").Value, + DbType = DbType.MySql, + InitKeyType = InitKeyType.Attribute, + IsAutoCloseConnection = true, + MoreSettings = new ConnMoreSettings { DisableNvarchar = true, diff --git a/Src/Dlhis.ScheduledTask/appsettings.json b/Src/Dlhis.ScheduledTask/appsettings.json index caf7f060..92cb3b23 100644 --- a/Src/Dlhis.ScheduledTask/appsettings.json +++ b/Src/Dlhis.ScheduledTask/appsettings.json @@ -18,6 +18,7 @@ "SlaveConnectionString": [], "FaceConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=face;charset=utf8mb4;", "IdentityConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=identity;charset=utf8mb4;", + "LogConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=log;charset=utf8mb4;", "Timeout": 30, "SlowSqlTime": 1, "EnableSqlLog": false