Browse Source

修改门户查询办件摘编

tangjiang 6 months ago
parent
commit
10c92da5d6
1 changed files with 79 additions and 1 deletions
  1. 79 1
      src/Hotline.Api/Controllers/WebPortalController.cs

+ 79 - 1
src/Hotline.Api/Controllers/WebPortalController.cs

@@ -4,8 +4,10 @@ using Hotline.Article;
 using Hotline.Caching.Interfaces;
 using Hotline.Orders;
 using Hotline.Push.Notifies;
+using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Settings;
 using Hotline.Settings.Hotspots;
+using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.DataSharing.PusherHotlineDto;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.WebPortal;
@@ -42,6 +44,7 @@ namespace Hotline.Api.Controllers
         private readonly ISessionContext _sessionContext;
         private readonly IRepository<OrderVisitDetail> _orderVisitDetailRepository;
         private readonly IBulletinApplication _bulletinApplication;
+        private readonly IRepository<OldPublicData> _oldPublicDataRepository;
 
         public WebPortalController(IMapper mapper,
             IMediator mediator,
@@ -58,7 +61,8 @@ namespace Hotline.Api.Controllers
            IOrderApplication orderApplication,
            ISessionContext sessionContext,
             IRepository<OrderVisitDetail> orderVisitDetailRepository,
-            IBulletinApplication bulletinApplication
+            IBulletinApplication bulletinApplication,
+            IRepository<OldPublicData> oldPublicDataRepository
             )
         {
             _mapper = mapper;
@@ -77,6 +81,7 @@ namespace Hotline.Api.Controllers
             _sessionContext = sessionContext;
             _orderVisitDetailRepository = orderVisitDetailRepository;
             _bulletinApplication = bulletinApplication;
+            _oldPublicDataRepository = oldPublicDataRepository;
         }
 
         #region 通知
@@ -595,6 +600,79 @@ namespace Hotline.Api.Controllers
             return OpenResponse.Ok(WebPortalDeResponse<OrderListReturnDto>.Success(returnDto, "成功"));
         }
 
+        /// <summary>
+        /// 查询工单发布后公开的数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("get_order_list_publish_all")]
+        [AllowAnonymous]
+        public async Task<OpenResponse> GetOrderByListAllOpen([FromBody] QueryOrderListDto dto)
+        {
+            var queryNew = _orderPublishRepository.Queryable()
+                 .Includes(d => d.Order)
+                .Where(d => d.PublishState == true && d.Order.Id != null)
+                .WhereIF(!string.IsNullOrEmpty(dto.FlowCode), d => d.Order.No == dto.FlowCode)
+                .WhereIF(!string.IsNullOrEmpty(dto.FlowName), d => d.Order.Title.Contains(dto.FlowName))
+                .WhereIF(!string.IsNullOrEmpty(dto.FlowSType), d => d.Order.AcceptTypeCode == dto.FlowSType)
+                .WhereIF(!string.IsNullOrEmpty(dto.FlowRType), d => d.Order.HotspotId == dto.FlowRType)
+                .WhereIF(!string.IsNullOrEmpty(dto.FlowSDate), d => d.Order.StartTime >= DateTime.Parse(DateTime.Parse(dto.FlowSDate).ToString("yyyy-MM-dd 00:00:00")))//dto.FlowSDate
+                .WhereIF(!string.IsNullOrEmpty(dto.FlowEDate), d => d.Order.StartTime <= DateTime.Parse(DateTime.Parse(dto.FlowEDate).ToString("yyyy-MM-dd 00:00:00")))// dto.FlowEDate
+                .WhereIF(!string.IsNullOrEmpty(dto.FlowFrom), d => d.Order.FromName.Contains(dto.FlowFrom))
+                .OrderByDescending(p => p.CreationTime)
+               .Select(p => new OrderListDto
+               {
+                   FlowID = p.Order.Id,
+                   FlowCode = p.No,
+                   FlowPwd = p.Order.Password,
+                   FlowTitle = p.Order.Title,
+                   FlowFromName = p.Order.SourceChannel,
+                   FlowPurTypeName = p.Order.AcceptType,
+                   ConTypeName = p.Order.HotspotName,
+                   FlowAddDate = p.Order.CreationTime,
+                   PubDate = p.CreationTime,
+                   RSFlagName = p.Order.Status >= EOrderStatus.Filed ? "办理完成" : "办理中"
+               });
+
+            var queryold = _oldPublicDataRepository.Queryable()
+                      .WhereIF(!string.IsNullOrEmpty(dto.FlowCode), p => p.OrderNo == dto.FlowCode)
+                      .WhereIF(!string.IsNullOrEmpty(dto.FlowName), p => p.Title.Contains(dto.FlowName))
+                      .WhereIF(!string.IsNullOrEmpty(dto.FlowSType), p => p.AcceptTypeCode == dto.FlowSType)
+                      .WhereIF(!string.IsNullOrEmpty(dto.FlowRType), d => d.HotspotId == dto.FlowRType)
+                      .WhereIF(!string.IsNullOrEmpty(dto.FlowSDate), d => d.AcceptTime >= DateTime.Parse(DateTime.Parse(dto.FlowSDate).ToString("yyyy-MM-dd 00:00:00")))//dto.FlowSDate
+                      .WhereIF(!string.IsNullOrEmpty(dto.FlowEDate), d => d.AcceptTime <= DateTime.Parse(DateTime.Parse(dto.FlowEDate).ToString("yyyy-MM-dd 00:00:00")))// dto.FlowEDate
+                      .WhereIF(!string.IsNullOrEmpty(dto.FlowFrom), d => d.FromName.Contains(dto.FlowFrom))
+                      .OrderByDescending(p => p.PubDate)
+                        .Select(p => new OrderListDto
+                        {
+                            FlowID = p.OrderId,
+                            FlowCode = p.OrderNo,
+                            FlowPwd = p.OrderPwd,
+                            FlowTitle = p.Title,
+                            FlowFromName = p.SourceChannel,
+                            FlowPurTypeName = p.AcceptType,
+                            ConTypeName = p.HotspotName,
+                            FlowAddDate = p.CreationTime,
+                            PubDate = p.CreationTime,
+                            RSFlagName = p.State == "1" ? "办理完成" : "办理中"
+                        });
+
+            var (total, items) = await _orderRepository.UnionAll(queryNew, queryold)
+                .OrderByDescending(p => p.PubDate)
+                 .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+
+            //计算总页数
+            int nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / dto.PageSize));
+            OrderListReturnDto returnDto = new()
+            {
+                PageNum = dto.PageIndex,
+                PageCount = nPageCount,
+                Data = _mapper.Map<IReadOnlyList<OrderListDto>>(items)
+            };
+
+            return OpenResponse.Ok(WebPortalDeResponse<OrderListReturnDto>.Success(returnDto, "成功"));
+        }
+
         /// <summary>
         /// 办件摘编详情
         /// </summary>