Quellcode durchsuchen

修复一些bug

qinchaoyue vor 2 Monaten
Ursprung
Commit
4dcc0399d3
73 geänderte Dateien mit 202 neuen und 137 gelöschten Zeilen
  1. 10 10
      src/Hotline.Application/Snapshot/RedPackApplication.cs
  2. 1 0
      src/Hotline.Application/Snapshot/SnapshotApplicationBase.cs
  3. 7 1
      src/Hotline.Repository.SqlSugar/BaseRepository.cs
  4. 1 1
      src/Hotline.Repository.SqlSugar/BaseRepositoryWorkflow.cs
  5. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/BlacklistRepository.cs
  6. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/CallDetailRepository.cs
  7. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/CallNativeRepository.cs
  8. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/CallRecordRepository.cs
  9. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/CallRepository.cs
  10. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/IvrCategoryRepository.cs
  11. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/IvrRepository.cs
  12. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TelGroupRepository.cs
  13. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TelHoldRepository.cs
  14. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TelRepository.cs
  15. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TelRestRepository.cs
  16. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TrCallRecordRepository.cs
  17. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/WexCallRecordRepository.cs
  18. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/WexTelGroupRepository.cs
  19. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/WorkRepository.cs
  20. 1 1
      src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingAttributeRepository.cs
  21. 1 1
      src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingInventoryRepository.cs
  22. 1 1
      src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingRepository.cs
  23. 2 2
      src/Hotline.Repository.SqlSugar/Extensions/SqlSugarStartupExtensions.cs
  24. 1 1
      src/Hotline.Repository.SqlSugar/File/FileRepository.cs
  25. 1 1
      src/Hotline.Repository.SqlSugar/FlowEngine/WorkflowRepository.cs
  26. 1 1
      src/Hotline.Repository.SqlSugar/Identity/AccountRepository.cs
  27. 1 1
      src/Hotline.Repository.SqlSugar/Knowledge/KnowledgeRepository.cs
  28. 1 1
      src/Hotline.Repository.SqlSugar/Knowledge/KnowledgeWorkFlowRepository.cs
  29. 2 2
      src/Hotline.Repository.SqlSugar/Orders/CitizenRepository.cs
  30. 5 4
      src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs
  31. 1 1
      src/Hotline.Repository.SqlSugar/Orders/OrderVisitDetailRepository.cs
  32. 1 1
      src/Hotline.Repository.SqlSugar/Orders/OrderVisitRepository.cs
  33. 2 2
      src/Hotline.Repository.SqlSugar/Orders/RepeatableEventDetailRepository.cs
  34. 2 2
      src/Hotline.Repository.SqlSugar/Quality/QualityRepository.cs
  35. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/CommunityInfoRepository.cs
  36. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/GuiderInfoRepository.cs
  37. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/IndustryCaseRepository.cs
  38. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/IndustryLogRepository.cs
  39. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/IndustryRepository.cs
  40. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/InviteCodeRecordRepository.cs
  41. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/InviteCodeRepository.cs
  42. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/OrderSnapshotRepository.cs
  43. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/PractitionerRepository.cs
  44. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/RedPackAuditRepository.cs
  45. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/RedPackGuiderAuditRepository.cs
  46. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/RedPackRecordRepository.cs
  47. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SnapshotBulletinRepository.cs
  48. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SnapshotLabelLogRepository.cs
  49. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SnapshotOrderPublishRepository.cs
  50. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SnapshotSMSTemplateRepository.cs
  51. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SupplementRecordRepository.cs
  52. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/ThirdAccountRepository.cs
  53. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/VolunteerReportRepository.cs
  54. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/VolunteerRepository.cs
  55. 1 1
      src/Hotline.Repository.SqlSugar/System/DaySettingRepository.cs
  56. 1 1
      src/Hotline.Repository.SqlSugar/System/EventCategoryRepository.cs
  57. 1 1
      src/Hotline.Repository.SqlSugar/System/SettingOrderVisitSmsReplyRuleRepository.cs
  58. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemAuthorityRepository.cs
  59. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemDataAuthorityRepository.cs
  60. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemLogRepository.cs
  61. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemMenuRepository.cs
  62. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemOrganizeRepository.cs
  63. 1 1
      src/Hotline.Repository.SqlSugar/System/TimeLimitRepository.cs
  64. 1 1
      src/Hotline.Repository.SqlSugar/TextSearch/BusinessTagRepository.cs
  65. 21 25
      src/Hotline/Orders/DatabaseEventHandler/OrderSnapshotEventHandler.cs
  66. 1 1
      src/Hotline/Orders/DatabaseEventHandler/OrderVisitDetailEventHandler.cs
  67. 6 20
      src/XF.Domain.Repository/Events/DatabaseEventDispatcher.cs
  68. 1 3
      src/XF.Domain.Repository/Events/IUpdateDatabaseEvent.cs
  69. 18 1
      test/Hotline.Tests/Application/OrderSnapshotApplicationTest.cs
  70. 3 0
      test/Hotline.Tests/Infrastructure/TestSettingConstants.cs
  71. 54 7
      test/Hotline.Tests/Mock/OrderServiceMock.cs
  72. 1 0
      test/Hotline.Tests/Startup.cs
  73. 10 1
      test/Hotline.Tests/TestBase.cs

+ 10 - 10
src/Hotline.Application/Snapshot/RedPackApplication.cs

@@ -239,6 +239,7 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
             .WhereIF(dto.ApprovedAmount.HasValue, (redPackAudit, order, snapshot, record, industry) => redPackAudit.ApprovedAmount == dto.ApprovedAmount)
             .WhereIF(dto.IsDanger.HasValue, (redPackAudit, order, snapshot, record, industry) => snapshot.IsDanger == dto.IsDanger)
             .WhereIF(status.HasValue, (redPackAudit, order, snapshot, record, industry) => redPackAudit.Status == status)
