From 1b62e001474c3887934d514d7f32dedb55b01cf8 Mon Sep 17 00:00:00 2001
From: lingling <kety1122@163.com>
Date: 星期五, 14 三月 2025 16:13:15 +0800
Subject: [PATCH] 添加单独项目代码

---
 LifePayment/LifePayment.Application.Contracts/User/IAccountService.cs      |   25 ++
 LifePayment/LifePayment.Application.Contracts/User/QrCodeLogin.cs          |   27 ++
 LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml |   14 +
 LifePayment/LifePayment.HttpApi/LifePay/ChannelFilterAttribute.cs          |   59 ++++
 LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs               |  283 ++++++++++++++++++++++-
 LifePayment/LifePayment.HttpApi/LifePay/AccountController.cs               |   57 ++++
 LifePayment/LifePayment.Application/User/AccountService.cs                 |   88 +++++++
 LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml                |  152 ++++++++++++
 8 files changed, 681 insertions(+), 24 deletions(-)

diff --git a/LifePayment/LifePayment.Application.Contracts/User/IAccountService.cs b/LifePayment/LifePayment.Application.Contracts/User/IAccountService.cs
new file mode 100644
index 0000000..08a57ee
--- /dev/null
+++ b/LifePayment/LifePayment.Application.Contracts/User/IAccountService.cs
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Services;
+
+namespace LifePayment.Application.Contracts
+{
+    public interface IAccountService : IApplicationService
+    {
+
+
+        #region life pay
+
+        /// <summary>
+        /// 鎵嬫満楠岃瘉鐮佺櫥褰�
+        /// 鐗堟湰璇存槑锛氫娇鐢ㄩ獙璇佺爜绠$悊鍘绘牎楠屽拰澶辨晥瀵瑰簲涓氬姟鐨勯獙璇佺爜
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
+        Task<Guid> LifePayPhoneMesssageCodeLogin(LifePayPhoneMesssageCodeLoginInput input);
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Application.Contracts/User/QrCodeLogin.cs b/LifePayment/LifePayment.Application.Contracts/User/QrCodeLogin.cs
new file mode 100644
index 0000000..5503fe7
--- /dev/null
+++ b/LifePayment/LifePayment.Application.Contracts/User/QrCodeLogin.cs
@@ -0,0 +1,27 @@
+锘縰sing LifePayment.Domain.Shared;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace LifePayment.Application.Contracts
+{
+
+
+    public class LifePayPhoneMesssageCodeLoginInput : ChannelsBaseInput
+    {
+        /// <summary>
+        /// 鎵嬫満鍙�
+        /// </summary>
+        [DisplayName("鎵嬫満鍙�")]
+        [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")]
+        [RegularExpression(LifePaymentConstant.RegularExpression.PhoneNumberRegEx, ErrorMessage = "{0}鏍煎紡閿欒")]
+        public string PhoneNumber { get; set; }
+
+
+        /// <summary>
+        /// 楠岃瘉鐮�
+        /// </summary>
+        //[Required]
+        //public string Code { get; set; }
+    }
+
+}
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Application/User/AccountService.cs b/LifePayment/LifePayment.Application/User/AccountService.cs
new file mode 100644
index 0000000..c6c47e0
--- /dev/null
+++ b/LifePayment/LifePayment.Application/User/AccountService.cs
@@ -0,0 +1,88 @@
+锘縰sing LifePayment.Application.Contracts;
+using LifePayment.Domain.Models;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Domain.Repositories;
+using ZeroD.Util;
+
+namespace HumanResourcesServices.Application
+{
+    public class AccountService : ApplicationService, IAccountService
+    {
+
+
+        private readonly IRepository<LifePayUser, Guid> _lifePayUserRepository;
+
+
+        public AccountService(
+
+               IRepository<LifePayUser, Guid> lifePayUserRepository
+)
+        {
+     
+            _lifePayUserRepository = lifePayUserRepository;
+     
+        }
+
+        #region 鏌ヨ
+
+
+
+        #endregion
+
+        #region 鎿嶄綔
+
+ 
+
+        #region life pay
+
+        /// <summary>
+        /// 鎵嬫満楠岃瘉鐮佺櫥褰�
+        /// 鐗堟湰璇存槑锛氫娇鐢ㄩ獙璇佺爜绠$悊鍘绘牎楠屽拰澶辨晥瀵瑰簲涓氬姟鐨勯獙璇佺爜
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
+        public async Task<Guid> LifePayPhoneMesssageCodeLogin(LifePayPhoneMesssageCodeLoginInput input)
+        {
+            //var vcodeType = VerificationCodeBusinessTypeEnum.LifePayPhoneMesssageCodeLogin;
+
+            //var checkResult = await _verificationCodeManager.CheckVerificationCodeByBusinessType(vcodeType,
+            //                                                                                     input.PhoneNumber,
+            //                                                                                     input.Code,
+            //                                                                                     true);
+            //CheckExtensions.IfTrueThrowUserFriendlyException(!checkResult,
+            //                                                 CustomeErrorMessage.SometingWrongOrSometing, "楠岃瘉鐮�", "宸插け鏁�");
+
+            var lifeUser = await _lifePayUserRepository.Where(x => x.PhoneNumber == input.PhoneNumber).FirstOrDefaultAsync();
+            if (lifeUser == null)
+            {
+                lifeUser = new LifePayUser()
+                {
+                    Id = GuidGenerator.Create(),
+                    PhoneNumber = input.PhoneNumber,
+                    LastLoginTime = DateTime.Now
+                };
+
+                await _lifePayUserRepository.InsertAsync(lifeUser);
+            }
+            else
+            {
+                lifeUser.LastLoginTime = DateTime.Now;
+                await _lifePayUserRepository.UpdateAsync(lifeUser);
+            }
+
+            return lifeUser.Id;
+        }
+
+        #endregion
+
+        #endregion
+
+     
+    }
+}
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
index 5e3ecad..2ca2d07 100644
--- a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
@@ -4,21 +4,41 @@
         <name>LifePayment.HttpApi</name>
     </assembly>
     <members>
-        <member name="M:LifePayment.HttpApi.LifePayController.GetElectricParValue">
+        <member name="M:LifePayment.HttpApi.AccountController.LifePayPhoneMesssageCodeLogin(LifePayment.Application.Contracts.LifePayPhoneMesssageCodeLoginInput)">
+            <summary>
+            life pay鎵嬫満楠岃瘉鐮佺櫥褰�
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+            <exception cref="T:Volo.Abp.UserFriendlyException"></exception>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetElectricParValue(LifePayment.Domain.Shared.ChannelsBaseInput)">
             <summary>
             鑾峰彇鐢佃垂闈㈠��
             </summary>
             <returns></returns>
         </member>
-        <member name="M:LifePayment.HttpApi.LifePayController.GetElectricSupportArea">
+        <member name="M:LifePayment.HttpApi.LifePayController.GetElectricSupportArea(LifePayment.Domain.Shared.ChannelsBaseInput)">
             <summary>
             鑾峰彇鐢佃垂鍏呭�煎尯鍩�
             </summary>
             <returns></returns>
         </member>
-        <member name="M:LifePayment.HttpApi.LifePayController.GetPhoneParValue">
+        <member name="M:LifePayment.HttpApi.LifePayController.GetPhoneParValue(LifePayment.Domain.Shared.ChannelsBaseInput)">
             <summary>
             鑾峰彇璇濊垂闈㈠��
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetGasParValue(LifePayment.Domain.Shared.ChannelsBaseInput)">
+            <summary>
+            鑾峰彇鐕冩皵闈㈠��
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetGasOrgType(LifePayment.Domain.Shared.ChannelsBaseInput)">
+            <summary>
+            鑾峰彇鐕冩皵鏀寔鍟嗘埛
             </summary>
             <returns></returns>
         </member>
@@ -49,11 +69,75 @@
             <param name="input"></param>
             <returns></returns>
         </member>
-        <member name="M:LifePayment.HttpApi.LifePayController.GetPayStatusByOrderNo(System.String)">
+        <member name="M:LifePayment.HttpApi.LifePayController.GetUserLifePayOrderDetail(System.String)">
+            <summary>
+            鑾峰彇鎴戠殑璁㈠崟璇︽儏
+            </summary>
+            <param name="orderNo"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetPayStatusByOrderNo(LifePayment.Application.Contracts.GetPayStatusByOrderNoInput)">
             <summary>
             鏍规嵁璁㈠崟鍙疯幏鍙栨敮浠樼姸鎬�
             </summary>
-            <param name="orderNo"></param>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetLifePayChannlesPage(ZeroD.Util.PageInput)">
+            <summary>
+            鑾峰彇缂磋垂娓犻亾鍒楄〃
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetLifePayChannlesDto(System.Guid)">
+            <summary>
+            鑾峰彇娓犻亾璇︽儏
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetUserLifePayOrderRefund(System.Guid)">
+            <summary>
+            鐢ㄦ埛鏌ョ湅鐢熸椿缂磋垂閫�娆惧け璐ヨ鎯�
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+            <exception cref="T:Volo.Abp.UserFriendlyException"></exception>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetAccountPage(LifePayment.Application.Contracts.QueryUserAccountListInput)">
+            <summary>
+            鑾峰彇鐢ㄦ埛鎴峰彿鍒嗛〉鏁版嵁
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetUserAccountList(LifePayment.Application.Contracts.QueryUserAccountListInput)">
+            <summary>
+            鑾峰彇鎴戠殑鎴峰彿鍒楄〃
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetUserAccountAllList(LifePayment.Application.Contracts.QueryUserAccountAllListInput)">
+            <summary>
+            鑾峰彇鎴戠殑鍏ㄩ儴鎴峰彿鍒楄〃
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetUserAccountDetail(System.Guid)">
+            <summary>
+            鑾峰彇鎴戠殑鎴峰彿璇︽儏
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetLifePayOrderPageExport(LifePayment.Application.Contracts.QueryLifePayOrderListInput)">
+            <summary>
+            瀵煎嚭璁㈠崟Excel
+            </summary>
+            <param name="input"></param>
             <returns></returns>
         </member>
         <member name="M:LifePayment.HttpApi.LifePayController.CreateLifePayPhoneOrder(LifePayment.Application.Contracts.CreateLifePayOrderInput{LifePayment.Application.Contracts.LifePhoneData})">
@@ -70,6 +154,13 @@
             <param name="input"></param>
             <returns></returns>
         </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.CreateLifePayGasOrder(LifePayment.Application.Contracts.CreateLifePayOrderInput{LifePayment.Application.Contracts.LifeGasData})">
+            <summary>
+            鍒涘缓鐢熸椿缂磋垂鐕冩皵璁㈠崟
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
         <member name="M:LifePayment.HttpApi.LifePayController.RefundLifePayOrder(LifePayment.Application.Contracts.RefundLifePayOrderInput)">
             <summary>
             閫�娆剧敓娲荤即璐硅鍗�
@@ -78,6 +169,57 @@
             <returns></returns>
             <exception cref="T:Volo.Abp.UserFriendlyException"></exception>
         </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.RefundUserLifePayOrder(LifePayment.Application.Contracts.RefundUserLifePayOrderInput)">
+            <summary>
+            鐢ㄦ埛鍙戣捣鐢熸椿缂磋垂閫�娆�
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+            <exception cref="T:Volo.Abp.UserFriendlyException"></exception>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.AddUpdateUserAccount(LifePayment.Application.Contracts.AddUpdateUserAccountInput)">
+            <summary>
+            娣诲姞鎴栦慨鏀规垜鐨勬埛鍙�
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.DeleteUserAccount(System.Guid)">
+            <summary>
+            鍒犻櫎鎴戠殑鎴峰彿
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.RejectRefundLifePayOrder(LifePayment.Application.Contracts.RefundLifePayOrderInput)">
+            <summary>
+            閫�娆鹃┏鍥�
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.CreateEditPayChannels(LifePayment.Application.Contracts.CreateEditPayChannelsInput)">
+            <summary>
+            娓犻亾绠$悊
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.SetLifePayChannelsStatus(System.Guid,LifePayment.Domain.Shared.LifePayChannelsStatsEnum)">
+            <summary>
+            璁剧疆娓犻亾鍚敤鐘舵��
+            </summary>
+            <param name="id"></param>
+            <param name="status"></param>
+            <returns></returns>
+        </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.CreateEditLifePayRate(System.Collections.Generic.List{LifePayment.Application.Contracts.LifePayRateInput})">
+            <summary>
+            鎶樻墸閰嶇疆
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
         <member name="M:LifePayment.HttpApi.LifePayController.SetLifePayOrderPayType(LifePayment.Domain.Shared.SetLifePayOrderPayTypeInput)">
             <summary>
             璁剧疆鐢熸椿缂磋垂鏀粯绫诲瀷
diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
index 96ce053..f5a2814 100644
--- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
@@ -763,5 +763,19 @@
             鐢ㄦ埛id
             </summary>
         </member>
+        <member name="M:LifePayment.Application.Contracts.IAccountService.LifePayPhoneMesssageCodeLogin(LifePayment.Application.Contracts.LifePayPhoneMesssageCodeLoginInput)">
+            <summary>
+            鎵嬫満楠岃瘉鐮佺櫥褰�
+            鐗堟湰璇存槑锛氫娇鐢ㄩ獙璇佺爜绠$悊鍘绘牎楠屽拰澶辨晥瀵瑰簲涓氬姟鐨勯獙璇佺爜
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+            <exception cref="T:Volo.Abp.UserFriendlyException"></exception>
+        </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayPhoneMesssageCodeLoginInput.PhoneNumber">
+            <summary>
+            鎵嬫満鍙�
+            </summary>
+        </member>
     </members>
 </doc>
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/AccountController.cs b/LifePayment/LifePayment.HttpApi/LifePay/AccountController.cs
new file mode 100644
index 0000000..9cce5da
--- /dev/null
+++ b/LifePayment/LifePayment.HttpApi/LifePay/AccountController.cs
@@ -0,0 +1,57 @@
+锘縰sing LifePayment.Application.Contracts;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Options;
+using System;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.AspNetCore.Mvc;
+using Volo.Abp.AspNetCore.WebClientInfo;
+
+namespace LifePayment.HttpApi
+{
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    public class AccountController : AbpController
+    {
+        private readonly IAccountService _accountService;
+
+        private readonly IWebClientInfoProvider _webClientInfoProvider;
+
+
+        public AccountController(
+               IAccountService accountService,
+
+
+               IWebClientInfoProvider webClientInfoProvider
+          )
+        {
+            _accountService = accountService;
+
+            _webClientInfoProvider = webClientInfoProvider;
+
+        }
+
+
+        #region life pay
+
+        /// <summary>
+        /// life pay鎵嬫満楠岃瘉鐮佺櫥褰�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<Guid> LifePayPhoneMesssageCodeLogin(LifePayPhoneMesssageCodeLoginInput input)
+        {
+            return await _accountService.LifePayPhoneMesssageCodeLogin(input);
+        }
+
+
+        #endregion
+
+
+    }
+}
\ No newline at end of file
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/ChannelFilterAttribute.cs b/LifePayment/LifePayment.HttpApi/LifePay/ChannelFilterAttribute.cs
new file mode 100644
index 0000000..9e37374
--- /dev/null
+++ b/LifePayment/LifePayment.HttpApi/LifePay/ChannelFilterAttribute.cs
@@ -0,0 +1,59 @@
+锘縰sing LifePayment.Application.Contracts;
+using LifePayment.Domain.Shared;
+using Microsoft.AspNetCore.Mvc.Abstractions;
+using Microsoft.AspNetCore.Mvc.Filters;
+using System;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace LifePayment.HttpApi
+{
+    public class ChannelFilterAttribute : Attribute, IAsyncActionFilter
+    {
+
+        public ChannelFilterAttribute()
+        {
+
+        }
+
+
+        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
+        {
+            if (!context.ActionDescriptor.IsControllerAction())
+            {
+                await next();
+                return;
+            }
+
+            var checkerService = context.GetRequiredService<ILifePayService>();
+
+            foreach (var argument in context.ActionArguments)
+            {
+                // 妫�鏌ュ弬鏁扮被鍨嬫槸鍚︿负 ChannelsBaseInput
+                if (argument.Value is ChannelsBaseInput model)
+                {
+                    // 鑾峰彇 Channel 鍙傛暟鐨勫��
+                    string channelValue = model.CheckChannelId;
+                    if (!string.IsNullOrEmpty(channelValue))
+                    {
+                        var result = await checkerService.CheckChannelsStatus(channelValue);
+                        if (result)
+                        {
+                            await next();
+                        }
+                        else
+                        {
+                            throw new UserFriendlyException("娌℃湁瀵瑰簲鐨勬笭閬�");
+                        }
+
+                    }
+                }
+            }
+
+
+        }
+
+
+    }
+}
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
index 41631d2..fde6a23 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -1,9 +1,7 @@
 锘縰sing LifePayment.Application.Contracts;
-using LifePayment.Domain;
 using LifePayment.Domain.Shared;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -11,12 +9,7 @@
 using Volo.Abp;
 using Volo.Abp.AspNetCore.Mvc;
 using Volo.Abp.AspNetCore.WebClientInfo;
-using Volo.Abp.EventBus.Distributed;
-using Volo.Abp.Identity;
-using Volo.Abp.Uow;
 using ZeroD.Util;
-using ZeroD.Util.Fadd;
-using LifePayment.Application.Contracts;
 
 namespace LifePayment.HttpApi
 {
@@ -42,9 +35,10 @@
         /// 鑾峰彇鐢佃垂闈㈠��
         /// </summary>
         /// <returns></returns>
-        [HttpGet]
+        [HttpPost]
         [AllowAnonymous]
-        public async Task<ElectricParValueResponse> GetElectricParValue()
+        [ChannelFilter]
+        public async Task<ElectricParValueResponse> GetElectricParValue(ChannelsBaseInput input)
         {
             return await _lifePayService.GetElectricParValue();
         }
@@ -53,17 +47,18 @@
         /// 鑾峰彇鐢佃垂鍏呭�煎尯鍩�
         /// </summary>
         /// <returns></returns>
-        [HttpGet]
+        [HttpPost]
         [AllowAnonymous]
-        public async Task<ElectricSupportAreaResponse> GetElectricSupportArea()
+        [ChannelFilter]
+        public async Task<ElectricSupportAreaResponse> GetElectricSupportArea(ChannelsBaseInput input)
         {
             var aresResult = await _lifePayService.GetElectricSupportArea();
             var parValues = await _lifePayService.GetElectricParValue();
 
-            foreach(var item in aresResult.ElectricAreaList)
+            foreach (var item in aresResult.ElectricAreaList)
             {
-                var paritem  = parValues.ElectricParValue.Where(r=>r.AreaName == item.CityName).FirstOrDefault();
-                if(paritem != null)
+                var paritem = parValues.ElectricParValue.Where(r => r.AreaName == item.CityName).FirstOrDefault();
+                if (paritem != null)
                 {
                     item.ElectricType = paritem.ElectricType;
                     item.ParValue = paritem.ParValue;
@@ -78,11 +73,36 @@
         /// 鑾峰彇璇濊垂闈㈠��
         /// </summary>
         /// <returns></returns>
-        [HttpGet]
+        [HttpPost]
         [AllowAnonymous]
-        public async Task<PhoneParValueResponse> GetPhoneParValue()
+        [ChannelFilter]
+        public async Task<PhoneParValueResponse> GetPhoneParValue(ChannelsBaseInput input)
         {
             return await _lifePayService.GetPhoneParValue();
+        }
+
+        /// <summary>
+        /// 鑾峰彇鐕冩皵闈㈠��
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<GasParValueResponse> GetGasParValue(ChannelsBaseInput input)
+        {
+            return await _lifePayService.GetGasParValue();
+        }
+
+        /// <summary>
+        /// 鑾峰彇鐕冩皵鏀寔鍟嗘埛
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<GasOrgTypeValueResponse> GetGasOrgType(ChannelsBaseInput input)
+        {
+            return await _lifePayService.GetGasOrgType();
         }
 
         /// <summary>
@@ -125,21 +145,138 @@
         /// <returns></returns>
         [HttpPost]
         [AllowAnonymous]
+        [ChannelFilter]
         public async Task<PageOutput<UserLifePayOrderOutput>> GetUserLifePayOrderPage(QueryLifePayOrderListInput input)
         {
             return await _lifePayService.GetUserLifePayOrderPage(input);
         }
 
         /// <summary>
-        /// 鏍规嵁璁㈠崟鍙疯幏鍙栨敮浠樼姸鎬�
+        /// 鑾峰彇鎴戠殑璁㈠崟璇︽儏
         /// </summary>
         /// <param name="orderNo"></param>
         /// <returns></returns>
         [HttpGet]
         [AllowAnonymous]
-        public async Task<LifePayStatusEnum> GetPayStatusByOrderNo(string orderNo)
+        public async Task<UserLifePayOrderOutput> GetUserLifePayOrderDetail(string orderNo)
         {
-            return await _lifePayService.GetPayStatusByOrderNo(orderNo);
+            return await _lifePayService.GetUserLifePayOrderDetail(orderNo);
+        }
+
+
+        /// <summary>
+        /// 鏍规嵁璁㈠崟鍙疯幏鍙栨敮浠樼姸鎬�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<LifePayStatusEnum> GetPayStatusByOrderNo(GetPayStatusByOrderNoInput input)
+        {
+            return await _lifePayService.GetPayStatusByOrderNo(input.OrderNo);
+        }
+
+        /// <summary>
+        /// 鑾峰彇缂磋垂娓犻亾鍒楄〃
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<PageOutput<CreateEditPayChannelsInput>> GetLifePayChannlesPage(PageInput input)
+        {
+            return await _lifePayService.GetLifePayChannlesPage(input);
+        }
+
+        /// <summary>
+        /// 鑾峰彇娓犻亾璇︽儏
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpGet]
+        public async Task<CreateEditPayChannelsInput> GetLifePayChannlesDto(Guid id)
+        {
+            return await _lifePayService.GetLifePayChannlesDto(id);
+        }
+
+        /// <summary>
+        /// 鐢ㄦ埛鏌ョ湅鐢熸椿缂磋垂閫�娆惧け璐ヨ鎯�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
+        [HttpGet]
+        [AllowAnonymous]
+        public async Task<UserLifePayOrderRefundOutput> GetUserLifePayOrderRefund(Guid id)
+        {
+            return await _lifePayService.GetUserLifePayOrderRefund(id);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鐢ㄦ埛鎴峰彿鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<PageOutput<UserAccountOutput>> GetAccountPage(QueryUserAccountListInput input)
+        {
+            return await _lifePayService.GetAccountPage(input);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎴戠殑鎴峰彿鍒楄〃
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<PageOutput<UserAccountOutput>> GetUserAccountList(QueryUserAccountListInput input)
+        {
+            return await _lifePayService.GetUserAccountList(input);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎴戠殑鍏ㄩ儴鎴峰彿鍒楄〃
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<List<UserAccountOutput>> GetUserAccountAllList(QueryUserAccountAllListInput input)
+        {
+            return await _lifePayService.GetUserAccountAllList(input);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎴戠殑鎴峰彿璇︽儏
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [AllowAnonymous]
+        public async Task<UserAccountOutput> GetUserAccountDetail(Guid id)
+        {
+            return await _lifePayService.GetUserAccountDetail(id);
+        }
+
+        /// <summary>
+        /// 瀵煎嚭璁㈠崟Excel
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<ActionResult> GetLifePayOrderPageExport(QueryLifePayOrderListInput input)
+        {
+            var data = await _lifePayService.GetLifePayOrderPageExport(input);
+            if (data.Any())
+            {
+                var bytes = ExcelHelper.ListToByteForExcel(data, "xlsx");
+                return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "璁㈠崟绠$悊" + ".xlsx");
+            }
+
+            return Json(default);
         }
 
         #endregion
@@ -153,6 +290,7 @@
         /// <returns></returns>
         [HttpPost]
         [AllowAnonymous]
+        [ChannelFilter]
         public async Task<CreateLifePayOrderOutput> CreateLifePayPhoneOrder(CreateLifePayOrderInput<LifePhoneData> input)
         {
             return await _lifePayService.CreateLifePayPhoneOrder(input);
@@ -165,9 +303,23 @@
         /// <returns></returns>
         [HttpPost]
         [AllowAnonymous]
+        [ChannelFilter]
         public async Task<CreateLifePayOrderOutput> CreateLifePayElectricOrder(CreateLifePayOrderInput<LifeElectricData> input)
         {
             return await _lifePayService.CreateLifePayElectricOrder(input);
+        }
+
+        /// <summary>
+        /// 鍒涘缓鐢熸椿缂磋垂鐕冩皵璁㈠崟
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<CreateLifePayOrderOutput> CreateLifePayGasOrder(CreateLifePayOrderInput<LifeGasData> input)
+        {
+            return await _lifePayService.CreateLifePayGasOrder(input);
         }
 
         /// <summary>
@@ -184,12 +336,104 @@
         }
 
         /// <summary>
+        /// 鐢ㄦ埛鍙戣捣鐢熸椿缂磋垂閫�娆�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<int> RefundUserLifePayOrder(RefundUserLifePayOrderInput input)
+        {
+            await _lifePayService.RefundUserLifePayOrder(input);
+            return Constant.SUCCESS;
+        }
+
+        /// <summary>
+        /// 娣诲姞鎴栦慨鏀规垜鐨勬埛鍙�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [AllowAnonymous]
+        [ChannelFilter]
+        public async Task<int> AddUpdateUserAccount(AddUpdateUserAccountInput input)
+        {
+            await _lifePayService.AddUpdateUserAccount(input);
+            return Constant.SUCCESS;
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鎴戠殑鎴峰彿
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [AllowAnonymous]
+        public async Task<int> DeleteUserAccount(Guid id)
+        {
+            await _lifePayService.DeleteUserAccount(id);
+            return Constant.SUCCESS;
+        }
+
+        /// <summary>
+        /// 閫�娆鹃┏鍥�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<int> RejectRefundLifePayOrder(RefundLifePayOrderInput input)
+        {
+            await _lifePayService.RejectRefundLifePayOrder(input);
+            return Constant.SUCCESS;
+        }
+
+        /// <summary>
+        /// 娓犻亾绠$悊
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<int> CreateEditPayChannels(CreateEditPayChannelsInput input)
+        {
+            await _lifePayService.CreateEditPayChannels(input);
+            return Constant.SUCCESS;
+        }
+
+        /// <summary>
+        /// 璁剧疆娓犻亾鍚敤鐘舵��
+        /// </summary>
+        /// <param name="id"></param>
+        /// <param name="status"></param>
+        /// <returns></returns>
+        [HttpGet]
+        public async Task<int> SetLifePayChannelsStatus(Guid id, LifePayChannelsStatsEnum status)
+        {
+            await _lifePayService.SetLifePayChannelsStatus(id, status);
+            return Constant.SUCCESS;
+        }
+
+        /// <summary>
+        /// 鎶樻墸閰嶇疆
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<int> CreateEditLifePayRate(List<LifePayRateInput> input)
+        {
+            await _lifePayService.CreateEditLifePayRate(input);
+            return Constant.SUCCESS;
+        }
+
+        /// <summary>
         /// 璁剧疆鐢熸椿缂磋垂鏀粯绫诲瀷
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
         [AllowAnonymous]
+        [ChannelFilter]
         public async Task<string> SetLifePayOrderPayType(SetLifePayOrderPayTypeInput input)
         {
 
@@ -203,6 +447,7 @@
         /// <returns></returns>
         [HttpPost]
         [AllowAnonymous]
+        [ChannelFilter]
         public async Task<ModelPaymentMiniPay> GetPayOrderForJsAPI(GetPayOrderForJsAPIInput input)
         {
             return await _lifePayService.GetPayOrderForJsAPI(input, _webClientInfoProvider.ClientIpAddress);

--
Gitblit v1.9.1