/// <summary> /// 订金充值校验 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-10-30 </para> /// </summary> /// <param name="request">订金充值请求数据</param> /// <exception cref="BussinessException"> /// 异常ID:1,定金充值金额必须大于 /// 异常ID:2,预报名定金最多可以输入2000元 /// 异常ID:3,游学营定金最多可输入4万元 /// 异常ID:4,请选择付款方式 /// </exception> private void Verification(DepositOrderAddRequest request) { // 1、订金金额 if (request.Amount <= 0) { throw new BussinessException((byte)ModelType.Cash, 1); } // 2、订金用途 if (request.UsesType == UsesType.SignUp && request.Amount > 2000) { throw new BussinessException((byte)ModelType.Cash, 2); } // 游学营订金充值不能大于4万 else if (request.UsesType == UsesType.StudyCamp && request.Amount > 40000) { throw new BussinessException((byte)ModelType.Cash, 3); } // 3、付款方式 if (request.PayType <= 0) { throw new BussinessException((byte)ModelType.Cash, 4); } }
/// <summary> /// 添加订金 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-10-30 </para> /// </summary> /// <param name="request">订金充值实体</param> /// <param name="payeeId">收银人编号</param> /// <param name="payeeName">收银人</param> /// <returns>返回订金编号</returns> public string Add(DepositOrderAddRequest request, string payeeId, string payeeName) { lock (LocalThreadLock.GetLockKeyName(LockKeyNames.LOCK_DEPOSITORDERADD, this._schoolId, request.StudentId.ToString())) { // 1、数据合法性校验 Verification(request); long depositOrderId = IdGenerator.NextId(); // 2、准备数据 TblOdrDepositOrder odrDepositOrder = this.SetOdrDepositOrder(request, payeeId, payeeName, depositOrderId); // 3、资金调用 DepositOrderTrade orderTrade = new DepositOrderTrade(odrDepositOrder); // 4、添加事务 using (UnitOfWork unitOfWork = new UnitOfWork()) { try { unitOfWork.BeginTransaction(); TradeService tradeService = new TradeService(orderTrade, unitOfWork); tradeService.Trade(); unitOfWork.GetCustomRepository <TblOdrDepositOrderRepository, TblOdrDepositOrder>().AddTask(odrDepositOrder).Wait(); unitOfWork.CommitTransaction(); return(depositOrderId.ToString()); } catch (Exception ex) { unitOfWork.RollbackTransaction(); throw ex; } } } }
/// <summary> /// 订金充值 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-10-30 </para> /// </summary> /// <param name="request">订金充值实体</param> /// <param name="payeeId">收银人编号</param> /// <param name="payeeName">收银人姓名</param> /// <param name="depositOrderId">订金编号</param> /// <returns>返回订金实体信息</returns> private TblOdrDepositOrder SetOdrDepositOrder(DepositOrderAddRequest request, string payeeId, string payeeName, long depositOrderId) { TblOdrDepositOrder odrDepositOrder = new TblOdrDepositOrder { DepositOrderId = depositOrderId, StudentId = request.StudentId, SchoolId = _schoolId, OrderNo = CreateOrderNo(depositOrderId), PayDate = DateTime.Now, UsesType = (int)request.UsesType, Amount = request.Amount, PayeeId = payeeId, Payee = payeeName, PayType = (int)request.PayType, Remark = request.Remark, OrderStatus = (int)OrderStatus.Paid, //-1订单取消, 0待付款,1已付款/正常 CancelUserId = "", CancelRemark = "", CreateTime = DateTime.Now }; return(odrDepositOrder); }
public string Post(DepositOrderAddRequest request) { return(new DepositOrderService(base.SchoolId).Add(request, base.CurrentUser.UserId, base.CurrentUser.UserName)); }