Browse Source

Merge branch 'feature/snapshot' into dev

qinchaoyue 5 months ago
parent
commit
4c23ee6e95

+ 2 - 2
src/Hotline.Api/Controllers/Snapshot/SnapshotController.cs

@@ -159,8 +159,8 @@ public class SnapshotController : BaseController
     /// <param name="dto"></param>
     /// <param name="dto"></param>
     /// <returns></returns>
     /// <returns></returns>
     [HttpGet("order")]
     [HttpGet("order")]
-    public virtual async Task<PagedDto<OrderOutDto>> QueryOrderListAsync([FromQuery] OrderInDto dto)
-        => await _snapshotApplication.GetSnapshotOrdersAsync(dto);
+    public virtual async Task<IList<OrderOutDto>> QueryOrderListAsync([FromQuery] OrderInDto dto)
+        => await _snapshotApplication.GetSnapshotOrdersAsync(dto, HttpContext.RequestAborted);
 
 
     /// <summary>
     /// <summary>
     /// 获取我提交的线索详情
     /// 获取我提交的线索详情

+ 2 - 1
src/Hotline.Application.Tests/Application/DefaultCallApplicationTest.cs

@@ -8,6 +8,7 @@ using Hotline.Orders;
 using Hotline.Share.Dtos.CallCenter;
 using Hotline.Share.Dtos.CallCenter;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.CallCenter;
 using Hotline.Share.Enums.CallCenter;
+using Hotline.Snapshot.Interfaces;
 using Hotline.Users;
 using Hotline.Users;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.DependencyInjection;
@@ -24,7 +25,7 @@ public class DefaultCallApplicationTest : TestBase
     public readonly IFixture _fixture;
     public readonly IFixture _fixture;
     private readonly IOrderRepository _orderRepository;
     private readonly IOrderRepository _orderRepository;
 
 
