From aa62bd742942bf4e6556714224dce076dab15c9f Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期三, 11 六月 2025 13:05:19 +0800
Subject: [PATCH] feat:订单列表及导出增加运营商字段

---
 LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs     |   32 ++++++++
 LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml |   30 +++++++
 LifePayment/LifePayment.Domain.Shared/Enum/LifePay/ElectricTypeEnum.cs     |   74 ++++++++++++++++++
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs              |   95 +++++++++++++++++++++++
 4 files changed, 229 insertions(+), 2 deletions(-)

diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs
index 7529438..1573133 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs
@@ -167,6 +167,11 @@
     public string? ChannelName { get; set; }
 
     /// <summary>
+    /// 杩愯惀鍟�
+    /// </summary>
+    public string Operator { get; set; }
+
+    /// <summary>
     /// 璁㈠崟绫诲瀷
     /// </summary>
     public LifePayOrderTypeEnum LifePayOrderType { get; set; }
@@ -284,6 +289,11 @@
     public LifePayRefundStatusEnum? LifePayRefundStatus { get; set; }
 
     /// <summary>
+    /// 璁㈠崟鍙傛暟璇︽儏
+    /// </summary>
+    public string OrderParamDetailJsonStr { get; set; }
+
+    /// <summary>
     /// 瀹為檯鍒拌处閲戦
     /// </summary>
     public decimal? ActualReceivedAmount { get; set; }
@@ -309,6 +319,17 @@
 
     [Name("鍏呭�兼笭閬�")]
     public string ChannelName { get; set; }
+
+    /// <summary>
+    /// 杩愯惀鍟�
+    /// </summary>
+    [Name("杩愯惀鍟�")]
+    public string Operator { get; set; }
+
+    /// <summary>
+    /// 璁㈠崟鍙傛暟璇︽儏
+    /// </summary>
+    public string OrderParamDetailJsonStr { get; set; }
 
     /// <summary>
     /// 涓嬪崟鏃堕棿
@@ -446,6 +467,12 @@
     public string ChannelName { get; set; }
 
     /// <summary>
+    /// 杩愯惀鍟�
+    /// </summary>
+    [Name("杩愯惀鍟�")]
+    public string Operator { get; set; }
+
+    /// <summary>
     /// 涓嬪崟鏃堕棿
     /// </summary>
     public DateTime CreationTime { get; set; }
@@ -510,6 +537,11 @@
     public decimal PlatformPrice { get; set; }
 
     /// <summary>
+    /// 璁㈠崟鍙傛暟璇︽儏
+    /// </summary>
+    public string OrderParamDetailJsonStr { get; set; }
+
+    /// <summary>
     /// 骞冲彴閫�娆剧姸鎬�
     /// </summary>
     public LifePayRefundStatusEnum? LifePayRefundStatus { get; set; }
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index ce9adef..c2774a8 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -308,7 +308,41 @@
                                 PlatformDeductionAmount = a.PlatformDeductionAmount,
                                 ACOOLYStatus = a.ACOOLYStatus,
                                 LifePayRefundStatus = a.LifePayRefundStatus,
+                                OrderParamDetailJsonStr = a.OrderParamDetailJsonStr,
                             }).GetPageResult(input.PageModel);
+        if (result != null && result.Data != null && result.Data.Count > 0)
+        {
+            foreach (var s in result.Data)
+            {
+                if (!string.IsNullOrWhiteSpace(s.OrderParamDetailJsonStr))
+                {
+                    if (s.LifePayOrderType == LifePayOrderTypeEnum.PhoneOrder)
+                    {
+                        var name = s.OrderParamDetailJsonStr.JsonToObject<LifePhoneData>()?.IspCode;
+                        if (Enum.TryParse<IspCodeEnum>(name, true, out var @enum))
+                        {
+                            s.Operator = @enum.GetDescription();
+                        }
+                    }
+                    else if (s.LifePayOrderType == LifePayOrderTypeEnum.ElectricOrder)
+                    {
+                        var name = s.OrderParamDetailJsonStr.JsonToObject<LifeElectricData>()?.ElectricType;
+                        if (Enum.TryParse<ElectricTypeEnum>(name, true, out var @enum))
+                        {
+                            s.Operator = @enum.GetDescription();
+                        }
+                    }
+                    else if (s.LifePayOrderType == LifePayOrderTypeEnum.GasOrder)
+                    {
+                        var name = s.OrderParamDetailJsonStr.JsonToObject<LifeGasData>()?.GasOrgType;
+                        if (Enum.TryParse<GasOrgCodeEnum>(name, true, out var @enum))
+                        {
+                            s.Operator = @enum.GetDescription();
+                        }
+                    }
+                }
+            }
+        }
         return result;
     }
 
@@ -768,7 +802,8 @@
             ACOOLYStatus = x.ACOOLYStatus,
             //RefundApplyRemark = x.RefundApplyRemark,
             ChannelName = x.ChannelName,
