Browse Source

Merge branch 'feature/snapshot' into test

qinchaoyue 2 months ago
parent
commit
01da8bce96
78 changed files with 361 additions and 154 deletions
  1. 2 2
      src/Hotline.Api/Controllers/OrderController.cs
  2. 18 14
      src/Hotline.Application/Snapshot/RedPackApplication.cs
  3. 3 1
      src/Hotline.Application/Snapshot/SnapshotApplicationBase.cs
  4. 1 0
      src/Hotline.Application/Snapshot/SnapshotOrderApplication.cs
  5. 7 1
      src/Hotline.Repository.SqlSugar/BaseRepository.cs
  6. 1 1
      src/Hotline.Repository.SqlSugar/BaseRepositoryWorkflow.cs
  7. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/BlacklistRepository.cs
  8. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/CallDetailRepository.cs
  9. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/CallNativeRepository.cs
  10. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/CallRecordRepository.cs
  11. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/CallRepository.cs
  12. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/IvrCategoryRepository.cs
  13. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/IvrRepository.cs
  14. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TelGroupRepository.cs
  15. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TelHoldRepository.cs
  16. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TelRepository.cs
  17. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TelRestRepository.cs
  18. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/TrCallRecordRepository.cs
  19. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/WexCallRecordRepository.cs
  20. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/WexTelGroupRepository.cs
  21. 1 1
      src/Hotline.Repository.SqlSugar/CallCenter/WorkRepository.cs
  22. 1 1
      src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingAttributeRepository.cs
  23. 1 1
      src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingInventoryRepository.cs
  24. 1 1
      src/Hotline.Repository.SqlSugar/ExpireTime/TimeLimitSettingRepository.cs
  25. 2 6
      src/Hotline.Repository.SqlSugar/Extensions/SqlSugarStartupExtensions.cs
  26. 1 1
      src/Hotline.Repository.SqlSugar/File/FileRepository.cs
  27. 1 1
      src/Hotline.Repository.SqlSugar/FlowEngine/WorkflowRepository.cs
  28. 1 1
      src/Hotline.Repository.SqlSugar/Identity/AccountRepository.cs
  29. 1 1
      src/Hotline.Repository.SqlSugar/Knowledge/KnowledgeRepository.cs
  30. 1 1
      src/Hotline.Repository.SqlSugar/Knowledge/KnowledgeWorkFlowRepository.cs
  31. 2 2
      src/Hotline.Repository.SqlSugar/Orders/CitizenRepository.cs
  32. 5 4
      src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs
  33. 1 1
      src/Hotline.Repository.SqlSugar/Orders/OrderVisitDetailRepository.cs
  34. 1 1
      src/Hotline.Repository.SqlSugar/Orders/OrderVisitRepository.cs
  35. 2 2
      src/Hotline.Repository.SqlSugar/Orders/RepeatableEventDetailRepository.cs
  36. 2 2
      src/Hotline.Repository.SqlSugar/Quality/QualityRepository.cs
  37. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/CommunityInfoRepository.cs
  38. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/GuiderInfoRepository.cs
  39. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/IndustryCaseRepository.cs
  40. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/IndustryLogRepository.cs
  41. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/IndustryRepository.cs
  42. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/InviteCodeRecordRepository.cs
  43. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/InviteCodeRepository.cs
  44. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/OrderSnapshotRepository.cs
  45. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/PractitionerRepository.cs
  46. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/RedPackAuditRepository.cs
  47. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/RedPackGuiderAuditRepository.cs
  48. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/RedPackRecordRepository.cs
  49. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SnapshotBulletinRepository.cs
  50. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SnapshotLabelLogRepository.cs
  51. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SnapshotOrderPublishRepository.cs
  52. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SnapshotSMSTemplateRepository.cs
  53. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/SupplementRecordRepository.cs
  54. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/ThirdAccountRepository.cs
  55. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/VolunteerReportRepository.cs
  56. 1 1
      src/Hotline.Repository.SqlSugar/Snapshot/VolunteerRepository.cs
  57. 1 1
      src/Hotline.Repository.SqlSugar/System/DaySettingRepository.cs
  58. 1 1
      src/Hotline.Repository.SqlSugar/System/EventCategoryRepository.cs
  59. 1 1
      src/Hotline.Repository.SqlSugar/System/SettingOrderVisitSmsReplyRuleRepository.cs
  60. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemAuthorityRepository.cs
  61. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemDataAuthorityRepository.cs
  62. 2 2
      src/Hotline.Repository.SqlSugar/System/SystemLogRepository.cs
  63. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemMenuRepository.cs
  64. 1 1
      src/Hotline.Repository.SqlSugar/System/SystemOrganizeRepository.cs
  65. 1 1
      src/Hotline.Repository.SqlSugar/System/TimeLimitRepository.cs
  66. 1 1
      src/Hotline.Repository.SqlSugar/TextSearch/BusinessTagRepository.cs
  67. 9 0
      src/Hotline.Share/Enums/Snapshot/EReadPackSendStatus.cs
  68. 21 25
      src/Hotline/Orders/DatabaseEventHandler/OrderSnapshotEventHandler.cs
  69. 1 1
      src/Hotline/Orders/DatabaseEventHandler/OrderVisitDetailEventHandler.cs
  70. 6 20
      src/XF.Domain.Repository/Events/DatabaseEventDispatcher.cs
  71. 1 3
      src/XF.Domain.Repository/Events/IUpdateDatabaseEvent.cs
  72. 111 2
      test/Hotline.Tests/Application/OrderSnapshotApplicationTest.cs
  73. 1 1
      test/Hotline.Tests/Controller/DefaultSessionContext.cs
  74. 3 0
      test/Hotline.Tests/Infrastructure/TestSettingConstants.cs
  75. 93 7
      test/Hotline.Tests/Mock/OrderServiceMock.cs
  76. 2 3
      test/Hotline.Tests/Mock/OrderServiceStartWorkflow.cs
  77. 1 0
      test/Hotline.Tests/Startup.cs
  78. 11 1
      test/Hotline.Tests/TestBase.cs

