Commit 83017096 authored by tangtuo's avatar tangtuo

修改生产环境配置

parent 2caa00b4
......@@ -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);
}
}
......@@ -4,9 +4,9 @@ spring:
main:
allow-bean-definition-overriding: true
datasource:
url: jdbc:mysql://172.16.101.135:3306/joying_dev?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
url: jdbc:mysql://146.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: 10.0.0.81
host: 172.16.101.135
port: 5672
username: admin
password: admin
......
......@@ -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: 123.60.58.16
host: 192.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: 0xa4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
title: user.p.FilmChain.
admin: 1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
admin-key: 0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
contract-name: user.evm.0x1adc08f04fbc0cda9fb45a6b36b317d4fed9715f68314b754ce1e22ea681cd28
contract-address: 1JoYQKtT6PwtfZWqTFPPdAksQ7jB2JRAPw
rpc-url: http://119.8.39.159:8901
withhold: 1Ae6FfgdYJn6LLaqDoRjwga3j4TTmMq3t7
withhold-key: a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
token-manager: 1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
token-manager-key: 0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title: user.p.FILMCHAIN.
cName: user.p.FILMCHAIN.user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4
cAddr: 1MHibNozeurswCpinxR9md147dYUUG3vRN
copyright:
......
spring:
profiles:
active: nj
active: local
application:
name: ly-admin
......
......@@ -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();
......
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;
}
......@@ -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 ? new Copyright() : new Copyright(copyrightVo, nft.getPublishTime());
this.copyright = copyrightVo == null ? null : new Copyright(copyrightVo, nft.getPublishTime());
}
}
......@@ -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: 0xa4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
title: user.p.FilmChain.
admin: 1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
admin-key: 0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
contract-name: user.evm.0x1adc08f04fbc0cda9fb45a6b36b317d4fed9715f68314b754ce1e22ea681cd28
contract-address: 1JoYQKtT6PwtfZWqTFPPdAksQ7jB2JRAPw
rpc-url: http://119.8.39.159:8901
withhold: 1Ae6FfgdYJn6LLaqDoRjwga3j4TTmMq3t7
withhold-key: a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
token-manager: 1N2ABERwHgxGhebVw6fVSwaQ5uLAysmGEu
token-manager-key: 0x4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title: user.p.FILMCHAIN.
cName: user.p.FILMCHAIN.user.evm.0xdc173544bb1876b9811d679f0dd33acc03772c6694f34a9f51b79cbae8af10f4
cAddr: 1MHibNozeurswCpinxR9md147dYUUG3vRN
huaweiyun:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment