Эх сурвалжийг харах

修复小程序奖励无数据

qinchaoyue 1 долоо хоног өмнө
parent
commit
91f785bd59

+ 1 - 1
src/Hotline.Api/Controllers/Snapshot/SnapshotController.cs

@@ -219,7 +219,7 @@ public class SnapshotController : BaseController
     [AllowAnonymous]
     [AllowAnonymous]
     [HttpGet("user")]
     [HttpGet("user")]
     public async Task<SnapshotUserInfoOutDto> GetUserInfo()
     public async Task<SnapshotUserInfoOutDto> GetUserInfo()
-        => await _snapshotApplication.GetSnapshotUserInfoAsync();
+        => await _snapshotApplication.GetSnapshotUserInfoAsync(HttpContext.RequestAborted);
 
 
     /// <summary>
     /// <summary>
     /// 获取我提交的线索列表
     /// 获取我提交的线索列表

+ 1 - 1
src/Hotline.Application/Snapshot/Contracts/ISnapshotApplication.cs

@@ -10,7 +10,7 @@ public interface ISnapshotApplication
     /// 获取用户首页数据
     /// 获取用户首页数据
     /// </summary>
     /// </summary>
     /// <returns></returns>
     /// <returns></returns>
-    Task<SnapshotUserInfoOutDto> GetSnapshotUserInfoAsync();
+    Task<SnapshotUserInfoOutDto> GetSnapshotUserInfoAsync(CancellationToken token);
 
 
     /// <summary>
     /// <summary>
     /// 获取小程序首页数据
     /// 获取小程序首页数据

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
src/Hotline.Application/Snapshot/DefaultSnapshotApplication.cs


+ 14 - 14
src/Hotline.Application/Snapshot/SnapshotApplicationBase.cs

@@ -40,6 +40,7 @@ using Hotline.Repository.SqlSugar.Snapshot;
 using Hotline.Settings.Hotspots;
 using Hotline.Settings.Hotspots;
 using Microsoft.Extensions.Options;
 using Microsoft.Extensions.Options;
 using XF.Utility.MQ;
 using XF.Utility.MQ;
+using System.Threading;
 
 
 namespace Hotline.Application.Snapshot;
 namespace Hotline.Application.Snapshot;
 
 
@@ -58,7 +59,7 @@ public abstract class SnapshotApplicationBase
     private readonly IIndustryRepository _industryRepository;
     private readonly IIndustryRepository _industryRepository;
     private readonly IThirdIdentiyService _thirdLoginService;
     private readonly IThirdIdentiyService _thirdLoginService;
     private readonly ISessionContext _sessionContext;
     private readonly ISessionContext _sessionContext;
-    private readonly IRepository<RedPackRecord> _redPackRecordRepository;
+    private readonly IRedPackRecordRepository _redPackRecordRepository;
     private readonly IOrderSnapshotRepository _orderSnapshotRepository;
     private readonly IOrderSnapshotRepository _orderSnapshotRepository;
     private readonly ISystemSettingCacheManager _sysSetting;
     private readonly ISystemSettingCacheManager _sysSetting;
     private readonly ISystemAreaDomainService _systemAreaDomainService;
     private readonly ISystemAreaDomainService _systemAreaDomainService;
@@ -86,7 +87,7 @@ public abstract class SnapshotApplicationBase
     private readonly ISnapshotPointsRecordRepository _pointsRecordRepository;
     private readonly ISnapshotPointsRecordRepository _pointsRecordRepository;
     private readonly IOptionsSnapshot<MqConfiguration> _mqConfiguration;
     private readonly IOptionsSnapshot<MqConfiguration> _mqConfiguration;
 
 