+ 2 - 2
src/Hotline.Api/Controllers/OrderController.cs

@@ -4314,7 +4314,7 @@ public class OrderController : BaseController
 
         switch (orderHandleFlowDto.OrderAssignMode)
         {
-            case EOrderAssignMode.AdjoinLevel:
+            case EOrderAssignMode.AdjoinLevel: // 逐级
                 var nextDto = _mapper.Map<NextWorkflowDto>(workflowDto);
                 nextDto.WorkflowId = startStep.WorkflowId;
                 nextDto.StepId = startStep.Id;
@@ -4359,7 +4359,7 @@ public class OrderController : BaseController
 
                 await _workflowDomainService.NextAsync(_sessionContext, nextDto, order.ExpiredTime, isAutoFillSummaryOpinion, cancellationToken);
                 break;
-            case EOrderAssignMode.CrossLevel:
+            case EOrderAssignMode.CrossLevel: // 跨级
                 if (!orderHandleFlowDto.CrossSteps.Any())
                     throw new UserFriendlyException("跨级指派参数异常");
 

+ 18 - 14
src/Hotline.Application/Snapshot/RedPackApplication.cs

@@ -80,7 +80,7 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
                 WXOpenId = third?.OpenId,
                 No = order.No,
                 PickupStatus = ERedPackPickupStatus.Unreceived,
-                DistributionState = EReadPackSendStatus.Unsend,
+                DistributionState = EReadPackSendStatus.Successful,
             };
             if (redPackAudit.ApprovedAmount.HasValue)
                 entity.Amount = redPackAudit.ApprovedAmount.Value;
@@ -122,7 +122,7 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
                     PhoneNumber = order.FromPhone,
                     No = order.No,
                     PickupStatus = ERedPackPickupStatus.Unreceived,
-                    DistributionState = EReadPackSendStatus.Unsend,
+                    DistributionState = EReadPackSendStatus.Successful,
                 };
                 if (redPackAudit.ApprovedAmount.HasValue)
                     entity.Amount = redPackAudit.ApprovedAmount.Value;
