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
83017096
Commit
83017096
authored
Jan 04, 2022
by
tangtuo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改生产环境配置
parent
2caa00b4
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
136 additions
and
49 deletions
+136
-49
CopyrightLister.java
...src/main/java/com/fzm/admin/listener/CopyrightLister.java
+39
-16
application-local.yml
joying-admin/src/main/resources/application-local.yml
+3
-3
application-prod.yml
joying-admin/src/main/resources/application-prod.yml
+15
-14
application.yml
joying-admin/src/main/resources/application.yml
+1
-1
RabbitMQConfig.java
...n/src/main/java/com/fzm/common/config/RabbitMQConfig.java
+45
-0
EvidenceHashMessage.java
...n/java/com/fzm/common/entity/dto/EvidenceHashMessage.java
+18
-0
NftVo.java
...-common/src/main/java/com/fzm/common/entity/vo/NftVo.java
+1
-2
application-prod.yml
joying-portal/src/main/resources/application-prod.yml
+14
-13
No files found.
joying-admin/src/main/java/com/fzm/admin/listener/CopyrightLister.java
View file @
83017096
...
...
@@ -10,6 +10,7 @@ import com.fzm.common.entity.CopyrightApply;
import
com.fzm.common.entity.Nft
;
import
com.fzm.common.entity.dto.CopyrightQueryRequest
;
import
com.fzm.common.entity.dto.CopyrightQueryResponse
;
import
com.fzm.common.entity.dto.EvidenceHashMessage
;
import
com.fzm.common.entity.vo.NftVo
;
import
com.fzm.common.enums.CopyrightApplyState
;
import
com.fzm.common.properties.CopyrightProperties
;
...
...
@@ -118,12 +119,16 @@ public class CopyrightLister {
log
.
info
(
"追加tokenInfo, 新生成后的tokenInfo为: {}"
,
newTokenInfo
);
String
hash
=
paraChainClient
.
evmSetTokenInfo
(
abi
,
contractAddr
,
0
,
nft
.
getTokenId
(),
newTokenInfo
,
nft
.
getPublishAddress
(),
null
,
true
);
if
(
StringUtils
.
isBlank
(
hash
))
{
log
.
error
(
"nft追加tokenInfo失败,当前流水号为: 【{}】
"
,
serial_code
);
log
.
error
(
"nft追加tokenInfo失败,当前流水号为: 【{}】
,交易哈希:【{}】"
,
serial_code
,
hash
);
rabbitTemplate
.
convertAndSend
(
RabbitMQConfig
.
COPYRIGHT_DIRECT
,
"copyright.apply"
,
serial_code
);
return
;
}
String
realTxHash
=
paraChainClient
.
getRealTxHashFromGrp
(
hash
);
copyrightApply
.
setEvidenceHash
(
realTxHash
);
// 发送交易hash到死信队列,5秒后查询真实哈希,然后更新存证hash
EvidenceHashMessage
msg
=
new
EvidenceHashMessage
(
serial_code
,
hash
);
rabbitTemplate
.
convertAndSend
(
RabbitMQConfig
.
COPYRIGHT_DIRECT
,
"evidence.hash.query"
,
msg
);
// String realTxHash = paraChainClient.getRealTxHashFromGrp(hash);
// log.info("真实哈希为: {}", realTxHash);
// copyrightApply.setEvidenceHash(realTxHash);
}
else
{
// 审核失败
copyrightApply
.
setRegisterState
(
CopyrightApplyState
.
FAILED
.
getCode
());
...
...
@@ -140,6 +145,37 @@ public class CopyrightLister {
}
/**
* 更新存证hash
*/
@RabbitListener
(
queues
=
RabbitMQConfig
.
EVIDENCE_HASH_QUEUE
)
public
void
listenEvidenceHash
(
EvidenceHashMessage
evidenceHashMessage
,
Message
message
,
Channel
channel
)
throws
IOException
{
long
deliveryTag
=
message
.
getMessageProperties
().
getDeliveryTag
();
try
{
String
hash
=
evidenceHashMessage
.
getHash
();
String
serial_code
=
evidenceHashMessage
.
getSerial_code
();
String
realTxHash
=
paraChainClient
.
getRealTxHashFromGrp
(
hash
);
if
(
StringUtils
.
isBlank
(
realTxHash
))
{
log
.
error
(
"存证hash查询为空, 交易hash为: {}, 流水号为: {}"
,
hash
,
serial_code
);
// 查询失败,拒绝签收
channel
.
basicReject
(
deliveryTag
,
true
);
return
;
}
CopyrightApply
apply
=
copyrightApplyService
.
getBySerialNum
(
serial_code
);
apply
.
setEvidenceHash
(
realTxHash
);
copyrightApplyService
.
updateById
(
apply
);
// 手动签收
channel
.
basicAck
(
deliveryTag
,
false
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
// 发生异常, 拒收消息
channel
.
basicReject
(
deliveryTag
,
true
);
}
}
private
TreeMap
<
String
,
String
>
beanToMap
(
CopyrightQueryRequest
request
,
String
app_secret
)
{
TreeMap
<
String
,
String
>
map
=
JSONUtil
.
toBean
(
JSONUtil
.
toJsonStr
(
request
),
new
TypeReference
<
TreeMap
<
String
,
String
>>()
{
},
true
);
...
...
@@ -176,18 +212,5 @@ public class CopyrightLister {
return
stringBuilder
.
deleteCharAt
(
stringBuilder
.
length
()
-
1
).
toString
();
}
public
static
void
main
(
String
[]
args
)
{
// String param = " {\"charset\":\"utf-8\",\"biz_content\":\"{\\\"serial_code\\\":\\\"21123030879\\\"}\",\"sign\":\"db432c9e6bc9d16a1e051f093d58ee33\",\"version\":\"1.0\",\"app_id\":\"289391457858\",\"sign_type\":\"md5\",\"timestamp\":\"2021-12-30 16:00:21\"}";
// String response = HttpUtil.post("https://p.yareiot.com/ccct/api/copyright/query", param, 10000);
// System.out.println(response);
String
str
=
"{\"success\":true,\"message\":\"查询成功\",\"code\":200,\"timestamp\":\"2021-12-31 17:26:44\",\"remark\":null,\"certificate\":null,\"sign\":\"eed26cc1a9d09cabe5ef1c984c8365d1\",\"copyright_detail\":{\"nature_code\":1,\"nature_desc\":\"\",\"nature_name\":null,\"end_time\":\"2021-12-16\",\"end_address\":\"上海市上海市\",\"works_desc\":\"哈哈哈哈哈哈\",\"works_create_desc\":\"哈哈哈哈哈哈哈\",\"publish_status\":1,\"publish_time\":null,\"publish_address\":null,\"agency_photo\":null,\"works_name\":\"依然范特西\",\"works_type_code\":3,\"works_type_name\":null,\"works_type_desc\":\"\",\"rights_affilia_code\":1,\"rights_affilia_name\":null,\"affilia_photo\":\"\",\"gain_code\":null,\"gain_name\":null,\"gain_desc\":null,\"geren_uname\":null,\"geren_uxname\":null,\"geren_uxname_type\":null,\"geren_uxname_type_name\":null,\"gain_photo\":\"\",\"author_photo\":\"\",\"entrust_photo\":null,\"rights_desc\":\"发版权、署名权、修改权、保护作品完整权、复制权、发行权、出租权、展览权、表演权、放映权、广播权、信息网络传播权、摄制权、改编权、翻译权、汇编权、其他\",\"other_photo\":\"\",\"rights_guarantee_photo\":\"https://test-nft.oss-cn-hangzhou.aliyuncs.com/20211230/9d623f3c8c94458cad029b0881238231/HupuBBS_211230152310-1242822577.png\",\"is_grade\":0,\"cooperator\":null,\"works_files\":[{\"file_name\":\"shareSongImage_temp_1630212140166.jpg\",\"file\":\"https://test-nft.oss-cn-hangzhou.aliyuncs.com/20211230/fb8e84e816e346d2b41e488224b292d0/shareSongImage_temp_1630212140166.jpg\",\"file_format\":\"jpg\",\"file_size\":\"19.21KB\",\"file_token\":\"2c06dde6f97213c133380199fec3eb33\",\"keywords\":null}],\"owner_list\":[{\"owner_name\":\"金庸\",\"owner_type_code\":2,\"document_type_code\":2,\"document_code\":\"34783huirh43i4834\",\"other_document_code\":null,\"document_image\":null,\"other_start_date\":null,\"other_end_date\":\"2021-12-22\",\"is_forever\":1,\"valid_start_date\":null,\"valid_end_date\":null,\"handheld_photo\":\"\",\"front_photo\":\"\",\"back_photo\":\"\",\"company_photo\":\"https://test-nft.oss-cn-hangzhou.aliyuncs.com/20211224/15489ec28bf241a6bae28f7f35cffb1d/微信图片_202102.jpg\",\"prove_photo\":\"https://test-nft.oss-cn-hangzhou.aliyuncs.com/20211224/cfc47db66eac46559ddf3c6583006d34/微信图片_20210802152956.jpg\",\"province\":\"天津市\",\"province_id\":\"120000\",\"city\":\"天津市\",\"city_id\":\"120100\",\"address\":\"天津市天津市\",\"owner_sign_name\":\"\",\"owner_type_name\":null,\"document_type_name\":null},{\"owner_name\":\"古龙\",\"owner_type_code\":1,\"document_type_code\":1,\"document_code\":\"45164646464694946\",\"other_document_code\":null,\"document_image\":null,\"other_start_date\":null,\"other_end_date\":\"2021-12-21\",\"is_forever\":1,\"valid_start_date\":null,\"valid_end_date\":null,\"handheld_photo\":\"https://test-nft.oss-cn-hangzhou.aliyuncs.com/20211230/4fb6881790c74d9c8de13581b0c46047/timg_image&quality=80&size=b9999_10000&sec=1588500161897&di=fcfcda647d253ea2fb5b858719070998&imgtype=0&src=http%3A%2F%2Fimg.jpg\",\"front_photo\":\"https://test-nft.oss-cn-hangzhou.aliyuncs.com/20211230/8d627d66ad4743b698b7a11df312f8cc/-624ec7938a1e0c8a.png\",\"back_photo\":\"https://test-nft.oss-cn-hangzhou.aliyuncs.com/20211230/1b4a307e7cb2411da809686117196ae6/-624ec7938a1e0c8a.png\",\"company_photo\":\"\",\"prove_photo\":\"\",\"province\":\"天津市\",\"province_id\":\"120000\",\"city\":\"天津市\",\"city_id\":\"120100\",\"address\":\"天津市天津市\",\"owner_sign_name\":\"\",\"owner_type_name\":null,\"document_type_name\":null}]},\"audit_status\":5,\"apply_time\":\"2021-12-30\"}"
;
// CopyrightQueryResponse copyrightResponse = JSONUtil.toBean(str, new TypeReference<CopyrightQueryResponse>() {
// },true);
CopyrightQueryResponse
copyrightQueryResponse
=
JsonUtil
.
toObject
(
str
,
CopyrightQueryResponse
.
class
);
//CopyrightQueryResponse copyrightResponse = JSONObject.parseObject(str, CopyrightQueryResponse.class);
System
.
out
.
println
(
copyrightQueryResponse
);
}
}
joying-admin/src/main/resources/application-local.yml
View file @
83017096
...
...
@@ -4,9 +4,9 @@ spring:
main
:
allow-bean-definition-overriding
:
true
datasource
:
url
:
jdbc:mysql://1
72.16.101.135:3306/joying_dev?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
url
:
jdbc:mysql://1
46.56.197.42:3306/joying?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&tinyInt1isBit=false
username
:
root
password
:
Joying@123456
password
:
fzm_db_01@TEST
platform
:
mysql
type
:
com.alibaba.druid.pool.DruidDataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
...
...
@@ -48,7 +48,7 @@ spring:
# 缓存失效时间
time-to-live
:
86400000
rabbitmq
:
host
:
1
0.0.0.81
host
:
1
72.16.101.135
port
:
5672
username
:
admin
password
:
admin
...
...
joying-admin/src/main/resources/application-prod.yml
View file @
83017096
...
...
@@ -4,9 +4,9 @@ spring:
main
:
allow-bean-definition-overriding
:
true
datasource
:
url
:
jdbc:mysql://
rm-uf652555t10p7cj27.mysql.rds.aliyuncs.com:3306/joying?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
username
:
inmvo_china
password
:
U2FsdGVkX19J0YHIUWXWgPh1C5R0=
url
:
jdbc:mysql://
192.168.0.196:3306/joying?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&tinyInt1isBit=false
username
:
root
password
:
inmvo@!2021
platform
:
mysql
type
:
com.alibaba.druid.pool.DruidDataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
...
...
@@ -27,9 +27,10 @@ spring:
connection-properties
:
druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
useGlobalDataSourceStat
:
true
redis
:
host
:
r-uf61gaz5hcnys2gbdo.redis.rds.aliyuncs.com
database
:
2
host
:
192.168.0.198
port
:
6379
password
:
U2FsdGVkX19J0YHIUWXWgPh1C5R0=
password
:
inmvo@!2021
lettuce
:
pool
:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
...
...
@@ -47,7 +48,7 @@ spring:
# 缓存失效时间
time-to-live
:
86400000
rabbitmq
:
host
:
1
23.60.58.16
host
:
1
92.168.0.11
port
:
5672
username
:
admin
password
:
admin
...
...
@@ -73,14 +74,14 @@ swagger:
chain
:
para
:
rpc-url
:
http://
47.75.126.72
:8901
withhold
-addr
:
1Ae6FfgdYJn6LLaqDoRjwga3j4TTmMq3t7
withhold-key
:
0x
a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
t
itle
:
user.p.FilmChain.
admin
:
1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
admin-key
:
0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
c
ontract-name
:
user.evm.0x1adc08f04fbc0cda9fb45a6b36b317d4fed9715f68314b754ce1e22ea681cd28
c
ontract-address
:
1JoYQKtT6PwtfZWqTFPPdAksQ7jB2JRAPw
rpc-url
:
http://
119.8.39.159
:8901
withhold
:
1Ae6FfgdYJn6LLaqDoRjwga3j4TTmMq3t7
withhold-key
:
a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
t
oken-manager
:
1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
token-manager-key
:
0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title
:
user.p.FILMCHAIN.
c
Name
:
user.p.FILMCHAIN.user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4
c
Addr
:
1MHibNozeurswCpinxR9md147dYUUG3vRN
copyright
:
...
...
joying-admin/src/main/resources/application.yml
View file @
83017096
spring
:
profiles
:
active
:
nj
active
:
local
application
:
name
:
ly-admin
...
...
joying-common/src/main/java/com/fzm/common/config/RabbitMQConfig.java
View file @
83017096
...
...
@@ -22,6 +22,11 @@ public class RabbitMQConfig {
public
static
final
String
DEAD_LETTER_QUEUE
=
"dl.queue"
;
public
static
final
String
EVIDENCE_HASH_QUEUE
=
"evidence.hash.queue"
;
public
static
final
String
EVIDENCE_DEAD_LETTER_QUEUE
=
"evidence.dl.queue"
;
/**
* 定义直连交换机copyright.direct
*
...
...
@@ -62,6 +67,7 @@ public class RabbitMQConfig {
public
Queue
dlQueue
()
{
return
QueueBuilder
.
durable
(
DEAD_LETTER_QUEUE
)
.
ttl
(
1000
*
60
*
60
*
6
)
//.ttl(1000 * 60 * 2) // 测试环境
.
deadLetterExchange
(
DEAD_LETTER_DIRECT
)
.
deadLetterRoutingKey
(
"copyright.notify"
)
.
build
();
...
...
@@ -77,6 +83,45 @@ public class RabbitMQConfig {
return
BindingBuilder
.
bind
(
copyrightQueue
()).
to
(
dlDirect
()).
with
(
"copyright.notify"
);
}
/**
* 用户追加tokenInfo时,通过evmSetTokenInfo()方法得到交易hash,然后通过getRealTxHashFromGrp()得到真实哈希,
* 但是需要阻塞3秒左右才能查到真实哈希,所以这里使用死信加延时队列
* <p>
* 存放交易哈希的队列,用户监听这个队列
*
* @return
*/
@Bean
public
Queue
evidenceHashQueue
()
{
return
new
Queue
(
EVIDENCE_HASH_QUEUE
,
true
);
}
/**
* 定义存放交易哈希的死信队列,这个队列没有监听者,消息过期后会路由到 EVIDENCE_HASH_QUEUE 这个队列
*
* @return
*/
@Bean
public
Queue
evidenceDlQueue
()
{
return
QueueBuilder
.
durable
(
EVIDENCE_DEAD_LETTER_QUEUE
)
.
ttl
(
1000
*
10
)
.
deadLetterExchange
(
DEAD_LETTER_DIRECT
)
.
deadLetterRoutingKey
(
"evidence.hash.query"
)
.
build
();
}
@Bean
public
Binding
evidenceHashBinding
()
{
return
BindingBuilder
.
bind
(
evidenceDlQueue
()).
to
(
copyrightDirect
()).
with
(
"evidence.hash.query"
);
}
@Bean
public
Binding
evidenceDlBinding
()
{
return
BindingBuilder
.
bind
(
evidenceHashQueue
()).
to
(
dlDirect
()).
with
(
"evidence.hash.query"
);
}
@Bean
public
MessageConverter
messageConverter
()
{
return
new
Jackson2JsonMessageConverter
();
...
...
joying-common/src/main/java/com/fzm/common/entity/dto/EvidenceHashMessage.java
0 → 100644
View file @
83017096
package
com
.
fzm
.
common
.
entity
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tangtuo
* @date 2022/1/4 17:17
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
EvidenceHashMessage
{
private
String
serial_code
;
private
String
hash
;
}
joying-common/src/main/java/com/fzm/common/entity/vo/NftVo.java
View file @
83017096
...
...
@@ -92,7 +92,6 @@ public class NftVo {
private
Date
evidenceTime
;
public
Copyright
(
CopyrightVo
copyrightVo
,
Date
evidenceTime
)
{
this
.
registerCode
=
copyrightVo
.
getRegisterCode
();
this
.
opusName
=
copyrightVo
.
getOpusName
();
...
...
@@ -116,7 +115,7 @@ public class NftVo {
this
.
nftHash
=
nft
.
getNftHash
();
this
.
fileHash
=
nft
.
getFileHash
();
this
.
evidenceTime
=
nft
.
getPublishTime
();
this
.
copyright
=
copyrightVo
==
null
?
n
ew
Copyright
()
:
new
Copyright
(
copyrightVo
,
nft
.
getPublishTime
());
this
.
copyright
=
copyrightVo
==
null
?
n
ull
:
new
Copyright
(
copyrightVo
,
nft
.
getPublishTime
());
}
}
joying-portal/src/main/resources/application-prod.yml
View file @
83017096
...
...
@@ -4,9 +4,9 @@ spring:
main
:
allow-bean-definition-overriding
:
true
datasource
:
url
:
jdbc:mysql://
rm-uf652555t10p7cj27.mysql.rds.aliyuncs.com:3306/joying?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
username
:
inmvo_china
password
:
U2FsdGVkX19J0YHIUWXWgPh1C5R0=
url
:
jdbc:mysql://
192.168.0.196:3306/joying?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&tinyInt1isBit=false
username
:
root
password
:
inmvo@!2021
platform
:
mysql
type
:
com.alibaba.druid.pool.DruidDataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
...
...
@@ -27,9 +27,10 @@ spring:
connection-properties
:
druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
useGlobalDataSourceStat
:
true
redis
:
host
:
r-uf61gaz5hcnys2gbdo.redis.rds.aliyuncs.com
database
:
2
host
:
192.168.0.198
port
:
6379
password
:
U2FsdGVkX19J0YHIUWXWgPh1C5R0=
password
:
inmvo@!2021
lettuce
:
pool
:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
...
...
@@ -77,14 +78,14 @@ sms:
chain
:
para
:
rpc-url
:
http://
47.75.126.72
:8901
withhold
-addr
:
1Ae6FfgdYJn6LLaqDoRjwga3j4TTmMq3t7
withhold-key
:
0x
a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
t
itle
:
user.p.FilmChain.
admin
:
1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
admin-key
:
0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
c
ontract-name
:
user.evm.0x1adc08f04fbc0cda9fb45a6b36b317d4fed9715f68314b754ce1e22ea681cd28
c
ontract-address
:
1JoYQKtT6PwtfZWqTFPPdAksQ7jB2JRAPw
rpc-url
:
http://
119.8.39.159
:8901
withhold
:
1Ae6FfgdYJn6LLaqDoRjwga3j4TTmMq3t7
withhold-key
:
a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
t
oken-manager
:
1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
token-manager-key
:
0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title
:
user.p.FILMCHAIN.
c
Name
:
user.p.FILMCHAIN.user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4
c
Addr
:
1MHibNozeurswCpinxR9md147dYUUG3vRN
huaweiyun
:
...
...
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