记得上下班打卡 | 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
ef975e2b
Commit
ef975e2b
authored
Jul 01, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
准备处理库存
parent
67de5344
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
130 additions
and
19 deletions
+130
-19
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+1
-0
MixOrderParam.java
...om/liquidnet/service/goblin/dto/manage/MixOrderParam.java
+0
-2
GoblinMixServiceImpl.java
...vice/goblin/service/impl/manage/GoblinMixServiceImpl.java
+14
-8
GoblinRedisUtils.java
...a/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
+4
-4
MixOrderServiceImpl.java
...idnet/service/order/service/impl/MixOrderServiceImpl.java
+58
-1
GoblinRedisUtils.java
...a/com/liquidnet/service/order/utils/GoblinRedisUtils.java
+53
-4
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
ef975e2b
...
...
@@ -336,6 +336,7 @@ public class GoblinRedisConst {
public
static
final
String
GOBLIN_MIX_SKU_START_LIST
=
PREFIX
.
concat
(
"mix:goods:start"
);
//sku 混合售开始列表
public
static
final
String
GOBLIN_MIX_LIMIT
=
PREFIX
.
concat
(
"mix:limit:"
);
//$key:$mixId:$uid 混合售开始列表
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/manage/MixOrderParam.java
View file @
ef975e2b
...
...
@@ -13,8 +13,6 @@ import java.util.List;
@Data
public
class
MixOrderParam
{
@ApiModelProperty
(
value
=
"用户id"
)
private
String
uid
;
@ApiModelProperty
(
value
=
"混合售id"
)
private
String
mixId
;
@ApiModelProperty
(
value
=
"入场人地址vo"
)
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/manage/GoblinMixServiceImpl.java
View file @
ef975e2b
...
...
@@ -152,20 +152,23 @@ public class GoblinMixServiceImpl implements IGoblinMixService {
itemVo
.
getProductId
(),
itemVo
.
getCount
(),
LocalDateTime
.
now
()
});
//白名单
if
(
param
.
getWhiteType
()
==
1
)
{
queueUtils
.
sendMsgByRedisXls
(
mixId
,
param
.
getWhiteUrl
(),
""
,
"3"
,
itemVo
.
getSkuId
());
}
//
if (param.getWhiteType() == 1) {
//
queueUtils.sendMsgByRedisXls(mixId, param.getWhiteUrl(), "", "3", itemVo.getSkuId());
//
}
}
GoblinMixDetailsVo
vo
=
GoblinMixDetailsVo
.
getNew
().
copyByInsert
(
mixId
,
param
,
itemList
,
uid
,
sellPrice
,
price
);
GoblinMixDetailsVo
vo
=
GoblinMixDetailsVo
.
getNew
().
copyByInsert
(
mixId
,
param
,
itemList
,
uid
,
sellPrice
,
price
);
goblinMix
.
add
(
new
Object
[]{
mixId
,
uid
,
vo
.
getName
(),
vo
.
getTimeStart
(),
vo
.
getTimeEnd
(),
6
,
vo
.
getShowPosition
(),
vo
.
getSellName
(),
vo
.
getExpressPrice
(),
vo
.
getIntro
(),
vo
.
getWatchType
(),
vo
.
getCoverPic
(),
vo
.
getVideo
(),
vo
.
getDetailUrl
(),
vo
.
getDetails
(),
vo
.
getStock
(),
vo
.
getStockLock
(),
vo
.
getIsLock
(),
vo
.
getLimit
(),
vo
.
getWhiteType
(),
vo
.
getWhiteUrl
(),
vo
.
getPayType
(),
LocalDateTime
.
now
()
vo
.
getIsLock
(),
vo
.
getLimit
(),
vo
.
getWhiteType
(),
vo
.
getWhiteUrl
(),
vo
.
getPayType
(),
LocalDateTime
.
now
()
});
//设置redis
redisUtils
.
setMixDetails
(
mixId
,
vo
);
redisList
(
vo
.
getShowPosition
(),
vo
.
getMixId
(),
vo
.
getStatus
());
if
(
param
.
getWhiteType
()
==
1
)
{
queueUtils
.
sendMsgByRedisXls
(
mixId
,
param
.
getWhiteUrl
(),
""
,
"3"
,
mixId
);
}
//设置mongo
mongoUtils
.
setGoblinMixDetailsVo
(
vo
);
//设置mysql
...
...
@@ -187,9 +190,9 @@ public class GoblinMixServiceImpl implements IGoblinMixService {
for
(
GoblinMixDetailsItemVo
itemVo
:
vo
.
getItem
())
{
//白名单
if
(
param
.
getWhiteType
()
==
1
)
{
queueUtils
.
sendMsgByRedisXls
(
param
.
getMixId
(),
param
.
getWhiteUrl
(),
vo
.
getWhiteUrl
(),
"3"
,
itemVo
.
getSku
Id
());
}
//
if (param.getWhiteType() == 1) {
// queueUtils.sendMsgByRedisXls(param.getMixId(), param.getWhiteUrl(), vo.getWhiteUrl(), "3", param.getMix
Id());
//
}
}
vo
.
setShowPosition
(
param
.
getShowPosition
());
...
...
@@ -198,6 +201,9 @@ public class GoblinMixServiceImpl implements IGoblinMixService {
vo
.
setWhiteUrl
(
param
.
getWhiteUrl
());
//redis
redisUtils
.
setMixDetails
(
param
.
getMixId
(),
vo
);
if
(
param
.
getWhiteType
()
==
1
)
{
queueUtils
.
sendMsgByRedisXls
(
param
.
getMixId
(),
param
.
getWhiteUrl
(),
vo
.
getWhiteUrl
(),
"3"
,
param
.
getMixId
());
}
//mongo
mongoUtils
.
changeGoblinMixDetailsVo
(
vo
);
//sql入库
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
View file @
ef975e2b
...
...
@@ -2554,25 +2554,25 @@ public class GoblinRedisUtils {
public
void
addGoblinMixNftStockList
(
String
mixId
)
{
List
<
String
>
mixIds
=
getGoblinMixNftStockList
();
mixIds
.
add
(
mixId
);
setGoblinMix
Sku
List
(
mixId
);
setGoblinMix
NftStock
List
(
mixId
);
}
public
void
addGoblinMixNftStartList
(
String
mixId
)
{
List
<
String
>
mixIds
=
getGoblinMixNftStartList
();
mixIds
.
add
(
mixId
);
setGoblinMix
Sku
List
(
mixId
);
setGoblinMix
NftStart
List
(
mixId
);
}
public
void
addGoblinMixSkuStockList
(
String
mixId
)
{
List
<
String
>
mixIds
=
getGoblinMixSkuStockList
();
mixIds
.
add
(
mixId
);
setGoblinMixSkuList
(
mixId
);
setGoblinMixSku
Stock
List
(
mixId
);
}
public
void
addGoblinMixSkuStartList
(
String
mixId
)
{
List
<
String
>
mixIds
=
getGoblinMixSkuStartList
();
mixIds
.
add
(
mixId
);
setGoblinMixSkuList
(
mixId
);
setGoblinMixSku
Start
List
(
mixId
);
}
/* ---------------------------------------- ---------------------------------------- */
/* ---------------------------------------- ---------------------------------------- */
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/MixOrderServiceImpl.java
View file @
ef975e2b
package
com
.
liquidnet
.
service
.
order
.
service
.
impl
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.dto.manage.GoblinOrderParam
;
import
com.liquidnet.service.goblin.constant.NftAccStatusEnum
;
import
com.liquidnet.service.goblin.dto.GoblinUserNftAccInfoVo
;
import
com.liquidnet.service.goblin.dto.manage.MixOrderParam
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinMixDetailsItemVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinMixDetailsVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinPayInnerResultVo
;
import
com.liquidnet.service.goblin.param.SyncOrderParam
;
import
com.liquidnet.service.goblin.service.IMixOrderService
;
import
com.liquidnet.service.order.utils.*
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.tomcat.jni.Local
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
static
com
.
liquidnet
.
commons
.
lang
.
util
.
DateUtil
.
DTF_YMD_HMS
;
@Service
@Slf4j
...
...
@@ -34,6 +46,51 @@ public class MixOrderServiceImpl implements IMixOrderService {
@Override
public
ResponseDto
<
GoblinPayInnerResultVo
>
checkOrder
(
MixOrderParam
param
,
String
uid
)
{
GoblinMixDetailsVo
mixVo
=
redisUtils
.
getMixDetails
(
param
.
getMixId
());
String
mixId
=
mixVo
.
getMixId
();
String
mobile
=
StringUtils
.
defaultString
(((
String
)
CurrentUtil
.
getTokenClaims
().
get
(
CurrentUtil
.
TOKEN_MOBILE
)),
""
);
//判断 活动状态
LocalDateTime
st
=
LocalDateTime
.
parse
(
mixVo
.
getTimeStart
(),
DTF_YMD_HMS
);
LocalDateTime
et
=
LocalDateTime
.
parse
(
mixVo
.
getTimeEnd
(),
DTF_YMD_HMS
);
LocalDateTime
nt
=
LocalDateTime
.
now
();
if
(!
nt
.
isAfter
(
st
)
&&
nt
.
isBefore
(
et
))
{
return
ResponseDto
.
failure
(
"不在活动有效期内"
);
}
//判断白名单
int
whiteType
=
mixVo
.
getWhiteType
();
Boolean
canBuy
=
redisUtils
.
getListCanBuy
(
mixId
,
mixId
,
mobile
,
uid
,
whiteType
==
2
?
-
1
:
whiteType
);
if
(!
canBuy
)
{
return
ResponseDto
.
failure
(
"该藏品仅对部分用户开放~"
);
}
//判断限购
Integer
limitCount
=
mixVo
.
getLimit
();
int
buyCount
=
redisUtils
.
incrMixLimit
(
mixId
,
uid
);
if
(
buyCount
>
limitCount
)
{
return
ResponseDto
.
failure
(
"超出限购数量"
);
}
//构建 各个商品信息
List
<
GoblinGoodsSkuInfoVo
>
skuInfoList
=
ObjectUtil
.
cloneArrayGoblinGoodsSkuInfoListVo
();
List
<
GoblinGoodsSkuInfoVo
>
nftInfoList
=
ObjectUtil
.
cloneArrayGoblinGoodsSkuInfoListVo
();
for
(
GoblinMixDetailsItemVo
itemVo
:
mixVo
.
getItem
())
{
GoblinGoodsSkuInfoVo
skuInfoVo
=
redisUtils
.
getGoodsSkuInfoVo
(
itemVo
.
getSkuId
());
if
(
skuInfoVo
.
getSkuType
()
==
0
)
{
skuInfoList
.
add
(
skuInfoVo
);
}
else
if
(
skuInfoVo
.
getSkuType
()
==
1
)
{
nftInfoList
.
add
(
skuInfoVo
);
}
else
{
return
ResponseDto
.
failure
(
"参数异常"
);
}
}
// 认证验证
if
(
nftInfoList
.
size
()
>
0
)
{
GoblinUserNftAccInfoVo
openAccountInfo
=
redisUtils
.
getOpenAccountInfo
(
uid
);
if
(
null
==
openAccountInfo
||
!
NftAccStatusEnum
.
StatusAcc
.
SUCCESS
.
getCode
().
equals
(
openAccountInfo
.
getCode
()))
{
return
ResponseDto
.
failure
(
"您还未开通数字账户~"
);
}
}
//库存处理
return
null
;
}
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/utils/GoblinRedisUtils.java
View file @
ef975e2b
...
...
@@ -15,6 +15,7 @@ import org.springframework.util.CollectionUtils;
import
org.springframework.util.StringUtils
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -234,7 +235,7 @@ public class GoblinRedisUtils {
}
else
if
(
now
.
isAfter
(
collectVoItem
.
getTimeStart
())
&&
now
.
isBefore
(
collectVoItem
.
getTimeEnd
()))
{
collectVo
=
collectVoItem
;
break
;
}
else
if
(
collectVoItem
.
getTimeEnd
()
!=
null
&&
now
.
isAfter
(
collectVoItem
.
getTimeEnd
()))
{
}
else
if
(
collectVoItem
.
getTimeEnd
()
!=
null
&&
now
.
isAfter
(
collectVoItem
.
getTimeEnd
()))
{
collectTemp
=
null
;
}
}
...
...
@@ -268,7 +269,7 @@ public class GoblinRedisUtils {
if
(
collectNext
==
null
||
collectNext
.
getTimeStart
().
isAfter
(
collectNext
.
getTimeStart
()))
{
collectNext
=
collectVoItem
;
}
}
else
if
(
collectVoItem
.
getTimeEnd
()
!=
null
&&
now
.
isAfter
(
collectVoItem
.
getTimeEnd
()))
{
}
else
if
(
collectVoItem
.
getTimeEnd
()
!=
null
&&
now
.
isAfter
(
collectVoItem
.
getTimeEnd
()))
{
collectTemp
=
null
;
}
}
...
...
@@ -318,7 +319,7 @@ public class GoblinRedisUtils {
}
if
(
whiteType
==
-
1
)
{
return
true
;
}
else
if
(
whiteType
==
0
)
{
//会员
}
else
if
(
whiteType
==
0
)
{
//会员
return
memberStage
!=
null
;
}
else
{
//白名单
return
wResult
;
...
...
@@ -632,6 +633,7 @@ public class GoblinRedisUtils {
/**
* 记录用户是否购买过技术部数字藏品
*
* @param uid
*/
public
void
setBuyNftTec
(
String
uid
)
{
...
...
@@ -639,5 +641,52 @@ public class GoblinRedisUtils {
redisUtil
.
set
(
rdk
,
1
);
}
/* ----------------------------------- ----------------------------------- */
/* ----------------------------------- 混合售 ----------------------------------- */
/**
* 获取 盲盒skuId 关联 的skuId
*/
public
ArrayList
<
String
>
getGoblinMixRelationBox
(
String
skuId
,
String
mixId
)
{
String
rdk
=
GoblinRedisConst
.
GOBLIN_MIX_RELATION_BOX
.
concat
(
skuId
).
concat
(
":"
+
mixId
);
Object
obj
=
redisUtil
.
get
(
rdk
);
if
(
obj
==
null
)
{
return
CollectionUtil
.
arrayListString
();
}
else
{
return
(
ArrayList
<
String
>)
obj
;
}
}
// 获取 组合售数据
public
GoblinMixDetailsVo
getMixDetails
(
String
mixId
)
{
String
rdk
=
GoblinRedisConst
.
GOBLIN_MIX_DETAILS
.
concat
(
mixId
);
Object
obj
=
redisUtil
.
get
(
rdk
);
if
(
obj
==
null
)
{
return
GoblinMixDetailsVo
.
getNew
();
}
else
{
return
(
GoblinMixDetailsVo
)
obj
;
}
}
//混合售限购增加
public
int
incrMixLimit
(
String
mixId
,
String
uid
)
{
String
rdk
=
GoblinRedisConst
.
GOBLIN_MIX_LIMIT
.
concat
(
mixId
).
concat
(
":"
).
concat
(
uid
);
return
(
int
)
redisUtil
.
incr
(
rdk
,
1
);
}
//混合售限购减少
public
int
decrMixLimit
(
String
mixId
,
String
uid
)
{
String
rdk
=
GoblinRedisConst
.
GOBLIN_MIX_LIMIT
.
concat
(
mixId
).
concat
(
":"
).
concat
(
uid
);
return
(
int
)
redisUtil
.
decr
(
rdk
,
1
);
}
//混合购限购获取
public
int
getMixLimit
(
String
mixId
,
String
uid
)
{
String
rdk
=
GoblinRedisConst
.
GOBLIN_MIX_LIMIT
.
concat
(
mixId
).
concat
(
":"
).
concat
(
uid
);
Object
obj
=
redisUtil
.
get
(
rdk
);
if
(
obj
==
null
)
{
return
0
;
}
else
{
return
(
int
)
obj
;
}
}
}
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