Browse Source

新增删除邀请接口

qinchaoyue 3 months ago
parent
commit
70815b4631

+ 9 - 0
src/Hotline.Api/Controllers/Snapshot/InviteCodeController.cs

@@ -45,6 +45,15 @@ public class InviteCodeController : BaseController
     public async Task<PagedDto<InviteCode>> GetInviteCodeItemsAsync([FromQuery] GetInviteCodeItemsInDto dto)
         => (await _inviteCodeApplication.GetInviteCodeItemsAsync().ToPagedListAsync(dto)).ToPaged();
 
+
+    /// <summary>
+    /// 删除邀请码
+    /// </summary>
+    /// <returns></returns>
+    [HttpDelete]
+    public async Task DeleteInviteCodeAsync([FromBody] IList<string> ids)
+        => await _inviteCodeApplication.DeleteInviteCodeAsync(ids);
+
     /// <summary>
     /// 邀请码详情
     /// </summary>

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

@@ -12,6 +12,13 @@ namespace Hotline.Application.Snapshot;
 public interface IInviteCodeApplication
 {
     Task AddInviteCodeAsync(AddInviteCodeInDto dto);
+
+    /// <summary>
+    /// 删除邀请码
+    /// </summary>
+    /// <param name="ids"></param>
+    /// <returns></returns>
+    Task DeleteInviteCodeAsync(IList<string> ids);
     ISugarQueryable<InviteCode> GetInviteCodeItemsAsync();
 
     /// <summary>

+ 20 - 0
src/Hotline.Application/Snapshot/InviteCodeApplication.cs

@@ -39,6 +39,26 @@ public class InviteCodeApplication : IInviteCodeApplication, IScopeDependency
         await _inviteCodeRepository.AddAsync(entity);
     }
 
+    /// <summary>
+    /// 删除邀请码
+    /// </summary>
+    /// <param name="ids"></param>
+    /// <returns></returns>
+    public async Task DeleteInviteCodeAsync(IList<string> ids)
+    {
+        await _inviteCodeRepository.Queryable()
+            .Where(m => ids.Contains(m.Id))
+            .ToListAsync()
+            .Then(async invite =>
+            {
+                for (int i = 0;i < invite.Count;i++)
+                {
+                    invite[i].IsDeleted = true;
+                    await _inviteCodeRepository.UpdateAsync(invite[i]);
+                }
+            });
+    }
+
     public ISugarQueryable<InviteCode> GetInviteCodeItemsAsync()
     {
         return _inviteCodeRepository.Queryable();