zhengyuxuan
2025-03-21 f6e850306e153af78ea376b2096dcf9d742b3055
fix:提交
6个文件已修改
171 ■■■■ 已修改文件
LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application/LifePay/LifePayService.cs 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain/LifePay/DallyStatistics.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
@@ -192,6 +192,7 @@
    /// <returns></returns>
    Task<PageOutput<LifePayOrderListOutput>> GetLifePayOrderPage(QueryLifePayOrderListInput input);
    Task<PageOutput<LifePayOrderListOutput>> GetLifePayRefundOrderPage(QueryLifePayRefundOrderListInput input);
    /// <summary>
    /// 获取订单详情
LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs
@@ -259,6 +259,11 @@
    public LifePayStatusEnum? PayStatus { get; set; }
    /// <summary>
    /// 供应商状态
    /// </summary>
    public ACOOLYStatusEnum? ACOOLYStatus { get; set; }
    /// <summary>
    /// 订单状态
    /// </summary>
    public LifePayOrderStatusEnum? LifePayOrderStatus { get; set; }
@@ -284,6 +289,64 @@
    public string KeyWords { get; set; }
}
public class QueryLifePayRefundOrderListInput : ChannelsBaseInput
{
    /// <summary>
    /// 订单类型
    /// </summary>
    public LifePayOrderTypeEnum? LifePayOrderType { get; set; }
    /// <summary>
    /// 生活缴费支付类型
    /// </summary>
    public LifePayTypeEnum? LifePayType { get; set; }
    /// <summary>
    /// 开始申请退款时间
    /// </summary>
    public DateTime? BeginRefundApplyTime { get; set; }
    /// <summary>
    /// 结束申请退款时间
    /// </summary>
    public DateTime? EndRefundApplyTime { get; set; }
    /// <summary>
    /// 开始完成时间
    /// </summary>
    public DateTime? BeginFinishTime { get; set; }
    /// <summary>
    /// 结束完成时间
    /// </summary>
    public DateTime? EndFinishTime { get; set; }
    /// <summary>
    /// 支付状态
    /// </summary>
    public LifePayStatusEnum? PayStatus { get; set; }
    /// <summary>
    /// 供应商状态
    /// </summary>
    public ACOOLYStatusEnum? ACOOLYStatus { get; set; }
    /// <summary>
    /// 订单状态
    /// </summary>
    public LifePayOrderStatusEnum? LifePayOrderStatus { get; set; }
    /// <summary>
    /// 用户Id
    /// </summary>
    public Guid? UserId { get; set; }
    /// <summary>
    /// 搜索关键词
    /// </summary>
    public string KeyWords { get; set; }
}
public class RefundLifePayOrderInput
{
LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -95,24 +95,30 @@
    public async Task<TopStatisticsOutput> GetTopStatistics()
    {
        var today = DateTime.Now.ToString("yyyy-MM-dd");
        var statistics = await _dallyStatisticsRepository.Where(x => x.CreationTime.ToString("yyyy-MM-dd") == today).FirstOrDefaultAsync();
        var today = DateTime.Now.Date;
        var statistics = await _dallyStatisticsRepository.Where(x => x.CreationTime.Date == today).FirstOrDefaultAsync();
        if (statistics == null)
        {
            //var accumulatedReceipts = await _lifePayOrderRepository.Where(x => x.CreationTime < today).SumAsync(x => x.PayAmount);
            var accumulatedReceipts = await _lifePayOrderRepository.Where(x => x.CreationTime < today).SumAsync(x => x.PayAmount);
            var receiptsYesterday = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today).SumAsync(x => x.PayAmount);
            var accumulatedOrders = await _lifePayOrderRepository.Where(x => x.CreationTime < today).CountAsync();
            var ordersNumYesterday = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today).CountAsync();
            var yesterdaySuccess = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.已完成).CountAsync();
            var yesterdayFail = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.已失败).CountAsync();
            var accumulatedUsers = await _lifePayUserRepository.CountAsync();
            var entity = new DallyStatistics()
            {
                Id = GuidGenerator.Create(),
                CreationTime = DateTime.Now,
                Amount = "0",
                AccumulatedReceipts = "0",
                ReceiptsYesterda = "0",
                AccumulatedOrders = "0",
                OrdersNumYesterda = "0",
                YesterdaSuccess = "0",
                YesterdaFail = "0",
                AccumulatedUsers = "0",
                AccumulatedReceipts = accumulatedReceipts.ToString(),
                ReceiptsYesterday = receiptsYesterday.ToString(),
                AccumulatedOrders = accumulatedOrders.ToString(),
                OrdersNumYesterday = ordersNumYesterday.ToString(),
                YesterdaySuccess = yesterdaySuccess.ToString(),
                YesterdayFail = yesterdayFail.ToString(),
                AccumulatedUsers = accumulatedUsers.ToString(),
            };
            return new TopStatisticsOutput();
