Browse Source

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

田爽 3 months ago
parent
commit
54f09581b6

+ 1 - 1
src/Hotline.Api/Controllers/Snapshot/RedPackController.cs

@@ -130,7 +130,7 @@ public class RedPackController : BaseController
     /// </summary>
     [HttpGet("record/supplement")]
     public async Task<PagedDto<SnapshotRedPackRecordSupplementItemsOutDto>> GetRedPackRecordSupplementItemsAsync([FromQuery] SnapshotRedPackRecordSupplementItemsInDto dto)
-        => await _redPackApplication.GetRedPackRecordSupplementItemsAsync(dto);
+        => (await _redPackApplication.GetRedPackRecordSupplementItemsAsync(dto).ToPagedListAsync(dto)).ToPaged();
 
     /// <summary>
     /// 红包审核通过或拒绝

+ 15 - 0
src/Hotline.Application.Tests/Application/RedPackApplicationTest.cs

@@ -51,6 +51,21 @@ public class RedPackApplicationTest : TestBase
             RedPackAuditId = audit.Id,
         };
         await _redPackApplication.AuditRedPackAuditAsync(inDto);
+        var suInDto = new UpdateRedPackRecordInDto
+        {
+            RedPackAuditId = audit.Id,
+            Name = "单元测试Name",
+            BankCardNo = "单元测试银行号",
+            OpenBank = "单元测试开户行",
+            ReplenishAmount = 100.01,
+            ReplenishTime = DateTime.Now,
+            ReplenishRemark = "单元测试补发备注",
+            IsSendSMS = false,
+            ReplenishType = "%15",
+            ReplenishTypeId = "1",
+        };
+        await _redPackApplication.UpdateRedPackRecordAsync(suInDto);
+
         items = await _redPackApplication.GetRedPackAuditItemsAsync(new SnapshotOrderAuditItemsInDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1)).ToListAsync();
         items.Any(m => m.Id == audit.Id).ShouldBeTrue();
 

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

@@ -84,7 +84,7 @@ public interface IRedPackApplication
     /// <param name="dto"></param>
     /// <returns></returns>
     ISugarQueryable<SnapshotRedPackRecordItemsOutDto> GetRedPackRecordItemsAsync(SnapshotRedPackRecordItemsInDto dto);
-    Task<PagedDto<SnapshotRedPackRecordSupplementItemsOutDto>> GetRedPackRecordSupplementItemsAsync(SnapshotRedPackRecordSupplementItemsInDto dto);
+    ISugarQueryable<SnapshotRedPackRecordSupplementItemsOutDto> GetRedPackRecordSupplementItemsAsync(SnapshotRedPackRecordSupplementItemsInDto dto);
 
     /// <summary>
     /// 审核添加备注

+ 26 - 6
src/Hotline.Application/Snapshot/RedPackApplication.cs

@@ -28,8 +28,9 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
     private readonly ISessionContext _sessionContext;
     private readonly IRedPackGuiderAuditRepository _redPackGuiderAuditRepository;
     private readonly IThirdAccountRepository _thirdAccountRepository;
+    private readonly ISupplementRecordRepository _supplementRecordRepository;
 
-    public RedPackApplication(IOrderSnapshotRepository orderSnapshotRepository, ISnapshotSMSTemplateRepository snapshotSMSTemplateRepository, IOrderRepository orderRepository, IIndustryRepository industryRepository, IRedPackAuditRepository redPackAuditRepository, IRedPackRecordRepository redPackRecordRepository, IRepository<OrderSpecial> orderSpecialRepository, ISessionContext sessionContext, IRedPackGuiderAuditRepository redPackGuiderAuditRepository, IThirdAccountRepository thirdAccountRepository)
+    public RedPackApplication(IOrderSnapshotRepository orderSnapshotRepository, ISnapshotSMSTemplateRepository snapshotSMSTemplateRepository, IOrderRepository orderRepository, IIndustryRepository industryRepository, IRedPackAuditRepository redPackAuditRepository, IRedPackRecordRepository redPackRecordRepository, IRepository<OrderSpecial> orderSpecialRepository, ISessionContext sessionContext, IRedPackGuiderAuditRepository redPackGuiderAuditRepository, IThirdAccountRepository thirdAccountRepository, ISupplementRecordRepository supplementRecordRepository)
     {
         _orderSnapshotRepository = orderSnapshotRepository;
         _snapshotSMSTemplateRepository = snapshotSMSTemplateRepository;
@@ -41,6 +42,7 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
         _sessionContext = sessionContext;
         _redPackGuiderAuditRepository = redPackGuiderAuditRepository;
         _thirdAccountRepository = thirdAccountRepository;
+        _supplementRecordRepository = supplementRecordRepository;
     }
 
     /// <summary>
@@ -394,12 +396,22 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
             .FirstAsync() ?? throw UserFriendlyException.SameMessage("审核记录不存在");
         var audit = await _redPackAuditRepository.GetAsync(dto.RedPackAuditId) ?? throw UserFriendlyException.SameMessage("审核记录不存在");
 
