wangyingyang

update order

......@@ -14,7 +14,12 @@ public class PermissionDTO {
@ApiModel(description = "Login DTO")
public static class LoginDto {
private LoginSourceEnum loginSourceEnum;
private boolean shouldLoginWithHisCustomerId;
private String hisCustomerId;
private boolean shouldLoginWithCustomerId;
private Integer customerId;
private boolean shouldLoginWithOpenId;
private String openId;
}
}
......
package com.infoloop.tianting.service.client;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderAndDetailsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderAndDetailsRpcResponse;
//import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderAndDetailsRpcRequest;
//import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderAndDetailsRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderDetailsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderDetailsRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderCreation;
......@@ -65,41 +65,6 @@ public class OrderServiceRpcClient {
// }
public CreateOrderResponse createOrder(CreateOrderDto createOrderDto) {
final var customerNotice = CustomerNotice.newBuilder()
.addAllAvoids(createOrderDto.getCustomerNoticeJson().getAvoids())
.addAllDoctors(createOrderDto.getCustomerNoticeJson().getDoctors())
.build();
final var creation = ClientCustomerOrderCreation.newBuilder()
.setShouldCreateCustomerId(true)
.setCustomerId(createOrderDto.getCustomerId())
.setStallId(createOrderDto.getStallId())
.setAddress(createOrderDto.getAddress())
.setClientId(createOrderDto.getClientId())
.setShouldCreateOpenId(!createOrderDto.getOpenId().isEmpty())
.setOpenId(createOrderDto.getOpenId())
.setShouldCreateRoomNo(!createOrderDto.getRoomNo().isEmpty())
.setRoomNo(createOrderDto.getRoomNo())
.setShouldCreateTableCode(createOrderDto.getOrderType().equals(OrderTypeEnum.DINE_IN.getValue()))
.setTableCode(createOrderDto.getTableCode())
.setOnlinePay(createOrderDto.getOnlinePay())
.setMenuId(createOrderDto.getMenuId())
.setTotalNum(createOrderDto.getTotalNum())
.setPayPrice(createOrderDto.getPayPrice())
.setMealTime(createOrderDto.getMealTime().toInstant(ZoneOffset.UTC).toEpochMilli())
.setShouldCreatePickupCode(createOrderDto.getOrderType().equals(OrderTypeEnum.DINE_IN.getValue()))
.setPickupCode(createOrderDto.getPickupCode())
.setRemark(createOrderDto.getRemark())
.setCustomerNoticeJson(customerNotice)
.build();
CreateClientCustomerOrderRpcResponse orderResponse = orderServiceRpcBlockingStub
.createClientCustomerOrder(CreateClientCustomerOrderRpcRequest.newBuilder()
.setCreation(creation)
.setCreationSource(OrderSourceEnum.forNumber(createOrderDto.getCreationSource()))
.setEnterpriseId(createOrderDto.getEnterpriseId())
.setCreatedBy(createOrderDto.getCreatedBy())
.build());
final var orderDetails = new ArrayList<ClientCustomerOrderDetailCreation>();
for (CreateOrderDetailDto orderDetailDto: createOrderDto.getOrderDetailDtos()) {
final var mealDetail = MealDetail.newBuilder()
......@@ -116,8 +81,9 @@ public class OrderServiceRpcClient {
.addAllSkus(orderDetailDto.getMealDetailJson().getSkus())
.build();
final var orderDetail = ClientCustomerOrderDetailCreation.newBuilder()
.setOrderId(orderResponse.getId())
.setMenuDetailId(orderDetailDto.getMenuDetailId())
.setShouldCreateOrderId(false)
.setOrderId(0)
.setCount(orderDetailDto.getCount())
.setMealId(orderDetailDto.getMealId())
.setCategoryId(orderDetailDto.getCategoryId())
......@@ -134,12 +100,48 @@ public class OrderServiceRpcClient {
.build();
orderDetails.add(orderDetail);
}
BatchCreateClientCustomerOrderDetailsRpcResponse orderDetailsRpcResponse = orderServiceRpcBlockingStub.batchCreateClientCustomerOrderDetails(
BatchCreateClientCustomerOrderDetailsRpcRequest.newBuilder()
.addAllCreations(orderDetails)
.setCreatedBy(createOrderDto.getCreatedBy())
final var customerNotice = CustomerNotice.newBuilder()
.addAllAvoids(createOrderDto.getCustomerNoticeJson().getAvoids())
.addAllDoctors(createOrderDto.getCustomerNoticeJson().getDoctors())
.build();
final var creation = ClientCustomerOrderCreation.newBuilder()
.setShouldCreateCustomerId(true)
.setCustomerId(createOrderDto.getCustomerId())
.setStallId(createOrderDto.getStallId())
.setAddress(createOrderDto.getAddress())
.setClientId(createOrderDto.getClientId())
.setShouldCreateOpenId(!createOrderDto.getOpenId().isEmpty())
.setOpenId(createOrderDto.getOpenId())
.setShouldCreateRoomNo(!createOrderDto.getRoomNo().isEmpty())
.setRoomNo(createOrderDto.getRoomNo())
.setShouldCreateTableCode(createOrderDto.getOrderType().equals(OrderTypeEnum.DINE_IN.getValue()))
.setTableCode(createOrderDto.getTableCode())
.setOnlinePay(createOrderDto.getOnlinePay())
.setMenuId(createOrderDto.getMenuId())
.setTotalNum(createOrderDto.getTotalNum())
.setPayPrice(createOrderDto.getPayPrice())
.setMealTime(createOrderDto.getMealTime().toInstant(ZoneOffset.UTC).toEpochMilli())
.setShouldCreatePickupCode(createOrderDto.getOrderType().equals(OrderTypeEnum.DINE_IN.getValue()))
.setPickupCode(createOrderDto.getPickupCode())
.setRemark(createOrderDto.getRemark())
.setCustomerNoticeJson(customerNotice)
.setShouldCreateOrderDetails(true)
.addAllOrderDetails(orderDetails)
.build();
CreateClientCustomerOrderRpcResponse orderResponse = orderServiceRpcBlockingStub
.createClientCustomerOrder(CreateClientCustomerOrderRpcRequest.newBuilder()
.setCreation(creation)
.setCreationSource(OrderSourceEnum.forNumber(createOrderDto.getCreationSource()))
.setEnterpriseId(createOrderDto.getEnterpriseId())
.setCreationSource(OrderSourceEnum.forNumber(createOrderDto.getCreationSource())).build());
.setCreatedBy(createOrderDto.getCreatedBy())
.build());
// BatchCreateClientCustomerOrderDetailsRpcResponse orderDetailsRpcResponse = orderServiceRpcBlockingStub.batchCreateClientCustomerOrderDetails(
// BatchCreateClientCustomerOrderDetailsRpcRequest.newBuilder()
// .addAllCreations(orderDetails)
// .setCreatedBy(createOrderDto.getCreatedBy())
// .setEnterpriseId(createOrderDto.getEnterpriseId())
// .setCreationSource(OrderSourceEnum.forNumber(createOrderDto.getCreationSource())).build());
return CreateOrderResponse.builder().id(orderResponse.getId()).isCreated(true).build();
}
......
......@@ -3,6 +3,8 @@ package com.infoloop.tianting.service.impl;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpUtil;
import com.infoloop.tianting.clientcustomerservice.GetClientCustomerByIdRpcRequest;
import com.infoloop.tianting.clientcustomerservice.SingleClientCustomerRpcResponse;
import com.infoloop.tianting.constant.CommonConstants;
import com.infoloop.tianting.exception.ClientEndExceptions;
import com.infoloop.tianting.exception.ErrorCodeEnum;
......@@ -24,16 +26,27 @@ public class LoginServiceImpl implements LoginService {
@Override
public SaTokenInfo login(LoginDto loginDto) {
final var customer = clientCustomerServiceRpcClient.getClientCustomerByHISCustomerId(loginDto.getHisCustomerId());
if (customer.getResponse().getId() == 0) {
throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.UNAUTHORIZED.name());
if (loginDto.isShouldLoginWithOpenId()) {
return StpUtil.getTokenInfo();
}
else {
final SingleClientCustomerRpcResponse customer;
if (loginDto.isShouldLoginWithHisCustomerId()){
customer = clientCustomerServiceRpcClient.getClientCustomerByHISCustomerId(loginDto.getHisCustomerId()).getResponse();
} else {
customer = clientCustomerServiceRpcClient.getClientCustomerById(loginDto.getCustomerId()).getResponse();
}
StpUtil.login(customer.getResponse().getId(), SaLoginModel.create()
.setExtra(CommonConstants.ENTERPRISE_ID, customer.getResponse().getEnterpriseId())
if (customer.getId() == 0) {
throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.UNAUTHORIZED.name());
}
StpUtil.login(customer.getId(), SaLoginModel.create()
.setExtra(CommonConstants.ENTERPRISE_ID, customer.getEnterpriseId())
.setExtra(CommonConstants.LOGIN_SOURCE, loginDto.getLoginSourceEnum().getValue())
.build());
return StpUtil.getTokenInfo();
}
}
}
}
......
......@@ -18,7 +18,6 @@ service ClientCustomerOrderServiceRpc {
rpc UpdateClientCustomerOrder (UpdateClientCustomerOrderRpcRequest) returns (UpdateClientCustomerOrderRpcResponse) {}
rpc BatchUpdateClientCustomerOrders (BatchUpdateClientCustomerOrdersRpcRequest) returns (BatchUpdateClientCustomerOrdersRpcResponse) {}
rpc DeleteClientCustomerOrdersByIds (DeleteClientCustomerOrdersByIdsRpcRequest) returns (DeleteClientCustomerOrdersRpcResponse) {}
rpc BatchCreateClientCustomerOrderAndDetails (BatchCreateClientCustomerOrderAndDetailsRpcRequest) returns (BatchCreateClientCustomerOrderAndDetailsRpcResponse) {}
//订单明细
rpc GetClientCustomerOrderDetailById (GetClientCustomerOrderDetailByIdRpcRequest) returns (GetClientCustomerOrderDetailByIdRpcResponse) {}
......@@ -232,6 +231,8 @@ message ClientCustomerOrderCreation{
bool shouldCreateCustomerNoticeJson = 37;
CustomerNotice customerNoticeJson = 38;
bool isRead = 39;
bool shouldCreateOrderDetails = 40;
repeated ClientCustomerOrderDetailCreation orderDetails = 41;
}
message CreateClientCustomerOrderRpcRequest {
......@@ -343,20 +344,6 @@ message DeleteClientCustomerOrdersRpcResponse {
bool isDeleted = 1;
}
message BatchCreateClientCustomerOrderAndDetailsRpcRequest {
int32 enterpriseId = 1;
int32 createdBy = 2;
OrderSourceEnum creationSource = 3;
repeated ClientCustomerOrderCreation orderCreations = 4;
repeated ClientCustomerOrderDetailCreation detailCreations = 5;
}
message BatchCreateClientCustomerOrderAndDetailsRpcResponse {
repeated int32 orderIds = 1;
bool isCreated = 2;
}
message MealDetail {
string basicMaterials = 1;
repeated string tastes = 2;
......@@ -422,21 +409,22 @@ message GetClientCustomerOrderDetailsByOrderIdsRpcResponse {
}
message ClientCustomerOrderDetailCreation{
int32 orderId = 1;
int32 menuDetailId = 2;
int32 count = 3;
int32 mealId = 4;
int32 categoryId = 5;
int32 skuId = 6;
bool shouldCreateShowName = 7;
string showName = 8;
bool shouldCreateMealDetailJson = 9;
MealDetail mealDetailJson = 10;
bool shouldCreatePrice = 11;
int32 price = 12;
bool shouldCreateAdjustSkuRemark = 13;
string adjustSkuRemark = 14;
bool notServe = 15;
bool shouldCreateOrderId = 1;
int32 orderId = 2;
int32 menuDetailId = 3;
int32 count = 4;
int32 mealId = 5;
int32 categoryId = 6;
int32 skuId = 7;
bool shouldCreateShowName = 8;
string showName = 9;
bool shouldCreateMealDetailJson = 10;
MealDetail mealDetailJson = 11;
bool shouldCreatePrice = 12;
int32 price = 13;
bool shouldCreateAdjustSkuRemark = 14;
string adjustSkuRemark = 15;
bool notServe = 16;
}
message CreateClientCustomerOrderDetailRpcRequest {
......