Browse Source

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

Dun.Jason 3 months ago
parent
commit
345c2eb5c1

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

@@ -81,4 +81,13 @@ public class InviteCodeController : BaseController
     [HttpGet("statistic")]
     public async Task<IList<InviteCodeStatisticOutDto>> GetInviteCodeStatisticAsync([FromQuery] GetInviteCodeStatisticInDto dto)
         => await _inviteCodeApplication.GetInviteCodeStatisticAsync(dto);
+
+    /// <summary>
+    /// 邀请码统计明细
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [HttpGet("statistic/detail")]
+    public async Task<PagedDto<InviteCodeStatisticDetailOutDto>> GetInviteCodeStatisticDetailAsync([FromQuery] GetInviteCodeStatisticDetailInDto dto)
+        => (await _inviteCodeApplication.GetInviteCodeStatisticDetailAsync(dto).ToPagedListAsync(dto)).ToPaged();
 }

+ 1 - 1
src/Hotline.Application.Tests/Application/InviteCodeApplicationTest.cs

@@ -42,7 +42,7 @@ public class InviteCodeApplicationTest : TestBase
 
         var statics = await _inviteCodeApplication.GetInviteCodeStatisticAsync(new GetInviteCodeStatisticInDto 
         {
-            BeginTime = DateTime.Now.AddDays(-1),
+            StartTime = DateTime.Now.AddDays(-1),
             EndTime = DateTime.Now
         });
         statics.Count.ShouldNotBe(0);

+ 9 - 1
src/Hotline.Application/Snapshot/IInviteCodeApplication.cs

@@ -1,4 +1,5 @@
-using Hotline.Share.Dtos.Snapshot;
+using Hotline.Share.Dtos;
+using Hotline.Share.Dtos.Snapshot;
 using Hotline.Snapshot;
 using SqlSugar;
 using System;
@@ -20,6 +21,13 @@ public interface IInviteCodeApplication
     /// <returns></returns>
     Task<IList<InviteCodeStatisticOutDto>> GetInviteCodeStatisticAsync(GetInviteCodeStatisticInDto dto);
 
+    /// <summary>
+    /// 邀请码统计明细
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    ISugarQueryable<InviteCodeStatisticDetailOutDto> GetInviteCodeStatisticDetailAsync(GetInviteCodeStatisticDetailInDto dto);
+
     /// <summary>
     /// 修改邀请码
     /// </summary>

+ 15 - 1
src/Hotline.Application/Snapshot/InviteCodeApplication.cs

@@ -47,7 +47,7 @@ public class InviteCodeApplication : IInviteCodeApplication, IScopeDependency
     {
         dto.ValidateObject();
         var items = await _inviteCodeRecordRepository.Queryable()
-            .Where(m => m.CreationTime >= dto.BeginTime && m.CreationTime <= dto.EndTime)
+            .Where(m => m.CreationTime >= dto.StartTime && m.CreationTime <= dto.EndTime)
             .GroupBy(m => m.OrgName)
             .Select(m => new InviteCodeStatisticOutDto
             { 
@@ -59,6 +59,20 @@ public class InviteCodeApplication : IInviteCodeApplication, IScopeDependency
         return items;
     }
 
+    /// <summary>
+    /// 邀请码统计明细
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    public ISugarQueryable<InviteCodeStatisticDetailOutDto> GetInviteCodeStatisticDetailAsync(GetInviteCodeStatisticDetailInDto dto)
+    {
+        dto.ValidateObject();
+        var query = _inviteCodeRecordRepository.Queryable()
+            .Where(m => m.CreationTime >= dto.StartTime && m.CreationTime <= dto.EndTime && m.OrgId == dto.OrgId)
+            .Select(m => new InviteCodeStatisticDetailOutDto());
+        return query;
+    }
+
     public async Task UpdateInviteCodeAsync(UpdateInviteCodeInDto dto)
     {
         var entity = await _inviteCodeRepository.GetAsync(dto.Id)

+ 75 - 1
src/Hotline.Share/Dtos/Snapshot/InviteCodeDto.cs

@@ -77,7 +77,7 @@ public class GetInviteCodeStatisticInDto
     /// 统计开始时间
     /// </summary>
     [Required]
-    public DateTime BeginTime { get; set; }
+    public DateTime StartTime { get; set; }
 
     /// <summary>
     /// 统计结束书剑
@@ -85,3 +85,77 @@ public class GetInviteCodeStatisticInDto
     [Required]
     public DateTime EndTime { get; set; }
 }
+
+public record GetInviteCodeStatisticDetailInDto : PagedRequest
+{
+    /// <summary>
+    /// Id
+    /// </summary>
+    [Required]
+    public string OrgId { get; set; }
+
+    /// <summary>
+    /// 统计开始时间
+    /// </summary>
+    [Required]
+    public DateTime StartTime { get; set; }
+
+    /// <summary>
+    /// 统计结束时间
+    /// </summary>
+    [Required]
+    public DateTime EndTime { get; set; }
+
+    /// <summary>
+    /// 姓名
+    /// </summary>
+    public string? Name { get; set; }
+
+    /// <summary>
+    /// 电话
+    /// </summary>
+    public string? PhoneNumber { get; set; }
+
+    /// <summary>
+    /// 邀请码
+    /// </summary>
+    public string? InviteCode { get; set; }
+}
+
+public class InviteCodeStatisticDetailOutDto
+{
+    /// <summary>
+    /// Id
+    /// </summary>
+    public string Id { get; set; }
+
+    /// <summary>
+    /// 姓名
+    /// </summary>
+    public string Name { get; set; }
+
+    /// <summary>
+    /// 电话
+    /// </summary>
+    public string PhoneNumber { get; set; }
+
+    /// <summary>
+    /// 微信OpenId
+    /// </summary>
+    public string OpenId { get; set; }
+
+    /// <summary>
+    /// 邀请时间
+    /// </summary>
+    public DateTime CreationTime { get; set; }
+
+    /// <summary>
+    /// 邀请码
+    /// </summary>
+    public string InviteCode { get; set; }
+
+    /// <summary>
+    /// 部门
+    /// </summary>
+    public string OrgName { get; set; }
+}