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
zhuyifan
2025-03-03 17:03:45 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
55f438c7a12394123e9b1cdd1d86c752be3d8c0a
55f438c7
1 parent
99537cf5
fix
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
11 deletions
src/main/java/com/infoloop/tianting/logic/delay/OrderAutoCancelDelayTask.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/logic/delay/OrderAutoCancelDelayTask.java
View file @
55f438c
package
com
.
infoloop
.
tianting
.
logic
.
delay
;
import
com.infoloop.tianting.clientcustomerorderservice.CloseTimeType
;
import
com.infoloop.tianting.clientcustomerorderservice.PayStatusEnum
;
import
com.infoloop.tianting.logic.delay.param.AutoCancelParam
;
import
com.infoloop.tianting.model.bo.AddSkusSellQuantityBO
;
...
...
@@ -43,13 +44,14 @@ public class OrderAutoCancelDelayTask {
return
;
}
final
var
isUpdated
=
orderServiceRpcClient
.
updateClientCustomerOrderCancel
(
orderById
.
getEnterpriseId
(),
orderById
.
getId
());
if
(
isUpdated
)
{
if
(
isUpdated
&&
orderById
.
getCloseTimeType
()
==
CloseTimeType
.
IMMEDIATELY
)
{
// 立即点餐需回滚库存
final
var
orderDetails
=
orderServiceRpcClient
.
getOrderDetailsByOrderId
(
orderById
.
getId
());
final
var
isSuccess
=
orderServiceRpcClient
.
addSkusSellQuantities
(
orderById
.
getEnterpriseId
(),
orderById
.
getStallId
(),
orderDetails
.
stream
().
map
(
e
->
AddSkusSellQuantityBO
.
builder
()
.
skuId
(
e
.
getSkuId
())
.
quantity
(-
e
.
getCount
())
.
build
()).
collect
(
Collectors
.
toList
()));
log
.
info
(
"Order {}
add
SkusSellQuantities result: {}"
,
param
.
getOrderId
(),
isSuccess
);
log
.
info
(
"Order {}
return
SkusSellQuantities result: {}"
,
param
.
getOrderId
(),
isSuccess
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"OrderAutoCancelDelayTask execute error"
,
e
);
...
...
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
View file @
55f438c
...
...
@@ -47,6 +47,7 @@ import com.infoloop.tianting.exception.ErrorCodeEnum;
import
com.infoloop.tianting.logic.delay.DelayedQueue
;
import
com.infoloop.tianting.logic.delay.OrderAutoCancelDelayTask
;
import
com.infoloop.tianting.logic.delay.param.AutoCancelParam
;
import
com.infoloop.tianting.menuservice.CloseTimeTypeEnum
;
import
com.infoloop.tianting.menuservice.ModeOfPaymentEnum
;
import
com.infoloop.tianting.model.bo.AddSkusSellQuantityBO
;
import
com.infoloop.tianting.model.bo.SkuSellQuantityBO
;
...
...
@@ -566,7 +567,7 @@ public class OrderServiceRpcClient {
.
addAllOrderDetails
(
orderDetails
)
.
build
();
final
var
menuById
=
menuServiceRpcClient
.
getMenuById
(
createOrderDto
.
getEnterpriseId
(),
createOrderDto
.
getMenuId
());
if
(
menuById
.
getResponse
().
getOrderRuleJson
().
get
ModeOfPayment
()
==
ModeOfPaymentEnum
.
ONLINE
)
{
if
(
menuById
.
getResponse
().
getOrderRuleJson
().
get
CloseTimeType
()
==
CloseTimeTypeEnum
.
IMMEDIATELY
)
{
final
var
skuIds
=
createOrderDto
.
getOrderDetailDtos
().
stream
().
map
(
CreateOrderDetailDto:
:
getSkuId
).
collect
(
Collectors
.
toList
());
final
var
skuSellQuantities
=
this
.
querySkuSellQuantitiesByStallAndSkuIds
(
createOrderDto
.
getEnterpriseId
(),
createOrderDto
.
getStallId
(),
skuIds
);
final
var
skuSellQuantityMap
=
skuSellQuantities
.
stream
().
collect
(
Collectors
.
toMap
(
SingleSkuSellQuantityRpcResponse:
:
getSkuId
,
Function
.
identity
()));
...
...
@@ -600,13 +601,18 @@ public class OrderServiceRpcClient {
.
setEnterpriseId
(
createOrderDto
.
getEnterpriseId
())
.
setCreatedBy
(
createOrderDto
.
getCreatedBy
())
.
build
());
if
(
orderResponse
.
getIsCreated
()
&&
menuById
.
getResponse
().
getOrderRuleJson
().
getModeOfPayment
()
==
ModeOfPaymentEnum
.
ONLINE
)
{
final
var
isSuccess
=
this
.
addSkusSellQuantities
(
createOrderDto
.
getEnterpriseId
(),
createOrderDto
.
getStallId
(),
orderDetails
.
stream
().
map
(
e
->
AddSkusSellQuantityBO
.
builder
()
.
skuId
(
e
.
getSkuId
())
.
quantity
(
e
.
getCount
())
.
build
()).
collect
(
Collectors
.
toList
()));
if
(
isSuccess
)
{
if
(
orderResponse
.
getIsCreated
())
{
//立即点餐需要扣除库存
if
(
menuById
.
getResponse
().
getOrderRuleJson
().
getCloseTimeType
()
==
CloseTimeTypeEnum
.
IMMEDIATELY
)
{
final
var
isSuccess
=
this
.
addSkusSellQuantities
(
createOrderDto
.
getEnterpriseId
(),
createOrderDto
.
getStallId
(),
orderDetails
.
stream
().
map
(
e
->
AddSkusSellQuantityBO
.
builder
()
.
skuId
(
e
.
getSkuId
())
.
quantity
(
e
.
getCount
())
.
build
()).
collect
(
Collectors
.
toList
()));
log
.
info
(
"Order {} addSkusSellQuantities result: {}"
,
orderResponse
.
getId
(),
isSuccess
);
}
//在线支付需要延迟取消订单
if
(
menuById
.
getResponse
().
getOrderRuleJson
().
getModeOfPayment
()
==
ModeOfPaymentEnum
.
ONLINE
)
{
final
var
autoCancelParam
=
new
AutoCancelParam
();
autoCancelParam
.
setOrderId
(
orderResponse
.
getId
());
delayedQueue
.
addToQueue
(
OrderAutoCancelDelayTask
.
AUTO_CANCEL_ORDER_DELAY_QUEUE
,
autoCancelParam
,
10
,
TimeUnit
.
MINUTES
);
...
...
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
View file @
55f438c
...
...
@@ -113,7 +113,6 @@ public class OrderServiceImpl implements OrderService {
createOrderDto
.
setRoomNo
(
record
.
getRoomNo
());
createOrderDto
.
setCreationSource
(
OrderSourceEnum
.
STALL
.
getNumber
());
createOrderDto
.
setEnterpriseId
(
operatorLoginInfo
.
getEnterpriseId
());
// createOrderDto.setStallId();
var
onlinePay
=
menu
.
getOrderRuleJson
().
getModeOfPayment
()
==
ModeOfPaymentEnum
.
ONLINE
;
createOrderDto
.
setOnlinePay
(
onlinePay
);
OrderTypeEnum
orderType
;
...
...
Please
register
or
login
to post a comment