public void Post(long studentId, BalanceRefundOrderRequest request) { request.CreatorId = base.CurrentUser.UserId; request.CreatorName = base.CurrentUser.UserName; request.CreateTime = DateTime.Now; new BalanceRefundOrderServices(base.SchoolId, studentId).Transact(request, base.CurrentUser.CompanyId); }
/// <summary> /// 数据校验 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-12-05</para> /// </summary> /// <param name="refundRequest">余额退费请求对象</param> /// <exception cref="AMS.Core.BussinessException"> /// 异常ID: /// 15. 转出余额不足 /// 23. 该学生已经没有余额可退 /// </exception> private void CheckBeforeTransact(BalanceRefundOrderRequest refundRequest) { //1、获取学生的余额信息 decimal balance = new WalletService(this._schoolId, this._studentId, null).Balance; //检查用户是否还有余额 if (balance == 0) { throw new BussinessException((byte)ModelType.Order, 23); } //检查用户余额是否足够转出 if (refundRequest.RefundAmount > balance) { throw new BussinessException((byte)ModelType.Order, 15); } }
/// <summary> /// 保存余额退费的支付信息 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-08</para> /// </summary> /// <param name="unitOfWork">事务单元</param> /// <param name="refundRequest">余额退费请求对象</param> /// <param name="refundOrderId">退费订单Id</param> private void AddRefundPay(UnitOfWork unitOfWork, BalanceRefundOrderRequest refundRequest, long refundOrderId) { var rep = unitOfWork.GetCustomRepository <TblOdrRefundPayRepository, TblOdrRefundPay>(); TblOdrRefundPay refundPay = new TblOdrRefundPay { RefundPayId = IdGenerator.NextId(), SchoolId = this._schoolId, RefundOrderId = refundOrderId, RefundType = (int)RefundType.RefundToParent, BankName = refundRequest.BankName, BankCardNo = refundRequest.BankCardNo, BankUserName = refundRequest.BankUserName, Remark = refundRequest.Reason, CreateTime = refundRequest.CreateTime }; rep.Add(refundPay); }
/// <summary> /// 添加余额退费的其他扣费项 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-17</para> /// </summary> /// <param name="unitOfWork">事务单元</param> /// <param name="refundRequest">余额退费请求对象</param> /// <param name="refundOrderId">退费订单Id</param> private void AddRefundOrderCost(UnitOfWork unitOfWork, BalanceRefundOrderRequest refundRequest, long refundOrderId) { if (!refundRequest.OtherCostRequest.Any()) { return; } var rep = unitOfWork.GetCustomRepository <TblOdrRefundOrderCostRepository, TblOdrRefundOrderCost>(); List <TblOdrRefundOrderCost> refundOrderCosts = refundRequest.OtherCostRequest.Select(m => new TblOdrRefundOrderCost { Amount = m.CostAmount, SchoolId = this._schoolId, CostId = m.CostId, CreateTime = refundRequest.CreateTime, RefundClassCostId = IdGenerator.NextId(), RefundOrderId = refundOrderId }).ToList(); rep.Add(refundOrderCosts); }
/// <summary> /// 保存退费订单信息 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-08</para> /// </summary> /// <param name="unitOfWork">事务单元</param> /// <param name="refundRequest">余额退费请求对象</param> /// <param name="refundOrderId">退费订单Id</param> /// <returns></returns> private async Task <TblOdrRefundOrder> AddRefundOrder(UnitOfWork unitOfWork, BalanceRefundOrderRequest refundRequest, long refundOrderId) { var rep = unitOfWork.GetCustomRepository <TblOdrRefundOrderRepository, TblOdrRefundOrder>(); TblOdrRefundOrder refundOrder = new TblOdrRefundOrder { RefundOrderId = refundOrderId, SchoolId = this._schoolId, StudentId = this._studentId, OrderNo = base.CreateOrderNo(refundOrderId), OrderType = (int)OrderTradeType.BalanceOrder, TotalDeductAmount = this.GetOtherCostAmount(refundRequest.OtherCostRequest),//扣款项统计 refundRequest.TotalDeductAmount, Amount = refundRequest.RefundAmount, OrderStatus = (int)OrderStatus.Paid, CancelUserId = string.Empty, CancelDate = null, CancelRemark = string.Empty, CreatorId = refundRequest.CreatorId, CreatorName = refundRequest.CreatorName, CreateTime = refundRequest.CreateTime }; await rep.AddTask(refundOrder); return(refundOrder); }