public BaseResponse <string> RefundApply(RefundRecordFilter filter) { BaseResponse <string> response = new BaseResponse <string>(); try { //查看工单状态 var taskRepository = unitOfWork.GetRepository <DC_Task>(); var task = taskRepository.dbSet.FirstOrDefault((q) => q.ServiceOrderID == filter.ServiceOrderID); if (task != null && task.Status == Enum.GetName(typeof(TaskStatus), TaskStatus.Execution)) { response.IsSuccess = false; response.ResultMessage = "服务人员已签到,无法取消订单及退款,请联系管理员进行处理"; return(response); } unitOfWork.BeginTransaction(); var orderModel = base.Get <DC_ServiceOrder, ServiceOrderModel>((q) => q.ServiceOrderID == filter.ServiceOrderID); if (orderModel != null) { RefundRecordModel refundRecordModel = Mapper.DynamicMap <RefundRecordModel>(filter); refundRecordModel.CreateBy = 0; refundRecordModel.CreateTime = DateTime.Now; refundRecordModel.ModifiedTime = DateTime.Now; refundRecordModel.Status = Enum.GetName(typeof(RefundStatus), RefundStatus.Wait); base.Save <DC_RefundRecord, RefundRecordModel>(refundRecordModel, (q) => q.ID == refundRecordModel.ID); } else { response.IsSuccess = false; response.ResultMessage = "该订单不存在,请联系管理员进行处理"; return(response); } unitOfWork.Commit(); response.IsSuccess = true; } catch (Exception ex) { response.IsSuccess = false; response.ResultMessage = ex.Message; } return(response); }
public IHttpActionResult RefundApply(RefundRecordFilter filter) { var response = service.RefundApply(filter); return(Ok(response)); }
public BaseResponse AuditRefund(RefundRecordFilter filter) { BaseResponse <string> response = new BaseResponse <string>(); try { unitOfWork.BeginTransaction(); var serviceOrderRepository = unitOfWork.GetRepository <DC_ServiceOrder>(); var feeDetailRepository = unitOfWork.GetRepository <DC_FeeDetail>(); var taskRepository = unitOfWork.GetRepository <DC_Task>(); var refundRepository = unitOfWork.GetRepository <DC_RefundRecord>(); var residentServicePlanItemRepository = unitOfWork.GetRepository <DC_ResidentServicePlanItem>(); var serviceOrder = serviceOrderRepository.dbSet.FirstOrDefault((q) => q.ServiceOrderID == filter.ServiceOrderID); if (serviceOrder != null) { //保存审核信息 var refund = refundRepository.dbSet.FirstOrDefault((q) => q.ID == filter.ID); if (refund != null) { refund.Status = filter.Status; refund.Reply = filter.Reply; refund.ModifiedBy = 0; refund.ModifiedTime = DateTime.Now; refundRepository.Update(refund); } //如果同意退款 if (filter.Status == Enum.GetName(typeof(RefundStatus), RefundStatus.Agree)) { //取消订单 serviceOrder.IsDeleted = true; serviceOrder.PaymentStatus = null; serviceOrder.OrderStatus = null; serviceOrder.ModifiedBy = 0; serviceOrder.ModifiedTime = DateTime.Now; serviceOrderRepository.Update(serviceOrder); //退回金额 var depositRepository = unitOfWork.GetRepository <DC_Deposit>(); var deposit = depositRepository.dbSet.FirstOrDefault(it => it.ResidentID == serviceOrder.ResidentID); if (deposit != null) { deposit.TotalConSpeMonth -= serviceOrder.Price.Value; depositRepository.Update(deposit); } //取消工单 var task = taskRepository.dbSet.FirstOrDefault((q) => q.ServiceOrderID == filter.ServiceOrderID); if (task != null) { task.IsCancel = true; task.Status = null; task.ModifiedBy = 0; task.ModifiedTime = DateTime.Now; taskRepository.Update(task); } if (serviceOrder.OrderType == Enum.GetName(typeof(OrderType), OrderType.Group)) { var servicePlanItem = residentServicePlanItemRepository.Get(serviceOrder.ResidentServicePlanItemID); if (servicePlanItem != null) { servicePlanItem.RestTimes = (servicePlanItem.RestTimes.HasValue ? (servicePlanItem.RestTimes + 1) : 1); residentServicePlanItemRepository.Update(servicePlanItem); } } else { //资金明细 var feeDetail = new DC_FeeDetail(); feeDetail.FeeNo = base.GenerateCode(EnumCodeKey.FeeDetailCode, EnumCodeRule.YearMonthDay, "F", 6, filter.OrganizationID); feeDetail.FeeName = "订单退款"; feeDetail.TotalPrice = serviceOrder.Price; feeDetail.ResidentID = serviceOrder.ResidentID; feeDetail.FeeDate = DateTime.Now; feeDetailRepository.Insert(feeDetail); } } } else { response.IsSuccess = false; response.ResultMessage = "该订单不存在,请联系管理员进行处理"; return(response); } unitOfWork.Commit(); response.IsSuccess = true; } catch (Exception ex) { response.IsSuccess = false; response.ResultMessage = ex.Message; } return(response); }
public IHttpActionResult SaveAudit(RefundRecordFilter filter) { var response = service.AuditRefund(filter); return(Ok(response)); }