-    public SnapshotApplicationBase(IThirdIdentiyService thirdLoginService, IIndustryRepository industryRepository, ISnapshotBulletinRepository bulletinRepository, ISessionContext sessionContext, IRepository<RedPackRecord> redPackRecordRepository, IRepository<Order> orderRepository, IThirdAccountRepository thirdAccountRepository, IOrderSnapshotRepository orderSnapshotRepository, ISystemSettingCacheManager systemSettingCacheManager, ISystemAreaDomainService systemAreaDomainService, IFileRepository fileRepository, ISystemDicDataCacheManager systemDicDataCacheManager, ISnapshotOrderPublishRepository snapshotOrderPublishRepository, IRepository<WorkflowTrace> workflowTraceRepository, IPractitionerRepository practitionerRepository, IRepository<SystemArea> systemAreaRepository, IVolunteerRepository volunteerRepository, IVolunteerReportRepository volunteerReportRepository, ISystemLogRepository systemLog, IGuiderSystemService guiderSystemService, ICapPublisher capPublisher, Publisher publisher, IFileDomainService fileDomainService, ICommunityInfoRepository communityInfoRepository, IRedPackAuditRepository redPackAuditRepository, IOrderVisitRepository orderVisitRepository, IOrderVisitDetailRepository orderVisitDetailRepository, IRedPackGuiderAuditRepository redPackGuiderAuditRepository, IInviteCodeRecordRepository inviteCodeRecordRepository, IInviteCodeRepository inviteCodeRepository, ICitizenRepository citizenRepository, ISnapshotPointsRecordRepository snapshotPointsRecordRepository, IOptionsSnapshot<MqConfiguration> mqConfiguration)
+    public SnapshotApplicationBase(IThirdIdentiyService thirdLoginService, IIndustryRepository industryRepository, ISnapshotBulletinRepository bulletinRepository, ISessionContext sessionContext, IRedPackRecordRepository redPackRecordRepository, IRepository<Order> orderRepository, IThirdAccountRepository thirdAccountRepository, IOrderSnapshotRepository orderSnapshotRepository, ISystemSettingCacheManager systemSettingCacheManager, ISystemAreaDomainService systemAreaDomainService, IFileRepository fileRepository, ISystemDicDataCacheManager systemDicDataCacheManager, ISnapshotOrderPublishRepository snapshotOrderPublishRepository, IRepository<WorkflowTrace> workflowTraceRepository, IPractitionerRepository practitionerRepository, IRepository<SystemArea> systemAreaRepository, IVolunteerRepository volunteerRepository, IVolunteerReportRepository volunteerReportRepository, ISystemLogRepository systemLog, IGuiderSystemService guiderSystemService, ICapPublisher capPublisher, Publisher publisher, IFileDomainService fileDomainService, ICommunityInfoRepository communityInfoRepository, IRedPackAuditRepository redPackAuditRepository, IOrderVisitRepository orderVisitRepository, IOrderVisitDetailRepository orderVisitDetailRepository, IRedPackGuiderAuditRepository redPackGuiderAuditRepository, IInviteCodeRecordRepository inviteCodeRecordRepository, IInviteCodeRepository inviteCodeRepository, ICitizenRepository citizenRepository, ISnapshotPointsRecordRepository snapshotPointsRecordRepository, IOptionsSnapshot<MqConfiguration> mqConfiguration)
     {
     {
         _thirdLoginService = thirdLoginService;
         _thirdLoginService = thirdLoginService;
         _industryRepository = industryRepository;
         _industryRepository = industryRepository;
@@ -305,16 +306,19 @@ public abstract class SnapshotApplicationBase
     /// 获取个人中心数据
     /// 获取个人中心数据
     /// </summary>
     /// </summary>
     /// <returns></returns>
     /// <returns></returns>
-    public async Task<SnapshotUserInfoOutDto> GetSnapshotUserInfoAsync()
+    public async Task<SnapshotUserInfoOutDto> GetSnapshotUserInfoAsync(CancellationToken token)
     {
     {
         var userInfo = await _citizenRepository.GetAsync(_sessionContext.UserId);
         var userInfo = await _citizenRepository.GetAsync(_sessionContext.UserId);
 
 
         var dayTime = DateTime.Now;
         var dayTime = DateTime.Now;
-        var readPack = await _redPackRecordRepository.Queryable()
+        var query = _redPackRecordRepository.Queryable()
             .Where(m => m.WXOpenId == _sessionContext.OpenId && m.PickupStatus == ERedPackPickupStatus.Received)
             .Where(m => m.WXOpenId == _sessionContext.OpenId && m.PickupStatus == ERedPackPickupStatus.Received)
             .Where(m => m.CreationTime.Date == dayTime.Date)
             .Where(m => m.CreationTime.Date == dayTime.Date)
-            .Select(m => SqlFunc.AggregateSum(m.Amount))
-            .FirstAsync();
+            .Select(m => SqlFunc.AggregateSum(m.Amount));
+#if DEBUG
+        var sql = query.ToSqlString();
+#endif
+        var redPack = await query.FirstAsync(token);
 
 
         var outDto = await _orderRepository.Queryable()
         var outDto = await _orderRepository.Queryable()
             .Where(m => m.Contact == userInfo.PhoneNumber && m.CreatorId == _sessionContext.UserId)
             .Where(m => m.Contact == userInfo.PhoneNumber && m.CreatorId == _sessionContext.UserId)
@@ -323,10 +327,10 @@ public abstract class SnapshotApplicationBase
                 NoReplyCount = SqlFunc.AggregateSum(SqlFunc.IIF(m.Status < EOrderStatus.Filed, 1, 0)),
                 NoReplyCount = SqlFunc.AggregateSum(SqlFunc.IIF(m.Status < EOrderStatus.Filed, 1, 0)),
                 ReplyCount = SqlFunc.AggregateSum(SqlFunc.IIF(m.Status >= EOrderStatus.Filed, 1, 0)),
                 ReplyCount = SqlFunc.AggregateSum(SqlFunc.IIF(m.Status >= EOrderStatus.Filed, 1, 0)),
                 AppraiseCount = SqlFunc.AggregateSum(SqlFunc.IIF(m.Status == EOrderStatus.Visited, 1, 0)),
                 AppraiseCount = SqlFunc.AggregateSum(SqlFunc.IIF(m.Status == EOrderStatus.Visited, 1, 0)),
-            }).FirstAsync();
+            }).FirstAsync(token);
 
 
-        outDto.DayAmount = readPack;
-        outDto.TotalAmount = userInfo.TotalAmount ?? 0;
+        outDto.DayAmount = redPack;
+        outDto.TotalAmount = await _redPackRecordRepository.GetReceivedTotalAmountAsync(_sessionContext.OpenId, token);
         outDto.PhoneNumber = userInfo.PhoneNumber;
         outDto.PhoneNumber = userInfo.PhoneNumber;
         return outDto;
         return outDto;
     }
     }
