zhengyuxuan
2025-03-31 fc5fc5bcb84ad464638008768932e47ad36c36af
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -1,7 +1,11 @@
using LifePayment.Application.Contracts;
using Alipay.AopSdk.F2FPay.Model;
using LifePayment.Application.Contracts;
using LifePayment.Application.LifePay;
using LifePayment.Domain.Common;
using LifePayment.Domain.Shared;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -19,17 +23,41 @@
    public class LifePayController : AbpController
    {
        private readonly ILifePayService _lifePayService;
        private readonly IStatisticsService _statisticsService;
        private readonly IWebClientInfoProvider _webClientInfoProvider;
        private readonly ICommonService _commonService;
        private readonly ILifePayOrderService _lifePayOrderService;
        private readonly ILogger<LifePayController> _logger;
        public LifePayController(
              ILifePayService lifePayService,
              IWebClientInfoProvider webClientInfoProvider
              IStatisticsService statisticsService,
              IWebClientInfoProvider webClientInfoProvider,
              ICommonService commonService,
              ILifePayOrderService lifePayOrderService,
              ILogger<LifePayController> logger
              )
        {
            _lifePayService = lifePayService;
            _statisticsService = statisticsService;
            _webClientInfoProvider = webClientInfoProvider;
            _commonService = commonService;
            _lifePayOrderService = lifePayOrderService;
            _logger = logger;
        }
        #region 查询
        /// <summary>
        /// 获取顶部统计数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        [AllowAnonymous]
        public async Task<TopStatisticsOutput> GetTopStatistics(TopStatisticsInput input)
        {
            return await _statisticsService.GetTopStatistics(input.ChannleList);
        }
        /// <summary>
        /// 获取电费面值
@@ -107,6 +135,20 @@
        }
        /// <summary>
        /// 添加日志
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [AllowAnonymous]
        public async Task<int> AddLogger(LogErrorInput input)
        {
            Logger.LogError("前端错误:" + input.Error);
            return Constant.SUCCESS;
        }
        /// <summary>
        /// 获取折扣
        /// </summary>
        /// <returns></returns>
@@ -115,6 +157,17 @@
        public async Task<List<LifePayRateListOutput>> GetRate()
        {
            return await _lifePayService.GetRate();
        }
        /// <summary>
        /// 获取渠道折扣
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [AllowAnonymous]
        public async Task<ChannelRateOutput> GetChannelRate(ChannelsBaseInput input)
        {
            return await _lifePayService.GetChannelRate(input);
        }
        /// <summary>
@@ -139,6 +192,16 @@
            return await _lifePayService.GetIntroInfo(type);
        }
        /// <summary>
        /// 获取在线客服
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [AllowAnonymous]
        public async Task<string> GetOnlineService()
        {
            return await _commonService.GetOnlineService();
        }
        /// <summary>
        /// 获取用户分页数据
@@ -146,7 +209,7 @@
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<PageOutput<UserListOutput>> GetUserPage(PageInput input)
        public async Task<PageOutput<UserListOutput>> GetUserPage(QueryUserPageInput input)
        {
            return await _lifePayService.GetUserPage(input);
        }
@@ -160,6 +223,39 @@
        public async Task<PageOutput<LifePayOrderListOutput>> GetLifePayOrderPage(QueryLifePayOrderListInput input)
        {
            return await _lifePayService.GetLifePayOrderPage(input);
        }
        /// <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>
        /// <returns></returns>
        [HttpGet]
        public async Task<LifePayOrderOutput> GetLifePayOrderDetail(string orderNo)
        {
            return await _lifePayService.GetLifePayOrderDetail(orderNo);
        }
        /// <summary>
        /// 获取退款订单详情
        /// </summary>
        /// <param name="orderNo"></param>
        /// <returns></returns>
        [HttpGet]
        public async Task<LifePayRefundOrderOutput> GetLifePayRefundOrderDetail(string orderNo)
        {
            return await _lifePayService.GetLifePayRefundOrderDetail(orderNo);
        }
        /// <summary>
@@ -210,6 +306,15 @@
        public async Task<PageOutput<CreateEditPayChannelsInput>> GetLifePayChannlesPage(PageInput input)
        {
            return await _lifePayService.GetLifePayChannlesPage(input);
        }
        /// <summary>
        /// 获取全部缴费渠道
        /// </summary>
        [HttpGet]
        public async Task<List<CreateEditPayChannelsInput>> GetLifePayChannlesAllList()
        {
            return await _lifePayService.GetLifePayChannlesAllList();
        }
        /// <summary>