-    public DefaultCallApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, XingTangCallApplication defaultCallApplication, IOrderVisitRepository orderVisitRepository, IRepository<CallNative> callNativeRepository, IOrderRepository orderRepository, IThirdIdentiyService thirdService) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService)
+    public DefaultCallApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, XingTangCallApplication defaultCallApplication, IOrderVisitRepository orderVisitRepository, IRepository<CallNative> callNativeRepository, IOrderRepository orderRepository, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
     {
         _fixture = new Fixture();
         _fixture = new Fixture();
         _defaultCallApplication = defaultCallApplication;
         _defaultCallApplication = defaultCallApplication;

+ 2 - 1
src/Hotline.Application.Tests/Application/KnowApplicationTest.cs

@@ -6,6 +6,7 @@ using Hotline.KnowledgeBase;
 using Hotline.KnowledgeBase.Notifies;
 using Hotline.KnowledgeBase.Notifies;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Tools;
 using Hotline.Share.Tools;
+using Hotline.Snapshot.Interfaces;
 using Hotline.Users;
 using Hotline.Users;
 using Mapster;
 using Mapster;
 using MediatR;
 using MediatR;
@@ -31,7 +32,7 @@ public class KnowApplicationTest : TestBase
     private readonly IRepository<KnowledgeWord> _knowledgeWordRepository;
     private readonly IRepository<KnowledgeWord> _knowledgeWordRepository;
     private readonly IRepository<KnowledgeHotWord> _knowledgeHotWordRepository;
     private readonly IRepository<KnowledgeHotWord> _knowledgeHotWordRepository;
 
 
-    public KnowApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IKnowApplication knowApplication, IRepository<KnowledgeRelationType> knowledgeRelationTypeRepository, IMediator mediator, IRepository<KnowledgeBase.Knowledge> knowledgeRepository, IKnowledgeDomainService knowledgeDomainService, IRepository<KnowledgeWord> knowledgeWordRepository, IRepository<KnowledgeHotWord> knowledgeHotWordRepository, IThirdIdentiyService thirdService) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService)
+    public KnowApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IKnowApplication knowApplication, IRepository<KnowledgeRelationType> knowledgeRelationTypeRepository, IMediator mediator, IRepository<KnowledgeBase.Knowledge> knowledgeRepository, IKnowledgeDomainService knowledgeDomainService, IRepository<KnowledgeWord> knowledgeWordRepository, IRepository<KnowledgeHotWord> knowledgeHotWordRepository, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
     {
         _knowApplication = knowApplication;
         _knowApplication = knowApplication;
         _knowledgeRelationTypeRepository = knowledgeRelationTypeRepository;
         _knowledgeRelationTypeRepository = knowledgeRelationTypeRepository;

+ 15 - 22
src/Hotline.Application.Tests/Application/SnapshotApplicationTest.cs

@@ -18,6 +18,7 @@ using Hotline.Users;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.DependencyInjection;
 using Shouldly;
 using Shouldly;
+using System;
 using XF.Domain.Repository;
 using XF.Domain.Repository;
 using XF.Utility.EnumExtensions;
 using XF.Utility.EnumExtensions;
 
 
@@ -34,7 +35,7 @@ public class SnapshotApplicationTest : TestBase
     private readonly IOrderRepository _orderRepository;
     private readonly IOrderRepository _orderRepository;
     private readonly IOrderSnapshotRepository _orderSnapshotRepository;
     private readonly IOrderSnapshotRepository _orderSnapshotRepository;
 
 
-    public SnapshotApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, ISnapshotApplication snapshotApplication, IIdentityAppService identityAppService, IRepository<RedPackRecord> redPackRecordRepository, IIndustryApplication industryApplication, IIndustryRepository industryRepository, IFileRepository fileRepository, OrderServiceMock orderServiceMock, IOrderRepository orderRepository, IOrderSnapshotRepository orderSnapshotRepository, IThirdIdentiyService thirdService) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService)
+    public SnapshotApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, ISnapshotApplication snapshotApplication, IIdentityAppService identityAppService, IRepository<RedPackRecord> redPackRecordRepository, IIndustryApplication industryApplication, IIndustryRepository industryRepository, IFileRepository fileRepository, OrderServiceMock orderServiceMock, IOrderRepository orderRepository, IOrderSnapshotRepository orderSnapshotRepository, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
     {
         _snapshotApplication = snapshotApplication;
         _snapshotApplication = snapshotApplication;
         _identityAppService = identityAppService;
         _identityAppService = identityAppService;
@@ -102,11 +103,12 @@ public class SnapshotApplicationTest : TestBase
             .OrderBy(m => m.DisplayOrder)
             .OrderBy(m => m.DisplayOrder)
             .FirstAsync();
             .FirstAsync();
 
 
-        SetZuoXi();
+        SetWeiXin();
         var order = _orderServiceMock.CreateSnapshotOrder()
         var order = _orderServiceMock.CreateSnapshotOrder()
-            .办理到派单员()
+            .办理到派单员(SetZuoXi)
             .办理到归档(SetPaiDanYuan)
             .办理到归档(SetPaiDanYuan)
             .GetCreateResult();
             .GetCreateResult();
+        SetWeiXin();
         var orderEntity = await _orderRepository.GetAsync(order.Id);
         var orderEntity = await _orderRepository.GetAsync(order.Id);
         var orderSnapshot = await _orderSnapshotRepository.GetAsync(order.Id);
         var orderSnapshot = await _orderSnapshotRepository.GetAsync(order.Id);
         var inDto = new AddSnapshotOrderPublishInDto
         var inDto = new AddSnapshotOrderPublishInDto
@@ -169,12 +171,12 @@ public class SnapshotApplicationTest : TestBase
     {
     {
         var dto = new OrderInDto();
         var dto = new OrderInDto();
         dto.KeyWords = key;
         dto.KeyWords = key;
-        var page = await _snapshotApplication.GetSnapshotOrdersAsync(dto);
-        page.Total.ShouldNotBe(0);
-        page.Items.FirstOrDefault()?.IndustryName.ShouldNotBeNullOrEmpty();
-        page.Items.FirstOrDefault()?.OrderNo.ShouldNotBeNullOrEmpty();
-        page.Items.FirstOrDefault()?.StatusText.ShouldNotBeNullOrEmpty();
-        page.Items.FirstOrDefault()?.Area.ShouldNotBeNullOrEmpty();
+        var page = await _snapshotApplication.GetSnapshotOrdersAsync(dto, CancellationToken.None);
+        page.Count.ShouldNotBe(0);
+        page.FirstOrDefault()?.IndustryName.ShouldNotBeNullOrEmpty();
+        page.FirstOrDefault()?.OrderNo.ShouldNotBeNullOrEmpty();
+        page.FirstOrDefault()?.StatusText.ShouldNotBeNullOrEmpty();
+        page.FirstOrDefault()?.Area.ShouldNotBeNullOrEmpty();
     }
     }
 
 
     [Theory]
     [Theory]
@@ -185,24 +187,15 @@ public class SnapshotApplicationTest : TestBase
     public async Task SnapshotOrderStatus_Test(EOrderQueryStatus status, int count)
     public async Task SnapshotOrderStatus_Test(EOrderQueryStatus status, int count)
     {
     {
         var dto = new OrderInDto { Status = status };
         var dto = new OrderInDto { Status = status };
-        var page = await _snapshotApplication.GetSnapshotOrdersAsync(dto);
-        page.Total.ShouldNotBe(0, $"状态:{status.GetDescription()} 数据为空");
-        page.Total.ShouldBe(count, $"状态:{status.GetDescription()} 数据条数错误");
-        page.Items.FirstOrDefault()?.IndustryName.ShouldNotBeNullOrEmpty();
-        page.Items.FirstOrDefault()?.OrderNo.ShouldNotBeNullOrEmpty();
-        page.Items.FirstOrDefault()?.StatusText.ShouldNotBeNullOrEmpty();
-        page.Items.FirstOrDefault()?.Area.ShouldNotBeNullOrEmpty();
-
-        dto.PageIndex = 2;
-        page = await _snapshotApplication.GetSnapshotOrdersAsync(dto);
-        page.Items.Count.ShouldBe(0);
+        var page = await _snapshotApplication.GetSnapshotOrdersAsync(dto, CancellationToken.None);
+        page.Count.ShouldNotBe(0, $"状态:{status.GetDescription()} 数据为空");
     }
     }
 
 
     [Fact]
     [Fact]
     public async Task GetSnapshotOrderDetail_Test()
     public async Task GetSnapshotOrderDetail_Test()
     {
     {
-        var page = await _snapshotApplication.GetSnapshotOrdersAsync(new OrderInDto());
-        var id = page.Items.First().Id;
+        var page = await _snapshotApplication.GetSnapshotOrdersAsync(new OrderInDto(), CancellationToken.None);
+        var id = page.First().Id;
         var detail = await _snapshotApplication.GetSnapshotOrderDetailAsync(id);
         var detail = await _snapshotApplication.GetSnapshotOrderDetailAsync(id);
         detail.Id.ShouldBe(id);
         detail.Id.ShouldBe(id);
         detail.IndustryName.ShouldNotBeNull();
         detail.IndustryName.ShouldNotBeNull();

+ 2 - 1
src/Hotline.Application.Tests/Application/SystemSettingCacheManagerTest.cs

@@ -4,6 +4,7 @@ using Hotline.Caching.Services;
 using Hotline.Identity.Accounts;
 using Hotline.Identity.Accounts;
 using Hotline.Identity.Roles;
 using Hotline.Identity.Roles;
 using Hotline.Settings;
 using Hotline.Settings;
+using Hotline.Snapshot.Interfaces;
 using Hotline.Users;
 using Hotline.Users;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.DependencyInjection;
@@ -22,7 +23,7 @@ public class SystemSettingCacheManagerTest : TestBase
     private readonly ISystemDicDataCacheManager _systemDicDataCacheManager;
     private readonly ISystemDicDataCacheManager _systemDicDataCacheManager;
     private readonly IRepository<SystemSetting> _systemSettingRepository;
     private readonly IRepository<SystemSetting> _systemSettingRepository;
 
 
-    public SystemSettingCacheManagerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, ISystemSettingCacheManager systemSettingCacheManager, ISystemDicDataCacheManager systemDicDataCacheManager, IRepository<SystemSetting> systemSettingRepository, IThirdIdentiyService thirdService) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService)
+    public SystemSettingCacheManagerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, ISystemSettingCacheManager systemSettingCacheManager, ISystemDicDataCacheManager systemDicDataCacheManager, IRepository<SystemSetting> systemSettingRepository, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
     {
         _systemSettingCacheManager = systemSettingCacheManager;
         _systemSettingCacheManager = systemSettingCacheManager;
         _systemDicDataCacheManager = systemDicDataCacheManager;
         _systemDicDataCacheManager = systemDicDataCacheManager;

+ 2 - 1
src/Hotline.Application.Tests/Controller/KnowledgeControllerTest.cs

@@ -8,6 +8,7 @@ using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Enums.FlowEngine;
 using Hotline.Share.Enums.FlowEngine;
 using Hotline.Share.Enums.KnowledgeBase;
 using Hotline.Share.Enums.KnowledgeBase;
+using Hotline.Snapshot.Interfaces;
 using Hotline.Users;
 using Hotline.Users;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.AspNetCore.Mvc;
@@ -27,7 +28,7 @@ public class KnowledgeControllerTest : TestBase
     private readonly KnowledgeController _knowledgeController;
     private readonly KnowledgeController _knowledgeController;
     private readonly IRepository<KnowledgeBase.Knowledge> _knowledgeRepository;
     private readonly IRepository<KnowledgeBase.Knowledge> _knowledgeRepository;
 
 
-    public KnowledgeControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, KnowledgeServiceMock knowledgeServiceMock, KnowledgeController knowledgeController, IRepository<KnowledgeBase.Knowledge> knowledgeRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdService) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService)
+    public KnowledgeControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, KnowledgeServiceMock knowledgeServiceMock, KnowledgeController knowledgeController, IRepository<KnowledgeBase.Knowledge> knowledgeRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
     {
         _knowledgeServiceMock = knowledgeServiceMock;
         _knowledgeServiceMock = knowledgeServiceMock;
         _knowledgeController = knowledgeController;
         _knowledgeController = knowledgeController;

+ 2 - 1
src/Hotline.Application.Tests/Controller/OrderControllerTest.cs

@@ -28,6 +28,7 @@ using Hotline.Share.Enums.FlowEngine;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Settings;
 using Hotline.Share.Enums.Settings;
 using Hotline.Share.Tools;
 using Hotline.Share.Tools;
+using Hotline.Snapshot.Interfaces;
 using Hotline.Users;
 using Hotline.Users;
 using MediatR;
 using MediatR;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
@@ -64,7 +65,7 @@ public class OrderControllerTest : TestBase
     private readonly XingTangCallApplication _defaultCallApplication;
     private readonly XingTangCallApplication _defaultCallApplication;
     private readonly ISqlSugarClient _capSqlClient;
     private readonly ISqlSugarClient _capSqlClient;
 
 
-    public OrderControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IRepository<Hotspot> hotspotRepository, OrderController orderController, IOrderRepository orderRepository, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, OrderServiceMock orderServiceMock, IRepository<OrderPublish> orderPublishRepository, INotificationHandler<EndWorkflowNotify> orderPublishEndWorkflowHandler, IOrderVisitRepository orderVisitRepository, IRepository<SystemSetting> systemSettingRepository, ISystemSettingCacheManager systemSettingCacheManager, IRepository<CallNative> callNativeRepository, IRepository<CallidRelation> callIdRelationRepository, XingTangCallApplication defaultCallApplication, ISugarUnitOfWork<CapDbContext> capDbContext, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdService) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService)
+    public OrderControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IRepository<Hotspot> hotspotRepository, OrderController orderController, IOrderRepository orderRepository, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, OrderServiceMock orderServiceMock, IRepository<OrderPublish> orderPublishRepository, INotificationHandler<EndWorkflowNotify> orderPublishEndWorkflowHandler, IOrderVisitRepository orderVisitRepository, IRepository<SystemSetting> systemSettingRepository, ISystemSettingCacheManager systemSettingCacheManager, IRepository<CallNative> callNativeRepository, IRepository<CallidRelation> callIdRelationRepository, XingTangCallApplication defaultCallApplication, ISugarUnitOfWork<CapDbContext> capDbContext, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
     {
         _hotspotRepository = hotspotRepository;
         _hotspotRepository = hotspotRepository;
         _orderController = orderController;
         _orderController = orderController;

+ 1 - 1
src/Hotline.Application.Tests/Controller/SnapshotControllerTest.cs

@@ -27,7 +27,7 @@ public class SnapshotControllerTest : TestBase
     private readonly IOrderRepository _orderRepository;
     private readonly IOrderRepository _orderRepository;
     private readonly IOrderSnapshotRepository _orderSnapshotRepository;
     private readonly IOrderSnapshotRepository _orderSnapshotRepository;
     private readonly IIndustryRepository _industryRepository;
     private readonly IIndustryRepository _industryRepository;
-    public SnapshotControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, SnapshotController snapshotController, IOrderRepository orderRepository, IOrderSnapshotRepository orderSnapshotRepository, IIndustryRepository industryRepository, IThirdIdentiyService thirdService) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService)
+    public SnapshotControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, SnapshotController snapshotController, IOrderRepository orderRepository, IOrderSnapshotRepository orderSnapshotRepository, IIndustryRepository industryRepository, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
     {
         _snapshotController = snapshotController;
         _snapshotController = snapshotController;
         _snapshotController.ControllerContext = new ControllerContext
         _snapshotController.ControllerContext = new ControllerContext

+ 2 - 1
src/Hotline.Application.Tests/Domain/OrderVisitDomainServiceTest.cs

@@ -11,6 +11,7 @@ using Hotline.Share.Dtos.Push;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Push;
 using Hotline.Share.Enums.Push;
 using Hotline.Share.Tools;
 using Hotline.Share.Tools;
+using Hotline.Snapshot.Interfaces;
 using Hotline.Users;
 using Hotline.Users;
 using Mapster;
 using Mapster;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
@@ -28,7 +29,7 @@ public class OrderVisitDomainServiceTest : TestBase
     private readonly IOrderRepository _orderRepository;
     private readonly IOrderRepository _orderRepository;
     private readonly OrderServiceMock _orderServiceMock;
     private readonly OrderServiceMock _orderServiceMock;
 
 
-    public OrderVisitDomainServiceTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IOrderVisitDomainService orderVisitDomainService, IOrderVisitRepository orderVisitRepository, IRepository<OrderVisitDetail> orderVisitDetailRepository, Publisher publisher, IOrderRepository orderRepository, OrderServiceMock orderServiceMock, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdService) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService)
+    public OrderVisitDomainServiceTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IOrderVisitDomainService orderVisitDomainService, IOrderVisitRepository orderVisitRepository, IRepository<OrderVisitDetail> orderVisitDetailRepository, Publisher publisher, IOrderRepository orderRepository, OrderServiceMock orderServiceMock, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
     {
     {
         _orderVisitDomainService = orderVisitDomainService;
         _orderVisitDomainService = orderVisitDomainService;
         _orderVisitRepository = orderVisitRepository;
         _orderVisitRepository = orderVisitRepository;

+ 1 - 0
src/Hotline.Application.Tests/Infrastructure/TestSettingConstants.cs

@@ -7,6 +7,7 @@ using System.Threading.Tasks;
 namespace Hotline.Application.Tests.Infrastructure;
 namespace Hotline.Application.Tests.Infrastructure;
 public static class TestSettingConstants
 public static class TestSettingConstants
 {
 {
+    public const string WeiXinAccountName = "UnitTestWeiXin";
     public const string ZuoXiAccountName = "UnitTestZuoXi";
     public const string ZuoXiAccountName = "UnitTestZuoXi";
     public const string PaiDanYuanAccountName = "UnitTestPDY";
     public const string PaiDanYuanAccountName = "UnitTestPDY";
     public const string FirstOrgAccountName = "cs";
     public const string FirstOrgAccountName = "cs";

+ 8 - 3
src/Hotline.Application.Tests/Mock/OrderServiceMock.cs

@@ -18,6 +18,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 using System.Text;
 using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using XF.Domain.Authentications;
 using XF.Domain.Repository;
 using XF.Domain.Repository;
 
 
 namespace Hotline.Application.Tests.Mock;
 namespace Hotline.Application.Tests.Mock;
@@ -30,8 +31,9 @@ public class OrderServiceMock
     private readonly IOrderVisitRepository _orderVisitRepository;
     private readonly IOrderVisitRepository _orderVisitRepository;
     private readonly SnapshotController _snapshotController;
     private readonly SnapshotController _snapshotController;
     public readonly IFixture _fixture;
     public readonly IFixture _fixture;
+    public readonly ISessionContext _sessionContext;
 
 
-    public OrderServiceMock(OrderController orderController, IRepository<Order> orderRepository, IOrderVisitRepository orderVisitRepository, SnapshotController snapshotController)
+    public OrderServiceMock(OrderController orderController, IRepository<Order> orderRepository, IOrderVisitRepository orderVisitRepository, SnapshotController snapshotController, ISessionContext sessionContext)
     {
     {
         _orderController = orderController;
         _orderController = orderController;
         _orderController.ControllerContext = new ControllerContext
         _orderController.ControllerContext = new ControllerContext
@@ -46,6 +48,7 @@ public class OrderServiceMock
             HttpContext = new DefaultHttpContext()
             HttpContext = new DefaultHttpContext()
         };
         };
         _fixture = new Fixture();
         _fixture = new Fixture();
+        _sessionContext = sessionContext;
     }
     }
 
 
     public OrderServiceMock CreateSnapshotOrder()
     public OrderServiceMock CreateSnapshotOrder()
@@ -61,6 +64,7 @@ public class OrderServiceMock
         inDto.County = "沿滩区";
         inDto.County = "沿滩区";
         inDto.Description = "单元测试添加的时间描述";
         inDto.Description = "单元测试添加的时间描述";
         inDto.IsSecret = false;
         inDto.IsSecret = false;
+        inDto.PhoneNumber = _sessionContext.Phone;
         //inDto.JobType = 
         //inDto.JobType = 
         foreach (var item in inDto.Files)
         foreach (var item in inDto.Files)
         {
         {
@@ -90,8 +94,9 @@ public class OrderServiceMock
         return CreateOrderOutDto;
         return CreateOrderOutDto;
     }
     }
 
 
-    public OrderServiceMock 办理到派单员()
-    { 
+    public OrderServiceMock 办理到派单员(Action action = null)
+    {
+        action?.Invoke();
         var stepNextInfo = _orderController.GetFlowStartOptions(CreateOrderOutDto.Id).GetAwaiter().GetResult().ToJson().FromJson<NextStepsDto<NextStepOption>>();
         var stepNextInfo = _orderController.GetFlowStartOptions(CreateOrderOutDto.Id).GetAwaiter().GetResult().ToJson().FromJson<NextStepsDto<NextStepOption>>();
         var stepInfo = stepNextInfo.Steps.FirstOrDefault(m => m.Value == "派单组");
         var stepInfo = stepNextInfo.Steps.FirstOrDefault(m => m.Value == "派单组");
         var stepOrg = stepInfo.Items.FirstOrDefault(m => m.Username == "单元测试派单员");
         var stepOrg = stepInfo.Items.FirstOrDefault(m => m.Username == "单元测试派单员");

+ 1 - 1
src/Hotline.Application.Tests/Mock/ThirdTestService.cs

@@ -9,7 +9,7 @@ public class ThirdTestService : IThirdIdentiyService, IScopeDependency
     {
     {
         return new ThirdPhoneOutDto
         return new ThirdPhoneOutDto
         {
         {
-            PhoneNumber = "13800138000"
+            PhoneNumber = "138001389877"
         };
         };
     }
     }
 
 

+ 28 - 18
src/Hotline.Application.Tests/TestBase.cs

@@ -7,6 +7,7 @@ using Hotline.Settings;
 using Hotline.Share.Dtos.Users;
 using Hotline.Share.Dtos.Users;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.User;
 using Hotline.Share.Enums.User;
+using Hotline.Snapshot.Interfaces;
 using Hotline.Users;
 using Hotline.Users;
 using IdentityModel;
 using IdentityModel;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
@@ -27,9 +28,12 @@ public class TestBase
     private readonly IServiceScopeFactory _scopeFactory;
     private readonly IServiceScopeFactory _scopeFactory;
     public readonly IHttpContextAccessor _httpContextAccessor;
     public readonly IHttpContextAccessor _httpContextAccessor;
     public readonly IThirdIdentiyService _thirdIdentiyService;
     public readonly IThirdIdentiyService _thirdIdentiyService;
+    public readonly IThirdAccountRepository _thirdAccountRepository;
 
 
-    public TestBase(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService)
+
+    public TestBase(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService, IThirdAccountRepository thirdAccountRepository)
     {
     {
+        _thirdAccountRepository = thirdAccountRepository;
         _thirdIdentiyService = thirdIdentiyService;
         _thirdIdentiyService = thirdIdentiyService;
         _fixture = new Fixture();
         _fixture = new Fixture();
         _accountRepository = accountRepository;
         _accountRepository = accountRepository;
@@ -76,18 +80,24 @@ public class TestBase
         SetOperator("坐席", "市民热线服务中心", "单元测试坐席", "001", "13408389849", EUserType.Seat, TestSettingConstants.ZuoXiAccountName);
         SetOperator("坐席", "市民热线服务中心", "单元测试坐席", "001", "13408389849", EUserType.Seat, TestSettingConstants.ZuoXiAccountName);
     }
     }
 
 
+    public void SetWeiXin()
+    {
+        SetOperator("微信用户", "", "", "", "138001389877", EUserType.Normal, TestSettingConstants.WeiXinAccountName);
+    }
+
     private void SetOperator(string displayName, string fullOrgName, string name, string orgId, string phoneNo, EUserType userType, string userName)
     private void SetOperator(string displayName, string fullOrgName, string name, string orgId, string phoneNo, EUserType userType, string userName)
     {
     {
         var account = _accountRepository.GetExtAsync(
         var account = _accountRepository.GetExtAsync(
             d => d.UserName == userName,
             d => d.UserName == userName,
             d => d.Includes(x => x.Roles)).GetAwaiter().GetResult();
             d => d.Includes(x => x.Roles)).GetAwaiter().GetResult();
 
 
-        if (account == null)
+        var roleId = _roleRepository.Queryable()
+                       .Where(m => m.DisplayName == displayName)
+                       .Select(m => m.Id)
+                       .First();
+
+        if (account == null && roleId != null)
         {
         {
-            var roleId = _roleRepository.Queryable()
-                .Where(m => m.DisplayName == displayName)
-                .Select(m => m.Id)
-                .First();
             var newUser = new AddUserDto
             var newUser = new AddUserDto
             {
             {
                 FullOrgName = fullOrgName,
                 FullOrgName = fullOrgName,
@@ -100,27 +110,27 @@ public class TestBase
                 UserName = userName
                 UserName = userName
             };
             };
             var accountId = _userController.Add(newUser).GetAwaiter().GetResult();
             var accountId = _userController.Add(newUser).GetAwaiter().GetResult();
-            // TestSessionConstants.UserId = accountId;
             account = _accountRepository.GetExtAsync(
             account = _accountRepository.GetExtAsync(
                 d => d.UserName == userName,
                 d => d.UserName == userName,
                 d => d.Includes(x => x.Roles)).GetAwaiter().GetResult();
                 d => d.Includes(x => x.Roles)).GetAwaiter().GetResult();
         }
         }
         var user = _userRepository.GetAsync(account.Id).GetAwaiter().GetResult();
         var user = _userRepository.GetAsync(account.Id).GetAwaiter().GetResult();
-        var third = _thirdIdentiyService.GetTokenAsync(new Share.Dtos.Snapshot.ThirdTokenDto());
+        var third = _thirdIdentiyService.GetTokenAsync(new Share.Dtos.Snapshot.ThirdTokenDto()).GetAwaiter().GetResult();
+        var thirdAccount = _thirdAccountRepository.Get(d => d.OpenId == third.OpenId);
 
 
-        List<Claim> userClaims = [ 
-            new(JwtClaimTypes.Subject, account.Id),
-            new(JwtClaimTypes.PhoneNumber, account.PhoneNo ?? string.Empty),
+        List<Claim> userClaims = [
+            new(JwtClaimTypes.Subject, account.Id ?? thirdAccount.Id),
+            new(JwtClaimTypes.PhoneNumber, account.PhoneNo ?? thirdAccount.PhoneNumber),
             new(ClaimTypes.NameIdentifier, user.Id),
             new(ClaimTypes.NameIdentifier, user.Id),
             new(AppClaimTypes.UserDisplayName, account.Name),
             new(AppClaimTypes.UserDisplayName, account.Name),
-            new(AppClaimTypes.DepartmentId, user.OrgId ?? string.Empty), 
-            new(AppClaimTypes.DepartmentIsCenter, user.Organization?.IsCenter.ToString() ?? false.ToString()), 
-            new(AppClaimTypes.DepartmentName, user.Organization?.Name ?? string.Empty), 
-            new(AppClaimTypes.DepartmentAreaCode, user.Organization?.AreaCode ?? string.Empty), 
-            new(AppClaimTypes.DepartmentAreaName, user.Organization?.AreaName ?? string.Empty), 
-            new(AppClaimTypes.DepartmentLevel, user.Organization?.Level.ToString() ?? string.Empty), 
+            new(AppClaimTypes.DepartmentId, user.OrgId ?? string.Empty),
+            new(AppClaimTypes.DepartmentIsCenter, user.Organization?.IsCenter.ToString() ?? false.ToString()),
+            new(AppClaimTypes.DepartmentName, user.Organization?.Name ?? string.Empty),
+            new(AppClaimTypes.DepartmentAreaCode, user.Organization?.AreaCode ?? string.Empty),
+            new(AppClaimTypes.DepartmentAreaName, user.Organization?.AreaName ?? string.Empty),
+            new(AppClaimTypes.DepartmentLevel, user.Organization?.Level.ToString() ?? string.Empty),
             new(AppClaimTypes.AreaId, user.OrgId?.GetHigherOrgId() ?? string.Empty),
             new(AppClaimTypes.AreaId, user.OrgId?.GetHigherOrgId() ?? string.Empty),
-            new(AppClaimTypes.OpenId, third.Result.OpenId ?? string.Empty),
+            new(AppClaimTypes.OpenId, thirdAccount.OpenId ?? string.Empty),
         ];
         ];
         ClaimsIdentity identity = new ClaimsIdentity(userClaims);
         ClaimsIdentity identity = new ClaimsIdentity(userClaims);
         var principal = new ClaimsPrincipal(identity);
         var principal = new ClaimsPrincipal(identity);

+ 1 - 1
src/Hotline.Application/Snapshot/ISnapshotApplication.cs

@@ -33,7 +33,7 @@ public interface ISnapshotApplication
     /// <summary>
     /// <summary>
     /// 获取工单列表
     /// 获取工单列表
     /// </summary>
     /// </summary>
-    Task<PagedDto<OrderOutDto>> GetSnapshotOrdersAsync(OrderInDto dto);
+    Task<IList<OrderOutDto>> GetSnapshotOrdersAsync(OrderInDto dto, CancellationToken cancellationToken);
 
 
     /// <summary>
     /// <summary>
     /// 获取工单详情
     /// 获取工单详情

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

@@ -262,14 +262,14 @@ public abstract class SnapshotApplicationBase
         return outDto;
         return outDto;
     }
     }
 
 
-    public async Task<PagedDto<OrderOutDto>> GetSnapshotOrdersAsync(OrderInDto dto)
+    public async Task<IList<OrderOutDto>> GetSnapshotOrdersAsync(OrderInDto dto, CancellationToken cancellationToken)
     {
     {
         var member = await _thirdAccountRepository.QueryByOpenIdAsync(_sessionContext.OpenId);
         var member = await _thirdAccountRepository.QueryByOpenIdAsync(_sessionContext.OpenId);
         if (member == null)
         if (member == null)
         {
         {
-            return new PagedDto<OrderOutDto>(0, new List<OrderOutDto>());
+            return new List<OrderOutDto>();
         }
         }
-        var (total, items) = await _orderSnapshotRepository.Queryable()
+        var items = await _orderSnapshotRepository.Queryable()
             .LeftJoin<Order>((snapshot, order) => snapshot.Id == order.Id)
             .LeftJoin<Order>((snapshot, order) => snapshot.Id == order.Id)
             .Where((snapshot, order) => order.Contact == member.PhoneNumber)
             .Where((snapshot, order) => order.Contact == member.PhoneNumber)
             .WhereIF(dto.Status == EOrderQueryStatus.Appraise, (snapshot, order) => order.Status == EOrderStatus.Visited)
             .WhereIF(dto.Status == EOrderQueryStatus.Appraise, (snapshot, order) => order.Status == EOrderStatus.Visited)
@@ -286,9 +286,9 @@ public abstract class SnapshotApplicationBase
                 CreationTime = order.CreationTime,
                 CreationTime = order.CreationTime,
                 Area = order.City
                 Area = order.City
             })
             })
-            .ToPagedListAsync(dto.PageIndex, dto.PageSize);
+            .ToFixedListAsync(dto, cancellationToken);
 
 
-        return new PagedDto<OrderOutDto>(total, items);
+        return items;
     }
     }
 
 
     public async Task<OrderDetailOutDto> GetSnapshotOrderDetailAsync(string id)
     public async Task<OrderDetailOutDto> GetSnapshotOrderDetailAsync(string id)

