From 08371f70becf10a003005b79a33fc393ba4efaf3 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 10 六月 2025 11:14:06 +0800
Subject: [PATCH] feat:渠道订单导出接口实现
---
LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs | 131 ++++++++++++++++++++++++++
LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml | 60 ++++++++++++
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs | 17 +++
LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs | 1
LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml | 7 +
LifePayment/LifePayment.Worker/appsettings.json | 3
LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 46 +++++++++
7 files changed, 265 insertions(+), 0 deletions(-)
diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
index 08e57d0..ba46193 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
@@ -282,6 +282,7 @@
Task<List<LifePayOrderListTemplate>> GetLifePayOrderPageExport(QueryLifePayOrderListInput input);
+ Task<List<LifePayOrderListTemplateForChannle>> GetLifePayOrderPageExportForChannle(QueryLifePayOrderListInput input);
Task<List<LifePayRefundOrderListTemplate>> GetLifePayRefudOrderPageExport(QueryLifePayRefundOrderListInput input);
diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs
index 2cd8b14..c46a9fe 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs
@@ -428,6 +428,137 @@
}
+public class LifePayOrderListTemplateForChannle
+{
+
+ [Name("搴忓彿")]
+ public int SerialNumber { get; set; }
+
+ [Name("鎵嬫満鍙�")]
+ public string PhoneNumber { get; set; }
+
+ public LifePayTypeEnum? LifePayType { get; set; }
+
+ public LifePayOrderTypeEnum LifePayOrderType { get; set; }
+
+ [Name("鍏呭�肩被鍨�")]
+ public string LifePayOrderTypeStr { get; set; }
+
+ public string ChannelName { get; set; }
+
+ /// <summary>
+ /// 涓嬪崟鏃堕棿
+ /// </summary>
+ public DateTime CreationTime { get; set; }
+
+ [Name("涓嬪崟鏃堕棿")]
+ public string CreationTimeStr { get; set; }
+
+ [Name("骞冲彴璁㈠崟鍙�")]
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鍏呭�奸噾棰�
+ /// </summary>
+ public decimal RechargeAmount { get; set; }
+
+ [Name("鍏呭�奸噾棰�")]
+ public string RechargeAmountStr { get; set; }
+
+ /// <summary>
+ /// 瀹為檯鍏呭�奸噾棰�
+ /// </summary>
+ public decimal ActualRechargeAmount { get; set; }
+
+ [Name("瀹為檯鍏呭�奸噾棰�")]
+ public string ActualRechargeAmountStr { get; set; }
+
+ /// <summary>
+ /// 浼樻儬閲戦
+ /// </summary>
+ public decimal DiscountAmount { get; set; }
+
+ /// <summary>
+ /// 瀹炰粯閲戦
+ /// </summary>
+ public decimal PayAmount { get; set; }
+
+ [Name("鐢ㄦ埛瀹炰粯閲戦")]
+ public string PayAmountStr { get; set; }
+
+ /// <summary>
+ /// 鏀粯鏃堕棿
+ /// </summary>
+ public DateTime? PayTime { get; set; }
+
+ [Name("鏀粯鏃堕棿")]
+ public string PayTimeStr { get; set; }
+
+ [Name("鏀粯娓犻亾")]
+ public string LifePayTypeStr { get; set; }
+
+ [Name("鏀粯娓犻亾娴佹按鍙�")]
+ public string OutOrderNo { get; set; }
+
+ [Name("鏀粯鐘舵��")]
+ public string PayStatusStr { get; set; }
+
+ public string ACOOLYOrderNo { get; set; }
+
+ /// <summary>
+ /// 骞冲彴鎵f閲戦
+ /// </summary>
+ public decimal PlatformPrice { get; set; }
+
+ /// <summary>
+ /// 骞冲彴閫�娆剧姸鎬�
+ /// </summary>
+ public LifePayRefundStatusEnum? LifePayRefundStatus { get; set; }
+
+ public string? LifePayRefundStatusStr { get; set; }
+
+ /// <summary>
+ /// 璁㈠崟鐘舵��
+ /// </summary>
+ public LifePayOrderStatusEnum LifePayOrderStatus { get; set; }
+
+
+
+ public ACOOLYStatusEnum? ACOOLYStatus { get; set; }
+
+ /// <summary>
+ /// 渚涘簲鍟嗚鍗曠姸鎬�
+ /// </summary>
+ public string? ACOOLYStatusStr { get; set; }
+
+ /// <summary>
+ /// 鏀粯鐘舵��
+ /// </summary>
+ public LifePayStatusEnum PayStatus { get; set; }
+
+ //[Name("閫�娆剧敵璇�")]
+ //public string RefundApplyRemark { get; set; }
+
+ ///// <summary>
+ ///// 璁㈠崟鐘舵��
+ ///// </summary>
+ //public LifePayOrderStatusEnum LifePayOrderStatus { get; set; }
+
+ [Name("骞冲彴璁㈠崟鐘舵��")]
+ public string LifePayOrderStatusStr { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏃堕棿
+ /// </summary>
+ public DateTime? FinishTime { get; set; }
+
+ [Name("瀹屾垚鏃堕棿")]
+ public string FinishTimeStr { get; set; }
+
+
+
+}
+
public class LifePayRefundOrderListTemplate
{
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 69f1df1..6a80847 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -788,6 +788,52 @@
});
return result;
}
+
+ public async Task<List<LifePayOrderListTemplateForChannle>> GetLifePayOrderPageExportForChannle(QueryLifePayOrderListInput input)
+ {
+ var result = await (await GetLifePayOrderListFilter(input)).Select(x => new LifePayOrderListTemplateForChannle
+ {
+ DiscountAmount = x.DiscountAmount,
+ FinishTime = x.FinishTime,
+ LifePayOrderStatus = x.LifePayOrderStatus,
+ LifePayOrderType = x.LifePayOrderType,
+ LifePayType = x.LifePayType,
+ OrderNo = x.OrderNo,
+ PayAmount = x.PayAmount,
+ ActualRechargeAmount = x.RechargeAmount,
+ PhoneNumber = x.PhoneNumber,
+ RechargeAmount = x.RechargeAmount,
+ OutOrderNo = x.OutOrderNo,
+ PayStatus = x.PayStatus,
+ PayTime = x.PayTime,
+ ACOOLYOrderNo = x.ACOOLYOrderNo,
+ CreationTime = x.CreationTime,
+ LifePayRefundStatus = x.LifePayRefundStatus,
+ ACOOLYStatus = x.ACOOLYStatus,
+ //RefundApplyRemark = x.RefundApplyRemark,
+ ChannelName = x.ChannelName,
+ PlatformPrice = x.PlatformDeductionAmount.HasValue ? x.PlatformDeductionAmount.Value : 0.00m
+ }).OrderByDescending(r => r.CreationTime).ToListAsync();
+ var i = 0;
+ result.ForEach(s =>
+ {
+ s.SerialNumber = ++i;
+ s.LifePayOrderTypeStr = s.LifePayOrderType.GetDescription();
+ s.CreationTimeStr = s.CreationTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
+ s.RechargeAmountStr = s.RechargeAmount.ToString("F2");
+ s.PayAmountStr = s.PayAmount.ToString("F2");
+ s.PayTimeStr = !s.PayTime.HasValue ? string.Empty : s.PayTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
+ s.LifePayTypeStr = s.LifePayType.GetDescription();
+ s.PayStatusStr = s.PayStatus.GetDescription();
+ s.ActualRechargeAmountStr = s.ActualRechargeAmount.ToString("F2");
+ s.LifePayRefundStatusStr = s.LifePayRefundStatus == LifePayRefundStatusEnum.鏃犻渶閫�娆� ? "" : s.LifePayRefundStatus.GetDescription();
+ s.ACOOLYStatusStr = s.ACOOLYStatus.GetDescription();
+ s.LifePayOrderStatusStr = s.LifePayOrderStatus.GetDescription();
+ s.FinishTimeStr = !s.FinishTime.HasValue ? string.Empty : s.FinishTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
+ });
+ return result;
+ }
+
public async Task<string> GetBillErceiptExport(string orderNo)
{
try
diff --git a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
index fdaf8ab..7c67a36 100644
--- a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
@@ -289,6 +289,13 @@
<param name="input"></param>
<returns></returns>
</member>
+ <member name="M:LifePayment.HttpApi.LifePayController.GetLifePayOrderPageExportForChannle(LifePayment.Application.Contracts.QueryLifePayOrderListInput)">
+ <summary>
+ 瀵煎嚭娓犻亾璁㈠崟Excel
+ </summary>
+ <param name="input"></param>
+ <returns></returns>
+ </member>
<member name="M:LifePayment.HttpApi.LifePayController.GetLifePayRefudOrderPageExport(LifePayment.Application.Contracts.QueryLifePayRefundOrderListInput)">
<summary>
瀵煎嚭閫�娆捐鍗旹xcel
diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
index 28b0129..3c758bc 100644
--- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
@@ -1264,6 +1264,66 @@
瀹屾垚鏃堕棿
</summary>
</member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.CreationTime">
+ <summary>
+ 涓嬪崟鏃堕棿
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.RechargeAmount">
+ <summary>
+ 鍏呭�奸噾棰�
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.ActualRechargeAmount">
+ <summary>
+ 瀹為檯鍏呭�奸噾棰�
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.DiscountAmount">
+ <summary>
+ 浼樻儬閲戦
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.PayAmount">
+ <summary>
+ 瀹炰粯閲戦
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.PayTime">
+ <summary>
+ 鏀粯鏃堕棿
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.PlatformPrice">
+ <summary>
+ 骞冲彴鎵f閲戦
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.LifePayRefundStatus">
+ <summary>
+ 骞冲彴閫�娆剧姸鎬�
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.LifePayOrderStatus">
+ <summary>
+ 璁㈠崟鐘舵��
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.ACOOLYStatusStr">
+ <summary>
+ 渚涘簲鍟嗚鍗曠姸鎬�
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.PayStatus">
+ <summary>
+ 鏀粯鐘舵��
+ </summary>
+ </member>
+ <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.FinishTime">
+ <summary>
+ 瀹屾垚鏃堕棿
+ </summary>
+ </member>
<member name="P:LifePayment.Application.Contracts.LifePayRefundOrderListTemplate.RefundApplyTime">
<summary>
閫�娆剧敵璇锋椂闂�
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
index f0dbec9..3d5a3e4 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -471,6 +471,23 @@
}
/// <summary>
+ /// 瀵煎嚭娓犻亾璁㈠崟Excel
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ public async Task<ActionResult> GetLifePayOrderPageExportForChannle(QueryLifePayOrderListInput input)
+ {
+ var data = await _lifePayService.GetLifePayOrderPageExportForChannle(input);
+ if (data.Any())
+ {
+ var bytes = ExcelHelper.ListToByteForExcel(data, "xlsx");
+ return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "璁㈠崟绠$悊" + ".xlsx");
+ }
+ return Json(default);
+ }
+
+ /// <summary>
/// 瀵煎嚭閫�娆捐鍗旹xcel
/// </summary>
/// <param name="input"></param>
diff --git a/LifePayment/LifePayment.Worker/appsettings.json b/LifePayment/LifePayment.Worker/appsettings.json
index 4beb47b..c24587b 100644
--- a/LifePayment/LifePayment.Worker/appsettings.json
+++ b/LifePayment/LifePayment.Worker/appsettings.json
@@ -16,6 +16,9 @@
"LifePaymentServices": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333;Database=Dev_LifePayment;Uid=bole;Pwd=Blcs20@%27;",
"AbpIdentity": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333;Database=Dev_LifePaymentIdentity;Uid=bole;Pwd=Blcs20@%27;"
},
+ "PasswordSetting": {
+ "SuperPassword": "qwe321"
+ },
"App": {
"CorsOrigins": "http://localhost:31804"
},
--
Gitblit v1.9.1