public IHttpActionResult GetResidentByReferenceId(string referenceId) { if (string.IsNullOrEmpty(referenceId)) { throw new ArgumentNullException(nameof(referenceId)); } var loggedInUser = HttpContext.Current.User as SecurityPrincipal; logger.Info($"Enquiry requested by {loggedInUser.ForeName}"); var resident = _residentService.GetResident(new Guid(referenceId)); if (resident == null) { logger.Warn($"No resident found for {referenceId}"); return(NotFound()); } var result = resident.ToResidentResponseType(); return(Ok(result)); }
public IHttpActionResult Get(int residentID) { var response = service.GetResident(residentID); return(Ok(response)); }
public BaseResponse <ServiceOrderModel> OrderSettlement(int serviceOrderID, string payment) { var response = new BaseResponse <ServiceOrderModel>(); var serviceOrderRepository = unitOfWork.GetRepository <DC_ServiceOrder>(); var feeDetailRepository = unitOfWork.GetRepository <DC_FeeDetail>(); var taskRepository = unitOfWork.GetRepository <DC_Task>(); var depositRepository = unitOfWork.GetRepository <DC_Deposit>(); var serviceItemRepository = unitOfWork.GetRepository <DC_ServiceItem>(); var serviceItemCategoryRepository = unitOfWork.GetRepository <DC_ServiceItemCategory>(); var serOrdSerItRepository = unitOfWork.GetRepository <DC_SerOrdSerIt>(); var orderCItemRepository = unitOfWork.GetRepository <DC_OrderCItem>(); var empRepository = unitOfWork.GetRepository <ORG_Employee>(); var serviceOrder = serviceOrderRepository.dbSet.FirstOrDefault((q) => q.ServiceOrderID == serviceOrderID); unitOfWork.BeginTransaction(); if (serviceOrder == null) { response.IsSuccess = false; response.ResultMessage = "该订单不存在"; return(response); } else { serviceOrder.Payment = payment; } //支付结果 IResidentService residentService = IOCContainer.Instance.Resolve <IResidentService>(); var resident = residentService.GetResident(serviceOrder.ResidentID); //如果是会员卡支付,则校验会员卡余额 var deposit = depositRepository.dbSet.FirstOrDefault(it => it.ResidentID == serviceOrder.ResidentID); if (serviceOrder.Price > 0 && serviceOrder.OrderType != Enum.GetName(typeof(OrderType), OrderType.Group) && payment == Enum.GetName(typeof(Payment), Payment.ResidentCard)) { if (deposit != null) { var remainingMoney = deposit.Amount - deposit.TotalConSpeMonth; //支付成功 if (serviceOrder.Price <= remainingMoney) { deposit.TotalConSpeMonth = deposit.TotalConSpeMonth + serviceOrder.Price.Value; depositRepository.Update(deposit); var feeDetail = new DC_FeeDetail(); feeDetail.FeeNo = base.GenerateCode(EnumCodeKey.FeeDetailCode, EnumCodeRule.YearMonthDay, "F", 6, resident.Data.OrganizationID); feeDetail.ServiceOrderID = serviceOrder.ServiceOrderID; feeDetail.FeeName = serviceOrder.OrderTitle; feeDetail.TotalPrice = -1 * serviceOrder.Price; feeDetail.FeeDate = DateTime.Now; feeDetail.ResidentID = serviceOrder.ResidentID; feeDetailRepository.Insert(feeDetail); } else { response.IsSuccess = false; } } else { response.IsSuccess = false; } if (!response.IsSuccess) { response.ResultMessage = "账户期初余额不足,请充值后再下单,或选择其他支付方式下单。"; return(response); } } serviceOrder.PaymentStatus = serviceOrder.Payment == Enum.GetName(typeof(Payment), Payment.Cash) ? Enum.GetName(typeof(PaymentStatus), PaymentStatus.Unpaid) : Enum.GetName(typeof(PaymentStatus), PaymentStatus.Paid); serviceOrder.OrderStatus = Enum.GetName(typeof(OrderStatus), serviceOrder.SelEmployeeID.HasValue ? OrderStatus.Delivered : OrderStatus.Undelivered); //送货上门的情况下生成工单 if (serviceOrder.OrderType == Enum.GetName(typeof(OrderType), OrderType.Commodity) && serviceOrder.Delivery == Enum.GetName(typeof(Delivery), Delivery.SelfPickup)) { serviceOrder.OrderStatus = Enum.GetName(typeof(OrderStatus), OrderStatus.Delivered); } else { var task = taskRepository.dbSet.FirstOrDefault((q) => q.ServiceOrderID == serviceOrder.ServiceOrderID); if (task == null) { task = new DC_Task(); task.OrganizationID = resident.Data.OrganizationID; task.TaskNo = base.GenerateCode(EnumCodeKey.TaskCode, EnumCodeRule.YearMonthDay, "T", 4, task.OrganizationID); task.ServiceOrderID = serviceOrder.ServiceOrderID; task.SONo = serviceOrder.SONo; task.Price = serviceOrder.Price.Value; task.AppointmentTime = serviceOrder.Otime; task.Address = serviceOrder.ServiceAddress; task.Lng = serviceOrder.Lng; task.Lat = serviceOrder.Lat; task.Remark = serviceOrder.Remark; task.ServiceType = serviceOrder.OrderType; task.ServiceName = serviceOrder.OrderTitle; task.PersonID = resident.Data.PersonID; task.PersonName = resident.Data.PersonName; task.Sex = resident.Data.Sex; task.Phone = serviceOrder.ContactPhone; task.Status = Enum.GetName(typeof(TaskStatus), TaskStatus.Wait); if (serviceOrder.SelEmployeeID.HasValue) { var emp = empRepository.Get(serviceOrder.SelEmployeeID.Value); task.Status = Enum.GetName(typeof(TaskStatus), TaskStatus.Assign); task.EmployeeId = serviceOrder.SelEmployeeID.Value; task.EmployeeName = emp.EmpName; } task.CreatedBy = 0; task.CreatedTime = DateTime.Now; task.ModifiedTime = DateTime.Now; taskRepository.Insert(task); } else { task.Price = serviceOrder.Price; task.AppointmentTime = serviceOrder.Otime; task.Address = serviceOrder.ServiceAddress; task.Lng = serviceOrder.Lng; task.Lat = serviceOrder.Lat; task.Remark = serviceOrder.Remark; task.Phone = serviceOrder.ContactPhone; task.ModifiedBy = 0; task.ModifiedTime = DateTime.Now; taskRepository.Update(task); } } serviceOrder.ModifiedTime = DateTime.Now; serviceOrderRepository.Update(serviceOrder); response.Data = Mapper.DynamicMap <ServiceOrderModel>(serviceOrder); unitOfWork.Commit(); return(response); }