记得上下班打卡 | 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
2a53f70e
Commit
2a53f70e
authored
Apr 01, 2022
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nft修改购买逻辑
parent
ebe30d8b
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
908 additions
and
810 deletions
+908
-810
MQConst.java
...ain/java/com/liquidnet/service/base/constant/MQConst.java
+1
-1
pom.xml
...ice-consumer-all/liquidnet-service-consumer-kylin/pom.xml
+11
-0
ConsumerJsonNftPublishAndBuyProcessor.java
...vice/processor/ConsumerJsonNftPublishAndBuyProcessor.java
+166
-85
DataUtils.java
...com/liquidnet/service/consumer/kylin/utils/DataUtils.java
+12
-86
QueueUtil.java
...com/liquidnet/service/consumer/kylin/utils/QueueUtil.java
+0
-53
pom.xml
liquidnet-bus-service/liquidnet-service-consumer-all/pom.xml
+0
-1
pom.xml
...et-service-galaxy/liquidnet-service-galaxy-common/pom.xml
+35
-0
GalaxyBeanTransferBiz.java
...m/liquidnet/service/galaxy/biz/GalaxyBeanTransferBiz.java
+6
-6
GalaxyEnumBiz.java
.../java/com/liquidnet/service/galaxy/biz/GalaxyEnumBiz.java
+2
-2
AbstractDataUtils.java
...com/liquidnet/service/galaxy/utils/AbstractDataUtils.java
+514
-0
AbstractQueueUtil.java
...com/liquidnet/service/galaxy/utils/AbstractQueueUtil.java
+6
-8
ObjectUtil.java
...n/java/com/liquidnet/service/galaxy/utils/ObjectUtil.java
+1
-1
QueueUtil.java
...in/java/com/liquidnet/service/galaxy/utils/QueueUtil.java
+25
-0
bootstrap-dev.yml
...ervice-galaxy-common/src/main/resources/bootstrap-dev.yml
+15
-0
bootstrap-prod.yml
...rvice-galaxy-common/src/main/resources/bootstrap-prod.yml
+14
-0
bootstrap-service-galaxy.yml
...xy-common/src/main/resources/bootstrap-service-galaxy.yml
+19
-0
bootstrap-test.yml
...rvice-galaxy-common/src/main/resources/bootstrap-test.yml
+18
-0
bootstrap.yml
...et-service-galaxy-common/src/main/resources/bootstrap.yml
+5
-0
errors.properties
...ervice-galaxy-common/src/main/resources/errors.properties
+4
-0
sqlmap.properties
...ervice-galaxy-common/src/main/resources/sqlmap.properties
+25
-0
pom.xml
...dnet-service-galaxy/liquidnet-service-galaxy-impl/pom.xml
+5
-0
GalaxyCommonBiz.java
...t/service/galaxy/router/strategy/biz/GalaxyCommonBiz.java
+0
-57
ZxinArtworkBiz.java
...uidnet/service/galaxy/router/zxin/biz/ZxinArtworkBiz.java
+2
-2
ZxinPublishBiz.java
...uidnet/service/galaxy/router/zxin/biz/ZxinPublishBiz.java
+5
-4
ZxinTradeBiz.java
...iquidnet/service/galaxy/router/zxin/biz/ZxinTradeBiz.java
+4
-3
ZxinUserBiz.java
...liquidnet/service/galaxy/router/zxin/biz/ZxinUserBiz.java
+1
-5
DataUtils.java
...in/java/com/liquidnet/service/galaxy/utils/DataUtils.java
+10
-494
TestZxlWalletSdkUtil.java
...va/com/liquidnet/service/galaxy/TestZxlWalletSdkUtil.java
+1
-1
pom.xml
liquidnet-bus-service/liquidnet-service-galaxy/pom.xml
+1
-1
No files found.
liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/constant/MQConst.java
View file @
2a53f70e
...
@@ -290,7 +290,7 @@ public class MQConst {
...
@@ -290,7 +290,7 @@ public class MQConst {
SQL_NFT_ORDER_INFO
(
"galaxy:stream:rk.sql.nftOrderInfo"
,
"group.sql.nftOrderInfo"
,
"订单信息"
),
SQL_NFT_ORDER_INFO
(
"galaxy:stream:rk.sql.nftOrderInfo"
,
"group.sql.nftOrderInfo"
,
"订单信息"
),
SQL_NFT_TRADE_INFO
(
"galaxy:stream:rk.sql.nftTradeInfo"
,
"group.sql.nftTradeInfo"
,
"交易信息"
),
SQL_NFT_TRADE_INFO
(
"galaxy:stream:rk.sql.nftTradeInfo"
,
"group.sql.nftTradeInfo"
,
"交易信息"
),
// JSON_NFT_PUBLISH_AND_BUY("galaxy:stream:rk.json.nftPublishAndBuy", "group.sql.nftPublishAndBuy", "NFT发行和购买"),
// JSON_NFT_PUBLISH_AND_BUY("galaxy:stream:rk.json.nftPublishAndBuy", "group.sql.nftPublishAndBuy", "NFT发行和购买"),
JSON_NFT_PUBLISH_AND_BUY
(
"galaxy:stream:rk.json.nftPublishAndBuy
Local"
,
"group.sql.nftPublishAndBuyLocal
"
,
"NFT发行和购买"
),
JSON_NFT_PUBLISH_AND_BUY
(
"galaxy:stream:rk.json.nftPublishAndBuy
"
,
"group.sql.nftPublishAndBuy
"
,
"NFT发行和购买"
),
;
;
private
final
String
key
;
private
final
String
key
;
private
final
String
group
;
private
final
String
group
;
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/pom.xml
View file @
2a53f70e
...
@@ -73,6 +73,17 @@
...
@@ -73,6 +73,17 @@
<artifactId>
liquidnet-service-galaxy-api
</artifactId>
<artifactId>
liquidnet-service-galaxy-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-galaxy-common
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<exclusions>
<exclusion>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-web
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/service/processor/ConsumerJsonNftPublishAndBuyProcessor.java
View file @
2a53f70e
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
service
.
processor
;
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
service
.
processor
;
import
com.liquidnet.common.exception.LiquidnetServiceException
;
import
com.liquidnet.common.third.zxlnft.biz.ZxlnftBiz
;
import
com.liquidnet.common.third.zxlnft.biz.ZxlnftBiz
;
import
com.liquidnet.common.third.zxlnft.config.ZxlnftConfig
;
import
com.liquidnet.common.third.zxlnft.config.ZxlnftConfig
;
import
com.liquidnet.common.third.zxlnft.constant.ZxlnftEnum
;
import
com.liquidnet.common.third.zxlnft.constant.ZxlnftEnum
;
import
com.liquidnet.common.third.zxlnft.dto.*
;
import
com.liquidnet.common.third.zxlnft.dto.*
;
import
com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil
;
import
com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil
;
import
com.liquidnet.commons.lang.util.BASE64Util
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.consumer.kylin.utils.DataUtils
;
import
com.liquidnet.service.consumer.kylin.utils.DataUtils
;
import
com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo
;
...
@@ -24,7 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -24,7 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.io.UnsupportedEncodingException
;
import
java.io.UnsupportedEncodingException
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
/**
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @author AnJiabin <anjiabin@zhengzai.tv>
...
@@ -50,6 +50,9 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
...
@@ -50,6 +50,9 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
@Autowired
@Autowired
private
DataUtils
dataUtils
;
private
DataUtils
dataUtils
;
@Autowired
private
GalaxyBeanTransferBiz
galaxyBeanTransferBiz
;
public
ResponseDto
<
GalaxyNftPublishAndBuyRespDto
>
nftPublishAndBuy
(
GalaxyNftPublishAndBuyReqDto
reqDto
)
{
public
ResponseDto
<
GalaxyNftPublishAndBuyRespDto
>
nftPublishAndBuy
(
GalaxyNftPublishAndBuyReqDto
reqDto
)
{
//获取订单信息
//获取订单信息
GalaxyNftOrderBo
nftOrderBo
=
dataUtils
.
getNftOrderBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
());
GalaxyNftOrderBo
nftOrderBo
=
dataUtils
.
getNftOrderBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
());
...
@@ -57,13 +60,38 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
...
@@ -57,13 +60,38 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
PUBLISH_FAIL_ALREADY_EXIST
.
getCode
(),
GalaxyErrorEnum
.
PUBLISH_FAIL_ALREADY_EXIST
.
getMessage
());
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
PUBLISH_FAIL_ALREADY_EXIST
.
getCode
(),
GalaxyErrorEnum
.
PUBLISH_FAIL_ALREADY_EXIST
.
getMessage
());
}
}
//获取用户信息
//获取用户信息
GalaxyUserInfoBo
userInfoBo
=
dataUtils
.
getGalaxyUserInfo
(
reqDto
.
getRouterType
(),
reqDto
.
getUserId
());
GalaxyUserInfoBo
userInfoBo
=
dataUtils
.
getGalaxyUserInfo
(
reqDto
.
getRouterType
(),
reqDto
.
getUserId
());
//获取sku信息
//获取sku信息
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
dataUtils
.
getSeriesNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getSkuId
());
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
dataUtils
.
getSeriesNftInfoBo
(
reqDto
.
getRouterType
(),
reqDto
.
getSkuId
());
//初始化订单数据
if
(
nftOrderBo
==
null
){
nftOrderBo
=
galaxyBeanTransferBiz
.
buildNftOrderBo
(
reqDto
.
getNftOrderPayId
(),
userInfoBo
,
seriesNftInfoBo
);
dataUtils
.
setNftOrderBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBo
);
}
/**
* 获取订单和nft绑定信息
*/
GalaxyNftOrderBindBo
nftOrderBindBo
=
dataUtils
.
getGalaxyNftOrderBindBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
());
if
(
StringUtil
.
isNull
(
nftOrderBindBo
)){
//获取发行索引
long
nftIdNo
=
dataUtils
.
incrNftIdNo
(
reqDto
.
getRouterType
(),
reqDto
.
getSkuId
());
nftOrderBindBo
=
GalaxyNftOrderBindBo
.
getNew
();
nftOrderBindBo
.
setNftOrderPayId
(
reqDto
.
getNftOrderPayId
());
nftOrderBindBo
.
setSeriesId
(
seriesNftInfoBo
.
getSeriesId
());
nftOrderBindBo
.
setSeriesCode
(
seriesNftInfoBo
.
getSeriesCode
());
nftOrderBindBo
.
setNftIdIndex
(
Integer
.
valueOf
(
String
.
valueOf
(
nftIdNo
)));
nftOrderBindBo
.
setRouterType
(
reqDto
.
getRouterType
());
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
nftOrderBindBo
.
setCreatedAt
(
nowTimeStr
);
dataUtils
.
setGalaxyNftOrderBindBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBindBo
);
}
String
author
=
seriesNftInfoBo
.
getAuthor
();
String
author
=
seriesNftInfoBo
.
getAuthor
();
String
nftName
=
seriesNftInfoBo
.
getNftName
();
String
nftName
=
seriesNftInfoBo
.
getNftName
();
String
nftUrl
=
seriesNftInfoBo
.
getNftUrl
();
String
nftUrl
=
seriesNftInfoBo
.
getNftUrl
();
...
@@ -74,29 +102,33 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
...
@@ -74,29 +102,33 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
//发行个数
//发行个数
Long
publishCount
=
1L
;
Long
publishCount
=
1L
;
//开始索引
//开始索引
Integer
seriesBeginIndex
=
0
;
Integer
seriesBeginIndex
=
nftOrderBindBo
.
getNftIdIndex
()
;
//发行金额
//发行金额
Long
sellCount
=
Long
.
valueOf
(
seriesNftInfoBo
.
getSellCount
().
multiply
(
BigDecimal
.
valueOf
(
100
l
)).
longValue
()
);
//积分
Long
sellCount
=
seriesNftInfoBo
.
getSellCount
().
longValue
(
);
//积分
/**
/**
* 根据sku获取系列Id
* 根据sku获取系列Id
*/
*/
String
seriesId
=
seriesNftInfoBo
.
getS
ku
Id
();
String
seriesId
=
seriesNftInfoBo
.
getS
eries
Id
();
//返回参数nftId
//返回参数nftId
String
nftId
=
null
;
String
nftId
=
null
;
String
publishTaskId
=
null
;
Long
nftPublishChainTimestamp
=
null
;
Integer
nftPublishStatus
=
null
;
String
nftPublishTradeHash
=
null
;
//查询系列信息
// //查询系列信息(暂时不通过系列查询获取发行序列号)
Nft032SeriesReqDto
nft032ReqDto
=
Nft032SeriesReqDto
.
getNew
();
//
Nft032SeriesReqDto nft032ReqDto = Nft032SeriesReqDto.getNew();
nft032ReqDto
.
setSeriesId
(
seriesId
);
//
nft032ReqDto.setSeriesId(seriesId);
ZxlnftResponseDto
<
Nft032SeriesRespDto
>
resp
=
zxlnftSdkUtil
.
nft032Series
(
nft032ReqDto
);
//
ZxlnftResponseDto<Nft032SeriesRespDto> resp = zxlnftSdkUtil.nft032Series(nft032ReqDto);
//
if
(!
resp
.
isSuccess
()){
// if(
resp.isSuccess()){
//该系列已经发行多少个nft
//
//该系列已经发行多少个nft
Long
crtCount
=
resp
.
getData
().
getSeriesInfo
().
getCrtCount
();
//
Long crtCount = resp.getData().getSeriesInfo().getCrtCount();
log
.
info
(
"系列:{} 已发行 :{}"
,
seriesId
,
crtCount
);
//
log.info("系列:{} 已发行 :{}", seriesId, crtCount);
//设置开始索引
//
//设置开始索引
seriesBeginIndex
=
Integer
.
parseInt
(
String
.
valueOf
(
crtCount
.
longValue
()
+
1
));
//
seriesBeginIndex = Integer.parseInt(String.valueOf(crtCount.longValue() + 1));
}
//
}
//3.1.2调用NFT发行接口
//3.1.2调用NFT发行接口
/**
/**
...
@@ -121,82 +153,86 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
...
@@ -121,82 +153,86 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
ZxlnftResponseDto
<
Nft034PublishRespDto
>
nft034RespDto
=
zxlnftSdkUtil
.
nft034Publish
(
nft034ReqDto
);
ZxlnftResponseDto
<
Nft034PublishRespDto
>
nft034RespDto
=
zxlnftSdkUtil
.
nft034Publish
(
nft034ReqDto
);
if
(
nft034RespDto
.
isSuccess
())
{
if
(
nft034RespDto
.
isSuccess
())
{
publishTaskId
=
nft034RespDto
.
getData
().
getTaskId
();
//3.1.4查询 NFT发行结果
//3.1.4查询 NFT发行结果
Nft035PublishResultReqDto
nft035ReqDto
=
Nft035PublishResultReqDto
.
getNew
();
Nft035PublishResultReqDto
nft035ReqDto
=
Nft035PublishResultReqDto
.
getNew
();
nft035ReqDto
.
setTaskId
(
nft034RespDto
.
getData
().
getTaskId
());
nft035ReqDto
.
setTaskId
(
publishTaskId
);
//休眠1秒钟,等待执行结果
try
{
Thread
.
sleep
(
1000
l
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
long
timeStart
=
System
.
currentTimeMillis
();
log
.
info
(
"=======执行第{}次查询,taskId:{}"
,
1
,
nft035ReqDto
.
getTaskId
());
ZxlnftResponseDto
<
Nft035PublishResultRespDto
>
nft035RespDto
=
zxlnftSdkUtil
.
nft035PublishResult
(
nft035ReqDto
);
if
(
nft035RespDto
.
isSuccess
())
{
int
count
=
0
;
if
(
nft035RespDto
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_FAIL
.
getCode
()))
{
String
nftIdBegin
=
null
;
log
.
info
(
"任务执行失败!taskId:{} taskMsg:{}"
,
nft035ReqDto
.
getTaskId
(),
nft035RespDto
.
getData
().
getTaskMsg
());
long
timeStart
=
System
.
currentTimeMillis
();
return
null
;
while
(
StringUtil
.
isEmpty
(
nftIdBegin
))
{
//休眠1秒钟,等待执行结果
try
{
Thread
.
sleep
(
1000
l
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
int
count
=
1
;
count
++;
String
nftIdBegin
=
nft035RespDto
.
getData
().
getNftIdBegin
();
ZxlnftResponseDto
<
Nft035PublishResultRespDto
>
nft035RespDtoTemp
=
zxlnftSdkUtil
.
nft035PublishResult
(
nft035ReqDto
);
log
.
info
(
"=======执行第{}次查询,taskId:{}"
,
count
,
nft035ReqDto
.
getTaskId
());
if
(
nft035RespDto
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
PROCESSING
.
getCode
()))
{
if
(
nft035RespDtoTemp
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_SUCCESS
.
getCode
()))
{
log
.
info
(
ZxlnftEnum
.
TaskStatusEnum
.
PROCESSING
.
getMessage
());
nftIdBegin
=
nft035RespDtoTemp
.
getData
().
getNftIdBegin
();
while
(
StringUtil
.
isEmpty
(
nftIdBegin
))
{
nftPublishChainTimestamp
=
nft035RespDtoTemp
.
getData
().
getChainTimestamp
();
//休眠1秒钟,等待执行结果
nftPublishStatus
=
nft035RespDtoTemp
.
getData
().
getTaskStatus
();
try
{
nftPublishTradeHash
=
nft035RespDtoTemp
.
getData
().
getTxHash
();
Thread
.
sleep
(
1000
l
);
}
else
if
(
nft035RespDtoTemp
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_FAIL
.
getCode
()))
{
}
catch
(
InterruptedException
e
)
{
log
.
info
(
"任务执行失败!taskId:{}"
,
nft035ReqDto
.
getTaskId
());
e
.
printStackTrace
();
return
null
;
}
count
++;
ZxlnftResponseDto
<
Nft035PublishResultRespDto
>
nft035RespDtoTemp
=
zxlnftSdkUtil
.
nft035PublishResult
(
nft035ReqDto
);
log
.
info
(
"=======执行第{}次查询,taskId:{}"
,
count
,
nft035ReqDto
.
getTaskId
());
if
(
nft035RespDtoTemp
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_SUCCESS
.
getCode
()))
{
nftIdBegin
=
nft035RespDtoTemp
.
getData
().
getNftIdBegin
();
}
else
if
(
nft035RespDtoTemp
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_FAIL
.
getCode
()))
{
log
.
info
(
"任务执行失败!taskId:{}"
,
nft035ReqDto
.
getTaskId
());
return
null
;
}
if
(
count
==
6
)
{
log
.
info
(
"=======查询共6次,跳出循环!taskId:{}"
,
nft035ReqDto
.
getTaskId
());
break
;
}
}
}
else
if
(
nft035RespDto
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_SUCCESS
.
getCode
()))
{
log
.
info
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_SUCCESS
.
getMessage
());
}
}
log
.
info
(
"发行NFT后返回给前端nftID:{}"
,
nftIdBegin
);
if
(
count
==
5
)
{
log
.
info
(
"总共执行了{}次查询 总耗时:{} MS"
,
count
,
(
System
.
currentTimeMillis
()
-
timeStart
));
log
.
info
(
"=======查询共5次,跳出循环!taskId:{}"
,
nft035ReqDto
.
getTaskId
());
break
;
if
(
StringUtil
.
isNotEmpty
(
nftIdBegin
))
{
nftId
=
nftIdBegin
;
//3.1.3调用NFT查询接口
Nft036InfoReqDto
nft036ReqDto
=
Nft036InfoReqDto
.
getNew
();
nft036ReqDto
.
setNftId
(
nftIdBegin
);
ZxlnftResponseDto
<
Nft036InfoRespDto
>
nft036RespDto
=
zxlnftSdkUtil
.
nft036Info
(
nft036ReqDto
);
log
.
info
(
"调用NFT查询接口 : {}"
,
nft036RespDto
.
toJson
());
}
}
}
}
//赋值返回参数
nftId
=
nftIdBegin
;
log
.
info
(
"发行NFT后返回给前端nftID:{}"
,
nftIdBegin
);
log
.
info
(
"总共执行了{}次查询 总耗时:{} MS"
,
count
,
(
System
.
currentTimeMillis
()
-
timeStart
));
}
}
//更新订单缓存数据状态
nftOrderBo
.
setNftId
(
nftId
);
nftOrderBo
.
setNftPublishTaskId
(
publishTaskId
);
//设置时间
String
nftPublishChainTimestampStr
=
DateUtil
.
format
(
new
Date
(
nftPublishChainTimestamp
*
1000
),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
);
//转换任务状态
String
nftPublishStatusStr
=
GalaxyEnumBiz
.
getTaskStatusEnum
(
reqDto
.
getRouterType
(),
nftPublishStatus
.
toString
()).
getCode
();
nftOrderBo
.
setNftPublishChainTimestamp
(
nftPublishChainTimestampStr
);
nftOrderBo
.
setNftPublishStatus
(
nftPublishStatusStr
);
nftOrderBo
.
setNftPublishTradeHash
(
nftPublishTradeHash
);
nftOrderBo
.
setUpdatedAt
(
LocalDateTime
.
now
());
//先更新nft发行数据
dataUtils
.
updateNftOrderPublishInfo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBo
);
if
(
StringUtil
.
isNotEmpty
(
nftId
)){
if
(
StringUtil
.
isNotEmpty
(
nftId
)){
//执行购买逻辑
//执行购买逻辑
GalaxyNftPublishAndBuyRespDto
nftPublishAndBuyRespDto
=
GalaxyNftPublishAndBuyRespDto
.
getNew
();
GalaxyNftPublishAndBuyRespDto
nftPublishAndBuyRespDto
=
GalaxyNftPublishAndBuyRespDto
.
getNew
();
GalaxyNftBuyRespDto
nftBuyRespDto
=
this
.
nftBuyBusiness
(
reqDto
.
getRouterType
(),
nftId
,
userInfoBo
,
seriesNftInfoBo
,
nftOrderBo
);
GalaxyNftBuyRespDto
nftBuyRespDto
=
this
.
nftBuyBusiness
Sync
(
reqDto
.
getRouterType
(),
nftId
,
userInfoBo
,
seriesNftInfoBo
,
nftOrderBo
);
BeanUtil
.
copy
(
nftBuyRespDto
,
nftPublishAndBuyRespDto
);
BeanUtil
.
copy
(
nftBuyRespDto
,
nftPublishAndBuyRespDto
);
return
ResponseDto
.
success
(
nftPublishAndBuyRespDto
);
return
ResponseDto
.
success
(
nftPublishAndBuyRespDto
);
}
else
{
}
else
{
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
PUBLISH_FAIL
.
getCode
(),
GalaxyErrorEnum
.
PUBLISH_FAIL
.
getMessage
());
return
ResponseDto
.
failure
(
GalaxyErrorEnum
.
PUBLISH_FAIL
.
getCode
(),
GalaxyErrorEnum
.
PUBLISH_FAIL
.
getMessage
());
}
}
}
}
/**
* 保持线程循环查询
* @param nftId
* @param userInfoBo
* @param seriesNftInfoBo
* @return
*/
private
GalaxyNftBuyRespDto
nftBuyBusinessSync
(
String
routerType
,
String
nftId
,
GalaxyUserInfoBo
userInfoBo
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
,
GalaxyNftOrderBo
nftOrderBo
){
//定义返回参数
String
nftBuyTaskId
=
null
;
Long
nftBuyChainTimestamp
=
null
;
Integer
nftBuyStatus
=
null
;
String
nftBuyTradeHash
=
null
;
String
nftBuyPayTaskId
=
null
;
private
GalaxyNftBuyRespDto
nftBuyBusiness
(
String
routerType
,
String
nftId
,
GalaxyUserInfoBo
userInfoBo
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
,
GalaxyNftOrderBo
nftOrderBo
){
// 3.2.2调用购买NFT接口
// 3.2.2调用购买NFT接口
Nft043BuyReqDto
nft043BuyReqDto
=
Nft043BuyReqDto
.
getNew
();
Nft043BuyReqDto
nft043BuyReqDto
=
Nft043BuyReqDto
.
getNew
();
nft043BuyReqDto
.
setNftId
(
nftId
);
nft043BuyReqDto
.
setNftId
(
nftId
);
...
@@ -230,17 +266,62 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
...
@@ -230,17 +266,62 @@ public class ConsumerJsonNftPublishAndBuyProcessor {
}
}
nft043BuyReqDto
.
setSignature
(
signature
);
nft043BuyReqDto
.
setSignature
(
signature
);
String
nftBuyTaskId
=
null
;
ZxlnftResponseDto
<
Nft043BuyRespDto
>
nft043RespDto
=
zxlnftSdkUtil
.
nft043Buy
(
nft043BuyReqDto
);
ZxlnftResponseDto
<
Nft043BuyRespDto
>
nft043RespDto
=
zxlnftSdkUtil
.
nft043Buy
(
nft043BuyReqDto
);
if
(
nft043RespDto
.
isSuccess
()){
if
(
nft043RespDto
.
isSuccess
()){
nftBuyTaskId
=
nft043RespDto
.
getData
().
getTaskId
();
nftBuyTaskId
=
nft043RespDto
.
getData
().
getTaskId
();
}
else
{
//3.2.4查询NFT购买结果
throw
new
LiquidnetServiceException
(
nft043RespDto
.
getCode
(),
nft043RespDto
.
getMessage
());
Nft044BuyResultReqDto
nft044ReqDto
=
Nft044BuyResultReqDto
.
getNew
();
}
nft044ReqDto
.
setTaskId
(
nftBuyTaskId
);
long
timeStart
=
System
.
currentTimeMillis
();
int
count
=
1
;
while
(
nftBuyPayTaskId
==
null
){
try
{
Thread
.
sleep
(
1000
l
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
count
++;
log
.
info
(
"=======执行第{}次查询,taskId:{}"
,
1
,
nft044ReqDto
.
getTaskId
());
ZxlnftResponseDto
<
Nft044BuyResultRespDto
>
nft044RespDto
=
zxlnftSdkUtil
.
nft044BuyResult
(
nft044ReqDto
);
if
(
nft044RespDto
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_SUCCESS
.
getCode
())){
nftBuyPayTaskId
=
nft044RespDto
.
getData
().
getPayTaskId
();
nftBuyChainTimestamp
=
nft044RespDto
.
getData
().
getChainTimestamp
();
nftBuyStatus
=
nft044RespDto
.
getData
().
getTaskStatus
();
nftBuyTradeHash
=
nft044RespDto
.
getData
().
getTxHash
();
}
else
if
(
nft044RespDto
.
getData
().
getTaskStatus
().
toString
().
equals
(
ZxlnftEnum
.
TaskStatusEnum
.
TASK_FAIL
.
getCode
())){
log
.
info
(
"任务执行失败!taskId:{}"
,
nft044ReqDto
.
getTaskId
());
return
null
;
}
//更新缓存数据状态
if
(
count
==
6
){
nftOrderBo
.
setNftBuyTaskId
(
nftBuyTaskId
);
log
.
info
(
"=======查询共6次,跳出循环!taskId:{}"
,
nft044ReqDto
.
getTaskId
());
dataUtils
.
updateNftOrderBuyTaskId
(
routerType
,
nftOrderBo
.
getNftOrderPayId
(),
nftOrderBo
);
break
;
}
}
log
.
info
(
"总共执行了多少次查询:{} 总耗时:{}"
,
count
,
System
.
currentTimeMillis
()
-
timeStart
);
// if(StringUtil.isNotEmpty(payTaskId)){
// //3.2.5查询NFT购买支付结果
// Nft045BuyPayResultReqDto nft045ReqDto = Nft045BuyPayResultReqDto.getNew();
// nft045ReqDto.setTaskId(payTaskId);
// ZxlnftResponseDto<Nft045BuyPayResultRespDto> nft045RespDto = zxlnftSdkUtil.nft045BuyPayResult(nft045ReqDto);
// }
//更新订单缓存数据状态
nftOrderBo
.
setNftBuyTaskId
(
nftBuyTaskId
);
//设置时间
String
nftBuyChainTimestampStr
=
DateUtil
.
format
(
new
Date
(
nftBuyChainTimestamp
*
1000
),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
);
//转换任务状态
String
nftBuyStatusStr
=
GalaxyEnumBiz
.
getTaskStatusEnum
(
routerType
,
nftBuyStatus
.
toString
()).
getCode
();
nftOrderBo
.
setNftBuyChainTimestamp
(
nftBuyChainTimestampStr
);
nftOrderBo
.
setNftBuyStatus
(
nftBuyStatusStr
);
nftOrderBo
.
setNftBuyTradeHash
(
nftBuyTradeHash
);
nftOrderBo
.
setNftBuyPayTaskId
(
nftBuyPayTaskId
);
nftOrderBo
.
setUpdatedAt
(
LocalDateTime
.
now
());
//先更新nft发行数据
dataUtils
.
updateNftOrderBuyInfo
(
routerType
,
nftOrderBo
.
getNftOrderPayId
(),
nftOrderBo
);
}
GalaxyNftBuyRespDto
nftBuyRespDto
=
GalaxyNftBuyRespDto
.
getNew
();
GalaxyNftBuyRespDto
nftBuyRespDto
=
GalaxyNftBuyRespDto
.
getNew
();
nftBuyRespDto
.
setUserId
(
userInfoBo
.
getUserId
());
nftBuyRespDto
.
setUserId
(
userInfoBo
.
getUserId
());
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/utils/DataUtils.java
View file @
2a53f70e
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
utils
;
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
utils
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.service.galaxy.utils.AbstractDataUtils
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.service.galaxy.utils.QueueUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.galaxy.constant.GalaxyConstant
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftOrderVo
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxySeriesNftInfoVo
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyUserInfoVo
;
import
com.mongodb.client.result.UpdateResult
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.bson.Document
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
@Slf4j
@Slf4j
@Component
@Component
public
class
DataUtils
{
public
class
DataUtils
extends
AbstractDataUtils
{
@Autowired
@Autowired
private
RedisUtil
redisUtil
;
private
RedisUtil
redisUtil
;
...
@@ -39,76 +22,19 @@ public class DataUtils {
...
@@ -39,76 +22,19 @@ public class DataUtils {
private
long
keyExpireTime
=
3600
*
24
*
30
;
private
long
keyExpireTime
=
3600
*
24
*
30
;
public
GalaxyUserInfoBo
getGalaxyUserInfo
(
String
routerType
,
String
userId
)
{
Object
obj
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_USER
.
concat
(
routerType
).
concat
(
":"
)
+
userId
);
if
(
obj
!=
null
){
return
(
GalaxyUserInfoBo
)
obj
;
}
else
{
GalaxyUserInfoVo
userInfoVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"userId"
).
is
(
userId
)),
GalaxyUserInfoVo
.
class
,
GalaxyUserInfoVo
.
class
.
getSimpleName
());
if
(
userInfoVo
==
null
)
{
return
null
;
}
GalaxyUserInfoBo
userInfoBo
=
GalaxyUserInfoBo
.
getNew
();
BeanUtil
.
copy
(
userInfoVo
,
userInfoBo
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_USER
.
concat
(
routerType
).
concat
(
":"
)
+
userId
,
userInfoBo
);
return
userInfoBo
;
}
}
public
GalaxyNftOrderBo
getNftOrderBo
(
String
routerType
,
String
nftOrderPayId
)
{
@Override
Object
obj
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
);
public
RedisUtil
getRedisUtil
()
{
if
(
obj
!=
null
){
return
redisUtil
;
return
(
GalaxyNftOrderBo
)
obj
;
}
else
{
GalaxyNftOrderVo
nftOrderVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderPayId
)),
GalaxyNftOrderVo
.
class
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
if
(
nftOrderVo
==
null
)
{
return
null
;
}
GalaxyNftOrderBo
nftOrderBo
=
GalaxyNftOrderBo
.
getNew
();
BeanUtil
.
copy
(
nftOrderVo
,
nftOrderBo
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
);
return
nftOrderBo
;
}
}
}
public
GalaxySeriesNftInfoBo
getSeriesNftInfoBo
(
String
routerType
,
String
skuId
)
{
@Override
Object
obj
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
);
public
MongoTemplate
getMongoTemplate
()
{
if
(
obj
!=
null
){
return
mongoTemplate
;
return
(
GalaxySeriesNftInfoBo
)
obj
;
}
else
{
GalaxySeriesNftInfoVo
seriesNftInfoVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"skuId"
).
is
(
skuId
)),
GalaxySeriesNftInfoVo
.
class
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
if
(
seriesNftInfoVo
==
null
)
{
return
null
;
}
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
GalaxySeriesNftInfoBo
.
getNew
();
BeanUtil
.
copy
(
seriesNftInfoVo
,
seriesNftInfoBo
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
);
return
seriesNftInfoBo
;
}
}
}
public
void
updateNftOrderBuyTaskId
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBo
nftOrderBo
)
{
@Override
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
,
keyExpireTime
);
public
com
.
liquidnet
.
service
.
galaxy
.
utils
.
QueueUtil
getQueueUtil
()
{
return
queueUtil
;
Query
query
=
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderPayId
));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
nftOrderBo
)));
update
.
set
(
"nftBuyTaskId"
,
nftOrderBo
.
getNftBuyTaskId
());
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
query
,
update
,
GalaxyNftOrderVo
.
class
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
log
.
info
(
"updateNftOrderInfo result:{}"
,
result
.
toString
());
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_order_info.updateNftBuyTaskId"
),
new
Object
[]{
nftOrderBo
.
getNftBuyTaskId
(),
LocalDateTime
.
now
(),
nftOrderBo
.
getNftOrderPayId
()}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftTradeInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
}
}
}
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/utils/QueueUtil.java
deleted
100644 → 0
View file @
ebe30d8b
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
utils
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.galaxy.utils.ObjectUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.StreamRecords
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: QueueUtil
* @Package com.liquidnet.service.galaxy.utils
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/3/25 15:35
*/
@Component
public
class
QueueUtil
{
@Autowired
StringRedisTemplate
stringRedisTemplate
;
/**
* 给 REDIS 队列发送消息 数据库相关
*
* @param sql sql语句
* @param data 需要操作的数据
* @return
*/
public
boolean
sendMySqlRedis
(
String
sql
,
Object
[]
data
,
String
redisKey
)
{
try
{
LinkedList
<
String
>
sqls
=
ObjectUtil
.
cloneLinkedListStr
();
sqls
.
add
(
sql
);
LinkedList
<
Object
[]>
sqlsData
=
ObjectUtil
.
cloneLinkedListObj
();
sqlsData
.
add
(
data
);
String
sqlData
=
SqlMapping
.
gets
(
sqls
,
sqlsData
);
HashMap
<
String
,
String
>
map
=
ObjectUtil
.
cloneHashMapStringAndString
();
map
.
put
(
"message"
,
sqlData
);
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
redisKey
);
stringRedisTemplate
.
opsForStream
().
add
(
record
);
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
}
liquidnet-bus-service/liquidnet-service-consumer-all/pom.xml
View file @
2a53f70e
...
@@ -17,7 +17,6 @@
...
@@ -17,7 +17,6 @@
<module>
liquidnet-service-consumer-sweet
</module>
<module>
liquidnet-service-consumer-sweet
</module>
<module>
liquidnet-service-consumer-stone
</module>
<module>
liquidnet-service-consumer-stone
</module>
<module>
liquidnet-service-consumer-candy
</module>
<module>
liquidnet-service-consumer-candy
</module>
<module>
liquidnet-service-consumer-galaxy
</module>
</modules>
</modules>
<dependencies>
<dependencies>
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/pom.xml
0 → 100644
View file @
2a53f70e
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
liquidnet-service-galaxy
</artifactId>
<groupId>
com.liquidnet
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
liquidnet-service-galaxy-common
</artifactId>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-mongodb
</artifactId>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-third-zxlnft
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-third-antchain
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-galaxy-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependencies>
</project>
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-
impl/src/main/java/com/liquidnet/service/galaxy/router/zxin/biz/ZxinCommon
Biz.java
→
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-
common/src/main/java/com/liquidnet/service/galaxy/biz/GalaxyBeanTransfer
Biz.java
View file @
2a53f70e
package
com
.
liquidnet
.
service
.
galaxy
.
router
.
zxin
.
biz
;
package
com
.
liquidnet
.
service
.
galaxy
.
biz
;
import
com.liquidnet.common.third.zxlnft.config.ZxlnftConfig
;
import
com.liquidnet.common.third.zxlnft.config.ZxlnftConfig
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo
;
...
@@ -14,18 +14,18 @@ import java.time.LocalDateTime;
...
@@ -14,18 +14,18 @@ import java.time.LocalDateTime;
* @author AnJiabin <anjiabin@zhengzai.tv>
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @version V1.0
* @Description: TODO
* @Description: TODO
* @class:
Zxin
CommonBiz
* @class:
Galaxy
CommonBiz
* @Package com.liquidnet.service.galaxy.router.
zxin
.biz
* @Package com.liquidnet.service.galaxy.router.
strategy
.biz
* @Copyright: LightNet @ Copyright (c) 2022
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/3/
30 17:51
* @date 2022/3/
23 11:20
*/
*/
@Slf4j
@Slf4j
@Component
@Component
public
class
ZxinCommon
Biz
{
public
class
GalaxyBeanTransfer
Biz
{
@Autowired
@Autowired
private
ZxlnftConfig
zxlnftConfig
;
private
ZxlnftConfig
zxlnftConfig
;
public
GalaxyNftOrderBo
buildNftOrderBo
(
String
nftOrderPayId
,
GalaxyUserInfoBo
userInfoBo
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
){
public
GalaxyNftOrderBo
buildNftOrderBo
(
String
nftOrderPayId
,
GalaxyUserInfoBo
userInfoBo
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
){
GalaxyNftOrderBo
nftOrderBo
=
GalaxyNftOrderBo
.
getNew
();
GalaxyNftOrderBo
nftOrderBo
=
GalaxyNftOrderBo
.
getNew
();
nftOrderBo
.
setUserId
(
userInfoBo
.
getUserId
());
nftOrderBo
.
setUserId
(
userInfoBo
.
getUserId
());
nftOrderBo
.
setSkuId
(
seriesNftInfoBo
.
getSkuId
());
nftOrderBo
.
setSkuId
(
seriesNftInfoBo
.
getSkuId
());
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-
impl/src/main/java/com/liquidnet/service/galaxy/router/strateg
y/biz/GalaxyEnumBiz.java
→
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-
common/src/main/java/com/liquidnet/service/galax
y/biz/GalaxyEnumBiz.java
View file @
2a53f70e
package
com
.
liquidnet
.
service
.
galaxy
.
router
.
strategy
.
biz
;
package
com
.
liquidnet
.
service
.
galaxy
.
biz
;
import
com.liquidnet.common.third.antchain.constant.AntchainEnum
;
import
com.liquidnet.common.third.antchain.constant.AntchainEnum
;
import
com.liquidnet.common.third.zxlnft.constant.ZxlnftEnum
;
import
com.liquidnet.common.third.zxlnft.constant.ZxlnftEnum
;
...
@@ -17,7 +17,7 @@ public class GalaxyEnumBiz {
...
@@ -17,7 +17,7 @@ public class GalaxyEnumBiz {
/**
/**
* 任务状态转换
* 任务状态转换
* @param routerType
Enum
* @param routerType
* @param code
* @param code
* @return
* @return
*/
*/
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/java/com/liquidnet/service/galaxy/utils/AbstractDataUtils.java
0 → 100644
View file @
2a53f70e
package
com
.
liquidnet
.
service
.
galaxy
.
utils
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.galaxy.constant.GalaxyConstant
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.dto.bo.*
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.*
;
import
com.mongodb.client.result.UpdateResult
;
import
lombok.extern.slf4j.Slf4j
;
import
org.bson.Document
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Slf4j
public
abstract
class
AbstractDataUtils
{
public
abstract
RedisUtil
getRedisUtil
();
public
abstract
MongoTemplate
getMongoTemplate
();
public
abstract
QueueUtil
getQueueUtil
();
private
long
keyExpireTime
=
3600
*
24
*
30
;
public
void
setGalaxyUserInfo
(
String
routerType
,
String
userId
,
GalaxyUserInfoBo
userInfoBo
)
{
String
userType
=
GalaxyEnum
.
RegisterTypeEnum
.
COMPANY
.
getCode
();
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_USER
.
concat
(
routerType
).
concat
(
":"
)
+
userId
,
userInfoBo
,
keyExpireTime
);
//入库mongo
GalaxyUserInfoVo
userInfoVo
=
GalaxyUserInfoVo
.
getNew
();
BeanUtil
.
copy
(
userInfoBo
,
userInfoVo
);
userInfoVo
.
setCreatedAt
(
LocalDateTime
.
now
());
this
.
getMongoTemplate
().
save
(
userInfoVo
,
GalaxyUserInfoVo
.
class
.
getSimpleName
());
// insert into galaxy_user_info (mid, user_id, user_name, user_type, mobile, id_card_type
// , id_card, mnemonic, index,user_identification, user_pub_key
// , user_pri_key, block_chain_address, router_type,created_at, updated_at)
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_user_info.insert"
),
new
Object
[]{
userId
,
userInfoBo
.
getUserName
(),
userType
,
userInfoBo
.
getMobile
(),
userInfoBo
.
getIdCardType
()
,
userInfoBo
.
getIdCard
(),
userInfoBo
.
getMnemonic
(),
userInfoBo
.
getIndex
(),
userInfoBo
.
getUserIdentification
(),
userInfoBo
.
getUserPubKey
()
,
userInfoBo
.
getUserPriKey
(),
userInfoBo
.
getBlockChainAddress
(),
userInfoBo
.
getRouterType
(),
new
Date
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_USER_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setGalaxyUserInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
GalaxyUserInfoBo
getGalaxyUserInfo
(
String
routerType
,
String
userId
)
{
Object
obj
=
this
.
getRedisUtil
().
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_USER
.
concat
(
routerType
).
concat
(
":"
)
+
userId
);
if
(
obj
!=
null
){
return
(
GalaxyUserInfoBo
)
obj
;
}
else
{
GalaxyUserInfoVo
userInfoVo
=
this
.
getMongoTemplate
().
findOne
(
Query
.
query
(
Criteria
.
where
(
"userId"
).
is
(
userId
)),
GalaxyUserInfoVo
.
class
,
GalaxyUserInfoVo
.
class
.
getSimpleName
());
if
(
userInfoVo
==
null
)
{
return
null
;
}
GalaxyUserInfoBo
userInfoBo
=
GalaxyUserInfoBo
.
getNew
();
BeanUtil
.
copy
(
userInfoVo
,
userInfoBo
);
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_USER
.
concat
(
routerType
).
concat
(
":"
)
+
userId
,
userInfoBo
);
return
userInfoBo
;
}
}
public
void
setSeriesNftUploadBo
(
String
routerType
,
String
skuId
,
GalaxySeriesNftUploadBo
seriesNftUploadBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT_UPLOAD
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftUploadBo
,
keyExpireTime
);
//mongo入库
GalaxySeriesNftUploadVo
seriesNftUploadVo
=
GalaxySeriesNftUploadVo
.
getNew
();
BeanUtil
.
copy
(
seriesNftUploadBo
,
seriesNftUploadVo
);
seriesNftUploadVo
.
setCreatedAt
(
LocalDateTime
.
now
());
this
.
getMongoTemplate
().
save
(
seriesNftUploadVo
,
GalaxySeriesNftUploadVo
.
class
.
getSimpleName
());
}
public
GalaxySeriesNftUploadBo
getSeriesNftUploadBo
(
String
routerType
,
String
skuId
)
{
Object
obj
=
this
.
getRedisUtil
().
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT_UPLOAD
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
);
if
(
obj
!=
null
){
return
(
GalaxySeriesNftUploadBo
)
obj
;
}
else
{
//设置查询参数
Criteria
criteria
=
Criteria
.
where
(
"routerType"
).
is
(
routerType
);
String
userId
=
CurrentUtil
.
getCurrentUid
();
if
(
StringUtil
.
isNotEmpty
(
skuId
)){
criteria
=
criteria
.
and
(
"skuId"
).
is
(
skuId
);
}
GalaxySeriesNftUploadVo
seriesNftUploadVo
=
this
.
getMongoTemplate
().
findOne
(
Query
.
query
(
criteria
),
GalaxySeriesNftUploadVo
.
class
,
GalaxySeriesNftUploadVo
.
class
.
getSimpleName
());
if
(
seriesNftUploadVo
==
null
)
{
return
null
;
}
GalaxySeriesNftUploadBo
seriesNftUploadBo
=
GalaxySeriesNftUploadBo
.
getNew
();
BeanUtil
.
copy
(
seriesNftUploadVo
,
seriesNftUploadBo
);
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT_UPLOAD
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftUploadBo
);
return
seriesNftUploadBo
;
}
}
public
void
setSeriesInfoBo
(
String
routerType
,
String
seriesCode
,
GalaxySeriesInfoBo
seriesInfoBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
,
seriesInfoBo
,
keyExpireTime
);
// insert into galaxy_series_info (mid, series_info_id, series_name, series_code, series_id, total_count
// , crt_count,series_claim_task_id, series_claim_status, cover_url, series_desc
// , nft_count,router_type, created_at, updated_at)
Integer
nftCount
=
1
;
//默认为一个系列包含一个NFT
//mongo入库
GalaxySeriesInfoVo
seriesInfoVo
=
GalaxySeriesInfoVo
.
getNew
();
BeanUtil
.
copy
(
seriesInfoBo
,
seriesInfoVo
);
seriesInfoVo
.
setCreatedAt
(
DateUtil
.
format
(
LocalDateTime
.
now
(),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
));
this
.
getMongoTemplate
().
save
(
seriesInfoVo
,
GalaxySeriesInfoVo
.
class
.
getSimpleName
());
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_info.insert"
),
new
Object
[]{
seriesInfoBo
.
getSeriesInfoId
(),
seriesInfoBo
.
getSeriesName
(),
seriesCode
,
null
,
seriesInfoBo
.
getTotalCount
()
,
seriesInfoBo
.
getCrtCount
(),
seriesInfoBo
.
getSeriesClaimTaskId
(),
seriesInfoBo
.
getSeriesClaimStatus
(),
seriesInfoBo
.
getCoverUrl
(),
seriesInfoBo
.
getSeriesDesc
()
,
nftCount
,
seriesInfoBo
.
getRouterType
(),
LocalDateTime
.
now
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_SERIES_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setSeriesInfoBo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
GalaxySeriesInfoBo
getSeriesInfoBo
(
String
routerType
,
String
seriesCode
)
{
Object
obj
=
this
.
getRedisUtil
().
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
);
if
(
obj
!=
null
){
return
(
GalaxySeriesInfoBo
)
obj
;
}
else
{
GalaxySeriesInfoVo
seriesInfoVo
=
this
.
getMongoTemplate
().
findOne
(
Query
.
query
(
Criteria
.
where
(
"seriesCode"
).
is
(
seriesCode
)),
GalaxySeriesInfoVo
.
class
,
GalaxySeriesInfoVo
.
class
.
getSimpleName
());
if
(
seriesInfoVo
==
null
)
{
return
null
;
}
GalaxySeriesInfoBo
seriesInfoBo
=
GalaxySeriesInfoBo
.
getNew
();
BeanUtil
.
copy
(
seriesInfoVo
,
seriesInfoBo
);
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
,
seriesInfoBo
);
return
seriesInfoBo
;
}
}
public
void
setSeriesNftInfoBo
(
String
routerType
,
String
skuId
,
GalaxySeriesInfoBo
seriesInfoBo
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
,
keyExpireTime
);
//初始化nft发行开始索引
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_NFT
.
concat
(
routerType
).
concat
(
":"
).
concat
(
skuId
),
seriesNftInfoBo
.
getNftIdBeginIndex
());
//mongo入库
GalaxySeriesNftInfoVo
seriesNftInfoVo
=
GalaxySeriesNftInfoVo
.
getNew
();
BeanUtil
.
copy
(
seriesNftInfoBo
,
seriesNftInfoVo
);
seriesNftInfoVo
.
setCreatedAt
(
LocalDateTime
.
now
());
this
.
getMongoTemplate
().
save
(
seriesNftInfoVo
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
try
{
// insert into galaxy_series_nft_info (mid, series_nft_info_id, series_info_id, sku_id, series_name, series_code
// ,series_id, nft_total_count, nft_crt_count,nft_id_begin,nft_id_begin_index,nft_publish_number,original_nft_url
// , original_display_url,author, nft_name, nft_url, display_url
// , nft_desc, nft_flag, sell_count, nft_hash,router_type
// , created_at, updated_at)
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_nft_info.insert"
),
new
Object
[]{
seriesNftInfoBo
.
getSeriesNftInfoId
(),
seriesInfoBo
.
getSeriesInfoId
(),
skuId
,
seriesInfoBo
.
getSeriesName
(),
seriesInfoBo
.
getSeriesCode
()
,
seriesInfoBo
.
getSeriesId
(),
seriesNftInfoBo
.
getNftTotalCount
(),
seriesNftInfoBo
.
getNftCrtCount
(),
seriesNftInfoBo
.
getNftIdBegin
(),
seriesNftInfoBo
.
getNftIdBeginIndex
(),
seriesNftInfoBo
.
getNftPublishNumber
(),
seriesNftInfoBo
.
getOriginalNftUrl
()
,
seriesNftInfoBo
.
getOriginalDisplayUrl
(),
seriesNftInfoBo
.
getAuthor
(),
seriesNftInfoBo
.
getNftName
(),
seriesNftInfoBo
.
getNftUrl
(),
seriesNftInfoBo
.
getDisplayUrl
()
,
seriesNftInfoBo
.
getNftDesc
(),
seriesNftInfoBo
.
getNftFlag
(),
seriesNftInfoBo
.
getSellCount
(),
seriesNftInfoBo
.
getNftHash
(),
seriesInfoBo
.
getRouterType
()
,
LocalDateTime
.
now
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_SERIES_INFO
.
getKey
());
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setSeriesInfoBo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
GalaxySeriesNftInfoBo
getSeriesNftInfoBo
(
String
routerType
,
String
skuId
)
{
Object
obj
=
this
.
getRedisUtil
().
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
);
if
(
obj
!=
null
){
return
(
GalaxySeriesNftInfoBo
)
obj
;
}
else
{
GalaxySeriesNftInfoVo
seriesNftInfoVo
=
this
.
getMongoTemplate
().
findOne
(
Query
.
query
(
Criteria
.
where
(
"skuId"
).
is
(
skuId
)),
GalaxySeriesNftInfoVo
.
class
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
if
(
seriesNftInfoVo
==
null
)
{
return
null
;
}
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
GalaxySeriesNftInfoBo
.
getNew
();
BeanUtil
.
copy
(
seriesNftInfoVo
,
seriesNftInfoBo
);
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
);
return
seriesNftInfoBo
;
}
}
public
void
updateSeriesClaimStatus
(
String
routerType
,
String
seriesCode
,
GalaxySeriesInfoBo
seriesInfoBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
,
seriesInfoBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"seriesCode"
).
is
(
seriesInfoBo
.
getSeriesCode
()));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
seriesInfoBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
this
.
getMongoTemplate
().
updateFirst
(
query
,
update
,
GalaxySeriesInfoVo
.
class
,
GalaxySeriesInfoVo
.
class
.
getSimpleName
());
log
.
info
(
"updateSeriesClaimStatus result:{}"
,
result
.
toString
());
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_info.updateSeriesIdAndStatus"
),
new
Object
[]{
seriesInfoBo
.
getSeriesId
(),
seriesInfoBo
.
getChainTimestamp
(),
seriesInfoBo
.
getTradeHash
(),
seriesInfoBo
.
getSeriesClaimStatus
(),
nowTimeStr
,
seriesInfoBo
.
getSeriesCode
()}
,
MQConst
.
GalaxyQueue
.
SQL_SERIES_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#updateSeriesClaimStatus error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
//更新系列对应的系列nft状态
List
<
String
>
skuIdList
=
this
.
getSkuIdListBySeriesCode
(
seriesCode
);
skuIdList
.
stream
().
forEach
(
skuId
->
{
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
this
.
getSeriesNftInfoBo
(
routerType
,
skuId
);
seriesNftInfoBo
.
setSeriesId
(
seriesInfoBo
.
getSeriesId
());
seriesNftInfoBo
.
setUpdatedAt
(
LocalDateTime
.
now
());
this
.
updateSeriesNftStatus
(
routerType
,
skuId
,
seriesNftInfoBo
);
});
}
public
void
updateSeriesNftStatus
(
String
routerType
,
String
skuId
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
)
{
//更新系列nft状态
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"skuId"
).
is
(
skuId
));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
seriesNftInfoBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
seriesNftInfoBo
.
getUpdatedAt
());
update
.
set
(
"routerType"
,
routerType
);
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
this
.
getMongoTemplate
().
updateFirst
(
query
,
update
,
GalaxySeriesNftInfoVo
.
class
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
log
.
info
(
"updateSeriesNftStatus result:{}"
,
result
.
toString
());
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_nft_info.updateSeriesIdAndStatus"
),
new
Object
[]{
seriesNftInfoBo
.
getSeriesId
(),
nowTimeStr
,
seriesNftInfoBo
.
getSkuId
()}
,
MQConst
.
GalaxyQueue
.
SQL_SERIES_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#updateSeriesNftStatus error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
//根据系列Id获取
public
List
<
String
>
getSkuIdListBySeriesCode
(
String
seriesCode
){
//根据演出id获取用户信息 只查询5条
List
<
String
>
skuIdList
=
new
ArrayList
<>();
//获取总数
Criteria
criteria
=
Criteria
.
where
(
"seriesCode"
).
is
(
seriesCode
);
Query
query
=
Query
.
query
(
criteria
);
long
startTime
=
System
.
currentTimeMillis
();
List
<
GalaxySeriesNftInfoVo
>
seriesNftInfoVoList
=
this
.
getMongoTemplate
().
find
(
query
,
GalaxySeriesNftInfoVo
.
class
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
long
endTime
=
System
.
currentTimeMillis
();
log
.
info
(
"getSkuIdListBySeriesCode 根据系列code获取skuId 耗时:{}ms"
,
endTime
-
startTime
);
//根据用户id获取头像信息
if
(
StringUtil
.
isNotNull
(
seriesNftInfoVoList
)){
skuIdList
=
seriesNftInfoVoList
.
stream
().
map
(
GalaxySeriesNftInfoVo:
:
getSkuId
).
collect
(
Collectors
.
toList
());
}
return
skuIdList
;
}
public
void
setNftOrderBo
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBo
nftOrderBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
,
keyExpireTime
);
/**
* 入库mongo
*/
GalaxyNftOrderVo
nftOrderVo
=
GalaxyNftOrderVo
.
getNew
();
BeanUtil
.
copy
(
nftOrderBo
,
nftOrderVo
);
this
.
getMongoTemplate
().
save
(
nftOrderVo
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
// insert into galaxy_nft_order_info (mid, nft_order_pay_id, user_id, sku_id, series_name, series_id
// , nft_id, nft_price,from_address, to_address, nft_publish_task_id, nft_buy_task_id
// , nft_buy_pay_task_id,router_type, created_at, updated_at)
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_order_info.insert"
),
new
Object
[]{
nftOrderPayId
,
nftOrderBo
.
getUserId
(),
nftOrderBo
.
getSkuId
(),
nftOrderBo
.
getSeriesName
(),
nftOrderBo
.
getSeriesId
(),
nftOrderBo
.
getSeriesCode
()
,
nftOrderBo
.
getNftId
(),
nftOrderBo
.
getNftPrice
(),
nftOrderBo
.
getNftPublishFromAddress
(),
nftOrderBo
.
getNftPublishToAddress
(),
nftOrderBo
.
getNftPublishTaskId
()
,
nftOrderBo
.
getNftBuyTaskId
(),
nftOrderBo
.
getNftBuyPayTaskId
(),
nftOrderBo
.
getRouterType
(),
LocalDateTime
.
now
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_ORDER_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftOrderBo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
//更新系列已发行信息
try
{
this
.
updateSeriesCrtCount
(
routerType
,
nftOrderBo
.
getSeriesCode
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
//更新系列nft已发行信息
try
{
this
.
updateSeriesNftCrtCount
(
routerType
,
nftOrderBo
.
getSkuId
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
public
GalaxyNftOrderBo
getNftOrderBo
(
String
routerType
,
String
nftOrderPayId
)
{
Object
obj
=
this
.
getRedisUtil
().
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
);
if
(
obj
!=
null
){
return
(
GalaxyNftOrderBo
)
obj
;
}
else
{
GalaxyNftOrderVo
nftOrderVo
=
this
.
getMongoTemplate
().
findOne
(
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderPayId
)),
GalaxyNftOrderVo
.
class
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
if
(
nftOrderVo
==
null
)
{
return
null
;
}
GalaxyNftOrderBo
nftOrderBo
=
GalaxyNftOrderBo
.
getNew
();
BeanUtil
.
copy
(
nftOrderVo
,
nftOrderBo
);
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
);
return
nftOrderBo
;
}
}
/**
* 更新nft订单发行数据
* @param routerType
* @param nftOrderPayId
* @param nftOrderBo
*/
public
void
updateNftOrderPublishInfo
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBo
nftOrderBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderBo
.
getNftOrderPayId
()));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
nftOrderBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
nftOrderBo
.
getUpdatedAt
());
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
this
.
getMongoTemplate
().
updateFirst
(
query
,
update
,
GalaxyNftOrderVo
.
class
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
log
.
info
(
"updateNftOrderInfo result:{}"
,
result
.
toString
());
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_order_info.updateNftPublishInfo"
),
new
Object
[]{
nftOrderBo
.
getNftId
(),
LocalDateTime
.
now
(),
nftOrderBo
.
getNftOrderPayId
()}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftTradeInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
/**
* 更新nft订单购买数据
* @param routerType
* @param nftOrderPayId
* @param nftOrderBo
*/
public
void
updateNftOrderBuyInfo
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBo
nftOrderBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderPayId
));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
nftOrderBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
nftOrderBo
.
getUpdatedAt
());
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
this
.
getMongoTemplate
().
updateFirst
(
query
,
update
,
GalaxyNftOrderVo
.
class
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
log
.
info
(
"updateNftOrderInfo result:{}"
,
result
.
toString
());
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_order_info.updateNftBuyInfo"
),
new
Object
[]{
nftOrderBo
.
getNftBuyTaskId
(),
LocalDateTime
.
now
(),
nftOrderBo
.
getNftOrderPayId
()}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftTradeInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
void
setGalaxyNftOrderBindBo
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBindBo
nftOrderBindBo
)
{
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBindBo
,
keyExpireTime
);
//入库mongo
GalaxyNftOrderBindVo
nftOrderBindVo
=
GalaxyNftOrderBindVo
.
getNew
();
BeanUtil
.
copy
(
nftOrderBindBo
,
nftOrderBindVo
);
this
.
getMongoTemplate
().
save
(
nftOrderBindVo
,
GalaxyNftOrderBindVo
.
class
.
getSimpleName
());
}
public
GalaxyNftOrderBindBo
getGalaxyNftOrderBindBo
(
String
routerType
,
String
nftOrderPayId
)
{
String
redisKey
=
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
;
Object
obj
=
this
.
getRedisUtil
().
get
(
redisKey
);
if
(
obj
!=
null
){
return
(
GalaxyNftOrderBindBo
)
obj
;
}
else
{
GalaxyNftOrderBindVo
nftOrderBindVo
=
this
.
getMongoTemplate
().
findOne
(
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderPayId
)),
GalaxyNftOrderBindVo
.
class
,
GalaxyNftOrderBindVo
.
class
.
getSimpleName
());
if
(
nftOrderBindVo
==
null
)
{
return
null
;
}
GalaxyNftOrderBindBo
nftOrderBindBo
=
GalaxyNftOrderBindBo
.
getNew
();
BeanUtil
.
copy
(
nftOrderBindVo
,
nftOrderBindBo
);
this
.
getRedisUtil
().
set
(
redisKey
,
nftOrderBindBo
,
keyExpireTime
);
return
nftOrderBindBo
;
}
}
public
void
setNftTradeInfo
(
String
routerType
,
GalaxyNftTradeVo
nftTradeVo
)
{
/**
* 入库mongo
*/
this
.
getMongoTemplate
().
save
(
nftTradeVo
,
GalaxyNftTradeVo
.
class
.
getSimpleName
());
// insert into galaxy_nft_trade_info (mid, nft_id, nft_name,series_name,series_id,series_code, trade_hash, chain_timestamp, from_address
// , to_address,trade_price, trade_type, created_at, updated_at)
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_trade_info.insert"
),
new
Object
[]{
nftTradeVo
.
getNftId
(),
nftTradeVo
.
getNftName
(),
nftTradeVo
.
getSeriesName
(),
nftTradeVo
.
getSeriesId
(),
nftTradeVo
.
getSeriesCode
(),
nftTradeVo
.
getTradeHash
(),
nftTradeVo
.
getChainTimestamp
(),
nftTradeVo
.
getFromAddress
()
,
nftTradeVo
.
getToAddress
(),
nftTradeVo
.
getTradePrice
(),
nftTradeVo
.
getTradeType
(),
LocalDateTime
.
now
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftTradeInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
long
incrNftIdNo
(
String
routerType
,
String
skuId
)
{
return
this
.
getRedisUtil
().
incr
(
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_NFT
.
concat
(
routerType
).
concat
(
":"
).
concat
(
skuId
),
1
);
}
public
long
getNftIdNo
(
String
routerType
,
String
skuId
)
{
Object
o
=
this
.
getRedisUtil
().
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_NFT
.
concat
(
routerType
).
concat
(
":"
).
concat
(
skuId
));
return
o
==
null
?-
1
:(
int
)
o
;
}
/**
* 更新系列已购买信息
* @param routerType
* @param seriesCode
*/
public
void
updateSeriesCrtCount
(
String
routerType
,
String
seriesCode
)
{
GalaxySeriesInfoBo
seriesInfoBo
=
this
.
getSeriesInfoBo
(
routerType
,
seriesCode
);
seriesInfoBo
.
setCrtCount
(
seriesInfoBo
.
getCrtCount
()+
1
);
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
,
seriesInfoBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"seriesCode"
).
is
(
seriesInfoBo
.
getSeriesCode
()));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
seriesInfoBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
update
.
set
(
"crtCount"
,
seriesInfoBo
.
getCrtCount
()+
1
);
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
this
.
getMongoTemplate
().
updateFirst
(
query
,
update
,
GalaxySeriesInfoVo
.
class
,
GalaxySeriesInfoVo
.
class
.
getSimpleName
());
log
.
info
(
"updateSeriesCrtCount result:{}"
,
result
.
toString
());
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_info.updateSeriesCrtCount"
),
new
Object
[]{
seriesInfoBo
.
getCrtCount
()+
1
,
LocalDateTime
.
now
(),
seriesCode
}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#updateSeriesCrtCount error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
/**
* 更新系列nft已购买信息
* @param routerType
* @param skuId
*/
public
void
updateSeriesNftCrtCount
(
String
routerType
,
String
skuId
)
{
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
this
.
getSeriesNftInfoBo
(
routerType
,
skuId
);
seriesNftInfoBo
.
setNftCrtCount
(
seriesNftInfoBo
.
getNftCrtCount
()+
1
);
this
.
getRedisUtil
().
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"skuId"
).
is
(
skuId
));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
seriesNftInfoBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDate
.
now
());
update
.
set
(
"nftCrtCount"
,
seriesNftInfoBo
.
getNftCrtCount
()+
1
);
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
this
.
getMongoTemplate
().
updateFirst
(
query
,
update
,
GalaxySeriesNftInfoBo
.
class
,
GalaxySeriesNftInfoBo
.
class
.
getSimpleName
());
log
.
info
(
"updateSeriesNftCrtCount result:{}"
,
result
.
toString
());
try
{
this
.
getQueueUtil
().
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_nft_info.updateSeriesNftCrtCount"
),
new
Object
[]{
seriesNftInfoBo
.
getNftCrtCount
()+
1
,
LocalDateTime
.
now
(),
skuId
}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#GalaxySeriesNftInfoBo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
}
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-
impl/src/main/java/com/liquidnet/service/galaxy/utils/
QueueUtil.java
→
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-
common/src/main/java/com/liquidnet/service/galaxy/utils/Abstract
QueueUtil.java
View file @
2a53f70e
...
@@ -2,11 +2,9 @@ package com.liquidnet.service.galaxy.utils;
...
@@ -2,11 +2,9 @@ package com.liquidnet.service.galaxy.utils;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.SqlMapping
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.StreamRecords
;
import
org.springframework.data.redis.connection.stream.StreamRecords
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.LinkedList
;
...
@@ -20,10 +18,10 @@ import java.util.LinkedList;
...
@@ -20,10 +18,10 @@ import java.util.LinkedList;
* @Copyright: LightNet @ Copyright (c) 2022
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/3/25 15:35
* @date 2022/3/25 15:35
*/
*/
@Component
public
class
QueueUtil
{
public
abstract
class
Abstract
QueueUtil
{
@Autowired
StringRedisTemplate
stringRedisTemplate
;
abstract
StringRedisTemplate
getStringRedisTemplate
()
;
/**
/**
* 给 REDIS 队列发送消息 数据库相关
* 给 REDIS 队列发送消息 数据库相关
...
@@ -43,7 +41,7 @@ public class QueueUtil {
...
@@ -43,7 +41,7 @@ public class QueueUtil {
HashMap
<
String
,
String
>
map
=
ObjectUtil
.
cloneHashMapStringAndString
();
HashMap
<
String
,
String
>
map
=
ObjectUtil
.
cloneHashMapStringAndString
();
map
.
put
(
"message"
,
sqlData
);
map
.
put
(
"message"
,
sqlData
);
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
redisKey
);
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
redisKey
);
stringRedisTemplate
.
opsForStream
().
add
(
record
);
this
.
getStringRedisTemplate
()
.
opsForStream
().
add
(
record
);
return
true
;
return
true
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -60,6 +58,6 @@ public class QueueUtil {
...
@@ -60,6 +58,6 @@ public class QueueUtil {
public
void
sendMsgByRedis
(
String
streamKey
,
String
jsonMsg
)
{
public
void
sendMsgByRedis
(
String
streamKey
,
String
jsonMsg
)
{
HashMap
<
String
,
String
>
map
=
CollectionUtil
.
mapStringString
();
HashMap
<
String
,
String
>
map
=
CollectionUtil
.
mapStringString
();
map
.
put
(
"message"
,
jsonMsg
);
map
.
put
(
"message"
,
jsonMsg
);
stringRedisTemplate
.
opsForStream
().
add
(
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
streamKey
));
this
.
getStringRedisTemplate
()
.
opsForStream
().
add
(
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
streamKey
));
}
}
}
}
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-
impl
/src/main/java/com/liquidnet/service/galaxy/utils/ObjectUtil.java
→
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-
common
/src/main/java/com/liquidnet/service/galaxy/utils/ObjectUtil.java
View file @
2a53f70e
//package com.liquidnet.service.galaxy.utils;
package
com
.
liquidnet
.
service
.
galaxy
.
utils
;
//package com.liquidnet.service.galaxy.utils;
//
//
//import com.alibaba.fastjson.JSONObject;
//import com.alibaba.fastjson.JSONObject;
//import org.springframework.stereotype.Component;
//import org.springframework.stereotype.Component;
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/java/com/liquidnet/service/galaxy/utils/QueueUtil.java
0 → 100644
View file @
2a53f70e
package
com
.
liquidnet
.
service
.
galaxy
.
utils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Component
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: QueueUtil
* @Package com.liquidnet.service.galaxy.utils
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/3/25 15:35
*/
@Component
public
class
QueueUtil
extends
AbstractQueueUtil
{
@Autowired
StringRedisTemplate
stringRedisTemplate
;
@Override
StringRedisTemplate
getStringRedisTemplate
()
{
return
stringRedisTemplate
;
}
}
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/resources/bootstrap-dev.yml
0 → 100644
View file @
2a53f70e
# begin-dev-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
dev
security
:
username
:
user
password
:
user123
eureka
:
# host: 172.17.192.42:7001
host
:
127.0.0.1:7001
# end-dev-这里是配置信息基本值
spring
:
profiles
:
include
:
service-galaxy
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/resources/bootstrap-prod.yml
0 → 100644
View file @
2a53f70e
# begin-dev-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
prod
security
:
username
:
user
password
:
user123
eureka
:
host
:
172.17.207.189:7001
# end-dev-这里是配置信息基本值
spring
:
profiles
:
include
:
service-galaxy
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/resources/bootstrap-service-galaxy.yml
0 → 100644
View file @
2a53f70e
#eurekaServer配置
eureka
:
client
:
register-with-eureka
:
false
fetch-registry
:
true
serviceUrl
:
defaultZone
:
http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
#configServer配置
spring
:
cloud
:
config
:
# uri: http://39.105.38.151:7002/support-config
# uri: http://39.106.122.201:7002/support-config
# uri: http://127.0.0.1:7002/support-config
profile
:
${liquidnet.cloudConfig.profile}
name
:
${spring.application.name}
#默认为spring.application.name
discovery
:
enabled
:
true
service-id
:
liquidnet-support-config
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/resources/bootstrap-test.yml
0 → 100644
View file @
2a53f70e
# begin-dev-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
test
security
:
username
:
user
password
:
user123
eureka
:
host
:
172.17.207.177:7001
#instance:
# prefer-ip-address: true
#host: eureka-test-0.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-1.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-2.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka
#host: 192.168.193.41:7001
# end-dev-这里是配置信息基本值
spring
:
profiles
:
include
:
service-galaxy
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/resources/bootstrap.yml
0 → 100644
View file @
2a53f70e
spring
:
application
:
name
:
liquidnet-service-galaxy
profiles
:
active
:
dev
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/resources/errors.properties
0 → 100644
View file @
2a53f70e
40001
=
登录信息有误
40002
=
账号已在另一台设备登录
40003
=
登录已过期
# ------------------------ 4开头错误码作系统保留
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-common/src/main/resources/sqlmap.properties
0 → 100644
View file @
2a53f70e
# ------------------------用户注册信息----------------------------
galaxy_user_info.insert
=
insert into galaxy_user_info (user_id, user_name, user_type, mobile, id_card_type, id_card, mnemonic, mnemonic_index,user_identification, user_pub_key, user_pri_key, block_chain_address, router_type,created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品系列信息----------------------------
galaxy_series_info.insert
=
insert into galaxy_series_info (series_info_id, series_name, series_code, series_id, total_count, crt_count,series_claim_task_id, series_claim_status, cover_url, series_desc, nft_count,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品系列信息----------------------------
galaxy_series_nft_info.insert
=
insert into galaxy_series_nft_info (series_nft_info_id, series_info_id, sku_id, series_name, series_code,series_id, nft_total_count, nft_crt_count, nft_id_begin ,nft_id_begin_index ,nft_publish_number,original_nft_url, original_display_url,author, nft_name, nft_url, display_url, nft_desc, nft_flag, sell_count, nft_hash,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品订单信息----------------------------
galaxy_nft_order_info.insert
=
insert into galaxy_nft_order_info (nft_order_pay_id, user_id, sku_id, series_name, series_id, series_code, nft_id, nft_price,from_address, to_address, nft_publish_task_id, nft_buy_task_id, nft_buy_pay_task_id,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品交易信息----------------------------
galaxy_nft_trade_info.insert
=
insert into galaxy_nft_trade_info (nft_id, nft_name, series_name, series_id, series_code, trade_hash, chain_timestamp, from_address, to_address,trade_price, trade_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?)
#更新信息
galaxy_series_info.updateSeriesIdAndStatus
=
update galaxy_series_info t set t.series_id = ?,t.chain_timestamp = ?,t.trade_hash = ?,t.series_claim_status = ? ,t.updated_at =? where t.series_code = ?
galaxy_series_nft_info.updateSeriesIdAndStatus
=
update galaxy_series_nft_info t set t.series_id = ?,t.updated_at =? where t.sku_id = ?
galaxy_nft_order_info.updateNftPublishInfo
=
update galaxy_nft_order_info t set t.nft_id = ? ,t.nft_publish_task_id = ?,t.nft_publish_chain_timestamp = ?,t.nft_publish_status = ?,t.nft_publish_trade_hash = ?,t.updated_at =? where t.nft_order_pay_id = ?
galaxy_nft_order_info.updateNftBuyInfo
=
update galaxy_nft_order_info t set t.nft_buy_task_id = ? ,t.nft_buy_chain_timestamp = ? ,t.nft_buy_status = ? ,t.nft_buy_trade_hash = ? ,t.nft_buy_pay_task_id = ? ,t.updated_at =? where t.nft_order_pay_id = ?
#更新已发行个数
galaxy_series_info.updateSeriesCrtCount
=
update galaxy_series_info t set t.crt_count = ?,t.updated_at =? where t.series_code = ?
#更新已发行个数
galaxy_series_nft_info.updateSeriesNftCrtCount
=
update galaxy_series_nft_info t set t.nft_crt_count = ?,t.updated_at =? where t.sku_id = ?
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-impl/pom.xml
View file @
2a53f70e
...
@@ -31,6 +31,11 @@
...
@@ -31,6 +31,11 @@
<artifactId>
liquidnet-service-galaxy-api
</artifactId>
<artifactId>
liquidnet-service-galaxy-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-galaxy-common
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-impl/src/main/java/com/liquidnet/service/galaxy/router/strategy/biz/GalaxyCommonBiz.java
deleted
100644 → 0
View file @
ebe30d8b
package
com
.
liquidnet
.
service
.
galaxy
.
router
.
strategy
.
biz
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.io.*
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: GalaxyCommonBiz
* @Package com.liquidnet.service.galaxy.router.strategy.biz
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/3/23 11:20
*/
@Slf4j
@Component
public
class
GalaxyCommonBiz
{
@Value
(
"${liquidnet.galaxy.temp-file-path:/Users/anjiabin/mdsky_gitlab/galaxy/tempFilePath}"
)
private
String
tempFilePath
;
/**
* 通过URL上传
* @param url
* @param name
* @return
*/
public
File
inputStreamToFile
(
String
url
,
String
name
)
{
try
{
HttpURLConnection
httpUrl
=
(
HttpURLConnection
)
new
URL
(
url
).
openConnection
();
httpUrl
.
connect
();
InputStream
ins
=
httpUrl
.
getInputStream
();
// File file = new File(System.getProperty("java.io.tmpdir") + File.separator + name);
File
file
=
new
File
(
tempFilePath
+
File
.
separator
+
name
);
if
(
file
.
exists
())
{
return
file
;
}
OutputStream
os
=
new
FileOutputStream
(
file
);
int
bytesRead
;
int
len
=
8192
;
byte
[]
buffer
=
new
byte
[
len
];
while
((
bytesRead
=
ins
.
read
(
buffer
,
0
,
len
))
!=
-
1
)
{
os
.
write
(
buffer
,
0
,
bytesRead
);
}
os
.
close
();
ins
.
close
();
return
file
;
}
catch
(
Exception
e
)
{
log
.
error
(
"inputStreamToFileUrlError"
,
e
);
return
null
;
}
}
}
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-impl/src/main/java/com/liquidnet/service/galaxy/router/zxin/biz/ZxinArtworkBiz.java
View file @
2a53f70e
...
@@ -15,6 +15,8 @@ import com.liquidnet.commons.lang.util.DateUtil;
...
@@ -15,6 +15,8 @@ import com.liquidnet.commons.lang.util.DateUtil;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.galaxy.biz.GalaxyCommonBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.constant.GalaxyConstant
;
import
com.liquidnet.service.galaxy.constant.GalaxyConstant
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
...
@@ -22,8 +24,6 @@ import com.liquidnet.service.galaxy.dto.bo.GalaxySeriesInfoBo;
...
@@ -22,8 +24,6 @@ import com.liquidnet.service.galaxy.dto.bo.GalaxySeriesInfoBo;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftUploadBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftUploadBo
;
import
com.liquidnet.service.galaxy.dto.param.*
;
import
com.liquidnet.service.galaxy.dto.param.*
;
import
com.liquidnet.service.galaxy.router.strategy.biz.GalaxyCommonBiz
;
import
com.liquidnet.service.galaxy.router.strategy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.utils.DataUtils
;
import
com.liquidnet.service.galaxy.utils.DataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-impl/src/main/java/com/liquidnet/service/galaxy/router/zxin/biz/ZxinPublishBiz.java
View file @
2a53f70e
...
@@ -8,6 +8,8 @@ import com.liquidnet.commons.lang.util.DateUtil;
...
@@ -8,6 +8,8 @@ import com.liquidnet.commons.lang.util.DateUtil;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo
;
...
@@ -17,7 +19,6 @@ import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishReqDto;
...
@@ -17,7 +19,6 @@ import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishReqDto;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishRespDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishRespDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishResultQueryReqDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishResultQueryReqDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishResultQueryRespDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishResultQueryRespDto
;
import
com.liquidnet.service.galaxy.router.strategy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.utils.DataUtils
;
import
com.liquidnet.service.galaxy.utils.DataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -46,7 +47,7 @@ public class ZxinPublishBiz {
...
@@ -46,7 +47,7 @@ public class ZxinPublishBiz {
private
DataUtils
dataUtils
;
private
DataUtils
dataUtils
;
@Autowired
@Autowired
private
ZxinCommonBiz
zxinCommon
Biz
;
private
GalaxyBeanTransferBiz
galaxyBeanTransfer
Biz
;
/**
/**
* nft发行
* nft发行
...
@@ -149,7 +150,7 @@ public class ZxinPublishBiz {
...
@@ -149,7 +150,7 @@ public class ZxinPublishBiz {
//构造缓存数据
//构造缓存数据
if
(
nftOrderBo
==
null
){
if
(
nftOrderBo
==
null
){
nftOrderBo
=
zxinCommon
Biz
.
buildNftOrderBo
(
reqDto
.
getNftOrderPayId
(),
userInfoBo
,
seriesNftInfoBo
);
nftOrderBo
=
galaxyBeanTransfer
Biz
.
buildNftOrderBo
(
reqDto
.
getNftOrderPayId
(),
userInfoBo
,
seriesNftInfoBo
);
nftOrderBo
.
setNftId
(
nftId
);
nftOrderBo
.
setNftId
(
nftId
);
nftOrderBo
.
setNftPublishTaskId
(
taskId
);
nftOrderBo
.
setNftPublishTaskId
(
taskId
);
dataUtils
.
setNftOrderBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBo
);
dataUtils
.
setNftOrderBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBo
);
...
@@ -330,7 +331,7 @@ public class ZxinPublishBiz {
...
@@ -330,7 +331,7 @@ public class ZxinPublishBiz {
//构造缓存数据
//构造缓存数据
if
(
nftOrderBo
==
null
){
if
(
nftOrderBo
==
null
){
nftOrderBo
=
zxinCommon
Biz
.
buildNftOrderBo
(
reqDto
.
getNftOrderPayId
(),
userInfoBo
,
seriesNftInfoBo
);
nftOrderBo
=
galaxyBeanTransfer
Biz
.
buildNftOrderBo
(
reqDto
.
getNftOrderPayId
(),
userInfoBo
,
seriesNftInfoBo
);
nftOrderBo
.
setNftId
(
nftId
);
nftOrderBo
.
setNftId
(
nftId
);
nftOrderBo
.
setNftPublishTaskId
(
taskId
);
nftOrderBo
.
setNftPublishTaskId
(
taskId
);
//设置时间
//设置时间
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-impl/src/main/java/com/liquidnet/service/galaxy/router/zxin/biz/ZxinTradeBiz.java
View file @
2a53f70e
...
@@ -8,6 +8,8 @@ import com.liquidnet.common.third.zxlnft.dto.*;
...
@@ -8,6 +8,8 @@ import com.liquidnet.common.third.zxlnft.dto.*;
import
com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil
;
import
com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
...
@@ -15,7 +17,6 @@ import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo;
...
@@ -15,7 +17,6 @@ import com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBo;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo
;
import
com.liquidnet.service.galaxy.dto.param.*
;
import
com.liquidnet.service.galaxy.dto.param.*
;
import
com.liquidnet.service.galaxy.router.strategy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.utils.DataUtils
;
import
com.liquidnet.service.galaxy.utils.DataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -52,7 +53,7 @@ public class ZxinTradeBiz {
...
@@ -52,7 +53,7 @@ public class ZxinTradeBiz {
private
DataUtils
dataUtils
;
private
DataUtils
dataUtils
;
@Autowired
@Autowired
private
ZxinCommonBiz
zxinCommon
Biz
;
private
GalaxyBeanTransferBiz
galaxyBeanTransfer
Biz
;
@Autowired
@Autowired
private
ZxinPublishBiz
zxinPublishBiz
;
private
ZxinPublishBiz
zxinPublishBiz
;
...
@@ -101,7 +102,7 @@ public class ZxinTradeBiz {
...
@@ -101,7 +102,7 @@ public class ZxinTradeBiz {
//初始化订单数据
//初始化订单数据
if
(
nftOrderBo
==
null
){
if
(
nftOrderBo
==
null
){
nftOrderBo
=
zxinCommon
Biz
.
buildNftOrderBo
(
reqDto
.
getNftOrderPayId
(),
userInfoBo
,
seriesNftInfoBo
);
nftOrderBo
=
galaxyBeanTransfer
Biz
.
buildNftOrderBo
(
reqDto
.
getNftOrderPayId
(),
userInfoBo
,
seriesNftInfoBo
);
dataUtils
.
setNftOrderBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBo
);
dataUtils
.
setNftOrderBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBo
);
}
}
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-impl/src/main/java/com/liquidnet/service/galaxy/router/zxin/biz/ZxinUserBiz.java
View file @
2a53f70e
package
com
.
liquidnet
.
service
.
galaxy
.
router
.
zxin
.
biz
;
package
com
.
liquidnet
.
service
.
galaxy
.
router
.
zxin
.
biz
;
import
com.liquidnet.common.third.zxlnft.biz.ZxlnftBiz
;
import
com.liquidnet.common.third.zxlnft.biz.ZxlnftBiz
;
import
com.liquidnet.common.third.zxlnft.config.ZxlnftConfig
;
import
com.liquidnet.common.third.zxlnft.constant.ZxlErrorEnum
;
import
com.liquidnet.common.third.zxlnft.constant.ZxlErrorEnum
;
import
com.liquidnet.common.third.zxlnft.dto.*
;
import
com.liquidnet.common.third.zxlnft.dto.*
;
import
com.liquidnet.common.third.zxlnft.dto.nft.Nft016QueryRsData
;
import
com.liquidnet.common.third.zxlnft.dto.nft.Nft016QueryRsData
;
...
@@ -15,13 +14,13 @@ import com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil;
...
@@ -15,13 +14,13 @@ import com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil;
import
com.liquidnet.commons.lang.util.BASE64Util
;
import
com.liquidnet.commons.lang.util.BASE64Util
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.galaxy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyUserInfoBo
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyUserBindStatusQueryReqDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyUserBindStatusQueryReqDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyUserBindStatusQueryRespDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyUserBindStatusQueryRespDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyUserRegisterReqDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyUserRegisterReqDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyUserRegisterRespDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyUserRegisterRespDto
;
import
com.liquidnet.service.galaxy.router.strategy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.utils.DataUtils
;
import
com.liquidnet.service.galaxy.utils.DataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -51,9 +50,6 @@ public class ZxinUserBiz {
...
@@ -51,9 +50,6 @@ public class ZxinUserBiz {
@Autowired
@Autowired
private
ZxlnftBiz
zxlnftBiz
;
private
ZxlnftBiz
zxlnftBiz
;
@Autowired
private
ZxlnftConfig
zxlnftConfig
;
@Autowired
@Autowired
private
DataUtils
dataUtils
;
private
DataUtils
dataUtils
;
...
...
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-impl/src/main/java/com/liquidnet/service/galaxy/utils/DataUtils.java
View file @
2a53f70e
package
com
.
liquidnet
.
service
.
galaxy
.
utils
;
package
com
.
liquidnet
.
service
.
galaxy
.
utils
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.galaxy.constant.GalaxyConstant
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.dto.bo.*
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.*
;
import
com.mongodb.client.result.UpdateResult
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.bson.Document
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Slf4j
@Slf4j
@Component
@Component
public
class
DataUtils
{
public
class
DataUtils
extends
AbstractDataUtils
{
@Autowired
@Autowired
private
RedisUtil
redisUtil
;
private
RedisUtil
redisUtil
;
...
@@ -37,484 +18,19 @@ public class DataUtils {
...
@@ -37,484 +18,19 @@ public class DataUtils {
@Autowired
@Autowired
private
QueueUtil
queueUtil
;
private
QueueUtil
queueUtil
;
private
long
keyExpireTime
=
3600
*
24
*
30
;
public
void
setGalaxyUserInfo
(
String
routerType
,
String
userId
,
GalaxyUserInfoBo
userInfoBo
)
{
String
userType
=
GalaxyEnum
.
RegisterTypeEnum
.
COMPANY
.
getCode
();
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_USER
.
concat
(
routerType
).
concat
(
":"
)
+
userId
,
userInfoBo
,
keyExpireTime
);
//入库mongo
GalaxyUserInfoVo
userInfoVo
=
GalaxyUserInfoVo
.
getNew
();
BeanUtil
.
copy
(
userInfoBo
,
userInfoVo
);
userInfoVo
.
setCreatedAt
(
LocalDateTime
.
now
());
mongoTemplate
.
save
(
userInfoVo
,
GalaxyUserInfoVo
.
class
.
getSimpleName
());
// insert into galaxy_user_info (mid, user_id, user_name, user_type, mobile, id_card_type
// , id_card, mnemonic, index,user_identification, user_pub_key
// , user_pri_key, block_chain_address, router_type,created_at, updated_at)
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_user_info.insert"
),
new
Object
[]{
userId
,
userInfoBo
.
getUserName
(),
userType
,
userInfoBo
.
getMobile
(),
userInfoBo
.
getIdCardType
()
,
userInfoBo
.
getIdCard
(),
userInfoBo
.
getMnemonic
(),
userInfoBo
.
getIndex
(),
userInfoBo
.
getUserIdentification
(),
userInfoBo
.
getUserPubKey
()
,
userInfoBo
.
getUserPriKey
(),
userInfoBo
.
getBlockChainAddress
(),
userInfoBo
.
getRouterType
(),
new
Date
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_USER_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setGalaxyUserInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
GalaxyUserInfoBo
getGalaxyUserInfo
(
String
routerType
,
String
userId
)
{
Object
obj
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_USER
.
concat
(
routerType
).
concat
(
":"
)
+
userId
);
if
(
obj
!=
null
){
return
(
GalaxyUserInfoBo
)
obj
;
}
else
{
GalaxyUserInfoVo
userInfoVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"userId"
).
is
(
userId
)),
GalaxyUserInfoVo
.
class
,
GalaxyUserInfoVo
.
class
.
getSimpleName
());
if
(
userInfoVo
==
null
)
{
return
null
;
}
GalaxyUserInfoBo
userInfoBo
=
GalaxyUserInfoBo
.
getNew
();
BeanUtil
.
copy
(
userInfoVo
,
userInfoBo
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_USER
.
concat
(
routerType
).
concat
(
":"
)
+
userId
,
userInfoBo
);
return
userInfoBo
;
}
}
public
void
setSeriesNftUploadBo
(
String
routerType
,
String
skuId
,
GalaxySeriesNftUploadBo
seriesNftUploadBo
)
{
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT_UPLOAD
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftUploadBo
,
keyExpireTime
);
//mongo入库
GalaxySeriesNftUploadVo
seriesNftUploadVo
=
GalaxySeriesNftUploadVo
.
getNew
();
BeanUtil
.
copy
(
seriesNftUploadBo
,
seriesNftUploadVo
);
seriesNftUploadVo
.
setCreatedAt
(
LocalDateTime
.
now
());
mongoTemplate
.
save
(
seriesNftUploadVo
,
GalaxySeriesNftUploadVo
.
class
.
getSimpleName
());
}
public
GalaxySeriesNftUploadBo
getSeriesNftUploadBo
(
String
routerType
,
String
skuId
)
{
Object
obj
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT_UPLOAD
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
);
if
(
obj
!=
null
){
return
(
GalaxySeriesNftUploadBo
)
obj
;
}
else
{
//设置查询参数
Criteria
criteria
=
Criteria
.
where
(
"routerType"
).
is
(
routerType
);
String
userId
=
CurrentUtil
.
getCurrentUid
();
if
(
StringUtil
.
isNotEmpty
(
skuId
)){
criteria
=
criteria
.
and
(
"skuId"
).
is
(
skuId
);
}
GalaxySeriesNftUploadVo
seriesNftUploadVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
criteria
),
GalaxySeriesNftUploadVo
.
class
,
GalaxySeriesNftUploadVo
.
class
.
getSimpleName
());
if
(
seriesNftUploadVo
==
null
)
{
return
null
;
}
GalaxySeriesNftUploadBo
seriesNftUploadBo
=
GalaxySeriesNftUploadBo
.
getNew
();
BeanUtil
.
copy
(
seriesNftUploadVo
,
seriesNftUploadBo
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT_UPLOAD
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftUploadBo
);
return
seriesNftUploadBo
;
}
}
public
void
setSeriesInfoBo
(
String
routerType
,
String
seriesCode
,
GalaxySeriesInfoBo
seriesInfoBo
)
{
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
,
seriesInfoBo
,
keyExpireTime
);
// insert into galaxy_series_info (mid, series_info_id, series_name, series_code, series_id, total_count
// , crt_count,series_claim_task_id, series_claim_status, cover_url, series_desc
// , nft_count,router_type, created_at, updated_at)
Integer
nftCount
=
1
;
//默认为一个系列包含一个NFT
//mongo入库
GalaxySeriesInfoVo
seriesInfoVo
=
GalaxySeriesInfoVo
.
getNew
();
BeanUtil
.
copy
(
seriesInfoBo
,
seriesInfoVo
);
seriesInfoVo
.
setCreatedAt
(
DateUtil
.
format
(
LocalDateTime
.
now
(),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
));
mongoTemplate
.
save
(
seriesInfoVo
,
GalaxySeriesInfoVo
.
class
.
getSimpleName
());
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_info.insert"
),
new
Object
[]{
seriesInfoBo
.
getSeriesInfoId
(),
seriesInfoBo
.
getSeriesName
(),
seriesCode
,
null
,
seriesInfoBo
.
getTotalCount
()
,
seriesInfoBo
.
getCrtCount
(),
seriesInfoBo
.
getSeriesClaimTaskId
(),
seriesInfoBo
.
getSeriesClaimStatus
(),
seriesInfoBo
.
getCoverUrl
(),
seriesInfoBo
.
getSeriesDesc
()
,
nftCount
,
seriesInfoBo
.
getRouterType
(),
LocalDateTime
.
now
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_SERIES_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setSeriesInfoBo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
GalaxySeriesInfoBo
getSeriesInfoBo
(
String
routerType
,
String
seriesCode
)
{
Object
obj
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
);
if
(
obj
!=
null
){
return
(
GalaxySeriesInfoBo
)
obj
;
}
else
{
GalaxySeriesInfoVo
seriesInfoVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"seriesCode"
).
is
(
seriesCode
)),
GalaxySeriesInfoVo
.
class
,
GalaxySeriesInfoVo
.
class
.
getSimpleName
());
if
(
seriesInfoVo
==
null
)
{
return
null
;
}
GalaxySeriesInfoBo
seriesInfoBo
=
GalaxySeriesInfoBo
.
getNew
();
BeanUtil
.
copy
(
seriesInfoVo
,
seriesInfoBo
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
,
seriesInfoBo
);
return
seriesInfoBo
;
}
}
public
void
setSeriesNftInfoBo
(
String
routerType
,
String
skuId
,
GalaxySeriesInfoBo
seriesInfoBo
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
)
{
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
,
keyExpireTime
);
//初始化nft发行开始索引
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_NFT
.
concat
(
routerType
).
concat
(
":"
).
concat
(
skuId
),
seriesNftInfoBo
.
getNftIdBeginIndex
());
//mongo入库
GalaxySeriesNftInfoVo
seriesNftInfoVo
=
GalaxySeriesNftInfoVo
.
getNew
();
BeanUtil
.
copy
(
seriesNftInfoBo
,
seriesNftInfoVo
);
seriesNftInfoVo
.
setCreatedAt
(
LocalDateTime
.
now
());
mongoTemplate
.
save
(
seriesNftInfoVo
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
try
{
// insert into galaxy_series_nft_info (mid, series_nft_info_id, series_info_id, sku_id, series_name, series_code
// ,series_id, nft_total_count, nft_crt_count,nft_id_begin,nft_id_begin_index,nft_publish_number,original_nft_url
// , original_display_url,author, nft_name, nft_url, display_url
// , nft_desc, nft_flag, sell_count, nft_hash,router_type
// , created_at, updated_at)
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_nft_info.insert"
),
new
Object
[]{
seriesNftInfoBo
.
getSeriesNftInfoId
(),
seriesInfoBo
.
getSeriesInfoId
(),
skuId
,
seriesInfoBo
.
getSeriesName
(),
seriesInfoBo
.
getSeriesCode
()
,
seriesInfoBo
.
getSeriesId
(),
seriesNftInfoBo
.
getNftTotalCount
(),
seriesNftInfoBo
.
getNftCrtCount
(),
seriesNftInfoBo
.
getNftIdBegin
(),
seriesNftInfoBo
.
getNftIdBeginIndex
(),
seriesNftInfoBo
.
getNftPublishNumber
(),
seriesNftInfoBo
.
getOriginalNftUrl
()
,
seriesNftInfoBo
.
getOriginalDisplayUrl
(),
seriesNftInfoBo
.
getAuthor
(),
seriesNftInfoBo
.
getNftName
(),
seriesNftInfoBo
.
getNftUrl
(),
seriesNftInfoBo
.
getDisplayUrl
()
,
seriesNftInfoBo
.
getNftDesc
(),
seriesNftInfoBo
.
getNftFlag
(),
seriesNftInfoBo
.
getSellCount
(),
seriesNftInfoBo
.
getNftHash
(),
seriesInfoBo
.
getRouterType
()
,
LocalDateTime
.
now
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_SERIES_INFO
.
getKey
());
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setSeriesInfoBo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
GalaxySeriesNftInfoBo
getSeriesNftInfoBo
(
String
routerType
,
String
skuId
)
{
Object
obj
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
);
if
(
obj
!=
null
){
return
(
GalaxySeriesNftInfoBo
)
obj
;
}
else
{
GalaxySeriesNftInfoVo
seriesNftInfoVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"skuId"
).
is
(
skuId
)),
GalaxySeriesNftInfoVo
.
class
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
if
(
seriesNftInfoVo
==
null
)
{
return
null
;
}
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
GalaxySeriesNftInfoBo
.
getNew
();
BeanUtil
.
copy
(
seriesNftInfoVo
,
seriesNftInfoBo
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
);
return
seriesNftInfoBo
;
}
}
public
void
updateSeriesClaimStatus
(
String
routerType
,
String
seriesCode
,
GalaxySeriesInfoBo
seriesInfoBo
)
{
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
,
seriesInfoBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"seriesCode"
).
is
(
seriesInfoBo
.
getSeriesCode
()));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
seriesInfoBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
query
,
update
,
GalaxySeriesInfoVo
.
class
,
GalaxySeriesInfoVo
.
class
.
getSimpleName
());
log
.
info
(
"updateSeriesClaimStatus result:{}"
,
result
.
toString
());
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_info.updateSeriesIdAndStatus"
),
new
Object
[]{
seriesInfoBo
.
getSeriesId
(),
seriesInfoBo
.
getChainTimestamp
(),
seriesInfoBo
.
getTradeHash
(),
seriesInfoBo
.
getSeriesClaimStatus
(),
nowTimeStr
,
seriesInfoBo
.
getSeriesCode
()}
,
MQConst
.
GalaxyQueue
.
SQL_SERIES_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#updateSeriesClaimStatus error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
//更新系列对应的系列nft状态
List
<
String
>
skuIdList
=
this
.
getSkuIdListBySeriesCode
(
seriesCode
);
skuIdList
.
stream
().
forEach
(
skuId
->
{
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
this
.
getSeriesNftInfoBo
(
routerType
,
skuId
);
seriesNftInfoBo
.
setSeriesId
(
seriesInfoBo
.
getSeriesId
());
seriesNftInfoBo
.
setUpdatedAt
(
LocalDateTime
.
now
());
this
.
updateSeriesNftStatus
(
routerType
,
skuId
,
seriesNftInfoBo
);
});
}
public
void
updateSeriesNftStatus
(
String
routerType
,
String
skuId
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
)
{
//更新系列nft状态
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"skuId"
).
is
(
skuId
));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
seriesNftInfoBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
seriesNftInfoBo
.
getUpdatedAt
());
update
.
set
(
"routerType"
,
routerType
);
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
query
,
update
,
GalaxySeriesNftInfoVo
.
class
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
log
.
info
(
"updateSeriesNftStatus result:{}"
,
result
.
toString
());
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_nft_info.updateSeriesIdAndStatus"
),
new
Object
[]{
seriesNftInfoBo
.
getSeriesId
(),
nowTimeStr
,
seriesNftInfoBo
.
getSkuId
()}
,
MQConst
.
GalaxyQueue
.
SQL_SERIES_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#updateSeriesNftStatus error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
//根据系列Id获取
public
List
<
String
>
getSkuIdListBySeriesCode
(
String
seriesCode
){
//根据演出id获取用户信息 只查询5条
List
<
String
>
skuIdList
=
new
ArrayList
<>();
//获取总数
Criteria
criteria
=
Criteria
.
where
(
"seriesCode"
).
is
(
seriesCode
);
Query
query
=
Query
.
query
(
criteria
);
long
startTime
=
System
.
currentTimeMillis
();
List
<
GalaxySeriesNftInfoVo
>
seriesNftInfoVoList
=
mongoTemplate
.
find
(
query
,
GalaxySeriesNftInfoVo
.
class
,
GalaxySeriesNftInfoVo
.
class
.
getSimpleName
());
long
endTime
=
System
.
currentTimeMillis
();
log
.
info
(
"getSkuIdListBySeriesCode 根据系列code获取skuId 耗时:{}ms"
,
endTime
-
startTime
);
//根据用户id获取头像信息
if
(
StringUtil
.
isNotNull
(
seriesNftInfoVoList
)){
skuIdList
=
seriesNftInfoVoList
.
stream
().
map
(
GalaxySeriesNftInfoVo:
:
getSkuId
).
collect
(
Collectors
.
toList
());
}
return
skuIdList
;
}
public
void
setNftOrderBo
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBo
nftOrderBo
)
{
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
,
keyExpireTime
);
/**
* 入库mongo
*/
GalaxyNftOrderVo
nftOrderVo
=
GalaxyNftOrderVo
.
getNew
();
BeanUtil
.
copy
(
nftOrderBo
,
nftOrderVo
);
mongoTemplate
.
save
(
nftOrderVo
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
// insert into galaxy_nft_order_info (mid, nft_order_pay_id, user_id, sku_id, series_name, series_id
// , nft_id, nft_price,from_address, to_address, nft_publish_task_id, nft_buy_task_id
// , nft_buy_pay_task_id,router_type, created_at, updated_at)
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_order_info.insert"
),
new
Object
[]{
nftOrderPayId
,
nftOrderBo
.
getUserId
(),
nftOrderBo
.
getSkuId
(),
nftOrderBo
.
getSeriesName
(),
nftOrderBo
.
getSeriesId
(),
nftOrderBo
.
getSeriesCode
()
,
nftOrderBo
.
getNftId
(),
nftOrderBo
.
getNftPrice
(),
nftOrderBo
.
getNftPublishFromAddress
(),
nftOrderBo
.
getNftPublishToAddress
(),
nftOrderBo
.
getNftPublishTaskId
()
,
nftOrderBo
.
getNftBuyTaskId
(),
nftOrderBo
.
getNftBuyPayTaskId
(),
nftOrderBo
.
getRouterType
(),
LocalDateTime
.
now
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_ORDER_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftOrderBo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
//更新系列已发行信息
try
{
this
.
updateSeriesCrtCount
(
routerType
,
nftOrderBo
.
getSeriesCode
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
//更新系列nft已发行信息
try
{
this
.
updateSeriesNftCrtCount
(
routerType
,
nftOrderBo
.
getSkuId
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
public
GalaxyNftOrderBo
getNftOrderBo
(
String
routerType
,
String
nftOrderPayId
)
{
Object
obj
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
);
if
(
obj
!=
null
){
return
(
GalaxyNftOrderBo
)
obj
;
}
else
{
GalaxyNftOrderVo
nftOrderVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderPayId
)),
GalaxyNftOrderVo
.
class
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
if
(
nftOrderVo
==
null
)
{
return
null
;
}
GalaxyNftOrderBo
nftOrderBo
=
GalaxyNftOrderBo
.
getNew
();
BeanUtil
.
copy
(
nftOrderVo
,
nftOrderBo
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
);
return
nftOrderBo
;
}
}
/**
* 更新nft订单发行数据
* @param routerType
* @param nftOrderPayId
* @param nftOrderBo
*/
public
void
updateNftOrderPublishInfo
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBo
nftOrderBo
)
{
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderBo
.
getNftOrderPayId
()));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
nftOrderBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
nftOrderBo
.
getUpdatedAt
());
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
query
,
update
,
GalaxyNftOrderVo
.
class
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
log
.
info
(
"updateNftOrderInfo result:{}"
,
result
.
toString
());
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_order_info.updateNftPublishInfo"
),
new
Object
[]{
nftOrderBo
.
getNftId
(),
LocalDateTime
.
now
(),
nftOrderBo
.
getNftOrderPayId
()}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftTradeInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
/**
@Override
* 更新nft订单购买数据
public
RedisUtil
getRedisUtil
()
{
* @param routerType
return
redisUtil
;
* @param nftOrderPayId
* @param nftOrderBo
*/
public
void
updateNftOrderBuyInfo
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBo
nftOrderBo
)
{
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_TRADE_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderPayId
));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
nftOrderBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
nftOrderBo
.
getUpdatedAt
());
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
query
,
update
,
GalaxyNftOrderVo
.
class
,
GalaxyNftOrderVo
.
class
.
getSimpleName
());
log
.
info
(
"updateNftOrderInfo result:{}"
,
result
.
toString
());
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_order_info.updateNftBuyInfo"
),
new
Object
[]{
nftOrderBo
.
getNftBuyTaskId
(),
LocalDateTime
.
now
(),
nftOrderBo
.
getNftOrderPayId
()}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftTradeInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
void
setGalaxyNftOrderBindBo
(
String
routerType
,
String
nftOrderPayId
,
GalaxyNftOrderBindBo
nftOrderBindBo
)
{
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
,
nftOrderBindBo
,
keyExpireTime
);
//入库mongo
GalaxyNftOrderBindVo
nftOrderBindVo
=
GalaxyNftOrderBindVo
.
getNew
();
BeanUtil
.
copy
(
nftOrderBindBo
,
nftOrderBindVo
);
mongoTemplate
.
save
(
nftOrderBindVo
,
GalaxyNftOrderBindVo
.
class
.
getSimpleName
());
}
public
GalaxyNftOrderBindBo
getGalaxyNftOrderBindBo
(
String
routerType
,
String
nftOrderPayId
)
{
String
redisKey
=
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_ORDER
.
concat
(
routerType
).
concat
(
":"
)
+
nftOrderPayId
;
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
!=
null
){
return
(
GalaxyNftOrderBindBo
)
obj
;
}
else
{
GalaxyNftOrderBindVo
nftOrderBindVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"nftOrderPayId"
).
is
(
nftOrderPayId
)),
GalaxyNftOrderBindVo
.
class
,
GalaxyNftOrderBindVo
.
class
.
getSimpleName
());
if
(
nftOrderBindVo
==
null
)
{
return
null
;
}
GalaxyNftOrderBindBo
nftOrderBindBo
=
GalaxyNftOrderBindBo
.
getNew
();
BeanUtil
.
copy
(
nftOrderBindVo
,
nftOrderBindBo
);
redisUtil
.
set
(
redisKey
,
nftOrderBindBo
,
keyExpireTime
);
return
nftOrderBindBo
;
}
}
public
void
setNftTradeInfo
(
String
routerType
,
GalaxyNftTradeVo
nftTradeVo
)
{
/**
* 入库mongo
*/
mongoTemplate
.
save
(
nftTradeVo
,
GalaxyNftTradeVo
.
class
.
getSimpleName
());
// insert into galaxy_nft_trade_info (mid, nft_id, nft_name,series_name,series_id,series_code, trade_hash, chain_timestamp, from_address
// , to_address,trade_price, trade_type, created_at, updated_at)
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_nft_trade_info.insert"
),
new
Object
[]{
nftTradeVo
.
getNftId
(),
nftTradeVo
.
getNftName
(),
nftTradeVo
.
getSeriesName
(),
nftTradeVo
.
getSeriesId
(),
nftTradeVo
.
getSeriesCode
(),
nftTradeVo
.
getTradeHash
(),
nftTradeVo
.
getChainTimestamp
(),
nftTradeVo
.
getFromAddress
()
,
nftTradeVo
.
getToAddress
(),
nftTradeVo
.
getTradePrice
(),
nftTradeVo
.
getTradeType
(),
LocalDateTime
.
now
(),
null
}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#setNftTradeInfo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
public
long
incrNftIdNo
(
String
routerType
,
String
skuId
)
{
return
redisUtil
.
incr
(
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_NFT
.
concat
(
routerType
).
concat
(
":"
).
concat
(
skuId
),
1
);
}
}
public
long
getNftIdNo
(
String
routerType
,
String
skuId
)
{
@Override
Object
o
=
redisUtil
.
get
(
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_NFT
.
concat
(
routerType
).
concat
(
":"
).
concat
(
skuId
));
public
MongoTemplate
getMongoTemplate
()
{
return
o
==
null
?-
1
:(
int
)
o
;
return
mongoTemplate
;
}
}
/**
@Override
* 更新系列已购买信息
public
QueueUtil
getQueueUtil
()
{
* @param routerType
return
queueUtil
;
* @param seriesCode
*/
public
void
updateSeriesCrtCount
(
String
routerType
,
String
seriesCode
)
{
GalaxySeriesInfoBo
seriesInfoBo
=
this
.
getSeriesInfoBo
(
routerType
,
seriesCode
);
seriesInfoBo
.
setCrtCount
(
seriesInfoBo
.
getCrtCount
()+
1
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES
.
concat
(
routerType
).
concat
(
":"
)
+
seriesCode
,
seriesInfoBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"seriesCode"
).
is
(
seriesInfoBo
.
getSeriesCode
()));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
seriesInfoBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
update
.
set
(
"crtCount"
,
seriesInfoBo
.
getCrtCount
()+
1
);
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
query
,
update
,
GalaxySeriesInfoVo
.
class
,
GalaxySeriesInfoVo
.
class
.
getSimpleName
());
log
.
info
(
"updateSeriesCrtCount result:{}"
,
result
.
toString
());
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_info.updateSeriesCrtCount"
),
new
Object
[]{
seriesInfoBo
.
getCrtCount
()+
1
,
LocalDateTime
.
now
(),
seriesCode
}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#updateSeriesCrtCount error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
/**
* 更新系列nft已购买信息
* @param routerType
* @param skuId
*/
public
void
updateSeriesNftCrtCount
(
String
routerType
,
String
skuId
)
{
GalaxySeriesNftInfoBo
seriesNftInfoBo
=
this
.
getSeriesNftInfoBo
(
routerType
,
skuId
);
seriesNftInfoBo
.
setNftCrtCount
(
seriesNftInfoBo
.
getNftCrtCount
()+
1
);
redisUtil
.
set
(
GalaxyConstant
.
REDIS_KEY_GALAXY_SERIES_NFT
.
concat
(
routerType
).
concat
(
":"
)
+
skuId
,
seriesNftInfoBo
,
keyExpireTime
);
Query
query
=
Query
.
query
(
Criteria
.
where
(
"skuId"
).
is
(
skuId
));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
seriesNftInfoBo
)));
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDate
.
now
());
update
.
set
(
"nftCrtCount"
,
seriesNftInfoBo
.
getNftCrtCount
()+
1
);
update
.
set
(
"updatedAt"
,
nowTimeStr
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
query
,
update
,
GalaxySeriesNftInfoBo
.
class
,
GalaxySeriesNftInfoBo
.
class
.
getSimpleName
());
log
.
info
(
"updateSeriesNftCrtCount result:{}"
,
result
.
toString
());
try
{
queueUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"galaxy_series_nft_info.updateSeriesNftCrtCount"
),
new
Object
[]{
seriesNftInfoBo
.
getNftCrtCount
()+
1
,
LocalDateTime
.
now
(),
skuId
}
,
MQConst
.
GalaxyQueue
.
SQL_NFT_TRADE_INFO
.
getKey
()
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
"#GalaxySeriesNftInfoBo error ==> MESSAGE:{}"
,
e
.
getMessage
());
}
}
}
}
}
liquidnet-bus-service/liquidnet-service-galaxy/liquidnet-service-galaxy-impl/src/test/java/com/liquidnet/service/galaxy/TestZxlWalletSdkUtil.java
View file @
2a53f70e
...
@@ -11,7 +11,7 @@ import com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil;
...
@@ -11,7 +11,7 @@ import com.liquidnet.common.third.zxlnft.util.ZxlnftSdkUtil;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.galaxy.
router.strategy.
biz.GalaxyCommonBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyCommonBiz
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
...
...
liquidnet-bus-service/liquidnet-service-galaxy/pom.xml
View file @
2a53f70e
...
@@ -12,9 +12,9 @@
...
@@ -12,9 +12,9 @@
<artifactId>
liquidnet-service-galaxy
</artifactId>
<artifactId>
liquidnet-service-galaxy
</artifactId>
<packaging>
pom
</packaging>
<packaging>
pom
</packaging>
<modules>
<modules>
<module>
liquidnet-service-galaxy-common
</module>
<module>
liquidnet-service-galaxy-impl
</module>
<module>
liquidnet-service-galaxy-impl
</module>
</modules>
</modules>
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<groupId>
com.liquidnet
</groupId>
...
...
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