@@ -510,11 +514,7 @@ public abstract class SnapshotApplicationBase
     /// <returns></returns>
     /// <returns></returns>
     public async Task<string> GetRedPackReceivedTotalAsync(CancellationToken cancellationToken)
     public async Task<string> GetRedPackReceivedTotalAsync(CancellationToken cancellationToken)
     {
     {
-        var totalAmount = await _redPackRecordRepository.Queryable()
-            .Where(m => m.WXOpenId == _sessionContext.OpenId && m.PickupStatus == ERedPackPickupStatus.Received)
-            .Select(m => SqlFunc.AggregateSum(m.Amount))
-            .FirstAsync(cancellationToken);
-        return totalAmount.ToYuanFinance();
+        return (await _redPackRecordRepository.GetReceivedTotalAmountAsync(_sessionContext.OpenId, cancellationToken)).ToYuanFinance();
     }
     }
 
 
     /// <summary>
     /// <summary>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
src/Hotline.Application/Snapshot/ZiGongSnapshotApplication.cs


+ 11 - 0
src/Hotline.Repository.SqlSugar/Snapshot/RedPackRecordRepository.cs

@@ -1,4 +1,6 @@
 using Hotline.Repository.SqlSugar.DataPermissions;
 using Hotline.Repository.SqlSugar.DataPermissions;
