public IHttpActionResult Post(ServiceOrderModel baseRequest) { baseRequest.OrderFrom = Enum.GetName(typeof(OrderFrom), OrderFrom.Web); baseRequest.OrganizationID = SecurityHelper.CurrentPrincipal.OrgId; var response = service.SaveOrder(baseRequest); return(Ok(response)); }
public HttpResponseMessage Post([FromBody] ServiceOrderModel model) { //获取订单明细对应的商品 var products = _productService.GetProductsByCondition(new ProductSearchCondition { Ids = model.Details.Select(c => c.Product.Id).ToArray(), Type = EnumProductType.Service }).ToList().Select(p => new ServiceOrderDetailEntity { Count = model.Details.First(d => d.Product.Id == p.Id).Count, Product = p, Price = p.Price }).ToList(); if (products.Count < 1) { return(PageHelper.toJson(PageHelper.ReturnValue(false, "生成订单失败,无法找到服务商品"))); } //订单编号 Random rd = new Random(); var orderNumber = "S" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + rd.Next(100, 999); //订单实体 var entity = new ServiceOrderEntity { OrderNo = orderNumber, AddTime = DateTime.Now, AddUser = _workContext.CurrentUser.Id, Flee = products.Sum(c => (c.Count * c.Price)), Address = _memberAddressService.GetMemberAddressById(model.MemberAddressId), Servicetime = model.Servicetime, Remark = model.Remark, Details = products, Status = EnumServiceOrderStatus.Created, UpdUser = _workContext.CurrentUser.Id, UpdTime = DateTime.Now, AddMember = _memberService.GetMemberByUserId(_workContext.CurrentUser.Id) }; //保存 if (_serviceOrderService.Create(entity).Id > 0) { //TODO:回掉接口写到Msg里,完成回掉方法 return(PageHelper.toJson(PageHelper.ReturnValue(true, "null", new ServiceOrderModel() { Id = entity.Id, OrderNo = entity.OrderNo, Flee = entity.Flee, Addtime = entity.AddTime }))); } return(PageHelper.toJson(PageHelper.ReturnValue(false, "生成服务订单失败"))); }
public bool Put([FromBody] ServiceOrderModel model) { var entity = _serviceOrderService.GetServiceOrderById(model.Id); if (entity == null) { return(false); } entity.Status = model.Status; entity.UpdUser = _workContext.CurrentUser.Id; entity.UpdTime = DateTime.Now; return(_serviceOrderService.Update(entity) != null); }
public IHttpActionResult Post(ServiceOrderModel baseRequest) { baseRequest.OrderFrom = Enum.GetName(typeof(OrderFrom), OrderFrom.Web); var response = service.SaveOrder(baseRequest); if (response.IsSuccess) { var orderPayRs = service.OrderSettlement(response.Data.ServiceOrderID, response.Data.Payment); response.IsSuccess = orderPayRs.IsSuccess; response.ResultMessage = orderPayRs.ResultMessage; } return(Ok(response)); }
public ServiceOrderModel Get(int id) { var currentUser = (UserBase)_workContext.CurrentUser; var entity = _serviceOrderService.GetServiceOrderById(id); if (entity == null) { return(null); } if (!currentUser.UserRoles.ToList() .Exists(c => c.Role.RoleName == "superAdmin" || c.Role.RoleName == "admin") && entity.AddUser != currentUser.Id) { return(null); } var model = new ServiceOrderModel { Id = entity.Id, OrderNo = entity.OrderNo, Addtime = entity.AddTime, AddUser = entity.AddUser, Flee = entity.Flee, Address = entity.Address.Address, Servicetime = entity.Servicetime, Remark = entity.Remark, Details = entity.Details.Select(c => new ServiceOrderDetailModel() { Count = c.Count, Id = c.Id, Price = c.Price, Product = new ProductModel { Id = c.Product.Id, Name = c.Product.Name, MainImg = c.Product.MainImg } }).ToList(), Status = entity.Status, UpdUser = entity.UpdUser, UpdTime = entity.UpdTime, MemberAddressId = entity.Address.Id }; return(model); }
public IHttpActionResult SaveOrder([FromBody] ServiceOrderModel baseRequest) { BaseResponse <ServiceOrderModel> response = new BaseResponse <ServiceOrderModel>(); if (baseRequest != null) { baseRequest.OrderFrom = Enum.GetName(typeof(OrderFrom), OrderFrom.App); response = service.SaveOrder(baseRequest); if (response.IsSuccess && response.Data.OrderType == Enum.GetName(typeof(OrderType), OrderType.Group)) { var orderPayRs = service.OrderSettlement(response.Data.ServiceOrderID, response.Data.Payment); response.IsSuccess = orderPayRs.IsSuccess; response.ResultMessage = orderPayRs.ResultMessage; } return(Ok(response)); } else { response.ResultCode = 501; response.ResultMessage = "输入的参数不正确"; response.IsSuccess = false; return(Ok(response)); } }
public BaseResponse <ServiceOrderModel> SaveOrder(ServiceOrderModel request) { var response = new BaseResponse <ServiceOrderModel>(); var responseData = new List <ServiceOrderModel>(); var serviceItemCategoryRepository = unitOfWork.GetRepository <DC_ServiceItemCategory>(); var serviceOrderRepository = unitOfWork.GetRepository <DC_ServiceOrder>(); var serOrdSerItRepository = unitOfWork.GetRepository <DC_SerOrdSerIt>(); var serviceItemRepository = unitOfWork.GetRepository <DC_ServiceItem>(); var residentServicePlanItemRepository = unitOfWork.GetRepository <DC_ResidentServicePlanItem>(); var orderCItemRepository = unitOfWork.GetRepository <DC_OrderCItem>(); int?servicePlantItemID = null; unitOfWork.BeginTransaction(); //套餐预约时,需扣除套餐内次数 if (request.OrderType == Enum.GetName(typeof(OrderType), OrderType.Group)) { var nowDate = DateTime.Now; var servicePlanItem = new DC_ResidentServicePlanItem(); if (request.ResidentServicePlanItemID.HasValue) { var servicePlanRepository = from a in unitOfWork.GetRepository <DC_ResidentServicePlan>().dbSet.Where(a => a.ResidentID == request.ResidentID && a.SStartDate <= nowDate && a.SEndDate >= nowDate) join b in unitOfWork.GetRepository <DC_ResidentServicePlanItem>().dbSet.Where(a => a.RestTimes > 0 && a.ResidentServicePlanItemID == request.ResidentServicePlanItemID) on a.ResidentServicePlanID equals b.ResidentServicePlanID select b; servicePlanItem = servicePlanRepository.FirstOrDefault(); } else { var servicePlanRepository = from a in unitOfWork.GetRepository <DC_ResidentServicePlan>().dbSet.Where(a => a.ResidentID == request.ResidentID && a.SStartDate <= nowDate && a.SEndDate >= nowDate) join b in unitOfWork.GetRepository <DC_ResidentServicePlanItem>().dbSet.Where(a => a.RestTimes > 0 && a.ServiceItemID == request.ServiceItemID) on a.ResidentServicePlanID equals b.ResidentServicePlanID select b; servicePlanItem = servicePlanRepository.FirstOrDefault(); } if (servicePlanItem != null) { servicePlantItemID = servicePlanItem.ResidentServicePlanItemID; servicePlanItem.RestTimes -= 1; residentServicePlanItemRepository.Update(servicePlanItem); } else { response.IsSuccess = false; response.ResultMessage = "该项目的套餐内服务次数已经用完。"; return(response); } } var serviceOrder = serviceOrderRepository.dbSet.FirstOrDefault((q) => q.ServiceOrderID == request.ServiceOrderID); if (serviceOrder == null) { serviceOrder = Mapper.DynamicMap <DC_ServiceOrder>(request); serviceOrder.ServiceOrderID = int.Parse(base.GeneratePrimaryKeyValue(EnumCodeKey.ServiceOrder)); if (String.IsNullOrEmpty(serviceOrder.SONo)) { serviceOrder.SONo = base.GeneratePrimaryKeyValue(EnumCodeKey.ServiceOrderCode); } serviceOrder.PaymentStatus = Enum.GetName(typeof(PaymentStatus), PaymentStatus.Unpaid); serviceOrder.OrderStatus = Enum.GetName(typeof(OrderStatus), OrderStatus.Wait); if (request.OrderType == Enum.GetName(typeof(OrderType), OrderType.Group)) { serviceOrder.ResidentServicePlanItemID = servicePlantItemID; } serviceOrder.CreatedTime = DateTime.Now; serviceOrder.ModifiedTime = DateTime.Now; serviceOrderRepository.Insert(serviceOrder); } else { Mapper.DynamicMap(request, serviceOrder); serviceOrder.ModifiedTime = DateTime.Now; serviceOrderRepository.Update(serviceOrder); } if (request.ServiceOrderID == 0) { if (request.OrderType == Enum.GetName(typeof(OrderType), OrderType.Commodity)) { if (request.CommodityItems != null) { request.CommodityItems.ForEach(a => { var orderCItem = Mapper.DynamicMap <DC_OrderCItem>(a); orderCItem.ServiceOrderID = serviceOrder.ServiceOrderID; orderCItem.CreatedTime = DateTime.Now; orderCItem.ModifiedTime = DateTime.Now; orderCItemRepository.Insert(orderCItem); }); } } else { var serviceItem = serviceItemRepository.Get(request.ServiceItemID); if (serviceItem != null) { var serOrdSerIt = Mapper.DynamicMap <DC_SerOrdSerIt>(serviceItem); serOrdSerIt.ServiceOrderID = serviceOrder.ServiceOrderID; serOrdSerIt.CreatedTime = DateTime.Now; serOrdSerIt.ModifiedTime = DateTime.Now; serOrdSerItRepository.Insert(serOrdSerIt); } else { response.IsSuccess = false; response.ResultMessage = "该项目不存在。"; return(response); } } } unitOfWork.Commit(); response.Data = Mapper.DynamicMap <ServiceOrderModel>(serviceOrder); return(response); }
public BaseResponse <ServiceOrderModel> SaveOrder(ServiceOrderModel request) { var response = new BaseResponse <ServiceOrderModel>(); var responseData = new List <ServiceOrderModel>(); var serviceItemCategoryRepository = unitOfWork.GetRepository <DC_ServiceItemCategory>(); var serviceOrderRepository = unitOfWork.GetRepository <DC_ServiceOrder>(); var serOrdSerItRepository = unitOfWork.GetRepository <DC_SerOrdSerIt>(); var serviceItemRepository = unitOfWork.GetRepository <DC_ServiceItem>(); var residentServicePlanItemRepository = unitOfWork.GetRepository <DC_ResidentServicePlanItem>(); var orgRepository = unitOfWork.GetRepository <ORG_Organization>(); unitOfWork.BeginTransaction(); var serviceOrder = serviceOrderRepository.dbSet.FirstOrDefault((q) => q.ServiceOrderID == request.ServiceOrderID); if (serviceOrder == null) { serviceOrder = Mapper.DynamicMap <DC_ServiceOrder>(request); serviceOrder.ServiceOrderID = int.Parse(base.GeneratePrimaryKeyValue(EnumCodeKey.ServiceOrder)); if (String.IsNullOrEmpty(serviceOrder.SONo)) { serviceOrder.SONo = base.GeneratePrimaryKeyValue(EnumCodeKey.ServiceOrderCode); } serviceOrder.PaymentStatus = Enum.GetName(typeof(PaymentStatus), PaymentStatus.Unpaid); serviceOrder.OrderStatus = Enum.GetName(typeof(OrderStatus), OrderStatus.Wait); serviceOrder.OrderCreator = request.CreatedBy; serviceOrder.CreatedBy = request.CreatedBy; serviceOrder.CreatedTime = DateTime.Now; serviceOrder.ModifiedTime = DateTime.Now; serviceOrderRepository.Insert(serviceOrder); } else { Mapper.DynamicMap(request, serviceOrder); serviceOrder.ModifiedTime = DateTime.Now; serviceOrderRepository.Update(serviceOrder); } if (request.ServiceOrderID == 0 && request.ServiceItems != null && request.ServiceItems.Count > 0) { var serialNo = 1; request.ServiceItems.ForEach(a => { var serOrdSerIt = Mapper.DynamicMap <DC_SerOrdSerIt>(a); serOrdSerIt.ServiceSerialNo = serialNo; serOrdSerIt.ServiceOrderID = serviceOrder.ServiceOrderID; serOrdSerIt.ChargeStatus = (int)ChargeStatus.Unpaid; serOrdSerIt.CreatedBy = serviceOrder.OrderCreator.Value; serOrdSerIt.CreatedTime = DateTime.Now; serOrdSerItRepository.Insert(serOrdSerIt); serialNo++; }); } if (serviceOrder.ServiceAppID.HasValue) { var serApp = unitOfWork.GetRepository <DC_ServiceAppointment>().Get(serviceOrder.ServiceAppID); if (serApp != null) { serApp.Status = Enum.GetName(typeof(AppointmentStatus), AppointmentStatus.Ordered); unitOfWork.GetRepository <DC_ServiceAppointment>().Update(serApp); } } unitOfWork.Commit(); response.Data = Mapper.DynamicMap <ServiceOrderModel>(serviceOrder); var org = orgRepository.Get(request.OrganizationID); if (request.ServiceOrderID == 0 && org != null && !org.IsPayFirstFlag.Value) { var ordSerIt = unitOfWork.GetRepository <DC_SerOrdSerIt>().dbSet.Where(a => a.ServiceOrderID == serviceOrder.ServiceOrderID).Select(a => a.ServiceOrderSIID).ToList(); var rs = SyncToCheckQueue(ordSerIt, serviceOrder.OrderCreator.Value); } return(response); }