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 16:38:08 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
99537cf5e0b799035dacbbf1ea0965d916190b7e
99537cf5
1 parent
eaa9c800
fix
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
4 deletions
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
View file @
99537cf
...
...
@@ -47,7 +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.
CloseTimeType
Enum
;
import
com.infoloop.tianting.menuservice.
ModeOfPayment
Enum
;
import
com.infoloop.tianting.model.bo.AddSkusSellQuantityBO
;
import
com.infoloop.tianting.model.bo.SkuSellQuantityBO
;
import
com.infoloop.tianting.model.dto.OperationDTO.BatchOperationDto
;
...
...
@@ -66,6 +66,7 @@ import com.infoloop.tianting.utils.DateUtil;
import
com.infoloop.tianting.utils.JsonUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RAtomicLong
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -477,7 +478,7 @@ public class OrderServiceRpcClient {
String
currentDate
=
DateUtil
.
formatDate
(
today
,
DateUtil
.
YYYY_MM_DD
);
String
redisKey
=
REDIS_KEY_PREFIX
+
currentDate
;
// 获取分布式原子Long对象,用于原子自增操作
org
.
redisson
.
api
.
RAtomicLong
atomicLong
=
redissonClient
.
getAtomicLong
(
redisKey
);
RAtomicLong
atomicLong
=
redissonClient
.
getAtomicLong
(
redisKey
);
// 原子自增并获取当前值
long
counter
=
atomicLong
.
incrementAndGet
();
return
String
.
format
(
"%04d"
,
(
int
)
counter
);
...
...
@@ -565,7 +566,7 @@ public class OrderServiceRpcClient {
.
addAllOrderDetails
(
orderDetails
)
.
build
();
final
var
menuById
=
menuServiceRpcClient
.
getMenuById
(
createOrderDto
.
getEnterpriseId
(),
createOrderDto
.
getMenuId
());
if
(
menuById
.
getResponse
().
getOrderRuleJson
().
get
CloseTimeType
()
==
CloseTimeTypeEnum
.
IMMEDIATELY
)
{
if
(
menuById
.
getResponse
().
getOrderRuleJson
().
get
ModeOfPayment
()
==
ModeOfPaymentEnum
.
ONLINE
)
{
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
()));
...
...
@@ -599,7 +600,7 @@ public class OrderServiceRpcClient {
.
setEnterpriseId
(
createOrderDto
.
getEnterpriseId
())
.
setCreatedBy
(
createOrderDto
.
getCreatedBy
())
.
build
());
if
(
orderResponse
.
getIsCreated
()
&&
menuById
.
getResponse
().
getOrderRuleJson
().
get
CloseTimeType
()
==
CloseTimeTypeEnum
.
IMMEDIATELY
)
{
if
(
orderResponse
.
getIsCreated
()
&&
menuById
.
getResponse
().
getOrderRuleJson
().
get
ModeOfPayment
()
==
ModeOfPaymentEnum
.
ONLINE
)
{
final
var
isSuccess
=
this
.
addSkusSellQuantities
(
createOrderDto
.
getEnterpriseId
(),
createOrderDto
.
getStallId
(),
orderDetails
.
stream
().
map
(
e
->
AddSkusSellQuantityBO
.
builder
()
.
skuId
(
e
.
getSkuId
())
...
...
Please
register
or
login
to post a comment