private static bool SyncSellerRecharge(OnlineOrder order, OrderPayWay payWay) { using (DbOperator dbOperator = ConnectionManager.CreateConnection()) { IParkSeller factory = ParkSellerFactory.GetFactory(); ParkSeller model = factory.QueryBySellerId(order.InOutID); if (model == null) { throw new MyException("商家不存在"); } dbOperator.BeginTransaction(); try { ParkOrder pkOrder = ParkOrderServices.MarkSellerChargeOrder(model, order.Amount, model.SellerID, OrderSource.WeiXin, payWay, dbOperator); if (order == null) { throw new MyException("创建充值订单失败"); } bool result = factory.SellerRecharge(model.SellerID, order.Amount, dbOperator); if (!result) { throw new MyException("商家充值失败"); } dbOperator.CommitTransaction(); return(result); } catch (Exception ex) { dbOperator.RollbackTransaction(); ExceptionsServices.AddExceptions(ex, "商家微信充值通知失败,订单编号:" + order.OrderID); return(false); } } }
/// <summary> /// 构建商家充值充值订单 /// </summary> /// <param name="seller">商家信息</param> /// <param name="chargeBalance">充值金额</param> /// <param name="systemId">系统编号</param> /// <param name="loginUserRecordId">登录用户编号</param> /// <returns></returns> private static ParkOrder GetSellerChargeOrder(ParkSeller seller, decimal chargeBalance, string operatorId, OrderSource orderSource, OrderPayWay payWay) { ParkOrder order = new ParkOrder(); order.OrderNo = IdGenerator.Instance.GetId().ToString(); order.Status = 1; order.OrderSource = orderSource; order.Amount = chargeBalance; order.PayAmount = chargeBalance; order.Remark = "商家充值"; order.OrderTime = DateTime.Now; order.OrderType = OrderType.BusinessRecharge; order.TagID = seller.SellerID; order.PayWay = payWay; order.UserID = operatorId; order.OldMoney = seller.Balance; order.NewMoney = chargeBalance + seller.Balance; order.PayTime = DateTime.Now; return(order); }
/// <summary> /// 生存商家充值订单 /// </summary> /// <param name="seller">商家信息</param> /// <param name="chargeBalance">充值金额</param> /// <param name="operatorId">操作者编号</param> /// <param name="dbOperator"></param> /// <returns></returns> public static ParkOrder MarkSellerChargeOrder(ParkSeller seller, decimal chargeBalance, string operatorId, OrderSource orderSource, OrderPayWay payWay, DbOperator dbOperator) { ParkOrder order = GetSellerChargeOrder(seller, chargeBalance, operatorId, orderSource, payWay); IParkOrder factory = ParkOrderFactory.GetFactory(); return(factory.Add(order, dbOperator)); }