浏览代码

回填社区信息

qinchaoyue 4 月之前
父节点
当前提交
e08fb6bf3a

+ 9 - 3
src/Hotline.Application.Tests/Application/SnapshotApplicationTest.cs

@@ -42,8 +42,9 @@ public class SnapshotApplicationTest : TestBase
     private readonly ISessionContext _sessionContext;
     private readonly IGuiderSystemService _guiderSystemService;
     private readonly ISystemSettingCacheManager _systemSettingCacheManager;
+    private readonly ICommunityInfoRepository _communityInfoRepository;
 
-    public SnapshotApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, ISnapshotApplication snapshotApplication, IIdentityAppService identityAppService, IRepository<RedPackRecord> redPackRecordRepository, IIndustryApplication industryApplication, IIndustryRepository industryRepository, IFileRepository fileRepository, OrderServiceMock orderServiceMock, IOrderRepository orderRepository, IOrderSnapshotRepository orderSnapshotRepository, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount, ISessionContext sessionContext, IGuiderSystemService guiderSystemService, ISystemSettingCacheManager systemSettingCacheManager) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
+    public SnapshotApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, ISnapshotApplication snapshotApplication, IIdentityAppService identityAppService, IRepository<RedPackRecord> redPackRecordRepository, IIndustryApplication industryApplication, IIndustryRepository industryRepository, IFileRepository fileRepository, OrderServiceMock orderServiceMock, IOrderRepository orderRepository, IOrderSnapshotRepository orderSnapshotRepository, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount, ISessionContext sessionContext, IGuiderSystemService guiderSystemService, ISystemSettingCacheManager systemSettingCacheManager, ICommunityInfoRepository communityInfoRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
         _snapshotApplication = snapshotApplication;
         _identityAppService = identityAppService;
@@ -58,6 +59,7 @@ public class SnapshotApplicationTest : TestBase
         _sessionContext = sessionContext;
         _guiderSystemService = guiderSystemService;
         _systemSettingCacheManager = systemSettingCacheManager;
+        _communityInfoRepository = communityInfoRepository;
     }
 
     [Fact]
@@ -449,8 +451,8 @@ public class SnapshotApplicationTest : TestBase
             MemberMobile = "18181552753",
             ReplyContent = "到现场查实,存在安全隐患",
             OrgId = "4828",
-            OrgName = "瓦市村民委员会",
-            OrgFullName = "四川省/自贡市/沿滩区/永安镇/瓦市村村民委员会",
+            OrgName = "瓦市村民委员会" + DateTime.Now.ToString("ss"),
+            OrgFullName = "四川省/自贡市/沿滩区/永安镇/瓦市村村民委员会" + DateTime.Now.ToString("ss"),
             DepartmentNo = "510311106206",
             ParentOrgId = "4821",
             ReplyFileList = new List<string>
@@ -465,5 +467,9 @@ public class SnapshotApplicationTest : TestBase
         orderReply.MemberName.ShouldBe(replyDto.MemberName);
         orderReply.NetworkRemark.ShouldBe(replyDto.ReplyContent);
         orderReply.ReplyDate.Value.ToString("yyyy-MM-dd hh:mm:ss").ShouldBe(replyDto.ReplyDate);
+        var community = await _communityInfoRepository.GetAsync(replyDto.OrgId);
+        community.ShouldNotBeNull();
+        community.Name.ShouldBe(replyDto.OrgName);
+        community.FullName.ShouldBe(replyDto.OrgFullName);
     }
 }

+ 3 - 0
src/Hotline.Application.Tests/Startup.cs

@@ -63,6 +63,7 @@ using Hotline.Snapshot.Interfaces;
 using TianQue.Sdk;
 using Hotline.Snapshot.Notifications;
 using Hotline.File;
+using Hotline.Settings.SystemLogDomain;
 
 namespace Hotline.Application.Tests;
 public class Startup
@@ -187,6 +188,8 @@ public class Startup
             services.AddScoped<IFileDomainService, FileDomainService>();
             services.AddXingTangDb(callCenterConfiguration.XingTang);
             services.AddScoped<IGuiderSystemService, TiqnQueService>();
+            services.AddSingleton<LoggingInterceptor>();
+            services.AddSingleton<AsyncLoggingInterceptor>();
             //ServiceLocator.Instance = services.BuildServiceProvider();
         }
 

