wangyingyang

update order

No preview for this file type
No preview for this file type
......@@ -49,6 +49,7 @@ public class InventoryController {
return inventoryService.getStallsByClientId(enterpriseId, clientId);
}
@SaIgnore
@ApiOperation(value = "获取桌号")
@PostMapping("/tableCodes")
@ResponseStatus(HttpStatus.OK)
......
package com.infoloop.tianting.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.infoloop.tianting.model.dto.OrderDbDTO;
import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse;
......@@ -71,6 +72,15 @@ public class OrderController {
return orderService.createOrder(createOrderDto);
}
@ApiOperation(value = "创建订单")
@PostMapping("/operator/orders")
@ResponseStatus(HttpStatus.OK)
public CreateOrderResponse createOrderByOperator(
@Valid @RequestBody OrderDbDTO.OperatorCreateOrderDto createOrderDto) {
return orderService.orderCreation(createOrderDto);
}
// @SaIgnore
@ApiOperation(value = "修改订单")
@PatchMapping("/orders/modification")
@ResponseStatus(HttpStatus.OK)
......@@ -78,6 +88,7 @@ public class OrderController {
return orderService.updateOrder(updateOrderDto);
}
// @SaIgnore
@ApiOperation(value = "批量修改订单详情")
@PatchMapping("/order_details/modification")
@ResponseStatus(HttpStatus.OK)
......
......@@ -13,8 +13,10 @@ import java.util.List;
import java.util.Optional;
import javax.validation.Valid;
import jdk.jfr.StackTrace;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
......@@ -144,9 +146,35 @@ public class OrderDbDTO {
private List<String> doctors;
}
@Data
@Builder
@ApiModel(description = "创建订单视图")
public static class OperatorCreateOrderDto {
@ApiModelProperty(value = "档口 ID")
private Integer stallId;
@ApiModelProperty(value = "客户 ID")
private Integer customerId;
@ApiModelProperty(value = "餐单 id")
private Integer menuId;
@ApiModelProperty(value = "用餐日期")
private LocalDateTime mealTime;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "订单菜品详情列表")
private List<OperatorCreateOrderDetailDto> orderDetailDtos;
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "创建订单视图")
public static class CreateOrderDto {
@ApiModelProperty(value = "企业 ID")
private Integer enterpriseId;
......@@ -158,7 +186,7 @@ public class OrderDbDTO {
private Integer stallId;
@ApiModelProperty(value = "需要创建客户 ID")
public Boolean shouldCreateCustomerId;
private Boolean shouldCreateCustomerId;
@ApiModelProperty(value = "客户 ID")
private Integer customerId;
......@@ -440,6 +468,18 @@ public class OrderDbDTO {
@Builder
@ToString
@ApiModel(description = "订单详情信息,即菜品细节")
public static class OperatorCreateOrderDetailDto {
@ApiModelProperty(value = "餐单详情 id,即菜品")
private Integer menuDetailId;
@ApiModelProperty(value = "菜品所点份数")
private Integer count;
}
@Data
@Builder
@ToString
@ApiModel(description = "订单详情信息,即菜品细节")
public static class CreateOrderDetailDto {
@ApiModelProperty(value = "餐单详情 id,即菜品")
private Integer menuDetailId;
......
......@@ -4,6 +4,7 @@ import com.infoloop.tianting.model.common.PageResult;
import com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse;
import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse;
import com.infoloop.tianting.model.dto.OrderDbDTO.OperatorCreateOrderDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailBatchUpdateDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto;
......@@ -20,6 +21,7 @@ public interface OrderService {
PageResult<OrderDto> getOrdersByPagination(QueryOrderByPaginationDto queryOrderDto);
List<OrderDetailDto> getOrderDetailsByOrderId(Integer orderId);
CreateOrderResponse createOrder(CreateOrderDto createOrderDto);
CreateOrderResponse orderCreation(OperatorCreateOrderDto createOrderDto);
UpdateOrderResponse updateOrder(UpdateOrderDto updateOrderDto);
BatchUpdateOrderDetailResponse batchUpdateOrderDetails(OrderDetailBatchUpdateDto batchUpdateDto);
}
......
package com.infoloop.tianting.service.client;
import com.infoloop.tianting.deliveryruleservice.ClientLabelTypeEnum;
import com.infoloop.tianting.deliveryruleservice.GetClientLabelsByIdsRpcRequest;
import com.infoloop.tianting.deliveryruleservice.GetClientLabelsByIdsRpcResponse;
import com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcRequest;
import com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcResponse;
import com.infoloop.tianting.deliveryruleservice.TiantingDeliveryRuleServiceRpcGrpc;
import com.infoloop.tianting.model.dto.ClientLabelDTO.QueryLabelsDto;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -26,4 +29,16 @@ public class DeliveryRuleServiceRpcClient {
return deliveryRuleServiceRpcBlockingStub.queryClientLabelsByCondition(request);
}
public GetClientLabelsByIdsRpcResponse GetClientLabelsByIds(Integer enterpriseId, List<Integer> ids) {
final var request = GetClientLabelsByIdsRpcRequest
.newBuilder()
.setEnterpriseId(enterpriseId)
.setIncludeDeleted(false)
.addAllIds(ids)
.build();
return deliveryRuleServiceRpcBlockingStub.getClientLabelsByIds(request);
}
}
......
......@@ -39,7 +39,6 @@ import io.swagger.models.auth.In;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -67,12 +66,26 @@ public class OrderServiceRpcClient {
public UpdateClientCustomerOrderRpcResponse updateClientCustomerOrder(
UpdateOrderDto updateOrderDto) {
OrderStatusEnum status = OrderStatusEnum.UNKNOWN_STATUS;
if (updateOrderDto.isShouldUpdateStatus()) {
status = updateOrderDto.getStatus();
}
String roomNo = "";
if (updateOrderDto.isShouldUpdateRoomNo()) {
roomNo = updateOrderDto.getRoomNo();
}
String tableCode = "";
if (updateOrderDto.isShouldUpdateTableCode()) {
tableCode = updateOrderDto.getTableCode();
}
final var modification = ClientCustomerOrderModification.newBuilder()
.setId(updateOrderDto.getId())
.setShouldUpdateStatus(updateOrderDto.isShouldUpdateStatus())
.setStatus(updateOrderDto.getStatus())
.setStatus(status)
.setShouldUpdateTableCode(updateOrderDto.isShouldUpdateTableCode())
.setTableCode(updateOrderDto.getTableCode())
.setTableCode(tableCode)
.setShouldUpdateRoomNo(updateOrderDto.isShouldUpdateRoomNo())
.setRoomNo(roomNo)
.build();
final var request = UpdateClientCustomerOrderRpcRequest.newBuilder()
.setEnterpriseId(updateOrderDto.getEnterpriseId())
......@@ -86,38 +99,74 @@ public class OrderServiceRpcClient {
public BatchUpdateClientCustomerOrderDetailsRpcResponse batchUpdateClientCustomerOrderDetails(
OrderDetailBatchUpdateDto orderDetailBatchUpdateDto) {
final var modifications = orderDetailBatchUpdateDto.getDetails().stream().map( d->
ClientCustomerOrderDetailModification.newBuilder()
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();
}
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();
}
Boolean notServe = false;
if (d.getShouldUpdateNotServe()) {
notServe = true;
}
final var detail = ClientCustomerOrderDetailModification.newBuilder()
.setId(d.getId())
.setShouldUpdateMenuDetailId(d.getShouldUpdateMenuDetailId())
.setMenuDetailId(d.getMenuDetailId())
.setMenuDetailId(menuDetailId)
.setShouldUpdateCount(d.getShouldUpdateCount())
.setCount(d.getCount())
.setCount(count)
.setShouldUpdateMealId(d.getShouldUpdateMealId())
.setMealId(d.getMealId())
.setMealId(mealId)
.setShouldUpdateCategoryId(d.getShouldUpdateCategoryId())
.setCategoryId(d.getCategoryId())
.setCategoryId(categoryId)
.setShouldUpdateSkuId(d.getShouldUpdateSkuId())
.setSkuId(d.getSkuId())
.setSkuId(skuId)
.setShouldUpdateShowName(d.getShouldUpdateShowName())
.setShowName(d.getShowName())
.setShowName(showName)
.setShouldUpdateNotServe(d.getShouldUpdateNotServe())
.setNotServe(d.getNotServe())
.setNotServe(notServe)
.setShouldUpdateMealDetailJson(d.getShouldUpdateMealDetailJson())
.setMealDetailJson(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())
.build()
.setMealDetailJson(mealDetail)
.build();
return detail;
}
).collect(Collectors.toList());
final var request = BatchUpdateClientCustomerOrderDetailsRpcRequest.newBuilder()
.setEnterpriseId(orderDetailBatchUpdateDto.getEnterpriseId())
......