public ApiResult <RechageAccountOutput> Recharge([FromBody] RechargeAccountInput input) { var result = Resolve <IAccountPayService>().BuyAsync(input); if (result.Result.Item1.Succeeded) { return(ApiResult.Result(result.Result.Item2)); } return(ApiResult.Failure <RechageAccountOutput>(null, "储值失败")); }
public ApiResult Save([FromBody] RechargeAccountInput model) { if (!this.IsFormValid()) { return(ApiResult.Failure(this.FormInvalidReason())); } var result = Resolve <IRechargeAccountLogService>().Add(model); return(ToResult(result)); }
/// <summary> /// 储值 /// </summary> /// <param name="input"></param> /// <returns></returns> public ServiceResult Add(RechargeAccountInput input) { #region 安全验证 if (input == null) { return(ServiceResult.FailedWithMessage("对象不能为空")); } if (input.Money <= 0) { return(ServiceResult.FailedWithMessage("金额不能小于等于0!")); } if (input.UserId.IsNullOrEmpty()) { return(ServiceResult.FailedWithMessage("用户id不能为空!")); } var user = Resolve <IUserService>().GetSingle(input.UserId); if (user == null) { return(ServiceResult.FailedWithMessage("用户不存在")); } #endregion 安全验证 var moneyConfigs = Resolve <IAutoConfigService>().MoneyTypes(); var moneyConfig = moneyConfigs.FirstOrDefault(s => s.Id == MoneyTypeConfig.CNY); var result = Resolve <IBillService>().Increase(user, moneyConfig, input.Money, "会员通过支付宝储值充值"); if (result.Succeeded) { return(ServiceResult.SuccessWithObject("充值成功")); } return(ServiceResult.FailedWithMessage("充值失败")); }
/// <summary> /// 储值 /// </summary> /// <param name="input"></param> /// <returns></returns> public void AddVoid(RechargeAccountInput input) { #region 安全验证 if (input == null) { Resolve <IPayService>().Log("参数不能为空!"); return; } if (input.Money <= 0) { Resolve <IPayService>().Log("金额必须大于0!"); return; } if (input.UserId.IsNullOrEmpty()) { Resolve <IPayService>().Log("用户id不能为空!"); return; } var user = Resolve <IUserService>().GetSingle(input.UserId); if (user == null) { Resolve <IPayService>().Log("用户不存在!"); return; } #endregion 安全验证 var moneyConfigs = Resolve <IAutoConfigService>().MoneyTypes(); var moneyConfig = moneyConfigs.FirstOrDefault(s => s.Id == MoneyTypeConfig.CNY); var res = Resolve <IBillService>().Increase(user, moneyConfig, input.Money, "会员通过支付宝储值充值"); Resolve <IPayService>().Log("储值执行结果!" + res.ReturnMessage); }
public Task <Tuple <ServiceResult, RechageAccountOutput> > BuyAsync(RechargeAccountInput rechargeAccount) { var input = rechargeAccount; #region 安全验证 if (rechargeAccount == null) { return(Task.FromResult(Tuple.Create(ServiceResult.Failure("对象不能为空"), new RechageAccountOutput()))); } if (rechargeAccount.Money <= 0) { return(Task.FromResult(Tuple.Create(ServiceResult.Failure("金额不能小于等于0!"), new RechageAccountOutput()))); } if (rechargeAccount.UserId <= 0) { return(Task.FromResult(Tuple.Create(ServiceResult.Failure("用户id不能为空!"), new RechageAccountOutput()))); } var user = Resolve <IUserService>().GetSingle(rechargeAccount.UserId); if (user == null) { return(Task.FromResult(Tuple.Create(ServiceResult.Failure("用户不存在"), new RechageAccountOutput()))); } #endregion 安全验证 var pay = new Pay { Status = PayStatus.WaiPay, Type = CheckoutType.Recharge, Amount = input.Money, UserId = input.UserId //EntityId = tradeInfo.Id.ToString() }; var ids = new List <long>(); try { //TODO 2019年9月25日 重构注释 //var tradeInfo = new Trade() { // Amount = input.Money, // CreateTime = DateTime.Now, // Extension = string.Empty, // MoneyTypeId = input.MoneyTypeId, // Type = TradeType.Recharge, // Status = TradeStatus.Pending, // UserId = input.UserId, // UserName = string.Empty, //}; //if (Resolve<ITradeService>().Add(tradeInfo)) { // var payExtension = new PayExtension { // TradeNo = tradeInfo.Serial, // Body = $"您正在企牛牛商城上储值,请认真核对账单信息", // UserName = user.GetUserName(), // AfterSuccess = new Linq.Dynamic.BaseServiceMethod { // Method = "AfterPaySuccess", // ServiceName = typeof(IAccountPayService).Name, // Parameter = tradeInfo.Id // }, // BuyerCount = 0, // GroupOverId = 0, // //ReturnUrl = $"/pages/index?path=successful_registration&id={tradeNo}", // //NotifyUrl = //不知道什么支付方式 // //RedirectUrl = $"/pages/index?path=successful_registration&id={model.Id}", // }; // //测试用的 // //AfterPaySuccess(payExtension.AfterSuccess.Parameter); // pay.EntityId = $"[{tradeInfo.Id.ToString()}]"; // ids.Add(tradeInfo.Id); // //payExtension.RedirectUrl = $"/pages/index?path=successful_registration&id={tradeNo}"; // //Linq.Dynamic.DynamicService.ResolveMethod(payExtension.AfterSuccess?.ServiceName, // // payExtension.AfterSuccess?.Method, // // payExtension.AfterSuccess?.Parameter); // //payExtension.ReturnUrl = "/user/account/wallet";//$"/pages/index?path=successful_registration&id={trade.Id}"; // payExtension.RedirectUrl = "/user/account/wallet";// $"/pages/index?path=successful_registration&id={trade.Id}"; // // var bookingSignup = Resolve<IBookingSignupService>().GetSingle(u => u.Id == model.BookingId); // // Resolve<ITradeService>().Add(trade); // // pay.EntityId = $"[\"{trade.Id.ToString()}\"]"; // // payExtension.TradeNo = trade.Serial; // pay.Extensions = payExtension.ToJsons(); // Resolve<IPayService>().Add(pay); //} else { // return Task.FromResult(Tuple.Create(ServiceResult.Failure("储值失败"), new RechageAccountOutput())); //} } catch (Exception ex) { return(Task.FromResult(Tuple.Create(ServiceResult.Failure("储值失败" + ex.Message), new RechageAccountOutput()))); //return ApiResult.Failure<object>("订单记录失败," + ex.Message); } var outPut = new RechageAccountOutput { PayId = pay.Id, PayAmount = input.Money, OrderIds = ids }; return(Task.FromResult(Tuple.Create(ServiceResult.Success, outPut))); }
public ServiceResult Add(RechargeAccountInput rechargeAccount) { #region 安全验证 if (rechargeAccount == null) { return(ServiceResult.FailedWithMessage("对象不能为空")); } if (rechargeAccount.UserName.IsNullOrEmpty()) { return(ServiceResult.FailedWithMessage("用户名不能为空!")); } var user = Resolve <IUserService>().GetSingleByUserNameOrMobile(rechargeAccount.UserName); if (user == null) { return(ServiceResult.FailedWithMessage("用户不存在")); } var config = Resolve <IAutoConfigService>().GetList <RechargeAccountConfig>(); var find = config.FirstOrDefault(r => r.Id == rechargeAccount.Id); if (find == null) { return(ServiceResult.FailedWithMessage("配置不存在")); } #endregion 安全验证 var moneyConfigs = Resolve <IAutoConfigService>().MoneyTypes(); var moneyConfig = moneyConfigs.FirstOrDefault(p => p.Id == MoneyTypeConfig.CNY); var result = Resolve <IBillService>().Increase(user, moneyConfig, find.ArriveAmount, "储值充值"); if (result.Succeeded) { // 积分,优惠券,消费额 if (find.DiscountAmount > 0) { moneyConfig = moneyConfigs.FirstOrDefault(p => p.Id == MoneyTypeConfig.Point); Resolve <IBillService>().Increase(user, moneyConfig, find.DiscountAmount, "储值充值赠送积分"); } if (find.GiveChangeAmount > 0) { moneyConfig = moneyConfigs.FirstOrDefault(p => p.Id == MoneyTypeConfig.ShopAmount); Resolve <IBillService>().Increase(user, moneyConfig, find.GiveChangeAmount, "储值充值赠送消费额"); } if (find.GiveBuyAmount > 0) { moneyConfig = moneyConfigs.FirstOrDefault(p => p.Id == MoneyTypeConfig.Preferential); Resolve <IBillService>().Increase(user, moneyConfig, find.GiveBuyAmount, "储值充值赠送优惠券"); } var rechargeModel = new RechargeAccountLog { ArriveAmount = find.ArriveAmount, DiscountAmount = find.DiscountAmount, GiveBuyAmount = find.GiveBuyAmount, GiveChangeAmount = find.GiveChangeAmount, CreateTime = DateTime.Now, StoreAmount = find.StoreAmount, UserId = user.Id }; Resolve <IRechargeAccountLogService>().Add(rechargeModel); return(ServiceResult.SuccessWithObject("充值成功")); } return(ServiceResult.FailedWithMessage("充值失败")); }