Jelajahi Sumber

增加添加审核备注接口

qinchaoyue 4 bulan lalu
induk
melakukan
1cdc1bc1a5

+ 19 - 2
src/Hotline.Api/Controllers/Snapshot/RedPackController.cs

@@ -8,6 +8,7 @@ using Hotline.Snapshot.Interfaces;
 using Hotline.Caching.Interfaces;
 using XF.Utility.EnumExtensions;
 using Hotline.Share.Enums.Snapshot;
+using Quartz.Impl.Triggers;
 
 namespace Hotline.Api.Controllers.Snapshot;
 
@@ -48,8 +49,24 @@ public class RedPackController : BaseController
     /// </summary>
     /// <param name="dto"></param>
     /// <returns></returns>
-    //[HttpPut("audit/remark")]
-    //public async Task
+    [HttpPut("audit/remark")]
+    public async Task UpdateRedPackAuditRemarkAsync([FromBody] UpdateRedPackAuditRemarkInDto dto)
+        => await _redPackApplication.UpdateRedPackAuditRemarkAsync(dto);
+
+    /// <summary>
+    /// 添加备注页面基础信息
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [HttpPut("audit/remark/basedata")]
+    public async Task<Dictionary<string, object>> UpdateRedPackAuditRemarkBaseDataAsync([FromBody] UpdateRedPackAuditRemarkInDto dto)
+    {
+        return new Dictionary<string, object>()
+        {
+            { "failCase", EnumExts.GetDescriptions<ERedPackPickupFailCase>() }
+        };
+    }
+
 
     /// <summary>
     /// 红包审核通过或拒绝

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

@@ -35,4 +35,11 @@ public interface IRedPackApplication
     /// <param name="dto"></param>
     /// <returns></returns>
     Task<IList<GetRedPackAuditSMSTemplateOutDto>> GetRedPackAuditSMSTemplateAsync(GetRedPackAuditSMSTemplateInDto dto);
+
+    /// <summary>
+    /// 审核添加备注
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    Task UpdateRedPackAuditRemarkAsync(UpdateRedPackAuditRemarkInDto dto);
 }

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

@@ -55,6 +55,7 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
             var entity = new RedPackRecord
             {
                 OrderId = redPackAudit.OrderId,
+                RedPackAuditId = redPackAudit.Id,
                 PeopleType = EReadPackUserType.Citizen,
                 Name = order.FromName,
                 PickupStatus = ERedPackPickupStatus.Unreceived,
@@ -174,11 +175,35 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
         var items = await _snapshotSMSTemplateRepository.Queryable(includeDeleted: true)
             .LeftJoin<Industry>((sms, industry) => sms.IndustryId == industry.Id)
             .LeftJoin<OrderSnapshot>((sms, industry, snapshot) => snapshot.IndustryId == industry.Id)
-            .Where((sms, industry, snapshot) => (sms.IsPublic == true || sms.IndustryId == snapshot.IndustryId) 
+            .Where((sms, industry, snapshot) => (sms.IsPublic == true || sms.IndustryId == snapshot.IndustryId)
              && sms.Status == dto.Status && sms.IsEnable == true)
             .Select<GetRedPackAuditSMSTemplateOutDto>()
             .Distinct()
             .ToListAsync();
         return items;
     }
+
+    /// <summary>
+    /// 审核添加备注
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    public async Task UpdateRedPackAuditRemarkAsync(UpdateRedPackAuditRemarkInDto dto)
+    {
+        var audit = await _redPackAuditRepository.GetAsync(dto.RedPackAuditId) ?? throw UserFriendlyException.SameMessage("审核记录不存在");
+        audit.AcutalAmount = dto.AcutalAmount;
+        if (dto.IsSend == false)
+        {
+            await _redPackRecordRepository.Queryable()
+                .Where(m => m.RedPackAuditId == audit.Id)
+                .FirstAsync()
+                .Then(async (record) =>
+                {
+                    record.FailCase = dto.FailCase;
+                    await _redPackRecordRepository.UpdateAsync(record);
+                });
+        }
+        audit.SendRemarks = dto.SendRemarks;
+        await _redPackAuditRepository.UpdateAsync(audit);
+    }
 }

+ 30 - 0
src/Hotline.Share/Dtos/Snapshot/RedPackDto.cs

@@ -63,3 +63,33 @@ public class RedPackDateOutDto
     public string AmountTxt => Amount.ToYuanFinance();
 }
 
+public class UpdateRedPackAuditRemarkInDto
+{
+    /// <summary>
+    /// Id
+    /// </summary>
+    public string RedPackAuditId { get; set; }
+
+    /// <summary>
+    /// 实发金额
+    /// </summary>
+    public double AcutalAmount { get; set; }
+
+    /// <summary>
+    /// 市民奖励发放备注
+    /// </summary>
+    public string SendRemarks { get; set; }
+
+    /// <summary>
+    /// 市民奖励发放结果
+    /// </summary>
+    public bool IsSend { get; set; }
+
+    /// <summary>
+    /// 红包发放失败原因;
+    /// 0: 无法联系;
+    /// 1: 婉拒红包;
+    /// </summary>
+    public ERedPackPickupFailCase FailCase { get; set; }
+}
+

+ 28 - 0
src/Hotline.Share/Enums/Snapshot/ERedPackPickupFailCase.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Share.Enums.Snapshot;
+
+/// <summary>
+/// 红包发放失败原因;
+/// 0: 无法联系;
+/// 1: 婉拒红包;
+/// </summary>
+public enum ERedPackPickupFailCase
+{
+    /// <summary>
+    /// 无法联系
+    /// </summary>
+    [Description("无法联系")]
+    NotContact,
+
+    /// <summary>
+    /// 婉拒红包
+    /// </summary>
+    [Description("婉拒红包")]
+    Excuse
+}

+ 7 - 1
src/Hotline.Share/Enums/Snapshot/ERedPackPickupStatus.cs

@@ -31,5 +31,11 @@ public enum ERedPackPickupStatus
     /// 退回
     /// </summary>
     [Description("退回")]
-    Back = 2
+    Back = 2,
+
+    /// <summary>
+    /// 婉拒
+    /// </summary>
+    [Description("婉拒")]
+    Excuse = 3
 }

+ 12 - 0
src/Hotline/Snapshot/RedPackRecord.cs

@@ -19,6 +19,13 @@ public class RedPackRecord : CreationSoftDeleteEntity
     [SugarColumn(ColumnDescription = "关联工单编号")]
     public string OrderId { get; set; }
 
+    /// <summary>
+    /// 红包审核Id
+    /// <inheritdoc cref="RedPackAudit"/>
+    /// </summary>
+    [SugarColumn(ColumnDescription = "红包审核Id")]
+    public string RedPackAuditId { get; set; }
+
     /// <summary>
     /// 微信返回的订单号
     /// </summary>
@@ -67,6 +74,11 @@ public class RedPackRecord : CreationSoftDeleteEntity
     [SugarColumn(ColumnDescription = "红包领取状态")]
     public ERedPackPickupStatus PickupStatus { get; set; }
 
+    /// <summary>
+    /// 发放失败原因
+    /// </summary>
+    public ERedPackPickupFailCase FailCase { get; set; }
+
     /// <summary>
     /// 备注
     /// </summary>