+using Hotline.Share.Enums.Snapshot;
+using Hotline.Share.Tools;
 using Hotline.Snapshot;
 using Hotline.Snapshot;
 using Hotline.Snapshot.IRepository;
 using Hotline.Snapshot.IRepository;
 using SqlSugar;
 using SqlSugar;
@@ -15,5 +17,14 @@ public class RedPackRecordRepository : BaseRepository<RedPackRecord>, IRedPackRe
     public RedPackRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     public RedPackRecordRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
     {
     {
     }
     }
+
+    public async Task<double> GetReceivedTotalAmountAsync(string? openId, CancellationToken cancellationToken)
+    {
+        if (openId.IsNullOrEmpty()) return 0d;
+        return await Queryable()
+            .Where(m => m.WXOpenId == openId && m.PickupStatus == ERedPackPickupStatus.Received)
+            .Select(m => SqlFunc.AggregateSum(m.Amount))
+            .FirstAsync(cancellationToken);
+    }
 }
 }
 
 

+ 1 - 0
src/Hotline/Snapshot/IRepository/IRedPackRecordRepository.cs

@@ -8,4 +8,5 @@ using XF.Domain.Repository;
 namespace Hotline.Snapshot.IRepository;
 namespace Hotline.Snapshot.IRepository;
 public interface IRedPackRecordRepository : IRepository<RedPackRecord>
 public interface IRedPackRecordRepository : IRepository<RedPackRecord>
 {
 {
+    Task<double> GetReceivedTotalAmountAsync(string? openId, CancellationToken cancellationToken);
 }
 }

+ 2 - 2
src/Hotline/Snapshot/RedPackRecord.cs

@@ -84,12 +84,12 @@ public class RedPackRecord : CreationSoftDeleteEntity
     /// 红包领取状态
     /// 红包领取状态
     /// </summary>
     /// </summary>
     [SugarColumn(ColumnDescription = "红包领取状态")]
     [SugarColumn(ColumnDescription = "红包领取状态")]
-    public ERedPackPickupStatus PickupStatus { get; set; }
+    public ERedPackPickupStatus? PickupStatus { get; set; }
 
 
     /// <summary>
     /// <summary>
     /// 发放失败原因
     /// 发放失败原因
     /// </summary>
     /// </summary>
-    public ERedPackPickupFailCase FailCase { get; set; }
+    public ERedPackPickupFailCase? FailCase { get; set; }
 
 
     /// <summary>
     /// <summary>
     /// 备注
     /// 备注

+ 2 - 2
test/Hotline.Tests/Application/SnapshotApplicationTest.cs

@@ -237,8 +237,8 @@ public class SnapshotApplicationTest : TestBase
     [Fact]
     [Fact]
     public async Task GetSnapshotUserInfo_Test()
     public async Task GetSnapshotUserInfo_Test()
     {
     {
-        await _identityAppService.GetThredTokenAsync(new ThirdTokenInDto(), CancellationToken.None);
-        var result = await _snapshotApplication.GetSnapshotUserInfoAsync();
+        //await _identityAppService.GetThredTokenAsync(new ThirdTokenInDto() { ThirdType = EThirdType.Test}, CancellationToken.None);
+        var result = await _snapshotApplication.GetSnapshotUserInfoAsync(CancellationToken.None);
         result.ShouldNotBeNull();
         result.ShouldNotBeNull();
         result.PhoneNumber.ShouldNotBeNullOrEmpty();
         result.PhoneNumber.ShouldNotBeNullOrEmpty();
         result.PhoneNumberMask.Contains("***").ShouldBeTrue();
         result.PhoneNumberMask.Contains("***").ShouldBeTrue();

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно