Selaa lähdekoodia

Merge branch 'feature/snapshot' into test

qinchaoyue 3 kuukautta sitten
vanhempi
commit
9192de821f

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

@@ -45,6 +45,25 @@ public class InviteCodeController : BaseController
     public async Task<PagedDto<InviteCode>> GetInviteCodeItemsAsync([FromQuery] GetInviteCodeItemsInDto dto)
         => (await _inviteCodeApplication.GetInviteCodeItemsAsync().ToPagedListAsync(dto)).ToPaged();
 
+    /// <summary>
+    /// 邀请码详情
+    /// </summary>
+    /// <param name="id"></param>
+    /// <returns></returns>
+
+    [HttpGet("{id}")]
+    public async Task<InviteCode> GetInviteCodeDetailAsync( string id)
+        => await _inviteCodeApplication.GetInviteCodeItemsAsync().Where(m => m.Id == id).FirstAsync();
+
+    /// <summary>
+    /// 修改邀请码
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [HttpPut]
+    public async Task UpdateInviteCodeAsync([FromBody] UpdateInviteCodeInDto dto)
+        => await _inviteCodeApplication.UpdateInviteCodeAsync(dto);
+
     /// <summary>
     /// 添加部门邀请码
     /// </summary>

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

@@ -12,4 +12,11 @@ public interface IInviteCodeApplication
 {
     Task AddInviteCodeAsync(AddInviteCodeInDto dto);
     ISugarQueryable<InviteCode> GetInviteCodeItemsAsync();
+
+    /// <summary>
+    /// 修改邀请码
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    Task UpdateInviteCodeAsync(UpdateInviteCodeInDto dto);
 }

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

@@ -39,4 +39,17 @@ public class InviteCodeApplication : IInviteCodeApplication, IScopeDependency
     {
         return _inviteCodeRepository.Queryable();
     }
+
+    public async Task UpdateInviteCodeAsync(UpdateInviteCodeInDto dto)
+    {
+        var entity = await _inviteCodeRepository.GetAsync(dto.Id)
+            ?? throw UserFriendlyException.SameMessage("邀请码不存在");
+
+        dto.Adapt(entity);
+        if (dto.BeginCode >= dto.EndCode)
+        {
+            throw UserFriendlyException.SameMessage("开始邀请码不能大于结束邀请码");
+        }
+        await _inviteCodeRepository.UpdateAsync(entity);
+    }
 }

+ 9 - 2
src/Hotline.Share/Dtos/Snapshot/InviteCodeDto.cs

@@ -13,6 +13,13 @@ public class InviteCodeDto
 
 public record GetInviteCodeItemsInDto : PagedRequest;
 
+public class UpdateInviteCodeInDto : AddInviteCodeInDto
+{
+    /// <summary>
+    /// Id
+    /// </summary>
+    public string Id { get; set; }
+}
 public class AddInviteCodeInDto
 {
     /// <summary>
@@ -38,10 +45,10 @@ public class AddInviteCodeInDto
     /// <summary>
     /// 上级部门ID
     /// </summary>
-    public string ParentOrgId { get; set; }
+    public string? ParentOrgId { get; set; }
 
     /// <summary>
     /// 邀请码Url
     /// </summary>
-    public string QRCodeUrl { get; set; }
+    public string? QRCodeUrl { get; set; }
 }

+ 1 - 1
src/Hotline/Snapshot/InviteCode.cs

@@ -45,5 +45,5 @@ public class InviteCode : CreationSoftDeleteEntity
     /// 邀请码Url
     /// </summary>
     [SugarColumn(ColumnDescription = "邀请码Url")]
-    public string QRCodeUrl { get; set; }
+    public string? QRCodeUrl { get; set; }
 }