| | |
| | | using LifePayment.Domain; |
| | | using static LifePayment.Domain.Shared.LifePaymentConstant; |
| | | using Newtonsoft.Json; |
| | | using LifePayment.Domain.Common; |
| | | using Spire.Pdf.Exporting.XPS.Schema; |
| | | |
| | | namespace LifePayment.Application.LifePay |
| | | { |
| | |
| | | public async Task<PageOutput<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakePage(LifePayChannlesRakePageInput input) |
| | | { |
| | | var list = await _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false) |
| | | .WhereIf(input.ChannelId != null, x => x.ChannelId == input.ChannelId) |
| | | .WhereIf(input.ChannelId.IsNotNullOrEmpty(), x => x.ChannelId == input.ChannelId) |
| | | .WhereIf(input.CreationTimeBegin.HasValue, x => x.CreationTime >= input.CreationTimeBegin) |
| | | .WhereIf(input.CreationTimeEnd.HasValue, x => x.CreationTime <= input.CreationTimeEnd) |
| | | .WhereIf(input.FinishTimeBegin.HasValue, x => x.FinishTime >= input.FinishTimeBegin) |
| | |
| | | return list; |
| | | } |
| | | |
| | | public async Task<List<LifePayChannlesRakeListTemplate>> GetLifePayChannlesRakePageExport(LifePayChannlesRakePageInput input) |
| | | { |
| | | var result = await (await GetLifePayChannlesRakeListFilter(input)).Select(x => new LifePayChannlesRakeListTemplate |
| | | { |
| | | CreationTime = x.CreationTime, |
| | | FinishTime = x.FinishTime, |
| | | OrderNo = x.OrderNo, |
| | | PayAmount = x.PayAmount, |
| | | ChannlesRakeRate = x.ChannlesRakeRate, |
| | | ChannlesRakePrice = x.ChannlesRakePrice |
| | | }).OrderByDescending(r => r.CreationTime).ToListAsync(); |
| | | var i = 0; |
| | | result.ForEach(s => |
| | | { |
| | | s.SerialNumber = ++i; |
| | | s.CreationTimeStr = s.CreationTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss); |
| | | s.PayAmountStr = s.PayAmount.ToString("F2"); |
| | | s.ChannlesRakeRateStr = s.ChannlesRakeRate.ToString("F0") + "%"; |
| | | s.ChannlesRakePriceStr = s.ChannlesRakePrice.ToString("F2"); |
| | | s.FinishTimeStr = s.FinishTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss); |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | #region 操作 |
| | | |
| | | /// <summary> |
| | | /// 编辑充值流水 |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 插入收支流水 |
| | | /// </summary> |
| | |
| | | OutOrderNo = input.OutOrderNo, |
| | | LifePayType = input.LifePayType, |
| | | ExpensesReceiptsType = input.ExpensesReceiptsType, |
| | | Amount = input.Amount, |
| | | }; |
| | | |
| | | switch (input.LifePayType) |
| | |
| | | { |
| | | data.ExtraProperties = JsonConvert.SerializeObject(query); |
| | | data.FinishTime = Convert.ToDateTime(query.SendPayDate); |
| | | data.Amount = Convert.ToDecimal(query.PayAmount); |
| | | await _lifePayExpensesReceiptsRepository.InsertAsync(data); |
| | | } |
| | | } |
| | |
| | | { |
| | | data.ExtraProperties = JsonConvert.SerializeObject(query); |
| | | data.FinishTime = Convert.ToDateTime(query.GmtRefundPay); |
| | | data.Amount = Convert.ToDecimal(query.RefundAmount); |
| | | await _lifePayExpensesReceiptsRepository.InsertAsync(data); |
| | | } |
| | | } |
| | |
| | | input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts; |
| | | await AddLifePayExpensesReceipts(input); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | FinishTime = item.FinishTime.Value, |
| | | ChannelId = item.ChannelId, |
| | | }; |
| | | await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake); |
| | | var repeat = _lifePayChannlesRakeRepository.Where(x => x.OrderNo == item.OrderNo).FirstOrDefaultAsync(); |
| | | if (repeat != null) |
| | | { |
| | | await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 私有 |
| | | private async Task<IQueryable<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakeListFilter(LifePayChannlesRakePageInput input) |
| | | { |
| | | var list = _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false) |
| | | .WhereIf(input.ChannelId.IsNotNullOrEmpty(), x => x.ChannelId == input.ChannelId) |
| | | .WhereIf(input.CreationTimeBegin.HasValue, x => x.CreationTime >= input.CreationTimeBegin) |
| | | .WhereIf(input.CreationTimeEnd.HasValue, x => x.CreationTime <= input.CreationTimeEnd) |
| | | .WhereIf(input.FinishTimeBegin.HasValue, x => x.FinishTime >= input.FinishTimeBegin) |
| | | .WhereIf(input.FinishTimeEnd.HasValue, x => x.FinishTime <= input.FinishTimeEnd) |
| | | |
| | | .Select(x => new LifePayChannlesRakeListOutput() |
| | | { |
| | | Id = x.Id, |
| | | OrderNo = x.OrderNo, |
| | | PayAmount = x.PayAmount, |
| | | ChannlesRakeRate = x.ChannlesRakeRate, |
| | | ChannlesRakePrice = x.ChannlesRakePrice, |
| | | ChannelId = x.ChannelId, |
| | | FinishTime = x.FinishTime, |
| | | CreationTime = x.CreationTime, |
| | | }); |
| | | |
| | | |
| | | return list; |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | } |