Showing
7 changed files
with
188 additions
and
236 deletions
| ... | @@ -11,7 +11,6 @@ import brave.propagation.TraceContext; | ... | @@ -11,7 +11,6 @@ import brave.propagation.TraceContext; |
| 11 | import brave.sampler.Sampler; | 11 | import brave.sampler.Sampler; |
| 12 | import com.tianting.infoloop.service.grpc.MealOrderGrpcService; | 12 | import com.tianting.infoloop.service.grpc.MealOrderGrpcService; |
| 13 | import com.tianting.infoloop.service.grpc.OrderGrpcService; | 13 | import com.tianting.infoloop.service.grpc.OrderGrpcService; |
| 14 | -import com.tianting.infoloop.service.grpc.OrderSubscriptionMessageGrpcService; | ||
| 15 | import io.grpc.Server; | 14 | import io.grpc.Server; |
| 16 | import io.grpc.ServerInterceptor; | 15 | import io.grpc.ServerInterceptor; |
| 17 | import io.grpc.ServerInterceptors; | 16 | import io.grpc.ServerInterceptors; |
| ... | @@ -67,13 +66,11 @@ public class AppConfig implements ApplicationContextAware { | ... | @@ -67,13 +66,11 @@ public class AppConfig implements ApplicationContextAware { |
| 67 | public Server serviceServer(@Value(SERVICE_PORT) final int port, | 66 | public Server serviceServer(@Value(SERVICE_PORT) final int port, |
| 68 | final ServerInterceptor serverInterceptor, | 67 | final ServerInterceptor serverInterceptor, |
| 69 | final OrderGrpcService orderGrpcService, | 68 | final OrderGrpcService orderGrpcService, |
| 70 | - final MealOrderGrpcService mealOrderGrpcService, | 69 | + final MealOrderGrpcService mealOrderGrpcService) { |
| 71 | - final OrderSubscriptionMessageGrpcService orderSubscriptionMessageGrpcService) { | ||
| 72 | return NettyServerBuilder | 70 | return NettyServerBuilder |
| 73 | .forPort(port) | 71 | .forPort(port) |
| 74 | .addService(ServerInterceptors.intercept(orderGrpcService, serverInterceptor)) | 72 | .addService(ServerInterceptors.intercept(orderGrpcService, serverInterceptor)) |
| 75 | .addService(ServerInterceptors.intercept(mealOrderGrpcService, serverInterceptor)) | 73 | .addService(ServerInterceptors.intercept(mealOrderGrpcService, serverInterceptor)) |
| 76 | - .addService(ServerInterceptors.intercept(orderSubscriptionMessageGrpcService, serverInterceptor)) | ||
| 77 | .build(); | 74 | .build(); |
| 78 | } | 75 | } |
| 79 | } | 76 | } | ... | ... |
| 1 | package com.tianting.infoloop.service; | 1 | package com.tianting.infoloop.service; |
| 2 | 2 | ||
| 3 | import com.baomidou.mybatisplus.extension.service.IService; | 3 | import com.baomidou.mybatisplus.extension.service.IService; |
| 4 | -import com.infoloop.tianting.ordersubscriptionmessageservice.CreateOrderSubscriptionMessageRpcRequest; | 4 | +import com.infoloop.tianting.mealorderservice.CreateOrderSubscriptionMessageRpcRequest; |
| 5 | -import com.infoloop.tianting.ordersubscriptionmessageservice.GetUserOrderSubscriptionMessageHistoryRpcRequest; | 5 | +import com.infoloop.tianting.mealorderservice.GetUserOrderSubscriptionMessageHistoryRpcRequest; |
| 6 | import com.tianting.infoloop.model.db.OrderSubscriptionMessageDb; | 6 | import com.tianting.infoloop.model.db.OrderSubscriptionMessageDb; |
| 7 | 7 | ||
| 8 | import java.util.List; | 8 | import java.util.List; | ... | ... |
| ... | @@ -7,6 +7,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ... | @@ -7,6 +7,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| 7 | import com.infoloop.tianting.mealorderservice.BatchCreateDinerMealSuspensionRecordsRpcRequest; | 7 | import com.infoloop.tianting.mealorderservice.BatchCreateDinerMealSuspensionRecordsRpcRequest; |
| 8 | import com.infoloop.tianting.mealorderservice.BatchCreateDinerMealSuspensionRecordsRpcResponse; | 8 | import com.infoloop.tianting.mealorderservice.BatchCreateDinerMealSuspensionRecordsRpcResponse; |
| 9 | import com.infoloop.tianting.mealorderservice.BatchCreateGradeClassesRpcRequest; | 9 | import com.infoloop.tianting.mealorderservice.BatchCreateGradeClassesRpcRequest; |
| 10 | +import com.infoloop.tianting.mealorderservice.BatchDeleteOrderSubscriptionMessagesByIdsRpcRequest; | ||
| 11 | +import com.infoloop.tianting.mealorderservice.BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse; | ||
| 12 | +import com.infoloop.tianting.mealorderservice.BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcRequest; | ||
| 13 | +import com.infoloop.tianting.mealorderservice.BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse; | ||
| 14 | +import com.infoloop.tianting.mealorderservice.CreateOrderSubscriptionMessageRpcRequest; | ||
| 15 | +import com.infoloop.tianting.mealorderservice.CreateOrderSubscriptionMessageRpcResponse; | ||
| 16 | +import com.infoloop.tianting.mealorderservice.GetUserOrderSubscriptionMessageHistoryRpcRequest; | ||
| 17 | +import com.infoloop.tianting.mealorderservice.GetUserOrderSubscriptionMessageHistoryRpcResponse; | ||
| 18 | +import com.infoloop.tianting.mealorderservice.OrderSubscriptionMessageRpcResponse; | ||
| 10 | import com.infoloop.tianting.mealorderservice.BatchCreateGradeClassesRpcResponse; | 19 | import com.infoloop.tianting.mealorderservice.BatchCreateGradeClassesRpcResponse; |
| 11 | import com.infoloop.tianting.mealorderservice.BatchCreateMealOrdersRpcRequest; | 20 | import com.infoloop.tianting.mealorderservice.BatchCreateMealOrdersRpcRequest; |
| 12 | import com.infoloop.tianting.mealorderservice.BatchCreateMealOrdersRpcResponse; | 21 | import com.infoloop.tianting.mealorderservice.BatchCreateMealOrdersRpcResponse; |
| ... | @@ -124,6 +133,8 @@ import com.tianting.infoloop.service.MealOrderService; | ... | @@ -124,6 +133,8 @@ import com.tianting.infoloop.service.MealOrderService; |
| 124 | import com.tianting.infoloop.service.MpAccountDinerRefService; | 133 | import com.tianting.infoloop.service.MpAccountDinerRefService; |
| 125 | import com.tianting.infoloop.service.MpAccountService; | 134 | import com.tianting.infoloop.service.MpAccountService; |
| 126 | import com.tianting.infoloop.service.DinerMealSuspensionRecordService; | 135 | import com.tianting.infoloop.service.DinerMealSuspensionRecordService; |
| 136 | +import com.tianting.infoloop.service.OrderSubscriptionMessageDbService; | ||
| 137 | +import com.tianting.infoloop.model.db.OrderSubscriptionMessageDb; | ||
| 127 | import com.tianting.infoloop.utils.ProtoBeanUtil; | 138 | import com.tianting.infoloop.utils.ProtoBeanUtil; |
| 128 | import io.grpc.Status; | 139 | import io.grpc.Status; |
| 129 | import io.grpc.stub.StreamObserver; | 140 | import io.grpc.stub.StreamObserver; |
| ... | @@ -134,10 +145,10 @@ import org.springframework.stereotype.Service; | ... | @@ -134,10 +145,10 @@ import org.springframework.stereotype.Service; |
| 134 | import org.springframework.transaction.annotation.Transactional; | 145 | import org.springframework.transaction.annotation.Transactional; |
| 135 | 146 | ||
| 136 | import java.time.DayOfWeek; | 147 | import java.time.DayOfWeek; |
| 137 | -import java.time.Instant; | ||
| 138 | import java.time.LocalDate; | 148 | import java.time.LocalDate; |
| 139 | import java.time.LocalDateTime; | 149 | import java.time.LocalDateTime; |
| 140 | import java.time.LocalTime; | 150 | import java.time.LocalTime; |
| 151 | +import java.time.ZoneId; | ||
| 141 | import java.time.temporal.TemporalAdjusters; | 152 | import java.time.temporal.TemporalAdjusters; |
| 142 | import java.util.ArrayList; | 153 | import java.util.ArrayList; |
| 143 | import java.util.Collections; | 154 | import java.util.Collections; |
| ... | @@ -167,6 +178,8 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi | ... | @@ -167,6 +178,8 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi |
| 167 | 178 | ||
| 168 | private final DinerMealSuspensionRecordService dinerMealSuspensionRecordService; | 179 | private final DinerMealSuspensionRecordService dinerMealSuspensionRecordService; |
| 169 | 180 | ||
| 181 | + private final OrderSubscriptionMessageDbService orderSubscriptionMessageDbService; | ||
| 182 | + | ||
| 170 | @Override | 183 | @Override |
| 171 | @DS(DATA_SOURCE_SLAVE) | 184 | @DS(DATA_SOURCE_SLAVE) |
| 172 | public void getMealOrderById(final GetMealOrderByIdRpcRequest request, | 185 | public void getMealOrderById(final GetMealOrderByIdRpcRequest request, |
| ... | @@ -1417,4 +1430,115 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi | ... | @@ -1417,4 +1430,115 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi |
| 1417 | responseObserver.onNext(builder.build()); | 1430 | responseObserver.onNext(builder.build()); |
| 1418 | responseObserver.onCompleted(); | 1431 | responseObserver.onCompleted(); |
| 1419 | } | 1432 | } |
| 1433 | + | ||
| 1434 | + // 订餐订阅消息相关服务实现 | ||
| 1435 | + @Override | ||
| 1436 | + @DS(DATA_SOURCE_MASTER) | ||
| 1437 | + public void createOrderSubscriptionMessage(final CreateOrderSubscriptionMessageRpcRequest request, | ||
| 1438 | + final StreamObserver<CreateOrderSubscriptionMessageRpcResponse> responseObserver) { | ||
| 1439 | + final var builder = CreateOrderSubscriptionMessageRpcResponse.newBuilder(); | ||
| 1440 | + try { | ||
| 1441 | + final var data = orderSubscriptionMessageDbService.createOrderSubscriptionMessage(request); | ||
| 1442 | + builder.setId(data.getId()); | ||
| 1443 | + } catch (final Exception e) { | ||
| 1444 | + log.error("createOrderSubscriptionMessage error;", e); | ||
| 1445 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1446 | + return; | ||
| 1447 | + } | ||
| 1448 | + responseObserver.onNext(builder.build()); | ||
| 1449 | + responseObserver.onCompleted(); | ||
| 1450 | + } | ||
| 1451 | + | ||
| 1452 | + @Override | ||
| 1453 | + @DS(DATA_SOURCE_MASTER) | ||
| 1454 | + public void getUserOrderSubscriptionMessageHistory(final GetUserOrderSubscriptionMessageHistoryRpcRequest request, | ||
| 1455 | + final StreamObserver<GetUserOrderSubscriptionMessageHistoryRpcResponse> responseObserver) { | ||
| 1456 | + final var builder = GetUserOrderSubscriptionMessageHistoryRpcResponse.newBuilder(); | ||
| 1457 | + try { | ||
| 1458 | + final var list = orderSubscriptionMessageDbService.getUserOrderSubscriptionMessageHistory(request); | ||
| 1459 | + builder.addAllResponse(list.stream() | ||
| 1460 | + .map(this::convertToRpcResponse) | ||
| 1461 | + .collect(Collectors.toList())); | ||
| 1462 | + } catch (final Exception e) { | ||
| 1463 | + log.error("getUserOrderSubscriptionMessageHistory error;", e); | ||
| 1464 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1465 | + return; | ||
| 1466 | + } | ||
| 1467 | + responseObserver.onNext(builder.build()); | ||
| 1468 | + responseObserver.onCompleted(); | ||
| 1469 | + } | ||
| 1470 | + | ||
| 1471 | + private OrderSubscriptionMessageRpcResponse convertToRpcResponse(OrderSubscriptionMessageDb db) { | ||
| 1472 | + OrderSubscriptionMessageRpcResponse.Builder builder = OrderSubscriptionMessageRpcResponse.newBuilder(); | ||
| 1473 | + builder.setId(db.getId()); | ||
| 1474 | + | ||
| 1475 | + if (db.getJumpPath() != null) { | ||
| 1476 | + builder.setJumpPath(db.getJumpPath()); | ||
| 1477 | + } | ||
| 1478 | + | ||
| 1479 | + // 转换LocalDateTime为时间戳(毫秒),与项目中其他时间字段保持一致 | ||
| 1480 | + if (db.getOrderPeriodStartDate() != null) { | ||
| 1481 | + long timestamp = db.getOrderPeriodStartDate().atZone(ZoneId.systemDefault()) | ||
| 1482 | + .toInstant() | ||
| 1483 | + .toEpochMilli(); | ||
| 1484 | + builder.setOrderPeriodStartDate(timestamp); | ||
| 1485 | + } | ||
| 1486 | + | ||
| 1487 | + if (db.getOrderPeriodEndDate() != null) { | ||
| 1488 | + long timestamp = db.getOrderPeriodEndDate().atZone(ZoneId.systemDefault()) | ||
| 1489 | + .toInstant() | ||
| 1490 | + .toEpochMilli(); | ||
| 1491 | + builder.setOrderPeriodEndDate(timestamp); | ||
| 1492 | + } | ||
| 1493 | + | ||
| 1494 | + // 转换LocalDateTime为时间戳(毫秒) | ||
| 1495 | + if (db.getCreatedAt() != null) { | ||
| 1496 | + long timestamp = db.getCreatedAt().atZone(ZoneId.systemDefault()) | ||
| 1497 | + .toInstant() | ||
| 1498 | + .toEpochMilli(); | ||
| 1499 | + builder.setCreatedAt(timestamp); | ||
| 1500 | + } | ||
| 1501 | + | ||
| 1502 | + builder.setIsDeleted(db.getIsDeleted() != null && db.getIsDeleted()); | ||
| 1503 | + return builder.build(); | ||
| 1504 | + } | ||
| 1505 | + | ||
| 1506 | + @Override | ||
| 1507 | + @DS(DATA_SOURCE_MASTER) | ||
| 1508 | + public void batchDeleteOrderSubscriptionMessagesByIds(final BatchDeleteOrderSubscriptionMessagesByIdsRpcRequest request, | ||
| 1509 | + final StreamObserver<BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse> responseObserver) { | ||
| 1510 | + final var builder = BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse.newBuilder(); | ||
| 1511 | + try { | ||
| 1512 | + final int affectedRows = orderSubscriptionMessageDbService.batchDeleteByIds( | ||
| 1513 | + request.getIdsList(), | ||
| 1514 | + request.getEnterpriseId()); | ||
| 1515 | + builder.setAffectedRows(affectedRows); | ||
| 1516 | + } catch (final Exception e) { | ||
| 1517 | + log.error("batchDeleteOrderSubscriptionMessagesByIds error;", e); | ||
| 1518 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1519 | + return; | ||
| 1520 | + } | ||
| 1521 | + responseObserver.onNext(builder.build()); | ||
| 1522 | + responseObserver.onCompleted(); | ||
| 1523 | + } | ||
| 1524 | + | ||
| 1525 | + @Override | ||
| 1526 | + @DS(DATA_SOURCE_MASTER) | ||
| 1527 | + public void batchPhysicalDeleteOrderSubscriptionMessagesByIds( | ||
| 1528 | + final BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcRequest request, | ||
| 1529 | + final StreamObserver<BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse> responseObserver) { | ||
| 1530 | + final var builder = BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse.newBuilder(); | ||
| 1531 | + try { | ||
| 1532 | + final int affectedRows = orderSubscriptionMessageDbService.batchPhysicalDeleteByIds( | ||
| 1533 | + request.getIdsList(), | ||
| 1534 | + request.getEnterpriseId()); | ||
| 1535 | + builder.setAffectedRows(affectedRows); | ||
| 1536 | + } catch (final Exception e) { | ||
| 1537 | + log.error("batchPhysicalDeleteOrderSubscriptionMessagesByIds error;", e); | ||
| 1538 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1539 | + return; | ||
| 1540 | + } | ||
| 1541 | + responseObserver.onNext(builder.build()); | ||
| 1542 | + responseObserver.onCompleted(); | ||
| 1543 | + } | ||
| 1420 | } | 1544 | } | ... | ... |
src/main/java/com/tianting/infoloop/service/grpc/OrderSubscriptionMessageGrpcService.java
deleted
100644 → 0
| 1 | -package com.tianting.infoloop.service.grpc; | ||
| 2 | - | ||
| 3 | -import com.baomidou.dynamic.datasource.annotation.DS; | ||
| 4 | -import com.infoloop.tianting.ordersubscriptionmessageservice.BatchDeleteOrderSubscriptionMessagesByIdsRpcRequest; | ||
| 5 | -import com.infoloop.tianting.ordersubscriptionmessageservice.BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse; | ||
| 6 | -import com.infoloop.tianting.ordersubscriptionmessageservice.BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcRequest; | ||
| 7 | -import com.infoloop.tianting.ordersubscriptionmessageservice.BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse; | ||
| 8 | -import com.infoloop.tianting.ordersubscriptionmessageservice.CreateOrderSubscriptionMessageRpcRequest; | ||
| 9 | -import com.infoloop.tianting.ordersubscriptionmessageservice.CreateOrderSubscriptionMessageRpcResponse; | ||
| 10 | -import com.infoloop.tianting.ordersubscriptionmessageservice.GetUserOrderSubscriptionMessageHistoryRpcRequest; | ||
| 11 | -import com.infoloop.tianting.ordersubscriptionmessageservice.GetUserOrderSubscriptionMessageHistoryRpcResponse; | ||
| 12 | -import com.infoloop.tianting.ordersubscriptionmessageservice.OrderSubscriptionMessageRpcResponse; | ||
| 13 | -import com.infoloop.tianting.ordersubscriptionmessageservice.OrderSubscriptionMessageServiceRpcGrpc; | ||
| 14 | -import com.tianting.infoloop.model.db.OrderSubscriptionMessageDb; | ||
| 15 | -import com.tianting.infoloop.service.OrderSubscriptionMessageDbService; | ||
| 16 | -import io.grpc.Status; | ||
| 17 | -import io.grpc.stub.StreamObserver; | ||
| 18 | -import lombok.RequiredArgsConstructor; | ||
| 19 | -import lombok.extern.slf4j.Slf4j; | ||
| 20 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 21 | -import org.springframework.stereotype.Service; | ||
| 22 | - | ||
| 23 | -import java.time.ZoneId; | ||
| 24 | -import java.util.stream.Collectors; | ||
| 25 | - | ||
| 26 | -import static com.tianting.infoloop.constants.ConfigConstants.DATA_SOURCE_MASTER; | ||
| 27 | - | ||
| 28 | -@Slf4j | ||
| 29 | -@Service | ||
| 30 | -@RequiredArgsConstructor(onConstructor_ = @Autowired) | ||
| 31 | -public class OrderSubscriptionMessageGrpcService extends OrderSubscriptionMessageServiceRpcGrpc.OrderSubscriptionMessageServiceRpcImplBase { | ||
| 32 | - private final OrderSubscriptionMessageDbService orderSubscriptionMessageDbService; | ||
| 33 | - | ||
| 34 | - @Override | ||
| 35 | - @DS(DATA_SOURCE_MASTER) | ||
| 36 | - public void createOrderSubscriptionMessage(final CreateOrderSubscriptionMessageRpcRequest request, | ||
| 37 | - final StreamObserver<CreateOrderSubscriptionMessageRpcResponse> responseObserver) { | ||
| 38 | - final var builder = CreateOrderSubscriptionMessageRpcResponse.newBuilder(); | ||
| 39 | - try { | ||
| 40 | - final var data = orderSubscriptionMessageDbService.createOrderSubscriptionMessage(request); | ||
| 41 | - builder.setId(data.getId()); | ||
| 42 | - } catch (final Exception e) { | ||
| 43 | - log.error("createOrderSubscriptionMessage error;", e); | ||
| 44 | - responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 45 | - return; | ||
| 46 | - } | ||
| 47 | - responseObserver.onNext(builder.build()); | ||
| 48 | - responseObserver.onCompleted(); | ||
| 49 | - } | ||
| 50 | - | ||
| 51 | - @Override | ||
| 52 | - @DS(DATA_SOURCE_MASTER) | ||
| 53 | - public void getUserOrderSubscriptionMessageHistory(final GetUserOrderSubscriptionMessageHistoryRpcRequest request, | ||
| 54 | - final StreamObserver<GetUserOrderSubscriptionMessageHistoryRpcResponse> responseObserver) { | ||
| 55 | - final var builder = GetUserOrderSubscriptionMessageHistoryRpcResponse.newBuilder(); | ||
| 56 | - try { | ||
| 57 | - final var list = orderSubscriptionMessageDbService.getUserOrderSubscriptionMessageHistory(request); | ||
| 58 | - builder.addAllResponse(list.stream() | ||
| 59 | - .map(this::convertToRpcResponse) | ||
| 60 | - .collect(Collectors.toList())); | ||
| 61 | - } catch (final Exception e) { | ||
| 62 | - log.error("getUserOrderSubscriptionMessageHistory error;", e); | ||
| 63 | - responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 64 | - return; | ||
| 65 | - } | ||
| 66 | - responseObserver.onNext(builder.build()); | ||
| 67 | - responseObserver.onCompleted(); | ||
| 68 | - } | ||
| 69 | - | ||
| 70 | - private OrderSubscriptionMessageRpcResponse convertToRpcResponse(OrderSubscriptionMessageDb db) { | ||
| 71 | - OrderSubscriptionMessageRpcResponse.Builder builder = OrderSubscriptionMessageRpcResponse.newBuilder(); | ||
| 72 | - builder.setId(db.getId()); | ||
| 73 | - | ||
| 74 | - if (db.getJumpPath() != null) { | ||
| 75 | - builder.setJumpPath(db.getJumpPath()); | ||
| 76 | - } | ||
| 77 | - | ||
| 78 | - // 转换LocalDateTime为时间戳(毫秒),与项目中其他时间字段保持一致 | ||
| 79 | - if (db.getOrderPeriodStartDate() != null) { | ||
| 80 | - long timestamp = db.getOrderPeriodStartDate().atZone(ZoneId.systemDefault()) | ||
| 81 | - .toInstant() | ||
| 82 | - .toEpochMilli(); | ||
| 83 | - builder.setOrderPeriodStartDate(timestamp); | ||
| 84 | - } | ||
| 85 | - | ||
| 86 | - if (db.getOrderPeriodEndDate() != null) { | ||
| 87 | - long timestamp = db.getOrderPeriodEndDate().atZone(ZoneId.systemDefault()) | ||
| 88 | - .toInstant() | ||
| 89 | - .toEpochMilli(); | ||
| 90 | - builder.setOrderPeriodEndDate(timestamp); | ||
| 91 | - } | ||
| 92 | - | ||
| 93 | - // 转换LocalDateTime为时间戳(毫秒) | ||
| 94 | - if (db.getCreatedAt() != null) { | ||
| 95 | - long timestamp = db.getCreatedAt().atZone(ZoneId.systemDefault()) | ||
| 96 | - .toInstant() | ||
| 97 | - .toEpochMilli(); | ||
| 98 | - builder.setCreatedAt(timestamp); | ||
| 99 | - } | ||
| 100 | - | ||
| 101 | - builder.setIsDeleted(db.getIsDeleted() != null && db.getIsDeleted()); | ||
| 102 | - return builder.build(); | ||
| 103 | - } | ||
| 104 | - | ||
| 105 | - @Override | ||
| 106 | - @DS(DATA_SOURCE_MASTER) | ||
| 107 | - public void batchDeleteOrderSubscriptionMessagesByIds(final BatchDeleteOrderSubscriptionMessagesByIdsRpcRequest request, | ||
| 108 | - final StreamObserver<BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse> responseObserver) { | ||
| 109 | - final var builder = BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse.newBuilder(); | ||
| 110 | - try { | ||
| 111 | - final int affectedRows = orderSubscriptionMessageDbService.batchDeleteByIds( | ||
| 112 | - request.getIdsList(), | ||
| 113 | - request.getEnterpriseId()); | ||
| 114 | - builder.setAffectedRows(affectedRows); | ||
| 115 | - } catch (final Exception e) { | ||
| 116 | - log.error("batchDeleteOrderSubscriptionMessagesByIds error;", e); | ||
| 117 | - responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 118 | - return; | ||
| 119 | - } | ||
| 120 | - responseObserver.onNext(builder.build()); | ||
| 121 | - responseObserver.onCompleted(); | ||
| 122 | - } | ||
| 123 | - | ||
| 124 | - @Override | ||
| 125 | - @DS(DATA_SOURCE_MASTER) | ||
| 126 | - public void batchPhysicalDeleteOrderSubscriptionMessagesByIds( | ||
| 127 | - final BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcRequest request, | ||
| 128 | - final StreamObserver<BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse> responseObserver) { | ||
| 129 | - final var builder = BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse.newBuilder(); | ||
| 130 | - try { | ||
| 131 | - final int affectedRows = orderSubscriptionMessageDbService.batchPhysicalDeleteByIds( | ||
| 132 | - request.getIdsList(), | ||
| 133 | - request.getEnterpriseId()); | ||
| 134 | - builder.setAffectedRows(affectedRows); | ||
| 135 | - } catch (final Exception e) { | ||
| 136 | - log.error("batchPhysicalDeleteOrderSubscriptionMessagesByIds error;", e); | ||
| 137 | - responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 138 | - return; | ||
| 139 | - } | ||
| 140 | - responseObserver.onNext(builder.build()); | ||
| 141 | - responseObserver.onCompleted(); | ||
| 142 | - } | ||
| 143 | -} | ||
| 144 | - |
| ... | @@ -2,8 +2,8 @@ package com.tianting.infoloop.service.impl; | ... | @@ -2,8 +2,8 @@ package com.tianting.infoloop.service.impl; |
| 2 | 2 | ||
| 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 4 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 4 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| 5 | -import com.infoloop.tianting.ordersubscriptionmessageservice.CreateOrderSubscriptionMessageRpcRequest; | 5 | +import com.infoloop.tianting.mealorderservice.CreateOrderSubscriptionMessageRpcRequest; |
| 6 | -import com.infoloop.tianting.ordersubscriptionmessageservice.GetUserOrderSubscriptionMessageHistoryRpcRequest; | 6 | +import com.infoloop.tianting.mealorderservice.GetUserOrderSubscriptionMessageHistoryRpcRequest; |
| 7 | import com.tianting.infoloop.mapper.OrderSubscriptionMessageMapper; | 7 | import com.tianting.infoloop.mapper.OrderSubscriptionMessageMapper; |
| 8 | import com.tianting.infoloop.model.db.OrderSubscriptionMessageDb; | 8 | import com.tianting.infoloop.model.db.OrderSubscriptionMessageDb; |
| 9 | import com.tianting.infoloop.service.OrderSubscriptionMessageDbService; | 9 | import com.tianting.infoloop.service.OrderSubscriptionMessageDbService; | ... | ... |
| ... | @@ -63,6 +63,12 @@ service MealOrderServiceRpc { | ... | @@ -63,6 +63,12 @@ service MealOrderServiceRpc { |
| 63 | rpc batchCreateDinerMealSuspensionRecords(BatchCreateDinerMealSuspensionRecordsRpcRequest) returns (BatchCreateDinerMealSuspensionRecordsRpcResponse); | 63 | rpc batchCreateDinerMealSuspensionRecords(BatchCreateDinerMealSuspensionRecordsRpcRequest) returns (BatchCreateDinerMealSuspensionRecordsRpcResponse); |
| 64 | rpc updateDinerMealSuspensionRecord(UpdateDinerMealSuspensionRecordRpcRequest) returns (UpdateDinerMealSuspensionRecordRpcResponse); | 64 | rpc updateDinerMealSuspensionRecord(UpdateDinerMealSuspensionRecordRpcRequest) returns (UpdateDinerMealSuspensionRecordRpcResponse); |
| 65 | rpc deleteDinerMealSuspensionRecordsByIds(DeleteDinerMealSuspensionRecordsByIdsRpcRequest) returns (DeleteDinerMealSuspensionRecordsRpcResponse); | 65 | rpc deleteDinerMealSuspensionRecordsByIds(DeleteDinerMealSuspensionRecordsByIdsRpcRequest) returns (DeleteDinerMealSuspensionRecordsRpcResponse); |
| 66 | + | ||
| 67 | + // 订餐订阅消息相关服务 | ||
| 68 | + rpc CreateOrderSubscriptionMessage (CreateOrderSubscriptionMessageRpcRequest) returns (CreateOrderSubscriptionMessageRpcResponse) {} | ||
| 69 | + rpc GetUserOrderSubscriptionMessageHistory (GetUserOrderSubscriptionMessageHistoryRpcRequest) returns (GetUserOrderSubscriptionMessageHistoryRpcResponse) {} | ||
| 70 | + rpc BatchDeleteOrderSubscriptionMessagesByIds (BatchDeleteOrderSubscriptionMessagesByIdsRpcRequest) returns (BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse) {} | ||
| 71 | + rpc BatchPhysicalDeleteOrderSubscriptionMessagesByIds (BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcRequest) returns (BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse) {} | ||
| 66 | } | 72 | } |
| 67 | 73 | ||
| 68 | enum MealOrderOrderMethodEnum { | 74 | enum MealOrderOrderMethodEnum { |
| ... | @@ -955,3 +961,55 @@ message BatchCreateDinerMealSuspensionRecordsRpcResponse { | ... | @@ -955,3 +961,55 @@ message BatchCreateDinerMealSuspensionRecordsRpcResponse { |
| 955 | bool isCreated = 1; | 961 | bool isCreated = 1; |
| 956 | repeated int32 ids = 2; | 962 | repeated int32 ids = 2; |
| 957 | } | 963 | } |
| 964 | + | ||
| 965 | +// 订餐订阅消息相关消息定义 | ||
| 966 | +message CreateOrderSubscriptionMessageRpcRequest { | ||
| 967 | + int32 enterpriseId = 1; | ||
| 968 | + int32 dinerId = 2; | ||
| 969 | + string openId = 3; | ||
| 970 | + string templateId = 4; | ||
| 971 | + int64 orderPeriodStartDate = 5; // Unix 时间戳(毫秒),精确到秒 | ||
| 972 | + string jumpPath = 6; // 跳转路径(小程序 path),可选 | ||
| 973 | + int64 orderPeriodEndDate = 7; // Unix 时间戳(毫秒),精确到秒,可选 | ||
| 974 | +} | ||
| 975 | + | ||
| 976 | +message CreateOrderSubscriptionMessageRpcResponse { | ||
| 977 | + int64 id = 1; | ||
| 978 | +} | ||
| 979 | + | ||
| 980 | +message GetUserOrderSubscriptionMessageHistoryRpcRequest { | ||
| 981 | + int32 enterpriseId = 1; | ||
| 982 | + string openId = 2; | ||
| 983 | + int64 orderPeriodStartDate = 3; // Unix 时间戳(毫秒),精确到秒,可选,如果传入则查询大于等于该值的记录 | ||
| 984 | +} | ||
| 985 | + | ||
| 986 | +message OrderSubscriptionMessageRpcResponse { | ||
| 987 | + int64 id = 1; | ||
| 988 | + int64 orderPeriodStartDate = 2; // Unix 时间戳(毫秒),精确到秒 | ||
| 989 | + int64 createdAt = 3; // Unix 时间戳(毫秒) | ||
| 990 | + bool isDeleted = 4; | ||
| 991 | + string jumpPath = 5; // 跳转路径(小程序 path),可选 | ||
| 992 | + int64 orderPeriodEndDate = 6; // Unix 时间戳(毫秒),精确到秒,可选 | ||
| 993 | +} | ||
| 994 | + | ||
| 995 | +message GetUserOrderSubscriptionMessageHistoryRpcResponse { | ||
| 996 | + repeated OrderSubscriptionMessageRpcResponse response = 1; | ||
| 997 | +} | ||
| 998 | + | ||
| 999 | +message BatchDeleteOrderSubscriptionMessagesByIdsRpcRequest { | ||
| 1000 | + int32 enterpriseId = 1; | ||
| 1001 | + repeated int64 ids = 2; // 要删除的记录ID列表 | ||
| 1002 | +} | ||
| 1003 | + | ||
| 1004 | +message BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse { | ||
| 1005 | + int32 affectedRows = 1; // 受影响的行数 | ||
| 1006 | +} | ||
| 1007 | + | ||
| 1008 | +message BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcRequest { | ||
| 1009 | + int32 enterpriseId = 1; | ||
| 1010 | + repeated int64 ids = 2; // 要删除的记录ID列表 | ||
| 1011 | +} | ||
| 1012 | + | ||
| 1013 | +message BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse { | ||
| 1014 | + int32 affectedRows = 1; // 受影响的行数 | ||
| 1015 | +} | ... | ... |
| 1 | -syntax = "proto3"; | ||
| 2 | - | ||
| 3 | -option java_multiple_files = true; | ||
| 4 | -option java_package = "com.infoloop.tianting.ordersubscriptionmessageservice"; | ||
| 5 | -option java_outer_classname = "OrderSubscriptionMessageServiceProto"; | ||
| 6 | -option objc_class_prefix = "OP"; | ||
| 7 | - | ||
| 8 | -package com.infoloop.tianting.ordersubscriptionmessageservice; | ||
| 9 | - | ||
| 10 | -service OrderSubscriptionMessageServiceRpc { | ||
| 11 | - // 创建订阅消息授权 | ||
| 12 | - rpc CreateOrderSubscriptionMessage (CreateOrderSubscriptionMessageRpcRequest) returns (CreateOrderSubscriptionMessageRpcResponse) {} | ||
| 13 | - | ||
| 14 | - // 查询用户授权历史 | ||
| 15 | - rpc GetUserOrderSubscriptionMessageHistory (GetUserOrderSubscriptionMessageHistoryRpcRequest) returns (GetUserOrderSubscriptionMessageHistoryRpcResponse) {} | ||
| 16 | - | ||
| 17 | - // 批量逻辑删除授权记录(表示已使用) | ||
| 18 | - rpc BatchDeleteOrderSubscriptionMessagesByIds (BatchDeleteOrderSubscriptionMessagesByIdsRpcRequest) returns (BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse) {} | ||
| 19 | - | ||
| 20 | - // 批量物理删除授权记录 | ||
| 21 | - rpc BatchPhysicalDeleteOrderSubscriptionMessagesByIds (BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcRequest) returns (BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse) {} | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | -// 创建订阅消息授权请求 | ||
| 25 | -message CreateOrderSubscriptionMessageRpcRequest { | ||
| 26 | - int32 enterpriseId = 1; | ||
| 27 | - int32 dinerId = 2; | ||
| 28 | - string openId = 3; | ||
| 29 | - string templateId = 4; | ||
| 30 | - int64 orderPeriodStartDate = 5; // Unix 时间戳(毫秒),精确到秒 | ||
| 31 | - string jumpPath = 6; // 跳转路径(小程序 path),可选 | ||
| 32 | - int64 orderPeriodEndDate = 7; // Unix 时间戳(毫秒),精确到秒,可选 | ||
| 33 | -} | ||
| 34 | - | ||
| 35 | -// 创建订阅消息授权响应 | ||
| 36 | -message CreateOrderSubscriptionMessageRpcResponse { | ||
| 37 | - int64 id = 1; | ||
| 38 | -} | ||
| 39 | - | ||
| 40 | -// 查询用户授权历史请求 | ||
| 41 | -message GetUserOrderSubscriptionMessageHistoryRpcRequest { | ||
| 42 | - int32 enterpriseId = 1; | ||
| 43 | - string openId = 2; | ||
| 44 | - int64 orderPeriodStartDate = 3; // Unix 时间戳(毫秒),精确到秒,可选,如果传入则查询大于等于该值的记录 | ||
| 45 | -} | ||
| 46 | - | ||
| 47 | -// 订阅消息授权记录 | ||
| 48 | -message OrderSubscriptionMessageRpcResponse { | ||
| 49 | - int64 id = 1; | ||
| 50 | - int64 orderPeriodStartDate = 2; // Unix 时间戳(毫秒),精确到秒 | ||
| 51 | - int64 createdAt = 3; // Unix 时间戳(毫秒) | ||
| 52 | - bool isDeleted = 4; | ||
| 53 | - string jumpPath = 5; // 跳转路径(小程序 path),可选 | ||
| 54 | - int64 orderPeriodEndDate = 6; // Unix 时间戳(毫秒),精确到秒,可选 | ||
| 55 | -} | ||
| 56 | - | ||
| 57 | -// 查询用户授权历史响应 | ||
| 58 | -message GetUserOrderSubscriptionMessageHistoryRpcResponse { | ||
| 59 | - repeated OrderSubscriptionMessageRpcResponse response = 1; | ||
| 60 | -} | ||
| 61 | - | ||
| 62 | -// 批量逻辑删除授权记录请求 | ||
| 63 | -message BatchDeleteOrderSubscriptionMessagesByIdsRpcRequest { | ||
| 64 | - int32 enterpriseId = 1; | ||
| 65 | - repeated int64 ids = 2; // 要删除的记录ID列表 | ||
| 66 | -} | ||
| 67 | - | ||
| 68 | -// 批量逻辑删除授权记录响应 | ||
| 69 | -message BatchDeleteOrderSubscriptionMessagesByIdsRpcResponse { | ||
| 70 | - int32 affectedRows = 1; // 受影响的行数 | ||
| 71 | -} | ||
| 72 | - | ||
| 73 | -// 批量物理删除授权记录请求 | ||
| 74 | -message BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcRequest { | ||
| 75 | - int32 enterpriseId = 1; | ||
| 76 | - repeated int64 ids = 2; // 要删除的记录ID列表 | ||
| 77 | -} | ||
| 78 | - | ||
| 79 | -// 批量物理删除授权记录响应 | ||
| 80 | -message BatchPhysicalDeleteOrderSubscriptionMessagesByIdsRpcResponse { | ||
| 81 | - int32 affectedRows = 1; // 受影响的行数 | ||
| 82 | -} | ||
| 83 | - |
-
Please register or login to post a comment