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
efe967c8
Commit
efe967c8
authored
Nov 19, 2020
by
徐康
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'bugfix/20201118_xukang_下单加锁防止重复下单'
parents
bdab5e5c
71c0a3a9
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
3 deletions
+17
-3
order-application-service/src/main/java/cn/freemud/adapter/DeliveryAdapter.java
+3
-3
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+14
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/DeliveryAdapter.java
View file @
efe967c8
...
...
@@ -185,7 +185,7 @@ public class DeliveryAdapter {
if
(
CollectionUtils
.
isNotEmpty
(
order
.
getProductList
()))
{
order
.
getProductList
().
forEach
(
productList
->
{
ProductInfo
deliveryProductInfo
=
new
ProductInfo
();
deliveryProductInfo
.
setProductCode
(
productList
.
getProductId
());
deliveryProductInfo
.
setProductCode
(
productList
.
getProductId
()
.
substring
(
4
)
);
String
productName
=
StringUtils
.
isBlank
(
productList
.
getSpecificationName
())
?
productList
.
getProductName
()
:
productList
.
getSpecificationName
();
OrderProductAddInfoDto
extInfo
=
JSON
.
parseObject
(
productList
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
if
(
CollectionUtils
.
isNotEmpty
(
extInfo
.
getSpecialAttrs
()))
{
...
...
@@ -221,7 +221,7 @@ public class DeliveryAdapter {
if
(
CollectionUtils
.
isNotEmpty
(
productList
.
getComboProduct
()))
{
productList
.
getComboProduct
().
forEach
(
comboProduct
->
{
ProductInfo
deliveryComboProductInfo
=
new
ProductInfo
();
deliveryComboProductInfo
.
setProductCode
(
comboProduct
.
getProductId
());
deliveryComboProductInfo
.
setProductCode
(
comboProduct
.
getProductId
()
.
substring
(
4
)
);
String
productNameCombo
=
StringUtils
.
isBlank
(
comboProduct
.
getSpecificationName
())
?
comboProduct
.
getProductName
()
:
comboProduct
.
getSpecificationName
();
OrderProductAddInfoDto
extInfoCombo
=
JSON
.
parseObject
(
comboProduct
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
if
(
CollectionUtils
.
isNotEmpty
(
extInfoCombo
.
getSpecialAttrs
()))
{
...
...
@@ -251,7 +251,7 @@ public class DeliveryAdapter {
deliveryComboProductInfo
.
setTaxId
(
StringUtils
.
isNotEmpty
(
orderComboProductAddInfoDto
.
getTaxId
())
?
orderComboProductAddInfoDto
.
getTaxId
()
:
"10"
);
deliveryComboProductInfo
.
setTaxRate
(
orderComboProductAddInfoDto
.
getTax
()
>
0
?
orderComboProductAddInfoDto
.
getTax
()
:
6
);
deliveryComboProductInfo
.
setParentCode
(
Long
.
valueOf
(
comboProduct
.
getParentProductId
().
replace
(
"_"
,
""
)));
deliveryComboProductInfo
.
setParentCode
(
Long
.
valueOf
(
comboProduct
.
getParentProductId
().
replace
(
"_"
,
""
)
.
substring
(
4
)
));
deliveryProductInfo
.
setProductCode
(
deliveryComboProductInfo
.
getParentCode
()+
""
);
if
(
CollectionUtils
.
isNotEmpty
(
comboProduct
.
getMaterialProduct
()))
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
efe967c8
...
...
@@ -175,7 +175,21 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if
(
ObjectUtils
.
notEqual
(
baseResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
())){
return
baseResponse
;
}
// 添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
// 锁定秒数从apollo获取,如果apollo没有设置,默认5秒
String
createOrderKey
=
CREATE_ORDER_KEY
+
assortmentCustomerInfoVo
.
getMemberId
();
try
{
Long
expire
=
Long
.
valueOf
(
createOrderKeyExpire
);
if
(!
LockUtils
.
lock
(
redisCache
.
getRedisTemplate
(),
createOrderKey
,
expire
)){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_CREATE_ERROR
);
}
return
mcCafeOrderService
.
createMCCafeOrder
(
createOrderVo
);
}
catch
(
Exception
e
)
{
throw
e
;
}
finally
{
//LockUtils.unlock(redisCache.getRedisTemplate(),createOrderKey);
}
}
@Override
...
...
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