@@ -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,
@@ -481,6 +481,7 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
             .WhereIF(dto.No.NotNullOrEmpty(), m => m.No.Contains(dto.No))
             .WhereIF(dto.PhoneNumber.NotNullOrEmpty(), m => m.PhoneNumber.Contains(dto.PhoneNumber))
             .WhereIF(dto.Name.NotNullOrEmpty(), m => m.Name.Contains(dto.Name))
+            .OrderByDescending(m => m.CreationTime)
             .Select<SnapshotRedPackRecordItemsGuiderOutDto>();
 
         if (dto.Status == 3)
@@ -512,10 +513,13 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
             .WhereIF(dto.IsReceive.HasValue && dto.IsReceive == true, m => m.PickupStatus == ERedPackPickupStatus.Received)
             .WhereIF(dto.IsReceive.HasValue && dto.IsReceive == false, m => m.PickupStatus == ERedPackPickupStatus.Unreceived)
             .WhereIF(dto.BeginCreationTime.HasValue && dto.EndCreationTime.HasValue, m => m.CreationTime >= dto.BeginCreationTime && m.CreationTime <= dto.EndCreationTime)
-            .Select(m => new SnapshotRedPackRecordSendOutDto
+            .Select((m, snapshot, order) => new SnapshotRedPackRecordSendOutDto
             { 
                 OrderId = m.OrderId,
-                UserType = m.PeopleType
+                UserType = m.PeopleType,
+                IndustryName = snapshot.IndustryName,
+                WXOpenId = m.WXOpenId,
+                MerchantCode = m.MerchantCode
             }, true);
         return query;
     }

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

@@ -822,7 +822,7 @@ public abstract class SnapshotApplicationBase
     /// <summary>
     /// 生成用户红包审核数据
     /// </summary>
-    /// <param name="id"></param>
+    /// <param name="orderId">工单Id</param>
     /// <param name="cancellationToken"></param>
     /// <returns></returns>
     public async Task<string> AddRedPardAsync(string orderId, CancellationToken cancellationToken)
@@ -850,6 +850,8 @@ public abstract class SnapshotApplicationBase
         var guiderAudit = entity.Adapt<RedPackGuiderAudit>();
         guiderAudit.ShouldAmount = industry.GuiderReadPackAmount;
         guiderAudit.PhoneNumber = snapshot.MemberMobile;
+        guiderAudit.LevelTwoStatus = ERedPackAuditStatus.Pending;
+        guiderAudit.ApprovedAmount = industry.GuiderReadPackAmount;
         await _redPackGuiderAuditRepository.AddAsync(guiderAudit, cancellationToken);
         return "ok";
     }

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

@@ -369,6 +369,7 @@ public class SnapshotOrderApplication : IOrderSnapshotApplication, IScopeDepende
             .WhereIF(dto.Label.NotNullOrEmpty(), (log, order) => log.LabelName.Contains(dto.Label))
             .WhereIF(dto.LabelUserName.NotNullOrEmpty(), (log, order) => log.CreatorName.Contains(dto.LabelUserName))
             .WhereIF(dto.BeginSignTime.HasValue && dto.EndSignTime.HasValue, (log, order) => log.CreationTime >= dto.BeginSignTime && log.CreationTime <= dto.EndSignTime)
+            .OrderByDescending((log, order, snapshot) => log.CreationTime)
             .Select((log, order, snapshot) => new LabelOrderSnapshotLogItemsOutDto
             {
                 OrderId = order.Id,

+ 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 - 6
src/Hotline.Repository.SqlSugar/Extensions/SqlSugarStartupExtensions.cs

@@ -218,7 +218,6 @@ namespace Hotline.Repository.SqlSugar.Extensions
             /***写AOP等方法***/
             db.Aop.OnLogExecuting = (sql, pars) =>
             {
-
                 //Log.Warning($"sql参数:{JsonSerializer.Serialize(db.Ado.SqlStackTrace, new JsonSerializerOptions { Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.CjkUnifiedIdeographs) })}");
 
 
@@ -273,21 +272,18 @@ 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);
                 }
             };
 
             db.Aop.DataExecuting = (oldValue, entityInfo) =>
             {
-                services.BuildServiceProvider()
-                   .GetService<DatabaseEventDispatcher>()?
-                   .Dispatch(oldValue, entityInfo.PropertyName, entityInfo.EntityValue, entityInfo.OperationType);
                 //inset生效
                 if (entityInfo.PropertyName == "CreationTime" && entityInfo.OperationType == DataFilterType.InsertByObject)
                 {

+ 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;
@@ -2052,21 +2053,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)
         {
         }
 

+ 2 - 2
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)
     {
     }
 