+ 5 - 1
src/Hotline.Application/Mappers/SnapshotMapperConfigs.cs

@@ -20,7 +20,11 @@ public class SnapshotMapperConfigs : IRegister
             .Map(dest => dest.Name, src => src.OrgName)
             .Map(dest => dest.ParentCode, src => src.ParentOrgId)
             .Map(dest => dest.Id, src => src.OrgId)
-            .Map(dest => dest.FullName, src => src.OrgFullName);
+            .Map(dest => dest.FullName, src => src.OrgFullName)
+            .AfterMapping((dest, src) => 
+            {
+                src.Id = dest.OrgId;
+            });
 
         config.ForType<AddIndustryDto, Industry>();
         config.ForType<Hotline.File.File, IndustryFileDto>()

+ 2 - 2
src/Hotline.Application/Snapshot/SnapshotApplicationBase.cs

@@ -576,7 +576,7 @@ public abstract class SnapshotApplicationBase
     /// </summary>
     /// <param name="dto"></param>
     /// <returns></returns>
-    [LogFilter("ReplyCode")]
+    [LogToData("ReplyCode")]
     public async Task SaveGuiderSystemReplyAsync(GuiderSystemInDto dto, CancellationToken token)
     {
         var orderSnapshot = await _orderSnapshotRepository.GetByNetworkENumberAsync(dto.AppealNumber)
@@ -646,7 +646,7 @@ public abstract class SnapshotApplicationBase
             await _communityInfoRepository.AddAsync(community);
             return;
         }
-        if (entity.UniqueKey != community.UniqueKey)
+        if (entity.UniqueKey != community.GetUniqueKey())
         { 
             await _communityInfoRepository.UpdateAsync(community, cancellationToken);
         }

+ 4 - 4
src/Hotline/Settings/SystemLogDomain/AsyncLoggingInterceptor.cs

@@ -53,14 +53,14 @@ public class AsyncLoggingInterceptor : AsyncInterceptorBase
         }
     }
 
-    private LogFilterAttribute? GetLogAttribute(IInvocation invocation)
+    private LogToDataAttribute? GetLogAttribute(IInvocation invocation)
     {
         var methodInfo = invocation.MethodInvocationTarget ?? invocation.Method;
-        return methodInfo.GetCustomAttributes(typeof(LogFilterAttribute), true)
-                                     .FirstOrDefault() as LogFilterAttribute;
+        return methodInfo.GetCustomAttributes(typeof(LogToDataAttribute), true)
+                                     .FirstOrDefault() as LogToDataAttribute;
     }
 
-    private SystemLog GetSystemLog(IInvocation invocation, LogFilterAttribute logAttribute)
+    private SystemLog GetSystemLog(IInvocation invocation, LogToDataAttribute logAttribute)
     {
         if (logAttribute == null) return null;
         var entity = new SystemLog

+ 2 - 2
src/Hotline/Settings/SystemLogDomain/LogFilterAttribute.cs → src/Hotline/Settings/SystemLogDomain/LogToDataAttribute.cs

@@ -6,11 +6,11 @@ using System.Threading.Tasks;
 
 namespace Hotline.Settings.SystemLogDomain;
 [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
-public class LogFilterAttribute : Attribute
+public class LogToDataAttribute : Attribute
 {
     public string ExternalIdName { get; set; }
 
-    public LogFilterAttribute(string externalIdName = "Id")
+    public LogToDataAttribute(string externalIdName = "Id")
     {
         ExternalIdName = externalIdName;
     }

+ 2 - 2
src/Hotline/Settings/SystemLogDomain/LoggingInterceptor.cs

@@ -22,8 +22,8 @@ public class LoggingInterceptor : IInterceptor
     {
         // 检查实现类的方法是否有 LogToDatabaseAttribute
         var methodInfo = invocation.MethodInvocationTarget ?? invocation.Method;
-        var logAttribute = methodInfo.GetCustomAttributes(typeof(LogFilterAttribute), true)
-                                     .FirstOrDefault() as LogFilterAttribute;
+        var logAttribute = methodInfo.GetCustomAttributes(typeof(LogToDataAttribute), true)
+                                     .FirstOrDefault() as LogToDataAttribute;
 
         SystemLog entity = null;
         if (logAttribute != null)