-        dto.Adapt(record);
-        await _redPackRecordRepository.UpdateAsync(record);
-
         dto.Adapt(audit);
         await _redPackAuditRepository.UpdateAsync(audit);
 
+        var entity = dto.Adapt<SupplementRecord>();
+        var industryName = await _orderSnapshotRepository.Queryable()
+            .Where(m => m.Id == record.OrderId)
+            .Select(m => new { m.IndustryName, m.IndustryId })
+            .FirstAsync();
+        entity.OrderId = record.OrderId;
+        entity.RedPackRecordId = record.Id;
+        entity.RedPackAuditId = audit.Id;
+        entity.No = record.No;
+        entity.IndustryName = industryName.IndustryName;
+        entity.IndustryId = industryName.IndustryId;
+        await _supplementRecordRepository.AddAsync(entity);
+
         if (dto.IsSendSMS)
         {
             // TODO: 发送短信
@@ -495,9 +507,17 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
         return query;
     }
 
-    public Task<PagedDto<SnapshotRedPackRecordSupplementItemsOutDto>> GetRedPackRecordSupplementItemsAsync(SnapshotRedPackRecordSupplementItemsInDto dto)
+    public ISugarQueryable<SnapshotRedPackRecordSupplementItemsOutDto> GetRedPackRecordSupplementItemsAsync(SnapshotRedPackRecordSupplementItemsInDto dto)
     {
-        throw new NotImplementedException();
+        var query = _supplementRecordRepository.Queryable()
+            .LeftJoin<Order>((supp, order) => supp.OrderId == order.Id)
+            .WhereIF(dto.No.NotNullOrEmpty(), (supp, order) => order.No.Contains(dto.No))
+            .WhereIF(dto.FromPhone.NotNullOrEmpty(), (supp, order) => order.FromPhone.Contains(dto.FromPhone))
+            .WhereIF(dto.Title.NotNullOrEmpty(), (supp, order) => order.Title.Contains(dto.Title))
+            .WhereIF(dto.IndustryId.NotNullOrEmpty(), (supp, order) => supp.IndustryId == dto.IndustryId)
+            .WhereIF(dto.BeginCreationTime.HasValue && dto.EndCreationTime.HasValue, (supp, order) => supp.CreationTime >= dto.BeginCreationTime && supp.CreationTime <= dto.EndCreationTime)
+            .Select<SnapshotRedPackRecordSupplementItemsOutDto>();
+        return query;
     }
 
 

+ 18 - 0
src/Hotline.Repository.SqlSugar/Snapshot/SupplementRecordRepository.cs

@@ -0,0 +1,18 @@
+using Hotline.Repository.SqlSugar.DataPermissions;
+using Hotline.Snapshot;
+using Hotline.Snapshot.Interfaces;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+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)
+    {
+    }
+}

+ 72 - 1
src/Hotline.Share/Dtos/Snapshot/RedPackDto.cs

@@ -197,6 +197,77 @@ public class SnapshotRedPackRecordSupplementItemsOutDto
     /// 来电人电话
     /// </summary>
     public string FromPhone { get; set; }
+
+    /// <summary>
+    /// 区域
+    /// </summary>
+    public string County { get; set; }
+
+    /// <summary>
+    /// 补发金额
+    /// </summary>
+    public double ReplenishAmount { get; set; }
+
+    /// <summary>
+    /// 姓名
+    /// </summary>
+    public string Name { get; set; }
+
+    /// <summary>
+    /// 卡号
+    /// </summary>
+    public string BankCardNo { get; set; }
+
+    /// <summary>
+    /// 开户行
+    /// </summary>
+    public string OpenBank { get; set; }
+
+    /// <summary>
+    /// 补发放时间
+    /// </summary>
+    public DateTime CreationTime { get; set; }
+
+    /// <summary>
+    /// 补充发放人员
+    /// </summary>
+    public string CreatorName { get; set; }
+
+    /// <summary>
+    /// 备注
+    /// </summary>
+    public string Remark { get; set; }
 }
 
-public record SnapshotRedPackRecordSupplementItemsInDto : PagedRequest;
+public record SnapshotRedPackRecordSupplementItemsInDto : PagedRequest
+{
+    /// <summary>
+    /// 受理编号
+    /// </summary>
+    public string? No { get; set; }
+
+    /// <summary>
+    /// 标题
+    /// </summary>
+    public string? Title { get; set; }
+
+    /// <summary>
+    /// 来电人电话
+    /// </summary>
+    public string? FromPhone { get; set; }
+
+    /// <summary>
+    /// 发送时间
+    /// </summary>
+    public DateTime? BeginCreationTime { get; set; }
+
+    /// <summary>
+    /// 发送时间
+    /// </summary>
+    public DateTime? EndCreationTime { get; set; }
+
+    /// <summary>
+    /// 行业类型
+    /// </summary>
+    public string? IndustryId { get; set; }
+}

+ 11 - 0
src/Hotline/Snapshot/Interfaces/ISupplementRecordRepository.cs

@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using XF.Domain.Repository;
+
+namespace Hotline.Snapshot.Interfaces;
+public interface ISupplementRecordRepository : IRepository<SupplementRecord>
+{
+}