@@ -29,7 +29,7 @@ public class SystemLogRepository : BaseRepository<SystemLog>, ISystemLogReposito
                 ExecuteParam = executeParam,
                 ExecuteResult = executeResult,
                 ExecuteUrl = executeUrl,
-                Remark = remark,
+                Remark = remark.Substring(0, 255),
                 Status = status,
                 IpUrl = ipUrl
             };

+ 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)
 		{
 		}
 

+ 9 - 0
src/Hotline.Share/Enums/Snapshot/EReadPackSendStatus.cs

@@ -12,12 +12,21 @@ namespace Hotline.Share.Enums.Snapshot;
 /// </summary>
 public enum EReadPackSendStatus
 {
+    /// <summary>
+    /// 发送成功
+    /// </summary>
     [Description("发放成功")]
     Successful = 0,
 
+    /// <summary>
+    /// 发送失败
+    /// </summary>
     [Description("发放失败")]
     Fail = 1,
 
+    /// <summary>
+    /// 未发放
+    /// </summary>
     [Description("未发放")]
     Unsend = 2
 }

+ 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>
     ///// 数据库插入之前

+ 111 - 2
test/Hotline.Tests/Application/OrderSnapshotApplicationTest.cs

@@ -5,8 +5,10 @@ using Hotline.Caching.Interfaces;
 using Hotline.Identity.Accounts;
 using Hotline.Identity.Roles;
 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;
@@ -28,12 +30,119 @@ public class OrderSnapshotApplicationTest : TestBase
     private readonly ISystemDicDataCacheManager _systemDicDataCacheManager;
     private readonly IOrderSnapshotRepository _orderSnapshotRepository;
     private readonly IOrderSnapshotApplication _orderSnapshotApplication;
