/// <summary> /// 添加已核对的未交接核对信息 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-16</para> /// </summary> /// <param name="request">核对未交接数据对象</param> /// <param name="status">订单交接核对状态</param> /// <param name="orderInfo">订金信息对象</param> /// <returns>订单交接核对明细Id</returns> private long AddDepositUnhandover(OrderHandleAddRequest request, HandoverStatus status, TblOdrDepositOrder orderInfo) { var entity = new TblFinOrderHandoverDetail { OrderHandoverDetailId = IdGenerator.NextId(), OrderId = orderInfo.DepositOrderId, OrderNo = orderInfo.OrderNo, OrderTradeType = request.OrderTradeType, PayType = request.PayType, PayAmount = request.PayAmount.Value, HandoverStatus = (int)status, PersonalId = request.PersonalId, PayDate = request.PayDate, SchoolId = request.SchoolId, UseBalanceAmount = request.UseBalanceAmount ?? 0, CreateTime = DateTime.Now, CreatorId = request.CreatorId, CreatorName = request.CreatorName, StudentId = orderInfo.StudentId, Remark = orderInfo.Remark, TotalDiscountFee = 0 }; _detailRepository.Value.Add(entity); return(entity.OrderHandoverDetailId); }
public OrderHandleAddResponse MarkOrderProblem(OrderHandleAddRequest request) { request.CreatorId = base.CurrentUser.UserId; request.CreatorName = base.CurrentUser.UserName; request.SchoolId = base.SchoolId; return(new OrderHandoverService(base.SchoolId).MarkOrderProblem(request)); }
/// <summary> /// 对未交接订单进行核对 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-16</para> /// </summary> /// <param name="request">核对未交接数据对象</param> /// <returns>订单交接核对明细Id</returns> /// <exception cref="BussinessException"> /// 异常ID: /// 13. 此单信息核对有误 /// 25. 订单已作废,不可核对 /// </exception> public long Handle(OrderHandleAddRequest request) { //1.获取定金的订单交接核对明细 var handoverDetailList = _detailRepository.Value.GetDetailsByOrderId(new List <long> { request.OrderId }); //如存在已核对/已交接的收款交接明细,则不需要再核对订单,直接返回订单交接核对明细Id if (handoverDetailList != null && handoverDetailList.Any(a => a.HandoverStatus == (int)HandoverStatus.Checked || a.HandoverStatus == (int)HandoverStatus.Handover)) { return(handoverDetailList.FirstOrDefault().OrderHandoverDetailId); } //2.数据校验 检查付款方式和金额跟订单是否一致,如不一致,则标志问题单 var orderInfo = _depositRepository.Value.GetOdrDepositOrderById(request.OrderId).Result; //定金订单信息 CheckData(request, x => orderInfo.OrderStatus == (int)OrderStatus.Cancel, 25); //订单状态检查 CheckData(request, x => x.PayType != orderInfo.PayType, 13); //付款方式 CheckData(request, x => !x.PayAmount.HasValue || (x.PayAmount.HasValue && x.PayAmount.Value != orderInfo.Amount), 13); //金额跟订单是否一致 //3.如有问题单,则将其更新为已核对状态 var handoverDetail = handoverDetailList.FirstOrDefault(a => a.HandoverStatus == (int)HandoverStatus.Problematic); if (handoverDetail != null) { return(UpdateUnhandover(request, handoverDetail)); } //4.订单核对 return(AddDepositUnhandover(request, HandoverStatus.Checked, orderInfo)); }
/// <summary> /// 对未交接订单进行核对 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-16</para> /// </summary> /// <param name="request">核对未交接数据对象</param> /// <returns>订单交接核对明细Id</returns> /// <exception cref="AMS.Core.BusinessException"> /// 异常ID: /// 13. 此单信息核对有误 /// 25. 订单已作废,不可核对 /// </exception> public long Handle(OrderHandleAddRequest request) { //1.获取报班订单交接核对明细 var handoverDetailList = _detailRepository.Value.GetDetailsByOrderId(new List <long> { request.OrderId }); //获取报名的订单交接核对明细,如果已存在,则直接返回订单交接核对明细Id if (handoverDetailList != null && handoverDetailList.Any(a => a.HandoverStatus == (int)HandoverStatus.Checked || a.HandoverStatus == (int)HandoverStatus.Handover)) { return(handoverDetailList.FirstOrDefault().OrderHandoverDetailId); } //2.数据校验 检查付款方式和金额跟订单是否一致,如不一致,则标志问题单 var orderInfo = _enrollRepository.Value.GetOrderById(request.OrderId); //报班订单信息 CheckData(request, x => orderInfo.OrderStatus == (int)OrderStatus.Cancel, 25); //订单状态检查 CheckData(request, x => x.PayType != orderInfo.PayType, 13); //付款方式 CheckData(request, x => (x.UseBalanceAmount ?? 0) != orderInfo.UseBalance, 13); //与订单的使用余额是否一致 CheckData(request, x => !x.PayAmount.HasValue || (x.PayAmount.HasValue && x.PayAmount.Value != orderInfo.PayAmount), 13); //金额跟订单是否一致 //3.如有问题单,则将其更新为已核对状态 var handoverDetail = handoverDetailList.FirstOrDefault(a => a.HandoverStatus == (int)HandoverStatus.Problematic); if (handoverDetail != null) { return(UpdateUnhandover(request, handoverDetail)); } //4.订单核对 return(AddEnrollUnhandover(request, HandoverStatus.Checked, orderInfo)); }
/// <summary> /// 将订单设为问题单 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-16</para> /// </summary> /// <param name="request">核对未交接的请求对象</param> /// <returns>收款交接要添加的订单信息</returns> public OrderHandleAddResponse MarkOrderProblem(OrderHandleAddRequest request) { //进行核对 long handoverDetailId = this.GetOrderHandover(request.OrderTradeType).MarkOrderProblem(request); //上传附件并返回下一订单 return(AddAttachmentAndReturnNextOrder(handoverDetailId, request)); }
/// <summary> /// 数据校验 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-16</para> /// </summary> /// <param name="source">数据源</param> /// <param name="where">表达式</param> /// <param name="exceptionId">异常Id</param> /// <exception cref="AMS.Core.BussinessException"> /// 异常ID:exceptionId /// </exception> protected virtual void CheckData(OrderHandleAddRequest source, Func <OrderHandleAddRequest, bool> where, ushort exceptionId) { if (source == null) { return; } if (where (source)) { throw new BussinessException((byte)ModelType.Order, exceptionId); } }
/// <summary> /// 将问题单的收款交接更新成已交接 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-20</para> /// </summary> /// <param name="request">实体请求参数</param> /// <param name="handoverDetail">交接明细</param> /// <returns>订单交接核对明细Id</returns> protected virtual long UpdateUnhandover(OrderHandleAddRequest request, TblFinOrderHandoverDetail handoverDetail) { handoverDetail.PayDate = request.PayDate; handoverDetail.PayType = request.PayType; handoverDetail.PayAmount = request.PayAmount.Value; handoverDetail.UseBalanceAmount = request.UseBalanceAmount ?? 0; handoverDetail.HandoverStatus = (int)HandoverStatus.Checked; _detailRepository.Value.Update(handoverDetail); return(handoverDetail.OrderHandoverDetailId); }
/// <summary> /// 将订单设为问题单 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-16</para> /// </summary> /// <param name="request">核对未交接数据对象</param> /// <returns>订单交接核对明细Id</returns> public long MarkOrderProblem(OrderHandleAddRequest request) { //获取定金的订单交接核对明细,如果已存在,则直接返回订单交接核对明细Id var handoverDetail = _detailRepository.Value.GetDetailsByOrderId(new List <long> { request.OrderId }); if (handoverDetail != null && handoverDetail.Count > 0) { return(handoverDetail.FirstOrDefault().OrderHandoverDetailId); } //获取订单id对应的定金订单信息 var orderInfo = _depositRepository.Value.GetOdrDepositOrderById(request.OrderId).Result; //添加有问题的未交接核对信息 return(AddDepositUnhandover(request, HandoverStatus.Problematic, orderInfo)); }
/// <summary> /// 上传附件并返回下一订单 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-19</para> /// </summary> /// <param name="handoverDetailId">添加收款未交接Id</param> /// <param name="request">核对未交接的请求对象</param> /// <returns>收款交接要添加的订单信息</returns> private OrderHandleAddResponse AddAttachmentAndReturnNextOrder(long handoverDetailId, OrderHandleAddRequest request) { //3、保存余额退费上传的附件 AddAttachment(request.AttachmentUrlList, handoverDetailId); //先获取报名订单 return(GetNextHandoverOrder(request.PersonalId, request.OrderId)); }