zhuyifan

feat(ClientCustomerOrderService): 添加 SKU 菜品库存相关 RPC接口

package com.tianting.infoloop.mapper;
import com.tianting.infoloop.inject.MyBaseMapper;
import com.tianting.infoloop.model.db.SkuSellQuantity;
/**
* @author zhuyf
* @description 针对表【sku_sell_quantities(sku售卖量)】的数据库操作Mapper
* @createDate 2025-02-28 14:03:59
* @Entity com.tianting.infoloop.model.db.SkuSellQuantity
*/
public interface SkuSellQuantityMapper extends MyBaseMapper<SkuSellQuantity> {
}
package com.tianting.infoloop.model.db;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* sku售卖量
* @TableName sku_sell_quantities
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
@TableName(value ="sku_sell_quantities")
public class SkuSellQuantity extends Model<OrderDetailDb> implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
/**
*
*/
private Integer enterpriseId;
/**
*
*/
private Integer stallId;
/**
* 商品ID
*/
private Integer skuId;
/**
* 最大可售量
*/
private Integer maxSellQuantity;
/**
* 今日已售量
*/
private Integer todaySellQuantity;
/**
*
*/
private Integer createdBy;
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt;
/**
*
*/
private Integer creationSource;
/**
*
*/
private Integer updatedBy;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updatedAt;
/**
*
*/
private Integer updateSource;
@TableLogic
private Integer isDeleted;
}
\ No newline at end of file
package com.tianting.infoloop.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tianting.infoloop.model.db.SkuSellQuantity;
/**
* @author zhuyf
* @description 针对表【sku_sell_quantities(sku售卖量)】的数据库操作Service
* @createDate 2025-02-28 14:03:59
*/
public interface SkuSellQuantityService extends IService<SkuSellQuantity> {
}
......@@ -13,6 +13,8 @@ import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustome
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrdersRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateOrderOperationRecordsRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateOrderOperationRecordsResponse;
import com.infoloop.tianting.clientcustomerorderservice.BatchSaveSkuSellQuantitiesRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchSaveSkuSellQuantitiesRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrderDetailsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrderDetailsRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrdersRpcRequest;
......@@ -42,13 +44,18 @@ import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecords
import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecordsByOrderIdResponse;
import com.infoloop.tianting.clientcustomerorderservice.OrderCountByStatus;
import com.infoloop.tianting.clientcustomerorderservice.OrderOperationRecord;
import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum;
import com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByConditionRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByConditionRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByPaginationRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByPaginationRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.QuerySkuSellQuantitiesByStallAndSkuIdsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.QuerySkuSellQuantitiesByStallAndSkuIdsRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.QuerySkuSellQuantitiesByStallRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.QuerySkuSellQuantitiesByStallRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.SingleSkuSellQuantityRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.SkuSellQuantityModification;
import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderDetailRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderDetailRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderRpcRequest;
......@@ -56,9 +63,11 @@ import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrde
import com.tianting.infoloop.model.db.OrderDb;
import com.tianting.infoloop.model.db.OrderDetailDb;
import com.tianting.infoloop.model.db.OrderOperationRecordDb;
import com.tianting.infoloop.model.db.SkuSellQuantity;
import com.tianting.infoloop.service.OrderDbService;
import com.tianting.infoloop.service.OrderDetailDbService;
import com.tianting.infoloop.service.OrderOperationRecordDbService;
import com.tianting.infoloop.service.SkuSellQuantityService;
import com.tianting.infoloop.utils.DbToProtoUtil;
import com.tianting.infoloop.utils.ProtoBeanUtil;
import io.grpc.Status;
......@@ -68,349 +77,353 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static com.tianting.infoloop.constants.ConfigConstants.DATA_SOURCE_MASTER;
import static com.tianting.infoloop.constants.ConfigConstants.DATA_SOURCE_SLAVE;
@Slf4j
@Service
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class OrderGrpcService extends ClientCustomerOrderServiceRpcGrpc.ClientCustomerOrderServiceRpcImplBase {
private final OrderDbService orderDbService;
private final OrderDetailDbService orderDetailDbService;
private final OrderOperationRecordDbService orderOperationRecordDbService;
@Override
@DS(DATA_SOURCE_MASTER)
public void createClientCustomerOrder(final CreateClientCustomerOrderRpcRequest request,
final StreamObserver<CreateClientCustomerOrderRpcResponse> responseObserver) {
final var builder = CreateClientCustomerOrderRpcResponse.newBuilder();
try {
final var data = orderDbService.createOrderDb(request);
builder.setId(data.getId());
builder.setIsCreated(true);
} catch (final Exception e) {
log.error("createClientCustomerOrder error;", e);
responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
private final OrderDbService orderDbService;
private final OrderDetailDbService orderDetailDbService;
private final OrderOperationRecordDbService orderOperationRecordDbService;
private final SkuSellQuantityService skuSellQuantityService;
@Override
@DS(DATA_SOURCE_MASTER)
public void createClientCustomerOrder(final CreateClientCustomerOrderRpcRequest request,
final StreamObserver<CreateClientCustomerOrderRpcResponse> responseObserver) {
final var builder = CreateClientCustomerOrderRpcResponse.newBuilder();
try {
final var data = orderDbService.createOrderDb(request);
builder.setId(data.getId());
builder.setIsCreated(true);
} catch (final Exception e) {
log.error("createClientCustomerOrder error;", e);
responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void batchCreateClientCustomerOrders(final BatchCreateClientCustomerOrdersRpcRequest request,
final StreamObserver<BatchCreateClientCustomerOrdersRpcResponse> responseStreamObserver) {
final var builder = BatchCreateClientCustomerOrdersRpcResponse.newBuilder();
try {
final var data = orderDbService.batchCreateOrderDbs(request);
builder.setIsCreated(data.size() == request.getCreationsCount()).addAllIds(data.stream().map(
OrderDb::getId).collect(Collectors.toList()));
} catch (final Exception e) {
log.error("createClientCustomerOrder error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
@Override
@DS(DATA_SOURCE_MASTER)
public void batchCreateClientCustomerOrders(final BatchCreateClientCustomerOrdersRpcRequest request,
final StreamObserver<BatchCreateClientCustomerOrdersRpcResponse> responseStreamObserver) {
final var builder = BatchCreateClientCustomerOrdersRpcResponse.newBuilder();
try {
final var data = orderDbService.batchCreateOrderDbs(request);
builder.setIsCreated(data.size() == request.getCreationsCount()).addAllIds(data.stream().map(
OrderDb::getId).collect(Collectors.toList()));
} catch (final Exception e) {
log.error("createClientCustomerOrder error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrdersByCustomerId(final GetClientCustomerOrdersByCustomerIdRpcRequest request,
final StreamObserver<GetClientCustomerOrdersByCustomerIdRpcResponse> responseObserver) {
final var builder = GetClientCustomerOrdersByCustomerIdRpcResponse.newBuilder();
try {
final var list = orderDbService.getOrdersByCustomerId(request.getCustomerId());
if (!list.isEmpty()) {
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrdersByCustomerId(final GetClientCustomerOrdersByCustomerIdRpcRequest request,
final StreamObserver<GetClientCustomerOrdersByCustomerIdRpcResponse> responseObserver) {
final var builder = GetClientCustomerOrdersByCustomerIdRpcResponse.newBuilder();
try {
final var list = orderDbService.getOrdersByCustomerId(request.getCustomerId());
if (!list.isEmpty()) {
// final var allResponses = ProtoBeanUtil.beanListToProtoList(list,
// SingleClientCustomerOrderRpcResponse.class);
final var allResponses = DbToProtoUtil.orderDbListToProtoList(list);
builder.addAllResponses(allResponses);
}
} catch (final Exception e) {
log.error("getClientCustomerOrdersByCustomerId error;", e);
responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
final var allResponses = DbToProtoUtil.orderDbListToProtoList(list);
builder.addAllResponses(allResponses);
}
} catch (final Exception e) {
log.error("getClientCustomerOrdersByCustomerId error;", e);
responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrderById(final GetClientCustomerOrderByIdRpcRequest request,
final StreamObserver<GetClientCustomerOrderByIdRpcResponse> responseStreamObserver) {
final var builder = GetClientCustomerOrderByIdRpcResponse.newBuilder();
try {
final var data = orderDbService.getById(request.getId());
if (data != null) {
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrderById(final GetClientCustomerOrderByIdRpcRequest request,
final StreamObserver<GetClientCustomerOrderByIdRpcResponse> responseStreamObserver) {
final var builder = GetClientCustomerOrderByIdRpcResponse.newBuilder();
try {
final var data = orderDbService.getById(request.getId());
if (data != null) {
// builder.setResponse(ProtoBeanUtil.beanToProto(data, SingleClientCustomerOrderRpcResponse.class));
builder.setResponse(DbToProtoUtil.orderDbToProto(data));
}
} catch (final Exception e) {
log.error("getClientCustomerOrderById error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
builder.setResponse(DbToProtoUtil.orderDbToProto(data));
}
} catch (final Exception e) {
log.error("getClientCustomerOrderById error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrdersByIds(final GetClientCustomerOrdersByIdsRpcRequest request,
final StreamObserver<GetClientCustomerOrdersByIdsRpcResponse> responseStreamObserver) {
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrdersByIds(final GetClientCustomerOrdersByIdsRpcRequest request,
final StreamObserver<GetClientCustomerOrdersByIdsRpcResponse> responseStreamObserver) {
final var builder = GetClientCustomerOrdersByIdsRpcResponse.newBuilder();
try {
if (request.getIdsList().isEmpty()) {
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
}
final var list = orderDbService.listByIds(request.getIdsList());
if (!list.isEmpty()) {
// builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(list, SingleClientCustomerOrderRpcResponse.class));
builder.addAllResponses(DbToProtoUtil.orderDbListToProtoList(list));
builder.addAllResponses(DbToProtoUtil.orderDbListToProtoList(list));
}
} catch (final Exception e) {
log.error("getClientCustomerOrdersByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void queryClientCustomerOrdersByPagination(final QueryClientCustomerOrdersByPaginationRpcRequest request,
final StreamObserver<QueryClientCustomerOrdersByPaginationRpcResponse> responseObserver) {
final var builder = QueryClientCustomerOrdersByPaginationRpcResponse.newBuilder();
try {
IPage<OrderDb> page = new Page<>(request.getPageNo(), request.getPageSize());
LambdaQueryWrapper<OrderDb> queryWrapper = Wrappers.lambdaQuery();
if (!request.getKeyword().isEmpty()) {
queryWrapper.like(OrderDb::getMealTime, request.getKeyword());
}
queryWrapper.eq(OrderDb::getEnterpriseId, request.getEnterpriseId());
queryWrapper.eq(OrderDb::getClientId, request.getClientId());
queryWrapper.in(OrderDb::getStallId, request.getStallIdsList());
queryWrapper.eq(OrderDb::getStatus, request.getStatusValue());
queryWrapper.orderByDesc(OrderDb::getCreatedAt);
final var result = orderDbService.page(page, queryWrapper);
// 查询各个状态的订单数量
int unknownCount = 0;
int toPrepareCount = 0;
int preparingCount = 0;
int allServedCount = 0;
int canceledCount = 0;
for(OrderStatusEnum status: OrderStatusEnum.values()) {
LambdaQueryWrapper<OrderDb> queryCountWrapper = Wrappers.lambdaQuery();
if (!request.getKeyword().isEmpty()) {
queryCountWrapper.like(OrderDb::getMealTime, request.getKeyword());
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
queryCountWrapper.eq(OrderDb::getEnterpriseId, request.getEnterpriseId());
queryCountWrapper.eq(OrderDb::getClientId, request.getClientId());
queryCountWrapper.eq(OrderDb::getStatus, status.ordinal());
queryCountWrapper.in(OrderDb::getStallId, request.getStallIdsList());
final var count = orderDbService.count(queryCountWrapper);
if (status.equals(OrderStatusEnum.UNKNOWN_STATUS)) {
unknownCount += count;
} else if (status.equals(OrderStatusEnum.TO_PREPARE)) {
toPrepareCount += count;
} else if (status.equals(OrderStatusEnum.PREPARING)) {
preparingCount += count;
} else if (status.equals(OrderStatusEnum.PARTIAL_SERVED) || status.equals(OrderStatusEnum.ALL_SERVED)) {
allServedCount += count;
} else {
canceledCount += count;
}
}
builder.setCountByStatus(OrderCountByStatus.newBuilder()
.setUnknownCount(unknownCount)
.setToPrepareCount(toPrepareCount)
.setPreparingCount(preparingCount)
.setAllServedCount(allServedCount)
.setCanceledCount(canceledCount)
.build());
builder.setTotal(result.getTotal());
builder.setPages(result.getPages());
if (!result.getRecords().isEmpty()) {
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void queryClientCustomerOrdersByPagination(final QueryClientCustomerOrdersByPaginationRpcRequest request,
final StreamObserver<QueryClientCustomerOrdersByPaginationRpcResponse> responseObserver) {
final var builder = QueryClientCustomerOrdersByPaginationRpcResponse.newBuilder();
try {
IPage<OrderDb> page = new Page<>(request.getPageNo(), request.getPageSize());
LambdaQueryWrapper<OrderDb> queryWrapper = Wrappers.lambdaQuery();
if (!request.getKeyword().isEmpty()) {
queryWrapper.like(OrderDb::getMealTime, request.getKeyword());
}
queryWrapper.eq(OrderDb::getEnterpriseId, request.getEnterpriseId());
queryWrapper.eq(OrderDb::getClientId, request.getClientId());
queryWrapper.in(OrderDb::getStallId, request.getStallIdsList());
queryWrapper.eq(OrderDb::getStatus, request.getStatusValue());
queryWrapper.orderByDesc(OrderDb::getCreatedAt);
final var result = orderDbService.page(page, queryWrapper);
// 查询各个状态的订单数量
int unknownCount = 0;
int toPrepareCount = 0;
int preparingCount = 0;
int allServedCount = 0;
int canceledCount = 0;
for (OrderStatusEnum status : OrderStatusEnum.values()) {
LambdaQueryWrapper<OrderDb> queryCountWrapper = Wrappers.lambdaQuery();
if (!request.getKeyword().isEmpty()) {
queryCountWrapper.like(OrderDb::getMealTime, request.getKeyword());
}
queryCountWrapper.eq(OrderDb::getEnterpriseId, request.getEnterpriseId());
queryCountWrapper.eq(OrderDb::getClientId, request.getClientId());
queryCountWrapper.eq(OrderDb::getStatus, status.ordinal());
queryCountWrapper.in(OrderDb::getStallId, request.getStallIdsList());
final var count = orderDbService.count(queryCountWrapper);
if (status.equals(OrderStatusEnum.UNKNOWN_STATUS)) {
unknownCount += count;
} else if (status.equals(OrderStatusEnum.TO_PREPARE)) {
toPrepareCount += count;
} else if (status.equals(OrderStatusEnum.PREPARING)) {
preparingCount += count;
} else if (status.equals(OrderStatusEnum.PARTIAL_SERVED) || status.equals(OrderStatusEnum.ALL_SERVED)) {
allServedCount += count;
} else {
canceledCount += count;
}
}
builder.setCountByStatus(OrderCountByStatus.newBuilder()
.setUnknownCount(unknownCount)
.setToPrepareCount(toPrepareCount)
.setPreparingCount(preparingCount)
.setAllServedCount(allServedCount)
.setCanceledCount(canceledCount)
.build());
builder.setTotal(result.getTotal());
builder.setPages(result.getPages());
if (!result.getRecords().isEmpty()) {
// builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(result.getRecords(), SingleClientCustomerOrderRpcResponse.class));
builder.addAllResponses(DbToProtoUtil.orderDbListToProtoList(result.getRecords()));
}
} catch (final Exception e) {
log.error("queryClientCustomerOrdersByPagination error;", e);
responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
builder.addAllResponses(DbToProtoUtil.orderDbListToProtoList(result.getRecords()));
}
} catch (final Exception e) {
log.error("queryClientCustomerOrdersByPagination error;", e);
responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void queryClientCustomerOrdersByCondition(final
QueryClientCustomerOrdersByConditionRpcRequest request,
final StreamObserver<QueryClientCustomerOrdersByConditionRpcResponse> responseStreamObserver) {
final var builder = QueryClientCustomerOrdersByConditionRpcResponse.newBuilder();
try {
LambdaQueryWrapper<OrderDb> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(OrderDb::getEnterpriseId, request.getEnterpriseId());
if (request.getShouldFilterClientIds()) {
queryWrapper.in(OrderDb::getId, request.getClientIdsList());
}
if (request.getShouldFilterOrderCode()) {
queryWrapper.likeLeft(OrderDb::getOrderCode, request.getOrderCode());
}
if (request.getShouldFilterClientIds()) {
queryWrapper.in(OrderDb::getClientId, request.getClientIdsList());
}
if (request.getShouldFilterStallIds()) {
queryWrapper.in(OrderDb::getStallId, request.getStallIdsList());
}
if (request.getShouldFilterCustomerIds()) {
queryWrapper.in(OrderDb::getCustomerId, request.getCustomerIdsList());
}
if (request.getShouldFilterOpenIds()) {
queryWrapper.in(OrderDb::getOpenId, request.getOpenIdsList());
}
if (request.getShouldFilterStatus()) {
queryWrapper.eq(OrderDb::getStatus, request.getStatusValue());
}
if (request.getShouldFilterMenuIds()) {
queryWrapper.in(OrderDb::getMenuId, request.getMenuIdsList());
}
if (request.getShouldFilterCloseTimeType()) {
queryWrapper.eq(OrderDb::getCloseTimeType, request.getCloseTimeTypeValue());
}
if (request.getShouldFilterOnlinePay()) {
queryWrapper.eq(OrderDb::getOnlinePay, request.getOnlinePay());
}
if (request.getShouldFilterPayTimeStart()) {
queryWrapper.ge(OrderDb::getPayTime, LocalDateTimeUtil.ofUTC(request.getPayTimeStart()));
}
if (request.getShouldFilterPayTimeEnd()) {
queryWrapper.le(OrderDb::getPayTime, LocalDateTimeUtil.ofUTC(request.getPayTimeEnd()));
}
if (request.getShouldFilterPayStatus()) {
queryWrapper.eq(OrderDb::getPayStatus, request.getPayStatusValue()); // 假设PayStatusEnum有getValue方法获取对应整数值
}
if (request.getShouldFilterMealTimeStart()) {
queryWrapper.ge(OrderDb::getMealTime, LocalDateTimeUtil.ofUTC(request.getMealTimeStart()));
}
if (request.getShouldFilterMealTimeEnd()) {
queryWrapper.le(OrderDb::getMealTime, LocalDateTimeUtil.ofUTC(request.getMealTimeEnd()));
}
if (request.getShouldFilterRoomNo()) {
queryWrapper.eq(OrderDb::getRoomNo, request.getRoomNo());
}
if (request.getShouldFilterTableCode()) {
queryWrapper.eq(OrderDb::getTableCode, request.getTableCode());
}
if (request.getShouldFilterPickupCode()) {
queryWrapper.eq(OrderDb::getPickupCode, request.getPickupCode());
}
if (request.getShouldFilterOrderType()) {
queryWrapper.eq(OrderDb::getOrderType, request.getOrderTypeValue()); // 假设OrderTypeEnum有getValue方法获取对应整数值
}
if (request.getShouldFilterCreatedAtStart()) {
queryWrapper.ge(OrderDb::getCreatedAt, LocalDateTimeUtil.ofUTC(request.getCreatedAtStart()));
}
if (request.getShouldFilterCreatedAtEnd()) {
queryWrapper.le(OrderDb::getCreatedAt, LocalDateTimeUtil.ofUTC(request.getCreatedAtEnd()));
}
if (request.getShouldFilterIsRead()) {
queryWrapper.eq(OrderDb::getIsRead, request.getIsRead());
}
queryWrapper.orderByDesc(OrderDb::getCreatedAt);
final var list = orderDbService.list(queryWrapper);
if (!list.isEmpty()) {
@Override
@DS(DATA_SOURCE_MASTER)
public void queryClientCustomerOrdersByCondition(final
QueryClientCustomerOrdersByConditionRpcRequest request,
final StreamObserver<QueryClientCustomerOrdersByConditionRpcResponse> responseStreamObserver) {
final var builder = QueryClientCustomerOrdersByConditionRpcResponse.newBuilder();
try {
LambdaQueryWrapper<OrderDb> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(OrderDb::getEnterpriseId, request.getEnterpriseId());
if (request.getShouldFilterClientIds()) {
queryWrapper.in(OrderDb::getId, request.getClientIdsList());
}
if (request.getShouldFilterOrderCode()) {
queryWrapper.likeLeft(OrderDb::getOrderCode, request.getOrderCode());
}
if (request.getShouldFilterClientIds()) {
queryWrapper.in(OrderDb::getClientId, request.getClientIdsList());
}
if (request.getShouldFilterStallIds()) {
queryWrapper.in(OrderDb::getStallId, request.getStallIdsList());
}
if (request.getShouldFilterCustomerIds()) {
queryWrapper.in(OrderDb::getCustomerId, request.getCustomerIdsList());
}
if (request.getShouldFilterOpenIds()) {
queryWrapper.in(OrderDb::getOpenId, request.getOpenIdsList());
}
if (request.getShouldFilterStatus()) {
queryWrapper.eq(OrderDb::getStatus, request.getStatusValue());
}
if (request.getShouldFilterMenuIds()) {
queryWrapper.in(OrderDb::getMenuId, request.getMenuIdsList());
}
if (request.getShouldFilterCloseTimeType()) {
queryWrapper.eq(OrderDb::getCloseTimeType, request.getCloseTimeTypeValue());
}
if (request.getShouldFilterOnlinePay()) {
queryWrapper.eq(OrderDb::getOnlinePay, request.getOnlinePay());
}
if (request.getShouldFilterPayTimeStart()) {
queryWrapper.ge(OrderDb::getPayTime, LocalDateTimeUtil.ofUTC(request.getPayTimeStart()));
}
if (request.getShouldFilterPayTimeEnd()) {
queryWrapper.le(OrderDb::getPayTime, LocalDateTimeUtil.ofUTC(request.getPayTimeEnd()));
}
if (request.getShouldFilterPayStatus()) {
queryWrapper.eq(OrderDb::getPayStatus, request.getPayStatusValue()); // 假设PayStatusEnum有getValue方法获取对应整数值
}
if (request.getShouldFilterMealTimeStart()) {
queryWrapper.ge(OrderDb::getMealTime, LocalDateTimeUtil.ofUTC(request.getMealTimeStart()));
}
if (request.getShouldFilterMealTimeEnd()) {
queryWrapper.le(OrderDb::getMealTime, LocalDateTimeUtil.ofUTC(request.getMealTimeEnd()));
}
if (request.getShouldFilterRoomNo()) {
queryWrapper.eq(OrderDb::getRoomNo, request.getRoomNo());
}
if (request.getShouldFilterTableCode()) {
queryWrapper.eq(OrderDb::getTableCode, request.getTableCode());
}
if (request.getShouldFilterPickupCode()) {
queryWrapper.eq(OrderDb::getPickupCode, request.getPickupCode());
}
if (request.getShouldFilterOrderType()) {
queryWrapper.eq(OrderDb::getOrderType, request.getOrderTypeValue()); // 假设OrderTypeEnum有getValue方法获取对应整数值
}
if (request.getShouldFilterCreatedAtStart()) {
queryWrapper.ge(OrderDb::getCreatedAt, LocalDateTimeUtil.ofUTC(request.getCreatedAtStart()));
}
if (request.getShouldFilterCreatedAtEnd()) {
queryWrapper.le(OrderDb::getCreatedAt, LocalDateTimeUtil.ofUTC(request.getCreatedAtEnd()));
}
if (request.getShouldFilterIsRead()) {
queryWrapper.eq(OrderDb::getIsRead, request.getIsRead());
}
queryWrapper.orderByDesc(OrderDb::getCreatedAt);
final var list = orderDbService.list(queryWrapper);
if (!list.isEmpty()) {
// builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(list, SingleClientCustomerOrderRpcResponse.class));
builder.addAllResponses(DbToProtoUtil.orderDbListToProtoList(list));
}
} catch (final Exception e) {
log.error("queryTestExampleDbByCondition error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
builder.addAllResponses(DbToProtoUtil.orderDbListToProtoList(list));
}
} catch (final Exception e) {
log.error("queryTestExampleDbByCondition error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void updateClientCustomerOrder(final UpdateClientCustomerOrderRpcRequest request,
final StreamObserver<UpdateClientCustomerOrderRpcResponse> responseStreamObserver) {
final var builder = UpdateClientCustomerOrderRpcResponse.newBuilder();
builder.setIsUpdated(false);
try {
builder.setIsUpdated(orderDbService.updateOrderDb(request));
} catch (final Exception e) {
log.error("updateClientCustomerOrder error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
@Override
@DS(DATA_SOURCE_MASTER)
public void updateClientCustomerOrder(final UpdateClientCustomerOrderRpcRequest request,
final StreamObserver<UpdateClientCustomerOrderRpcResponse> responseStreamObserver) {
final var builder = UpdateClientCustomerOrderRpcResponse.newBuilder();
builder.setIsUpdated(false);
try {
builder.setIsUpdated(orderDbService.updateOrderDb(request));
} catch (final Exception e) {
log.error("updateClientCustomerOrder error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void batchUpdateClientCustomerOrders(final BatchUpdateClientCustomerOrdersRpcRequest request,
final StreamObserver<BatchUpdateClientCustomerOrdersRpcResponse> responseStreamObserver) {
final var builder = BatchUpdateClientCustomerOrdersRpcResponse.newBuilder();
builder.setIsUpdated(false);
try {
builder.setIsUpdated(orderDbService.batchUpdateOrderDbs(request));
} catch (final Exception e) {
log.error("batchUpdateClientCustomerOrders error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
@Override
@DS(DATA_SOURCE_MASTER)
public void batchUpdateClientCustomerOrders(final BatchUpdateClientCustomerOrdersRpcRequest request,
final StreamObserver<BatchUpdateClientCustomerOrdersRpcResponse> responseStreamObserver) {
final var builder = BatchUpdateClientCustomerOrdersRpcResponse.newBuilder();
builder.setIsUpdated(false);
try {
builder.setIsUpdated(orderDbService.batchUpdateOrderDbs(request));
} catch (final Exception e) {
log.error("batchUpdateClientCustomerOrders error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void deleteClientCustomerOrdersByIds(final DeleteClientCustomerOrdersByIdsRpcRequest request,
final StreamObserver<DeleteClientCustomerOrdersRpcResponse> responseStreamObserver) {
final var builder = DeleteClientCustomerOrdersRpcResponse.newBuilder();
builder.setIsDeleted(false);
try {
if (request.getIdsList().isEmpty()) {
@Override
@DS(DATA_SOURCE_MASTER)
public void deleteClientCustomerOrdersByIds(final DeleteClientCustomerOrdersByIdsRpcRequest request,
final StreamObserver<DeleteClientCustomerOrdersRpcResponse> responseStreamObserver) {
final var builder = DeleteClientCustomerOrdersRpcResponse.newBuilder();
builder.setIsDeleted(false);
try {
if (request.getIdsList().isEmpty()) {
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
}
builder.setIsDeleted(orderDbService.removeBatchByIds(request.getIdsList()));
} catch (final Exception e) {
log.error("deleteClientCustomerOrdersByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
}
builder.setIsDeleted(orderDbService.removeBatchByIds(request.getIdsList()));
} catch (final Exception e) {
log.error("deleteClientCustomerOrdersByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
// @Override
// @DS(DATA_SOURCE_MASTER)
......@@ -431,214 +444,283 @@ public class OrderGrpcService extends ClientCustomerOrderServiceRpcGrpc.ClientCu
// responseStreamObserver.onCompleted();
// }
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrderDetailById(
final GetClientCustomerOrderDetailByIdRpcRequest request,
final StreamObserver<GetClientCustomerOrderDetailByIdRpcResponse> responseStreamObserver) {
final var builder = GetClientCustomerOrderDetailByIdRpcResponse.newBuilder();
try {
final var data = orderDetailDbService.getById(request.getId());
if (data != null) {
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrderDetailById(
final GetClientCustomerOrderDetailByIdRpcRequest request,
final StreamObserver<GetClientCustomerOrderDetailByIdRpcResponse> responseStreamObserver) {
final var builder = GetClientCustomerOrderDetailByIdRpcResponse.newBuilder();
try {
final var data = orderDetailDbService.getById(request.getId());
if (data != null) {
// builder.setResponse(ProtoBeanUtil.beanToProto(data, SingleClientCustomerOrderDetailRpcResponse.class));
builder.setResponse(DbToProtoUtil.orderDetailDbToProto(data));
}
} catch (final Exception e) {
log.error("getClientCustomerOrderDetailById error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
builder.setResponse(DbToProtoUtil.orderDetailDbToProto(data));
}
} catch (final Exception e) {
log.error("getClientCustomerOrderDetailById error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrderDetailsByIds(
final GetClientCustomerOrderDetailsByIdsRpcRequest request,
final StreamObserver<GetClientCustomerOrderDetailsByIdsRpcResponse> responseStreamObserver
) {
final var builder = GetClientCustomerOrderDetailsByIdsRpcResponse.newBuilder();
try {
if (request.getIdsList().isEmpty()) {
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrderDetailsByIds(
final GetClientCustomerOrderDetailsByIdsRpcRequest request,
final StreamObserver<GetClientCustomerOrderDetailsByIdsRpcResponse> responseStreamObserver
) {
final var builder = GetClientCustomerOrderDetailsByIdsRpcResponse.newBuilder();
try {
if (request.getIdsList().isEmpty()) {
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
}
final var list = orderDetailDbService.listByIds(request.getIdsList());
if (!list.isEmpty()) {
// builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(list, SingleClientCustomerOrderDetailRpcResponse.class));
builder.addAllResponses(DbToProtoUtil.orderDetailDbListToProtoList(list));
}
} catch (final Exception e) {
log.error("getClientCustomerOrderDetailsByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
}
final var list = orderDetailDbService.listByIds(request.getIdsList());
if (!list.isEmpty()) {
}
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrderDetailsByOrderIds(
final GetClientCustomerOrderDetailsByOrderIdsRpcRequest request,
final StreamObserver<GetClientCustomerOrderDetailsByOrderIdsRpcResponse> responseStreamObserver
) {
final var builder = GetClientCustomerOrderDetailsByOrderIdsRpcResponse.newBuilder();
try {
if (request.getOrderIdsList().isEmpty()) {
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
}
final var list = orderDetailDbService.getOrderDetailsByOrderIds(request);
if (!list.isEmpty()) {
// builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(list, SingleClientCustomerOrderDetailRpcResponse.class));
builder.addAllResponses(DbToProtoUtil.orderDetailDbListToProtoList(list));
}
} catch (final Exception e) {
log.error("getClientCustomerOrderDetailsByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
builder.addAllResponses(DbToProtoUtil.orderDetailDbListToProtoList(list));
}
} catch (final Exception e) {
log.error("getClientCustomerOrderDetailsByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void getClientCustomerOrderDetailsByOrderIds(
final GetClientCustomerOrderDetailsByOrderIdsRpcRequest request,
final StreamObserver<GetClientCustomerOrderDetailsByOrderIdsRpcResponse> responseStreamObserver
) {
final var builder = GetClientCustomerOrderDetailsByOrderIdsRpcResponse.newBuilder();
try {
if (request.getOrderIdsList().isEmpty()) {
@Override
@DS(DATA_SOURCE_MASTER)
public void createClientCustomerOrderDetail(
final CreateClientCustomerOrderDetailRpcRequest request,
final StreamObserver<CreateClientCustomerOrderDetailRpcResponse> responseStreamObserver
) {
final var builder = CreateClientCustomerOrderDetailRpcResponse.newBuilder();
try {
final var data = orderDetailDbService.createOrderDetailDb(request);
builder.setId(data.getId());
builder.setIsCreated(true);
} catch (final Exception e) {
log.error("createClientCustomerOrder error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
}
final var list = orderDetailDbService.getOrderDetailsByOrderIds(request);
if (!list.isEmpty()) {
// builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(list, SingleClientCustomerOrderDetailRpcResponse.class));
builder.addAllResponses(DbToProtoUtil.orderDetailDbListToProtoList(list));
}
} catch (final Exception e) {
log.error("getClientCustomerOrderDetailsByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void createClientCustomerOrderDetail(
final CreateClientCustomerOrderDetailRpcRequest request,
final StreamObserver<CreateClientCustomerOrderDetailRpcResponse> responseStreamObserver
) {
final var builder = CreateClientCustomerOrderDetailRpcResponse.newBuilder();
try {
final var data = orderDetailDbService.createOrderDetailDb(request);
builder.setId(data.getId());
builder.setIsCreated(true);
} catch (final Exception e) {
log.error("createClientCustomerOrder error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
@Override
@DS(DATA_SOURCE_MASTER)
public void batchCreateClientCustomerOrderDetails(
final BatchCreateClientCustomerOrderDetailsRpcRequest request,
final StreamObserver<BatchCreateClientCustomerOrderDetailsRpcResponse> responseStreamObserver
) {
final var builder = BatchCreateClientCustomerOrderDetailsRpcResponse.newBuilder();
builder.setIsCreated(false);
try {
final var list = orderDetailDbService.batchCreateOrderDetailDb(request);
builder.setIsCreated(list.size() == request.getCreationsCount()).addAllIds(list.stream().map(
OrderDetailDb::getId).collect(Collectors.toList()));
} catch (final Exception e) {
log.error("batchCreateTestExampleDb error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void batchCreateClientCustomerOrderDetails(
final BatchCreateClientCustomerOrderDetailsRpcRequest request,
final StreamObserver<BatchCreateClientCustomerOrderDetailsRpcResponse> responseStreamObserver
) {
final var builder = BatchCreateClientCustomerOrderDetailsRpcResponse.newBuilder();
builder.setIsCreated(false);
try {
final var list = orderDetailDbService.batchCreateOrderDetailDb(request);
builder.setIsCreated(list.size() == request.getCreationsCount()).addAllIds(list.stream().map(
OrderDetailDb::getId).collect(Collectors.toList()));
} catch (final Exception e) {
log.error("batchCreateTestExampleDb error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
@Override
@DS(DATA_SOURCE_MASTER)
public void updateClientCustomerOrderDetail(
final UpdateClientCustomerOrderDetailRpcRequest request,
final StreamObserver<UpdateClientCustomerOrderDetailRpcResponse> responseStreamObserver
) {
final var builder = UpdateClientCustomerOrderDetailRpcResponse.newBuilder();
builder.setIsUpdated(false);
try {
builder.setIsUpdated(orderDetailDbService.updateOrderDetailDb(request));
} catch (final Exception e) {
log.error("updateClientCustomerOrderDetail error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void updateClientCustomerOrderDetail(
final UpdateClientCustomerOrderDetailRpcRequest request,
final StreamObserver<UpdateClientCustomerOrderDetailRpcResponse> responseStreamObserver
) {
final var builder = UpdateClientCustomerOrderDetailRpcResponse.newBuilder();
builder.setIsUpdated(false);
try {
builder.setIsUpdated(orderDetailDbService.updateOrderDetailDb(request));
} catch (final Exception e) {
log.error("updateClientCustomerOrderDetail error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
@Override
@DS(DATA_SOURCE_MASTER)
public void batchUpdateClientCustomerOrderDetails(
final BatchUpdateClientCustomerOrderDetailsRpcRequest request,
final StreamObserver<BatchUpdateClientCustomerOrderDetailsRpcResponse> responseStreamObserver
) {
final var builder = BatchUpdateClientCustomerOrderDetailsRpcResponse.newBuilder();
builder.setIsUpdated(false);
try {
builder.setIsUpdated(orderDetailDbService.batchUpdateOrderDetailDbs(request));
} catch (final Exception e) {
log.error("batchUpdateClientCustomerOrderDetails error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void batchUpdateClientCustomerOrderDetails(
final BatchUpdateClientCustomerOrderDetailsRpcRequest request,
final StreamObserver<BatchUpdateClientCustomerOrderDetailsRpcResponse> responseStreamObserver
) {
final var builder = BatchUpdateClientCustomerOrderDetailsRpcResponse.newBuilder();
builder.setIsUpdated(false);
try {
builder.setIsUpdated(orderDetailDbService.batchUpdateOrderDetailDbs(request));
} catch (final Exception e) {
log.error("batchUpdateClientCustomerOrderDetails error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
@Override
@DS(DATA_SOURCE_MASTER)
public void deleteClientCustomerOrderDetailsByIds(
final DeleteClientCustomerOrderDetailsByIdsRpcRequest request,
final StreamObserver<DeleteClientCustomerOrderDetailsRpcResponse> responseStreamObserver
) {
final var builder = DeleteClientCustomerOrderDetailsRpcResponse.newBuilder();
builder.setIsDeleted(false);
try {
if (request.getIdsList().isEmpty()) {
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
return;
}
builder.setIsDeleted(orderDetailDbService.removeBatchByIds(request.getIdsList()));
} catch (final Exception e) {
log.error("deleteClientCustomerOrderDetailsByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void deleteClientCustomerOrderDetailsByIds(
final DeleteClientCustomerOrderDetailsByIdsRpcRequest request,
final StreamObserver<DeleteClientCustomerOrderDetailsRpcResponse> responseStreamObserver
) {
final var builder = DeleteClientCustomerOrderDetailsRpcResponse.newBuilder();
builder.setIsDeleted(false);
try {
if (request.getIdsList().isEmpty()) {
@Override
@DS(DATA_SOURCE_MASTER)
public void getOrderOperationRecordsByOrderId(
final GetOrderOperationRecordsByOrderIdRequest request,
final StreamObserver<GetOrderOperationRecordsByOrderIdResponse> responseStreamObserver
) {
final var builder = GetOrderOperationRecordsByOrderIdResponse.newBuilder();
try {
final var list = orderOperationRecordDbService.getOrderOperationRecordsByOrderId(request);
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();
return;
}
builder.setIsDeleted(orderDetailDbService.removeBatchByIds(request.getIdsList()));
} catch (final Exception e) {
log.error("deleteClientCustomerOrderDetailsByIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void getOrderOperationRecordsByOrderId(
final GetOrderOperationRecordsByOrderIdRequest request,
final StreamObserver<GetOrderOperationRecordsByOrderIdResponse> responseStreamObserver
) {
final var builder = GetOrderOperationRecordsByOrderIdResponse.newBuilder();
try {
final var list = orderOperationRecordDbService.getOrderOperationRecordsByOrderId(request);
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());
@Override
@DS(DATA_SOURCE_MASTER)
public void batchCreateOrderOperationRecords(
final BatchCreateOrderOperationRecordsRequest request,
final StreamObserver<BatchCreateOrderOperationRecordsResponse> responseStreamObserver) {
final var builder = BatchCreateOrderOperationRecordsResponse.newBuilder();
try {
final var data = orderOperationRecordDbService.batchCreateOrderOperationRecords(request);
builder.setIsCreated(data.size() == request.getCreationsCount()).addAllIds(data.stream().map(
OrderOperationRecordDb::getId).collect(Collectors.toList()));
} catch (final Exception e) {
log.error("batchCreateOrderOperationRecords error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_SLAVE)
public void querySkuSellQuantitiesByStall(final QuerySkuSellQuantitiesByStallRpcRequest request,
final StreamObserver<QuerySkuSellQuantitiesByStallRpcResponse> responseStreamObserver) {
final var builder = QuerySkuSellQuantitiesByStallRpcResponse.newBuilder();
try {
LambdaQueryWrapper<SkuSellQuantity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SkuSellQuantity::getEnterpriseId, request.getEnterpriseId());
queryWrapper.eq(SkuSellQuantity::getStallId, request.getStallId());
final var list = skuSellQuantityService.list(queryWrapper);
builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(list, SingleSkuSellQuantityRpcResponse.class));
} catch (final Exception e) {
log.error("querySkuSellQuantitiesByStall error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_SLAVE)
public void querySkuSellQuantitiesByStallAndSkuIds(final QuerySkuSellQuantitiesByStallAndSkuIdsRpcRequest request,
final StreamObserver<QuerySkuSellQuantitiesByStallAndSkuIdsRpcResponse> responseStreamObserver) {
final var builder = QuerySkuSellQuantitiesByStallAndSkuIdsRpcResponse.newBuilder();
try {
LambdaQueryWrapper<SkuSellQuantity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SkuSellQuantity::getEnterpriseId, request.getEnterpriseId());
queryWrapper.eq(SkuSellQuantity::getStallId, request.getStallId());
queryWrapper.in(SkuSellQuantity::getSkuId, request.getSkuIdsList());
final var list = skuSellQuantityService.list(queryWrapper);
builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(list, SingleSkuSellQuantityRpcResponse.class));
} catch (final Exception e) {
log.error("querySkuSellQuantitiesByStallAndSkuIds error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void batchCreateOrderOperationRecords(
final BatchCreateOrderOperationRecordsRequest request,
final StreamObserver<BatchCreateOrderOperationRecordsResponse> responseStreamObserver
) {
final var builder = BatchCreateOrderOperationRecordsResponse.newBuilder();
try {
final var data = orderOperationRecordDbService.batchCreateOrderOperationRecords(request);
builder.setIsCreated(data.size() == request.getCreationsCount()).addAllIds(data.stream().map(
OrderOperationRecordDb::getId).collect(Collectors.toList()));
} catch (final Exception e) {
log.error("batchCreateOrderOperationRecords error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
@Override
@DS(DATA_SOURCE_MASTER)
public void batchSaveSkuSellQuantities(final BatchSaveSkuSellQuantitiesRpcRequest request,
final StreamObserver<BatchSaveSkuSellQuantitiesRpcResponse> responseStreamObserver) {
final var builder = BatchSaveSkuSellQuantitiesRpcResponse.newBuilder();
try {
List<SkuSellQuantity> skuSellQuantities = new ArrayList<>();
for (SkuSellQuantityModification skuSellQuantityModification : request.getSkuSellQuantityModificationsList()) {
SkuSellQuantity skuSellQuantity = new SkuSellQuantity();
skuSellQuantity.setId(skuSellQuantityModification.getId() == 0 ? null : skuSellQuantityModification.getId());
skuSellQuantity.setEnterpriseId(request.getEnterpriseId());
skuSellQuantity.setStallId(skuSellQuantityModification.getStallId());
skuSellQuantity.setSkuId(skuSellQuantityModification.getSkuId());
skuSellQuantity.setMaxSellQuantity(skuSellQuantityModification.getMaxSellQuantity());
skuSellQuantity.setCreatedBy(request.getUpdatedBy());
skuSellQuantity.setCreationSource(OrderSourceEnum.STALL_VALUE);
skuSellQuantity.setUpdatedBy(request.getUpdatedBy());
skuSellQuantity.setUpdateSource(OrderSourceEnum.STALL_VALUE);
skuSellQuantities.add(skuSellQuantity);
}
final boolean saveOrUpdateBatch = skuSellQuantityService.saveOrUpdateBatch(skuSellQuantities);
builder.setIsSaved(saveOrUpdateBatch);
} catch (final Exception e) {
log.error("batchSaveSkuSellQuantities error;", e);
responseStreamObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
responseStreamObserver.onNext(builder.build());
responseStreamObserver.onCompleted();
}
}
......
package com.tianting.infoloop.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tianting.infoloop.mapper.SkuSellQuantityMapper;
import com.tianting.infoloop.model.db.SkuSellQuantity;
import com.tianting.infoloop.service.SkuSellQuantityService;
import org.springframework.stereotype.Service;
/**
* @author zhuyf
* @description 针对表【sku_sell_quantities(sku售卖量)】的数据库操作Service实现
* @createDate 2025-02-28 14:03:59
*/
@Service
public class SkuSellQuantityServiceImpl extends ServiceImpl<SkuSellQuantityMapper, SkuSellQuantity> implements SkuSellQuantityService {
}
......@@ -33,6 +33,13 @@ service ClientCustomerOrderServiceRpc {
// 操作记录
rpc GetOrderOperationRecordsByOrderId (GetOrderOperationRecordsByOrderIdRequest) returns (GetOrderOperationRecordsByOrderIdResponse) {}
rpc BatchCreateOrderOperationRecords (BatchCreateOrderOperationRecordsRequest) returns (BatchCreateOrderOperationRecordsResponse) {}
// sku菜品库存
rpc QuerySkuSellQuantitiesByStall(QuerySkuSellQuantitiesByStallRpcRequest) returns (QuerySkuSellQuantitiesByStallRpcResponse) {}
rpc QuerySkuSellQuantitiesByStallAndSkuIds(QuerySkuSellQuantitiesByStallAndSkuIdsRpcRequest) returns (QuerySkuSellQuantitiesByStallAndSkuIdsRpcResponse) {}
rpc BatchSaveSkuSellQuantities(BatchSaveSkuSellQuantitiesRpcRequest) returns (BatchSaveSkuSellQuantitiesRpcResponse) {}
}
enum OrderStatusEnum {
......@@ -608,3 +615,56 @@ message BatchCreateOrderOperationRecordsResponse {
bool isCreated = 1;
repeated int32 ids = 2;
}
message SingleSkuSellQuantityRpcResponse {
int32 id = 1;
int32 enterpriseId = 2;
int32 stallId = 3;
int32 skuId = 4;
int32 maxSellQuantity = 5;
int32 todaySellQuantity = 6;
int32 createdBy = 7;
int64 createdAt = 8;
int32 creationSource = 9;
int32 updatedBy = 10;
int64 updatedAt = 11;
int32 updateSource = 12;
bool isDeleted = 13;
}
message QuerySkuSellQuantitiesByStallRpcRequest {
int32 enterpriseId = 1;
int32 stallId = 2;
}
message QuerySkuSellQuantitiesByStallRpcResponse {
repeated SingleSkuSellQuantityRpcResponse responses = 1;
}
message QuerySkuSellQuantitiesByStallAndSkuIdsRpcRequest {
int32 enterpriseId = 1;
int32 stallId = 2;
repeated int32 skuIds = 3;
}
message QuerySkuSellQuantitiesByStallAndSkuIdsRpcResponse {
repeated SingleSkuSellQuantityRpcResponse responses = 1;
}
message BatchSaveSkuSellQuantitiesRpcRequest {
repeated SkuSellQuantityModification skuSellQuantityModifications = 1;
int32 enterpriseId = 2;
int32 updatedBy = 3;
int32 updateSource = 4;
}
message SkuSellQuantityModification {
int32 id = 1;
int32 stallId = 2;
int32 skuId = 3;
int32 maxSellQuantity = 4;
}
message BatchSaveSkuSellQuantitiesRpcResponse {
bool isSaved = 1;
}
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tianting.infoloop.mapper.SkuSellQuantityMapper">
<resultMap id="BaseResultMap" type="com.tianting.infoloop.model.db.SkuSellQuantity">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="enterpriseId" column="enterpriseId" jdbcType="INTEGER"/>
<result property="stallId" column="stallId" jdbcType="INTEGER"/>
<result property="skuId" column="skuId" jdbcType="INTEGER"/>
<result property="maxSellQuantity" column="maxSellQuantity" jdbcType="INTEGER"/>
<result property="todaySellQuantity" column="todaySellQuantity" jdbcType="INTEGER"/>
<result property="createdBy" column="createdBy" jdbcType="INTEGER"/>
<result property="createdAt" column="createdAt" jdbcType="TIMESTAMP"/>
<result property="creationSource" column="creationSource" jdbcType="INTEGER"/>
<result property="updatedBy" column="updatedBy" jdbcType="INTEGER"/>
<result property="updatedAt" column="updatedAt" jdbcType="TIMESTAMP"/>
<result property="updateSource" column="updateSource" jdbcType="INTEGER"/>
<result property="isDeleted" column="isDeleted" jdbcType="TINYINT"/>
</resultMap>
<sql id="Base_Column_List">
id,enterpriseId,stallId,
skuId,maxSellQuantity,todaySellQuantity,
createdBy,createdAt,creationSource,
updatedBy,updatedAt,updateSource,
isDeleted
</sql>
</mapper>