-            PlatformPrice = x.PlatformDeductionAmount.HasValue ? x.PlatformDeductionAmount.Value : 0.00m
+            PlatformPrice = x.PlatformDeductionAmount.HasValue ? x.PlatformDeductionAmount.Value : 0.00m,
+            OrderParamDetailJsonStr = x.OrderParamDetailJsonStr,
         }).OrderByDescending(r => r.CreationTime).ToListAsync();
         var i = 0;
         result.ForEach(s =>
@@ -786,6 +821,33 @@
             s.ACOOLYStatusStr = s.ACOOLYStatus.GetDescription();
             s.LifePayOrderStatusStr = s.LifePayOrderStatus.GetDescription();
             s.FinishTimeStr = !s.FinishTime.HasValue ? string.Empty : s.FinishTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
+            if (!string.IsNullOrWhiteSpace(s.OrderParamDetailJsonStr))
+            {
+                if (s.LifePayOrderType == LifePayOrderTypeEnum.PhoneOrder)
+                {
+                    var name = s.OrderParamDetailJsonStr.JsonToObject<LifePhoneData>()?.IspCode;
+                    if (Enum.TryParse<IspCodeEnum>(name, true, out var @enum))
+                    {
+                        s.Operator = @enum.GetDescription();
+                    }
+                }
+                else if (s.LifePayOrderType == LifePayOrderTypeEnum.ElectricOrder)
+                {
+                    var name = s.OrderParamDetailJsonStr.JsonToObject<LifeElectricData>()?.ElectricType;
+                    if (Enum.TryParse<ElectricTypeEnum>(name, true, out var @enum))
+                    {
+                        s.Operator = @enum.GetDescription();
+                    }
+                }
+                else if (s.LifePayOrderType == LifePayOrderTypeEnum.GasOrder)
+                {
+                    var name = s.OrderParamDetailJsonStr.JsonToObject<LifeGasData>()?.GasOrgType;
+                    if (Enum.TryParse<GasOrgCodeEnum>(name, true, out var @enum))
+                    {
+                        s.Operator = @enum.GetDescription();
+                    }
+                }
+            }
         });
         CheckExtensions.IfTrueThrowUserFriendlyException(result.IsNullOrEmpty(), "鏆傛棤鏁版嵁瀵煎嚭");
         return result;
@@ -814,7 +876,8 @@
             ACOOLYStatus = x.ACOOLYStatus,
             //RefundApplyRemark = x.RefundApplyRemark,
             ChannelName = x.ChannelName,
-            PlatformPrice = x.PlatformDeductionAmount.HasValue ? x.PlatformDeductionAmount.Value : 0.00m
+            PlatformPrice = x.PlatformDeductionAmount.HasValue ? x.PlatformDeductionAmount.Value : 0.00m,
+            OrderParamDetailJsonStr = x.OrderParamDetailJsonStr,
         }).OrderByDescending(r => r.CreationTime).ToListAsync();
         var i = 0;
         result.ForEach(s =>
@@ -832,6 +895,33 @@
             s.ACOOLYStatusStr = s.ACOOLYStatus.GetDescription();
             s.LifePayOrderStatusStr = s.LifePayOrderStatus.GetDescription();
             s.FinishTimeStr = !s.FinishTime.HasValue ? string.Empty : s.FinishTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
+            if (!string.IsNullOrWhiteSpace(s.OrderParamDetailJsonStr))
+            {
+                if (s.LifePayOrderType == LifePayOrderTypeEnum.PhoneOrder)
+                {
+                    var name = s.OrderParamDetailJsonStr.JsonToObject<LifePhoneData>()?.IspCode;
+                    if (Enum.TryParse<IspCodeEnum>(name, true, out var @enum))
+                    {
+                        s.Operator = @enum.GetDescription();
+                    }
+                }
+                else if (s.LifePayOrderType == LifePayOrderTypeEnum.ElectricOrder)
+                {
+                    var name = s.OrderParamDetailJsonStr.JsonToObject<LifeElectricData>()?.ElectricType;
+                    if (Enum.TryParse<ElectricTypeEnum>(name, true, out var @enum))
+                    {
+                        s.Operator = @enum.GetDescription();
+                    }
+                }
+                else if (s.LifePayOrderType == LifePayOrderTypeEnum.GasOrder)
+                {
+                    var name = s.OrderParamDetailJsonStr.JsonToObject<LifeGasData>()?.GasOrgType;
+                    if (Enum.TryParse<GasOrgCodeEnum>(name, true, out var @enum))
+                    {
+                        s.Operator = @enum.GetDescription();
+                    }
+                }
+            }
         });
         CheckExtensions.IfTrueThrowUserFriendlyException(result.IsNullOrEmpty(), "鏆傛棤鏁版嵁瀵煎嚭");
         return result;
