记得上下班打卡 | 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
b8a1ba38
Commit
b8a1ba38
authored
Jul 12, 2022
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
至信链按订单切换
parent
4251bfc2
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
126 additions
and
0 deletions
+126
-0
GalaxyTradeBiz.java
...java/com/liquidnet/service/galaxy/biz/GalaxyTradeBiz.java
+84
-0
ZxinTradeCommonBiz.java
...et/service/galaxy/router/zxin/biz/ZxinTradeCommonBiz.java
+19
-0
AbstractDataUtils.java
...com/liquidnet/service/galaxy/utils/AbstractDataUtils.java
+23
-0
No files found.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-common/src/main/java/com/liquidnet/service/galaxy/biz/GalaxyTradeBiz.java
0 → 100644
View file @
b8a1ba38
package
com
.
liquidnet
.
service
.
galaxy
.
biz
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyRespDto
;
import
com.liquidnet.service.galaxy.service.IGalaxyTradeService
;
import
com.liquidnet.service.galaxy.utils.GalaxyDataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: GalaxyTradeBiz
* @Package com.liquidnet.service.galaxy.biz
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/7/11 15:47
*/
@Slf4j
@Component
public
class
GalaxyTradeBiz
{
@Autowired
private
GalaxyDataUtils
dataUtils
;
@Resource
(
name
=
"galaxyTradeServiceImpl"
)
private
IGalaxyTradeService
galaxyTradeService
;
/**
* 根据skuid和nftIndex判断是否切换nft购买订单
* @param skuid
* @param nftIndex
*/
public
boolean
isNeedSwitch
(
String
skuid
,
String
nftIndex
){
String
nums
=
dataUtils
.
getGoblinNumList
(
skuid
);
if
(
StringUtil
.
isNotEmpty
(
nums
)){
String
[]
numsArray
=
nums
.
split
(
","
);
if
(
numsArray
.
length
>
0
){
List
<
String
>
numsList
=
Arrays
.
asList
(
numsArray
);
if
(
numsList
.
contains
(
nftIndex
)){
return
true
;
}
}
}
return
false
;
}
/**
* 根据skuid和nftIndex判断是否切换nft购买订单
* @param skuid
* @param nftIndex
*/
public
void
switchBuyRouterBySkuId
(
String
skuid
,
String
nftIndex
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
){
GalaxyNftPublishAndBuyReqDto
reqDto
=
dataUtils
.
getGoblinNumDetails
(
skuid
,
nftIndex
);
//设置绑定信息
GalaxyNftOrderBindBo
nftOrderBindBo
=
GalaxyNftOrderBindBo
.
getNew
();
nftOrderBindBo
.
setNftOrderPayId
(
reqDto
.
getNftOrderPayId
());
nftOrderBindBo
.
setSeriesId
(
seriesNftInfoBo
.
getSeriesId
());
nftOrderBindBo
.
setSeriesCode
(
seriesNftInfoBo
.
getSeriesCode
());
nftOrderBindBo
.
setNftIdIndex
(
Integer
.
valueOf
(
nftIndex
));
nftOrderBindBo
.
setRouterType
(
reqDto
.
getRouterType
());
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
nftOrderBindBo
.
setCreatedAt
(
nowTimeStr
);
dataUtils
.
setGalaxyNftOrderBindBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBindBo
);
//执行nft购买订单切换
log
.
info
(
"开始执行nft购买订单切换===>>>>> reqParam:{}"
,
JsonUtils
.
toJson
(
reqDto
));
ResponseDto
<
GalaxyNftPublishAndBuyRespDto
>
responseDto
=
galaxyTradeService
.
nftPublishAndBuy
(
reqDto
);
log
.
info
(
"执行nft购买订单切换结果===>>>>> response:{}"
,
JsonUtils
.
toJson
(
responseDto
));
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-common/src/main/java/com/liquidnet/service/galaxy/router/zxin/biz/ZxinTradeCommonBiz.java
View file @
b8a1ba38
...
...
@@ -9,6 +9,7 @@ import com.liquidnet.commons.lang.util.*;
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.biz.GalaxyTradeBiz
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
...
...
@@ -29,6 +30,8 @@ import org.springframework.stereotype.Component;
import
java.io.UnsupportedEncodingException
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
...
...
@@ -57,6 +60,11 @@ public class ZxinTradeCommonBiz {
@Autowired
private
GalaxyBeanTransferBiz
galaxyBeanTransferBiz
;
@Autowired
private
GalaxyTradeBiz
galaxyTradeBiz
;
private
ExecutorService
executorService
=
Executors
.
newFixedThreadPool
(
10
);
public
ResponseDto
<
GalaxyNftPublishAndBuyRespDto
>
nftPublishAndBuy
(
GalaxyNftPublishAndBuyReqDto
reqDto
)
{
log
.
info
(
"开始执行nftPublishAndBuy 请求参数:{}"
,
reqDto
.
toString
());
//获取用户信息
...
...
@@ -141,6 +149,17 @@ public class ZxinTradeCommonBiz {
//发行失败
throw
new
GalaxyNftPublishException
(
GalaxyErrorEnum
.
NFT_PUBLISH_ERROR
.
getCode
(),
"该sku:"
+
reqDto
.
getSkuId
()+
" 总共"
+
seriesNftInfoBo
.
getNftTotalCount
()+
"个NFT已经发行完毕,没有剩余库存!"
);
}
//判断是否切换订单
while
(
galaxyTradeBiz
.
isNeedSwitch
(
reqDto
.
getSkuId
(),
String
.
valueOf
(
nftIdNo
))){
long
finalNftIdNo
=
nftIdNo
;
//开启新线程去执行购买
executorService
.
submit
(()
->
{
galaxyTradeBiz
.
switchBuyRouterBySkuId
(
reqDto
.
getSkuId
(),
String
.
valueOf
(
finalNftIdNo
),
seriesNftInfoBo
);
});
nftIdNo
=
dataUtils
.
incrNftIdNo
(
reqDto
.
getRouterType
(),
reqDto
.
getSkuId
());
}
nftOrderBindBo
=
GalaxyNftOrderBindBo
.
getNew
();
nftOrderBindBo
.
setNftOrderPayId
(
reqDto
.
getNftOrderPayId
());
nftOrderBindBo
.
setSeriesId
(
seriesNftInfoBo
.
getSeriesId
());
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-common/src/main/java/com/liquidnet/service/galaxy/utils/AbstractDataUtils.java
View file @
b8a1ba38
...
...
@@ -8,8 +8,10 @@ import com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz;
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.param.GalaxyNftPublishAndBuyReqDto
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftOrderFailLogVo
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftTradeVo
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
...
...
@@ -478,4 +480,25 @@ public abstract class AbstractDataUtils {
return
null
;
}
}
//获取sku对应预留号码list
public
String
getGoblinNumList
(
String
skuId
){
String
redisKey
=
GoblinRedisConst
.
GOBLIN_NUM_LIST
.
concat
(
":"
).
concat
(
skuId
);
Object
obj
=
this
.
getRedisUtil
().
get
(
redisKey
);
if
(
obj
!=
null
){
return
obj
.
toString
();
}
return
null
;
}
//$key+$num+$skuId 根据num+skuId获取DTO
public
GalaxyNftPublishAndBuyReqDto
getGoblinNumDetails
(
String
skuId
,
String
nftIndex
){
String
redisKey
=
GoblinRedisConst
.
GOBLIN_NUM_DETAILS
.
concat
(
nftIndex
).
concat
(
skuId
);
Object
obj
=
this
.
getRedisUtil
().
get
(
redisKey
);
if
(
obj
!=
null
){
return
(
GalaxyNftPublishAndBuyReqDto
)
obj
;
}
return
null
;
}
}
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