Browse Source

新增特殊红包集合接口

qinchaoyue 2 months ago
parent
commit
cb872543ce

+ 11 - 0
src/Hotline.Api/Controllers/Snapshot/RedPackController.cs

@@ -29,6 +29,17 @@ public class RedPackController : BaseController
         _orderSnapshotRepository = orderSnapshotRepository;
     }
 
+    #region 特殊红包
+    /// <summary>
+    /// 特殊红包审批集合
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [HttpGet("special")]
+    public async Task<PagedDto<SnapshotOrderAuditItemsOutDto>> GetRedPackSpecialItems([FromQuery] SnapshotOrderAuditItemsInDto dto)
+        => (await _redPackApplication.GetRedPackSpecialAuditItems(dto).ToPagedListAsync(dto)).ToPaged();
+    #endregion
+
     #region 红包审核
     /// <summary>
     /// 获取市民红包审批列表

+ 7 - 0
src/Hotline.Application/Snapshot/IRedPackApplication.cs

@@ -86,6 +86,13 @@ public interface IRedPackApplication
     ISugarQueryable<SnapshotRedPackRecordItemsOutDto> GetRedPackRecordItems(SnapshotRedPackRecordItemsInDto dto);
     ISugarQueryable<SnapshotRedPackRecordSupplementItemsOutDto> GetRedPackRecordSupplementItems(SnapshotRedPackRecordSupplementItemsInDto dto);
 
+    /// <summary>
+    /// 特殊红包审批集合
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    ISugarQueryable<SnapshotOrderAuditItemsOutDto> GetRedPackSpecialAuditItems(SnapshotOrderAuditItemsInDto dto);
+
     /// <summary>
     /// 审核添加备注
     /// </summary>

+ 64 - 0
src/Hotline.Application/Snapshot/RedPackApplication.cs

@@ -29,6 +29,10 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
     private readonly IOrderRepository _orderRepository;
     private readonly ISnapshotSMSTemplateRepository _snapshotSMSTemplateRepository;
     private readonly IIndustryRepository _industryRepository;
+
+    /// <summary>
+    /// 市民红包审核仓储
+    /// </summary>
     private readonly IRedPackAuditRepository _redPackAuditRepository;
     private readonly IRedPackRecordRepository _redPackRecordRepository;
     private readonly IRepository<OrderSpecial> _orderSpecialRepository;
@@ -232,6 +236,66 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
         return outDto;
     }
 
+    /// <summary>
+    /// 特殊红包审批列表
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    /// <exception cref="NotImplementedException"></exception>
+    [ExportExcel("特殊红包审批")]
+    public ISugarQueryable<SnapshotOrderAuditItemsOutDto> GetRedPackSpecialAuditItems(SnapshotOrderAuditItemsInDto dto)
+    {
+        ERedPackAuditStatus? status = null;
+        if (dto.Status != -1 && Enum.TryParse<ERedPackAuditStatus>(dto.Status.ToString(), out var statusParse))
+        {
+            status = statusParse;
+        }
+        var query = _redPackAuditRepository.Queryable()
+            .LeftJoin<OrderSnapshot>((redPackAudit, snapshot) => redPackAudit.OrderId == snapshot.Id)
+            .LeftJoin<Order>((redPackAudit, snapshot, order) => redPackAudit.OrderId == order.Id)
+            .Where((redPackAudit, snapshot, order) => snapshot.IndustryName == "安全隐患" && order.OrderTagCode.Contains("DHZY"))
+                        .Select((redPackAudit, snapshot,order) => new SnapshotOrderAuditItemsOutDto
+                        {
+                            Id = redPackAudit.Id,
+                            RedPackAuditId = redPackAudit.Id,
+                            OrderId = order.Id,
+                            No = order.No,
+                            Title = order.Title,
+                            IndustryName = snapshot.IndustryName,
+                            IndustryId = snapshot.IndustryId,
+                            SourceChannel = order.SourceChannel,
+                            SourceChannelCode = order.SourceChannelCode,
+                            Status = order.Status,
+                            IsDanger = snapshot.IsDanger,
+                            FromPhone = order.FromPhone,
+                            FromName = order.FromName,
+                            AuditTime = redPackAudit.AuditTime,
+                            ApprovedAmount = redPackAudit.ApprovedAmount,
+                            AcutalAmount = redPackAudit.AcutalAmount,
+                            IsIssued = redPackAudit.IsIssued,
+                            //RecordRemark = record.Remark,
+                            County = order.County,
+                            // IsRectify = s.IsRepetition
+                            IsDeal = snapshot.IsDeal,
+                            NetworkENumber = snapshot.NetworkENumber,
+                            IsTruth = snapshot.IsTruth,
+                            IsTruthDepartment = snapshot.IsTruthDepartment,
+                            IsRepetition = snapshot.IsRepetition,
+                            CreationTime = order.CreationTime,
+                            OrgLevelOneCode = order.OrgLevelOneCode,
+                            OrgLevelOneName = order.OrgLevelOneName,
+                            AuditId = redPackAudit.AuditId,
+                            AuditName = redPackAudit.AuditName,
+                            AuditOrgId = redPackAudit.AuditOrgId,
+                            AuditOrgName = redPackAudit.AuditOrgName,
+                            AuditRemark = redPackAudit.AuditRemark,
+                            //BankCardNo = record.BankCardNo,
+                            //OpenBank = record.OpenBank,
+                            AuditStatus = redPackAudit.Status,
+                        });
+        return query;
+    }
+
     /// <summary>
     /// 红包审核集合
     /// </summary>

+ 4 - 4
src/Hotline.Application/Snapshot/SnapshotOrderApplication.cs

@@ -277,15 +277,15 @@ public class SnapshotOrderApplication : IOrderSnapshotApplication, IScopeDepende
         {
             throw UserFriendlyException.SameMessage("随手拍工单标记不能为空");
         }
-        snapshot.Labels = labels;
-        snapshot.LabelName = string.Join('|', labels.Select(m => m.Value));
+        snapshot!.Labels = labels;
+        snapshot.LabelName = string.Join('|', labels!.Select(m => m.Value));
         //if (labels.Any(m => m.Key == "yzg"))
         //    snapshot.IsRectifyDepartment = true;
         //if (labels.Any(m => m.Key == "wzg"))
         //    snapshot.IsRectifyDepartment = false;
-        if (labels.Any(m => m.Key == "ss"))
+        if (labels!.Any(m => m.Key == "ss"))
             snapshot.IsTruthDepartment = true;
-        if (labels.Any(m => m.Key == "bss"))
+        if (labels!.Any(m => m.Key == "bss"))
             snapshot.IsTruthDepartment = false;
         snapshot.LabelTime = DateTime.Now;
         snapshot.LabelUserName = _sessionContext.UserName;

+ 11 - 0
test/Hotline.Tests/Application/RedPackApplicationTest.cs

@@ -31,6 +31,17 @@ public class RedPackApplicationTest : TestBase
         _redPackRecordRepository = redPackRecordRepository;
     }
 
+    /// <summary>
+    /// 获取特殊红包集合
+    /// </summary>
+    /// <returns></returns>
+    [Fact]
+    public async Task GetRedPackSpecialAuditItems_Test()
+    {
+        var items = await _redPackApplication.GetRedPackSpecialAuditItems(new SnapshotOrderAuditItemsInDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 0)).ToListAsync();
+        items.Count.ShouldNotBe(0);
+    }
+
     /// <summary>
     /// 获取审核集合
     /// 获取审核短信模板