+            .OrderByDescending((redPackAudit, order, snapshot, record, industry) => redPackAudit.CreationTime)
             .Select((redPackAudit, order, snapshot, record, industry) => new SnapshotOrderAuditItemsOutDto
             {
                 Id = redPackAudit.Id,
@@ -303,21 +304,20 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
         var query = _redPackGuiderAuditRepository.Queryable(includeDeleted: true)
             .LeftJoin<Order>((redPackAudit, order) => redPackAudit.OrderId == order.Id)
             .LeftJoin<OrderSnapshot>((redPackAudit, order, snapshot) => redPackAudit.OrderId == snapshot.Id)
-            .LeftJoin<RedPackRecord>((redPackAudit, order, snapshot, record) => redPackAudit.Id == record.OrderId)
-            .LeftJoin<Industry>((redPackAudit, order, snapshot, record, industry) => snapshot.IndustryId == industry.Id)
-            .Where((redPackAudit, order, snapshot, record, industry) => order.Status == EOrderStatus.Filed)
-            .WhereIF(dto.No.NotNullOrEmpty(), (redPackAudit, order, snapshot, record, industry) => order.No.Contains(dto.No))
-            .WhereIF(dto.Title.NotNullOrEmpty(), (redPackAudit, order, snapshot, record, industry) => order.Title.Contains(dto.Title))
-            .WhereIF(status.HasValue, (redPackAudit, order, snapshot, record, industry) => redPackAudit.LevelOneStatus == status)
-            .WhereIF(areaCode.NotNullOrEmpty(), (redPackAudit, order, snapshot, record, industry) => order.AreaCode == areaCode);
+            .LeftJoin<Industry>((redPackAudit, order, snapshot, industry) => snapshot.IndustryId == industry.Id)
+            .Where((redPackAudit, order, snapshot,  industry) => order.Status >= EOrderStatus.Filed)
+            .WhereIF(dto.No.NotNullOrEmpty(), (redPackAudit, order, snapshot,  industry) => order.No.Contains(dto.No))
+            .WhereIF(dto.Title.NotNullOrEmpty(), (redPackAudit, order, snapshot,  industry) => order.Title.Contains(dto.Title))
+            .WhereIF(areaCode.NotNullOrEmpty(), (redPackAudit, order, snapshot,  industry) => order.AreaCode == areaCode);
 
         var orgName = _sessionContext.OrgName ?? string.Empty;
         if (orgName.Contains("应急管理局") && status != null)
-            query.Where((redPackAudit, order, snapshot, record, industry) => redPackAudit.LevelTwoStatus == status);
+            query = query.Where((redPackAudit, order, snapshot,  industry) => redPackAudit.LevelOneStatus == ERedPackAuditStatus.Agree && redPackAudit.LevelTwoStatus == status);
         else if (status != null)
-            query.Where((redPackAudit, order, snapshot, record, industry) => redPackAudit.LevelOneStatus == status);
+            query = query.Where((redPackAudit, order, snapshot,  industry) => redPackAudit.LevelOneStatus == status);
 
-        return query.Select((redPackAudit, order, snapshot, record, industry) => new SnapshotOrderGuiderAuditItemsOutDto
+        query = query.OrderByDescending(redPackAudit => redPackAudit.CreationTime);
+        return query.Select((redPackAudit, order, snapshot, industry) => new SnapshotOrderGuiderAuditItemsOutDto
         {
             Id = redPackAudit.Id,
             RedPackAuditId = redPackAudit.Id,

+ 1 - 0
src/Hotline.Application/Snapshot/SnapshotApplicationBase.cs

@@ -850,6 +850,7 @@ public abstract class SnapshotApplicationBase
         var guiderAudit = entity.Adapt<RedPackGuiderAudit>();
         guiderAudit.ShouldAmount = industry.GuiderReadPackAmount;
         guiderAudit.PhoneNumber = snapshot.MemberMobile;
+        guiderAudit.LevelTwoStatus = ERedPackAuditStatus.Pending;
         await _redPackGuiderAuditRepository.AddAsync(guiderAudit, cancellationToken);
         return "ok";
     }

+ 7 - 1
src/Hotline.Repository.SqlSugar/BaseRepository.cs

@@ -1,9 +1,12 @@
 using System.Linq.Expressions;
 using Hotline.Repository.SqlSugar.DataPermissions;
 using Hotline.Repository.SqlSugar.Extensions;
+using Microsoft.Extensions.DependencyInjection;
+using Novacode;
 using SqlSugar;
 using XF.Domain.Entities;
 using XF.Domain.Repository;
+using XF.Domain.Repository.Events;
 
 namespace Hotline.Repository.SqlSugar
 {
@@ -12,12 +15,14 @@ namespace Hotline.Repository.SqlSugar
         private readonly IDataPermissionFilterBuilder _dataPermissionFilterBuilder;
         protected ISugarUnitOfWork<HotlineDbContext> Uow { get; }
         protected ISqlSugarClient Db { get; }
+        private readonly IServiceProvider _serviceProvider;
 
-        public BaseRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder)
+        public BaseRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider)
         {
             Uow = uow;
             Db = uow.Db;
             _dataPermissionFilterBuilder = dataPermissionFilterBuilder;
+            _serviceProvider = serviceProvider;
         }
 
         public async Task<string> AddAsync(TEntity entity, CancellationToken cancellationToken = default)
@@ -363,6 +368,7 @@ namespace Hotline.Repository.SqlSugar
 
         public async Task UpdateAsync(TEntity entity, bool ignoreNullColumns = true, CancellationToken cancellationToken = default)
         {
+            _serviceProvider.GetService<DatabaseEventDispatcher>()?.Dispatch(entity, DataFilterType.UpdateByObject, true);
             await Db.Updateable(entity)
                 .IgnoreColumns(ignoreAllNullColumns: ignoreNullColumns)
                 .IgnoreColumns(d => d.CreationTime)

+ 1 - 1
src/Hotline.Repository.SqlSugar/BaseRepositoryWorkflow.cs

@@ -12,7 +12,7 @@ public class BaseRepositoryWorkflow<TEntity> : BaseRepository<TEntity>, IReposit
 {
     private readonly IDataPermissionFilterBuilder _dataPermissionFilterBuilder;
 
-    protected BaseRepositoryWorkflow(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    protected BaseRepositoryWorkflow(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
         _dataPermissionFilterBuilder = dataPermissionFilterBuilder;
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/BlacklistRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class BlacklistRepository : BaseRepository<Blacklist>, IBlacklistRepository, IScopeDependency
     {
-        public BlacklistRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public BlacklistRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/CallDetailRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class CallDetailRepository : BaseRepository<CallDetail>, ICallDetailRepository, IScopeDependency
     {
-        public CallDetailRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public CallDetailRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/CallNativeRepository.cs

@@ -18,7 +18,7 @@ using XF.Domain.Repository;
 namespace Hotline.Repository.SqlSugar.CallCenter;
 public class CallNativeRepository : BaseRepository<CallNative>, ICallNativeRepository, IScopeDependency
 {
-    public CallNativeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public CallNativeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
     public async Task<List<TrCallHourDto>?> GetCallHourList(DateTime beginDate, DateTime? endDate, int noConnectByeTimes, int effectiveTimes, int connectByeTimes, string source)

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/CallRecordRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class CallRecordRepository : BaseRepository<CallRecord>, ICallRecordRepository, IScopeDependency
     {
-        public CallRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public CallRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/CallRepository.cs

@@ -9,7 +9,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class CallRepository : BaseRepository<Call>, ICallRepository, IScopeDependency
     {
-        public CallRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public CallRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/IvrCategoryRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class IvrCategoryRepository : BaseRepository<IvrCategory>, IIvrCategoryRepository, IScopeDependency
     {
-        public IvrCategoryRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public IvrCategoryRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/IvrRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class IvrRepository : BaseRepository<Ivr>, IIvrRepository, IScopeDependency
     {
-        public IvrRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public IvrRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/TelGroupRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter;
 
 public class TelGroupRepository : BaseRepository<TelGroup>, ITelGroupRepository, IScopeDependency
 {
-    public TelGroupRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public TelGroupRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/TelHoldRepository.cs

@@ -8,7 +8,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class TelHoldRepository : BaseRepository<TelHold>, ITelHoldRepository, IScopeDependency
     {
-        public TelHoldRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public TelHoldRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/TelRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class TelRepository : BaseRepository<Tel>, ITelRepository, IScopeDependency
     {
-        public TelRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public TelRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/TelRestRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class TelRestRepository : BaseRepository<TelRest>, ITelRestRepository, IScopeDependency
     {
-        public TelRestRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public TelRestRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/TrCallRecordRepository.cs

@@ -13,7 +13,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class TrCallRecordRepository : BaseRepository<TrCallRecord>, ITrCallRecordRepository, IScopeDependency
     {
-        public TrCallRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public TrCallRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/WexCallRecordRepository.cs

@@ -12,7 +12,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class WexCallRecordRepository : BaseRepository<WexCallRecord>, IWexCallRecordRepository, IScopeDependency
     {
-        public WexCallRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public WexCallRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/WexTelGroupRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter
 {
     public class WexTelGroupRepository : BaseRepository<WexTelGroup>, IWexTelGroupRepository, IScopeDependency
     {
-        public WexTelGroupRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public WexTelGroupRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/CallCenter/WorkRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.CallCenter;
 
 public class WorkRepository : BaseRepository<Work>, IWorkRepository, IScopeDependency
 {
-    public WorkRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public WorkRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingAttributeRepository.cs

@@ -13,7 +13,7 @@ using XF.Domain.Repository;
 namespace Hotline.Repository.SqlSugar.ExpireTime;
 public class TimeLimitSettingAttributeRepository : BaseRepository<TimeLimitSettingAttribute>, ITimeLimitSettingAttributeRepository, IScopeDependency
 {
-    public TimeLimitSettingAttributeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public TimeLimitSettingAttributeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingInventoryRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.ExpireTime;
 public class TimeLimitSettingInventoryRepository : BaseRepository<TimeLimitSettingInventory>, ITimeLimitSettingInventoryRepository, IScopeDependency
 {
-    public TimeLimitSettingInventoryRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public TimeLimitSettingInventoryRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.ExpireTime;
 public class TimeLimitSettingRepository : BaseRepository<TimeLimitSetting>, ITimeLimitSettingRepository, IScopeDependency
 {
-    public TimeLimitSettingRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public TimeLimitSettingRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 2 - 2
src/Hotline.Repository.SqlSugar/Extensions/SqlSugarStartupExtensions.cs

@@ -272,13 +272,13 @@ namespace Hotline.Repository.SqlSugar.Extensions
                 {
                     services.BuildServiceProvider()
                     .GetService<DatabaseEventDispatcher>()?
-                    .Dispatch(entityInfo.EntityValue, entityInfo.OperationType);
+                    .Dispatch(entityInfo.EntityValue, entityInfo.OperationType, false);
                 }
                 if (entityInfo.EntityColumnInfo.IsPrimarykey && entityInfo.OperationType == DataFilterType.InsertByObject)
                 {
                     services.BuildServiceProvider()
                     .GetService<DatabaseEventDispatcher>()?
-                    .Dispatch(entityInfo.EntityValue, entityInfo.OperationType);
+                    .Dispatch(entityInfo.EntityValue, entityInfo.OperationType, false);
                 }
             };
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/File/FileRepository.cs

@@ -21,7 +21,7 @@ namespace Hotline.Repository.SqlSugar.File
 	{
 		private readonly ISessionContext _sessionContext;
 		private readonly IMapper _mapper;
-		public FileRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, ISessionContext sessionContext, IMapper mapper) : base(uow, dataPermissionFilterBuilder)
+		public FileRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, ISessionContext sessionContext, IMapper mapper, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
 		{
 			_sessionContext = sessionContext;
 			_mapper = mapper;

+ 1 - 1
src/Hotline.Repository.SqlSugar/FlowEngine/WorkflowRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.FlowEngine;
 
 public class WorkflowRepository : BaseRepository<Workflow>, IWorkflowRepository, IScopeDependency
 {
-    public WorkflowRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public WorkflowRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/Identity/AccountRepository.cs

@@ -14,7 +14,7 @@ namespace Hotline.Repository.SqlSugar.Identity
 {
     public class AccountRepository : BaseRepository<Account>, IAccountRepository, IScopeDependency
     {
-        public AccountRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public AccountRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/Knowledge/KnowledgeRepository.cs

@@ -14,7 +14,7 @@ namespace Hotline.Repository.SqlSugar.Knowledge
 {
     public class KnowledgeRepository : BaseRepositoryWorkflow<KnowledgeBase.Knowledge>, IKnowledgeRepository, IScopeDependency
     {
-        public KnowledgeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public KnowledgeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
 
         }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Knowledge/KnowledgeWorkFlowRepository.cs

@@ -8,7 +8,7 @@ namespace Hotline.Repository.SqlSugar.Knowledge
 
     public class KnowledgeWorkFlowRepository : BaseRepositoryWorkflow<KnowledgeWorkFlow>, IKnowledgeWorkFlowRepository, IScopeDependency
     {
-        public KnowledgeWorkFlowRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public KnowledgeWorkFlowRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
 
         }

+ 2 - 2
src/Hotline.Repository.SqlSugar/Orders/CitizenRepository.cs

@@ -30,8 +30,8 @@ namespace Hotline.Repository.SqlSugar.Orders
 			ISessionContext sessionContext,
 			IOrderRepository orderRepository,
 			IRepository<CitizenLabelDetail> labelDetailRepository,
-			IMapper mapper
-		) : base(uow, dataPermissionFilterBuilder)
+			IMapper mapper, IServiceProvider serviceProvider
+        ) : base(uow, dataPermissionFilterBuilder, serviceProvider)
 		{
 			_sessionContext = sessionContext;
 			_orderRepository = orderRepository;

+ 5 - 4
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -58,7 +58,8 @@ namespace Hotline.Repository.SqlSugar.Orders
             IRepository<OrderVisitDetail> orderVisitDetailRepository,
             ISystemSettingCacheManager systemSettingCacheManager,
             IRepository<AiOrderVisitDetail> aiOrderVisitDetailRepository
-            ) : base(uow, dataPermissionFilterBuilder)
+            , IServiceProvider serviceProvider
+            ) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
             _dataPermissionFilterBuilder = dataPermissionFilterBuilder;
             _orderSendBackAuditRepository = orderSendBackAuditRepository;
@@ -2046,21 +2047,21 @@ namespace Hotline.Repository.SqlSugar.Orders
 
     public class OrderScreenRepository : BaseRepositoryWorkflow<OrderScreen>, IOrderScreenRepository, IScopeDependency
     {
-        public OrderScreenRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public OrderScreenRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }
 
     public class OrderTerminateRepository : BaseRepositoryWorkflow<OrderTerminate>, IOrderTerminateRepository, IScopeDependency
     {
-        public OrderTerminateRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public OrderTerminateRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }
 
     public class OrderDelayRepository : BaseRepositoryWorkflow<OrderDelay>, IOrderDelayRepository, IScopeDependency
     {
-        public OrderDelayRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public OrderDelayRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Orders/OrderVisitDetailRepository.cs

@@ -11,7 +11,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Orders;
 public class OrderVisitDetailRepository : BaseRepository<OrderVisitDetail>, IOrderVisitDetailRepository, IScopeDependency
 {
-    public OrderVisitDetailRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public OrderVisitDetailRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Orders/OrderVisitRepository.cs

@@ -21,7 +21,7 @@ public class OrderVisitRepository : BaseRepository<OrderVisit>, IOrderVisitRepos
 {
     private readonly ILogger<OrderVisitRepository> _logger;
 
-    public OrderVisitRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder,  ILogger<OrderVisitRepository> logger) : base(uow, dataPermissionFilterBuilder)
+    public OrderVisitRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder,  ILogger<OrderVisitRepository> logger, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
         _logger = logger;
     }

+ 2 - 2
src/Hotline.Repository.SqlSugar/Orders/RepeatableEventDetailRepository.cs

@@ -21,8 +21,8 @@ namespace Hotline.Repository.SqlSugar.Orders
 			ISugarUnitOfWork<HotlineDbContext> uow,
 			IDataPermissionFilterBuilder dataPermissionFilterBuilder,
 			ISessionContext sessionContext,
-			IMapper mapper
-		) : base(uow, dataPermissionFilterBuilder)
+			IMapper mapper, IServiceProvider serviceProvider
+        ) : base(uow, dataPermissionFilterBuilder, serviceProvider)
 		{
 			_sessionContext = sessionContext;
 			_mapper = mapper;

+ 2 - 2
src/Hotline.Repository.SqlSugar/Quality/QualityRepository.cs

@@ -19,8 +19,8 @@ namespace Hotline.Repository.SqlSugar.Quality
         public QualityRepository(
 			ISugarUnitOfWork<HotlineDbContext> uow,
 			IDataPermissionFilterBuilder dataPermissionFilterBuilder
-		
-			) : base(uow, dataPermissionFilterBuilder)
+            , IServiceProvider serviceProvider
+            ) : base(uow, dataPermissionFilterBuilder, serviceProvider)
 		{}
 	}
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/CommunityInfoRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class CommunityInfoRepository : BaseRepository<CommunityInfo>, ICommunityInfoRepository, IScopeDependency
 {
-    public CommunityInfoRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public CommunityInfoRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/GuiderInfoRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class GuiderInfoRepository : BaseRepository<GuiderInfo>, IGuiderInfoRepository, IScopeDependency
 {
-    public GuiderInfoRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public GuiderInfoRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/IndustryCaseRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class IndustryCaseRepository : BaseRepository<IndustryCase>, IIndustryCaseRepository, IScopeDependency
 {
-    public IndustryCaseRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public IndustryCaseRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/IndustryLogRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class IndustryLogRepository : BaseRepository<IndustryLog>, IIndustryLogRepository,  IScopeDependency
 {
-    public IndustryLogRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public IndustryLogRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/IndustryRepository.cs

@@ -13,7 +13,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class IndustryRepository : BaseRepository<Industry>, IIndustryRepository, IScopeDependency
 {
-    public IndustryRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public IndustryRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/InviteCodeRecordRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class InviteCodeRecordRepository : BaseRepository<InviteCodeRecord>, IInviteCodeRecordRepository, IScopeDependency
 {
-    public InviteCodeRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public InviteCodeRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/InviteCodeRepository.cs

@@ -12,7 +12,7 @@ using Hotline.Repository.SqlSugar.DataPermissions;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class InviteCodeRepository : BaseRepository<InviteCode>, IInviteCodeRepository, IScopeDependency
 {
-    public InviteCodeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public InviteCodeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/OrderSnapshotRepository.cs

@@ -17,7 +17,7 @@ namespace Hotline.Repository.SqlSugar.Snapshot;
 public class OrderSnapshotRepository : BaseRepository<OrderSnapshot>, IOrderSnapshotRepository, IScopeDependency
 {
     private readonly ISessionContext _sessionContext;
-    public OrderSnapshotRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, ISessionContext sessionContext) : base(uow, dataPermissionFilterBuilder)
+    public OrderSnapshotRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, ISessionContext sessionContext, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
         _sessionContext = sessionContext;
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/PractitionerRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class PractitionerRepository : BaseRepository<Practitioner>, IPractitionerRepository, IScopeDependency
 {
-    public PractitionerRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public PractitionerRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/RedPackAuditRepository.cs

@@ -13,7 +13,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class RedPackAuditRepository : BaseRepository<RedPackAudit>, IRedPackAuditRepository, IScopeDependency
 {
-    public RedPackAuditRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public RedPackAuditRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/RedPackGuiderAuditRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class RedPackGuiderAuditRepository : BaseRepository<RedPackGuiderAudit>, IRedPackGuiderAuditRepository, IScopeDependency
 {
-    public RedPackGuiderAuditRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public RedPackGuiderAuditRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/RedPackRecordRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class RedPackRecordRepository : BaseRepository<RedPackRecord>, IRedPackRecordRepository, IScopeDependency
 {
-    public RedPackRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public RedPackRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/SnapshotBulletinRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class SnapshotBulletinRepository : BaseRepository<SnapshotBulletin>, ISnapshotBulletinRepository, IScopeDependency
 {
-    public SnapshotBulletinRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public SnapshotBulletinRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder,serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/SnapshotLabelLogRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class SnapshotLabelLogRepository : BaseRepository<SnapshotLabelLog>, ISnapshotLabelLogRepository, IScopeDependency
 {
-    public SnapshotLabelLogRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public SnapshotLabelLogRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/SnapshotOrderPublishRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class SnapshotOrderPublishRepository : BaseRepository<SnapshotOrderPublish>, ISnapshotOrderPublishRepository, IScopeDependency
 {
-    public SnapshotOrderPublishRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public SnapshotOrderPublishRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/SnapshotSMSTemplateRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class SnapshotSMSTemplateRepository : BaseRepository<SnapshotSMSTemplate>, ISnapshotSMSTemplateRepository, IScopeDependency
 {
-    public SnapshotSMSTemplateRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public SnapshotSMSTemplateRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/SupplementRecordRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class SupplementRecordRepository : BaseRepository<SupplementRecord>, ISupplementRecordRepository, IScopeDependency
 {
-    public SupplementRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public SupplementRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/ThirdAccountRepository.cs

@@ -8,7 +8,7 @@ using XF.Domain.Repository;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class ThirdAccountRepository : BaseRepository<ThirdAccount>,  IThirdAccountRepository , IScopeDependency
 {
-    public ThirdAccountRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public ThirdAccountRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/VolunteerReportRepository.cs

@@ -12,7 +12,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class VolunteerReportRepository : BaseRepository<VolunteerReport>, IVolunteerReportRepository, IScopeDependency
 {
-    public VolunteerReportRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public VolunteerReportRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 }

+ 1 - 1
src/Hotline.Repository.SqlSugar/Snapshot/VolunteerRepository.cs

@@ -14,7 +14,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.Snapshot;
 public class VolunteerRepository : BaseRepository<Volunteer>, IVolunteerRepository, IScopeDependency
 {
-    public VolunteerRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public VolunteerRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/DaySettingRepository.cs

@@ -8,7 +8,7 @@ namespace Hotline.Repository.SqlSugar.System
 {
     public class DaySettingRepository : BaseRepository<DaySetting>, IDaySettingRepository, IScopeDependency
     {
-        public DaySettingRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public DaySettingRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/EventCategoryRepository.cs

@@ -8,7 +8,7 @@ namespace Hotline.Repository.SqlSugar.System
 {
     public class EventCategoryRepository : BaseRepository<EventCategory>, IEventCategoryRepository, IScopeDependency
     {
-        public EventCategoryRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public EventCategoryRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/SettingOrderVisitSmsReplyRuleRepository.cs

@@ -11,7 +11,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.System;
 public class SettingOrderVisitSmsReplyRuleRepository : BaseRepository<SettingOrderVisitSmsReplyRule>, ISettingOrderVisitSmsReplyRuleRepository, IScopeDependency
 {
-    public SettingOrderVisitSmsReplyRuleRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public SettingOrderVisitSmsReplyRuleRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/SystemAuthorityRepository.cs

@@ -9,7 +9,7 @@ namespace Hotline.Repository.SqlSugar.System
 {
     public class SystemAuthorityRepository : BaseRepository<SystemAuthority>, ISystemAuthorityRepository, IScopeDependency
     {
-        public SystemAuthorityRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public SystemAuthorityRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/SystemDataAuthorityRepository.cs

@@ -8,7 +8,7 @@ namespace Hotline.Repository.SqlSugar.System
 {
     public class SystemDataAuthorityRepository : BaseRepository<SystemDataAuthority>, ISystemDataAuthorityRepository, IScopeDependency
     {
-        public SystemDataAuthorityRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public SystemDataAuthorityRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/SystemLogRepository.cs

@@ -15,7 +15,7 @@ using XF.Domain.Dependency;
 namespace Hotline.Repository.SqlSugar.System;
 public class SystemLogRepository : BaseRepository<SystemLog>, ISystemLogRepository, IScopeDependency
 {
-    public SystemLogRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+    public SystemLogRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/SystemMenuRepository.cs

@@ -14,7 +14,7 @@ namespace Hotline.Repository.SqlSugar.System
 {
     public class SystemMenuRepository : BaseRepository<SystemMenu>, ISystemMenuRepository, IScopeDependency
     {
-        public SystemMenuRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public SystemMenuRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/SystemOrganizeRepository.cs

@@ -10,7 +10,7 @@ namespace Hotline.Repository.SqlSugar.System
 {
     public class SystemOrganizeRepository : BaseRepository<SystemOrganize>, ISystemOrganizeRepository, IScopeDependency
     {
-        public SystemOrganizeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public SystemOrganizeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/TimeLimitRepository.cs

@@ -7,7 +7,7 @@ namespace Hotline.Repository.SqlSugar.System
 {
     public class TimeLimitRepository : BaseRepository<TimeLimit>, ITimeLimitRepository, IScopeDependency
     {
-        public TimeLimitRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        public TimeLimitRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
         }
     }

+ 1 - 1
src/Hotline.Repository.SqlSugar/TextSearch/BusinessTagRepository.cs

@@ -15,7 +15,7 @@ namespace Hotline.Repository.SqlSugar.TextSearch
 	public class BusinessTagRepository : BaseRepository<BusinessTag>, IBusinessTagRepository, IScopeDependency
 	{
 
-		public BusinessTagRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+		public BusinessTagRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
 		{
 		}
 

+ 21 - 25
src/Hotline/Orders/DatabaseEventHandler/OrderSnapshotEventHandler.cs

@@ -30,33 +30,29 @@ public class OrderSnapshotEventHandler : IUpdateDatabaseEvent<OrderSnapshot>, IS
     {
     }
 
-    public void OnUpdating(object propertyValue, string propertyName, OrderSnapshot entity)
+    public void OnUpdating(OrderSnapshot entity)
     {
-        if (propertyValue == null) return;
-        if (propertyName != "IndustryName") return;
-        if (propertyValue is String industryName)
+        var industry = _orderSnapshotRepository.Queryable()
+            .Where(m => m.Id == entity.Id)
+            .Select(m => m.IndustryName)
+            .First();
+        if (entity.IndustryName == industry) return;
+
+        var order = _orderRepository.Queryable()
+            .Where(m => m.Id == entity.Id)
+            .Select(m => new { m.No, m.Title })
+            .First();
+        if (order is null) return;
+        var entityLog = new IndustryLog
         {
-            var industry = _orderSnapshotRepository.Queryable()
-                .Where(m => m.Id == entity.Id)
-                .Select(m => m.IndustryName)
-                .First();
-            if (industryName == industry) return;
+            IndustryName = entity.IndustryName,
+            OldIndustryName = industry,
+            CreationTime = DateTime.Now,
+            OrderId = entity.Id,
+            Title = order.Title,
+            No = order.No
+        };
+        _industryLogRepository.AddAsync(entityLog).GetAwaiter().GetResult();
 
-            var order = _orderRepository.Queryable()
-                .Where(m => m.Id == entity.Id)
-                .Select(m => new { m.No, m.Title })
-                .First();
-            if (order is null) return;
-            var entityLog = new IndustryLog
-            {
-                IndustryName = propertyValue.ToString(),
-                OldIndustryName = industry,
-                CreationTime = DateTime.Now,
-                OrderId = entity.Id,
-                Title = order.Title,
-                No = order.No
-            };
-            _industryLogRepository.AddAsync(entityLog).GetAwaiter().GetResult();
-        }
     }
 }

+ 1 - 1
src/Hotline/Orders/DatabaseEventHandler/OrderVisitDetailEventHandler.cs

@@ -35,7 +35,7 @@ public class OrderVisitDetailEventHandler : IUpdateDatabaseEvent<OrderVisitDetai
         OrderUpdate(entity);
     }
 
-    public void OnUpdating(object oldValue, string propertyName, OrderVisitDetail entity)
+    public void OnUpdating(OrderVisitDetail entity)
     {
 
     }

+ 6 - 20
src/XF.Domain.Repository/Events/DatabaseEventDispatcher.cs

@@ -16,7 +16,7 @@ public class DatabaseEventDispatcher
         _serviceProvider = serviceProvider;
     }
 
-    public void Dispatch<TEntity>(TEntity entity, DataFilterType operationType) where TEntity : new()
+    public void Dispatch<TEntity>(TEntity entity, DataFilterType operationType, bool befor) where TEntity : new()
     {
         var targetInterface = typeof(IUpdateDatabaseEvent<>).MakeGenericType(entity.GetType());
         var handler = _serviceProvider.GetService(targetInterface);
@@ -25,28 +25,14 @@ public class DatabaseEventDispatcher
         switch (operationType)
         {
             case DataFilterType.UpdateByObject:
-                targetInterface?.GetMethod("OnUpdated")?.Invoke(handler,[entity]);
+                if (befor)
+                    targetInterface?.GetMethod("OnUpdating")?.Invoke(handler, [entity]);
+                else
+                    targetInterface?.GetMethod("OnUpdated")?.Invoke(handler,[entity]);
                 break;
             case DataFilterType.InsertByObject:
                 targetInterface?.GetMethod("OnInserted")?.Invoke(handler, [entity]);
                 break;
         }
     }
-
-    public void Dispatch<TEntity>(object propertyValue, string propertyName, TEntity entity, DataFilterType operationType) where TEntity : new()
-    {
-        var targetInterface = typeof(IUpdateDatabaseEvent<>).MakeGenericType(entity.GetType());
-        var handler = _serviceProvider.GetService(targetInterface);
-        if (handler == null) return;
-
-        switch (operationType)
-        {
-            case DataFilterType.UpdateByObject:
-                targetInterface?.GetMethod("OnUpdating")?.Invoke(handler, [propertyValue, propertyName, entity]);
-                break;
-            case DataFilterType.InsertByObject:
-                // targetInterface?.GetMethod("OnInserted")?.Invoke(handler, [oldValue, propertyName, entity]);
-                break;
-        }
-    }
-}
+  }

+ 1 - 3
src/XF.Domain.Repository/Events/IUpdateDatabaseEvent.cs

@@ -24,10 +24,8 @@ public interface IUpdateDatabaseEvent<TEntity> where TEntity : new()
     /// 数据库更新之前
     /// 实体中的每个字段都会触发一次
     /// </summary>
-    /// <param name="propertyValue">属性值</param>
-    /// <param name="propertyName">属性名称</param>
     /// <param name="entity"></param>
-    void OnUpdating(object propertyValue, string propertyName, TEntity entity);
+    void OnUpdating(TEntity entity);
 
     ///// <summary>
     ///// 数据库插入之前

+ 18 - 1
test/Hotline.Tests/Application/OrderSnapshotApplicationTest.cs

@@ -8,6 +8,7 @@ using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Repository.SqlSugar.Snapshot;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Snapshot;
+using Hotline.Share.Enums.Snapshot;
 using Hotline.Share.Requests;
 using Hotline.Share.Tools;
 using Hotline.Snapshot.Interfaces;
@@ -32,7 +33,9 @@ public class OrderSnapshotApplicationTest : TestBase
     private readonly ISnapshotApplication _snapshotApplication;
     private readonly IIndustryLogRepository _industryLogRepository;
     private readonly ICommunityInfoRepository _communityInfoRepository;
-    public OrderSnapshotApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService, IThirdAccountRepository thirdAccountRepository, OrderServiceMock orderServiceMock, ISystemDicDataCacheManager systemDicDataCacheManager, IOrderSnapshotRepository orderSnapshotRepository, IOrderSnapshotApplication orderSnapshotApplication, ISnapshotApplication snapshotApplication, IIndustryLogRepository industryLogRepository, ICommunityInfoRepository communityInfoRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository)
+    private readonly IRedPackAuditRepository _redPackAuditRepository;
+    private readonly IRedPackRecordRepository _redPackRecordRepository;
+    public OrderSnapshotApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService, IThirdAccountRepository thirdAccountRepository, OrderServiceMock orderServiceMock, ISystemDicDataCacheManager systemDicDataCacheManager, IOrderSnapshotRepository orderSnapshotRepository, IOrderSnapshotApplication orderSnapshotApplication, ISnapshotApplication snapshotApplication, IIndustryLogRepository industryLogRepository, ICommunityInfoRepository communityInfoRepository, IRedPackAuditRepository redPackAuditRepository, IRedPackRecordRepository redPackRecordRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository)
     {
         _orderServiceMock = orderServiceMock;
         _systemDicDataCacheManager = systemDicDataCacheManager;
@@ -41,6 +44,8 @@ public class OrderSnapshotApplicationTest : TestBase
         _snapshotApplication = snapshotApplication;
         _industryLogRepository = industryLogRepository;
         _communityInfoRepository = communityInfoRepository;
+        _redPackAuditRepository = redPackAuditRepository;
+        _redPackRecordRepository = redPackRecordRepository;
     }
 
     /// <summary>
@@ -108,6 +113,18 @@ public class OrderSnapshotApplicationTest : TestBase
                 community.FullName.ShouldBe(replyDto.OrgFullName);
             })
             .办理到派单员(Set班长)
+            .办理到一级部门(SetPaiDanYuan)
+            .办理到归档(Set一级部门)
+            .发布工单(SetZuoXi, inputLable.Select(m => new Kv(m.DicDataName, m.DicDataName)).ToList())
+            .部门审核网格员红包(Set政法委)
+            .部门审核网格员红包(Set应急管理局)
+            .部门审核市民红包(Set应急管理局)
+            .StepHandle(async order => {
+                var redPackAudit = _redPackAuditRepository.Queryable().Where(m => m.OrderId == order.Id).First();
+                redPackAudit.Status.ShouldBe(ERedPackAuditStatus.Agree);
+                var redPackRecord = _redPackRecordRepository.Queryable().Where(m => m.OrderId == order.Id).First();
+                redPackRecord.ShouldNotBeNull();
+            })
             .GetCreateResult();
         order.Id.ShouldNotBeNull();
     }

+ 3 - 0
test/Hotline.Tests/Infrastructure/TestSettingConstants.cs

@@ -13,8 +13,11 @@ public static class TestSettingConstants
     public const string FirstOrgAccountName = "cs";
     public const string SecondOrgAccountName = "cs21";
     public const string BanZhangAccountName = "UnitTestBZ";
+    public const string ZFWAccountName = "UnitTestZFW";
+    public const string YJGLJAccountName = "UnitTestYJGLJ";
 
     public const string GuiderAccountName = "UnitTestGuider";
+
 }
 
 public static class TestSessionConstants

+ 54 - 7
test/Hotline.Tests/Mock/OrderServiceMock.cs

@@ -29,6 +29,7 @@ using System.Net.Http.Headers;
 using Hotline.Share.Dtos;
 using Hotline.FlowEngine.Notifications;
 using Hotline.Api.Controllers.Bi;
+using XF.Domain.Exceptions;
 
 namespace Hotline.Application.Tests.Mock;
 public class OrderServiceMock
@@ -43,8 +44,9 @@ public class OrderServiceMock
     public readonly IFixture _fixture;
     public readonly ISessionContext _sessionContext;
     public readonly IOrderServiceStartWorkflow _orderServiceStartWorkflow;
+    public readonly RedPackController _redPackController;
 
-    public OrderServiceMock(OrderController orderController, IRepository<Order> orderRepository, IOrderVisitRepository orderVisitRepository, SnapshotController snapshotController, ISessionContext sessionContext, IOrderServiceStartWorkflow orderServiceStartWorkflow, ISystemSettingCacheManager systemSettingCacheManager)
+    public OrderServiceMock(OrderController orderController, IRepository<Order> orderRepository, IOrderVisitRepository orderVisitRepository, SnapshotController snapshotController, ISessionContext sessionContext, IOrderServiceStartWorkflow orderServiceStartWorkflow, ISystemSettingCacheManager systemSettingCacheManager, RedPackController redPackController)
     {
         _orderController = orderController;
         _orderController.ControllerContext = new ControllerContext
@@ -62,6 +64,11 @@ public class OrderServiceMock
         _sessionContext = sessionContext;
         _orderServiceStartWorkflow = orderServiceStartWorkflow;
         _systemSettingCacheManager = systemSettingCacheManager;
+        _redPackController = redPackController;
+        _redPackController.ControllerContext = new ControllerContext
+        { 
+            HttpContext = new DefaultHttpContext(),
+        };
     }
 
     public IOrderServiceStartWorkflow CreateSnapshotOrder(Action action)
@@ -281,9 +288,9 @@ public class OrderServiceMock
         return this;
     }
 
-    public OrderServiceMock 办理一级部门汇总(Action aciton = null)
+    public OrderServiceMock 办理一级部门汇总(Action action = null)
     {
-        aciton?.Invoke();
+        action?.Invoke();
         var stepNextInfo = _orderController.GetNextStepsWithRecommend(CreateOrderOutDto.Id).GetAwaiter().GetResult().ToJson().FromJson<NextStepsDto<NextStepOption>>();
         var stepInfo = stepNextInfo.Steps.FirstOrDefault(m => m.Value == "一级部门汇总");
         var stepOrg = stepInfo.Items.FirstOrDefault(m => m.OrgName == "测试部门");
@@ -326,9 +333,9 @@ public class OrderServiceMock
         return this;
     }
 
-    public OrderServiceMock 发布工单(Action aciton = null, IList<Kv>? snapshotLabels = null)
+    public OrderServiceMock 发布工单(Action action = null, IList<Kv>? snapshotLabels = null)
     {
-        aciton?.Invoke();
+        action?.Invoke();
         var baseData = _orderController.PublishOrderPageBase(CreateOrderOutDto.Id).GetAwaiter().GetResult();
         var inDto = new PublishOrderDto
         {
@@ -347,9 +354,48 @@ public class OrderServiceMock
         return this;
     }
 
-    public OrderServiceMock 发送回访短信(Action aciton = null)
+    public OrderServiceMock 部门审核网格员红包(Action action = null)
+    {
+        action?.Invoke();
+        var baseData = _redPackController.GetRedPackGuiderAuditItems(new SnapshotOrderGuiderAuditItemsInDto(null, null, 0)).GetAwaiter().GetResult();
+        var item = baseData.Items.FirstOrDefault(m => m.No == CreateOrderOutDto.No);
+        if (item == null)
+            throw UserFriendlyException.SameMessage("获取审核红包信息错误, 不存在被测试的对象.");
+        var inDto = new UpdateRedPackGuiderAuditInDto
+        {
+            RedPackAuditId = item.RedPackAuditId,
+            Status = ESnapshotSMSStatus.Agree,
+            Opinion = "红包审核通过",
+        };
+
+        _redPackController.UpdateRedPackGuiderAuditAsync(inDto).GetAwaiter().GetResult();
+        return this;
+    }
+
+    public OrderServiceMock 部门审核市民红包(Action action = null)
     {
-        aciton?.Invoke();
+        action?.Invoke();
+        var baseData = _redPackController.GetRedPackAuditItems(new SnapshotOrderAuditItemsInDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 0)).GetAwaiter().GetResult();
+        var item = baseData.Items.FirstOrDefault(m => m.No == CreateOrderOutDto.No);
+        if (item == null)
+            throw UserFriendlyException.SameMessage("获取审核红包信息错误, 不存在被测试的对象.");
+        var inDto = new UpdateRedPackAuditInDto
+        {
+            SMSTemplateId = "",
+            IsSendSms = false,
+            RedPackAuditId = item.RedPackAuditId,
+            Status = ESnapshotSMSStatus.Agree,
+            Opinion = "红包审核通过",
+        };
+
+        _redPackController.UpdateRedPackAuditAsync(inDto).GetAwaiter().GetResult();
+        return this;
+
+    }
+
+    public OrderServiceMock 发送回访短信(Action action = null)
+    {
+        action?.Invoke();
         var id = _orderVisitRepository.Queryable()
             .Where(m => m.No == CreateOrderOutDto.No)
             .Select(m => m.Id)
@@ -430,4 +476,5 @@ public class OrderServiceMock
         _orderController.Handle(handleDto).GetAwaiter().GetResult();
         return this;
     }
+
 }

+ 1 - 0
test/Hotline.Tests/Startup.cs

@@ -183,6 +183,7 @@ public class Startup
             services.AddScoped<UserController>();
             services.AddScoped<SnapshotController>();
             services.AddScoped<KnowledgeController>();
+            services.AddScoped<RedPackController>();
             services.AddScoped<PushMessageController>();
             services.AddHttpContextAccessor();
             services.AddScoped<ISessionContext, Controller.DefaultSessionContext>();

+ 10 - 1
test/Hotline.Tests/TestBase.cs

@@ -95,7 +95,6 @@ public class TestBase
         ChangeAppScope("ZiGong");
     }
 
-
     public void SetPaiDanYuan()
     {
         SetOperator("派单员", "市民热线服务中心", "单元测试派单员", "001", "13408389849", EUserType.Normal, TestSettingConstants.PaiDanYuanAccountName);
@@ -121,6 +120,16 @@ public class TestBase
         SetOperator("坐席", "市民热线服务中心", "单元测试坐席", "001", "13408389849", EUserType.Seat, TestSettingConstants.ZuoXiAccountName);
     }
 
+    public void Set政法委()
+    { 
+        SetOperator("区县政法委", "自流井区人民政府/自流井区政法委", "单元测试政法委", "001055048", "13408389849", EUserType.Normal, TestSettingConstants.ZFWAccountName);
+    }
+
+    public void Set应急管理局()
+    {
+        SetOperator("二级部门坐席", "自流井区应急管理局", "单元测试应急管理局", "001055021", "13408389849", EUserType.Normal, TestSettingConstants.YJGLJAccountName);
+    }
+
     public void SetWeiXin()
     {
         SetOperator("微信用户", "", "", "", "138001389877", EUserType.Normal, TestSettingConstants.WeiXinAccountName);