chorm: 问题复现

This commit is contained in:
橙子
2024-10-26 00:40:43 +08:00
parent 59d9674aeb
commit 7cb78e70cb
5 changed files with 109 additions and 94 deletions

View File

@@ -132,8 +132,8 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="UserFriendlyException"></exception> /// <exception cref="UserFriendlyException"></exception>
[Permission("bbs:comment:add")] // [Permission("bbs:comment:add")]
[Authorize] // [Authorize]
public override async Task<CommentGetOutputDto> CreateAsync(CommentCreateInputVo input) public override async Task<CommentGetOutputDto> CreateAsync(CommentCreateInputVo input)
{ {
var discuess = await _discussRepository.GetFirstAsync(x => x.Id == input.DiscussId); var discuess = await _discussRepository.GetFirstAsync(x => x.Id == input.DiscussId);

View File

@@ -1,73 +1,73 @@
using TencentCloud.Tbm.V20180129.Models; // using TencentCloud.Tbm.V20180129.Models;
using Volo.Abp.DependencyInjection; // using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events; // using Volo.Abp.Domain.Entities.Events;
using Volo.Abp.EventBus; // using Volo.Abp.EventBus;
using Volo.Abp.EventBus.Local; // using Volo.Abp.EventBus.Local;
using Yi.Framework.Bbs.Domain.Entities; // using Yi.Framework.Bbs.Domain.Entities;
using Yi.Framework.Bbs.Domain.Entities.Forum; // using Yi.Framework.Bbs.Domain.Entities.Forum;
using Yi.Framework.Bbs.Domain.Shared.Consts; // using Yi.Framework.Bbs.Domain.Shared.Consts;
using Yi.Framework.Bbs.Domain.Shared.Enums; // using Yi.Framework.Bbs.Domain.Shared.Enums;
using Yi.Framework.Bbs.Domain.Shared.Etos; // using Yi.Framework.Bbs.Domain.Shared.Etos;
using Yi.Framework.Rbac.Domain.Entities; // using Yi.Framework.Rbac.Domain.Entities;
using Yi.Framework.SqlSugarCore.Abstractions; // using Yi.Framework.SqlSugarCore.Abstractions;
//
namespace Yi.Framework.Bbs.Domain.EventHandlers // namespace Yi.Framework.Bbs.Domain.EventHandlers
{ // {
/// <summary> // /// <summary>
/// 评论创建的领域事件 // /// 评论创建的领域事件
/// </summary> // /// </summary>
public class CommentCreatedEventHandler : ILocalEventHandler<EntityCreatedEventData<CommentAggregateRoot>>, // public class CommentCreatedEventHandler : ILocalEventHandler<EntityCreatedEventData<CommentAggregateRoot>>,
ITransientDependency // ITransientDependency
{ // {
private ILocalEventBus _localEventBus; // private ILocalEventBus _localEventBus;
private ISqlSugarRepository<DiscussAggregateRoot> _discussRepository; // private ISqlSugarRepository<DiscussAggregateRoot> _discussRepository;
private ISqlSugarRepository<UserAggregateRoot> _userRepository; // private ISqlSugarRepository<UserAggregateRoot> _userRepository;
public CommentCreatedEventHandler(ILocalEventBus localEventBus, ISqlSugarRepository<DiscussAggregateRoot> discussRepository, ISqlSugarRepository<UserAggregateRoot> userRepository) // public CommentCreatedEventHandler(ILocalEventBus localEventBus, ISqlSugarRepository<DiscussAggregateRoot> discussRepository, ISqlSugarRepository<UserAggregateRoot> userRepository)
{ // {
_userRepository = userRepository; // _userRepository = userRepository;
_localEventBus = localEventBus; // _localEventBus = localEventBus;
_discussRepository = discussRepository; // _discussRepository = discussRepository;
} // }
public async Task HandleEventAsync(EntityCreatedEventData<CommentAggregateRoot> eventData) // public async Task HandleEventAsync(EntityCreatedEventData<CommentAggregateRoot> eventData)
{ // {
var commentEntity = eventData.Entity; // var commentEntity = eventData.Entity;
//
//给创建者发布数量+1 // //给创建者发布数量+1
await _userRepository._Db.Updateable<BbsUserExtraInfoEntity>() // await _userRepository._Db.Updateable<BbsUserExtraInfoEntity>()
.SetColumns(it => it.CommentNumber == it.CommentNumber + 1) // .SetColumns(it => it.CommentNumber == it.CommentNumber + 1)
.Where(it => it.UserId == commentEntity.CreatorId) // .Where(it => it.UserId == commentEntity.CreatorId)
.ExecuteCommandAsync(); // .ExecuteCommandAsync();
var disucssDto = await _discussRepository._DbQueryable // var disucssDto = await _discussRepository._DbQueryable
.Where(x => x.Id == commentEntity.DiscussId) // .Where(x => x.Id == commentEntity.DiscussId)
.LeftJoin<UserAggregateRoot>((dicuss, user) => dicuss.CreatorId == user.Id) // .LeftJoin<UserAggregateRoot>((dicuss, user) => dicuss.CreatorId == user.Id)
.Select((dicuss, user) => // .Select((dicuss, user) =>
new // new
{ // {
DiscussUserId = user.Id, // DiscussUserId = user.Id,
DiscussTitle = dicuss.Title, // DiscussTitle = dicuss.Title,
//
}) // })
.FirstAsync(); // .FirstAsync();
//
var commentUser = await _userRepository.GetFirstAsync(x => x.Id == commentEntity.CreatorId); // var commentUser = await _userRepository.GetFirstAsync(x => x.Id == commentEntity.CreatorId);
//
//截取30个长度 // //截取30个长度
var content = commentEntity.Content.Length >= 30 ? commentEntity.Content.Substring(0, 30)+"..." : commentEntity.Content; // var content = commentEntity.Content.Length >= 30 ? commentEntity.Content.Substring(0, 30)+"..." : commentEntity.Content;
//通知主题作者,有人评论 // //通知主题作者,有人评论
await _localEventBus.PublishAsync(new BbsNoticeEventArgs(disucssDto.DiscussUserId, string.Format(DiscussConst.CommentNotice, disucssDto.DiscussTitle, commentUser.UserName, content,commentEntity.DiscussId)), false); // await _localEventBus.PublishAsync(new BbsNoticeEventArgs(disucssDto.DiscussUserId, string.Format(DiscussConst.CommentNotice, disucssDto.DiscussTitle, commentUser.UserName, content,commentEntity.DiscussId)), false);
//
//如果为空,表示根路径,没有回复者 // //如果为空,表示根路径,没有回复者
if (commentEntity.ParentId != Guid.Empty) // if (commentEntity.ParentId != Guid.Empty)
{ // {
//通知回复者,有人评论 // //通知回复者,有人评论
await _localEventBus.PublishAsync(new BbsNoticeEventArgs(commentEntity.ParentId, string.Format(DiscussConst.CommentNoticeToReply, disucssDto.DiscussTitle, commentUser.UserName, content,commentEntity.DiscussId)), false); // await _localEventBus.PublishAsync(new BbsNoticeEventArgs(commentEntity.ParentId, string.Format(DiscussConst.CommentNoticeToReply, disucssDto.DiscussTitle, commentUser.UserName, content,commentEntity.DiscussId)), false);
//
} // }
//
//最后发布任务触发事件 // //最后发布任务触发事件
await _localEventBus.PublishAsync( // await _localEventBus.PublishAsync(
new AssignmentEventArgs(AssignmentRequirementTypeEnum.Comment, commentUser.Id),false); // new AssignmentEventArgs(AssignmentRequirementTypeEnum.Comment, commentUser.Id),false);
//
} // }
} // }
} // }

View File

@@ -41,7 +41,8 @@ namespace Yi.Framework.Bbs.Domain.Managers
entity.Content = content; entity.Content = content;
entity.ParentId = parentId; entity.ParentId = parentId;
entity.RootId = rootId; entity.RootId = rootId;
return await _commentRepository.InsertReturnEntityAsync(entity); await _commentRepository.InsertAsync(entity);
return entity;
} }
/// <summary> /// <summary>