@@ -122,7 +128,6 @@
            var result = ObjectMapper.Map<DallyStatistics,TopStatisticsOutput>(statistics);
            return result;
        }
    }
    /// <summary>
@@ -274,6 +279,58 @@
                                            .WhereIf(input.EndPayTime.HasValue, x => x.PayTime <= input.EndPayTime)
                                            .WhereIf(input.LifePayOrderStatus.HasValue, x => x.LifePayOrderStatus == input.LifePayOrderStatus.Value)
                                            .WhereIf(input.PayStatus.HasValue, x => x.PayStatus == input.PayStatus.Value)
                                            .WhereIf(input.ACOOLYStatus.HasValue, x => x.ACOOLYStatus == input.ACOOLYStatus.Value)
                                            .WhereIf(input.LifePayOrderType.HasValue, x => x.LifePayOrderType == input.LifePayOrderType.Value)
                                            .WhereIf(input.UserId.HasValue, x => x.UserId == input.UserId.Value)
                                            .WhereIf(input.KeyWords.IsNotNullOrEmpty(), x => x.PhoneNumber.Contains(input.KeyWords) || x.OrderNo.Contains(input.KeyWords) || x.OutOrderNo.Contains(input.KeyWords) || x.ACOOLYOrderNo.Contains(input.KeyWords))
                            join b in _lifePayChannlesRep on a.ChannelId equals b.ChannlesNum into temp
                            from b in temp.DefaultIfEmpty()
                            select new LifePayOrderListOutput
                            {
                                DiscountAmount = a.DiscountAmount,
                                FinishTime = a.FinishTime,
                                Id = a.Id,
                                LifePayOrderStatus = a.LifePayOrderStatus,
                                LifePayOrderType = a.LifePayOrderType,
                                LifePayType = a.LifePayType,
                                OrderNo = a.OrderNo,
                                PayAmount = a.PayAmount,
                                PhoneNumber = a.PhoneNumber,
                                RechargeAmount = a.RechargeAmount,
                                UserId = a.UserId,
                                OutOrderNo = a.OutOrderNo,
                                PayStatus = a.PayStatus,
                                PayTime = a.PayTime,
                                ACOOLYOrderNo = a.ACOOLYOrderNo,
                                RefundCredentialsImgUrl = a.RefundCredentialsImgUrl.GetOssPath(),
                                CreationTime = a.CreationTime,
                                RefundCheckRemark = a.RefundCheckRemark,
                                RefundApplyRemark = a.RefundApplyRemark,
                                RefundTime = a.RefundTime,
                                ChannelName = b.ChannlesName,
                                ActualRechargeAmount = a.ActualRechargeAmount,
                                PlatformDeductionAmount = a.PlatformDeductionAmount,
                                ACOOLYStatus = a.ACOOLYStatus,
                                LifePayRefundStatus = a.LifePayRefundStatus,
                            }).GetPageResult(input.PageModel);
        return result;
    }
    public async Task<PageOutput<LifePayOrderListOutput>> GetLifePayRefundOrderPage(QueryLifePayRefundOrderListInput input)
    {
        var result = await (from a in _channelFilter.GetChannelLifePayOrderFilter(_lifePayOrderRepository)
        .Where(x => x.PayStatus == LifePayStatusEnum.待退款 || x.PayStatus == LifePayStatusEnum.已退款 || x.PayStatus == LifePayStatusEnum.退款中
        || x.LifePayOrderStatus == LifePayOrderStatusEnum.退款待审核 || x.LifePayOrderStatus == LifePayOrderStatusEnum.已退款 || x.LifePayOrderStatus == LifePayOrderStatusEnum.退款失败
        || x.LifePayRefundStatus > LifePayRefundStatusEnum.无需退款)
                                            .WhereIf(input.BeginFinishTime.HasValue, x => x.FinishTime >= input.BeginFinishTime)
                                            .WhereIf(input.EndFinishTime.HasValue, x => x.FinishTime <= input.EndFinishTime)
                                            .WhereIf(input.BeginRefundApplyTime.HasValue, x => x.RefundApplyTime >= input.BeginRefundApplyTime)
                                            .WhereIf(input.LifePayType.HasValue, x => x.LifePayType == input.LifePayType)
                                            .WhereIf(input.EndRefundApplyTime.HasValue, x => x.RefundApplyTime <= input.EndRefundApplyTime)
                                            .WhereIf(input.LifePayOrderStatus.HasValue, x => x.LifePayOrderStatus == input.LifePayOrderStatus.Value)
                                            .WhereIf(input.ACOOLYStatus.HasValue, x => x.ACOOLYStatus == input.ACOOLYStatus.Value)
                                            .WhereIf(input.LifePayOrderType.HasValue, x => x.LifePayOrderType == input.LifePayOrderType.Value)
                                            .WhereIf(input.UserId.HasValue, x => x.UserId == input.UserId.Value)
                                            .WhereIf(input.KeyWords.IsNotNullOrEmpty(), x => x.PhoneNumber.Contains(input.KeyWords) || x.OrderNo.Contains(input.KeyWords) || x.OutOrderNo.Contains(input.KeyWords) || x.ACOOLYOrderNo.Contains(input.KeyWords))
@@ -1139,6 +1196,7 @@
                    break;
            }
            order.LifePayRefundStatus = LifePayRefundStatusEnum.无需退款;
            order.LifePayOrderStatus = LifePayOrderStatusEnum.待确认;
            //SetOrderStatus(order, result.Code);
            order.OutRequestNo = result.RequestNo.IsNullOrEmpty() ? null : result.RequestNo;
@@ -1148,7 +1206,7 @@
        {
            _logger.LogError(ex, "处理生活缴费支付成功回调时异常");
            order.LifePayOrderStatus = LifePayOrderStatusEnum.已失败;
            order.PayStatus = LifePayStatusEnum.待退款;
            order.LifePayRefundStatus = LifePayRefundStatusEnum.待退款;
        }
        _logger.LogError("生活缴费订单状态:" + order.LifePayOrderStatus.ToString());
        await _lifePayOrderRepository.UpdateAsync(order);
LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs
@@ -49,7 +49,7 @@
    [Description("已失败")]
    已失败 = 20,
    [Description("支付宝支付")]
    [Description("已完成")]
    已完成 = 30,
    [Description("退款待审核")]
LifePayment/LifePayment.Domain/LifePay/DallyStatistics.cs
@@ -30,7 +30,7 @@
    /// <summary>
    /// 昨日收款
    /// </summary>
    public string ReceiptsYesterda { get; set; }
    public string ReceiptsYesterday { get; set; }
    /// <summary>
    /// 累计下单
@@ -40,17 +40,17 @@
    /// <summary>
    /// 昨日下单
    /// </summary>
    public string OrdersNumYesterda { get; set; }
    public string OrdersNumYesterday { get; set; }
    /// <summary>
    /// 昨日成功
    /// </summary>
    public string YesterdaSuccess { get; set; }
    public string YesterdaySuccess { get; set; }
    /// <summary>
    /// 昨日失败
    /// </summary>
    public string YesterdaFail { get; set; }
    public string YesterdayFail { get; set; }
    /// <summary>
    /// 累计用户
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -192,6 +192,17 @@
        }
        /// <summary>
        /// 获取订单分页数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<PageOutput<LifePayOrderListOutput>> GetLifePayRefundOrderPage(QueryLifePayRefundOrderListInput input)
        {
            return await _lifePayService.GetLifePayRefundOrderPage(input);
        }
        /// <summary>
        /// 获取订单详情
        /// </summary>
        /// <param name="orderNo"></param>
@@ -364,12 +375,12 @@
        }
        [HttpGet]
        public async Task<ActionResult> GetBillErceiptExport(string orderNo)
        public async Task<string> GetBillErceiptExport(string orderNo)
        {
            var data = await _lifePayService.GetBillErceiptExport(orderNo);
           
            return Json(default);
            return data;
        }
        #endregion