wangyingyang

update order

......@@ -3,4 +3,4 @@ org.gradle.parallel=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx4096m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.configureondemand=true
org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64
\ No newline at end of file
#org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64
\ No newline at end of file
......
......@@ -18,30 +18,30 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
this.strictInsertFill(metaObject, "createdAt", LocalDateTime.class, LocalDateTime.now());
this.strictUpdateFill(metaObject, "updatedAt", LocalDateTime.class, LocalDateTime.now());
this.strictInsertFill(metaObject, "isDeleted", Integer.class, NOT_DELETED_FLAG);
final var userId = ContextHolder.getUserId();
final var source = ContextHolder.getSource();
if (userId != null) {
this.strictInsertFill(metaObject, "createdBy", Integer.class, userId);
this.strictInsertFill(metaObject, "updatedBy", Integer.class, userId);
}
if (source != null) {
this.strictInsertFill(metaObject, "creationSource", Integer.class, source);
this.strictInsertFill(metaObject, "updateSource", Integer.class, source);
}
// final var userId = ContextHolder.getUserId();
// final var source = ContextHolder.getSource();
// if (userId != null) {
// this.strictInsertFill(metaObject, "createdBy", Integer.class, userId);
// this.strictInsertFill(metaObject, "updatedBy", Integer.class, userId);
// }
// if (source != null) {
// this.strictInsertFill(metaObject, "creationSource", Integer.class, source);
// this.strictInsertFill(metaObject, "updateSource", Integer.class, source);
// }
}
//更新时的填充策略
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updatedAt", LocalDateTime.class, LocalDateTime.now());
final var userId = ContextHolder.getUserId();
final var source = ContextHolder.getSource();
if (userId != null) {
this.strictInsertFill(metaObject, "updatedBy", Integer.class, userId);
}
if (source != null) {
this.strictInsertFill(metaObject, "updateSource", Integer.class, source);
}
// final var userId = ContextHolder.getUserId();
// final var source = ContextHolder.getSource();
// if (userId != null) {
// this.strictInsertFill(metaObject, "updatedBy", Integer.class, userId);
// }
// if (source != null) {
// this.strictInsertFill(metaObject, "updateSource", Integer.class, source);
// }
}
}
......
......@@ -4,7 +4,9 @@ package com.tianting.infoloop.service.grpc;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderDetailsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderDetailsRpcResponse;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrdersRpcRequest;
......@@ -41,6 +43,8 @@ import com.infoloop.tianting.clientcustomerorderservice.GetOrderOperationRecords
import com.infoloop.tianting.clientcustomerorderservice.OrderOperationRecord;
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.UpdateClientCustomerOrderDetailRpcRequest;
......@@ -170,6 +174,35 @@ public class OrderGrpcService extends ClientCustomerOrderServiceRpcGrpc.ClientCu
@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.eq(OrderDb::getStatus, request.getStatusValue());
final var result = orderDbService.page(page, queryWrapper);
builder.setTotal(result.getTotal());
builder.setPages(result.getPages());
if (!result.getRecords().isEmpty()) {
builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(result.getRecords(), SingleClientCustomerOrderRpcResponse.class));
}
} catch (final Exception e) {
log.error("queryClientCustomerOrdersByPagination error;", e);
responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_MASTER)
public void queryClientCustomerOrdersByCondition(final
QueryClientCustomerOrdersByConditionRpcRequest request,
final StreamObserver<QueryClientCustomerOrdersByConditionRpcResponse> responseStreamObserver) {
......
......@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
//import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderAndDetailsRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrdersRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrdersRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderCreation;
......@@ -16,7 +15,6 @@ import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrde
import com.tianting.infoloop.mapper.OrderDbMapper;
import com.tianting.infoloop.model.db.OrderDb;
import com.tianting.infoloop.model.db.OrderDetailDb;
import com.tianting.infoloop.model.db.TestExampleDb;
import com.tianting.infoloop.service.OrderDbService;
import com.tianting.infoloop.service.OrderDetailDbService;
import com.tianting.infoloop.utils.exception.ErrorCodeConstants;
......@@ -55,11 +53,10 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
if (createOrderRpcRequest.getCreation().getShouldCreateOpenId()) {
orderDb.setOpenId(createOrderRpcRequest.getCreation().getOpenId());
}
if (createOrderRpcRequest.getCreation().getShouldCreateCustomerNoticeJson())
{
if (createOrderRpcRequest.getCreation().getShouldCreateCustomerNoticeJson()) {
orderDb.setCustomerId(createOrderRpcRequest.getCreation().getCustomerId());
}
orderDb.setStatus(createOrderRpcRequest.getCreation().getStatusValue());
orderDb.setStatus(OrderStatusEnum.TO_PREPARE_VALUE);
orderDb.setMenuId(createOrderRpcRequest.getCreation().getMenuId());
orderDb.setTotalNum(createOrderRpcRequest.getCreation().getTotalNum());
if (createOrderRpcRequest.getCreation().getShouldCreatePayPrice()) {
......@@ -129,12 +126,14 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
orderDetailDb.setCreatedBy(createOrderRpcRequest.getCreatedBy());
orderDetailDb.setUpdateSource(createOrderRpcRequest.getCreationSourceValue());
orderDetailDb.setUpdatedBy(createOrderRpcRequest.getCreatedBy());
orderDetailDb.setOrderId(detailCreation.getOrderId());
orderDetailDb.setOrderId(orderDb.getId());
orderDetailDb.setMenuDetailId(detailCreation.getMenuDetailId());
orderDetailDb.setCount(detailCreation.getCount());
orderDetailDb.setMealId(detailCreation.getMealId());
orderDetailDb.setCategoryId(detailCreation.getCategoryId());
orderDetailDb.setSkuId(detailCreation.getSkuId());
orderDetailDb.setEnterpriseId(orderDb.getEnterpriseId());
orderDetailDb.setIsDeleted(false);
if (detailCreation.getShouldCreateShowName()) {
orderDetailDb.setShowName(detailCreation.getShowName());
}
......@@ -165,89 +164,90 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
public List<OrderDb> batchCreateOrderDbs(
BatchCreateClientCustomerOrdersRpcRequest batchCreateOrdersRequest) {
ObjectMapper objectMapper = new ObjectMapper();
var orderList = batchCreateOrdersRequest.getCreationsList().stream()
.map(creation ->{
OrderDb orderDb = new OrderDb();
String orderCode = IdUtil.getSnowflake(0, 0).nextIdStr();
orderDb.setOrderCode(orderCode);
orderDb.setEnterpriseId(batchCreateOrdersRequest.getEnterpriseId());
orderDb.setClientId(creation.getClientId());
orderDb.setStallId(creation.getStallId());
if (creation.getShouldCreateOpenId()) {
orderDb.setOpenId(creation.getOpenId());
}
if (creation.getShouldCreateCustomerNoticeJson())
{
orderDb.setCustomerId(creation.getCustomerId());
}
orderDb.setStatus(creation.getStatusValue());
orderDb.setMenuId(creation.getMenuId());
orderDb.setTotalNum(creation.getTotalNum());
if (creation.getShouldCreatePayPrice()) {
orderDb.setPayPrice(creation.getPayPrice());
}
if (creation.getShouldCreatePayTime()) {
orderDb.setPayTime(Instant.ofEpochMilli(creation.getPayTime())
.atZone(ZoneId.systemDefault())
.toLocalDateTime());
}
if (creation.getShouldCreateOnlinePay()) {
orderDb.setOnlinePay(creation.getOnlinePay());
}
if (creation.getShouldCreatePayStatus()) {
orderDb.setPayStatus(creation.getPayStatusValue());
}
if (creation.getShouldCreateTransactionId()) {
orderDb.setTransactionId(creation.getTransactionId());
}
if (creation.getShouldCreateErrorMsg()) {
orderDb.setErrorMsg(creation.getErrorMsg());
}
if (creation.getShouldCreateAddress()) {
orderDb.setAddress(creation.getAddress());
}
if (creation.getShouldCreateRoomNo()) {
orderDb.setRoomNo(creation.getRoomNo());
}
if (creation.getShouldCreateTableCode()) {
orderDb.setTableCode(creation.getTableCode());
}
if (creation.getShouldCreatePickupCode()) {
orderDb.setPickupCode(creation.getPickupCode());
}
if (creation.getShouldCreateOrderType()) {
orderDb.setOrderType(creation.getOrderTypeValue());
}
if (creation.getShouldCreateRemark()) {
orderDb.setRemark(creation.getRemark());
}
if (creation.getShouldCreateCustomerNoticeJson()) {
JsonNode notice = objectMapper.valueToTree(creation.getCustomerNoticeJson());
orderDb.setCustomerNoticeJson(notice);
}
LocalDateTime mealTime = Instant.ofEpochMilli(creation.getMealTime())
.atZone(ZoneId.systemDefault())
.toLocalDateTime();
orderDb.setMealTime(mealTime);
orderDb.setCreatedBy(batchCreateOrdersRequest.getCreatedBy());
orderDb.setCreationSource(batchCreateOrdersRequest.getCreationSourceValue());
orderDb.setUpdatedBy(batchCreateOrdersRequest.getCreatedBy());
orderDb.setUpdateSource(batchCreateOrdersRequest.getCreationSourceValue());
orderDb.setCloseTimeType(creation.getCloseTimeTypeValue());
orderDb.setIsRead(creation.getIsRead());
return orderDb;
}
)
.collect(Collectors.toList());
// var orderList = batchCreateOrdersRequest.getCreationsList().stream()
// .map(creation ->{
// OrderDb orderDb = new OrderDb();
// String orderCode = IdUtil.getSnowflake(0, 0).nextIdStr();
// orderDb.setOrderCode(orderCode);
// orderDb.setEnterpriseId(batchCreateOrdersRequest.getEnterpriseId());
// orderDb.setClientId(creation.getClientId());
// orderDb.setStallId(creation.getStallId());
// if (creation.getShouldCreateOpenId()) {
// orderDb.setOpenId(creation.getOpenId());
// }
// if (creation.getShouldCreateCustomerNoticeJson())
// {
// orderDb.setCustomerId(creation.getCustomerId());
// }
// orderDb.setStatus(creation.getStatusValue());
// orderDb.setMenuId(creation.getMenuId());
// orderDb.setTotalNum(creation.getTotalNum());
// if (creation.getShouldCreatePayPrice()) {
// orderDb.setPayPrice(creation.getPayPrice());
// }
// if (creation.getShouldCreatePayTime()) {
// orderDb.setPayTime(Instant.ofEpochMilli(creation.getPayTime())
// .atZone(ZoneId.systemDefault())
// .toLocalDateTime());
// }
// if (creation.getShouldCreateOnlinePay()) {
// orderDb.setOnlinePay(creation.getOnlinePay());
// }
// if (creation.getShouldCreatePayStatus()) {
// orderDb.setPayStatus(creation.getPayStatusValue());
// }
// if (creation.getShouldCreateTransactionId()) {
// orderDb.setTransactionId(creation.getTransactionId());
// }
// if (creation.getShouldCreateErrorMsg()) {
// orderDb.setErrorMsg(creation.getErrorMsg());
// }
// if (creation.getShouldCreateAddress()) {
// orderDb.setAddress(creation.getAddress());
// }
// if (creation.getShouldCreateRoomNo()) {
// orderDb.setRoomNo(creation.getRoomNo());
// }
// if (creation.getShouldCreateTableCode()) {
// orderDb.setTableCode(creation.getTableCode());
// }
// if (creation.getShouldCreatePickupCode()) {
// orderDb.setPickupCode(creation.getPickupCode());
// }
// if (creation.getShouldCreateOrderType()) {
// orderDb.setOrderType(creation.getOrderTypeValue());
// }
// if (creation.getShouldCreateRemark()) {
// orderDb.setRemark(creation.getRemark());
// }
// if (creation.getShouldCreateCustomerNoticeJson()) {
// JsonNode notice = objectMapper.valueToTree(creation.getCustomerNoticeJson());
// orderDb.setCustomerNoticeJson(notice);
// }
// LocalDateTime mealTime = Instant.ofEpochMilli(creation.getMealTime())
// .atZone(ZoneId.systemDefault())
// .toLocalDateTime();
// orderDb.setMealTime(mealTime);
// orderDb.setCreatedBy(batchCreateOrdersRequest.getCreatedBy());
// orderDb.setCreationSource(batchCreateOrdersRequest.getCreationSourceValue());
// orderDb.setUpdatedBy(batchCreateOrdersRequest.getCreatedBy());
// orderDb.setUpdateSource(batchCreateOrdersRequest.getCreationSourceValue());
// orderDb.setCloseTimeType(creation.getCloseTimeTypeValue());
// orderDb.setIsRead(creation.getIsRead());
// orderDb.setIsDeleted(false);
//
// return orderDb;
// }
// )
// .collect(Collectors.toList());
// SpringUtil.getBean(OrderDbServiceImpl.class).saveBatch(list) ? list : Collections.emptyList();
List<OrderDb> resOrders = SpringUtil.getBean(OrderDbServiceImpl.class)
.saveBatch(orderList) ? orderList : Collections.emptyList();
if (resOrders.size() != batchCreateOrdersRequest.getCreationsCount()) {
throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_GEN_FAIL);
}
// List<OrderDb> resOrders = SpringUtil.getBean(OrderDbServiceImpl.class)
// .saveBatch(orderList) ? orderList : Collections.emptyList();
// if (resOrders.size() != batchCreateOrdersRequest.getCreationsCount()) {
// throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_GEN_FAIL);
// }
List<OrderDb> resOrders = new ArrayList<>();
for(ClientCustomerOrderCreation creation: batchCreateOrdersRequest.getCreationsList()){
OrderDb orderDb = new OrderDb();
String orderCode = IdUtil.getSnowflake(0, 0).nextIdStr();
......@@ -262,7 +262,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
{
orderDb.setCustomerId(creation.getCustomerId());
}
orderDb.setStatus(creation.getStatusValue());
orderDb.setStatus(OrderStatusEnum.TO_PREPARE_VALUE);
orderDb.setMenuId(creation.getMenuId());
orderDb.setTotalNum(creation.getTotalNum());
if (creation.getShouldCreatePayPrice()) {
......@@ -317,10 +317,12 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
orderDb.setUpdateSource(batchCreateOrdersRequest.getCreationSourceValue());
orderDb.setCloseTimeType(creation.getCloseTimeTypeValue());
orderDb.setIsRead(creation.getIsRead());
orderDb.setIsDeleted(false);
boolean res = this.save(orderDb);
if (!res) {
throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_GEN_FAIL);
}
resOrders.add(orderDb);
if (creation.getShouldCreateOrderDetails()) {
var detailList = creation.getOrderDetailsList().stream()
......@@ -330,12 +332,13 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
orderDetailDb.setCreatedBy(batchCreateOrdersRequest.getCreatedBy());
orderDetailDb.setUpdateSource(batchCreateOrdersRequest.getCreationSourceValue());
orderDetailDb.setUpdatedBy(batchCreateOrdersRequest.getCreatedBy());
orderDetailDb.setOrderId(detailCreation.getOrderId());
orderDetailDb.setOrderId(orderDb.getId());
orderDetailDb.setMenuDetailId(detailCreation.getMenuDetailId());
orderDetailDb.setCount(detailCreation.getCount());
orderDetailDb.setMealId(detailCreation.getMealId());
orderDetailDb.setCategoryId(detailCreation.getCategoryId());
orderDetailDb.setSkuId(detailCreation.getSkuId());
orderDetailDb.setIsDeleted(false);
if (detailCreation.getShouldCreateShowName()) {
orderDetailDb.setShowName(detailCreation.getShowName());
}
......
......@@ -131,10 +131,10 @@ public class GrpcServerInterceptor implements ServerInterceptor {
final var enterpriseId = headers.get(enterpriseIdKey) == null ? "0" : headers.get(enterpriseIdKey);
final var source = headers.get(sourceKey) == null ? "0" : headers.get(sourceKey);
log.info("userContext; methodName:{}, userId:{}, enterpriseId:{}, source:{}", methodName, userId, enterpriseId, source);
return Context.current()
.withValue(ConfigConstants.USER_ID, userId)
.withValue(ConfigConstants.ENTERPRISE_ID, enterpriseId)
.withValue(ConfigConstants.SOURCE, source);
return Context.current();
// .withValue(ConfigConstants.USER_ID, userId)
// .withValue(ConfigConstants.ENTERPRISE_ID, enterpriseId)
// .withValue(ConfigConstants.SOURCE, source);
}
private static class GrpcGetter implements Propagation.RemoteGetter<Metadata> {
......
......@@ -18,6 +18,7 @@ service ClientCustomerOrderServiceRpc {
rpc UpdateClientCustomerOrder (UpdateClientCustomerOrderRpcRequest) returns (UpdateClientCustomerOrderRpcResponse) {}
rpc BatchUpdateClientCustomerOrders (BatchUpdateClientCustomerOrdersRpcRequest) returns (BatchUpdateClientCustomerOrdersRpcResponse) {}
rpc DeleteClientCustomerOrdersByIds (DeleteClientCustomerOrdersByIdsRpcRequest) returns (DeleteClientCustomerOrdersRpcResponse) {}
rpc QueryClientCustomerOrdersByPagination (QueryClientCustomerOrdersByPaginationRpcRequest) returns (QueryClientCustomerOrdersByPaginationRpcResponse) {}
//订单明细
rpc GetClientCustomerOrderDetailById (GetClientCustomerOrderDetailByIdRpcRequest) returns (GetClientCustomerOrderDetailByIdRpcResponse) {}
......@@ -142,6 +143,21 @@ message GetClientCustomerOrdersByCustomerIdRpcResponse {
repeated SingleClientCustomerOrderRpcResponse responses = 1;
}
message QueryClientCustomerOrdersByPaginationRpcRequest {
string keyword = 1;
OrderStatusEnum status = 2;
int32 clientId = 3;
int32 enterpriseId = 4;
int32 pageNo = 5;
int32 pageSize = 6;
}
message QueryClientCustomerOrdersByPaginationRpcResponse {
int64 total = 1;
int64 pages = 2;
repeated SingleClientCustomerOrderRpcResponse responses = 3;
}
message QueryClientCustomerOrdersByConditionRpcRequest {
int32 enterpriseId = 1;
bool shouldFilterOrderCode = 2;
......