记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
c03871ef
Commit
c03871ef
authored
Feb 11, 2024
by
胡佳晨
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'pre' into 'master'
Pre See merge request
!360
parents
39752a6a
69de7d89
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
9 deletions
+19
-9
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+1
-1
GoblinOrderServiceImpl.java
...et/service/order/service/impl/GoblinOrderServiceImpl.java
+8
-7
GoblinOrderUtils.java
...a/com/liquidnet/service/order/utils/GoblinOrderUtils.java
+10
-1
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
c03871ef
...
...
@@ -119,7 +119,7 @@ public class GoblinRedisConst {
public
static
final
String
REDIS_GOBLIN_BUY_COUNT
=
PREFIX
.
concat
(
"uid:"
);
//用户sku购买数量 key:uid:skuId:$skuId
public
static
final
String
REDIS_GOBLIN_BUY_COUNT_IDNO
=
PREFIX
.
concat
(
"id
no
:%s:%s:%s"
);
// 实名sku购买数量 key:$idType:$idNo:$skuId
public
static
final
String
REDIS_GOBLIN_BUY_COUNT_IDNO
=
PREFIX
.
concat
(
"id
card
:%s:%s:%s"
);
// 实名sku购买数量 key:$idType:$idNo:$skuId
public
static
final
String
REDIS_GOBLIN_SALE_COUNT
=
PREFIX
.
concat
(
"sale:skuId:"
);
//用户sku购买数量 key:sale:skuId:$skuId
public
static
final
String
REDIS_GOBLIN_SALE_SPU_COUNT
=
PREFIX
.
concat
(
"sale:spuId:"
);
//用户sku购买数量 key:sale:skuId:$spuId
public
static
final
String
REDIS_GOBLIN_ORDER
=
PREFIX
.
concat
(
"order:"
);
//用户sku购买数量 key:$orderId
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/GoblinOrderServiceImpl.java
View file @
c03871ef
...
...
@@ -184,9 +184,10 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
}
if
(
Objects
.
equals
(
skuVo
.
getIsTrueName
(),
1
))
{
// 需关联实名人
int
idNoLimitCount
=
1
;
// 这里默认券类商品需要关联实名人且都要求关联实名人限购,限购数量为1
String
couponSkuIdNoBuyLimitKey
=
String
.
format
(
GoblinRedisConst
.
REDIS_GOBLIN_BUY_COUNT_IDNO
,
skuParam
.
getIdType
(),
skuParam
.
getIdNo
(),
skuId
,
skuParam
.
getNumber
());
String
couponSkuIdNoBuyLimitKey
=
String
.
format
(
GoblinRedisConst
.
REDIS_GOBLIN_BUY_COUNT_IDNO
,
skuParam
.
getIdType
(),
skuParam
.
getIdNo
(),
skuId
);
long
incrRstNum
=
redisUtils
.
redisUtil
.
incr
(
couponSkuIdNoBuyLimitKey
,
skuParam
.
getNumber
());
couponSkuIdNoBuyLimitMap
.
put
(
couponSkuIdNoBuyLimitKey
,
skuParam
.
getNumber
());
if
(
redisUtils
.
redisUtil
.
incr
(
couponSkuIdNoBuyLimitKey
,
skuParam
.
getNumber
())
>
idNoLimitCount
)
{
if
(
incrRstNum
>
idNoLimitCount
)
{
throw
new
LiquidnetServiceException
(
"-1"
,
String
.
format
(
"超过限购数量,一个证件信息限购%d张"
,
idNoLimitCount
));
}
}
...
...
@@ -194,7 +195,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
}
//库存回滚
if
(
surplusGeneral
<
0
)
{
return
orderUtils
.
orderException
(
skuAndPreListAndNumber
,
platformCodeList
,
storeCodeList
,
uid
,
"库存不足"
);
return
orderUtils
.
orderException
(
skuAndPreListAndNumber
,
platformCodeList
,
storeCodeList
,
uid
,
"库存不足"
,
couponSkuIdNoBuyLimitMap
);
// throw new Exception("库存不足");
}
}
//GoblinOrderSkuParam
...
...
@@ -216,7 +217,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
orderSqlParams
.
add
(
sqlParam
);
}
//GoblinOrderStoreParam
if
(
preParam
.
getOrderIdList
().
equals
(
""
))
{
return
orderUtils
.
orderException
(
skuAndPreListAndNumber
,
platformCodeList
,
storeCodeList
,
uid
,
"参数异常"
);
return
orderUtils
.
orderException
(
skuAndPreListAndNumber
,
platformCodeList
,
storeCodeList
,
uid
,
"参数异常"
,
couponSkuIdNoBuyLimitMap
);
// throw new Exception("参数异常");
}
ResponseDto
<
GoblinPayInnerResultVo
>
data
=
payOrder
(
preParam
,
orderSqlParams
,
uid
);
...
...
@@ -254,9 +255,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
if
(
params
.
size
()
>
0
)
{
orderUtils
.
backStoreCoupon
(
params
);
}
if
(!
CollectionUtils
.
isEmpty
(
couponSkuIdNoBuyLimitMap
))
{
couponSkuIdNoBuyLimitMap
.
forEach
((
couponSkuIdNoBuyLimitKey
,
numb
er
)
->
{
redisUtils
.
redisUtil
.
decr
(
couponSkuIdNoBuyLimitKey
,
numb
er
);
if
(!
CollectionUtils
.
isEmpty
(
couponSkuIdNoBuyLimitMap
))
{
// 券类商品实名限购回滚
couponSkuIdNoBuyLimitMap
.
forEach
((
couponSkuIdNoBuyLimitKey
,
numb
)
->
{
redisUtils
.
redisUtil
.
decr
(
couponSkuIdNoBuyLimitKey
,
numb
);
});
}
if
(
e
instanceof
LiquidnetServiceException
)
{
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/utils/GoblinOrderUtils.java
View file @
c03871ef
...
...
@@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.MultiValueMap
;
import
java.math.BigDecimal
;
...
...
@@ -526,7 +527,9 @@ public class GoblinOrderUtils {
}
//订单异常处理
public
ResponseDto
<
GoblinPayInnerResultVo
>
orderException
(
List
<
String
>
skuAndPreListAndNumber
,
List
<
String
>
platformCodeList
,
List
<
String
>
storeCodeList
,
String
uid
,
String
message
)
{
public
ResponseDto
<
GoblinPayInnerResultVo
>
orderException
(
List
<
String
>
skuAndPreListAndNumber
,
List
<
String
>
platformCodeList
,
List
<
String
>
storeCodeList
,
String
uid
,
String
message
,
HashMap
<
String
,
Integer
>
couponSkuIdNoBuyLimitMap
)
{
long
time3
=
System
.
currentTimeMillis
();
//回顾限购 回滚库存
for
(
String
item
:
skuAndPreListAndNumber
)
{
...
...
@@ -554,6 +557,12 @@ public class GoblinOrderUtils {
if
(
params
.
size
()
>
0
)
{
backStoreCoupon
(
params
);
}
// 这里加的'券类商品实名限购回滚'是因为这里'库存不足'没按异常处理
if
(!
CollectionUtils
.
isEmpty
(
couponSkuIdNoBuyLimitMap
))
{
// 券类商品实名限购回滚
couponSkuIdNoBuyLimitMap
.
forEach
((
couponSkuIdNoBuyLimitKey
,
numb
)
->
{
redisUtils
.
redisUtil
.
decr
(
couponSkuIdNoBuyLimitKey
,
numb
);
});
}
log
.
info
(
"回滚逻辑 "
+
(
System
.
currentTimeMillis
()
-
time3
)
+
"ms"
);
if
(
message
==
null
&&
!
message
.
equals
(
""
))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20018"
));
//乱七八糟异常
...
...
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