Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fzm-joying
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
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
lei
fzm-joying
Commits
d65ecdb6
Commit
d65ecdb6
authored
Jul 21, 2021
by
tangtuo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
纪念版nft相关接口编写
parent
087afef8
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
132 additions
and
5 deletions
+132
-5
CommemorateNftVo.java
.../main/java/com/fzm/common/entity/vo/CommemorateNftVo.java
+64
-0
NftCertificateVo.java
.../main/java/com/fzm/common/entity/vo/NftCertificateVo.java
+1
-1
UserService.java
...mon/src/main/java/com/fzm/common/service/UserService.java
+8
-1
UserServiceImpl.java
...ain/java/com/fzm/common/service/impl/UserServiceImpl.java
+7
-0
CommemorateNftController.java
...a/com/fzm/portal/controller/CommemorateNftController.java
+51
-2
NftController.java
...rc/main/java/com/fzm/portal/controller/NftController.java
+1
-1
No files found.
joying-common/src/main/java/com/fzm/common/entity/vo/CommemorateNftVo.java
0 → 100644
View file @
d65ecdb6
package
com
.
fzm
.
common
.
entity
.
vo
;
import
cn.hutool.core.date.DateUtil
;
import
com.fzm.common.entity.CommemorateNft
;
import
com.fzm.common.entity.Nft
;
import
com.fzm.common.entity.User
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author tangtuo
* @date 2021/7/1 10:35
*/
@Data
public
class
CommemorateNftVo
{
@ApiModelProperty
(
"主键"
)
private
Integer
id
;
@ApiModelProperty
(
"名称"
)
private
String
name
;
@ApiModelProperty
(
"发行人"
)
private
String
publisher
;
@ApiModelProperty
(
"头像"
)
private
String
avatar
;
@ApiModelProperty
(
"钱包地址"
)
private
String
publishAddress
;
@ApiModelProperty
(
"发行个数"
)
private
Integer
publishCount
;
@ApiModelProperty
(
"已领取个数"
)
private
Integer
receiveCount
;
@ApiModelProperty
(
"发行时间"
)
private
Date
publishTime
;
@ApiModelProperty
(
"简介"
)
private
String
synopsis
;
@ApiModelProperty
(
"nft哈希"
)
private
String
nftHash
;
@ApiModelProperty
(
"0-当前用户已领取 1-纪念版nft还未领取完 2-纪念版nft已领取完"
)
private
Integer
status
;
public
CommemorateNftVo
(
CommemorateNft
nft
,
User
user
)
{
this
.
id
=
nft
.
getId
();
this
.
name
=
nft
.
getName
();
this
.
avatar
=
user
.
getAvatar
();
this
.
publishAddress
=
nft
.
getPublishAddress
();
this
.
publishCount
=
nft
.
getCount
();
this
.
publisher
=
user
.
getNickname
();
this
.
nftHash
=
nft
.
getNftHash
();
this
.
publishTime
=
nft
.
getPublishTime
();
this
.
synopsis
=
nft
.
getSynopsis
();
}
}
joying-common/src/main/java/com/fzm/common/entity/vo/NftCertificateVo.java
View file @
d65ecdb6
...
@@ -52,7 +52,7 @@ public class NftCertificateVo {
...
@@ -52,7 +52,7 @@ public class NftCertificateVo {
this
.
id
=
nft
.
getId
();
this
.
id
=
nft
.
getId
();
this
.
publisher
=
user
.
getNickname
();
this
.
publisher
=
user
.
getNickname
();
this
.
publishTime
=
nft
.
getPublishTime
();
this
.
publishTime
=
nft
.
getPublishTime
();
this
.
wallet
=
user
.
getWallet
();
this
.
wallet
=
nft
.
getPublishAddress
();
this
.
qrCode
=
qrCode
;
this
.
qrCode
=
qrCode
;
this
.
examineStatus
=
0
;
this
.
examineStatus
=
0
;
this
.
copyrightStatus
=
0
;
this
.
copyrightStatus
=
0
;
...
...
joying-common/src/main/java/com/fzm/common/service/UserService.java
View file @
d65ecdb6
...
@@ -61,7 +61,6 @@ public interface UserService extends IService<User> {
...
@@ -61,7 +61,6 @@ public interface UserService extends IService<User> {
UserStatisticVo
getStatistic
();
UserStatisticVo
getStatistic
();
/**
/**
*
* @param telephone
* @param telephone
* @param nickname
* @param nickname
* @param authType
* @param authType
...
@@ -70,4 +69,12 @@ public interface UserService extends IService<User> {
...
@@ -70,4 +69,12 @@ public interface UserService extends IService<User> {
* @return
* @return
*/
*/
List
<
UserListVo
>
list
(
String
telephone
,
String
nickname
,
Integer
authType
,
String
start
,
String
end
);
List
<
UserListVo
>
list
(
String
telephone
,
String
nickname
,
Integer
authType
,
String
start
,
String
end
);
/**
* 根据钱包地址查询用户信息
*
* @param publishAddress
* @return
*/
User
getUserByWallet
(
String
publishAddress
);
}
}
joying-common/src/main/java/com/fzm/common/service/impl/UserServiceImpl.java
View file @
d65ecdb6
...
@@ -193,6 +193,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
...
@@ -193,6 +193,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
}
}
@Override
@Override
public
User
getUserByWallet
(
String
publishAddress
)
{
QueryWrapper
<
User
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"wallet"
,
publishAddress
);
return
getOne
(
queryWrapper
);
}
@Override
public
List
<
UserListVo
>
list
(
String
telephone
,
String
nickname
,
Integer
authType
,
String
start
,
String
end
)
{
public
List
<
UserListVo
>
list
(
String
telephone
,
String
nickname
,
Integer
authType
,
String
start
,
String
end
)
{
DateTime
startDate
=
null
;
DateTime
startDate
=
null
;
DateTime
endDate
=
null
;
DateTime
endDate
=
null
;
...
...
joying-portal/src/main/java/com/fzm/portal/controller/CommemorateNftController.java
View file @
d65ecdb6
...
@@ -2,19 +2,25 @@ package com.fzm.portal.controller;
...
@@ -2,19 +2,25 @@ package com.fzm.portal.controller;
import
cn.hutool.crypto.SecureUtil
;
import
cn.hutool.crypto.SecureUtil
;
import
com.fzm.common.annotation.Authentication
;
import
com.fzm.common.annotation.Authentication
;
import
com.fzm.common.constant.RedisConstant
;
import
com.fzm.common.entity.CommemorateNft
;
import
com.fzm.common.entity.CommemorateNft
;
import
com.fzm.common.entity.Label
;
import
com.fzm.common.entity.Label
;
import
com.fzm.common.entity.User
;
import
com.fzm.common.entity.User
;
import
com.fzm.common.entity.vo.CommemorateNftVo
;
import
com.fzm.common.enums.ResultCode
;
import
com.fzm.common.enums.ResultCode
;
import
com.fzm.common.exception.GlobalException
;
import
com.fzm.common.exception.GlobalException
;
import
com.fzm.common.model.ResponseModel
;
import
com.fzm.common.model.ResponseModel
;
import
com.fzm.common.service.CommemorateNftService
;
import
com.fzm.common.service.CommemorateNftService
;
import
com.fzm.common.service.LabelService
;
import
com.fzm.common.service.LabelService
;
import
com.fzm.common.service.UserService
;
import
com.fzm.common.service.UserService
;
import
com.fzm.common.utils.JwtUtil
;
import
com.fzm.common.utils.OssUtil
;
import
com.fzm.common.utils.OssUtil
;
import
com.fzm.common.utils.RedisUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
io.swagger.annotations.ApiParam
;
import
org.redisson.api.RSemaphore
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
...
@@ -37,6 +43,15 @@ public class CommemorateNftController {
...
@@ -37,6 +43,15 @@ public class CommemorateNftController {
@Resource
@Resource
private
OssUtil
ossUtil
;
private
OssUtil
ossUtil
;
@Resource
private
UserService
userService
;
@Resource
private
RedissonClient
redisson
;
@Resource
private
RedisUtil
redisUtil
;
@Authentication
@Authentication
@PostMapping
(
"/publish"
)
@PostMapping
(
"/publish"
)
@ApiOperation
(
value
=
"发行纪念版nft"
,
notes
=
"返回发行成功的数量"
)
@ApiOperation
(
value
=
"发行纪念版nft"
,
notes
=
"返回发行成功的数量"
)
...
@@ -65,7 +80,41 @@ public class CommemorateNftController {
...
@@ -65,7 +80,41 @@ public class CommemorateNftController {
@PostMapping
(
"/receive"
)
@PostMapping
(
"/receive"
)
@ApiOperation
(
value
=
"领取纪念版nft"
)
@ApiOperation
(
value
=
"领取纪念版nft"
)
public
ResponseModel
<
Boolean
>
receive
(
@RequestParam
Integer
id
)
{
public
ResponseModel
<
Boolean
>
receive
(
@RequestParam
Integer
id
)
{
Boolean
result
=
commemorateNftService
.
receive
(
id
);
Boolean
result
=
commemorateNftService
.
receive
(
id
);
return
ResponseModel
.
success
();
return
ResponseModel
.
success
(
result
);
}
@Authentication
@GetMapping
(
"/get/{id}"
)
@ApiOperation
(
value
=
"纪念版nft详情页"
)
public
ResponseModel
<
CommemorateNftVo
>
getById
(
@PathVariable
Integer
id
,
@RequestHeader
String
Authorization
)
{
CommemorateNft
nft
=
commemorateNftService
.
getById
(
id
);
if
(
nft
==
null
)
{
throw
GlobalException
.
newException
(
ResultCode
.
DATA_ERROR
,
"此纪念版nft已下架"
);
}
User
user
=
userService
.
getById
(
nft
.
getUserId
());
CommemorateNftVo
commemorateNftVo
=
new
CommemorateNftVo
(
nft
,
user
);
RSemaphore
semaphore
=
redisson
.
getSemaphore
(
RedisConstant
.
COMMEMORATE_NFT_PREFIX
+
id
);
int
permits
=
semaphore
.
availablePermits
();
commemorateNftVo
.
setReceiveCount
(
nft
.
getCount
()
-
permits
);
Boolean
receive
=
redisUtil
.
sIsMember
(
RedisConstant
.
COMMEMORATE_NFT_MEMBERS_PREFIX
+
id
,
JwtUtil
.
getUserIdFromToken
(
Authorization
).
toString
());
// 当前用户已领取
if
(
receive
)
{
commemorateNftVo
.
setStatus
(
0
);
}
else
{
// 未领取完毕
if
(
commemorateNftVo
.
getPublishCount
()
>
commemorateNftVo
.
getReceiveCount
())
{
commemorateNftVo
.
setStatus
(
1
);
}
else
{
commemorateNftVo
.
setStatus
(
2
);
}
}
return
ResponseModel
.
success
(
commemorateNftVo
);
}
@GetMapping
(
"/list"
)
@ApiOperation
(
value
=
"首页banner页(纪念版nft列表)"
)
public
ResponseModel
<
List
<
CommemorateNft
>>
list
()
{
return
ResponseModel
.
success
(
commemorateNftService
.
list
());
}
}
}
}
joying-portal/src/main/java/com/fzm/portal/controller/NftController.java
View file @
d65ecdb6
...
@@ -172,7 +172,7 @@ public class NftController {
...
@@ -172,7 +172,7 @@ public class NftController {
if
(!
nft
.
getUserId
().
equals
(
userId
))
{
if
(!
nft
.
getUserId
().
equals
(
userId
))
{
throw
GlobalException
.
newException
(
ResultCode
.
FORBIDDEN
,
"您无权查看别人的nft证书"
);
throw
GlobalException
.
newException
(
ResultCode
.
FORBIDDEN
,
"您无权查看别人的nft证书"
);
}
}
User
user
=
userService
.
get
ById
(
userId
);
User
user
=
userService
.
get
UserByWallet
(
nft
.
getPublishAddress
()
);
String
qrCode
=
QRCodeUtil
.
encode
(
PATH
,
null
,
false
);
String
qrCode
=
QRCodeUtil
.
encode
(
PATH
,
null
,
false
);
NftCertificateVo
vo
=
new
NftCertificateVo
(
nft
,
user
,
qrCode
);
NftCertificateVo
vo
=
new
NftCertificateVo
(
nft
,
user
,
qrCode
);
return
ResponseModel
.
success
(
vo
);
return
ResponseModel
.
success
(
vo
);
...
...
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