-    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) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository)
+    private readonly ISnapshotApplication _snapshotApplication;
+    private readonly IIndustryLogRepository _industryLogRepository;
+    private readonly ICommunityInfoRepository _communityInfoRepository;
+    private readonly IRedPackAuditRepository _redPackAuditRepository;
+    private readonly IRedPackRecordRepository _redPackRecordRepository;
+    private readonly ISnapshotLabelLogRepository _snapshotLabelLogRepository;
+
+    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, ISnapshotLabelLogRepository snapshotLabelLogRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository)
     {
         _orderServiceMock = orderServiceMock;
         _systemDicDataCacheManager = systemDicDataCacheManager;
         _orderSnapshotRepository = orderSnapshotRepository;
         _orderSnapshotApplication = orderSnapshotApplication;
+        _snapshotApplication = snapshotApplication;
+        _industryLogRepository = industryLogRepository;
+        _communityInfoRepository = communityInfoRepository;
+        _redPackAuditRepository = redPackAuditRepository;
+        _redPackRecordRepository = redPackRecordRepository;
+        _snapshotLabelLogRepository = snapshotLabelLogRepository;
+    }
+
+    /// <summary>
+    /// 随手拍办理流程:
+    ///     到网格员
+    /// </summary>
+    /// <returns></returns>
+    [Fact]
+    public async Task SnapshotWorkflow_Guider_Test()
+    {
+        var snapshotLabels = _systemDicDataCacheManager.SnapshotOrderLabel;
+        var inputLable = snapshotLabels.Where(m => m.DicDataValue == "bss").ToList();
+        var order = _orderServiceMock.CreateSnapshotOrder(SetWeiXin)
+            .办理到网格员(SetZuoXi)
+            .StepHandle(async order =>
+            {
+                await _snapshotApplication.PostOrderGuiderSystemAsync(order.Id, CancellationToken.None);
+                var orderSnapshot = await _orderSnapshotRepository.GetAsync(order.Id);
+                orderSnapshot.IndustryName = "修改行业名称";
+                await _orderSnapshotRepository.UpdateAsync(orderSnapshot);
+                var industryLog = await _industryLogRepository.Queryable()
+                    .Where(m => m.OrderId == order.Id)
+                    .FirstAsync();
+                industryLog.ShouldNotBeNull();
+                industryLog.IndustryName.ShouldBe("修改行业名称");
+                await _orderSnapshotRepository.Updateable()
+                    .SetColumns(m => m.IndustryName, industryLog.OldIndustryName)
+                    .Where(m => m.Id == order.Id)
+                    .ExecuteCommandAsync();
+                orderSnapshot = await _orderSnapshotRepository.GetAsync(order.Id);
+                var replyDto = new GuiderSystemInDto
+                {
+                    ReplyCode = order.No,
+                    AppealNumber = orderSnapshot.NetworkENumber,
+                    ReplyDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),
+                    ReplyUserName = "18181552753@zgsg",
+                    ReplyBMName = "瓦市村村民委员会",
+                    ReplyResultType = "2",
+                    ReplyISTrue = "1",
+                    IsRepeat = "0",
+                    IsHiddenDanger = "1",
+                    MemberName = "许利洪",
+                    MemberMobile = "18181552753",
+                    ReplyContent = "到现场查实,存在安全隐患",
+                    OrgId = "4828",
+                    OrgName = "瓦市村民委员会" + DateTime.Now.ToString("ss"),
+                    OrgFullName = "四川省/自贡市/沿滩区/永安镇/瓦市村村民委员会" + DateTime.Now.ToString("ss"),
+                    DepartmentNo = "510311106206",
+                    ParentOrgId = "4821",
+                    ReplyFileList = new List<string>
+                    {
+                        "http://10.0.188.11:1234/tqOssManager/getObjectByUri/sichuan/scgrid/jpg/2024/12/5/095020318625.jpg"
+                    }
+                };
+                await _snapshotApplication.SaveGuiderSystemReplyAsync(replyDto, CancellationToken.None);
+                var orderReply = await _orderSnapshotRepository.GetByNetworkENumberAsync(replyDto.AppealNumber);
+                orderReply.IsDanger.ShouldBe(true);
+                orderReply.MemberMobile.ShouldBe(replyDto.MemberMobile);
+                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);
+            })
+            .办理到派单员(Set班长)
+            .办理到一级部门(SetPaiDanYuan)
+            .办理到归档(Set一级部门)
+            .发布工单(SetZuoXi, inputLable.Select(m => new Kv(m.DicDataName, m.DicDataName)).ToList())
+            .StepHandle(async order => {
+                    var log = _snapshotLabelLogRepository.Queryable().Where(m => m.OrderId == order.Id).First();
+                    log.ShouldNotBeNull();
+                    var snapshot = _orderSnapshotRepository.Get(order.Id);
+                    snapshot.LabelName.ShouldBe(string.Join(',', inputLable.Select(m => m.DicDataName)),"label异常");
+                    })
+            .部门审核网格员红包(Set政法委)
+            .部门审核网格员红包(Set应急管理局)
+            .StepHandle(async order => 
+            {
+                var redPackRecord = _redPackRecordRepository.Queryable()
+                .Where(m => m.OrderId == order.Id && m.PeopleType == EReadPackUserType.Guider)
+                .First();
+                redPackRecord.Amount.ShouldNotBe(0);
+            })
+            .部门审核市民红包(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();
     }
 
     /// <summary>
@@ -51,7 +160,7 @@ public class OrderSnapshotApplicationTest : TestBase
             .办理到工单标注(SetZuoXi)
             .办理到派单员(SetZuoXi, false)
             .办理到归档(SetZuoXi)
-            .发布工单(SetZuoXi, inputLable.Select(m => new Kv { Key = m.DicDataValue, Value = m.DicDataName}).ToList())
+            .发布工单(SetZuoXi, inputLable.Select(m => new Kv { Key = m.DicDataValue, Value = m.DicDataName }).ToList())
             .GetCreateResult();
         order.Id.ShouldNotBeNull();
 