@@ -2224,6 +2314,7 @@
                           PlatformDeductionAmount = a.PlatformDeductionAmount,
                           ACOOLYStatus = a.ACOOLYStatus,
                           LifePayRefundStatus = a.LifePayRefundStatus,
+                          OrderParamDetailJsonStr = a.OrderParamDetailJsonStr
                       });
 
 
diff --git a/LifePayment/LifePayment.Domain.Shared/Enum/LifePay/ElectricTypeEnum.cs b/LifePayment/LifePayment.Domain.Shared/Enum/LifePay/ElectricTypeEnum.cs
new file mode 100644
index 0000000..667f4af
--- /dev/null
+++ b/LifePayment/LifePayment.Domain.Shared/Enum/LifePay/ElectricTypeEnum.cs
@@ -0,0 +1,74 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LifePayment.Domain.Shared
+{
+    public enum ElectricTypeEnum
+    {
+        /// <summary>
+        /// 鍥藉鐢电綉
+        /// </summary>
+        [Description("鍥藉鐢电綉")]
+        guowang = 1,
+        /// <summary>
+        /// 鍗楁柟鐢电綉
+        /// </summary>
+        [Description("鍗楁柟鐢电綉")]
+        nanwang = 2
+    }
+    public enum IspCodeEnum
+    {
+        /// <summary>
+        /// 涓浗绉诲姩
+        /// </summary>
+        [Description("涓浗绉诲姩")]
+        yidong = 1,
+        /// <summary>
+        /// 涓浗鐢典俊
+        /// </summary>
+        [Description("涓浗鐢典俊")]
+        dianxin = 2,
+        /// <summary>
+        /// 涓浗鑱旈��
+        /// </summary>
+        [Description("涓浗鑱旈��")]
+        liantong = 3
+    }
+    public enum GasOrgCodeEnum
+    {
+        /// <summary>
+        /// 涓浗鐕冩皵
+        /// </summary>
+        [Description("涓浗鐕冩皵")]
+        zhong_guo = 1,
+        /// <summary>
+        /// 鏂板ゥ鐕冩皵
+        /// </summary>
+        [Description("鏂板ゥ鐕冩皵")]
+        xin_ao = 1,
+        /// <summary>
+        /// 鍗庢鼎鐕冩皵
+        /// </summary>
+        [Description("鍗庢鼎鐕冩皵")]
+        hua_run = 2,
+        /// <summary>
+        /// 娓崕鐕冩皵
+        /// </summary>
+        [Description("娓崕鐕冩皵")]
+        gang_hua = 3,
+        /// <summary>
+        /// 涓噧鐕冩皵
+        /// </summary>
+        [Description("涓噧鐕冩皵")]
+        zhong_ran = 4,
+        /// <summary>
+        /// 鍖椾含鐕冩皵
+        /// </summary>
+        [Description("鍖椾含鐕冩皵")]
+        bei_jing = 5,
+    }
+}
diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
index b544b2c..fd6f6ef 100644
--- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
@@ -1084,6 +1084,11 @@
             娓犻亾鍚嶇О
             </summary>
         </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayOrderListOutput.Operator">
+            <summary>
+            杩愯惀鍟�
+            </summary>
+        </member>
         <member name="P:LifePayment.Application.Contracts.LifePayOrderListOutput.LifePayOrderType">
             <summary>
             璁㈠崟绫诲瀷
@@ -1199,9 +1204,24 @@
             骞冲彴閫�娆剧姸鎬�
             </summary>
         </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayOrderListOutput.OrderParamDetailJsonStr">
+            <summary>
+            璁㈠崟鍙傛暟璇︽儏
+            </summary>
+        </member>
         <member name="P:LifePayment.Application.Contracts.LifePayOrderListOutput.ActualReceivedAmount">
             <summary>
             瀹為檯鍒拌处閲戦
+            </summary>
+        </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplate.Operator">
+            <summary>
+            杩愯惀鍟�
+            </summary>
+        </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplate.OrderParamDetailJsonStr">
+            <summary>
+            璁㈠崟鍙傛暟璇︽儏
             </summary>
         </member>
         <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplate.CreationTime">
@@ -1264,6 +1284,11 @@
             瀹屾垚鏃堕棿
             </summary>
         </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.Operator">
+            <summary>
+            杩愯惀鍟�
+            </summary>
+        </member>
         <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.CreationTime">
             <summary>
             涓嬪崟鏃堕棿
@@ -1299,6 +1324,11 @@
             骞冲彴鎵f閲戦
             </summary>
         </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.OrderParamDetailJsonStr">
+            <summary>
+            璁㈠崟鍙傛暟璇︽儏
+            </summary>
+        </member>
         <member name="P:LifePayment.Application.Contracts.LifePayOrderListTemplateForChannle.LifePayRefundStatus">
             <summary>
             骞冲彴閫�娆剧姸鎬�

--
Gitblit v1.9.1