zhuyifan

fix

......@@ -22,10 +22,12 @@ import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDe
import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrderDetailsByOrderIdsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrdersByCustomerIdRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.MealDetail;
import com.infoloop.tianting.clientcustomerorderservice.OnlinePayEnum;
import com.infoloop.tianting.clientcustomerorderservice.OrderOperationRecordCreation;
import com.infoloop.tianting.clientcustomerorderservice.OrderOperationType;
import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum;
import com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.OrderTypeEnum;
import com.infoloop.tianting.clientcustomerorderservice.PayStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByConditionRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByPaginationRpcRequest;
......@@ -524,9 +526,7 @@ public class OrderServiceRpcClient {
.setShowName(orderDetailDto.getShowName())
.setPrice(orderDetailDto.getPrice())
.setMealDetailJson(mealDetail)
// .setAdjustSkuRemark(orderDetailDto.getAdjustSkuRemark())
.setServeStatus(ServeStatusEnum.SERVE_NOT_START)
// .setShouldCreateAdjustSkuRemark(true)
.setShouldCreatePrice(true)
.setShouldCreateMealDetailJson(true)
.setSkuId(orderDetailDto.getSkuId())
......@@ -537,43 +537,33 @@ public class OrderServiceRpcClient {
.addAllAvoids(createOrderDto.getCustomerNoticeJson().getAvoids())
.addAllDoctors(createOrderDto.getCustomerNoticeJson().getDoctors())
.build();
final var menuById = menuServiceRpcClient.getMenuById(createOrderDto.getEnterpriseId(), createOrderDto.getMenuId());
OrderStatusEnum orderStatus = OrderStatusEnum.TO_PREPARE;
if (menuById.getResponse().getOrderRuleJson().getModeOfPayment() == ModeOfPaymentEnum.ONLINE && menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) {
orderStatus = OrderStatusEnum.PREPARING;
}
final var creation = ClientCustomerOrderCreation.newBuilder()
.setShouldCreateCustomerId(createOrderDto.getShouldCreateCustomerId())
.setCustomerId(createOrderDto.getCustomerId())
.setShouldCreateCustomerId(true).setCustomerId(createOrderDto.getCustomerId())
.setStallId(createOrderDto.getStallId())
.setStatus(orderStatus)
.setAddress(createOrderDto.getAddress())
.setClientId(createOrderDto.getClientId())
.setShouldCreateOpenId(!LoginContextHolder.getOpenId().isEmpty())
.setOpenId(LoginContextHolder.getOpenId())
.setShouldCreateRoomNo(!createOrderDto.getRoomNo().isEmpty())
.setRoomNo(createOrderDto.getRoomNo())
.setTableCode(createOrderDto.getTableCode() == null ? "" : createOrderDto.getTableCode())
.setShouldCreateOnlinePay(true)
.setOnlinePay(createOrderDto.getOnlinePay())
.setShouldCreatePayStatus(true)
.setPayStatus(PayStatusEnum.TO_PAY)
.setShouldCreateOpenId(!LoginContextHolder.getOpenId().isEmpty()).setOpenId(LoginContextHolder.getOpenId())
.setShouldCreateRoomNo(!createOrderDto.getRoomNo().isEmpty()).setRoomNo(createOrderDto.getRoomNo())
.setShouldCreateTableCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY) || StringUtils.isNotEmpty(createOrderDto.getTableCode())).setTableCode(createOrderDto.getTableCode() == null ? "" : createOrderDto.getTableCode())
.setShouldCreateOnlinePay(true).setOnlinePay(createOrderDto.getOnlinePay())
.setShouldCreatePayStatus(true).setPayStatus(createOrderDto.getOnlinePay() == OnlinePayEnum.ONLINE || createOrderDto.getOnlinePay() == OnlinePayEnum.LEAVE_HOSPITAL ? PayStatusEnum.TO_PAY : PayStatusEnum.SUCCEED)
.setMenuId(createOrderDto.getMenuId())
.setTotalNum(createOrderDto.getTotalNum())
.setPayPrice(createOrderDto.getPayPrice())
.setShouldCreatePayPrice(createOrderDto.getOnlinePay() == OnlinePayEnum.LEAVE_HOSPITAL).setPayPrice(createOrderDto.getPayPrice())
.setMealTime(createOrderDto.getMealTime().toLocalDate().atStartOfDay().toInstant(ZoneOffset.UTC).toEpochMilli())
.setShouldCreateTableCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY) || StringUtils.isNotEmpty(createOrderDto.getTableCode()))
.setShouldCreatePickupCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY))
.setPickupCode(generatePickupCode())
.setShouldCreateRemark(true)
.setRemark(createOrderDto.getRemark())
.setShouldCreateCustomerNoticeJson(true)
.setCustomerNoticeJson(customerNotice)
.setShouldCreatePickupCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY)).setPickupCode(generatePickupCode())
.setShouldCreateOrderType(true).setOrderType(menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.RESERVATION ? OrderTypeEnum.DELIVERY : OrderTypeEnum.DINE_IN)
.setShouldCreateRemark(true).setRemark(createOrderDto.getRemark())
.setShouldCreateCustomerNoticeJson(true).setCustomerNoticeJson(customerNotice)
.setCloseTimeType(createOrderDto.getCloseTimeType())
.setShouldCreateOrderDetails(true)
.addAllOrderDetails(orderDetails)
.setShouldCreateOrderDetails(true).addAllOrderDetails(orderDetails)
.build();
if (menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) {
......
......@@ -103,8 +103,7 @@ public class OrderServiceImpl implements OrderService {
createOrderDto.setAddress(record.getDepartmentName() + record.getRoomNo());
createOrderDto.setOnlinePay(createOrderDto.getOnlinePay());
createOrderDto.setPayPrice(0);
final var menu = menuServiceRpcClient.getMenuById(operator.getEnterpriseId(),
createOrderDto.getMenuId()).getResponse();
final var menu = menuServiceRpcClient.getMenuById(operator.getEnterpriseId(), createOrderDto.getMenuId()).getResponse();
final var placeOrderCount = menu.getOrderRuleJson().getPlaceOrderCount();
if (placeOrderCount != 0 && menuOrderCount >= placeOrderCount) {
throw ClientEndExceptions.OperationForbidden.build(ErrorCodeEnum.ORDER_COUNT_LIMIT.name());
......@@ -126,15 +125,13 @@ public class OrderServiceImpl implements OrderService {
final var labelRefs = clientCustomerServiceRpcClient.getCustomerLabelsByCustomerId(customer.getEnterpriseId(), customer.getId()).getResponsesList();
final var labelIds = labelRefs.stream().map(SingleClientCustomerLabelRefRpcResponse::getLabelId).collect(Collectors.toList());
final var labels = deliveryRuleServiceRpcClient.GetClientLabelsByIds(customer.getEnterpriseId(), labelIds).getResponsesList();
final var avoids = labels.stream().filter(l -> l.getType() == ClientLabelTypeEnum.CLIENT_LABEL_TYPE_AVOID).map(
SingleClientLabelRpcResponse::getName).collect(Collectors.toList());
final var avoids = labels.stream().filter(l -> l.getType() == ClientLabelTypeEnum.CLIENT_LABEL_TYPE_AVOID).map(SingleClientLabelRpcResponse::getName).collect(Collectors.toList());
List<HisAllergy> hisAllergies = new ArrayList<>();
List<HisMedicalAdviceDto> origionalHisDoctors = new ArrayList<>();
if (!customer.getHISCustomerId().isEmpty()) {
hisAllergies = meiZhongYiHeService.getHisCustomerAllergiesByCustomerId(customer.getHISCustomerId());
origionalHisDoctors = meiZhongYiHeService.getHisCustomerMedicalAdvicesByContractNo(record.getContractNo());
}
final var allergyCodes = hisAllergies.stream().map(HisAllergy::getAllergyCode).collect(Collectors.toList());
final var allLabels = deliveryRuleServiceRpcClient.getLabelsByTypes(QueryLabelsDto.builder()
.enterpriseId(operatorLoginInfo.getEnterpriseId())
......@@ -142,10 +139,8 @@ public class OrderServiceImpl implements OrderService {
.build());
final var mappingAllergies = allLabels.getResponsesList().stream().filter(l -> allergyCodes.contains(l.getCode())).map(SingleClientLabelRpcResponse::getName).collect(Collectors.toList());
final var dietDoctors = origionalHisDoctors.stream().filter(d -> d.getMedicalAdviceType().equals(
MedicalAdviceTypeEnum.DIET)).map(HisMedicalAdviceDto::getConnotation).collect(Collectors.toList());
final var doctors = labels.stream().filter(l -> l.getType() == ClientLabelTypeEnum.CLIENT_LABEL_TYPE_DOCTOR).map(
SingleClientLabelRpcResponse::getName).collect(Collectors.toList());
final var dietDoctors = origionalHisDoctors.stream().filter(d -> d.getMedicalAdviceType().equals(MedicalAdviceTypeEnum.DIET)).map(HisMedicalAdviceDto::getConnotation).collect(Collectors.toList());
final var doctors = labels.stream().filter(l -> l.getType() == ClientLabelTypeEnum.CLIENT_LABEL_TYPE_DOCTOR).map(SingleClientLabelRpcResponse::getName).collect(Collectors.toList());
final var customerNotice = CustomerNotice.builder()
.avoids(Stream.of(avoids, mappingAllergies).flatMap(List::stream).collect(Collectors.toList()))
.doctors(Stream.of(doctors, dietDoctors).flatMap(List::stream).collect(Collectors.toList()))
......@@ -155,9 +150,7 @@ public class OrderServiceImpl implements OrderService {
createOrderDto.setUpdateSource(OrderSourceEnum.STALL.getNumber());
List<CreateOrderDetailDto> orderDetailDtoList = new ArrayList<>();
final var menuDetails = menuServiceRpcClient.queryMenuDetailsByMenuId(menu.getEnterpriseId(), operatorCreateOrderDto.getMenuId()).getResponsesList();
final var skuIds = menuDetails.stream()
.map(SingleMenuDetailRpcResponse::getSkuId)
.collect(Collectors.toList());
final var skuIds = menuDetails.stream().map(SingleMenuDetailRpcResponse::getSkuId).collect(Collectors.toList());
final var rpcSkus = skuServiceRpcClient.getDishSkusByIds(skuIds).getResponseList();
Integer totalSkuCount = 0;
for (OperatorCreateOrderDetailDto orderDetail : operatorCreateOrderDto.getOrderDetailDtos()) {
......@@ -206,7 +199,6 @@ public class OrderServiceImpl implements OrderService {
}
createOrderDto.setOrderDetailDtos(orderDetailDtoList);
createOrderDto.setTotalNum(totalSkuCount);
// createOrderDto.setPayPrice();
return orderServiceRpcClient.createOrder(createOrderDto);
}
......