+ 1 - 1
test/Hotline.Tests/Controller/DefaultSessionContext.cs

@@ -63,7 +63,7 @@ public class DefaultSessionContext : ISessionContext, IScopeDependency
     /// </summary>
     public string[] Roles
     {
-        get { return _contextAccessor.HttpContext?.User.Claims.Where(d => d.Type == ClaimTypes.Role).Select(d => d.Value).ToArray(); }
+        get { return _contextAccessor.HttpContext?.User.Claims.Where(d => d.Type == JwtClaimTypes.Role).Select(d => d.Value).ToArray(); }
         init { }
     }
 

+ 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

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

@@ -28,6 +28,8 @@ using XF.Domain.Repository;
 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
@@ -42,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
@@ -61,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)
@@ -280,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 == "测试部门");
@@ -325,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
         {
@@ -346,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)
@@ -391,4 +438,43 @@ public class OrderServiceMock
         var result = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
         return result;
     }
+
+    public OrderServiceMock StepHandle(Func<CreateOrderOutDto, Task> handle)
+    {
+        handle(CreateOrderOutDto).GetAwaiter().GetResult();
+        return this;
+    }
+
+    public OrderServiceMock 办理到工单标注(Action action = null)
+    {
+        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.Username == "单元测试班长");
+
+        var handleDto = new NextWorkflowDto<OrderHandleFlowDto>
+        {
+            Data = new OrderHandleFlowDto
+            {
+                OrderId = CreateOrderOutDto.Id,
+                IsSafetyDepartment = true,
+            },
+            Workflow = new NextWorkflowDto
+            {
+                NextHandlers = [stepOrg],
+                NextStepCode = stepInfo.Key,
+                NextStepName = stepInfo.Value,
+                Opinion = "办理到工单标记意见",
+                BackToCountersignEnd = false,
+                IsSms = false,
+                IsForwarded = false,
+                HandlerType = EHandlerType.OrgLevel,
+                BusinessType = EBusinessType.Send,
+                FlowDirection = EFlowDirection.CenterToCenter,
+            }
+        };
+        _orderController.Handle(handleDto).GetAwaiter().GetResult();
+        return this;
+    }
+
 }

+ 2 - 3
test/Hotline.Tests/Mock/OrderServiceStartWorkflow.cs

@@ -155,7 +155,6 @@ public class OrderServiceStartWorkflow : IOrderServiceStartWorkflow
             Data = new OrderHandleFlowDto
             {
                 OrderId = _orderServiceMock.CreateOrderOutDto.Id,
-
             },
             Workflow = new BasicWorkflowDto
             {
@@ -167,8 +166,8 @@ public class OrderServiceStartWorkflow : IOrderServiceStartWorkflow
                 IsSms = false,
                 IsForwarded = false,
                 HandlerType = EHandlerType.OrgLevel,
-                BusinessType = EBusinessType.Send,
-                FlowDirection = EFlowDirection.CenterToCenter,
+                BusinessType = EBusinessType.Department,
+                FlowDirection = EFlowDirection.CenterToOrg,
             }
         };
         _orderController.StartFlow(handleDto).GetAwaiter().GetResult();

+ 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>();

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

@@ -97,7 +97,6 @@ public class TestBase
         ChangeAppScope("ZiGong");
     }
 
-
     public void SetPaiDanYuan()
     {
         SetOperator("派单员", "市民热线服务中心", "单元测试派单员", "001", "13408389849", EUserType.Normal, TestSettingConstants.PaiDanYuanAccountName);
@@ -123,6 +122,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);
@@ -191,6 +200,7 @@ public class TestBase
             new(AppClaimTypes.OpenId, thirdAccount?.OpenId ?? string.Empty),
             new("AppScope", appScope)
         ];
+        userClaims.AddRange(account.Roles.Select(d => new Claim(JwtClaimTypes.Role, d.Name)));
         ClaimsIdentity identity = new ClaimsIdentity(userClaims);
         var principal = new ClaimsPrincipal(identity);
         _httpContextAccessor.HttpContext.User = principal;