记得上下班打卡 | 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
25b14257
Commit
25b14257
authored
Aug 17, 2022
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
~api:藏品转赠+安全密码校验;
parent
6285b7e8
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
38 additions
and
42 deletions
+38
-42
GoblinQueueBizArtworkGenDto.java
...idnet/service/goblin/dto/GoblinQueueBizArtworkGenDto.java
+0
-36
GoblinUserSafeConfigDto.java
...liquidnet/service/goblin/dto/GoblinUserSafeConfigDto.java
+6
-0
db_ln_goblin_initialdata.sql
...net-service-goblin-impl/docu/db_ln_goblin_initialdata.sql
+2
-2
GoblinUserDigitalArtworkController.java
...goblin/controller/GoblinUserDigitalArtworkController.java
+12
-2
GoblinUserDigitalArtworkServiceImpl.java
...lin/service/impl/GoblinUserDigitalArtworkServiceImpl.java
+9
-0
GoblinUserSafeConfigServiceImpl.java
.../goblin/service/impl/GoblinUserSafeConfigServiceImpl.java
+7
-2
errors.properties
...-service-goblin-impl/src/main/resources/errors.properties
+2
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/GoblinQueueBizArtworkGenDto.java
deleted
100644 → 0
View file @
6285b7e8
package
com
.
liquidnet
.
service
.
goblin
.
dto
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* 购买藏品、开启盲盒后,生成藏品队列消息体
*
* @author zhanggb
* Created by IntelliJ IDEA at 2022/3/31
*/
@Data
public
class
GoblinQueueBizArtworkGenDto
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
8267639695935038399L
;
private
String
uid
;
private
String
skuId
;
private
String
orderId
;
private
Integer
source
;
private
String
fromArtId
;
private
static
final
GoblinQueueBizArtworkGenDto
obj
=
new
GoblinQueueBizArtworkGenDto
();
public
static
GoblinQueueBizArtworkGenDto
getNew
()
{
try
{
return
(
GoblinQueueBizArtworkGenDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
GoblinQueueBizArtworkGenDto
();
}
}
public
String
toJson
()
{
return
JsonUtils
.
toJson
(
this
);
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/GoblinUserSafeConfigDto.java
View file @
25b14257
...
@@ -4,8 +4,10 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
...
@@ -4,8 +4,10 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
org.springframework.util.DigestUtils
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.nio.charset.StandardCharsets
;
@ApiModel
(
value
=
"GoblinUserSafeConfigDto"
,
description
=
"NFT:用户安全配置"
)
@ApiModel
(
value
=
"GoblinUserSafeConfigDto"
,
description
=
"NFT:用户安全配置"
)
@Data
@Data
...
@@ -29,4 +31,8 @@ public class GoblinUserSafeConfigDto implements Serializable, Cloneable {
...
@@ -29,4 +31,8 @@ public class GoblinUserSafeConfigDto implements Serializable, Cloneable {
return
new
GoblinUserSafeConfigDto
();
return
new
GoblinUserSafeConfigDto
();
}
}
}
}
public
boolean
validPasswd
(
String
saltPasswd
)
{
return
this
.
passwd
.
equals
(
DigestUtils
.
md5DigestAsHex
(
saltPasswd
.
getBytes
(
StandardCharsets
.
UTF_8
)));
}
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/docu/db_ln_goblin_initialdata.sql
View file @
25b14257
...
@@ -1164,12 +1164,12 @@ create table goblin_user_safe_config
...
@@ -1164,12 +1164,12 @@ create table goblin_user_safe_config
(
(
mid
bigint
auto_increment
primary
key
,
mid
bigint
auto_increment
primary
key
,
uid
varchar
(
64
)
not
null
comment
'UID'
,
uid
varchar
(
64
)
not
null
comment
'UID'
,
p
w
sswd
varchar
(
100
)
comment
'安全密码'
,
p
a
sswd
varchar
(
100
)
comment
'安全密码'
,
state
tinyint
default
1
comment
'0-INIT,1-NORMAL,2-INVALID'
,
state
tinyint
default
1
comment
'0-INIT,1-NORMAL,2-INVALID'
,
created_at
datetime
not
null
,
created_at
datetime
not
null
,
updated_at
datetime
null
,
updated_at
datetime
null
,
comment
varchar
(
500
)
comment
varchar
(
500
)
)
engine
=
InnoDB
comment
'用户
资产
设置'
;
)
engine
=
InnoDB
comment
'用户
安全
设置'
;
create
unique
index
idx_gusc_uid
on
goblin_user_safe_config
(
uid
);
create
unique
index
idx_gusc_uid
on
goblin_user_safe_config
(
uid
);
#
-- >>------------------------------------------------------------------------------------
#
-- >>------------------------------------------------------------------------------------
#
-- >>------------------------------------------------------------------------------------
#
-- >>------------------------------------------------------------------------------------
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinUserDigitalArtworkController.java
View file @
25b14257
...
@@ -9,6 +9,7 @@ import com.liquidnet.service.base.ResponseDto;
...
@@ -9,6 +9,7 @@ import com.liquidnet.service.base.ResponseDto;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.dto.GoblinUserNftAccInfoVo
;
import
com.liquidnet.service.goblin.dto.GoblinUserNftAccInfoVo
;
import
com.liquidnet.service.goblin.dto.GoblinUserSafeConfigDto
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.service.IGoblinUserDigitalArtworkService
;
import
com.liquidnet.service.goblin.service.IGoblinUserDigitalArtworkService
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
...
@@ -19,6 +20,7 @@ import io.swagger.annotations.ApiOperation;
...
@@ -19,6 +20,7 @@ import io.swagger.annotations.ApiOperation;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -35,6 +37,8 @@ import java.time.LocalDateTime;
...
@@ -35,6 +37,8 @@ import java.time.LocalDateTime;
@RestController
@RestController
@RequestMapping
(
"artwork"
)
@RequestMapping
(
"artwork"
)
public
class
GoblinUserDigitalArtworkController
{
public
class
GoblinUserDigitalArtworkController
{
@Value
(
"${liquidnet.secret.passwd-salt}"
)
private
String
passwdSalt
;
@Autowired
@Autowired
GoblinRedisUtils
goblinRedisUtils
;
GoblinRedisUtils
goblinRedisUtils
;
@Autowired
@Autowired
...
@@ -146,13 +150,19 @@ public class GoblinUserDigitalArtworkController {
...
@@ -146,13 +150,19 @@ public class GoblinUserDigitalArtworkController {
@ApiOperationSupport
(
order
=
5
)
@ApiOperationSupport
(
order
=
5
)
@ApiOperation
(
value
=
"藏品转赠"
,
notes
=
"<br />响应【data】值描述:转赠状态[PENDING|SUCCESS]"
)
@ApiOperation
(
value
=
"藏品转赠"
,
notes
=
"<br />响应【data】值描述:转赠状态[PENDING|SUCCESS]"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"safePasswd"
,
value
=
"安全密码:MD5(******)"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"artworkId"
,
value
=
"藏品ID"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"artworkId"
,
value
=
"藏品ID"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"receiver"
,
value
=
"受赠人"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"receiver"
,
value
=
"受赠人"
),
})
})
@PostMapping
(
"transfer"
)
@PostMapping
(
"transfer"
)
public
ResponseDto
<
String
>
transfer
(
@NotBlank
(
message
=
"藏品ID不能为空"
)
@RequestParam
String
artworkId
,
public
ResponseDto
<
String
>
transfer
(
@NotBlank
(
message
=
"安全密码不能为空"
)
@RequestParam
String
safePasswd
,
@NotBlank
(
message
=
"藏品ID不能为空"
)
@RequestParam
String
artworkId
,
@NotBlank
(
message
=
"受赠人不能为空"
)
@RequestParam
String
receiver
)
{
@NotBlank
(
message
=
"受赠人不能为空"
)
@RequestParam
String
receiver
)
{
String
currentUid
=
CurrentUtil
.
getCurrentUid
();
String
currentUid
=
CurrentUtil
.
getCurrentUid
();
GoblinUserSafeConfigDto
userSafeConfigDto
=
goblinRedisUtils
.
getUserSafeConfigDto
(
currentUid
);
if
(
null
==
userSafeConfigDto
)
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140021"
));
// 未设置安全密码
if
(!
userSafeConfigDto
.
validPasswd
(
safePasswd
.
concat
(
passwdSalt
)))
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140022"
));
// 安全密码不正确
GoblinUserDigitalArtworkVo
userDigitalArtworkVo
=
goblinRedisUtils
.
getUserDigitalArtworkVo
(
artworkId
);
GoblinUserDigitalArtworkVo
userDigitalArtworkVo
=
goblinRedisUtils
.
getUserDigitalArtworkVo
(
artworkId
);
if
(
null
==
userDigitalArtworkVo
||
!
currentUid
.
equals
(
userDigitalArtworkVo
.
getUid
())
||
userDigitalArtworkVo
.
getDelFlg
().
equals
(
"1"
))
{
if
(
null
==
userDigitalArtworkVo
||
!
currentUid
.
equals
(
userDigitalArtworkVo
.
getUid
())
||
userDigitalArtworkVo
.
getDelFlg
().
equals
(
"1"
))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140105"
));
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140105"
));
...
@@ -178,6 +188,6 @@ public class GoblinUserDigitalArtworkController {
...
@@ -178,6 +188,6 @@ public class GoblinUserDigitalArtworkController {
goblinRedisUtils
.
expire
(
lockKey
,
30
);
goblinRedisUtils
.
expire
(
lockKey
,
30
);
boolean
transferRstFlg
=
goblinUserDigitalArtworkService
.
transfer
(
userDigitalArtworkVo
,
goodsSkuInfoVo
.
getRouteType
(),
receiverArr
);
boolean
transferRstFlg
=
goblinUserDigitalArtworkService
.
transfer
(
userDigitalArtworkVo
,
goodsSkuInfoVo
.
getRouteType
(),
receiverArr
);
goblinRedisUtils
.
del
(
lockKey
);
goblinRedisUtils
.
del
(
lockKey
);
return
transferRstFlg
?
ResponseDto
.
success
(
GoblinStatusConst
.
TransferState
.
SUCCESS
.
name
())
:
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140002"
));
return
transferRstFlg
?
ResponseDto
.
success
(
GoblinStatusConst
.
TransferState
.
PENDING
.
name
())
:
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140002"
));
}
}
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinUserDigitalArtworkServiceImpl.java
View file @
25b14257
...
@@ -385,6 +385,15 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
...
@@ -385,6 +385,15 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
queueUtils
.
sendMsgByRedis
(
MQConst
.
GalaxyQueue
.
JSON_NFT_TRANSFER
.
getKey
(),
JsonUtils
.
toJson
(
galaxyNftTransferReqDto
));
queueUtils
.
sendMsgByRedis
(
MQConst
.
GalaxyQueue
.
JSON_NFT_TRANSFER
.
getKey
(),
JsonUtils
.
toJson
(
galaxyNftTransferReqDto
));
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
BIZ_ARTWORK_TRANS_QUERY
.
getKey
(),
userDigitalArtworkVo
.
getTransferOrderId
().
concat
(
","
).
concat
(
String
.
valueOf
(
LocalDateTime
.
now
())));
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
BIZ_ARTWORK_TRANS_QUERY
.
getKey
(),
userDigitalArtworkVo
.
getTransferOrderId
().
concat
(
","
).
concat
(
String
.
valueOf
(
LocalDateTime
.
now
())));
// Mongo同步更新
GoblinQueueBizMongoDto
goblinQueueBizMongoDto
=
GoblinQueueBizMongoDto
.
getNew
();
goblinQueueBizMongoDto
.
setCollect
(
GoblinUserDigitalArtworkVo
.
class
.
getSimpleName
());
goblinQueueBizMongoDto
.
setColumn
(
"artworkId"
);
goblinQueueBizMongoDto
.
setBizId
(
userDigitalArtworkVo
.
getArtworkId
());
goblinQueueBizMongoDto
.
setPrefix
(
GoblinRedisConst
.
USER_DIGITAL_ARTWORK
);
goblinQueueBizMongoDto
.
setOpType
(
2
);
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
BIZ_NFT_MONGO
.
getKey
(),
goblinQueueBizMongoDto
.
toJson
());
// Mysql持久化
// Mysql持久化
LinkedList
<
String
>
toMqSqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
String
>
toMqSqls
=
CollectionUtil
.
linkedListString
();
// toMqSqls.add(SqlMapping.get("goblin_user_digital_artwork.insert"));
// toMqSqls.add(SqlMapping.get("goblin_user_digital_artwork.insert"));
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinUserSafeConfigServiceImpl.java
View file @
25b14257
...
@@ -8,13 +8,18 @@ import com.liquidnet.service.goblin.service.IGoblinUserSafeConfigService;
...
@@ -8,13 +8,18 @@ import com.liquidnet.service.goblin.service.IGoblinUserSafeConfigService;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.QueueUtils
;
import
com.liquidnet.service.goblin.util.QueueUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.DigestUtils
;
import
java.nio.charset.StandardCharsets
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.LinkedList
;
@Service
@Service
public
class
GoblinUserSafeConfigServiceImpl
implements
IGoblinUserSafeConfigService
{
public
class
GoblinUserSafeConfigServiceImpl
implements
IGoblinUserSafeConfigService
{
@Value
(
"${liquidnet.secret.passwd-salt}"
)
private
String
passwdSalt
;
@Autowired
@Autowired
private
QueueUtils
queueUtils
;
private
QueueUtils
queueUtils
;
@Autowired
@Autowired
...
@@ -23,12 +28,12 @@ public class GoblinUserSafeConfigServiceImpl implements IGoblinUserSafeConfigSer
...
@@ -23,12 +28,12 @@ public class GoblinUserSafeConfigServiceImpl implements IGoblinUserSafeConfigSer
@Override
@Override
public
boolean
initSafePasswd
(
String
passwd
,
String
uid
)
{
public
boolean
initSafePasswd
(
String
passwd
,
String
uid
)
{
GoblinUserSafeConfigDto
userSafeConfigDto
=
GoblinUserSafeConfigDto
.
getNew
();
GoblinUserSafeConfigDto
userSafeConfigDto
=
GoblinUserSafeConfigDto
.
getNew
();
userSafeConfigDto
.
setPasswd
(
passwd
);
userSafeConfigDto
.
setPasswd
(
DigestUtils
.
md5DigestAsHex
(
passwd
.
concat
(
passwdSalt
).
getBytes
(
StandardCharsets
.
UTF_8
))
);
if
(
goblinRedisUtils
.
setUserSafeConfigDto
(
uid
,
userSafeConfigDto
))
{
if
(
goblinRedisUtils
.
setUserSafeConfigDto
(
uid
,
userSafeConfigDto
))
{
LinkedList
<
String
>
toMqSqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
String
>
toMqSqls
=
CollectionUtil
.
linkedListString
();
toMqSqls
.
add
(
SqlMapping
.
get
(
"goblin_user_safe_config.add_passwd"
));
toMqSqls
.
add
(
SqlMapping
.
get
(
"goblin_user_safe_config.add_passwd"
));
LinkedList
<
Object
[]>
initUserSafeConfigObjs
=
CollectionUtil
.
linkedListObjectArr
();
LinkedList
<
Object
[]>
initUserSafeConfigObjs
=
CollectionUtil
.
linkedListObjectArr
();
initUserSafeConfigObjs
.
add
(
new
Object
[]{
uid
,
passwd
,
LocalDateTime
.
now
()});
initUserSafeConfigObjs
.
add
(
new
Object
[]{
uid
,
userSafeConfigDto
.
getPasswd
()
,
LocalDateTime
.
now
()});
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
SQL_GOODS
.
getKey
(),
SqlMapping
.
gets
(
toMqSqls
,
initUserSafeConfigObjs
));
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
SQL_GOODS
.
getKey
(),
SqlMapping
.
gets
(
toMqSqls
,
initUserSafeConfigObjs
));
return
true
;
return
true
;
}
}
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/resources/errors.properties
View file @
25b14257
...
@@ -24,6 +24,8 @@
...
@@ -24,6 +24,8 @@
140018
=
\u
9A8C
\u
8BC1
\u7801\u
5DF2
\u5931\u6548
140018
=
\u
9A8C
\u
8BC1
\u7801\u
5DF2
\u5931\u6548
140019
=
\u
9A8C
\u
8BC1
\u7801\u
4E0D
\u
6B63
\u
786E
140019
=
\u
9A8C
\u
8BC1
\u7801\u
4E0D
\u
6B63
\u
786E
140020
=
\u
60A8
\u
5DF2
\u
8BBE
\u
7F6E
\u
8FC7
\u
5B89
\u5168\u
5BC6
\u7801
140020
=
\u
60A8
\u
5DF2
\u
8BBE
\u
7F6E
\u
8FC7
\u
5B89
\u5168\u
5BC6
\u7801
140021
=
\u
8BF7
\u5148\u
8BBE
\u
7F6E
\u
5B89
\u5168\u
5BC6
\u7801
140022
=
\u
8BF7
\u
8F93
\u5165\u
6B63
\u
786E
\u7684\u
5B89
\u5168\u
5BC6
\u7801
...
...
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