记得上下班打卡 | 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
8c5fd082
Commit
8c5fd082
authored
May 23, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加 分批购 支持盲盒配置
parent
379e8fe9
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
52 additions
and
14 deletions
+52
-14
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+1
-0
GoblinListServiceImpl.java
...ice/goblin/service/impl/manage/GoblinListServiceImpl.java
+28
-14
GoblinRedisUtils.java
...a/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
+23
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
8c5fd082
...
...
@@ -247,6 +247,7 @@ public class GoblinRedisConst {
public
static
final
String
REDIS_WHITE
=
PREFIX
.
concat
(
"white:"
);
//白名单 key:$listId:$skuId:$mobile
public
static
final
String
LIST_COLLECT
=
PREFIX
.
concat
(
"list:collect"
);
//名单列表详情 $key:$skuId
public
static
final
String
ADAM_IS_MEMBER
=
"kylin:member:uid:"
;
//是否会员 $key:$uid
public
static
final
String
LIST_RELATION_BOX
=
PREFIX
.
concat
(
"list:relation:box"
);
//名单列表详情 $key:$skuId:$listId
/**
* nft兑换活动配置
*/
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/manage/GoblinListServiceImpl.java
View file @
8c5fd082
...
...
@@ -15,6 +15,7 @@ import com.liquidnet.service.goblin.param.GoblinListCreateParam;
import
com.liquidnet.service.goblin.param.GoblinListUpdateParam
;
import
com.liquidnet.service.goblin.service.manage.IGoblinListService
;
import
com.liquidnet.service.goblin.util.*
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -22,10 +23,7 @@ import java.math.BigDecimal;
import
java.text.DateFormat
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
static
com
.
liquidnet
.
commons
.
lang
.
util
.
DateUtil
.
DTF_YMD_HMS
;
...
...
@@ -38,6 +36,7 @@ import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS;
* @since 2022-04-29
*/
@Service
@Slf4j
public
class
GoblinListServiceImpl
implements
IGoblinListService
{
@Autowired
...
...
@@ -79,7 +78,16 @@ public class GoblinListServiceImpl implements IGoblinListService {
for
(
GoblinListDetailsItemVo
item
:
vo
.
getItemVo
())
{
GoblinGoodsSkuInfoVo
skuVo
=
redisUtils
.
getGoodsSkuInfoVo
(
item
.
getSkuId
());
item
.
setSkuName
(
skuVo
.
getName
());
if
(
skuVo
.
getUnbox
().
equals
(
"1"
))
{
int
stock
=
0
;
ArrayList
<
String
>
skuIdList
=
redisUtils
.
getGoblinListRelationBox
(
vo
.
getListId
(),
skuVo
.
getSkuId
());
for
(
String
relationSkuId
:
skuIdList
)
{
stock
+=
redisUtils
.
getSkuStock
(
listId
,
relationSkuId
);
}
item
.
setSurplusStock
(
stock
);
}
else
{
item
.
setSurplusStock
(
redisUtils
.
getSkuStock
(
listId
,
skuVo
.
getSkuId
()));
}
// if (skuVo.getUnbox().equals("0")) {
// item.setSurplusStock(redisUtils.getSkuStock(null, item.getSkuId()));
// item.setStock(skuVo.getSkuStock());
...
...
@@ -117,7 +125,7 @@ public class GoblinListServiceImpl implements IGoblinListService {
return
ResponseDto
.
failure
(
"只能配置一个sku"
);
}
//判断重名
if
(
mongoUtils
.
hasGoblinListDetailsVoByName
(
param
.
getName
()))
{
if
(
mongoUtils
.
hasGoblinListDetailsVoByName
(
param
.
getName
()))
{
return
ResponseDto
.
failure
(
"活动名称重复"
);
}
String
skuId
=
param
.
getItemParams
().
get
(
0
).
getSkuId
();
...
...
@@ -136,7 +144,7 @@ public class GoblinListServiceImpl implements IGoblinListService {
collectVos
=
redisUtils
.
getGoblinListCollect
(
skuId
);
boolean
isSame
=
judgeTime
(
st
,
et
,
collectVos
);
if
(
isSame
)
{
if
(
isSame
)
{
return
ResponseDto
.
failure
(
"sku时间不能重合"
);
}
for
(
GoblinListCollectVo
collectItem
:
collectVos
)
{
...
...
@@ -211,14 +219,20 @@ public class GoblinListServiceImpl implements IGoblinListService {
}
}
Map
<
String
,
Integer
>
skuMap
=
nftBoxUtils
.
getSkuHitRatio
(
item
.
getSkuStock
(),
map
);
for
(
String
key
:
skuMap
.
keySet
())
{
Integer
stockNum
=
skuMap
.
get
(
key
);
//库存
int
skuStock
=
redisUtils
.
decrSkuStock
(
null
,
itemVo
.
getSkuId
(),
itemVo
.
getSkuStock
());
int
skuStock
=
redisUtils
.
decrSkuStock
(
null
,
key
,
stockNum
);
log
.
info
(
"盲盒库存 SKUID = "
+
key
+
" 数量 = "
+
stockNum
);
if
(
skuStock
<
0
)
{
redisUtils
.
incrSkuStock
(
null
,
itemVo
.
getSkuId
(),
itemVo
.
getSkuStock
()
);
redisUtils
.
incrSkuStock
(
null
,
key
,
stockNum
);
return
ResponseDto
.
failure
(
"库存不足"
);
}
else
{
redisUtils
.
setSkuStock
(
vo
.
getListId
(),
itemVo
.
getSkuId
(),
itemVo
.
getSkuStock
());
redisUtils
.
setSkuStock
(
vo
.
getListId
(),
key
,
stockNum
);
redisUtils
.
addGoblinListRelationBox
(
vo
.
getListId
(),
itemVo
.
getSkuId
(),
key
);
}
}
}
else
{
//非盲盒逻辑
//库存
int
skuStock
=
redisUtils
.
decrSkuStock
(
null
,
itemVo
.
getSkuId
(),
itemVo
.
getSkuStock
());
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
View file @
8c5fd082
...
...
@@ -2237,6 +2237,29 @@ public class GoblinRedisUtils {
}
}
/**
* 设置 盲盒skuId 关联 的skuId
*/
public
void
addGoblinListRelationBox
(
String
skuId
,
String
listId
,
String
relationSkuId
)
{
String
rdk
=
GoblinRedisConst
.
LIST_RELATION_BOX
.
concat
(
skuId
).
concat
(
":"
+
listId
);
ArrayList
<
String
>
list
=
getGoblinListRelationBox
(
skuId
,
listId
);
list
.
add
(
relationSkuId
);
redisUtil
.
set
(
rdk
,
list
);
}
/**
* 获取 盲盒skuId 关联 的skuId
*/
public
ArrayList
<
String
>
getGoblinListRelationBox
(
String
skuId
,
String
listId
)
{
String
rdk
=
GoblinRedisConst
.
LIST_RELATION_BOX
.
concat
(
skuId
).
concat
(
":"
+
listId
);
Object
obj
=
redisUtil
.
get
(
rdk
);
if
(
obj
==
null
){
return
CollectionUtil
.
arrayListString
();
}
else
{
return
(
ArrayList
<
String
>)
obj
;
}
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | NFT三要素认证缓存的<ID_TYPE+ID_NO, "ID_NAME,MOBILE"> */
public
boolean
setCertmetaJunk
(
int
idType
,
String
idNo
,
String
idName
,
String
mobile
)
{
...
...
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