+ 1 - 1
src/Hotline.Share/Dtos/Snapshot/OrderDto.cs

@@ -7,7 +7,7 @@ using XF.Utility.EnumExtensions;
 
 
 namespace Hotline.Share.Dtos.Snapshot;
 namespace Hotline.Share.Dtos.Snapshot;
 
 
-public record OrderInDto : PagedRequest
+public class OrderInDto : QueryFixedDto
 {
 {
     /// <summary>
     /// <summary>
     /// 关键字
     /// 关键字

+ 1 - 1
src/Hotline.Share/Dtos/Snapshot/OrderPublishDto.cs

@@ -72,7 +72,7 @@ public class OrderPublishDetailOutDto : OrderPublishOutDto
     /// <summary>
     /// <summary>
     /// 附件
     /// 附件
     /// </summary>
     /// </summary>
-    public List<FileJson> FileJson { get; set; }
+    public List<FileJson> FileJson { get; set; } = [];
 
 
     /// <summary>
     /// <summary>
     /// 办理流程
     /// 办理流程

+ 8 - 0
src/Hotline.Share/Enums/Snapshot/EOrderQueryStatus.cs

@@ -1,5 +1,13 @@
 using System.ComponentModel;
 using System.ComponentModel;
 namespace Hotline.Share.Enums;
 namespace Hotline.Share.Enums;
+
+/// <summary>
+/// 订单状态;
+/// 0: 全部;
+/// 1: 未回复;
+/// 2: 已回复;
+/// 3: 已评价;
+/// </summary>
 public enum EOrderQueryStatus
 public enum EOrderQueryStatus
 {
 {
     /// <summary>
     /// <summary>