浏览代码

Merge branch 'feature/snapshot' into dev

qinchaoyue 4 月之前
父节点
当前提交
9b9665fd00

+ 18 - 0
src/Hotline.Api/Controllers/Snapshot/IndustryController.cs

@@ -94,6 +94,24 @@ public class IndustryController : BaseController
     public async Task AddIndustryCaseAsync([FromBody] AddIndustryCaseDto dto)
         => await _industryApplication.AddIndustryCaseAsync(dto);
 
+    /// <summary>
+    /// 更新行业线索
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [HttpPut("case")]
+    public async Task UpdateIndustryCaseAsync([FromBody]UpdateIndustryCaseDto dto)
+        => await _industryApplication.UpdateIndustryCaseAsync(dto);
+
+    /// <summary>
+    /// 获取行业线索详情
+    /// </summary>
+    /// <param name="id"></param>
+    /// <returns></returns>
+    [HttpGet("case/{id}")]
+    public async Task<IndustryCase> GetIndustryCaseDetailAsync(string id)
+        => await _industryApplication.GetIndustryCaseAsync(id);
+
     /// <summary>
     /// 页面基础数据
     /// </summary>

+ 9 - 1
src/Hotline.Application.Tests/Application/IndustryApplicationTest.cs

@@ -56,7 +56,7 @@ public class IndustryApplicationTest : TestBase
     }
 
     [Fact]
-    public async Task AddIndustry_Test()
+    public async Task IndustryCase_Test()
     {
         var industry = await _industryApplication.GetIndustres(new IndustryListInDto(null, null)).ToListAsync();
         var industryCase = new AddIndustryCaseDto
@@ -73,5 +73,13 @@ public class IndustryApplicationTest : TestBase
         items.Count.ShouldNotBe(0);
         items.Any(m => m.Id.IsNullOrEmpty()).ShouldBeFalse();
         items.Any(m => m.Name.IsNullOrEmpty()).ShouldBeFalse();
+
+        var caseEntity = await _industryApplication.GetIndustryCaseAsync(caseId);
+        var updateDto = caseEntity.Adapt<UpdateIndustryCaseDto>();
+        updateDto.DisplayOrder = 2;
+        await _industryApplication.UpdateIndustryCaseAsync(updateDto);
+        var caseEntityUpdate = await _industryApplication.GetIndustryCaseAsync(caseId);
+        caseEntityUpdate.DisplayOrder.ShouldBe(updateDto.DisplayOrder);
+        caseEntityUpdate.Name.ShouldBe(updateDto.Name);
     }
 }

+ 14 - 0
src/Hotline.Application/Snapshot/IIndustryApplication.cs

@@ -51,4 +51,18 @@ public interface IIndustryApplication
     /// <param name="dto"></param>
     /// <returns></returns>
     Task<string> AddIndustryCaseAsync(AddIndustryCaseDto dto);
+
+    /// <summary>
+    /// 修改行业线索
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    Task UpdateIndustryCaseAsync(UpdateIndustryCaseDto dto);
+
+    /// <summary>
+    /// 获取行业线索详情
+    /// </summary>
+    /// <param name="caseId"></param>
+    /// <returns></returns>
+    Task<IndustryCase> GetIndustryCaseAsync(string caseId);
 }

+ 19 - 0
src/Hotline.Application/Snapshot/IndustryApplication.cs

@@ -134,5 +134,24 @@ public class IndustryApplication : IIndustryApplication, IScopeDependency
         entity.GuiderReadPackAmount = entity.GuiderReadPackAmount * 100;
         return await _industryCaseRepository.AddAsync(entity);
     }
+
+    /// <summary>
+    /// 修改行业线索
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    public async Task UpdateIndustryCaseAsync(UpdateIndustryCaseDto dto)
+    {
+        dto.ValidateObject();
+        var entity = await _industryCaseRepository.GetAsync(dto.Id) 
+            ?? throw UserFriendlyException.SameMessage($"行业线索不存在 {dto.Id}");
+        dto.Adapt(entity);
+        await _industryCaseRepository.UpdateAsync(entity);
+    }
+
+    public async Task<IndustryCase> GetIndustryCaseAsync(string caseId)
+    {
+        return await _industryCaseRepository.GetAsync(caseId);
+    }
     #endregion
 }

+ 10 - 0
src/Hotline.Share/Dtos/Snapshot/IndustryDto.cs

@@ -368,6 +368,16 @@ public class IndustryCaseItemOutDto : AddIndustryCaseDto
     new public int GuiderReadPackAmount { get; set; }
 
 }
+
+public class UpdateIndustryCaseDto : AddIndustryCaseDto
+{
+    /// <summary>
+    /// Id
+    /// </summary>
+    [Required]
+    public string Id { get; set; }
+}
+
 public class AddIndustryCaseDto
 {
     /// <summary>