+ 2 - 2
src/Hotline/Snapshot/OrderSnapshot.cs

@@ -69,13 +69,13 @@ public class OrderSnapshot : CreationSoftDeleteEntity
     /// 作业区域
     /// </summary>
     [SugarColumn(ColumnDescription = "作业区域")]
-    public string WorkArea { get; set; }
+    public string? WorkArea { get; set; }
 
     /// <summary>
     /// 作业区域Id
     /// </summary>
     [SugarColumn(ColumnDescription = "作业区域Id")]
-    public string WorkAreaId { get; set; }
+    public string? WorkAreaId { get; set; }
 
     /// <summary>
     /// 作业时间

+ 0 - 30
src/Hotline/Snapshot/RedPackAudit.cs

@@ -61,36 +61,6 @@ public class RedPackAudit : CreationSoftDeleteEntity
     [SugarColumn(ColumnDescription = "实发金额")]
     public double? AcutalAmount { get; set; }
 
-    /// <summary>
-    /// 补充发放金额
-    /// </summary>
-    [SugarColumn(ColumnDescription = "补充发放金额")]
-    public double? ReplenishAmount { get; set; }
-
-    /// <summary>
-    /// 补充发放时间
-    /// </summary>
-    [SugarColumn(ColumnDescription = "补充发放时间")]
-    public DateTime? ReplenishTime { get; set; }
-
-    /// <summary>
-    /// 补充发放备注
-    /// </summary>
-    [SugarColumn(ColumnDescription = "补充发放备注")]
-    public string? ReplenishRemark { get; set; }
-
-    /// <summary>
-    /// 补充发放类型
-    /// </summary>
-    [SugarColumn(ColumnDescription = "补充发放类型")]
-    public string? ReplenishType { get; set; }
-
-    /// <summary>
-    /// 补充发放类型Id
-    /// </summary>
-    [SugarColumn(ColumnDescription = "补充发放类型Id")]
-    public string? ReplenishTypeId { get; set; }
-
     /// <summary>
     /// 市民奖励发放结果
     /// </summary>

+ 101 - 0
src/Hotline/Snapshot/SupplementRecord.cs

@@ -0,0 +1,101 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using XF.Domain.Repository;
+
+namespace Hotline.Snapshot;
+
+/// <summary>
+/// 补充发放记录
+/// </summary>
+[Description("补充发放记录")]
+public class SupplementRecord : FullStateEntity
+{
+    /// <summary>
+    /// OrderId
+    /// </summary>
+    [SugarColumn(ColumnDescription = "OrderId")]
+    public string OrderId { get; set; }
+
+    /// <summary>
+    /// No
+    /// </summary>
+    [SugarColumn(ColumnDescription ="No")]
+    public string No { get; set; }
+
+    /// <summary>
+    /// RedPackAuditId
+    /// </summary>
+    [SugarColumn(ColumnDescription = "RedPackAuditId")]
+    public string RedPackAuditId { get; set; }
+
+    /// <summary>
+    /// RedPackRecordId
+    /// </summary>
+    [SugarColumn(ColumnDescription = "RedPackRecordId")]
+    public string RedPackRecordId { get; set; }
+
+    /// <summary>
+    /// 行业
+    /// </summary>
+    [SugarColumn(ColumnDescription = "行业名称")]
+    public string IndustryName { get; set; }
+
+    /// <summary>
+    /// 行业Id
+    /// </summary>
+    [SugarColumn(ColumnDescription = "行业Id")]
+    public string? IndustryId { get; set; }
+
+    /// <summary>
+    /// 补充发放金额
+    /// </summary>
+    [SugarColumn(ColumnDescription = "补充发放金额")]
+    public double? ReplenishAmount { get; set; }
+
+    /// <summary>
+    /// 补充发放时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "补充发放时间")]
+    public DateTime? ReplenishTime { get; set; }
+
+    /// <summary>
+    /// 补充发放备注
+    /// </summary>
+    [SugarColumn(ColumnDescription = "补充发放备注")]
+    public string? ReplenishRemark { get; set; }
+
+    /// <summary>
+    /// 补充发放类型
+    /// </summary>
+    [SugarColumn(ColumnDescription = "补充发放类型")]
+    public string? ReplenishType { get; set; }
+
+    /// <summary>
+    /// 补充发放类型Id
+    /// </summary>
+    [SugarColumn(ColumnDescription = "补充发放类型Id")]
+    public string? ReplenishTypeId { get; set; }
+
+    /// <summary>
+    /// 银行卡号
+    /// </summary>
+    [SugarColumn(ColumnDescription = "银行卡号")]
+    public string? BankCardNo { get; set; }
+
+    /// <summary>
+    /// 开户行
+    /// </summary>
+    [SugarColumn(ColumnDescription = "开户行")]
+    public string? OpenBank { get; set; }
+
+    /// <summary>
+    /// 是否发送短信
+    /// </summary>
+    [SugarColumn(ColumnDescription = "是否发送短信")]
+    public bool IsSendSMS { get; set; }
+}