记得上下班打卡 | 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
38ecbf84
Commit
38ecbf84
authored
Aug 16, 2022
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
实现百度链转让
parent
82758980
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
17 deletions
+62
-17
GalaxyConstant.java
...com/liquidnet/service/galaxy/constant/GalaxyConstant.java
+0
-1
GalaxyNftTransferQueryReqDto.java
...ervice/galaxy/dto/param/GalaxyNftTransferQueryReqDto.java
+8
-0
AbstractDataUtils.java
...com/liquidnet/service/galaxy/utils/AbstractDataUtils.java
+3
-5
sqlmap-galaxy.properties
...goblin-common/src/main/resources/sqlmap-galaxy.properties
+1
-1
XuperTradeBiz.java
...uidnet/service/galaxy/router/xuper/biz/XuperTradeBiz.java
+50
-10
No files found.
liquidnet-bus-api/liquidnet-service-galaxy-api/src/main/java/com/liquidnet/service/galaxy/constant/GalaxyConstant.java
View file @
38ecbf84
...
...
@@ -19,7 +19,6 @@ public class GalaxyConstant {
public
static
final
String
REDIS_KEY_GALAXY_SERIES_NFT
=
"galaxy:series:nft:"
;
public
static
final
String
REDIS_KEY_GALAXY_TRADE_ORDER
=
"galaxy:trade:order:"
;
public
static
final
String
REDIS_KEY_GALAXY_PUBLISH_ORDER
=
"galaxy:publish:order:"
;
//订单与索引绑定信息
public
static
final
String
REDIS_KEY_GALAXY_TRANSFER_NFTID
=
"galaxy:transfer:nft:"
;
//
public
static
final
String
REDIS_KEY_GALAXY_TRANSFER_ORDER
=
"galaxy:transfer:order:"
;
//
//以下禁止删除
public
static
final
String
REDIS_KEY_GALAXY_PUBLISH_NFT
=
"galaxy:publish:nft:"
;
//nft索引递增记录
...
...
liquidnet-bus-api/liquidnet-service-galaxy-api/src/main/java/com/liquidnet/service/galaxy/dto/param/GalaxyNftTransferQueryReqDto.java
View file @
38ecbf84
...
...
@@ -21,6 +21,14 @@ import java.io.Serializable;
@ApiModel
(
value
=
"GalaxyNftTransferQueryReqDto"
,
description
=
"NFT转让结果查询"
)
@Data
public
class
GalaxyNftTransferQueryReqDto
extends
GalaxyBaseReqDto
implements
Serializable
,
Cloneable
{
/**
* nft转让流水号
*/
@ApiModelProperty
(
position
=
1
,
required
=
true
,
value
=
"nft转让流水号(保证唯一),不超过30个字符"
)
@NotBlank
(
message
=
"nft转让流水号(平台订单id)不能为空"
)
@Size
(
min
=
2
,
max
=
30
,
message
=
"nft转让流水号(平台订单id)限制2-30位且不能包含特殊字符"
)
private
String
transOrderId
;
/**
* 用户id
*/
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-common/src/main/java/com/liquidnet/service/galaxy/utils/AbstractDataUtils.java
View file @
38ecbf84
...
...
@@ -580,14 +580,12 @@ public abstract class AbstractDataUtils {
public
void
updateTransferNftInfoBo
(
String
routerType
,
String
transOrderId
,
GalaxyTransferNftInfoBo
transferNftInfoBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRANSFER_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
transOrderId
,
transferNftInfoBo
);
// update galaxy_nft_transfer_info t set t.owner_user_id = ?,t.owner_address = ?,t.transfer_hash =?,
// t.transfer_status =?,t.error_code =?,t.error_msg =? ,t.updated_at =? where t.nft_id = ?
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_transfer_info.updateNftTransferInfo"
),
new
Object
[]{
transferNftInfoBo
.
get
TransOrderId
(),
transferNftInfoBo
.
getNftId
(),
transferNftInfoBo
.
getUserId
(),
transferNftInfoBo
.
getAddress
(),
transferNftInfoBo
.
getReceiveUserId
(),
transferNftInfoBo
.
getReceiveAddress
(),
transferNftInfoBo
.
get
OwnerUserId
(),
transferNftInfoBo
.
getOwnerAddress
(),
transferNftInfoBo
.
getTransferHash
(),
transferNftInfoBo
.
getSeriesId
(),
transferNftInfoBo
.
getRouterType
(),
transferNftInfoBo
.
getTransferStatus
(),
transferNftInfoBo
.
getErrorCode
(),
transferNftInfoBo
.
getErrorMsg
(),
transferNftInfoBo
.
getCreatedAt
(),
transferNftInfoBo
.
getUpdatedAt
()}
new
Object
[]{
transferNftInfoBo
.
get
OwnerUserId
(),
transferNftInfoBo
.
getOwnerAddress
(),
transferNftInfoBo
.
getTransferHash
(),
transferNftInfoBo
.
get
TransferStatus
(),
transferNftInfoBo
.
getErrorCode
(),
transferNftInfoBo
.
getErrorMsg
()
,
transferNftInfoBo
.
getUpdatedAt
(),
transferNftInfoBo
.
getTransOrderId
()}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-common/src/main/resources/sqlmap-galaxy.properties
View file @
38ecbf84
...
...
@@ -11,7 +11,7 @@ galaxy_nft_trade_info.insert=insert into galaxy_nft_trade_info (user_id, nft_id,
# ------------------------数字藏品发行购买失败记录----------------------------
galaxy_nft_order_fail_log.insert
=
insert into galaxy_nft_order_fail_log (nft_order_pay_id, user_id, nft_id, nft_name, series_name, series_id,series_code, taskId, fail_reason_desc, fail_reason_desc_second, deal_with_status, trade_type,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品转让记录----------------------------
galaxy_nft_transfer_info.insert
=
insert into galaxy_nft_transfer_info (trans_order_id,
user_id, nft
_id, address, receive_user_id, receive_address, owner_user_id,owner_address, transfer_hash, series_id, router_type, transfer_status, error_code,error_msg, created_at, updated_at) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
galaxy_nft_transfer_info.insert
=
insert into galaxy_nft_transfer_info (trans_order_id,
nft_id,user
_id, address, receive_user_id, receive_address, owner_user_id,owner_address, transfer_hash, series_id, router_type, transfer_status, error_code,error_msg, created_at, updated_at) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------更新用户注册信息----------------------------
galaxy_user_info.update
=
update galaxy_user_info set user_name = ?,id_card_type = ?,id_card = ?,mobile = ?,block_chain_address = ?,user_identification = ?,updated_at =? where router_type = ? and user_id = ?
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/galaxy/router/xuper/biz/XuperTradeBiz.java
View file @
38ecbf84
...
...
@@ -258,18 +258,18 @@ public class XuperTradeBiz {
xuper008TransferShardRespDto
=
transferResponseDto
.
getParseData
(
Xuper008TransferShardRespDto
.
class
);
if
(
String
.
valueOf
(
xuper008TransferShardRespDto
.
getErrNo
()).
equalsIgnoreCase
(
ErrorCode
.
SUCCESS
.
getCode
())){
//查询获取交易hash
String
transferHash
=
this
.
getTransferHash
(
receiveUserInfoBo
,
reqDto
.
getNftId
()
,
assetId
,
shardId
);
String
transferHash
=
this
.
getTransferHash
(
receiveUserInfoBo
,
reqDto
.
getNftId
());
//更新转让状态和拥有者信息(只有成功才更新拥有者信息)
transferNftInfoBo
.
setOwnerUserId
(
transferNftInfoBo
.
getReceiveUserId
());
transferNftInfoBo
.
setOwnerAddress
(
transferNftInfoBo
.
getReceiveAddress
());
transferNftInfoBo
.
setSeriesId
(
null
);
transferNftInfoBo
.
setTransferStatus
(
GalaxyEnum
.
NftTransferStatusEnum
.
SUCCESS
.
getCode
());
transferNftInfoBo
.
setTransferStatus
(
GalaxyEnum
.
NftTransferStatusEnum
.
PROCESSING
.
getCode
());
transferNftInfoBo
.
setTransferHash
(
transferHash
);
transferNftInfoBo
.
setErrorCode
(
null
);
transferNftInfoBo
.
setErrorMsg
(
null
);
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
get
Nft
Id
(),
transferNftInfoBo
);
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
get
TransOrder
Id
(),
transferNftInfoBo
);
//构造返回结果
GalaxyNftTransferRespDto
galaxyNftTransferRespDto
=
galaxyBeanTransferBiz
.
buildNftTransferRespDto
(
reqDto
,
userInfoBo
,
receiveUserInfoBo
,
transferNftInfoBo
);
...
...
@@ -293,7 +293,7 @@ public class XuperTradeBiz {
* @return
*/
public
ResponseDto
<
GalaxyNftTransferQueryRespDto
>
nftTransferQuery
(
GalaxyNftTransferQueryReqDto
reqDto
)
{
GalaxyTransferNftInfoBo
transferNftInfoBo
=
dataUtils
.
getGalaxyTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
get
Nft
Id
());
GalaxyTransferNftInfoBo
transferNftInfoBo
=
dataUtils
.
getGalaxyTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
get
TransOrder
Id
());
//初始化转让信息
if
(
transferNftInfoBo
==
null
){
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_QUERY_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_QUERY_ERROR
.
getMessage
());
...
...
@@ -309,7 +309,38 @@ public class XuperTradeBiz {
nftTransferQueryRespDto
.
setRouterType
(
transferNftInfoBo
.
getRouterType
());
nftTransferQueryRespDto
.
setTransferHash
(
transferNftInfoBo
.
getTransferHash
());
return
ResponseDto
.
success
(
nftTransferQueryRespDto
);
}
else
{
}
else
if
(
transferNftInfoBo
.
getTransferStatus
().
equalsIgnoreCase
(
GalaxyEnum
.
NftTransferStatusEnum
.
PROCESSING
.
getCode
())){
//获取用户信息
GalaxyUserInfoBo
receiveUserInfoBo
=
dataUtils
.
getGalaxyUserInfo
(
reqDto
.
getRouterType
(),
transferNftInfoBo
.
getReceiveUserId
());
if
(
StringUtil
.
isNull
(
receiveUserInfoBo
)){
log
.
error
(
"开始执行 nftTransfer nft receiver not exist error msg:{}"
,
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
());
}
//查询获取交易hash
String
transferHash
=
this
.
getTransferHash
(
receiveUserInfoBo
,
reqDto
.
getNftId
());
//更新转让成功信息
transferNftInfoBo
.
setOwnerUserId
(
transferNftInfoBo
.
getReceiveUserId
());
transferNftInfoBo
.
setOwnerAddress
(
transferNftInfoBo
.
getReceiveAddress
());
transferNftInfoBo
.
setSeriesId
(
null
);
transferNftInfoBo
.
setTransferStatus
(
GalaxyEnum
.
NftTransferStatusEnum
.
SUCCESS
.
getCode
());
transferNftInfoBo
.
setTransferHash
(
transferHash
);
transferNftInfoBo
.
setErrorCode
(
null
);
transferNftInfoBo
.
setErrorMsg
(
null
);
transferNftInfoBo
.
setUpdatedAt
(
DateUtil
.
getNowTime
());
dataUtils
.
updateTransferNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getTransOrderId
(),
transferNftInfoBo
);
GalaxyNftTransferQueryRespDto
nftTransferQueryRespDto
=
GalaxyNftTransferQueryRespDto
.
getNew
();
nftTransferQueryRespDto
.
setNftId
(
transferNftInfoBo
.
getNftId
());
nftTransferQueryRespDto
.
setOwnerUserId
(
transferNftInfoBo
.
getOwnerUserId
());
nftTransferQueryRespDto
.
setOwnerAddress
(
transferNftInfoBo
.
getOwnerAddress
());
nftTransferQueryRespDto
.
setFromUserId
(
transferNftInfoBo
.
getUserId
());
nftTransferQueryRespDto
.
setFromAddress
(
transferNftInfoBo
.
getAddress
());
nftTransferQueryRespDto
.
setTransferTime
(
transferNftInfoBo
.
getCreatedAt
());
nftTransferQueryRespDto
.
setRouterType
(
transferNftInfoBo
.
getRouterType
());
nftTransferQueryRespDto
.
setTransferHash
(
transferHash
);
return
ResponseDto
.
success
(
nftTransferQueryRespDto
);
}
else
{
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
NFT_TRANSFER_QUERY_ERROR
.
getCode
(),
GalaxyErrorEnum
.
NFT_TRANSFER_QUERY_ERROR
.
getMessage
());
}
}
...
...
@@ -348,13 +379,21 @@ public class XuperTradeBiz {
/**
* 获取转让成功后的hash值
* @param
u
serInfoBo
* @param
receiveU
serInfoBo
* @param nftId
* @param assetId
* @param shardId
* @return
*/
private
String
getTransferHash
(
GalaxyUserInfoBo
userInfoBo
,
String
nftId
,
Long
assetId
,
Long
shardId
){
private
String
getTransferHash
(
GalaxyUserInfoBo
receiveUserInfoBo
,
String
nftId
){
//资产id
Long
assetId
=
null
;
//碎片id
Long
shardId
=
null
;
if
(
StringUtil
.
isNotEmpty
(
nftId
)){
assetId
=
Long
.
parseLong
(
nftId
.
substring
(
0
,
nftId
.
lastIndexOf
(
"_"
)));
shardId
=
Long
.
parseLong
(
nftId
.
substring
(
nftId
.
lastIndexOf
(
"_"
)+
1
,
nftId
.
length
()));
}
String
transferHash
=
null
;
//判断nftid是否状态正常
Xuper010QuerySdsReqDto
xuper010QuerySdsReqDto
=
Xuper010QuerySdsReqDto
.
getNew
();
...
...
@@ -368,7 +407,8 @@ public class XuperTradeBiz {
Xuper010QuerySdsRespDto
.
ShardMeta
shardMeta
=
xuper010QuerySdsRespDto
.
getMeta
();
//已上链
if
(
shardMeta
.
getStatus
()
==
Integer
.
parseInt
(
XuperEnum
.
AssetGrantStatusEnum
.
GRANT_SUCCESS
.
getCode
())){
if
(
shardMeta
.
getOwnerAddr
().
equalsIgnoreCase
(
userInfoBo
.
getBlockChainAddress
())){
//转让成功后,拥有者已变更为接收者的地址,但是交易hash未变
if
(
shardMeta
.
getOwnerAddr
().
equalsIgnoreCase
(
receiveUserInfoBo
.
getBlockChainAddress
())){
transferHash
=
shardMeta
.
getTxId
();
}
}
...
...
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