@@ -299,9 +404,180 @@
                var bytes = ExcelHelper.ListToByteForExcel(data, "xlsx");
                return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "订单管理" + ".xlsx");
            }
            return Json(default);
        }
        /// <summary>
        /// 导出退款订单Excel
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<ActionResult> GetLifePayRefudOrderPageExport(QueryLifePayRefundOrderListInput input)
        {
            var data = await _lifePayService.GetLifePayRefudOrderPageExport(input);
            if (data.Any())
            {
                var bytes = ExcelHelper.ListToByteForExcel(data, "xlsx");
                return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "退款管理" + ".xlsx");
            }
            return Json(default);
        }
        [HttpGet]
        public async Task<string> GetBillErceiptExport(string orderNo)
        {
            var data = await _lifePayService.GetBillErceiptExport(orderNo);
            return data;
        }
        /// <summary>
        /// 获取充值流水分页数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<PageOutput<LifePayRechargeReceiptsListOutput>> GetLifePayRechargeReceiptsPage(LifePayRechargeReceiptsPageInput input)
        {
            return await _lifePayOrderService.GetLifePayRechargeReceiptsPage(input);
        }
        /// <summary>
        /// 获取渠道分佣分页列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<PageOutput<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakePage(LifePayChannlesRakePageInput input)
        {
            return await _lifePayOrderService.GetLifePayChannlesRakePage(input);
        }
        /// <summary>
        /// 导出渠道分佣Excel
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<ActionResult> GetLifePayChannlesRakePageExport(LifePayChannlesRakePageInput input)
        {
            var data = await _lifePayOrderService.GetLifePayChannlesRakePageExport(input);
            if (data.Any())
            {
                var bytes = ExcelHelper.ListToByteForExcel(data, "xlsx");
                return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "渠道分佣" + ".xlsx");
            }
            return Json(default);
        }
        /// <summary>
        /// 获取收支流水分页数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<PageOutput<LifePayExpensesReceiptsListOutput>> GetLifePayExpensesReceiptsPage(LifePayExpensesReceiptsPageInput input)
        {
            return await _lifePayOrderService.GetLifePayExpensesReceiptsPage(input);
        }
        /// <summary>
        /// 查询支付宝支付订单信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        [AllowAnonymous]
        public async Task<Alipay.EasySDK.Payment.Common.Models.AlipayTradeQueryResponse> QueryAlipayTrade(OrderInQuiryInput input)
        {
            var res = await _lifePayService.QueryAlipayTrade(input);
            //await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
            //{
            //    OrderNo = input.OutTradeNo,
            //    OutOrderNo = res.TradeNo,
            //    LifePayType = LifePayTypeEnum.AliPay,
            //    ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses,
            //    Amount = Convert.ToDecimal(res.ReceiptAmount)
            //});
            return res;
        }
        /// <summary>
        /// 查询支付宝退款订单信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        [AllowAnonymous]
        public async Task<Alipay.EasySDK.Payment.Common.Models.AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input)
        {
            return await _lifePayService.QueryAlipayTradeRefund(input);
        }
        /// <summary>
        /// 查询微信退款信息
        /// </summary>
        /// <param name="outTradeNo"></param>
        /// <returns></returns>
        [HttpGet]
        [AllowAnonymous]
        public async Task<WxPayDomesticRefundsQueryReponse> WxPayDomesticRefundsQuery(string outTradeNo)
        {
            var res = await _lifePayService.WxPayDomesticRefundsQuery(outTradeNo);
            await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
            {
                OrderNo = res.OutTradeNo,
                OutOrderNo = res.TransactionId,
                LifePayType = LifePayTypeEnum.WxPay,
                ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses,
                Amount = Convert.ToDecimal(res.Amount.Total)
            });
            return res;
        }
        /// <summary>
        /// 查询微信订单信息
        /// </summary>
        /// <param name="outTradeNo"></param>
        /// <returns></returns>
        [HttpGet]
        [AllowAnonymous]
        public async Task<WxPayTradeQueryReponse> WxPayTradeQuery(string outTradeNo)
        {
            var res = await _lifePayService.WxPayTradeQuery(outTradeNo);
            await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
            {
                OrderNo = res.OutTradeNo,
                OutOrderNo = res.TransactionId,
                LifePayType = LifePayTypeEnum.WxPay,
                ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses,
                Amount = Convert.ToDecimal(res.Amount.Total)
            });
            return res;
        }
        /// <summary>
        /// 同步订单收支信息
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [AllowAnonymous]
        public async Task GetAllLifePayExpensesReceipts()
        {
            await _lifePayOrderService.GetAllLifePayExpensesReceipts();
        }
        /// <summary>
        /// 同步订单
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [AllowAnonymous]
        public async Task GetAllChannlesRake()
        {
            await _lifePayOrderService.GetAllChannlesRake();
        }
        #endregion
@@ -344,6 +620,17 @@
        public async Task<CreateLifePayOrderOutput> CreateLifePayGasOrder(CreateLifePayOrderInput<LifeGasData> input)
        {
            return await _lifePayService.CreateLifePayGasOrder(input);
        }
        /// <summary>
        /// 修改实际到账金额
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<int> UpdateLifePayOrderActualReceivedAmount(UpdateLifePayOrderInput input)
        {
            return await _lifePayService.UpdateLifePayOrderActualReceivedAmount(input);
        }
        /// <summary>
@@ -475,6 +762,30 @@
        }
        /// <summary>
        /// 在线客服配置
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<int> UpdateOnlineService(OnlineServiceInput input)
        {
            await _commonService.UpdateOnlineService(input);
            return Constant.SUCCESS;
        }
        /// <summary>
        /// 上传充值流水
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<int> AddUpdatePayRechargeReceipts(AddUpdatePayRechargeReceiptsInput input)
        {
            await _lifePayOrderService.AddUpdatePayRechargeReceipts(input);
            return Constant.SUCCESS;
        }
        /// <summary>
        /// 设置生活缴费支付类型
        /// </summary>
        /// <param name="input"></param>