记得上下班打卡 | 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
c46d59f9
Commit
c46d59f9
authored
Mar 25, 2022
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
app 商品列表与详情
parent
f3ac304c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
196 additions
and
0 deletions
+196
-0
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+1
-0
IGoblinNftGoodsAppService.java
...net/service/goblin/service/IGoblinNftGoodsAppService.java
+13
-0
GoblinNftGoodsAppController.java
...ervice/goblin/controller/GoblinNftGoodsAppController.java
+55
-0
GoblinNftGoodsAppServiceImpl.java
...ice/goblin/service/impl/GoblinNftGoodsAppServiceImpl.java
+113
-0
GoblinRedisUtils.java
...a/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
+14
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
c46d59f9
...
@@ -122,6 +122,7 @@ public class GoblinRedisConst {
...
@@ -122,6 +122,7 @@ public class GoblinRedisConst {
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_INFO
=
PREFIX
.
concat
(
"nftOrder:"
);
// nft订单详情
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_INFO
=
PREFIX
.
concat
(
"nftOrder:"
);
// nft订单详情
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_USER_ID_LIST
=
PREFIX
.
concat
(
"nftOrder:idList:user:"
);
// nft用户订单id列表
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_USER_ID_LIST
=
PREFIX
.
concat
(
"nftOrder:idList:user:"
);
// nft用户订单id列表
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_REFUND_INFO
=
PREFIX
.
concat
(
"nftOrder:refund:"
);
// nft退款订单详情
public
static
final
String
REDIS_GOBLIN_NFT_ORDER_REFUND_INFO
=
PREFIX
.
concat
(
"nftOrder:refund:"
);
// nft退款订单详情
public
static
final
String
REDIS_GOBLIN_GOODS_LIST
=
PREFIX
.
concat
(
"nftGoodsList"
);
// nft商品列表
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/IGoblinNftGoodsAppService.java
0 → 100644
View file @
c46d59f9
package
com
.
liquidnet
.
service
.
goblin
.
service
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.dto.vo.*
;
public
interface
IGoblinNftGoodsAppService
{
ResponseDto
<
PageInfo
<
GoblinGoodsInfoVo
>>
goodsList
(
int
pag
);
GoblinGoodsInfoVo
goodsDetail
(
String
spuId
,
String
skuId
);
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinNftGoodsAppController.java
0 → 100644
View file @
c46d59f9
package
com
.
liquidnet
.
service
.
goblin
.
controller
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo
;
import
com.liquidnet.service.goblin.service.IGoblinNftGoodsAppService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
@Slf4j
@Api
(
tags
=
"NFT商品-App"
)
@RestController
@RequestMapping
(
"/nftGoods"
)
public
class
GoblinNftGoodsAppController
{
@Autowired
IGoblinNftGoodsAppService
goblinNftGoodsAppService
;
@GetMapping
(
"list"
)
@ApiOperation
(
"获得NFT商品列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"page"
,
value
=
"页码"
,
example
=
"1"
),
})
public
ResponseDto
<
PageInfo
<
GoblinGoodsInfoVo
>>
getGoodsList
(
@RequestParam
(
name
=
"page"
,
defaultValue
=
"1"
)
Integer
page
)
{
return
goblinNftGoodsAppService
.
goodsList
(
page
);
}
@GetMapping
(
"detail"
)
@ApiOperation
(
"获得商品详情"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"query"
,
required
=
true
,
dataType
=
"String"
,
name
=
"spuId"
,
value
=
"spuId"
,
example
=
"1"
),
@ApiImplicitParam
(
type
=
"query"
,
required
=
true
,
dataType
=
"String"
,
name
=
"skuId"
,
value
=
"skuId"
,
example
=
"1"
),
})
public
ResponseDto
<
GoblinGoodsInfoVo
>
getGoodsDetail
(
@RequestParam
(
"spuId"
)
String
spuId
,
@RequestParam
(
"skuId"
)
String
skuId
)
{
GoblinGoodsInfoVo
vo
=
goblinNftGoodsAppService
.
goodsDetail
(
spuId
,
skuId
);
if
(
vo
==
null
)
{
return
ResponseDto
.
failure
(
"商品不存在"
);
}
return
ResponseDto
.
success
(
vo
);
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinNftGoodsAppServiceImpl.java
0 → 100644
View file @
c46d59f9
package
com
.
liquidnet
.
service
.
goblin
.
service
.
impl
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo
;
import
com.liquidnet.service.goblin.service.GoblinCouponService
;
import
com.liquidnet.service.goblin.service.IGoblinNftGoodsAppService
;
import
com.liquidnet.service.goblin.util.GoblinMongoUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.QueueUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
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.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
@Service
@Slf4j
public
class
GoblinNftGoodsAppServiceImpl
implements
IGoblinNftGoodsAppService
{
@Autowired
private
GoblinRedisUtils
goblinRedisUtils
;
@Autowired
MongoTemplate
mongoTemplate
;
@Autowired
QueueUtils
queueUtils
;
@Autowired
GoblinMongoUtils
mongoUtils
;
@Autowired
GoblinCouponService
goblinCouponService
;
@Override
public
ResponseDto
<
PageInfo
<
GoblinGoodsInfoVo
>>
goodsList
(
int
page
)
{
int
size
=
20
;
//条件
Query
query
=
Query
.
query
(
Criteria
.
where
(
"spuType"
).
is
(
1
)
);
long
count
=
mongoTemplate
.
count
(
query
,
GoblinGoodsInfoVo
.
class
,
GoblinGoodsInfoVo
.
class
.
getSimpleName
());
List
<
GoblinGoodsInfoVo
>
spuList
=
goblinRedisUtils
.
getGoblinGoodsInfoVoList
();
if
(
null
==
spuList
||
page
>
1
)
{
// 排序 分页
Pageable
pageable
=
PageRequest
.
of
(
page
-
1
,
size
,
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createdAt"
));
query
.
with
(
pageable
);
spuList
=
mongoTemplate
.
find
(
query
,
GoblinGoodsInfoVo
.
class
,
GoblinGoodsInfoVo
.
class
.
getSimpleName
());
for
(
GoblinGoodsInfoVo
info
:
spuList
)
{
List
<
String
>
skuIdList
=
info
.
getSkuIdList
();
List
<
GoblinGoodsSkuInfoVo
>
spuSkuVoList
=
new
ArrayList
<>();
for
(
String
skuId
:
skuIdList
)
{
GoblinGoodsSkuInfoVo
skuInfoVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
spuSkuVoList
.
add
(
skuInfoVo
);
}
info
.
setGoblinOrderSkuVos
(
spuSkuVoList
);
}
if
(
page
<=
1
)
{
goblinRedisUtils
.
setGoblinGoodsInfoVoList
(
spuList
);
}
}
PageInfo
<
GoblinGoodsInfoVo
>
pageInfo
=
new
PageInfo
(
spuList
);
pageInfo
.
setTotal
(
count
);
return
ResponseDto
.
success
(
pageInfo
);
}
@Override
public
GoblinGoodsInfoVo
goodsDetail
(
String
spuId
,
String
skuId
)
{
GoblinGoodsInfoVo
goodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
spuId
);
if
(
null
!=
goodsInfoVo
)
{
Integer
buyCount
=
0
;
String
userId
=
CurrentUtil
.
getCurrentUid
();
if
(
StringUtils
.
isNotBlank
(
userId
))
{
buyCount
=
goblinRedisUtils
.
getSkuCountByUid
(
userId
,
skuId
);
}
GoblinGoodsSkuInfoVo
goodsSkuInfoVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
if
(
null
!=
goodsSkuInfoVo
&&
goodsSkuInfoVo
.
getDelFlg
().
equals
(
"0"
)
&&
goodsSkuInfoVo
.
getShelvesStatus
().
equals
(
"3"
))
{
//获取 sku 库存数量
int
stock
=
goblinRedisUtils
.
getSkuStock
(
null
,
skuId
);
log
.
info
(
"skuId:{}, 库存数量:{}"
,
skuId
,
stock
);
if
(
0
!=
goodsSkuInfoVo
.
getBuyLimit
())
{
buyCount
=
0
;
// TODO: jxl 2022/3/25 新vo处理
// goodsSkuInfoVo.setCanBuy(goodsSkuInfoVo.getBuyLimit() - buyCount);
}
else
{
// goodsSkuInfoVo.setCanBuy(-9999);
}
if
(
stock
<=
0
)
{
// goodsSkuInfoVo.setStockLess(true);
}
else
{
// goodsSkuInfoVo.setStockLess(false);
}
List
<
GoblinGoodsSkuInfoVo
>
spuSkuVoList
=
new
ArrayList
<>();
spuSkuVoList
.
add
(
goodsSkuInfoVo
);
goodsInfoVo
.
setGoblinOrderSkuVos
(
spuSkuVoList
);
}
else
{
return
null
;
}
}
else
{
return
null
;
}
return
goodsInfoVo
;
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
View file @
c46d59f9
...
@@ -1350,5 +1350,19 @@ public class GoblinRedisUtils {
...
@@ -1350,5 +1350,19 @@ public class GoblinRedisUtils {
}
}
}
}
public
List
<
GoblinGoodsInfoVo
>
getGoblinGoodsInfoVoList
()
{
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_GOODS_LIST
;
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
return
null
;
}
else
{
return
(
List
<
GoblinGoodsInfoVo
>)
obj
;
}
}
public
void
setGoblinGoodsInfoVoList
(
List
<
GoblinGoodsInfoVo
>
spuList
)
{
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_GOODS_LIST
;
redisUtil
.
set
(
redisKey
,
spuList
);
}
/* ---------------------------------------- ---------------------------------------- */
/* ---------------------------------------- ---------------------------------------- */
}
}
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