Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jiujian
/
client-customer-order-api
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
wangyingyang
2024-12-04 18:09:07 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
91d565a7c5b22e18e8353cf7b9e30286478ab02e
91d565a7
1 parent
c28e2389
增加订单是否已预订的状态检测
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
55 additions
and
0 deletions
src/main/java/com/infoloop/tianting/controller/OrderController.java
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
src/main/java/com/infoloop/tianting/service/OrderService.java
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
src/main/java/com/infoloop/tianting/controller/OrderController.java
View file @
91d565a
...
...
@@ -97,4 +97,13 @@ public class OrderController {
@Valid
@RequestBody
OrderDbDTO
.
OrderDetailBatchUpdateDto
updateDto
)
{
return
orderService
.
batchUpdateOrderDetails
(
updateDto
);
}
@ApiOperation
(
value
=
"检查是否预定过该餐单"
)
@PostMapping
(
"/order/check"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
Boolean
checkOrder
(
@Valid
@RequestBody
OrderDbDTO
.
CheckIfOrderedDto
checkIfOrderedDto
)
{
return
orderService
.
checkIfOrdered
(
checkIfOrderedDto
);
}
}
...
...
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
View file @
91d565a
...
...
@@ -114,6 +114,10 @@ public class OrderDbDTO {
private
Boolean
shouldFilterStatus
=
false
;
@Builder
.
Default
private
OrderStatusEnum
status
=
OrderStatusEnum
.
UNKNOWN_STATUS
;
@Builder
.
Default
private
Boolean
shouldFilterMenuId
=
false
;
@Builder
.
Default
private
Integer
menuId
=
0
;
}
@Data
...
...
@@ -570,6 +574,16 @@ public class OrderDbDTO {
@Data
@Builder
@ToString
@ApiModel
(
description
=
"检查是否已预定过某一餐单"
)
public
static
class
CheckIfOrderedDto
{
private
Integer
customerId
;
private
Integer
menuId
;
private
LocalDateTime
mealTime
;
}
@Data
@Builder
@ToString
@ApiModel
(
description
=
"修改菜品细节信息"
)
public
static
class
OrderDetailUpdateDto
{
private
Integer
id
;
...
...
src/main/java/com/infoloop/tianting/service/OrderService.java
View file @
91d565a
...
...
@@ -3,6 +3,7 @@ package com.infoloop.tianting.service;
import
com.infoloop.tianting.model.common.OrderPageResult
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CheckIfOrderedDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OperatorCreateOrderDto
;
...
...
@@ -25,4 +26,5 @@ public interface OrderService {
CreateOrderResponse
orderCreation
(
OperatorCreateOrderDto
createOrderDto
);
UpdateOrderResponse
updateOrder
(
UpdateOrderDto
updateOrderDto
);
BatchUpdateOrderDetailResponse
batchUpdateOrderDetails
(
OrderDetailBatchUpdateDto
batchUpdateDto
);
Boolean
checkIfOrdered
(
CheckIfOrderedDto
checkIfOrdered
);
}
...
...
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
View file @
91d565a
...
...
@@ -85,6 +85,8 @@ public class OrderServiceRpcClient {
.
addAllStallIds
(
queryOrderDto
.
getStallIds
())
.
setShouldFilterStatus
(
queryOrderDto
.
getShouldFilterStatus
())
.
setStatus
(
queryOrderDto
.
getStatus
())
.
setShouldFilterMenuIds
(
queryOrderDto
.
getShouldFilterMenuId
())
.
addAllMenuIds
(
List
.
of
(
queryOrderDto
.
getMenuId
()))
.
build
();
return
orderServiceRpcBlockingStub
.
queryClientCustomerOrdersByCondition
(
request
).
getResponsesList
();
}
...
...
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
View file @
91d565a
...
...
@@ -18,6 +18,7 @@ import com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse;
import
com.infoloop.tianting.model.common.OrderPageResult
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CheckIfOrderedDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse
;
...
...
@@ -45,6 +46,8 @@ import com.infoloop.tianting.service.client.OrderServiceRpcClient;
import
com.infoloop.tianting.service.client.SkuServiceRpcClient
;
import
com.infoloop.tianting.utils.DateUtil
;
import
com.infoloop.tianting.utils.PageUtil
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
...
...
@@ -204,6 +207,31 @@ public class OrderServiceImpl implements OrderService {
}
@Override
public
Boolean
checkIfOrdered
(
CheckIfOrderedDto
checkIfOrdered
)
{
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
final
var
mealTimeStart
=
checkIfOrdered
.
getMealTime
().
toLocalDate
().
atStartOfDay
();
LocalDate
tomorrow
=
checkIfOrdered
.
getMealTime
().
toLocalDate
().
plusDays
(
1
);
final
var
mealTimeEnd
=
tomorrow
.
atStartOfDay
();
final
var
queryOrderDto
=
QueryOrderByConditionDto
.
builder
()
.
enterpriseId
(
operatorLoginInfo
.
getEnterpriseId
())
.
shouldFilterMealTimeStart
(
true
)
.
mealTimeStart
(
mealTimeStart
)
.
shouldFilterMealTimeEnd
(
true
)
.
mealTimeEnd
(
mealTimeEnd
)
.
shouldFilterMenuId
(
true
)
.
menuId
(
checkIfOrdered
.
getMenuId
())
.
shouldFilterCustomerIds
(
true
)
.
customerIds
(
List
.
of
(
checkIfOrdered
.
getCustomerId
()))
.
build
();
final
var
orderList
=
orderServiceRpcClient
.
getOrdersByCondition
(
queryOrderDto
);
if
(
orderList
.
isEmpty
())
{
return
false
;
}
else
{
return
true
;
}
}
@Override
public
List
<
OrderDetailDto
>
getOrderDetailsByOrderId
(
Integer
orderId
)
{
final
var
responseList
=
orderServiceRpcClient
.
getOrderDetailsByOrderId
(
orderId
);
return
responseList
.
stream
().
map
(
d
->
...
...
Please
register
or
login
to post a comment