diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/Dtos/Announcement/AnnouncementLogDto.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/Dtos/Announcement/AnnouncementLogDto.cs index 0a7ef430..fdb7a59d 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/Dtos/Announcement/AnnouncementLogDto.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/Dtos/Announcement/AnnouncementLogDto.cs @@ -1,3 +1,5 @@ +using Yi.Framework.AiHub.Domain.Shared.Enums; + namespace Yi.Framework.AiHub.Application.Contracts.Dtos.Announcement; /// @@ -5,18 +7,33 @@ namespace Yi.Framework.AiHub.Application.Contracts.Dtos.Announcement; /// public class AnnouncementLogDto { - /// - /// 日期 - /// - public string Date { get; set; } = string.Empty; - /// /// 标题 /// - public string Title { get; set; } = string.Empty; + public string Title { get; set; } /// /// 内容列表 /// public List Content { get; set; } = new List(); + + /// + /// 图片url + /// + public string? ImageUrl { get; set; } + + /// + /// 开始时间(系统公告时间、活动开始时间) + /// + public DateTime StartTime { get; set; } + + /// + /// 活动结束时间 + /// + public DateTime? EndTime { get; set; } + + /// + /// 公告类型(系统、活动) + /// + public AnnouncementTypeEnum Type{ get; set; } } diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/IServices/IAnnouncementService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/IServices/IAnnouncementService.cs index 77d4d29a..acdda549 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/IServices/IAnnouncementService.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/IServices/IAnnouncementService.cs @@ -11,5 +11,5 @@ public interface IAnnouncementService /// 获取公告信息 /// /// 公告信息 - Task GetAsync(); + Task> GetAsync(); } diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AnnouncementService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AnnouncementService.cs index 8914cd25..2399070e 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AnnouncementService.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AnnouncementService.cs @@ -1,3 +1,4 @@ +using Mapster; using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Configuration; using Volo.Abp.Application.Services; @@ -14,13 +15,13 @@ namespace Yi.Framework.AiHub.Application.Services; /// public class AnnouncementService : ApplicationService, IAnnouncementService { - private readonly ISqlSugarRepository _announcementRepository; + private readonly ISqlSugarRepository _announcementRepository; private readonly IConfiguration _configuration; private readonly IDistributedCache _announcementCache; private const string AnnouncementCacheKey = "AiHub:Announcement"; public AnnouncementService( - ISqlSugarRepository announcementRepository, + ISqlSugarRepository announcementRepository, IConfiguration configuration, IDistributedCache announcementCache) { @@ -32,7 +33,7 @@ public class AnnouncementService : ApplicationService, IAnnouncementService /// /// 获取公告信息 /// - public async Task GetAsync() + public async Task> GetAsync() { // 使用 GetOrAddAsync 从缓存获取或添加数据,缓存1小时 var cacheData = await _announcementCache.GetOrAddAsync( @@ -44,11 +45,7 @@ public class AnnouncementService : ApplicationService, IAnnouncementService } ); - return new AnnouncementOutput - { - Version = cacheData?.Version ?? "v1.0.0", - Logs = cacheData?.Logs ?? new List() - }; + return cacheData?.Logs ?? new List(); } /// @@ -56,25 +53,15 @@ public class AnnouncementService : ApplicationService, IAnnouncementService /// private async Task LoadAnnouncementDataAsync() { - // 从配置文件读取版本号,如果没有配置则使用默认值 - var version = _configuration["AiHubVersion"] ?? "v1.0.0"; - // 查询所有公告日志,按日期降序排列 var logs = await _announcementRepository._DbQueryable - .OrderByDescending(x => x.Date) + .OrderByDescending(x => x.StartTime) .ToListAsync(); // 转换为 DTO - var logDtos = logs.Select(log => new AnnouncementLogDto - { - Date = log.Date.ToString("yyyy-MM-dd"), - Title = log.Title, - Content = log.Content - }).ToList(); - + var logDtos = logs.Adapt>(); return new AnnouncementCacheDto { - Version = version, Logs = logDtos }; } diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Enums/AnnouncementTypeEnum.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Enums/AnnouncementTypeEnum.cs new file mode 100644 index 00000000..fa898e18 --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Enums/AnnouncementTypeEnum.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.AiHub.Domain.Shared.Enums; + +public enum AnnouncementTypeEnum +{ + Activity=1, + System=2 +} \ No newline at end of file diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AnnouncementAggregateRoot.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AnnouncementAggregateRoot.cs new file mode 100644 index 00000000..e2e05b0d --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AnnouncementAggregateRoot.cs @@ -0,0 +1,52 @@ +using SqlSugar; +using Volo.Abp.Domain.Entities.Auditing; +using Yi.Framework.AiHub.Domain.Shared.Enums; + +namespace Yi.Framework.AiHub.Domain.Entities; + +/// +/// 公告日志 +/// +[SugarTable("Ai_Announcement")] +public class AnnouncementAggregateRoot : FullAuditedAggregateRoot +{ + public AnnouncementAggregateRoot() + { + } + + /// + /// 标题 + /// + public string Title { get; set; } = string.Empty; + + /// + /// 内容列表(JSON格式存储) + /// + [SugarColumn(IsJson = true, IsNullable = false)] + public List Content { get; set; } = new List(); + + /// + /// 备注 + /// + public string? Remark { get; set; } + + /// + /// 图片url + /// + public string? ImageUrl { get; set; } + + /// + /// 开始时间(系统公告时间、活动开始时间) + /// + public DateTime StartTime { get; set; } + + /// + /// 活动结束时间 + /// + public DateTime? EndTime { get; set; } + + /// + /// 公告类型(系统、活动) + /// + public AnnouncementTypeEnum Type{ get; set; } +} diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AnnouncementLogAggregateRoot.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AnnouncementLogAggregateRoot.cs deleted file mode 100644 index ec890394..00000000 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/AnnouncementLogAggregateRoot.cs +++ /dev/null @@ -1,44 +0,0 @@ -using SqlSugar; -using Volo.Abp.Domain.Entities.Auditing; - -namespace Yi.Framework.AiHub.Domain.Entities; - -/// -/// 公告日志 -/// -[SugarTable("Ai_AnnouncementLog")] -[SugarIndex($"index_{nameof(Date)}", nameof(Date), OrderByType.Desc)] -public class AnnouncementLogAggregateRoot : FullAuditedAggregateRoot -{ - public AnnouncementLogAggregateRoot() - { - } - - public AnnouncementLogAggregateRoot(DateTime date, string title, List content) - { - Date = date; - Title = title; - Content = content; - } - - /// - /// 日期 - /// - public DateTime Date { get; set; } - - /// - /// 标题 - /// - public string Title { get; set; } = string.Empty; - - /// - /// 内容列表(JSON格式存储) - /// - [SugarColumn(IsJson = true, IsNullable = false)] - public List Content { get; set; } = new List(); - - /// - /// 备注 - /// - public string? Remark { get; set; } -} diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs index 1e701178..2149f1b5 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs +++ b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs @@ -29,6 +29,7 @@ using Volo.Abp.Swashbuckle; using Yi.Abp.Application; using Yi.Abp.SqlsugarCore; using Yi.Framework.AiHub.Application; +using Yi.Framework.AiHub.Application.Services; using Yi.Framework.AiHub.Domain.Entities; using Yi.Framework.AspNetCore; using Yi.Framework.AspNetCore.Authentication.OAuth; @@ -354,8 +355,9 @@ namespace Yi.Abp.Web var app = context.GetApplicationBuilder(); app.UseRouting(); - //app.ApplicationServices.GetRequiredService().SqlSugarClient.CodeFirst.InitTables(); - + app.ApplicationServices.GetRequiredService().SqlSugarClient.CodeFirst.InitTables(); + // app.ApplicationServices.GetRequiredService().SqlSugarClient.CodeFirst.InitTables(); + //跨域 app.UseCors(DefaultCorsPolicyName); diff --git a/Yi.Ai.Vue3/types/import_meta.d.ts b/Yi.Ai.Vue3/types/import_meta.d.ts index d8a60d41..b3e9d275 100644 --- a/Yi.Ai.Vue3/types/import_meta.d.ts +++ b/Yi.Ai.Vue3/types/import_meta.d.ts @@ -6,7 +6,6 @@ interface ImportMetaEnv { readonly VITE_WEB_ENV: string; readonly VITE_WEB_BASE_API: string; readonly VITE_API_URL: string; - readonly VITE_BUILD_COMPRESS: string; readonly VITE_SSO_SEVER_URL: string; readonly VITE_APP_VERSION: string; }