记得上下班打卡 | 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
b1b8c24f
Commit
b1b8c24f
authored
Mar 30, 2022
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加异常处理 锁; 用户订单列表redis处理位置改变
parent
86f3f53c
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
300 additions
and
235 deletions
+300
-235
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+5
-3
AbstractOrderCloseReceiver.java
...e/consumer/kylin/receiver/AbstractOrderCloseReceiver.java
+1
-1
GoblinNftOrderAppController.java
...ervice/goblin/controller/GoblinNftOrderAppController.java
+1
-1
GoblinNftOrderController.java
...et/service/order/controller/GoblinNftOrderController.java
+8
-5
GoblinNftOrderServiceImpl.java
...service/order/service/impl/GoblinNftOrderServiceImpl.java
+273
-225
GoblinNftOrderUtils.java
...om/liquidnet/service/order/utils/GoblinNftOrderUtils.java
+12
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
b1b8c24f
...
@@ -119,12 +119,14 @@ public class GoblinRedisConst {
...
@@ -119,12 +119,14 @@ public class GoblinRedisConst {
public
static
final
String
REDIS_GOBLIN_TEMP_COUPON
=
PREFIX
.
concat
(
"temp:coupon:"
);
//详情 $key:$ucouponId
public
static
final
String
REDIS_GOBLIN_TEMP_COUPON
=
PREFIX
.
concat
(
"temp:coupon:"
);
//详情 $key:$ucouponId
/* --------------------------------NFT--------------------------------- */
/* --------------------------------NFT--------------------------------- */
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_INFO
=
PREFIX
.
concat
(
"nftOrder:"
);
// nft订单详情
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_INFO
=
PREFIX
.
concat
(
"nftOrder:"
);
// nft订单详情 orderId
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_USER_ID_LIST
=
PREFIX
.
concat
(
"nftOrder:idList:user:"
);
// nft用户订单id列表
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_USER_ID_LIST
=
PREFIX
.
concat
(
"nftOrder:idList:user:"
);
// nft用户订单id列表 userId
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_REFUND_INFO
=
PREFIX
.
concat
(
"nftOrder:refund:"
);
// nft退款订单详情
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_REFUND_INFO
=
PREFIX
.
concat
(
"nftOrder:refund:"
);
// nft退款订单详情 orderId
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_BUG_LOCK
=
PREFIX
.
concat
(
"nftOrder:lock:userId:"
);
// nft购买用户锁 userId
public
static
final
String
REDIS_GOBLIN_NFT_GOODS_LIST
=
PREFIX
.
concat
(
"nftGoodsList"
);
// nft商品列表
public
static
final
String
REDIS_GOBLIN_NFT_GOODS_LIST
=
PREFIX
.
concat
(
"nftGoodsList"
);
// nft商品列表
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
/**
/**
* SKU剩余库存
* SKU剩余库存
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/receiver/AbstractOrderCloseReceiver.java
View file @
b1b8c24f
...
@@ -189,11 +189,11 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
...
@@ -189,11 +189,11 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
GOBLIN_ORDER_CLOSE
.
getKey
(),
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
GOBLIN_ORDER_CLOSE
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlDataOrder
));
SqlMapping
.
gets
(
sqls
,
sqlDataOrder
));
}
}
return
true
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"checkNftOrderTime异常 [valueData:{}, e:{}]"
,
orderId
,
e
);
log
.
error
(
"checkNftOrderTime异常 [valueData:{}, e:{}]"
,
orderId
,
e
);
return
false
;
return
false
;
}
}
return
true
;
}
}
private
UpdateResult
updateGoblinStoreOrderVo
(
String
orderId
,
GoblinStoreOrderVo
data
)
{
private
UpdateResult
updateGoblinStoreOrderVo
(
String
orderId
,
GoblinStoreOrderVo
data
)
{
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinNftOrderAppController.java
View file @
b1b8c24f
...
@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
import
javax.validation.Valid
;
import
javax.validation.Valid
;
@Slf4j
@Slf4j
@Api
(
tags
=
"
用户
NFT订单相关-App"
)
@Api
(
tags
=
"NFT订单相关-App"
)
@RestController
@RestController
@RequestMapping
(
"/nftOrder"
)
@RequestMapping
(
"/nftOrder"
)
public
class
GoblinNftOrderAppController
{
public
class
GoblinNftOrderAppController
{
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/controller/GoblinNftOrderController.java
View file @
b1b8c24f
...
@@ -10,12 +10,15 @@ import com.liquidnet.service.goblin.param.GoblinNftOrderRefundCallbackParam;
...
@@ -10,12 +10,15 @@ import com.liquidnet.service.goblin.param.GoblinNftOrderRefundCallbackParam;
import
com.liquidnet.service.goblin.service.IGoblinNftOrderService
;
import
com.liquidnet.service.goblin.service.IGoblinNftOrderService
;
import
io.swagger.annotations.*
;
import
io.swagger.annotations.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotBlank
;
@Api
(
tags
=
"NFT-支付相关"
)
@Api
(
tags
=
"NFT-支付相关"
)
@RestController
@RestController
@Validated
@RequestMapping
(
"/goblin/nft"
)
@RequestMapping
(
"/goblin/nft"
)
public
class
GoblinNftOrderController
{
public
class
GoblinNftOrderController
{
...
@@ -25,14 +28,14 @@ public class GoblinNftOrderController {
...
@@ -25,14 +28,14 @@ public class GoblinNftOrderController {
@PostMapping
(
"pre"
)
@PostMapping
(
"pre"
)
// @ApiOperation("下单(加密)")
// @ApiOperation("下单(加密)")
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
GoblinNftPayResultVo
>
checkOrder
(
@RequestBody
EncryptedReq
<
GoblinNftOrderPayParam
>
payParam
)
{
public
ResponseDto
<
GoblinNftPayResultVo
>
checkOrder
(
@RequestBody
@Valid
EncryptedReq
<
GoblinNftOrderPayParam
>
payParam
)
{
return
iGoblinNftOrderService
.
checkOrder
(
payParam
.
getData
());
return
iGoblinNftOrderService
.
checkOrder
(
payParam
.
getData
());
}
}
@PostMapping
(
"fc7bce6d6c2213b866f76493f92224b8"
)
@PostMapping
(
"fc7bce6d6c2213b866f76493f92224b8"
)
@ApiOperation
(
"下单(非加密)"
)
@ApiOperation
(
"下单(非加密)"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
GoblinNftPayResultVo
>
checkOrder
(
@RequestBody
GoblinNftOrderPayParam
payParam
)
{
public
ResponseDto
<
GoblinNftPayResultVo
>
checkOrder
(
@RequestBody
@Valid
GoblinNftOrderPayParam
payParam
)
{
return
iGoblinNftOrderService
.
checkOrder
(
payParam
);
return
iGoblinNftOrderService
.
checkOrder
(
payParam
);
}
}
...
@@ -47,16 +50,16 @@ public class GoblinNftOrderController {
...
@@ -47,16 +50,16 @@ public class GoblinNftOrderController {
@ApiOperation
(
"查询订单状态"
)
@ApiOperation
(
"查询订单状态"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"orderId"
,
value
=
"订单
id
"
,
example
=
"1"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"orderId"
,
value
=
"订单
ID
"
,
example
=
"1"
),
})
})
public
ResponseDto
<
Integer
>
checkOrderResult
(
@RequestParam
(
"orderId"
)
@
Valid
String
orderId
)
{
public
ResponseDto
<
Integer
>
checkOrderResult
(
@RequestParam
(
"orderId"
)
@
NotBlank
(
message
=
"订单ID不能为空"
)
String
orderId
)
{
return
iGoblinNftOrderService
.
checkOrderResult
(
orderId
);
return
iGoblinNftOrderService
.
checkOrderResult
(
orderId
);
}
}
@PostMapping
(
"syncOrder"
)
@PostMapping
(
"syncOrder"
)
@ApiOperation
(
"支付回调"
)
@ApiOperation
(
"支付回调"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
String
syncOrder
(
@ModelAttribute
@Valid
GoblinNftOrderPayCallbackParam
syncOrderParam
)
{
public
String
syncOrder
(
GoblinNftOrderPayCallbackParam
syncOrderParam
)
{
return
iGoblinNftOrderService
.
syncOrder
(
syncOrderParam
);
return
iGoblinNftOrderService
.
syncOrder
(
syncOrderParam
);
}
}
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/GoblinNftOrderServiceImpl.java
View file @
b1b8c24f
...
@@ -9,7 +9,10 @@ import com.liquidnet.service.base.constant.MQConst;
...
@@ -9,7 +9,10 @@ import com.liquidnet.service.base.constant.MQConst;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.entity.GoblinNftOrder
;
import
com.liquidnet.service.goblin.entity.GoblinNftOrder
;
import
com.liquidnet.service.goblin.param.*
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderPayAgainParam
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderPayCallbackParam
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderPayParam
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderRefundCallbackParam
;
import
com.liquidnet.service.goblin.service.IGoblinNftOrderService
;
import
com.liquidnet.service.goblin.service.IGoblinNftOrderService
;
import
com.liquidnet.service.order.utils.*
;
import
com.liquidnet.service.order.utils.*
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -22,7 +25,9 @@ import org.springframework.util.LinkedMultiValueMap;
...
@@ -22,7 +25,9 @@ import org.springframework.util.LinkedMultiValueMap;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.LinkedList
;
import
java.util.Map
;
import
java.util.Objects
;
import
static
com
.
liquidnet
.
commons
.
lang
.
util
.
DateUtil
.
DTF_YMD_HMS
;
import
static
com
.
liquidnet
.
commons
.
lang
.
util
.
DateUtil
.
DTF_YMD_HMS
;
...
@@ -50,16 +55,31 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -50,16 +55,31 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
@Override
@Override
public
ResponseDto
<
GoblinNftPayResultVo
>
checkOrder
(
GoblinNftOrderPayParam
payParam
)
{
public
ResponseDto
<
GoblinNftPayResultVo
>
checkOrder
(
GoblinNftOrderPayParam
payParam
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
// 加锁
boolean
isLock
=
nftOrderUtils
.
setNftOrderBuyLock
(
uid
);
if
(!
isLock
)
{
return
ResponseDto
.
failure
(
"排队处理中,请勿重复操作~"
);
}
else
{
try
{
// 基础参数
// 基础参数
String
skuId
=
payParam
.
getSkuId
();
String
skuId
=
payParam
.
getSkuId
();
String
uid
=
CurrentUtil
.
getCurrentUid
()
;
int
number
=
1
;
GoblinGoodsSkuInfoVo
skuVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
GoblinGoodsSkuInfoVo
skuVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
if
(
null
==
skuVo
)
{
return
ResponseDto
.
failure
(
"该商品不存在~"
);
}
String
spuId
=
skuVo
.
getSpuId
();
String
spuId
=
skuVo
.
getSpuId
();
int
number
=
1
;
// TODO: jxl 2022/3/30 认证验证
// 判断是否藏品
if
(!
Objects
.
equals
(
1
,
skuVo
.
getSkuType
()))
{
return
ResponseDto
.
failure
(
"该商品不属于藏品~"
);
}
// 3审核通过 3已上架 0未删除 才可购买
// 3审核通过 3已上架 0未删除 才可购买
if
(!
skuVo
.
getStatus
().
equals
(
"3"
)
||
!
skuVo
.
getShelvesStatus
().
equals
(
"3"
)
||
skuVo
.
getDelFlg
().
equals
(
"1"
))
{
if
(!
skuVo
.
getStatus
().
equals
(
"3"
)
||
!
skuVo
.
getShelvesStatus
().
equals
(
"3"
)
||
skuVo
.
getDelFlg
().
equals
(
"1"
))
{
return
ResponseDto
.
failure
(
"该商品当前
不可购买~"
);
return
ResponseDto
.
failure
(
"该商品当前状态
不可购买~"
);
}
}
// 判断开售、停售时间
// 判断开售、停售时间
LocalDateTime
saleStartTime
=
skuVo
.
getSaleStartTime
();
LocalDateTime
saleStartTime
=
skuVo
.
getSaleStartTime
();
...
@@ -134,10 +154,26 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -134,10 +154,26 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 下单数据
// 下单数据
GoblinNftOrder
nftOrder
=
order
(
payParam
,
skuVo
.
getStoreId
(),
uid
,
spuId
,
number
,
orderId
,
orderCode
,
totalPrice
,
voucherPrice
,
storeVoucherPrice
);
GoblinNftOrder
nftOrder
=
order
(
payParam
,
skuVo
.
getStoreId
(),
uid
,
spuId
,
number
,
orderId
,
orderCode
,
totalPrice
,
voucherPrice
,
storeVoucherPrice
);
if
(
null
==
nftOrder
)
{
nftOrderUtils
.
backSkuCountAndStock
(
uid
,
skuId
,
number
);
return
ResponseDto
.
failure
(
"下单失败~"
);
}
// 下单唤起支付
// 下单唤起支付
GoblinNftPayResultVo
nftPayResultVo
=
payOrder
(
nftOrder
,
uid
,
payParam
);
GoblinNftPayResultVo
nftPayResultVo
=
payOrder
(
nftOrder
,
uid
,
payParam
);
if
(
null
==
nftPayResultVo
)
{
nftOrderUtils
.
backSkuCountAndStock
(
uid
,
skuId
,
number
);
return
ResponseDto
.
failure
(
"下单失败啦~"
);
}
return
ResponseDto
.
success
(
nftPayResultVo
);
return
ResponseDto
.
success
(
nftPayResultVo
);
}
catch
(
Exception
e
)
{
log
.
error
(
"NFT下单异常 e:{}"
,
e
);
return
ResponseDto
.
failure
(
"下单失败,请稍后重试!"
);
}
finally
{
// 执行完毕。释放锁
nftOrderUtils
.
delNftOrderBuyLock
(
uid
);
}
}
}
}
private
GoblinNftOrder
order
(
private
GoblinNftOrder
order
(
...
@@ -145,6 +181,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -145,6 +181,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
String
orderId
,
String
orderCode
,
String
orderId
,
String
orderCode
,
BigDecimal
totalPrice
,
BigDecimal
voucherPrice
,
BigDecimal
storeVoucherPrice
BigDecimal
totalPrice
,
BigDecimal
voucherPrice
,
BigDecimal
storeVoucherPrice
)
{
)
{
try
{
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
Map
token
=
CurrentUtil
.
getTokenClaims
();
Map
token
=
CurrentUtil
.
getTokenClaims
();
...
@@ -188,9 +225,14 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -188,9 +225,14 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
nftOrder
.
setCreatedAt
(
now
);
nftOrder
.
setCreatedAt
(
now
);
return
nftOrder
;
return
nftOrder
;
}
catch
(
Exception
e
)
{
log
.
error
(
"NFT下单-整合订单数据异常 e:{}"
,
e
);
return
null
;
}
}
}
private
GoblinNftPayResultVo
payOrder
(
GoblinNftOrder
nftOrder
,
String
uid
,
GoblinNftOrderPayParam
payParam
)
{
private
GoblinNftPayResultVo
payOrder
(
GoblinNftOrder
nftOrder
,
String
uid
,
GoblinNftOrderPayParam
payParam
)
{
try
{
// 是否免费
// 是否免费
boolean
isFree
=
false
;
boolean
isFree
=
false
;
GoblinNftPayResultVo
NftPayResultVo
=
GoblinNftPayResultVo
.
getNew
();
GoblinNftPayResultVo
NftPayResultVo
=
GoblinNftPayResultVo
.
getNew
();
...
@@ -201,7 +243,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -201,7 +243,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
httpData
.
add
(
"type"
,
"PRODUCT"
);
httpData
.
add
(
"type"
,
"PRODUCT"
);
httpData
.
add
(
"price"
,
nftOrder
.
getPriceActual
().
toString
());
httpData
.
add
(
"price"
,
nftOrder
.
getPriceActual
().
toString
());
// 测试0.01
// 测试0.01
//
httpData.add("price","0.01");
//
httpData.add("price","0.01");
httpData
.
add
(
"name"
,
nftOrder
.
getStoreName
());
httpData
.
add
(
"name"
,
nftOrder
.
getStoreName
());
GoblinGoodsSkuInfoVo
skuVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
nftOrder
.
getSkuId
());
GoblinGoodsSkuInfoVo
skuVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
nftOrder
.
getSkuId
());
httpData
.
add
(
"detail"
,
skuVo
.
getName
());
httpData
.
add
(
"detail"
,
skuVo
.
getName
());
...
@@ -267,7 +309,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -267,7 +309,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// redis 订单详情
// redis 订单详情
nftOrderUtils
.
setNftOrder
(
orderVo
);
nftOrderUtils
.
setNftOrder
(
orderVo
);
// redis 订单列表
// redis 订单列表
nftOrderUtils
.
addNftOrderList
(
uid
,
orderVo
.
getOrderId
());
//
nftOrderUtils.addNftOrderList(uid, orderVo.getOrderId());
// mongo
// mongo
goblinMongoUtils
.
setGoblinNftOrderVo
(
orderVo
);
goblinMongoUtils
.
setGoblinNftOrderVo
(
orderVo
);
...
@@ -290,6 +332,10 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -290,6 +332,10 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
}
}
return
NftPayResultVo
;
return
NftPayResultVo
;
}
catch
(
Exception
e
)
{
log
.
error
(
"NFT下单-生成订单唤起支付异常 e:{}"
,
e
);
return
null
;
}
}
}
@Override
@Override
...
@@ -419,13 +465,13 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -419,13 +465,13 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
}
}
if
(
Objects
.
equals
(
1
,
syncOrderParam
.
getStatus
()))
{
if
(
Objects
.
equals
(
1
,
syncOrderParam
.
getStatus
()))
{
String
uid
=
orderVo
.
getUserId
();
if
(
Objects
.
equals
(
orderVo
.
getStatus
(),
GoblinStatusConst
.
NftStatus
.
ORDER_STATUS_3
.
getValue
()))
{
// 超时支付
if
(
Objects
.
equals
(
orderVo
.
getStatus
(),
GoblinStatusConst
.
NftStatus
.
ORDER_STATUS_3
.
getValue
()))
{
// 超时支付
log
.
error
(
"Nft订单超时支付 param:[orderCode:{}]"
,
orderCode
);
log
.
error
(
"Nft订单超时支付 param:[orderCode:{}]"
,
orderCode
);
// 退款
// 退款
nftOrderUtils
.
refundOrderSku
(
orderId
,
syncOrderParam
.
getPaymentId
(),
syncOrderParam
.
getPaymentType
());
nftOrderUtils
.
refundOrderSku
(
orderId
,
syncOrderParam
.
getPaymentId
(),
syncOrderParam
.
getPaymentType
());
}
else
{
// 正常流程
}
else
{
// 正常流程
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
String
uid
=
orderVo
.
getUserId
();
GoblinNftOrder
nftOrder
=
GoblinNftOrder
.
getNew
();
GoblinNftOrder
nftOrder
=
GoblinNftOrder
.
getNew
();
nftOrder
.
setPaymentType
(
syncOrderParam
.
getPaymentType
());
nftOrder
.
setPaymentType
(
syncOrderParam
.
getPaymentType
());
...
@@ -463,6 +509,8 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -463,6 +509,8 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 加积分
// 加积分
goblinOrderUtils
.
doTask
(
uid
,
orderVo
.
getPriceActual
());
goblinOrderUtils
.
doTask
(
uid
,
orderVo
.
getPriceActual
());
}
}
// 写入用户订单列表 因取消的订单不展示 所以放在这里
nftOrderUtils
.
addNftOrderList
(
uid
,
orderVo
.
getOrderId
());
}
}
return
"success"
;
return
"success"
;
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/utils/GoblinNftOrderUtils.java
View file @
b1b8c24f
...
@@ -114,6 +114,18 @@ public class GoblinNftOrderUtils {
...
@@ -114,6 +114,18 @@ public class GoblinNftOrderUtils {
redisUtil
.
set
(
redisKey
,
vo
);
redisUtil
.
set
(
redisKey
,
vo
);
}
}
public
boolean
setNftOrderBuyLock
(
String
userId
)
{
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_NFT_ORDER_BUG_LOCK
.
concat
(
userId
);
return
redisUtil
.
lock
(
redisKey
,
1
,
60
);
}
public
void
delNftOrderBuyLock
(
String
userId
)
{
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_NFT_ORDER_BUG_LOCK
.
concat
(
userId
);
redisUtil
.
uLock
(
redisKey
);
}
/**
/**
* 使用平台优惠券 只支持代金券
* 使用平台优惠券 只支持代金券
*
*
...
...
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