记得上下班打卡 | 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
00f4e974
Commit
00f4e974
authored
Aug 18, 2022
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
实现百度链nft转让功能
parent
271945c4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
86 additions
and
80 deletions
+86
-80
XuperTradeBiz.java
...uidnet/service/galaxy/router/xuper/biz/XuperTradeBiz.java
+86
-80
No files found.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/galaxy/router/xuper/biz/XuperTradeBiz.java
View file @
00f4e974
...
@@ -195,97 +195,103 @@ public class XuperTradeBiz {
...
@@ -195,97 +195,103 @@ public class XuperTradeBiz {
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL_RECEIVER_NOT_EXIST
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL_RECEIVER_NOT_EXIST
.
getMessage
());
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL_RECEIVER_NOT_EXIST
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL_RECEIVER_NOT_EXIST
.
getMessage
());
}
}
GalaxyTransferNftInfoBo
transferNftInfoBo
=
dataUtils
.
getGalaxyTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
());
try
{
//初始化转让信息
GalaxyTransferNftInfoBo
transferNftInfoBo
=
dataUtils
.
getGalaxyTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
());
if
(
transferNftInfoBo
==
null
){
//初始化转让信息
transferNftInfoBo
=
galaxyBeanTransferBiz
.
buildTransferNftInfoBo
(
reqDto
,
userInfoBo
,
receiveUserInfoBo
);
if
(
transferNftInfoBo
==
null
){
dataUtils
.
setGalaxyTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
transferNftInfoBo
=
galaxyBeanTransferBiz
.
buildTransferNftInfoBo
(
reqDto
,
userInfoBo
,
receiveUserInfoBo
);
}
else
{
dataUtils
.
setGalaxyTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
//判断藏品当前拥有者是否匹配
}
else
{
if
(
transferNftInfoBo
.
getUserId
().
equalsIgnoreCase
(
reqDto
.
getUserId
())){
//判断藏品当前拥有者是否匹配
if
(
transferNftInfoBo
.
getTransferStatus
().
equalsIgnoreCase
(
GalaxyEnum
.
NftTransferStatusEnum
.
PROCESSING
.
getCode
())){
if
(
transferNftInfoBo
.
getUserId
().
equalsIgnoreCase
(
reqDto
.
getUserId
())){
transferNftInfoBo
.
setErrorCode
(
GalaxyErrorEnum
.
NFT_TRANSFERING_ERROR
.
getCode
());
if
(
transferNftInfoBo
.
getTransferStatus
().
equalsIgnoreCase
(
GalaxyEnum
.
NftTransferStatusEnum
.
PROCESSING
.
getCode
())){
transferNftInfoBo
.
setErrorMsg
(
GalaxyErrorEnum
.
NFT_TRANSFERING_ERROR
.
getMessage
());
transferNftInfoBo
.
setErrorCode
(
GalaxyErrorEnum
.
NFT_TRANSFERING_ERROR
.
getCode
());
transferNftInfoBo
.
setErrorMsg
(
GalaxyErrorEnum
.
NFT_TRANSFERING_ERROR
.
getMessage
());
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFERING_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFERING_ERROR
.
getMessage
());
}
else
if
(
transferNftInfoBo
.
getTransferStatus
().
equalsIgnoreCase
(
GalaxyEnum
.
NftTransferStatusEnum
.
SUCCESS
.
getCode
())){
GalaxyNftTransferRespDto
galaxyNftTransferRespDto
=
galaxyBeanTransferBiz
.
buildNftTransferRespDto
(
reqDto
,
userInfoBo
,
receiveUserInfoBo
,
transferNftInfoBo
);
return
ResponseDto
.
success
(
galaxyNftTransferRespDto
);
}
else
if
(
transferNftInfoBo
.
getTransferStatus
().
equalsIgnoreCase
(
GalaxyEnum
.
NftTransferStatusEnum
.
FAIL
.
getCode
())){
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL
.
getMessage
());
}
}
else
{
transferNftInfoBo
.
setErrorCode
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getCode
());
transferNftInfoBo
.
setErrorMsg
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getMessage
());
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getMessage
());
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFERING_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFERING_ERROR
.
getMessage
());
}
else
if
(
transferNftInfoBo
.
getTransferStatus
().
equalsIgnoreCase
(
GalaxyEnum
.
NftTransferStatusEnum
.
SUCCESS
.
getCode
())){
GalaxyNftTransferRespDto
galaxyNftTransferRespDto
=
galaxyBeanTransferBiz
.
buildNftTransferRespDto
(
reqDto
,
userInfoBo
,
receiveUserInfoBo
,
transferNftInfoBo
);
return
ResponseDto
.
success
(
galaxyNftTransferRespDto
);
}
else
if
(
transferNftInfoBo
.
getTransferStatus
().
equalsIgnoreCase
(
GalaxyEnum
.
NftTransferStatusEnum
.
FAIL
.
getCode
())){
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL
.
getMessage
());
}
}
}
else
{
transferNftInfoBo
.
setErrorCode
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getCode
());
transferNftInfoBo
.
setErrorMsg
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getMessage
());
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getMessage
());
}
}
}
//资产id
//资产id
Long
assetId
=
null
;
Long
assetId
=
null
;
//碎片id
//碎片id
Long
shardId
=
null
;
Long
shardId
=
null
;
//拆分nftId 格式 {assetId_shardId}
//拆分nftId 格式 {assetId_shardId}
if
(
StringUtil
.
isNotEmpty
(
transferNftInfoBo
.
getNftId
())){
if
(
StringUtil
.
isNotEmpty
(
transferNftInfoBo
.
getNftId
())){
assetId
=
Long
.
parseLong
(
transferNftInfoBo
.
getNftId
().
substring
(
0
,
reqDto
.
getNftId
().
lastIndexOf
(
"_"
)));
assetId
=
Long
.
parseLong
(
transferNftInfoBo
.
getNftId
().
substring
(
0
,
reqDto
.
getNftId
().
lastIndexOf
(
"_"
)));
shardId
=
Long
.
parseLong
(
transferNftInfoBo
.
getNftId
().
substring
(
reqDto
.
getNftId
().
lastIndexOf
(
"_"
)+
1
,
reqDto
.
getNftId
().
length
()));
shardId
=
Long
.
parseLong
(
transferNftInfoBo
.
getNftId
().
substring
(
reqDto
.
getNftId
().
lastIndexOf
(
"_"
)+
1
,
reqDto
.
getNftId
().
length
()));
}
else
{
}
else
{
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_NFTID_FORMAT_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_NFTID_FORMAT_ERROR
.
getMessage
());
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_NFTID_FORMAT_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_NFTID_FORMAT_ERROR
.
getMessage
());
}
}
//nft信息核对
//nft信息核对
if
(
StringUtil
.
isNotNull
(
assetId
)&&
StringUtil
.
isNotNull
(
shardId
)){
if
(
StringUtil
.
isNotNull
(
assetId
)&&
StringUtil
.
isNotNull
(
shardId
)){
boolean
checkNftOwnerFlag
=
this
.
checkNftOwner
(
userInfoBo
,
reqDto
.
getNftId
(),
assetId
,
shardId
);
boolean
checkNftOwnerFlag
=
this
.
checkNftOwner
(
userInfoBo
,
reqDto
.
getNftId
(),
assetId
,
shardId
);
log
.
info
(
"nftTransfer checkNftOwnerFlag:{}"
,
checkNftOwnerFlag
);
log
.
info
(
"nftTransfer checkNftOwnerFlag:{}"
,
checkNftOwnerFlag
);
//拥有者匹配 可以转让
//拥有者匹配 可以转让
if
(
checkNftOwnerFlag
){
if
(
checkNftOwnerFlag
){
Xuper008TransferShardReqDto
xuper008TransferShardReqDto
=
Xuper008TransferShardReqDto
.
getNew
();
Xuper008TransferShardReqDto
xuper008TransferShardReqDto
=
Xuper008TransferShardReqDto
.
getNew
();
// 定义返回结果对象
// 定义返回结果对象
Xuper008TransferShardRespDto
xuper008TransferShardRespDto
=
null
;
Xuper008TransferShardRespDto
xuper008TransferShardRespDto
=
null
;
try
{
try
{
xuper008TransferShardReqDto
.
setMnemonic
(
userInfoBo
.
getMnemonic
());
xuper008TransferShardReqDto
.
setMnemonic
(
userInfoBo
.
getMnemonic
());
xuper008TransferShardReqDto
.
setAssetId
(
assetId
);
xuper008TransferShardReqDto
.
setAssetId
(
assetId
);
xuper008TransferShardReqDto
.
setShardId
(
shardId
);
xuper008TransferShardReqDto
.
setShardId
(
shardId
);
xuper008TransferShardReqDto
.
setToAddr
(
xuperSdkUtil
.
getAccount
(
receiveUserInfoBo
.
getMnemonic
()).
getAddress
());
xuper008TransferShardReqDto
.
setToAddr
(
xuperSdkUtil
.
getAccount
(
receiveUserInfoBo
.
getMnemonic
()).
getAddress
());
xuper008TransferShardReqDto
.
setToUserId
(
Long
.
parseLong
(
String
.
valueOf
(
receiveUserInfoBo
.
getUserId
().
hashCode
())));
xuper008TransferShardReqDto
.
setToUserId
(
Long
.
parseLong
(
String
.
valueOf
(
receiveUserInfoBo
.
getUserId
().
hashCode
())));
xuper008TransferShardReqDto
.
setPrice
(
0
l
);
xuper008TransferShardReqDto
.
setPrice
(
0
l
);
XuperResponseDto
<
Xuper008TransferShardRespDto
>
transferResponseDto
=
xuperSdkUtil
.
xuper008TransferShard
(
xuper008TransferShardReqDto
);
XuperResponseDto
<
Xuper008TransferShardRespDto
>
transferResponseDto
=
xuperSdkUtil
.
xuper008TransferShard
(
xuper008TransferShardReqDto
);
if
(
transferResponseDto
.
isSuccess
()){
if
(
transferResponseDto
.
isSuccess
()){
xuper008TransferShardRespDto
=
transferResponseDto
.
getParseData
(
Xuper008TransferShardRespDto
.
class
);
xuper008TransferShardRespDto
=
transferResponseDto
.
getParseData
(
Xuper008TransferShardRespDto
.
class
);
if
(
String
.
valueOf
(
xuper008TransferShardRespDto
.
getErrNo
()).
equalsIgnoreCase
(
ErrorCode
.
SUCCESS
.
getCode
())){
if
(
String
.
valueOf
(
xuper008TransferShardRespDto
.
getErrNo
()).
equalsIgnoreCase
(
ErrorCode
.
SUCCESS
.
getCode
())){
//更新转让状态和拥有者信息(只有成功才更新拥有者信息)
//更新转让状态和拥有者信息(只有成功才更新拥有者信息)
transferNftInfoBo
.
setTransferStatus
(
GalaxyEnum
.
NftTransferStatusEnum
.
PROCESSING
.
getCode
());
transferNftInfoBo
.
setTransferStatus
(
GalaxyEnum
.
NftTransferStatusEnum
.
PROCESSING
.
getCode
());
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
//构造返回结果
//构造返回结果
GalaxyNftTransferRespDto
galaxyNftTransferRespDto
=
galaxyBeanTransferBiz
.
buildNftTransferRespDto
(
reqDto
,
userInfoBo
,
receiveUserInfoBo
,
transferNftInfoBo
);
GalaxyNftTransferRespDto
galaxyNftTransferRespDto
=
galaxyBeanTransferBiz
.
buildNftTransferRespDto
(
reqDto
,
userInfoBo
,
receiveUserInfoBo
,
transferNftInfoBo
);
return
ResponseDto
.
success
(
galaxyNftTransferRespDto
);
return
ResponseDto
.
success
(
galaxyNftTransferRespDto
);
}
}
}
}
catch
(
XupterException
e
)
{
log
.
error
(
"biz error msg "
+
e
.
getMessage
(),
e
);
}
catch
(
Exception
e
)
{
log
.
error
(
"sys error msg "
+
e
.
getMessage
(),
e
);
}
}
}
catch
(
XupterException
e
)
{
log
.
info
(
"testXuper008TransferShard resp : "
+
JsonUtils
.
toJson
(
xuper008TransferShardRespDto
));
log
.
error
(
"biz error msg "
+
e
.
getMessage
(),
e
);
}
else
{
}
catch
(
Exception
e
)
{
//更新转让状态和拥有者信息(只有成功才更新拥有者信息)
log
.
error
(
"sys error msg "
+
e
.
getMessage
(),
e
);
transferNftInfoBo
.
setTransferStatus
(
GalaxyEnum
.
NftTransferStatusEnum
.
FAIL
.
getCode
());
transferNftInfoBo
.
setErrorCode
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getCode
());
transferNftInfoBo
.
setErrorMsg
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getMessage
());
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getMessage
());
}
}
log
.
info
(
"testXuper008TransferShard resp : "
+
JsonUtils
.
toJson
(
xuper008TransferShardRespDto
));
}
else
{
//更新转让状态和拥有者信息(只有成功才更新拥有者信息)
transferNftInfoBo
.
setTransferStatus
(
GalaxyEnum
.
NftTransferStatusEnum
.
FAIL
.
getCode
());
transferNftInfoBo
.
setErrorCode
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getCode
());
transferNftInfoBo
.
setErrorMsg
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getMessage
());
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_OWNER_MATCH_ERROR
.
getMessage
());
}
}
}
catch
(
XupterException
e
)
{
log
.
error
(
"biz error msg "
+
e
.
getMessage
(),
e
);
}
catch
(
Exception
e
)
{
log
.
error
(
"sys error msg "
+
e
.
getMessage
(),
e
);
}
}
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL
.
getMessage
());
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_FAIL
.
getMessage
());
}
}
...
...
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