/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 202403/02 * Description: 暂无 ***********************************************************************/ using System; using System.Threading.Tasks; using CoreCms.Net.Configuration; using CoreCms.Net.IRepository; using CoreCms.Net.IServices; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.ViewModels.UI; using Microsoft.Extensions.DependencyInjection; namespace CoreCms.Net.Services { /// /// 线下支付 接口实现 /// public class BalancePayServices : BaseServices, IBalancePayServices { private readonly IServiceProvider _serviceProvider; private readonly ICoreCmsUserBalanceServices _userBalanceServices; public BalancePayServices(IWeChatPayRepository dal , IServiceProvider serviceProvider, ICoreCmsUserBalanceServices userBalanceServices) { BaseDal = dal; _serviceProvider = serviceProvider; _userBalanceServices = userBalanceServices; } /// /// 发起支付 /// /// 实体数据 /// public async Task PubPay(CoreCmsBillPayments entity) { using (var container = _serviceProvider.CreateScope()) { var userBalanceServices = container.ServiceProvider.GetService(); var billPaymentsServices = container.ServiceProvider.GetService(); var jm = new WebApiCallBack(); var result = await userBalanceServices.Change(entity.userId, (int)GlobalEnumVars.UserBalanceSourceTypes.Pay, entity.money, entity.paymentId); if (!result.status) { jm.msg = result.msg; return jm; } //改变支付单状态 var billPaymentInfo = await billPaymentsServices.QueryByIdAsync(entity.paymentId); if (billPaymentInfo == null) { jm.msg = GlobalErrorCodeVars.Code10056; jm.data = 10056; return jm; } var userBalance = result.data as CoreCmsUserBalance; var resultBillPayment = await billPaymentsServices.ToUpdate(entity.paymentId, (int)GlobalEnumVars.BillPaymentsStatus.Payed, "balancepay", entity.money, userBalance.memo, userBalance.id.ToString()); if (resultBillPayment.status) { jm.msg = resultBillPayment.msg; jm.status = true; jm.data = entity; } else { jm.msg = resultBillPayment.msg; } return jm; } } /// /// 用户余额退款 /// /// 退款单数据 /// 支付单数据 /// public async Task Refund(CoreCmsBillRefund refundInfo, CoreCmsBillPayments paymentInfo) { var jm = new WebApiCallBack(); if (refundInfo.money == 0) { jm.status = true; jm.msg = "退款成功"; jm.data = new { ReturnCode = "SUCCESS" }; return jm; } var res = await _userBalanceServices.Change(paymentInfo.userId, (int)GlobalEnumVars.UserBalanceSourceTypes.Refund, refundInfo.money, paymentInfo.paymentId); if (res.status == false) return jm; jm.status = true; jm.data = res; jm.msg = "退款成功"; return jm; } } }