记得上下班打卡 | 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
7a343950
Commit
7a343950
authored
Apr 14, 2022
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nft商品列表
parent
4a808db2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
67 additions
and
68 deletions
+67
-68
GoblinNftGoodsAppServiceImpl.java
...ice/goblin/service/impl/GoblinNftGoodsAppServiceImpl.java
+61
-66
GoblinRedisUtils.java
...a/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
+1
-2
ObjectUtil.java
...in/java/com/liquidnet/service/goblin/util/ObjectUtil.java
+5
-0
No files found.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinNftGoodsAppServiceImpl.java
View file @
7a343950
package
com
.
liquidnet
.
service
.
goblin
.
service
.
impl
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.ResponseDto
;
...
...
@@ -25,7 +26,6 @@ import org.springframework.data.mongodb.core.query.Query;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -49,36 +49,36 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
@Autowired
IGoblinGoodsAnticipateMgService
goblinGoodsAnticipateMgService
;
final
static
int
size
=
40
;
@Override
public
ResponseDto
<
PagedResult
<
GoblinNftGoodsSkuListVo
>>
goodsList
(
int
page
)
{
int
size
=
40
;
//条件
List
<
String
>
skuIdList
=
goblinRedisUtils
.
getGoblinNftGoodsInfoListVo
();
List
<
GoblinNftGoodsSkuListVo
>
skuList
=
new
ArrayList
<>();
if
(
null
==
skuIdList
||
page
>
1
)
{
skuIdList
=
new
ArrayList
<>();
// 分页 排序:按照开售时间
List
<
GoblinNftGoodsSkuListVo
>
skuList
=
ObjectUtil
.
getGoblinNftGoodsSkuListVoArrayList
();
if
(
CollectionUtil
.
isEmpty
(
skuIdList
)
||
page
>
1
)
{
// 查mongo
//条件
Query
query
=
Query
.
query
(
Criteria
.
where
(
"skuType"
).
is
(
1
)
.
and
(
"delFlg"
).
is
(
"0"
)
.
and
(
"status"
).
is
(
"3"
)
.
and
(
"shelvesStatus"
).
is
(
"3"
)
Criteria
.
where
(
"skuType"
).
is
(
1
).
and
(
"delFlg"
).
is
(
"0"
)
.
and
(
"status"
).
is
(
"3"
).
and
(
"shelvesStatus"
).
is
(
"3"
)
.
and
(
"skuAppear"
).
is
(
"0"
)
);
// 分页 排序:按照开售时间
Pageable
pageable
=
PageRequest
.
of
(
page
-
1
,
size
,
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"saleStartTime"
));
query
.
with
(
pageable
);
// 查询
List
<
GoblinGoodsSkuInfoVo
>
skuInfoVos
=
mongoTemplate
.
find
(
query
,
GoblinGoodsSkuInfoVo
.
class
,
GoblinGoodsSkuInfoVo
.
class
.
getSimpleName
());
for
(
GoblinGoodsSkuInfoVo
inf
o
:
skuInfoVos
)
{
//获取预约相关
AnticipateValueVo
anticipateValueVo
=
goblinGoodsAnticipateMgService
.
getAnticipateValueBySkuId
(
inf
o
.
getSkuId
(),
0
);
for
(
GoblinGoodsSkuInfoVo
skuInfoV
o
:
skuInfoVos
)
{
//
获取预约相关
AnticipateValueVo
anticipateValueVo
=
goblinGoodsAnticipateMgService
.
getAnticipateValueBySkuId
(
skuInfoV
o
.
getSkuId
(),
0
);
// sku信息
GoblinNftGoodsSkuListVo
nftGoodsSkuInfoVo
=
GoblinNftGoodsSkuListVo
.
getNew
().
copy
(
inf
o
,
anticipateValueVo
);
GoblinNftGoodsSkuListVo
nftGoodsSkuInfoVo
=
GoblinNftGoodsSkuListVo
.
getNew
().
copy
(
skuInfoV
o
,
anticipateValueVo
);
// spu信息
GoblinGoodsInfoVo
goodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
inf
o
.
getSpuId
());
GoblinGoodsInfoVo
goodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
skuInfoV
o
.
getSpuId
());
GoblinNftGoodsSpuInfoVo
nftGoodsSpuInfoVo
=
GoblinNftGoodsSpuInfoVo
.
getNew
().
copy
(
goodsInfoVo
);
nftGoodsSkuInfoVo
.
setGoblinNftGoodsSpuInfoVo
(
nftGoodsSpuInfoVo
);
// 库存
int
isStock
=
getIsStock
(
skuInfoVo
.
getSkuId
(),
skuInfoVo
.
getUnbox
(),
skuInfoVo
.
getSoldoutStatus
(),
goodsInfoVo
.
getSkuIdList
());
nftGoodsSkuInfoVo
.
setIsStock
(
isStock
);
// 写入列表
skuList
.
add
(
nftGoodsSkuInfoVo
);
skuIdList
.
add
(
nftGoodsSkuInfoVo
.
getSkuId
());
...
...
@@ -88,37 +88,23 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
}
}
else
{
for
(
String
skuId
:
skuIdList
)
{
GoblinGoodsSkuInfoVo
goodsSkuInfoVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
GoblinNftGoodsSkuListVo
goblinNftGoodsSkuListVo
=
GoblinNftGoodsSkuListVo
.
getNew
().
copy
(
goodsSkuInfoVo
,
null
);
// 获取预约相关
AnticipateValueVo
anticipateValueVo
=
goblinGoodsAnticipateMgService
.
getAnticipateValueBySkuId
(
skuId
,
0
);
// sku信息
GoblinGoodsSkuInfoVo
skuInfoVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
GoblinNftGoodsSkuListVo
goblinNftGoodsSkuListVo
=
GoblinNftGoodsSkuListVo
.
getNew
().
copy
(
skuInfoVo
,
anticipateValueVo
);
// spu信息
GoblinGoodsInfoVo
goodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
goodsS
kuInfoVo
.
getSpuId
());
GoblinGoodsInfoVo
goodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
s
kuInfoVo
.
getSpuId
());
GoblinNftGoodsSpuInfoVo
nftGoodsSpuInfoVo
=
GoblinNftGoodsSpuInfoVo
.
getNew
().
copy
(
goodsInfoVo
);
goblinNftGoodsSkuListVo
.
setGoblinNftGoodsSpuInfoVo
(
nftGoodsSpuInfoVo
);
// 库存
int
isStock
=
getIsStock
(
skuId
,
skuInfoVo
.
getUnbox
(),
skuInfoVo
.
getSoldoutStatus
(),
goodsInfoVo
.
getSkuIdList
());
goblinNftGoodsSkuListVo
.
setIsStock
(
isStock
);
// 写入列表
skuList
.
add
(
goblinNftGoodsSkuListVo
);
}
}
for
(
GoblinNftGoodsSkuListVo
skuInfoVo
:
skuList
)
{
int
stock
=
0
;
if
(
skuInfoVo
.
getUnbox
().
equals
(
"0"
))
{
if
(
null
==
skuInfoVo
.
getSoldoutStatus
()
||
skuInfoVo
.
getSoldoutStatus
().
equals
(
"0"
))
{
stock
=
goblinRedisUtils
.
getSkuStock
(
null
,
skuInfoVo
.
getSkuId
());
}
}
else
{
String
spuId
=
skuInfoVo
.
getSpuId
();
List
<
String
>
skuArray
=
goblinRedisUtils
.
getGoodsInfoVo
(
spuId
).
getSkuIdList
();
for
(
String
skuIdItem
:
skuArray
)
{
GoblinGoodsSkuInfoVo
itemVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuIdItem
);
stock
+=
goblinRedisUtils
.
getSkuAllStatusStock
(
itemVo
);
}
}
if
(
stock
<=
0
||
(
null
!=
skuInfoVo
.
getSoldoutStatus
()
&&
skuInfoVo
.
getSoldoutStatus
().
equals
(
"1"
)))
{
skuInfoVo
.
setIsStock
(
0
);
}
else
{
skuInfoVo
.
setIsStock
(
1
);
}
}
// 库存售罄排序
List
<
GoblinNftGoodsSkuListVo
>
listSort
=
skuList
.
stream
().
sorted
(
Comparator
.
comparing
(
GoblinNftGoodsSkuListVo:
:
getIsStock
).
reversed
()).
collect
(
Collectors
.
toList
());
PagedResult
<
GoblinNftGoodsSkuListVo
>
listVoPagedResult
=
ObjectUtil
.
getGoblinNftGoodsSkuListVoPagedResult
();
...
...
@@ -128,49 +114,58 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
@Override
public
GoblinNftGoodsSkuInfoVo
goodsDetail
(
String
skuId
)
{
GoblinGoodsSkuInfoVo
goodsS
kuInfoVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
if
(
goblinRedisUtils
.
getSkuAllStatusShow
(
goodsS
kuInfoVo
))
{
GoblinGoodsSkuInfoVo
s
kuInfoVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
if
(
goblinRedisUtils
.
getSkuAllStatusShow
(
s
kuInfoVo
))
{
//获取预约相关
AnticipateValueVo
anticipateValueVo
=
goblinGoodsAnticipateMgService
.
getAnticipateValueBySkuId
(
skuId
,
1
);
GoblinNftGoodsSkuInfoVo
nftGoodsSkuInfoVo
=
GoblinNftGoodsSkuInfoVo
.
getNew
().
copy
(
goodsS
kuInfoVo
,
anticipateValueVo
);
GoblinNftGoodsSkuInfoVo
nftGoodsSkuInfoVo
=
GoblinNftGoodsSkuInfoVo
.
getNew
().
copy
(
s
kuInfoVo
,
anticipateValueVo
);
// 限购数量
Integer
buyCount
=
0
;
String
userId
=
CurrentUtil
.
getCurrentUid
();
if
(
StringUtils
.
isNotBlank
(
userId
))
{
buyCount
=
goblinRedisUtils
.
getSkuCountByUid
(
userId
,
skuId
);
}
if
(
null
!=
goodsSkuInfoVo
.
getBuyLimit
()
&&
0
!=
goodsS
kuInfoVo
.
getBuyLimit
())
{
nftGoodsSkuInfoVo
.
setCanBuyNum
(
goodsS
kuInfoVo
.
getBuyLimit
()
-
buyCount
);
if
(
null
!=
skuInfoVo
.
getBuyLimit
()
&&
0
!=
s
kuInfoVo
.
getBuyLimit
())
{
nftGoodsSkuInfoVo
.
setCanBuyNum
(
s
kuInfoVo
.
getBuyLimit
()
-
buyCount
);
}
// 库存 盲盒计算所有sku库存总数
// spu信息
GoblinGoodsInfoVo
goodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
skuInfoVo
.
getSpuId
());
GoblinNftGoodsDetailSpuInfoVo
nftGoodsDetailSpuInfoVo
=
GoblinNftGoodsDetailSpuInfoVo
.
getNew
().
copy
(
goodsInfoVo
);
nftGoodsSkuInfoVo
.
setGoblinNftGoodsDetailSpuInfoVo
(
nftGoodsDetailSpuInfoVo
);
// 库存
int
isStock
=
getIsStock
(
skuId
,
skuInfoVo
.
getUnbox
(),
skuInfoVo
.
getSoldoutStatus
(),
goodsInfoVo
.
getSkuIdList
());
nftGoodsSkuInfoVo
.
setIsStock
(
isStock
);
// 系统时间
nftGoodsSkuInfoVo
.
setSystime
(
LocalDateTime
.
now
());
return
nftGoodsSkuInfoVo
;
}
else
{
return
null
;
}
}
// 判断是否售罄
private
int
getIsStock
(
String
skuId
,
String
unbox
,
String
soldoutStatus
,
List
<
String
>
skuIdList
)
{
if
(
null
==
soldoutStatus
||
soldoutStatus
.
equals
(
"0"
))
{
// 未设置售罄 查询库存
int
stock
=
0
;
if
(
goodsSkuInfoVo
.
getUnbox
().
equals
(
"0"
))
{
if
(
null
==
goodsSkuInfoVo
.
getSoldoutStatus
()
||
goodsSkuInfoVo
.
getSoldoutStatus
().
equals
(
"0"
))
{
stock
=
goblinRedisUtils
.
getSkuStock
(
null
,
skuId
);
}
if
(
unbox
.
equals
(
"0"
))
{
// 不是盲盒
stock
=
goblinRedisUtils
.
getSkuStock
(
null
,
skuId
);
}
else
{
String
spuId
=
goodsSkuInfoVo
.
getSpuId
();
List
<
String
>
skuArray
=
goblinRedisUtils
.
getGoodsInfoVo
(
spuId
).
getSkuIdList
();
for
(
String
skuIdItem
:
skuArray
)
{
for
(
String
skuIdItem
:
skuIdList
)
{
// 盲盒计算所有sku库存总数
if
(
skuIdItem
.
equals
(
skuId
))
{
// 过滤自己
continue
;
}
GoblinGoodsSkuInfoVo
itemVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuIdItem
);
stock
+=
goblinRedisUtils
.
getSkuAllStatusStock
(
itemVo
);
}
}
log
.
info
(
"skuId:{}, 库存数量:{}"
,
skuId
,
stock
);
if
(
stock
<=
0
)
{
nftGoodsSkuInfoVo
.
setIsStock
(
0
)
;
return
0
;
}
else
{
nftGoodsSkuInfoVo
.
setIsStock
(
1
)
;
return
1
;
}
// spu信息
GoblinGoodsInfoVo
goodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
goodsSkuInfoVo
.
getSpuId
());
GoblinNftGoodsDetailSpuInfoVo
nftGoodsDetailSpuInfoVo
=
GoblinNftGoodsDetailSpuInfoVo
.
getNew
().
copy
(
goodsInfoVo
);
nftGoodsSkuInfoVo
.
setGoblinNftGoodsDetailSpuInfoVo
(
nftGoodsDetailSpuInfoVo
);
nftGoodsSkuInfoVo
.
setSystime
(
LocalDateTime
.
now
());
return
nftGoodsSkuInfoVo
;
}
else
{
return
null
;
return
0
;
}
}
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
View file @
7a343950
...
...
@@ -6,7 +6,6 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.commons.lang.util.RandomUtil
;
import
com.liquidnet.service.adam.dto.vo.AdamUserProfileVo
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.dto.GoblinStoreMarketDto
;
...
...
@@ -1511,7 +1510,7 @@ public class GoblinRedisUtils {
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_NFT_GOODS_LIST
;
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
return
null
;
return
CollectionUtil
.
arrayListString
()
;
}
else
{
return
(
List
<
String
>)
obj
;
}
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/ObjectUtil.java
View file @
7a343950
...
...
@@ -79,6 +79,7 @@ public class ObjectUtil {
private
static
final
ArrayList
<
BackCouponParam
>
backCouponParam
=
new
ArrayList
<>();
private
static
final
ArrayList
<
GoblinMailVo
>
goblinMailVo
=
new
ArrayList
<>();
private
static
final
ArrayList
<
GoblinPosGoodsVo
>
goblinPosGoodsVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
GoblinNftGoodsSkuListVo
>
goblinNftGoodsSkuListVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
TempCouponVo
>
tempCouponVo
=
new
ArrayList
<>();
private
static
final
ArrayList
<
GoblinUserDigitalArtworkListVo
>
GOBLIN_USER_DIGITAL_ARTWORK_LIST_VO_ARRAY_LIST
=
new
ArrayList
<>();
private
static
final
PagedResult
<
GoblinStoreMgtGoodsSkuListVo
>
goblinStoreMgtGoodsSkuListVo
=
new
PagedResult
<>();
...
...
@@ -325,6 +326,10 @@ public class ObjectUtil {
return
(
ArrayList
<
GoblinPosGoodsVo
>)
goblinPosGoodsVoArrayList
.
clone
();
}
public
static
ArrayList
<
GoblinNftGoodsSkuListVo
>
getGoblinNftGoodsSkuListVoArrayList
()
{
return
(
ArrayList
<
GoblinNftGoodsSkuListVo
>)
goblinNftGoodsSkuListVoArrayList
.
clone
();
}
public
static
ArrayList
<
GoblinUserDigitalArtworkListVo
>
getGoblinUserDigitalArtworkListVoArrayList
()
{
return
(
ArrayList
<
GoblinUserDigitalArtworkListVo
>)
GOBLIN_USER_DIGITAL_ARTWORK_LIST_VO_ARRAY_LIST
.
clone
();
}
...
...
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