wangyingyang

update order detail

......@@ -72,7 +72,7 @@ public class OrderController {
return orderService.createOrder(createOrderDto);
}
@ApiOperation(value = "创建订单")
@ApiOperation(value = "院区端创建订单")
@PostMapping("/operator/orders")
@ResponseStatus(HttpStatus.OK)
public CreateOrderResponse createOrderByOperator(
......
package com.infoloop.tianting.model.dto;
public class StatisticDTO {
}
......@@ -7,6 +7,8 @@ import com.infoloop.tianting.menuservice.GetClientCustomerMenuRefsByCustomerIdRp
import com.infoloop.tianting.menuservice.GetClientCustomerMenuRefsByCustomerIdRpcResponse;
import com.infoloop.tianting.menuservice.GetMenuByIdRpcRequest;
import com.infoloop.tianting.menuservice.GetMenuByIdRpcResponse;
import com.infoloop.tianting.menuservice.GetMenuDetailByIdRpcRequest;
import com.infoloop.tianting.menuservice.GetMenuDetailByIdRpcResponse;
import com.infoloop.tianting.menuservice.GetMenuDetailsByMenuIdsRpcRequest;
import com.infoloop.tianting.menuservice.GetMenuDetailsByMenuIdsRpcResponse;
import com.infoloop.tianting.menuservice.GetMicroPublishedMenusByStallIdsRpcRequest;
......@@ -16,6 +18,7 @@ import com.infoloop.tianting.menuservice.GetPublishedMenusByStallIdsRpcResponse;
import com.infoloop.tianting.menuservice.MenuServiceRpcGrpc;
import com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsDto;
import com.infoloop.tianting.utils.DateUtil;
import io.swagger.models.auth.In;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.List;
......@@ -57,6 +60,15 @@ public class MenuServiceRpcClient {
return menuServiceRpcBlockingStub.getMenuById(request);
}
public GetMenuDetailByIdRpcResponse getMenuDetailById(Integer enterpriseId, Integer id) {
final var request = GetMenuDetailByIdRpcRequest.newBuilder()
.setEnterpriseId(enterpriseId)
.setId(id)
.setIncludeDeleted(false)
.build();
return menuServiceRpcBlockingStub.getMenuDetailById(request);
}
public GetMenuDetailsByMenuIdsRpcResponse queryMenuDetailsByMenuId(
Integer enterpriseId, Integer menuId) {
final var request = GetMenuDetailsByMenuIdsRpcRequest.newBuilder()
......
package com.infoloop.tianting.service.client;
import com.infoloop.tianting.SingleResponse;
import com.infoloop.tianting.SingleSpecialResponse;
import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrderDetailsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrderDetailsRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderCreation;
......@@ -48,6 +50,8 @@ import org.springframework.stereotype.Service;
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class OrderServiceRpcClient {
private final ClientCustomerOrderServiceRpcGrpc.ClientCustomerOrderServiceRpcBlockingStub orderServiceRpcBlockingStub;
private final MenuServiceRpcClient menuServiceRpcClient;
private final SkuServiceRpcClient skuServiceRpcClient;
public List<SingleClientCustomerOrderRpcResponse> getOrdersByCustomerId(Integer customerId) {
return orderServiceRpcBlockingStub.getClientCustomerOrdersByCustomerId(
......@@ -100,52 +104,54 @@ public class OrderServiceRpcClient {
public BatchUpdateClientCustomerOrderDetailsRpcResponse batchUpdateClientCustomerOrderDetails(
OrderDetailBatchUpdateDto orderDetailBatchUpdateDto) {
final var modifications = orderDetailBatchUpdateDto.getDetails().stream().map( d-> {
MealDetail mealDetail;
if(d.getShouldUpdateMealDetailJson()) {
mealDetail = MealDetail.newBuilder()
.setBasicMaterials(d.getMealDetailJson().getBasicMaterials())
.addAllTastes(d.getMealDetailJson().getTastes())
.addAllEfficacies(d.getMealDetailJson().getEfficacies())
.addAllDockers(d.getMealDetailJson().getDockers())
.setEnergy(d.getMealDetailJson().getEnergy())
.setFat(d.getMealDetailJson().getFat())
.setProtein(d.getMealDetailJson().getProtein())
.setCarbohydrate(d.getMealDetailJson().getCarbohydrate())
.addAllAllergies(d.getMealDetailJson().getAllergies())
.addAllAvoids(d.getMealDetailJson().getAvoids())
.addAllSkus(d.getMealDetailJson().getSkus())
.build();
} else {
mealDetail = MealDetail.newBuilder().build();
}
MealDetail mealDetail = MealDetail.newBuilder().build();;
Integer menuDetailId = 0;
if (d.getShouldUpdateMenuDetailId()) {
menuDetailId = d.getMenuDetailId();
}
Integer count = 0;
if (d.getShouldUpdateCount()) {
count = d.getCount();
}
Integer mealId = 0;
if (d.getShouldUpdateMealId()) {
mealId = d.getMealId();
}
Integer categoryId = 0;
if (d.getShouldUpdateCategoryId()) {
categoryId = d.getCategoryId();
}
Integer skuId = 0;
if (d.getShouldUpdateSkuId()) {
skuId = d.getSkuId();
}
String showName = "";
if (d.getShouldUpdateShowName()) {
showName = d.getShowName();
if (d.getShouldUpdateMenuDetailId()) {
menuDetailId = d.getMenuDetailId();
final var menuDetail = menuServiceRpcClient.getMenuDetailById(
orderDetailBatchUpdateDto.getEnterpriseId(), menuDetailId).getResponse();
mealId = menuDetail.getMealId();
categoryId = menuDetail.getCategoryId();
skuId = menuDetail.getSkuId();
showName = menuDetail.getShowName();
final var rpcSkus = skuServiceRpcClient.getDishSkusByIds(List.of(skuId)).getResponseList();
if (!rpcSkus.isEmpty()) {
final var skus = rpcSkus.get(0).getSkusList().stream().map(SingleResponse::getName).collect(Collectors.toList());
final var skuAvoids = rpcSkus.get(0).getAvoidsList().stream().map(SingleResponse::getName).collect(Collectors.toList());
final var tastes = rpcSkus.get(0).getTastesList().stream().map(SingleResponse::getName).collect(Collectors.toList());
final var efficacies = rpcSkus.get(0).getEfficaciesList().stream().map(SingleResponse::getName).collect(Collectors.toList());
final var allergies = rpcSkus.get(0).getAllergiesList().stream().map(
SingleSpecialResponse::getName).collect(Collectors.toList());
final var skuDoctors = rpcSkus.get(0).getDoctorsList().stream().map(SingleSpecialResponse::getName).collect(Collectors.toList());
mealDetail = MealDetail.newBuilder()
.setBasicMaterials(rpcSkus.get(0).getBasicMaterials())
.addAllTastes(tastes)
.addAllEfficacies(efficacies)
.addAllDockers(skuDoctors)
.setEnergy(rpcSkus.get(0).getEnergy())
.setFat(rpcSkus.get(0).getFat())
.setProtein(rpcSkus.get(0).getProtein())
.setCarbohydrate(rpcSkus.get(0).getCarbohydrate())
.addAllAllergies(allergies)
.addAllAvoids(skuAvoids)
.addAllSkus(skus)
.build();
}
}
Boolean notServe = false;
if (d.getShouldUpdateNotServe()) {
notServe = true;
}
Integer count = 0;
if (d.getShouldUpdateCount()) {
count = d.getCount();
}
final var detail = ClientCustomerOrderDetailModification.newBuilder()
.setId(d.getId())
.setShouldUpdateMenuDetailId(d.getShouldUpdateMenuDetailId())
......