Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
26097f03
Commit
26097f03
authored
Oct 09, 2020
by
缪晖
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拼单初始化TTL设置
parent
ea26e3f0
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
10 deletions
+57
-10
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/impl/CollageOrderBaseServiceImpl.java
+57
-10
No files found.
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/impl/CollageOrderBaseServiceImpl.java
View file @
26097f03
...
...
@@ -78,6 +78,7 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
@Override
public
BaseResponse
<
CollageOrder
>
createCollageOrder
(
CollageOrderDto
collageOrderDto
)
{
try
{
if
(!
this
.
isInCollageStoreMemberList
(
collageOrderDto
))
{
// 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key
String
collageBaseHashKey
=
this
.
genCollageBaseHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
...
...
@@ -93,19 +94,23 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
// 创建缓存数据
this
.
putCollageBaseHash
(
collageBaseHashKey
,
collageOrder
);
// 将拼单发起人加入拼单餐位
this
.
collageCartBaseService
.
updateCollageCartGoodsUids
(
Collections
.
EMPTY_LIST
,
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
(),
collageOrderDto
.
getCurrentUserId
());
String
collageMemberHashKey
=
this
.
genCollageMemberHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
this
.
initCollageMember
(
collageMemberHashKey
,
collageOrderDto
.
getCurrentUserId
());
// 设置拼单发起人加购状态
String
collageMemberStateHashKey
=
this
.
genCollageMemberStateHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
this
.
initCollageMemberState
(
collageMemberStateHashKey
,
collageOrderDto
.
getCurrentUserId
());
// 将拼单发起人加入门店拼单客户列表
String
collageStoreMemberKey
=
this
.
genCollageMemerHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
());
this
.
putCollageStoreMember
(
collageStoreMemberKey
,
collageOrderDto
.
getCreateCollageUserId
(),
this
.
getCollageBashHashExpireSeconds
(
collageBaseHashKey
));
return
CartResponseUtil
.
success
(
collageOrder
);
}
else
{
// 若拼单订单信息已存在,则返回错误提示【当前用户存在进行中的拼单订单】
return
CartResponseUtil
.
error
(
CollageOrderConstant
.
COLLAGE_ORDER_ALREADY_EXIST
);
}
}
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"创建拼单订单异常"
,
"CollageOrderBaseServiceImpl/createCollageOrder"
,
this
.
collageOrderRequest
(
collageOrderDto
),
e
);
return
CartResponseUtil
.
error
(
CollageOrderConstant
.
COLLAGE_ORDER_ALREADY_EXIST
);
}
// 若拼单发起人正在参与其他拼单 或者 拼单订单信息已存在,则返回错误提示【当前用户存在进行中的拼单订单】
return
CartResponseUtil
.
error
(
CollageOrderConstant
.
COLLAGE_ORDER_ALREADY_EXIST
);
}
/**
...
...
@@ -133,8 +138,9 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
@Override
public
BaseResponse
lockCollageOrder
(
CollageOrderDto
collageOrderDto
)
{
try
{
String
collageBashHashKey
=
this
.
genCollageBaseHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
String
collageLockKey
=
this
.
genCollageLockKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
this
.
setCollageLock
(
collageLockKey
,
CollageLockStatus
.
LOCKED
);
this
.
setCollageLock
(
collageLockKey
,
CollageLockStatus
.
LOCKED
,
this
.
getCollageBashHashExpireSeconds
(
collageBashHashKey
)
);
return
this
.
getCollageLock
(
collageLockKey
).
getValue
()
?
CartResponseUtil
.
success
()
:
CartResponseUtil
.
error
(
CollageOrderConstant
.
COLLAGE_ORDER_FAILED
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"锁定拼单订单异常"
,
"CollageOrderBaseServiceImpl/lockCollageOrder"
,
this
.
collageOrderRequest
(
collageOrderDto
),
e
);
...
...
@@ -150,8 +156,9 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
@Override
public
BaseResponse
unlockCollageOrder
(
CollageOrderDto
collageOrderDto
)
{
try
{
String
collageBashHashKey
=
this
.
genCollageBaseHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
String
collageLockKey
=
this
.
genCollageLockKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
this
.
setCollageLock
(
collageLockKey
,
CollageLockStatus
.
RELEASE
);
this
.
setCollageLock
(
collageLockKey
,
CollageLockStatus
.
RELEASE
,
this
.
getCollageBashHashExpireSeconds
(
collageBashHashKey
)
);
return
!
this
.
getCollageLock
(
collageLockKey
).
getValue
()
?
CartResponseUtil
.
success
()
:
CartResponseUtil
.
error
(
CollageOrderConstant
.
COLLAGE_ORDER_FAILED
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"解锁拼单订单异常"
,
"CollageOrderBaseServiceImpl/unlockCollageOrder"
,
this
.
collageOrderRequest
(
collageOrderDto
),
e
);
...
...
@@ -256,7 +263,7 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
}
/**
* 获取拼单订单剩余过期时间
* 获取拼单订单剩余过期时间
(秒)
* @param collageBaseHashKey
* @return
*/
...
...
@@ -299,9 +306,10 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
* 拼单订单锁设定
* @param collageLockKey
* @param status
* @param expireTime seconds
*/
private
void
setCollageLock
(
String
collageLockKey
,
CollageLockStatus
status
)
throws
Exception
{
redisTemplate
.
boundValueOps
(
collageLockKey
).
set
(
status
.
getValue
(),
1L
,
TimeUnit
.
HOUR
S
);
private
void
setCollageLock
(
String
collageLockKey
,
CollageLockStatus
status
,
Long
expireTime
)
throws
Exception
{
redisTemplate
.
boundValueOps
(
collageLockKey
).
set
(
status
.
getValue
(),
expireTime
,
TimeUnit
.
SECOND
S
);
}
/**
...
...
@@ -342,6 +350,45 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
}
/**
* 查询当前用户是否存在进行中的拼单
* @param collageOrderDto
* @return
*/
private
boolean
isInCollageStoreMemberList
(
CollageOrderDto
collageOrderDto
)
{
try
{
String
collageStoreMemberKey
=
this
.
genCollageMemerHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
());
Map
<
String
,
Long
>
customerMap
=
this
.
getCollageStoreMember
(
collageStoreMemberKey
);
// 当前登录用户ID存在且未超过过期时间
if
(
customerMap
.
keySet
().
contains
(
collageOrderDto
.
getCurrentUserId
())
&&
DateTimeUtils
.
currentTimeMillis
()
<
customerMap
.
get
(
collageOrderDto
.
getCurrentUserId
()))
{
return
true
;
}
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"查询当前用户是否存在进行中的拼单异常"
,
"CollageOrderBaseServiceImpl/isInCollageOrderCustomerList"
,
this
.
collageOrderRequest
(
collageOrderDto
),
e
);
}
return
false
;
}
/**
* 拼单创建加购人列表初始化
* @param collageMemberHashKey
* @param currentUserId
*/
private
void
initCollageMember
(
String
collageMemberHashKey
,
String
currentUserId
)
{
redisTemplate
.
boundHashOps
(
collageMemberHashKey
).
put
(
currentUserId
,
Collections
.
EMPTY_LIST
);
redisTemplate
.
boundHashOps
(
collageMemberHashKey
).
expire
(
1
,
TimeUnit
.
HOURS
);
}
/**
* 拼单创建加购人状态初始化
* @param collageMemberStateHashKey
* @param currentUserId
*/
private
void
initCollageMemberState
(
String
collageMemberStateHashKey
,
String
currentUserId
)
{
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
put
(
currentUserId
,
false
);
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
expire
(
1
,
TimeUnit
.
HOURS
);
}
/**
* 构建拼单购物车缓存key
* @param partnerId
* @param storeId
...
...
缪晖
@miaohui
mentioned in commit
40e4f6b9
Oct 09, 2020
mentioned in commit
40e4f6b9
mentioned in commit 40e4f6b9208392b60be2bbc69665b5f50677a2d7
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment