zhuyifan

feat(proto): add batch query for order operation records

......@@ -119,6 +119,10 @@ public class OrderDb extends Model<OrderDb> implements Serializable {
*/
private String transactionId;
/**
* 支付平台响应id
*/
private String tradeReferenceNo;
/**
* 用餐日期
*/
private LocalDateTime mealTime;
......
......@@ -45,6 +45,8 @@ import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrdersB
import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrdersByIdsRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecordsByOrderIdRequest;
import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecordsByOrderIdResponse;
import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecordsByOrderIdsRequest;
import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecordsByOrderIdsResponse;
import com.infoloop.tianting.clientcustomerorderservice.OrderCountByStatus;
import com.infoloop.tianting.clientcustomerorderservice.OrderOperationRecord;
import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum;
......@@ -668,6 +670,31 @@ public class OrderGrpcService extends ClientCustomerOrderServiceRpcGrpc.ClientCu
@Override
@DS(DATA_SOURCE_MASTER)
public void getOrderOperationRecordsByOrderIds(
final GetOrderOperationRecordsByOrderIdsRequest request,
final StreamObserver<GetOrderOperationRecordsByOrderIdsResponse> responseStreamObserver
) {
final var builder = GetOrderOperationRecordsByOrderIdsResponse.newBuilder();
try {
LambdaQueryWrapper<OrderOperationRecordDb> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OrderOperationRecordDb::getEnterpriseId, request.getEnterpriseId());
queryWrapper.in(OrderOperationRecordDb::getOrderId, request.getOrderIdsList());
queryWrapper.orderByDesc(OrderOperationRecordDb::getCreatedAt);
final var list = orderOperationRecordDbService.list(queryWrapper);
if (!list.isEmpty()) {
builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(list,
OrderOperationRecord.class));
}
} catch (final Exception e) {
log.error("getClientCustomerOrdersByCustomerId error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void batchCreateOrderOperationRecords(
final BatchCreateOrderOperationRecordsRequest request,
final StreamObserver<BatchCreateOrderOperationRecordsResponse> responseStreamObserver) {
......
......@@ -375,6 +375,9 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
if (updateOrderRequest.getModification().getShouldUpdateTransactionId()) {
orderDb.setTransactionId(updateOrderRequest.getModification().getTransactionId());
}
if (updateOrderRequest.getModification().getShouldUpdateTradeReferenceNo()) {
orderDb.setTradeReferenceNo(updateOrderRequest.getModification().getTradeReferenceNo());
}
if (updateOrderRequest.getModification().getShouldUpdateMealTime()) {
orderDb.setMealTime(LocalDateTimeUtil.of(updateOrderRequest.getModification().getMealTime()));
}
......
......@@ -70,6 +70,10 @@ public class DbToProtoUtil {
protoBuilder.setTransactionId(orderDb.getTransactionId());
}
if (orderDb.getTradeReferenceNo() != null) {
protoBuilder.setTradeReferenceNo(orderDb.getTradeReferenceNo());
}
if (orderDb.getMealTime()!= null) {
protoBuilder.setMealTime(orderDb.getMealTime().toEpochSecond(ZoneOffset.UTC) * 1000);
}
......
......@@ -32,6 +32,7 @@ service ClientCustomerOrderServiceRpc {
// 操作记录
rpc GetOrderOperationRecordsByOrderId (GetOrderOperationRecordsByOrderIdRequest) returns (GetOrderOperationRecordsByOrderIdResponse) {}
rpc GetOrderOperationRecordsByOrderIds (GetOrderOperationRecordsByOrderIdsRequest) returns (GetOrderOperationRecordsByOrderIdsResponse) {}
rpc BatchCreateOrderOperationRecords (BatchCreateOrderOperationRecordsRequest) returns (BatchCreateOrderOperationRecordsResponse) {}
......@@ -147,6 +148,7 @@ message SingleClientCustomerOrderRpcResponse {
string syncRoomNo = 36;
bool isCanceled = 37;
string avoidRemark = 38;
string tradeReferenceNo = 39;
}
message GetClientCustomerOrderByIdRpcRequest {
......@@ -393,6 +395,8 @@ message ClientCustomerOrderModification {
bool isCanceled = 57;
bool shouldUpdateAvoidRemark = 58;
string avoidRemark = 59;
bool shouldUpdateTradeReferenceNo = 60;
string tradeReferenceNo = 61;
}
message UpdateClientCustomerOrderRpcRequest {
......@@ -624,6 +628,15 @@ message GetOrderOperationRecordsByOrderIdResponse {
repeated OrderOperationRecord responses = 1;
}
message GetOrderOperationRecordsByOrderIdsRequest {
int32 enterpriseId = 1;
repeated int32 orderIds = 2;
}
message GetOrderOperationRecordsByOrderIdsResponse {
repeated OrderOperationRecord responses = 1;
}
message OrderOperationRecordCreation {
int32 orderId = 1;
OrderOperationType type = 2;
......