diff --git a/CoreCms.Net.IRepository/IBaseRepository.cs b/CoreCms.Net.IRepository/IBaseRepository.cs index 53eccce..44a6957 100644 --- a/CoreCms.Net.IRepository/IBaseRepository.cs +++ b/CoreCms.Net.IRepository/IBaseRepository.cs @@ -32,7 +32,7 @@ namespace CoreCms.Net.IRepository T QueryById(object pkValue, bool blUseNoLock = false); /// - /// 根据主值查询单条数据 + /// 根据主值查询单条数据1 /// /// /// 是否使用WITH(NOLOCK) diff --git a/CoreCms.Net.Services/Bill/CoreCmsBillPaymentsServices.cs b/CoreCms.Net.Services/Bill/CoreCmsBillPaymentsServices.cs index d9b9451..1ffb475 100644 --- a/CoreCms.Net.Services/Bill/CoreCmsBillPaymentsServices.cs +++ b/CoreCms.Net.Services/Bill/CoreCmsBillPaymentsServices.cs @@ -627,7 +627,7 @@ namespace CoreCms.Net.Services var orderServices = container.ServiceProvider.GetService(); var jm = new WebApiCallBack(); - + var billPaymentInfo = await _dal.QueryByClauseAsync(p => p.paymentId == paymentId && p.money == money && p.status != (int)GlobalEnumVars.BillPaymentsStatus.Payed); @@ -643,14 +643,15 @@ namespace CoreCms.Net.Services billPaymentInfo.payedMsg = payedMsg; billPaymentInfo.tradeNo = tradeNo; billPaymentInfo.updateTime = DateTime.Now; - + await _dal.UpdateAsync(billPaymentInfo); if (status == (int)GlobalEnumVars.BillPaymentsStatus.Payed) { if (billPaymentInfo.type == (int)GlobalEnumVars.BillPaymentsType.Order) { //如果是订单类型,做支付后处理 - await orderServices.Pay(billPaymentInfo.sourceId, paymentCode, billPaymentInfo); + jm= await orderServices.Pay(billPaymentInfo.sourceId, paymentCode, billPaymentInfo); + } else if (billPaymentInfo.type == (int)GlobalEnumVars.BillPaymentsType.Recharge) { @@ -674,6 +675,11 @@ namespace CoreCms.Net.Services //::todo 其他业务逻辑 } } + + if (jm.status == false) + { + return jm; + } jm.status = true; jm.data = paymentId; jm.msg = "支付成功"; @@ -766,7 +772,8 @@ namespace CoreCms.Net.Services /// public async Task ToPay(string orderId, int type, string paymentCode) { - using (var container = _serviceProvider.CreateScope()) + using ( + var container = _serviceProvider.CreateScope()) { var orderServices = container.ServiceProvider.GetService(); diff --git a/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs b/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs index 1a960ac..95a6457 100644 --- a/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs +++ b/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs @@ -45,6 +45,7 @@ namespace CoreCms.Net.Services public class CoreCmsOrderServices : BaseServices, ICoreCmsOrderServices { private readonly ICoreCmsOrderRepository _dal; + private readonly ICoreCmsUserRepository _Userdal; private readonly IHttpContextAccessor _httpContextAccessor; private readonly ICoreCmsShipServices _shipServices; @@ -100,11 +101,11 @@ namespace CoreCms.Net.Services , ICoreCmsPaymentsServices paymentsServices , ICoreCmsBillRefundServices billRefundServices , ICoreCmsBillLadingServices billLadingServices - , ICoreCmsBillReshipServices billReshipServices, ICoreCmsMessageCenterServices messageCenterServices, ICoreCmsGoodsCommentServices goodsCommentServices, ISysTaskLogServices taskLogServices, ICoreCmsPromotionRecordServices promotionRecordServices, IRedisOperationRepository redisOperationRepository) + , ICoreCmsBillReshipServices billReshipServices, ICoreCmsMessageCenterServices messageCenterServices, ICoreCmsGoodsCommentServices goodsCommentServices, ISysTaskLogServices taskLogServices, ICoreCmsPromotionRecordServices promotionRecordServices, IRedisOperationRepository redisOperationRepository, ICoreCmsUserRepository Userdal) { this._dal = dal; base.BaseDal = dal; - + this._Userdal = Userdal; _httpContextAccessor = httpContextAccessor; _shipServices = shipServices; _cartServices = cartServices; @@ -1311,6 +1312,18 @@ namespace CoreCms.Net.Services //获取订单 var order = await _dal.QueryByClauseAsync(p => p.orderId == orderId && p.status == (int)GlobalEnumVars.OrderStatus.Normal); + //获取余额 + var balanceMoney = await _Userdal.QueryByIdAsync(order.userId); + + //若余额小于待付款金额 + if (order.goodsAmount > balanceMoney.balance) + { + jm.msg = "余额不足订单支付失败"; + jm.status = false; + + return jm; + } + if (order == null) { return jm; @@ -1345,6 +1358,11 @@ namespace CoreCms.Net.Services order.payStatus = (int)GlobalEnumVars.OrderPayStatus.Yes; jm.status = true; jm.msg = "订单支付成功"; + var newMoney = balanceMoney.balance - order.goodsAmount; + //支付成功后 + //更改余额信息 + var up = await _Userdal.UpdateAsync(p => new CoreCmsUser() { balance = newMoney }, p => p.id == order.userId); + //发票存储 if (order.taxType != (int)GlobalEnumVars.OrderTaxType.No) diff --git a/CoreShop - 快捷方式.lnk b/CoreShop - 快捷方式.lnk new file mode 100644 index 0000000..5b3517f Binary files /dev/null and b/CoreShop - 快捷方式.lnk differ