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); } } }
public static bool SellerCharge(string sellerId, decimal balance, string operatorId) { if (sellerId.IsEmpty()) { throw new ArgumentNullException("sellerId"); } if (operatorId.IsEmpty()) { throw new ArgumentNullException("operatorId"); } if (balance <= 0) { throw new ArgumentNullException("balance"); } IParkSeller factory = ParkSellerFactory.GetFactory(); ParkSeller model = factory.QueryBySellerId(sellerId); if (model == null) { throw new MyException("商家不存在"); } using (DbOperator dbOperator = ConnectionManager.CreateConnection()) { try { dbOperator.BeginTransaction(); ParkOrder order = ParkOrderServices.MarkSellerChargeOrder(model, balance, operatorId, OrderSource.ManageOffice, OrderPayWay.Cash, dbOperator); if (order == null) { throw new MyException("创建充值订单失败"); } bool result = factory.SellerRecharge(sellerId, balance, dbOperator); if (!result) { throw new MyException("取消暂停计划失败"); } dbOperator.CommitTransaction(); ParkSeller newSeller = factory.QueryBySellerId(sellerId); if (newSeller != null) { OperateLogServices.AddOperateLog(OperateType.Update, string.Format("sellerId:{0},充值:{1},余额为:{2}", sellerId, balance, newSeller.Balance)); } return(result); } catch (Exception ex) { dbOperator.RollbackTransaction(); throw ex; } } }