View File

@@ -4,28 +4,30 @@ using Yi.Abp.Web;
//创建日志,可使用{SourceContext}记录 //创建日志,可使用{SourceContext}记录
Log.Logger = new LoggerConfiguration() Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug() .MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information) .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.MinimumLevel.Override("Microsoft.AspNetCore.Hosting.Diagnostics", LogEventLevel.Error) .MinimumLevel.Override("Microsoft.AspNetCore.Hosting.Diagnostics", LogEventLevel.Error)
.MinimumLevel.Override("Quartz", LogEventLevel.Warning) .MinimumLevel.Override("Quartz", LogEventLevel.Warning)
.Enrich.FromLogContext() .Enrich.FromLogContext()
.WriteTo.Async(c => c.File("logs/all/log-.txt", rollingInterval: RollingInterval.Day, restrictedToMinimumLevel: LogEventLevel.Debug)) .WriteTo.Async(c => c.File("logs/all/log-.txt", rollingInterval: RollingInterval.Day,
.WriteTo.Async(c => c.File("logs/error/errorlog-.txt", rollingInterval: RollingInterval.Day, restrictedToMinimumLevel: LogEventLevel.Error)) restrictedToMinimumLevel: LogEventLevel.Debug))
.WriteTo.Async(c => c.Console()) .WriteTo.Async(c => c.File("logs/error/errorlog-.txt", rollingInterval: RollingInterval.Day,
.CreateLogger(); restrictedToMinimumLevel: LogEventLevel.Error))
.WriteTo.Async(c => c.Console())
.CreateLogger();
try try
{ {
Log.Information(""" Log.Information("""
__ ___ ______ _
\ \ / (_) | ____| | |
\ \_/ / _ | |__ _ __ __ _ _ __ ___ _____ _____ _ __| | __
\ / | | | __| '__/ _` | '_ ` _ \ / _ \ \ /\ / / _ \| '__| |/ /
| | | | | | | | | (_| | | | | | | __/\ V V / (_) | | | <
|_| |_| |_| |_| \__,_|_| |_| |_|\___| \_/\_/ \___/|_| |_|\_\
__ ___ ______ _ """);
\ \ / (_) | ____| | |
\ \_/ / _ | |__ _ __ __ _ _ __ ___ _____ _____ _ __| | __
\ / | | | __| '__/ _` | '_ ` _ \ / _ \ \ /\ / / _ \| '__| |/ /
| | | | | | | | | (_| | | | | | | __/\ V V / (_) | | | <
|_| |_| |_| |_| \__,_|_| |_| |_|\___| \_/\_/ \___/|_| |_|\_\
""");
Log.Information("Yi框架-Abp.vNext启动"); Log.Information("Yi框架-Abp.vNext启动");
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
@@ -36,6 +38,18 @@ try
builder.Host.UseSerilog(); builder.Host.UseSerilog();
await builder.Services.AddApplicationAsync<YiAbpWebModule>(); await builder.Services.AddApplicationAsync<YiAbpWebModule>();
var app = builder.Build(); var app = builder.Build();
app.Use(async (http, next) =>
{
var id = Guid.NewGuid();
Console.WriteLine("之前-----" + id);
http.Response.OnStarting(() =>
{
Console.WriteLine("之中-----" + id);
return Task.CompletedTask;
});
await next();
Console.WriteLine("之后-----" + id);
});
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); await app.RunAsync();
} }

View File

@@ -67,7 +67,7 @@ namespace Yi.Abp.Web
Configure<AbpAuditingOptions>(optios => Configure<AbpAuditingOptions>(optios =>
{ {
//默认关闭,开启会有大量的审计日志 //默认关闭,开启会有大量的审计日志
optios.IsEnabled = true; optios.IsEnabled = false;
//审计日志过滤器 //审计日志过滤器
optios.AlwaysLogSelectors.Add(x => Task.FromResult(!x.Url.StartsWith("/api/app/file/"))); optios.AlwaysLogSelectors.Add(x => Task.FromResult(!x.Url.StartsWith("/api/app/file/")));
}); });