Commit 913a5e9e authored by 33's avatar 33

代码规范,短信、实名认证增加测试配置

parent 232fed80
**乐映影视:** **乐映影视:**
项目主要采用的框架是spring-boot mybatis-plus sa-token 等, 数据库采用的是mysql,缓存用的是redis 项目主要采用的框架是spring-boot mybatis-plus sa-token 等, 数据库采用的是mysql,缓存用的是redis 项目主要分为三个模块: ----joying-admin 后台管理系统
项目主要分为三个模块: ----joying-portal 门户系统 ----joying-common 公共模块
----joying-admin 后台管理系统
----joying-portal 门户系统
----joying-common 公共模块
1、变成规范 1、变成规范
......
This diff is collapsed.
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<dependency> <dependency>
<groupId>com.fzm</groupId> <groupId>com.fzm</groupId>
<artifactId>joying-common</artifactId> <artifactId>joying-common</artifactId>
<version>1.0.0</version> <version>1.1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
......
package com.fzm.admin; package com.fzm.admin;
import com.fzm.common.config.WxPayConfig;
import com.spring4all.swagger.EnableSwagger2Doc; import com.spring4all.swagger.EnableSwagger2Doc;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
......
package com.fzm.admin.controller; package com.fzm.admin.controller;
import com.fzm.common.constant.RedisConstant;
import com.fzm.common.utils.JwtUtil;
import com.fzm.common.utils.RedisUtil;
import com.fzm.admin.params.LoginParam; import com.fzm.admin.params.LoginParam;
import com.fzm.common.constant.RedisConstant;
import com.fzm.common.constant.TokenConstant; import com.fzm.common.constant.TokenConstant;
import com.fzm.common.entity.Admin; import com.fzm.common.entity.Admin;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.AdminService; import com.fzm.common.service.AdminService;
import com.fzm.common.utils.JwtUtil;
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 org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
......
...@@ -4,14 +4,14 @@ import com.fzm.common.annotation.Authentication; ...@@ -4,14 +4,14 @@ import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.EntrustShelf; import com.fzm.common.entity.EntrustShelf;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.EntrustShelfService; import com.fzm.common.service.EntrustShelfService;
import com.fzm.common.valid.InsertGroup;
import com.fzm.common.valid.UpdateGroup;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
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.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
......
...@@ -13,7 +13,6 @@ import io.swagger.annotations.Api; ...@@ -13,7 +13,6 @@ 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 lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
......
...@@ -32,14 +32,14 @@ public class RefundController { ...@@ -32,14 +32,14 @@ public class RefundController {
@GetMapping("/pages") @GetMapping("/pages")
@ApiOperation(value = "退款分页列表") @ApiOperation(value = "退款分页列表")
public ResponseModel<PageInfo<PaymentVo>> pages(@ApiParam(value = "页码", required = true) @RequestParam Integer pageNum, public ResponseModel<PageInfo<PaymentVo>> pages(@ApiParam(value = "页码", required = true) @RequestParam Integer pageNum,
@ApiParam(value = "每页记录数", required = true) @RequestParam Integer pageSize, @ApiParam(value = "每页记录数", required = true) @RequestParam Integer pageSize,
@ApiParam(value = "姓名") @RequestParam(required = false) String name, @ApiParam(value = "姓名") @RequestParam(required = false) String name,
@ApiParam(value = "注册手机号") @RequestParam(required = false) String telephone, @ApiParam(value = "注册手机号") @RequestParam(required = false) String telephone,
@ApiParam(value = "订单名") @RequestParam(required = false) String orderName, @ApiParam(value = "订单名") @RequestParam(required = false) String orderName,
@ApiParam(value = "交易类型") @RequestParam(required = false) String type, @ApiParam(value = "交易类型") @RequestParam(required = false) String type,
@ApiParam(value = "支付场景 1-nft发行 2-版权申请") @RequestParam(required = false) Integer payScene, @ApiParam(value = "支付场景 1-nft发行 2-版权申请") @RequestParam(required = false) Integer payScene,
@ApiParam(value = "创建开始日期,yyyy-MM-dd格式") @RequestParam(required = false) String start, @ApiParam(value = "创建开始日期,yyyy-MM-dd格式") @RequestParam(required = false) String start,
@ApiParam(value = "创建截止日期,yyyy-MM-dd格式") @RequestParam(required = false) String end) { @ApiParam(value = "创建截止日期,yyyy-MM-dd格式") @RequestParam(required = false) String end) {
PageInfo<PaymentVo> pages = refundService.pages(pageNum, pageSize, name, telephone, orderName, type, payScene, start, end); PageInfo<PaymentVo> pages = refundService.pages(pageNum, pageSize, name, telephone, orderName, type, payScene, start, end);
return ResponseModel.success(pages); return ResponseModel.success(pages);
} }
......
...@@ -11,7 +11,10 @@ import com.github.pagehelper.PageInfo; ...@@ -11,7 +11,10 @@ import com.github.pagehelper.PageInfo;
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.springframework.web.bind.annotation.*; 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;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
......
server:
port: 8002
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
username: root
password: Joying@123456
platform: mysql
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
filters: stat ,wall
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
useGlobalDataSourceStat: true
redis:
host: 172.16.101.135
port: 6379
password: 123456
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
max-active: 100
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait: -1
# 连接池中的最大空闲连接 默认 8
max-idle: 8
# 连接池中的最小空闲连接 默认 0
min-idle: 0
cache:
# 整合SpringCache,redis作为缓存类型
type: redis
redis:
# 缓存失效时间
time-to-live: 86400000
rabbitmq:
host: 172.16.101.135
port: 5672
username: admin
password: admin
listener:
simple:
acknowledge-mode: manual #acknowledge-mode: none,关闭ack; manual,手动ack; auto:自动ack
swagger:
title: 乐映影视后台管理系统
description: 乐映影视后台管理系统RESTFUL API
version: 1.0.0
base-package: com.fzm.admin.controller
base-path: /**
enabled: true
globalOperationParameters:
- description: Authorization
modelRef: string
name: Authorization
parameterType: header
required: false
contact:
name: tangtuo
email: ttuo@33.com
chain:
para:
rpc-url: http://119.8.39.159:8901
withhold:
withhold-key: a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
token-manager:
token-manager-key: 4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title: user.p.FILMCHAIN.
cName: user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f
cAddr: 1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX
copyright:
apply-url: https://p.yareiot.com/ccct/api/copyright/create
query-url: https://p.yareiot.com/ccct/api/copyright/query
app-id: 289391457858
app-secret: xExjKUCYH1nrze6Hpxf8s1dYWdxEggo2FiwKlZKygCItOV7E8bFhkyr4C192uhK
huaweiyun:
obs:
app-key: HIULSHJZJOTWB72Z38ZB
app-secret: GI0oWEGRJuMKmPXJq2fCmuMpFPIITLmjeCQxo2tA
end-point: obs.cn-east-3.myhuaweicloud.com
bucket: filmchain-file
wx-pay:
app-id: wxbdddd81913c795e9
app-secret: aa201717c46a0e07c4c143b1ee73229a
mch-id: 1604477044
api-v3-key: D864DA53FEF8ACD41519064967DC10D2
mch-serial-num: 72A62544B0A08A214FAEC780108692EDC6E7D5FA
private-key-path: apiclient_key.pem
pay-notify-url: https://test.inmvo.com/proxyApi/wx-pay/notify/jsapi
refund-notify-url: https://test.inmvo.com/proxyApi/wx-pay/notify/refund
sms:
app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn
login-message-codetype: quick
login-email-codetype: quick
login-voice-codetype: quick
send-sms-url: http://118.31.52.32/send/sms2
validate-code-url: http://118.31.52.32/validate/code
transfer-nft-message-codetype: notice_transfer
transfer-nft-email-codetype: notice_transfer
transfer-nft-voice-codetype: notice_transfer
refund-message-codetype: notice_refund
\ No newline at end of file
server:
port: 8002
spring:
main:
allow-bean-definition-overriding: true
datasource:
url: jdbc:mysql://146.56.197.42:3306/joying?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&tinyInt1isBit=false
username: root
password: fzm_db_01@TEST
platform: mysql
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
filters: stat ,wall
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
useGlobalDataSourceStat: true
redis:
host: localhost
port: 6379
password: 123456
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
max-active: 100
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait: -1
# 连接池中的最大空闲连接 默认 8
max-idle: 8
# 连接池中的最小空闲连接 默认 0
min-idle: 0
cache:
# 整合SpringCache,redis作为缓存类型
type: redis
redis:
# 缓存失效时间
time-to-live: 86400000
rabbitmq:
host: 10.0.0.81
port: 5672
username: admin
password: admin
listener:
simple:
acknowledge-mode: manual #acknowledge-mode: none,关闭ack;manual,手动ack;auto:自动ack
swagger:
title: 乐映影视乐映影视后台管理系统
description: 乐映影视后台管理系统RESTFUL API
version: 1.0.0
base-package: com.fzm.admin.controller
base-path: /**
enabled: true
globalOperationParameters:
- description: Authorization
modelRef: string
name: Authorization
parameterType: header
required: false
contact:
name: tangtuo
email: ttuo@33.com
chain:
para:
rpc-url: http://119.8.39.159:8901
withhold:
withhold-key: a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
token-manager:
token-manager-key: 4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title: user.p.FILMCHAIN.
cName: user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f
cAddr: 1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX
copyright:
apply-url: https://p.yareiot.com/ccct/api/copyright/create
query-url: https://p.yareiot.com/ccct/api/copyright/query
app-id: 289391457858
app-secret: xExjKUCYH1nrze6Hpxf8s1dYWdxEggo2FiwKlZKygCItOV7E8bFhkyr4C192uhK
huaweiyun:
obs:
app-key: HIULSHJZJOTWB72Z38ZB
app-secret: GI0oWEGRJuMKmPXJq2fCmuMpFPIITLmjeCQxo2tA
end-point: obs.cn-east-3.myhuaweicloud.com
bucket: filmchain-file
wx-pay:
app-id: wxbdddd81913c795e9
app-secret: aa201717c46a0e07c4c143b1ee73229a
mch-id: 1604477044
api-v3-key: D864DA53FEF8ACD41519064967DC10D2
mch-serial-num: 72A62544B0A08A214FAEC780108692EDC6E7D5FA
private-key-path: apiclient_key.pem
pay-notify-url: https://test.inmvo.com/proxyApi/wx-pay/notify/jsapi
refund-notify-url: https://test.inmvo.com/proxyApi/wx-pay/notify/refund
sms:
app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn
login-message-codetype: quick
login-email-codetype: quick
login-voice-codetype: quick
send-sms-url: http://118.31.52.32/send/sms2
validate-code-url: http://118.31.52.32/validate/code
transfer-nft-message-codetype: notice_transfer
transfer-nft-email-codetype: notice_transfer
transfer-nft-voice-codetype: notice_transfer
refund-message-codetype: notice_refund
\ No newline at end of file
server: server:
port: 8002 port: 8002
spring: spring:
application:
name: ly-admin
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
datasource: datasource:
...@@ -56,8 +61,8 @@ spring: ...@@ -56,8 +61,8 @@ spring:
simple: simple:
acknowledge-mode: manual #acknowledge-mode: none,关闭ack;manual,手动ack;auto:自动ack acknowledge-mode: manual #acknowledge-mode: none,关闭ack;manual,手动ack;auto:自动ack
swagger: swagger:
title: 乐映影视后台管理系统 title: '乐映影视后台管理系统'
description: 乐映影视后台管理系统RESTFUL API description: '乐映影视后台管理系统RESTFUL API'
version: 1.0.0 version: 1.0.0
base-package: com.fzm.admin.controller base-package: com.fzm.admin.controller
base-path: /** base-path: /**
...@@ -72,6 +77,16 @@ swagger: ...@@ -72,6 +77,16 @@ swagger:
name: tangtuo name: tangtuo
email: ttuo@33.com email: ttuo@33.com
mybatis-plus:
type-aliases-package: com.fzm.common.entity
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
debug:
sms: true
auth: true
chain: chain:
para: para:
rpcUrl: http://146.56.197.42:12021 rpcUrl: http://146.56.197.42:12021
......
server: server:
port: 8002 port: 8002
spring: spring:
application:
name: ly-admin
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
datasource: datasource:
...@@ -56,8 +61,8 @@ spring: ...@@ -56,8 +61,8 @@ spring:
simple: simple:
acknowledge-mode: manual #acknowledge-mode: none,关闭ack;manual,手动ack;auto:自动ack acknowledge-mode: manual #acknowledge-mode: none,关闭ack;manual,手动ack;auto:自动ack
swagger: swagger:
title: 乐映影视后台管理系统 title: '乐映影视后台管理系统'
description: 乐映影视后台管理系统RESTFUL API description: '乐映影视后台管理系统RESTFUL API'
version: 1.0.0 version: 1.0.0
base-package: com.fzm.admin.controller base-package: com.fzm.admin.controller
base-path: /** base-path: /**
...@@ -72,6 +77,16 @@ swagger: ...@@ -72,6 +77,16 @@ swagger:
name: tangtuo name: tangtuo
email: ttuo@33.com email: ttuo@33.com
mybatis-plus:
type-aliases-package: com.fzm.common.entity
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
debug:
sms: true
auth: true
chain: chain:
para: para:
rpc-url: http://119.8.39.159:8901 rpc-url: http://119.8.39.159:8901
......
server:
port: 8002
spring: spring:
profiles:
active: nj
application: application:
name: ly-admin name: ly-admin
jackson: jackson:
time-zone: GMT+8 time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss date-format: yyyy-MM-dd HH:mm:ss
main:
allow-bean-definition-overriding: true
datasource:
url: jdbc:mysql://172.16.101.135:3306/joying_dev?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
username: root
password: Joying@123456
platform: mysql
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
filters: stat ,wall
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
useGlobalDataSourceStat: true
redis:
host: 172.16.101.135
port: 6379
password: 123456
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
max-active: 100
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait: -1
# 连接池中的最大空闲连接 默认 8
max-idle: 8
# 连接池中的最小空闲连接 默认 0
min-idle: 0
cache:
# 整合SpringCache,redis作为缓存类型
type: redis
redis:
# 缓存失效时间
time-to-live: 86400000
rabbitmq:
host: 172.16.101.135
port: 5672
username: admin
password: admin
listener:
simple:
acknowledge-mode: manual #acknowledge-mode: none,关闭ack; manual,手动ack; auto:自动ack
swagger:
title: '乐映影视后台管理系统'
description: '乐映影视后台管理系统RESTFUL API'
version: 1.0.0
base-package: com.fzm.admin.controller
base-path: /**
enabled: true
globalOperationParameters:
- description: Authorization
modelRef: string
name: Authorization
parameterType: header
required: false
contact:
name: tangtuo
email: ttuo@33.com
mybatis-plus: mybatis-plus:
type-aliases-package: com.fzm.common.entity type-aliases-package: com.fzm.common.entity
...@@ -14,7 +82,54 @@ mybatis-plus: ...@@ -14,7 +82,54 @@ mybatis-plus:
configuration: configuration:
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
logging: debug:
level: sms: true
com.fzm.common.mapper: debug auth: true
chain:
para:
rpc-url: http://119.8.39.159:8901
withhold:
withhold-key: a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
token-manager:
token-manager-key: 4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title: user.p.FILMCHAIN.
cName: user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f
cAddr: 1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX
copyright:
apply-url: https://p.yareiot.com/ccct/api/copyright/create
query-url: https://p.yareiot.com/ccct/api/copyright/query
app-id: 289391457858
app-secret: xExjKUCYH1nrze6Hpxf8s1dYWdxEggo2FiwKlZKygCItOV7E8bFhkyr4C192uhK
huaweiyun:
obs:
app-key: HIULSHJZJOTWB72Z38ZB
app-secret: GI0oWEGRJuMKmPXJq2fCmuMpFPIITLmjeCQxo2tA
end-point: obs.cn-east-3.myhuaweicloud.com
bucket: filmchain-file
wx-pay:
app-id: wxbdddd81913c795e9
app-secret: aa201717c46a0e07c4c143b1ee73229a
mch-id: 1604477044
api-v3-key: D864DA53FEF8ACD41519064967DC10D2
mch-serial-num: 72A62544B0A08A214FAEC780108692EDC6E7D5FA
private-key-path: apiclient_key.pem
pay-notify-url: https://test.inmvo.com/proxyApi/wx-pay/notify/jsapi
refund-notify-url: https://test.inmvo.com/proxyApi/wx-pay/notify/refund
sms:
app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn
login-message-codetype: quick
login-email-codetype: quick
login-voice-codetype: quick
send-sms-url: http://118.31.52.32/send/sms2
validate-code-url: http://118.31.52.32/validate/code
transfer-nft-message-codetype: notice_transfer
transfer-nft-email-codetype: notice_transfer
transfer-nft-voice-codetype: notice_transfer
refund-message-codetype: notice_refund
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</contextName>
<!--日志路径--> <configuration debug="false">
<property name="LOG_HOME" value="logs"/> <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{12} - %msg%n"/>
<!--日志格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %logger{50}:表示logger名字最长50个字符,否则按照句点分割 %msg:日志消息,%n是换行符 --> <property name="log.path" value="/app/logs/fuzamei/hz"/>
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n"/> <property name="log.name" value="joying-admin"/>
<!-- 控制台 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志格式 -->
<encoder> <encoder>
<pattern>${LOG_PATTERN}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> <charset>UTF-8</charset>
</encoder> </encoder>
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender> </appender>
<!--输出到文件--> <!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/${log.name}/info.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${log.path}/${log.name}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2、全部日志时间滚动输出 --> <!-- 时间滚动输出 level为 WARN 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 循环政策:基于时间创建日志文件 --> <!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/${log.name}/warn.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志命名:单个文件大于50MB 按照时间+自增i 生成log文件 --> <fileNamePattern>${log.path}/${log.name}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<fileNamePattern>${LOG_HOME}/logback.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize> <maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy> </timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>180</maxHistory> <!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy> </rollingPolicy>
<append>true</append> <!-- 此日志文件只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/${log.name}/error.log</file>
<!--日志文件输出格式-->
<encoder> <encoder>
<pattern>${LOG_PATTERN}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> <charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder> </encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/${log.name}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender> </appender>
<logger name="org.apache.coyote.http11.Http11Processor" level="warn"/>
<logger name="org.apache.tomcat.util.http.parser.Cookie" level="warn"/>
<logger name="org.apache.http.client.protocol.ResponseProcessCookies" level="error"/>
<logger name="org.springframework.data.convert.CustomConversions" level="error"/>
<root level="INFO"> <root level="INFO">
<!--开发环境和本地:--> <!-- 控制台输出 -->
<springProfile name="local"> <appender-ref ref="STDOUT"/>
<appender-ref ref="CONSOLE"/> <!-- 文件输出 -->
</springProfile> <appender-ref ref="INFO"/>
<springProfile name="dev"> <appender-ref ref="WARN"/>
<appender-ref ref="CONSOLE"/> <appender-ref ref="ERROR"/>
<appender-ref ref="INFO_FILE"/>
</springProfile>
<springProfile name="prod">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="INFO_FILE"/>
</springProfile>
<springProfile name="nj">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="INFO_FILE"/>
</springProfile>
</root> </root>
</configuration> </configuration>
\ No newline at end of file
...@@ -6,5 +6,4 @@ import org.springframework.boot.test.context.SpringBootTest; ...@@ -6,5 +6,4 @@ import org.springframework.boot.test.context.SpringBootTest;
class LyAdminApplicationTests { class LyAdminApplicationTests {
} }
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>fzm-joying</artifactId> <artifactId>fzm-joying</artifactId>
<groupId>com.fzm</groupId> <groupId>com.fzm</groupId>
<version>1.0.0</version> <version>1.1.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>joying-common</artifactId> <artifactId>joying-common</artifactId>
...@@ -111,6 +111,12 @@ ...@@ -111,6 +111,12 @@
<artifactId>wechatpay-apache-httpclient</artifactId> <artifactId>wechatpay-apache-httpclient</artifactId>
<version>0.4.0</version> <version>0.4.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.79</version>
</dependency>
</dependencies> </dependencies>
<properties> <properties>
......
...@@ -15,6 +15,7 @@ public class InterceptorConfig implements WebMvcConfigurer { ...@@ -15,6 +15,7 @@ public class InterceptorConfig implements WebMvcConfigurer {
.excludePathPatterns("/user/login", "/admin/login", "/verificationCode/send/sms") .excludePathPatterns("/user/login", "/admin/login", "/verificationCode/send/sms")
.addPathPatterns("/**"); .addPathPatterns("/**");
} }
@Bean @Bean
public AuthenticationInterceptor authenticationInterceptor() { public AuthenticationInterceptor authenticationInterceptor() {
return new AuthenticationInterceptor(); return new AuthenticationInterceptor();
......
...@@ -6,10 +6,6 @@ import lombok.extern.slf4j.Slf4j; ...@@ -6,10 +6,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.function.Supplier;
/** /**
* 新增,更新时,自动更新字段 * 新增,更新时,自动更新字段
*/ */
...@@ -19,7 +15,10 @@ public class MyMetaObjectHandler implements MetaObjectHandler { ...@@ -19,7 +15,10 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
@Override @Override
public void insertFill(MetaObject metaObject) { public void insertFill(MetaObject metaObject) {
log.debug("start insert fill ...."); if (log.isDebugEnabled()) {
log.debug("start insert fill ....");
}
Long currentTime = SystemClock.now(); Long currentTime = SystemClock.now();
this.setFieldValByName("createTime", currentTime, metaObject); this.setFieldValByName("createTime", currentTime, metaObject);
this.setFieldValByName("updateTime", currentTime, metaObject); this.setFieldValByName("updateTime", currentTime, metaObject);
...@@ -27,7 +26,10 @@ public class MyMetaObjectHandler implements MetaObjectHandler { ...@@ -27,7 +26,10 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
@Override @Override
public void updateFill(MetaObject metaObject) { public void updateFill(MetaObject metaObject) {
log.debug("start update fill ...."); if (log.isDebugEnabled()) {
log.debug("start update fill ....");
}
Long currentTime = SystemClock.now(); Long currentTime = SystemClock.now();
this.setFieldValByName("updateTime", currentTime, metaObject); this.setFieldValByName("updateTime", currentTime, metaObject);
} }
......
...@@ -48,7 +48,6 @@ public class RabbitMQConfig { ...@@ -48,7 +48,6 @@ public class RabbitMQConfig {
} }
/** /**
* 用户追加tokenInfo时,通过evmSetTokenInfo()方法得到交易hash,然后通过getRealTxHashFromGrp()得到真实哈希, * 用户追加tokenInfo时,通过evmSetTokenInfo()方法得到交易hash,然后通过getRealTxHashFromGrp()得到真实哈希,
* 但是需要阻塞3秒左右才能查到真实哈希,所以这里使用死信加延时队列 * 但是需要阻塞3秒左右才能查到真实哈希,所以这里使用死信加延时队列
......
...@@ -6,7 +6,6 @@ import org.redisson.config.Config; ...@@ -6,7 +6,6 @@ import org.redisson.config.Config;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties; import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import javax.annotation.Resource; import javax.annotation.Resource;
......
...@@ -13,7 +13,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; ...@@ -13,7 +13,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
public class SecurityConfig { public class SecurityConfig {
@Bean @Bean
public PasswordEncoder passwordEncoder(){ public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder(); return new BCryptPasswordEncoder();
} }
} }
...@@ -5,7 +5,7 @@ package com.fzm.common.constant; ...@@ -5,7 +5,7 @@ package com.fzm.common.constant;
* @date 2021/6/30 16:31 * @date 2021/6/30 16:31
* *
* <p> * <p>
* 系统全局常量 * 系统全局常量
* </p> * </p>
*/ */
public class SystemConstant { public class SystemConstant {
......
...@@ -9,8 +9,6 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -9,8 +9,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.util.Date; import java.util.Date;
/** /**
......
...@@ -12,7 +12,7 @@ import lombok.experimental.Accessors; ...@@ -12,7 +12,7 @@ import lombok.experimental.Accessors;
@Data @Data
@TableName("tb_category") @TableName("tb_category")
@Accessors(chain = true) @Accessors(chain = true)
public class Category extends BaseEntity{ public class Category extends BaseEntity {
@ApiModelProperty("类目名称") @ApiModelProperty("类目名称")
private String categoryName; private String categoryName;
......
...@@ -9,8 +9,6 @@ import lombok.Data; ...@@ -9,8 +9,6 @@ import lombok.Data;
import javax.validation.constraints.Min; import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
import java.util.stream.Stream; import java.util.stream.Stream;
......
...@@ -94,7 +94,7 @@ public class CopyrightApplyOwnerRelation { ...@@ -94,7 +94,7 @@ public class CopyrightApplyOwnerRelation {
private Date updateDate; private Date updateDate;
public CopyrightApplyOwnerRelation(Integer copyrightId,CopyrightOwner copyrightOwner) { public CopyrightApplyOwnerRelation(Integer copyrightId, CopyrightOwner copyrightOwner) {
this.copyrightId = copyrightId; this.copyrightId = copyrightId;
this.ownerId = copyrightOwner.getId(); this.ownerId = copyrightOwner.getId();
BeanUtil.copyProperties(copyrightOwner, this, true); BeanUtil.copyProperties(copyrightOwner, this, true);
......
package com.fzm.common.entity; package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
......
...@@ -3,7 +3,6 @@ package com.fzm.common.entity; ...@@ -3,7 +3,6 @@ package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
......
...@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModel; ...@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date; import java.util.Date;
/** /**
......
...@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModel; ...@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date; import java.util.Date;
/** /**
......
...@@ -2,7 +2,6 @@ package com.fzm.common.entity; ...@@ -2,7 +2,6 @@ package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
......
...@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil; ...@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date; import java.util.Date;
......
package com.fzm.common.entity.vo; package com.fzm.common.entity.vo;
import cn.hutool.core.date.DateUtil;
import com.fzm.common.entity.CommemorateNft; import com.fzm.common.entity.CommemorateNft;
import com.fzm.common.entity.Nft;
import com.fzm.common.entity.User; import com.fzm.common.entity.User;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
......
package com.fzm.common.entity.vo; package com.fzm.common.entity.vo;
import cn.hutool.core.bean.BeanUtil;
import com.fzm.common.entity.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author tangtuo * @author tangtuo
......
package com.fzm.common.entity.vo; package com.fzm.common.entity.vo;
import cn.hutool.core.date.DateUtil;
import com.fzm.common.entity.Nft; import com.fzm.common.entity.Nft;
import com.fzm.common.entity.User; import com.fzm.common.entity.User;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package com.fzm.common.entity.vo; package com.fzm.common.entity.vo;
import cn.hutool.core.date.DateUtil;
import com.fzm.common.entity.Nft; import com.fzm.common.entity.Nft;
import com.fzm.common.entity.User; import com.fzm.common.entity.User;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -41,6 +40,6 @@ public class NftTransferVo { ...@@ -41,6 +40,6 @@ public class NftTransferVo {
this.avatar = user.getAvatar(); this.avatar = user.getAvatar();
this.wallet = user.getWallet(); this.wallet = user.getWallet();
this.nickname = user.getNickname(); this.nickname = user.getNickname();
this.nftId=nft.getNftId(); this.nftId = nft.getNftId();
} }
} }
package com.fzm.common.entity.vo; package com.fzm.common.entity.vo;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fzm.common.entity.Order; import com.fzm.common.entity.Order;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
......
...@@ -3,7 +3,6 @@ package com.fzm.common.entity.vo; ...@@ -3,7 +3,6 @@ package com.fzm.common.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.util.Date;
......
...@@ -9,9 +9,8 @@ import lombok.Getter; ...@@ -9,9 +9,8 @@ import lombok.Getter;
@Getter @Getter
public enum AuthType { public enum AuthType {
PERSON(0,"个人认证"), PERSON(0, "个人认证"),
ENTERPRISE(1,"企业认证") ENTERPRISE(1, "企业认证");
;
private Integer type; private Integer type;
private String desc; private String desc;
......
...@@ -10,12 +10,12 @@ import lombok.Getter; ...@@ -10,12 +10,12 @@ import lombok.Getter;
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum IdCardVerificationResponse { public enum IdCardVerificationResponse {
SUCCESS("0","姓名和身份证号一致"), SUCCESS("0", "姓名和身份证号一致"),
FAILED1("-1","姓名和身份证号不一致"), FAILED1("-1", "姓名和身份证号不一致"),
FAILED2("-2","非法身份证号(长度、校验位等不正确)"), FAILED2("-2", "非法身份证号(长度、校验位等不正确)"),
FAILED3("-3","非法姓名(长度、格式等不正确)"), FAILED3("-3", "非法姓名(长度、格式等不正确)"),
FAILED4("-4","证件库服务异常"), FAILED4("-4", "证件库服务异常"),
FAILED5("-5","证件库中无此身份证记录"), FAILED5("-5", "证件库中无此身份证记录"),
; ;
private String code; private String code;
private String desc; private String desc;
......
package com.fzm.common.enums; package com.fzm.common.enums;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
import java.util.Arrays; import java.util.Arrays;
......
...@@ -11,9 +11,6 @@ import org.springframework.web.bind.MethodArgumentNotValidException; ...@@ -11,9 +11,6 @@ import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
......
package com.fzm.common.interceptor; package com.fzm.common.interceptor;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import com.fzm.common.annotation.Authentication; import com.fzm.common.annotation.Authentication;
import com.fzm.common.constant.RedisConstant; import com.fzm.common.constant.RedisConstant;
import com.fzm.common.constant.TokenConstant; import com.fzm.common.constant.TokenConstant;
......
...@@ -2,7 +2,6 @@ package com.fzm.common.mapper; ...@@ -2,7 +2,6 @@ package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.Admin; import com.fzm.common.entity.Admin;
import com.fzm.common.entity.Category;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
......
...@@ -15,6 +15,7 @@ public interface CollectionMapper extends BaseMapper<TbCollection> { ...@@ -15,6 +15,7 @@ public interface CollectionMapper extends BaseMapper<TbCollection> {
/** /**
* 根据用户id查询所有收藏的nftId * 根据用户id查询所有收藏的nftId
*
* @param userId * @param userId
* @return * @return
*/ */
......
package com.fzm.common.mapper; package com.fzm.common.mapper;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.CommemorateNft; import com.fzm.common.entity.CommemorateNft;
import com.fzm.common.entity.Nft;
import com.fzm.common.entity.vo.CollectionNftVo;
import com.fzm.common.entity.vo.NftListVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author tangtuo * @author tangtuo
......
...@@ -2,7 +2,6 @@ package com.fzm.common.mapper; ...@@ -2,7 +2,6 @@ package com.fzm.common.mapper;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.AuthPerson;
import com.fzm.common.entity.NftTransferRecord; import com.fzm.common.entity.NftTransferRecord;
import com.fzm.common.entity.vo.NftTransferDetailVo; import com.fzm.common.entity.vo.NftTransferDetailVo;
import com.fzm.common.entity.vo.NftTransferRecordVo; import com.fzm.common.entity.vo.NftTransferRecordVo;
......
package com.fzm.common.mapper; package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.Admin;
import com.fzm.common.entity.OpusCategory; import com.fzm.common.entity.OpusCategory;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
......
package com.fzm.common.model; package com.fzm.common.model;
import java.awt.Graphics2D; import com.google.zxing.LuminanceSource;
import java.awt.*;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import com.google.zxing.LuminanceSource;
public class BufferedImageLuminanceSource extends LuminanceSource { public class BufferedImageLuminanceSource extends LuminanceSource {
private final BufferedImage image; private final BufferedImage image;
private final int left; private final int left;
private final int top; private final int top;
public BufferedImageLuminanceSource(BufferedImage image) { public BufferedImageLuminanceSource(BufferedImage image) {
this(image, 0, 0, image.getWidth(), image.getHeight()); this(image, 0, 0, image.getWidth(), image.getHeight());
} }
public BufferedImageLuminanceSource(BufferedImage image, int left, int top, int width, int height) { public BufferedImageLuminanceSource(BufferedImage image, int left, int top, int width, int height) {
super(width, height); super(width, height);
int sourceWidth = image.getWidth(); int sourceWidth = image.getWidth();
int sourceHeight = image.getHeight(); int sourceHeight = image.getHeight();
if (left + width > sourceWidth || top + height > sourceHeight) { if (left + width > sourceWidth || top + height > sourceHeight) {
throw new IllegalArgumentException("Crop rectangle does not fit within image data."); throw new IllegalArgumentException("Crop rectangle does not fit within image data.");
} }
for (int y = top; y < top + height; y++) { for (int y = top; y < top + height; y++) {
for (int x = left; x < left + width; x++) { for (int x = left; x < left + width; x++) {
if ((image.getRGB(x, y) & 0xFF000000) == 0) { if ((image.getRGB(x, y) & 0xFF000000) == 0) {
image.setRGB(x, y, 0xFFFFFFFF); // = white image.setRGB(x, y, 0xFFFFFFFF); // = white
} }
} }
} }
this.image = new BufferedImage(sourceWidth, sourceHeight, BufferedImage.TYPE_BYTE_GRAY); this.image = new BufferedImage(sourceWidth, sourceHeight, BufferedImage.TYPE_BYTE_GRAY);
this.image.getGraphics().drawImage(image, 0, 0, null); this.image.getGraphics().drawImage(image, 0, 0, null);
this.left = left; this.left = left;
this.top = top; this.top = top;
} }
public byte[] getRow(int y, byte[] row) { public byte[] getRow(int y, byte[] row) {
if (y < 0 || y >= getHeight()) { if (y < 0 || y >= getHeight()) {
throw new IllegalArgumentException("Requested row is outside the image: " + y); throw new IllegalArgumentException("Requested row is outside the image: " + y);
} }
int width = getWidth(); int width = getWidth();
if (row == null || row.length < width) { if (row == null || row.length < width) {
row = new byte[width]; row = new byte[width];
} }
image.getRaster().getDataElements(left, top + y, width, 1, row); image.getRaster().getDataElements(left, top + y, width, 1, row);
return row; return row;
} }
public byte[] getMatrix() { public byte[] getMatrix() {
int width = getWidth(); int width = getWidth();
int height = getHeight(); int height = getHeight();
int area = width * height; int area = width * height;
byte[] matrix = new byte[area]; byte[] matrix = new byte[area];
image.getRaster().getDataElements(left, top, width, height, matrix); image.getRaster().getDataElements(left, top, width, height, matrix);
return matrix; return matrix;
} }
@Override @Override
public boolean isCropSupported() { public boolean isCropSupported() {
return true; return true;
} }
@Override @Override
public LuminanceSource crop(int left, int top, int width, int height) { public LuminanceSource crop(int left, int top, int width, int height) {
return new BufferedImageLuminanceSource(image, this.left + left, this.top + top, width, height); return new BufferedImageLuminanceSource(image, this.left + left, this.top + top, width, height);
} }
@Override @Override
public boolean isRotateSupported() { public boolean isRotateSupported() {
return true; return true;
} }
@Override @Override
public LuminanceSource rotateCounterClockwise() { public LuminanceSource rotateCounterClockwise() {
int sourceWidth = image.getWidth(); int sourceWidth = image.getWidth();
int sourceHeight = image.getHeight(); int sourceHeight = image.getHeight();
AffineTransform transform = new AffineTransform(0.0, -1.0, 1.0, 0.0, 0.0, sourceWidth); AffineTransform transform = new AffineTransform(0.0, -1.0, 1.0, 0.0, 0.0, sourceWidth);
BufferedImage rotatedImage = new BufferedImage(sourceHeight, sourceWidth, BufferedImage.TYPE_BYTE_GRAY); BufferedImage rotatedImage = new BufferedImage(sourceHeight, sourceWidth, BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g = rotatedImage.createGraphics(); Graphics2D g = rotatedImage.createGraphics();
g.drawImage(image, transform, null); g.drawImage(image, transform, null);
g.dispose(); g.dispose();
int width = getWidth(); int width = getWidth();
return new BufferedImageLuminanceSource(rotatedImage, top, sourceWidth - (left + width), getHeight(), width); return new BufferedImageLuminanceSource(rotatedImage, top, sourceWidth - (left + width), getHeight(), width);
} }
} }
\ No newline at end of file
...@@ -29,7 +29,7 @@ public class ResponseModel<T> { ...@@ -29,7 +29,7 @@ public class ResponseModel<T> {
return new ResponseModel<>(ResultCode.SUCCESS, data); return new ResponseModel<>(ResultCode.SUCCESS, data);
} }
public static <T> ResponseModel<T> success() { public static <T> ResponseModel<T> success() {
return new ResponseModel<>(ResultCode.SUCCESS, null); return new ResponseModel<>(ResultCode.SUCCESS, null);
} }
......
...@@ -3,8 +3,6 @@ package com.fzm.common.params; ...@@ -3,8 +3,6 @@ package com.fzm.common.params;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
/** /**
* @author tangtuo * @author tangtuo
* @date 2021/6/23 15:33 * @date 2021/6/23 15:33
......
...@@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
/** /**
......
package com.fzm.common.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @author wt
* @date 2022/3/4
*/
@Data
@Component
@ConfigurationProperties(prefix = "debug")
public class DebugProperties {
private Boolean sms;
private Boolean auth;
}
...@@ -2,7 +2,6 @@ package com.fzm.common.properties; ...@@ -2,7 +2,6 @@ package com.fzm.common.properties;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/** /**
* @author tangtuo * @author tangtuo
......
package com.fzm.common.properties; package com.fzm.common.properties;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
......
package com.fzm.common.service; package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.Admin;
import com.fzm.common.entity.CommemorateNft; import com.fzm.common.entity.CommemorateNft;
/** /**
......
package com.fzm.common.service; package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.AuthPerson;
import com.fzm.common.entity.EntrustShelf; import com.fzm.common.entity.EntrustShelf;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
......
...@@ -178,19 +178,20 @@ public interface NftService extends IService<Nft> { ...@@ -178,19 +178,20 @@ public interface NftService extends IService<Nft> {
/** /**
* 删除 * 删除
*
* @param id * @param id
*/ */
void delete(Integer id); void delete(Integer id);
/** /**
* 获取当前用户正在发行中的nft列表 * 获取当前用户正在发行中的nft列表
* @return *
* @param status * @param status
* @return
*/ */
List<Nft> getPublishingList(Integer status); List<Nft> getPublishingList(Integer status);
// void republish(); // void republish();
} }
package com.fzm.common.service; package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.NftChainInfo;
import com.fzm.common.entity.NftTransferRecord; import com.fzm.common.entity.NftTransferRecord;
import com.fzm.common.entity.vo.NftTransferDetailVo; import com.fzm.common.entity.vo.NftTransferDetailVo;
import com.fzm.common.entity.vo.NftTransferRecordVo; import com.fzm.common.entity.vo.NftTransferRecordVo;
......
package com.fzm.common.service; package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.Admin;
import com.fzm.common.entity.OpusCategory; import com.fzm.common.entity.OpusCategory;
import java.util.List; import java.util.List;
......
package com.fzm.common.service; package com.fzm.common.service;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fzm.common.entity.dto.JsapiPayDto; import com.fzm.common.entity.dto.JsapiPayDto;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
......
...@@ -5,11 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -5,11 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.AuthPerson; import com.fzm.common.entity.AuthPerson;
import com.fzm.common.mapper.AuthPersonMapper; import com.fzm.common.mapper.AuthPersonMapper;
import com.fzm.common.service.AuthPersonService; import com.fzm.common.service.AuthPersonService;
import jdk.nashorn.internal.ir.annotations.Reference;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/** /**
* @author tangtuo * @author tangtuo
* @date 2021/6/28 11:29 * @date 2021/6/28 11:29
......
...@@ -5,10 +5,8 @@ import cn.fzm.chain.simplesdk.constant.EvmTokenEnum; ...@@ -5,10 +5,8 @@ import cn.fzm.chain.simplesdk.constant.EvmTokenEnum;
import cn.fzm.chain.simplesdk.constant.TxStatusEnum; import cn.fzm.chain.simplesdk.constant.TxStatusEnum;
import cn.fzm.chain.simplesdk.model.TxResult; import cn.fzm.chain.simplesdk.model.TxResult;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil; import cn.hutool.core.util.HexUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.constant.RedisConstant; import com.fzm.common.constant.RedisConstant;
......
...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.CopyrightAuthor; import com.fzm.common.entity.CopyrightAuthor;
import com.fzm.common.entity.CopyrightFile;
import com.fzm.common.mapper.CopyrightAuthorMapper; import com.fzm.common.mapper.CopyrightAuthorMapper;
import com.fzm.common.service.CopyrightAuthorService; import com.fzm.common.service.CopyrightAuthorService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
...@@ -6,7 +6,6 @@ import com.fzm.common.entity.CopyrightAuthorityRelation; ...@@ -6,7 +6,6 @@ import com.fzm.common.entity.CopyrightAuthorityRelation;
import com.fzm.common.mapper.CopyrightAuthorityRelationMapper; import com.fzm.common.mapper.CopyrightAuthorityRelationMapper;
import com.fzm.common.service.CopyrightAuthorityRelationService; import com.fzm.common.service.CopyrightAuthorityRelationService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
......
...@@ -5,11 +5,9 @@ import cn.hutool.core.collection.CollectionUtil; ...@@ -5,11 +5,9 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.CopyrightApply;
import com.fzm.common.entity.Draft; import com.fzm.common.entity.Draft;
import com.fzm.common.entity.dto.CopyrightDTO; import com.fzm.common.entity.dto.CopyrightDTO;
import com.fzm.common.entity.dto.DraftDTO; import com.fzm.common.entity.dto.DraftDTO;
import com.fzm.common.enums.CopyrightApplyState;
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.mapper.DraftMapper; import com.fzm.common.mapper.DraftMapper;
......
...@@ -138,7 +138,7 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe ...@@ -138,7 +138,7 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe
throw GlobalException.newException(ResultCode.FAILED, "nft发行失败"); throw GlobalException.newException(ResultCode.FAILED, "nft发行失败");
} }
String tradeHash = paraChainClient.evmSetTokenInfo(abi, contractAddr, 0L, tokenId, tokenInfo, wallet, privkey, true); String tradeHash = paraChainClient.evmSetTokenInfo(abi, contractAddr, 0L, tokenId, tokenInfo, wallet, privkey, true);
System.out.println("tradeHash = " + tradeHash);
if (StringUtils.isBlank(tradeHash)) { if (StringUtils.isBlank(tradeHash)) {
throw GlobalException.newException(ResultCode.PUBLISH_ERROR, "nft发行失败"); throw GlobalException.newException(ResultCode.PUBLISH_ERROR, "nft发行失败");
} }
...@@ -342,7 +342,7 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe ...@@ -342,7 +342,7 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe
throw GlobalException.newException(ResultCode.FAILED, "nft发行失败"); throw GlobalException.newException(ResultCode.FAILED, "nft发行失败");
} }
String tradeHash = paraChainClient.evmSetTokenInfo(abi, contractAddr, 0L, tokenId, tokenInfo, wallet, privkey, true); String tradeHash = paraChainClient.evmSetTokenInfo(abi, contractAddr, 0L, tokenId, tokenInfo, wallet, privkey, true);
System.out.println("tradeHash = " + tradeHash);
if (StringUtils.isBlank(tradeHash)) { if (StringUtils.isBlank(tradeHash)) {
throw GlobalException.newException(ResultCode.PUBLISH_ERROR, "nft发行失败"); throw GlobalException.newException(ResultCode.PUBLISH_ERROR, "nft发行失败");
} }
......
...@@ -4,14 +4,11 @@ import cn.hutool.core.date.DateTime; ...@@ -4,14 +4,11 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.AuthPerson;
import com.fzm.common.entity.NftTransferRecord; import com.fzm.common.entity.NftTransferRecord;
import com.fzm.common.entity.User; import com.fzm.common.entity.User;
import com.fzm.common.entity.vo.NftTransferDetailVo; import com.fzm.common.entity.vo.NftTransferDetailVo;
import com.fzm.common.entity.vo.NftTransferRecordVo; import com.fzm.common.entity.vo.NftTransferRecordVo;
import com.fzm.common.mapper.AuthPersonMapper;
import com.fzm.common.mapper.NftTransferRecordMapper; import com.fzm.common.mapper.NftTransferRecordMapper;
import com.fzm.common.service.AuthPersonService;
import com.fzm.common.service.NftTransferRecordService; import com.fzm.common.service.NftTransferRecordService;
import com.fzm.common.service.UserService; import com.fzm.common.service.UserService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
......
...@@ -7,7 +7,10 @@ import com.fzm.common.entity.Order; ...@@ -7,7 +7,10 @@ import com.fzm.common.entity.Order;
import com.fzm.common.entity.dto.OrderDto; import com.fzm.common.entity.dto.OrderDto;
import com.fzm.common.entity.dto.OrderProcessMsg; import com.fzm.common.entity.dto.OrderProcessMsg;
import com.fzm.common.entity.vo.OrderVo; import com.fzm.common.entity.vo.OrderVo;
import com.fzm.common.enums.*; import com.fzm.common.enums.OrderStatus;
import com.fzm.common.enums.PayScene;
import com.fzm.common.enums.PayType;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.OrderMapper; import com.fzm.common.mapper.OrderMapper;
import com.fzm.common.service.*; import com.fzm.common.service.*;
......
...@@ -8,7 +8,6 @@ import com.fzm.common.entity.Refund; ...@@ -8,7 +8,6 @@ import com.fzm.common.entity.Refund;
import com.fzm.common.entity.vo.PaymentVo; import com.fzm.common.entity.vo.PaymentVo;
import com.fzm.common.enums.RefundLaunchChannel; import com.fzm.common.enums.RefundLaunchChannel;
import com.fzm.common.mapper.RefundMapper; import com.fzm.common.mapper.RefundMapper;
import com.fzm.common.service.OrderService;
import com.fzm.common.service.RefundService; import com.fzm.common.service.RefundService;
import com.fzm.common.service.WxPayService; import com.fzm.common.service.WxPayService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
......
...@@ -22,6 +22,7 @@ import com.fzm.common.enums.ResultCode; ...@@ -22,6 +22,7 @@ import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.UserMapper; import com.fzm.common.mapper.UserMapper;
import com.fzm.common.params.LoginParam; import com.fzm.common.params.LoginParam;
import com.fzm.common.properties.DebugProperties;
import com.fzm.common.properties.SmsProperties; import com.fzm.common.properties.SmsProperties;
import com.fzm.common.service.AuthPersonService; import com.fzm.common.service.AuthPersonService;
import com.fzm.common.service.UserService; import com.fzm.common.service.UserService;
...@@ -83,6 +84,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -83,6 +84,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Resource @Resource
private ObsUtil obsUtil; private ObsUtil obsUtil;
@Resource
private DebugProperties debugProperties;
@Override @Override
public User loadUserByUsername(String username) { public User loadUserByUsername(String username) {
...@@ -227,12 +231,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -227,12 +231,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if (AuthStatus.SUCCESS.getStatus().equals(user.getAuthStatus())) { if (AuthStatus.SUCCESS.getStatus().equals(user.getAuthStatus())) {
throw GlobalException.newException(ResultCode.ID_CARD_VERIFICATION_ERROR, "您已认证成功,无法再次认证"); throw GlobalException.newException(ResultCode.ID_CARD_VERIFICATION_ERROR, "您已认证成功,无法再次认证");
} }
Integer userId = user.getId();
BASE64Encoder base64Encoder = new BASE64Encoder();
String encode = "data:image/jpg;base64," + base64Encoder.encode(cardPictureFront.getBytes());
IdCardOCRVerificationResponse response = TencentApi.idCardOCRVerification(encode);
log.info("实名认证结果:{}", JSONUtil.toJsonStr(response));
Integer status; Integer status;
Integer userId = user.getId();
IdCardOCRVerificationResponse response;
if (debugProperties.getAuth()) {
response = new IdCardOCRVerificationResponse();
response.setResult(IdCardVerificationResponse.SUCCESS.getCode());
response.setIdCard("000000000000000000");
response.setName("个人认证");
} else {
BASE64Encoder base64Encoder = new BASE64Encoder();
String encode = "data:image/jpg;base64," + base64Encoder.encode(cardPictureFront.getBytes());
response = TencentApi.idCardOCRVerification(encode);
log.info("实名认证结果:{}", JSONUtil.toJsonStr(response));
}
if (IdCardVerificationResponse.SUCCESS.getCode().equals(response.getResult())) { if (IdCardVerificationResponse.SUCCESS.getCode().equals(response.getResult())) {
// 验证成功上传身份证证件 // 验证成功上传身份证证件
String frontUrl = obsUtil.putObject(cardPictureFront); String frontUrl = obsUtil.putObject(cardPictureFront);
......
...@@ -9,14 +9,12 @@ import com.fzm.common.constant.SystemConstant; ...@@ -9,14 +9,12 @@ import com.fzm.common.constant.SystemConstant;
import com.fzm.common.entity.Order; import com.fzm.common.entity.Order;
import com.fzm.common.entity.Payment; import com.fzm.common.entity.Payment;
import com.fzm.common.entity.Refund; import com.fzm.common.entity.Refund;
import com.fzm.common.entity.User;
import com.fzm.common.entity.dto.JsapiPayDto; import com.fzm.common.entity.dto.JsapiPayDto;
import com.fzm.common.entity.dto.OrderProcessMsg; import com.fzm.common.entity.dto.OrderProcessMsg;
import com.fzm.common.enums.*; import com.fzm.common.enums.*;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.properties.WxPayProperties; import com.fzm.common.properties.WxPayProperties;
import com.fzm.common.service.*; import com.fzm.common.service.*;
import com.fzm.common.utils.SmsUtil;
import com.fzm.common.utils.SnowflakeUtil; import com.fzm.common.utils.SnowflakeUtil;
import com.wechat.pay.contrib.apache.httpclient.util.AesUtil; import com.wechat.pay.contrib.apache.httpclient.util.AesUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -39,7 +37,6 @@ import javax.servlet.http.HttpServletRequest; ...@@ -39,7 +37,6 @@ import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.GeneralSecurityException; import java.security.GeneralSecurityException;
import java.security.PrivateKey; import java.security.PrivateKey;
......
package com.fzm.common.utils; package com.fzm.common.utils;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONUtil;
import com.fzm.common.entity.dto.CopyrightRequest;
import com.fzm.common.properties.CopyrightProperties;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.codec.CodecProperties;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
......
package com.fzm.common.utils; package com.fzm.common.utils;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.Sign;
import cn.hutool.crypto.asymmetric.SignAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm; import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto; import cn.hutool.crypto.symmetric.SymmetricCrypto;
import sun.misc.BASE64Encoder;
import sun.security.krb5.internal.crypto.HmacSha1Aes256CksumType;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
/** /**
* @author tangtuo * @author tangtuo
...@@ -33,7 +25,7 @@ public class PasswordUtil { ...@@ -33,7 +25,7 @@ public class PasswordUtil {
public static void main(String[] args) { public static void main(String[] args) {
String password="12rehkkkfbhksskkhbssrktbsr3456gbibvbybkfnriowernolwgrojgbrqg"; String password = "12rehkkkfbhksskkhbssrktbsr3456gbibvbybkfnriowernolwgrojgbrqg";
String encrypt = encrypt(password); String encrypt = encrypt(password);
System.out.println(encrypt); System.out.println(encrypt);
System.out.println(match(encrypt, password)); System.out.println(match(encrypt, password));
......
package com.fzm.common.utils; package com.fzm.common.utils;
import java.awt.BasicStroke; import com.fzm.common.model.BufferedImageLuminanceSource;
import java.awt.Graphics; import com.google.zxing.*;
import java.awt.Graphics2D; import com.google.zxing.common.BitMatrix;
import java.awt.Image; import com.google.zxing.common.HybridBinarizer;
import java.awt.Shape; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import sun.misc.BASE64Encoder;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.RoundRectangle2D; import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
...@@ -12,20 +16,6 @@ import java.io.File; ...@@ -12,20 +16,6 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.Hashtable; import java.util.Hashtable;
import javax.imageio.ImageIO;
import com.fzm.common.model.BufferedImageLuminanceSource;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import sun.misc.BASE64Encoder;
public class QRCodeUtil { public class QRCodeUtil {
private static final String CHARSET = "utf-8"; private static final String CHARSET = "utf-8";
...@@ -113,7 +103,7 @@ public class QRCodeUtil { ...@@ -113,7 +103,7 @@ public class QRCodeUtil {
BASE64Encoder encoder = new BASE64Encoder(); BASE64Encoder encoder = new BASE64Encoder();
String png_base64 = encoder.encodeBuffer(bytes).trim();//转换成base64串 String png_base64 = encoder.encodeBuffer(bytes).trim();//转换成base64串
png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n
System.out.println("值为:" + "data:image/jpg;base64," + png_base64);
return "data:image/jpg;base64," + png_base64; return "data:image/jpg;base64," + png_base64;
} }
......
...@@ -9,6 +9,7 @@ import cn.hutool.json.JSONObject; ...@@ -9,6 +9,7 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
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.properties.DebugProperties;
import com.fzm.common.properties.SmsProperties; import com.fzm.common.properties.SmsProperties;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -26,6 +27,9 @@ public class SmsUtil { ...@@ -26,6 +27,9 @@ public class SmsUtil {
@Resource @Resource
private SmsProperties smsProperties; private SmsProperties smsProperties;
@Resource
private DebugProperties debugProperties;
public static String getStringToSignOfStr(Map<String, Object> map) { public static String getStringToSignOfStr(Map<String, Object> map) {
TreeMap<String, String> treeMap = new TreeMap<>(); TreeMap<String, String> treeMap = new TreeMap<>();
...@@ -63,13 +67,17 @@ public class SmsUtil { ...@@ -63,13 +67,17 @@ public class SmsUtil {
* @return * @return
*/ */
public Boolean sendSms(String codetype, String mobile) { public Boolean sendSms(String codetype, String mobile) {
if (debugProperties.getSms()) {
return true;
}
String timestamp = getTimestamp(); String timestamp = getTimestamp();
HashMap<String, Object> params = new HashMap<>(); HashMap<String, Object> params = new HashMap<>();
params.put("mobile", mobile); params.put("mobile", mobile);
params.put("codetype", codetype); params.put("codetype", codetype);
params.put("param", "FzmRandom4"); params.put("param", "FzmRandom4");
String paramStr = getStringToSignOfStr(params); String paramStr = getStringToSignOfStr(params);
System.out.println(paramStr);
String sign = getSign(smsProperties.getAppKey(), smsProperties.getAppSecret(), paramStr, timestamp); String sign = getSign(smsProperties.getAppKey(), smsProperties.getAppSecret(), paramStr, timestamp);
HttpResponse response = HttpRequest.post(smsProperties.getSendSmsUrl()). HttpResponse response = HttpRequest.post(smsProperties.getSendSmsUrl()).
header("FZM-Ca-Timestamp", timestamp). header("FZM-Ca-Timestamp", timestamp).
...@@ -94,13 +102,17 @@ public class SmsUtil { ...@@ -94,13 +102,17 @@ public class SmsUtil {
* @return * @return
*/ */
public Boolean sendRefundSms(String mobile, String fee) { public Boolean sendRefundSms(String mobile, String fee) {
if (debugProperties.getSms()) {
return true;
}
String timestamp = getTimestamp(); String timestamp = getTimestamp();
HashMap<String, Object> params = new HashMap<>(); HashMap<String, Object> params = new HashMap<>();
params.put("mobile", mobile); params.put("mobile", mobile);
params.put("codetype", smsProperties.getRefundMessageCodetype()); params.put("codetype", smsProperties.getRefundMessageCodetype());
params.put("param", fee); params.put("param", fee);
String paramStr = getStringToSignOfStr(params); String paramStr = getStringToSignOfStr(params);
System.out.println(paramStr);
String sign = getSign(smsProperties.getAppKey(), smsProperties.getAppSecret(), paramStr, timestamp); String sign = getSign(smsProperties.getAppKey(), smsProperties.getAppSecret(), paramStr, timestamp);
HttpResponse response = HttpRequest.post(smsProperties.getSendSmsUrl()). HttpResponse response = HttpRequest.post(smsProperties.getSendSmsUrl()).
header("FZM-Ca-Timestamp", timestamp). header("FZM-Ca-Timestamp", timestamp).
...@@ -124,6 +136,10 @@ public class SmsUtil { ...@@ -124,6 +136,10 @@ public class SmsUtil {
* @return * @return
*/ */
public Boolean validateCode(String codetype, String mobile, String code, String type) { public Boolean validateCode(String codetype, String mobile, String code, String type) {
if (debugProperties.getSms()) {
return true;
}
String timestamp = getTimestamp(); String timestamp = getTimestamp();
HashMap<String, Object> paramMap = new HashMap<>(); HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("t", type); paramMap.put("t", type);
......
package com.fzm.common.utils; package com.fzm.common.utils;
import com.fzm.common.enums.IdCardVerificationResponse;
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.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.Credential;
......
...@@ -102,11 +102,13 @@ ...@@ -102,11 +102,13 @@
a.is_commemorate a.is_commemorate
FROM tb_nft a FROM tb_nft a
WHERE a.user_id = #{userId} WHERE a.user_id = #{userId}
AND publish_status = 2 AND publish_status = 2
AND nft_hash NOT IN ( SELECT nft_hash FROM tb_copyright_apply) AND nft_hash NOT IN (SELECT nft_hash FROM tb_copyright_apply)
</select> </select>
<select id="get" resultType="com.fzm.common.entity.Nft"> <select id="get" resultType="com.fzm.common.entity.Nft">
select * from tb_nft where nft_hash != '' select *
from tb_nft
where nft_hash != ''
</select> </select>
</mapper> </mapper>
\ No newline at end of file
This diff is collapsed.
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<dependency> <dependency>
<groupId>com.fzm</groupId> <groupId>com.fzm</groupId>
<artifactId>joying-common</artifactId> <artifactId>joying-common</artifactId>
<version>1.0.0</version> <version>1.1.0</version>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -7,7 +7,10 @@ import com.fzm.common.service.ChargeService; ...@@ -7,7 +7,10 @@ import com.fzm.common.service.ChargeService;
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.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
......
...@@ -112,7 +112,7 @@ public class CopyrightApplyController { ...@@ -112,7 +112,7 @@ public class CopyrightApplyController {
@GetMapping("/certificate/{id}") @GetMapping("/certificate/{id}")
@ApiOperation(value = "查看版权存证证书") @ApiOperation(value = "查看版权存证证书")
public ResponseModel<CopyrightCertificateVo> getCertificate(@PathVariable Integer id){ public ResponseModel<CopyrightCertificateVo> getCertificate(@PathVariable Integer id) {
CopyrightCertificateVo copyrightCertificateVo = copyrightApplyService.getCertificate(id); CopyrightCertificateVo copyrightCertificateVo = copyrightApplyService.getCertificate(id);
return ResponseModel.success(copyrightCertificateVo); return ResponseModel.success(copyrightCertificateVo);
} }
......
...@@ -3,7 +3,6 @@ package com.fzm.portal.controller; ...@@ -3,7 +3,6 @@ package com.fzm.portal.controller;
import com.fzm.common.annotation.Authentication; import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.Draft; import com.fzm.common.entity.Draft;
import com.fzm.common.entity.dto.DraftDTO; import com.fzm.common.entity.dto.DraftDTO;
import com.fzm.common.entity.vo.CopyrightVo;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.DraftService; import com.fzm.common.service.DraftService;
import com.fzm.common.utils.JwtUtil; import com.fzm.common.utils.JwtUtil;
......
...@@ -12,7 +12,6 @@ import org.springframework.validation.annotation.Validated; ...@@ -12,7 +12,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid;
/** /**
* @author tangtuo * @author tangtuo
......
...@@ -6,7 +6,6 @@ import com.fzm.common.service.FileTemplateService; ...@@ -6,7 +6,6 @@ import com.fzm.common.service.FileTemplateService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
......
...@@ -3,7 +3,6 @@ package com.fzm.portal.controller; ...@@ -3,7 +3,6 @@ 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.entity.Nft; import com.fzm.common.entity.Nft;
import com.fzm.common.entity.NftDto;
import com.fzm.common.entity.User; import com.fzm.common.entity.User;
import com.fzm.common.entity.vo.CollectionNftVo; import com.fzm.common.entity.vo.CollectionNftVo;
import com.fzm.common.entity.vo.NftCertificateVo; import com.fzm.common.entity.vo.NftCertificateVo;
......
...@@ -4,12 +4,14 @@ import com.fzm.common.annotation.Authentication; ...@@ -4,12 +4,14 @@ import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.vo.NftTransferDetailVo; import com.fzm.common.entity.vo.NftTransferDetailVo;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.NftTransferRecordService; import com.fzm.common.service.NftTransferRecordService;
import com.fzm.common.utils.JwtUtil;
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 lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
...@@ -37,7 +39,7 @@ public class NftTransferRecordController { ...@@ -37,7 +39,7 @@ public class NftTransferRecordController {
@GetMapping("/detail/{id}") @GetMapping("/detail/{id}")
@ApiOperation(value = "获取流转详情") @ApiOperation(value = "获取流转详情")
public ResponseModel<NftTransferDetailVo> getDetail(@PathVariable Integer id){ public ResponseModel<NftTransferDetailVo> getDetail(@PathVariable Integer id) {
NftTransferDetailVo nftTransferDetailVo = nftTransferRecordService.getDetail(id); NftTransferDetailVo nftTransferDetailVo = nftTransferRecordService.getDetail(id);
return ResponseModel.success(nftTransferDetailVo); return ResponseModel.success(nftTransferDetailVo);
} }
......
...@@ -128,7 +128,7 @@ public class UserController { ...@@ -128,7 +128,7 @@ public class UserController {
@ApiOperation(value = "个人认证") @ApiOperation(value = "个人认证")
public ResponseModel<IdCardOCRVerificationResponse> personAuth(@ApiParam("身份证正面照") @RequestParam MultipartFile front, public ResponseModel<IdCardOCRVerificationResponse> personAuth(@ApiParam("身份证正面照") @RequestParam MultipartFile front,
@ApiParam("身份证反面照") @RequestParam MultipartFile back) throws IOException { @ApiParam("身份证反面照") @RequestParam MultipartFile back) throws IOException {
return ResponseModel.success(userService.personAuth(front,back)); return ResponseModel.success(userService.personAuth(front, back));
} }
......
...@@ -3,7 +3,6 @@ package com.fzm.portal.controller; ...@@ -3,7 +3,6 @@ package com.fzm.portal.controller;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import com.fzm.common.annotation.Authentication; import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.dto.JsapiPayDto; import com.fzm.common.entity.dto.JsapiPayDto;
import com.fzm.common.entity.dto.OrderDto;
import com.fzm.common.enums.RefundLaunchChannel; import com.fzm.common.enums.RefundLaunchChannel;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.WxPayService; import com.fzm.common.service.WxPayService;
......
...@@ -21,8 +21,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; ...@@ -21,8 +21,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException;
import java.util.Date;
/** /**
* @author tangtuo * @author tangtuo
......
...@@ -14,7 +14,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; ...@@ -14,7 +14,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException;
/** /**
* @author tangtuo * @author tangtuo
......
server:
port: 8001
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
username: root
password: Joying@123456
platform: mysql
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
filters: stat ,wall
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
useGlobalDataSourceStat: true
redis:
host: 172.16.101.135
port: 6379
password: 123456
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
max-active: 100
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait: -1
# 连接池中的最大空闲连接 默认 8
max-idle: 8
# 连接池中的最小空闲连接 默认 0
min-idle: 0
cache:
# 整合SpringCache,redis作为缓存类型
type: redis
redis:
time-to-live: 86400000
rabbitmq:
host: 172.16.101.135
port: 5672
username: admin
password: admin
listener:
simple:
retry:
enabled: true
max-attempts: 5 # 最大重试次数
initial-interval: 1000 # 初始的失败等待时长为1秒
multiplier: 2 # 下次失败的等待时长倍数,下次等待时长 = multiplier * last-interval
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
swagger:
title: 乐映影视门户系统
description: 乐映影视门户系统RESTFUL API
version: 1.0.0
base-package: com.fzm.portal.controller
base-path: /**
enabled: true
globalOperationParameters:
- description: Authorization
modelRef: string
name: Authorization
parameterType: header
required: false
contact:
name: tangtuo
email: ttuo@33.com
sms:
app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn
login-message-codetype: quick
login-email-codetype: quick
login-voice-codetype: quick
send-sms-url: http://118.31.52.32/send/sms2
validate-code-url: http://118.31.52.32/validate/code
transfer-nft-message-codetype: notice_transfer
transfer-nft-email-codetype: notice_transfer
transfer-nft-voice-codetype: notice_transfer
refund-message-codetype: notice_refund
chain:
para:
rpc-url: http://119.8.39.159:8901
withhold:
withhold-key: a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
token-manager:
token-manager-key: 4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title: user.p.FILMCHAIN.
cName: user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f
cAddr: 1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX
huaweiyun:
obs:
app-key: HIULSHJZJOTWB72Z38ZB
app-secret: GI0oWEGRJuMKmPXJq2fCmuMpFPIITLmjeCQxo2tA
end-point: obs.cn-east-3.myhuaweicloud.com
bucket: filmchain-file
wx-pay:
app-id: wxbdddd81913c795e9
app-secret: aa201717c46a0e07c4c143b1ee73229a
mch-id: 1604477044
api-v3-key: D864DA53FEF8ACD41519064967DC10D2
mch-serial-num: 72A62544B0A08A214FAEC780108692EDC6E7D5FA
private-key-path: apiclient_key.pem
pay-notify-url: https://146.56.218.121:12100/wx-pay/notify/jsapi
refund-notify-url: https://146.56.218.121:12100/wx-pay/notify/refund
server:
port: 8001
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
username: root
password: Joying@123456
platform: mysql
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
filters: stat ,wall
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
useGlobalDataSourceStat: true
redis:
host: 172.16.101.135
port: 6379
password: 123456
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
max-active: 100
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait: -1
# 连接池中的最大空闲连接 默认 8
max-idle: 8
# 连接池中的最小空闲连接 默认 0
min-idle: 0
cache:
# 整合SpringCache,redis作为缓存类型
type: redis
redis:
time-to-live: 86400000
rabbitmq:
host: 10.0.0.81
port: 5672
username: admin
password: admin
listener:
simple:
retry:
enabled: true
max-attempts: 5 # 最大重试次数
initial-interval: 1000 # 初始的失败等待时长为1秒
multiplier: 2 # 下次失败的等待时长倍数,下次等待时长 = multiplier * last-interval
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
swagger:
title: 乐映影视门户系统
description: 乐映影视门户系统RESTFUL API
version: 1.0.0
base-package: com.fzm.portal.controller
base-path: /**
enabled: true
globalOperationParameters:
- description: Authorization
modelRef: string
name: Authorization
parameterType: header
required: false
contact:
name: tangtuo
email: ttuo@33.com
sms:
app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn
login-message-codetype: quick
login-email-codetype: quick
login-voice-codetype: quick
send-sms-url: http://118.31.52.32/send/sms2
validate-code-url: http://118.31.52.32/validate/code
transfer-nft-message-codetype: notice_transfer
transfer-nft-email-codetype: notice_transfer
transfer-nft-voice-codetype: notice_transfer
refund-message-codetype: notice_refund
chain:
para:
rpc-url: http://119.8.39.159:8901
withhold:
withhold-key: a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
token-manager:
token-manager-key: 4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title: user.p.FILMCHAIN.
cName: user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f
cAddr: 1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX
huaweiyun:
obs:
app-key: HIULSHJZJOTWB72Z38ZB
app-secret: GI0oWEGRJuMKmPXJq2fCmuMpFPIITLmjeCQxo2tA
end-point: obs.cn-east-3.myhuaweicloud.com
bucket: filmchain-file
wx-pay:
app-id: wxbdddd81913c795e9
app-secret: aa201717c46a0e07c4c143b1ee73229a
mch-id: 1604477044
api-v3-key: D864DA53FEF8ACD41519064967DC10D2
mch-serial-num: 72A62544B0A08A214FAEC780108692EDC6E7D5FA
private-key-path: apiclient_key.pem
pay-notify-url: https://146.56.218.121:12100/wx-pay/notify/jsapi
refund-notify-url: https://146.56.218.121:12100/wx-pay/notify/refund
\ No newline at end of file
server: server:
port: 8001 port: 8001
spring: spring:
application:
name: joying-portal
servlet:
multipart:
max-file-size: 1GB
max-request-size: 10GB
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
datasource: datasource:
...@@ -60,8 +69,8 @@ spring: ...@@ -60,8 +69,8 @@ spring:
multiplier: 2 # 下次失败的等待时长倍数,下次等待时长 = multiplier * last-interval multiplier: 2 # 下次失败的等待时长倍数,下次等待时长 = multiplier * last-interval
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
swagger: swagger:
title: 乐映影视门户系统 title: '乐映影视门户系统'
description: 乐映影视门户系统RESTFUL API description: '乐映影视门户系统RESTFUL API'
version: 1.0.0 version: 1.0.0
base-package: com.fzm.portal.controller base-package: com.fzm.portal.controller
base-path: /** base-path: /**
...@@ -76,6 +85,16 @@ swagger: ...@@ -76,6 +85,16 @@ swagger:
name: tangtuo name: tangtuo
email: ttuo@33.com email: ttuo@33.com
mybatis-plus:
type-aliases-package: com.fzm.common.entity
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
debug:
sms: false
auth: false
sms: sms:
app-key: Yiru app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn app-secret: mx5oaR^RY8!(ziHn
......
server: server:
port: 8001 port: 8001
spring: spring:
application:
name: joying-portal
servlet:
multipart:
max-file-size: 1GB
max-request-size: 10GB
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
datasource: datasource:
...@@ -61,8 +70,8 @@ spring: ...@@ -61,8 +70,8 @@ spring:
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
swagger: swagger:
title: 乐映影视门户系统 title: '乐映影视门户系统'
description: 乐映影视门户系统RESTFUL API description: '乐映影视门户系统RESTFUL API'
version: 1.0.0 version: 1.0.0
base-package: com.fzm.portal.controller base-package: com.fzm.portal.controller
base-path: /** base-path: /**
...@@ -77,6 +86,16 @@ swagger: ...@@ -77,6 +86,16 @@ swagger:
name: tangtuo name: tangtuo
email: ttuo@33.com email: ttuo@33.com
mybatis-plus:
type-aliases-package: com.fzm.common.entity
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
debug:
sms: false
auth: false
sms: sms:
app-key: Yiru app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn app-secret: mx5oaR^RY8!(ziHn
......
server:
port: 8001
spring: spring:
profiles:
active: dev
application: application:
name: joying-portal name: joying-portal
servlet: servlet:
...@@ -10,15 +10,128 @@ spring: ...@@ -10,15 +10,128 @@ spring:
jackson: jackson:
time-zone: GMT+8 time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss date-format: yyyy-MM-dd HH:mm:ss
main:
allow-bean-definition-overriding: true
datasource:
url: jdbc:mysql://172.16.101.135:3306/joying_dev?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
username: root
password: Joying@123456
platform: mysql
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
filters: stat ,wall
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
useGlobalDataSourceStat: true
redis:
host: 172.16.101.135
port: 6379
password: 123456
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
max-active: 100
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait: -1
# 连接池中的最大空闲连接 默认 8
max-idle: 8
# 连接池中的最小空闲连接 默认 0
min-idle: 0
cache:
# 整合SpringCache,redis作为缓存类型
type: redis
redis:
time-to-live: 86400000
rabbitmq:
host: 172.16.101.135
port: 5672
username: admin
password: admin
listener:
simple:
retry:
enabled: true
max-attempts: 5 # 最大重试次数
initial-interval: 1000 # 初始的失败等待时长为1秒
multiplier: 2 # 下次失败的等待时长倍数,下次等待时长 = multiplier * last-interval
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
swagger:
title: '乐映影视门户系统'
description: '乐映影视门户系统RESTFUL API'
version: 1.0.0
base-package: com.fzm.portal.controller
base-path: /**
enabled: true
globalOperationParameters:
- description: Authorization
modelRef: string
name: Authorization
parameterType: header
required: false
contact:
name: tangtuo
email: ttuo@33.com
mybatis-plus: mybatis-plus:
type-aliases-package: com.fzm.common.entity type-aliases-package: com.fzm.common.entity
mapper-locations: classpath:mapper/*.xml mapper-locations: classpath:mapper/*.xml
configuration: configuration:
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
logging: debug:
level: sms: true
com.fzm.common.mapper: debug auth: true
sms:
app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn
login-message-codetype: quick
login-email-codetype: quick
login-voice-codetype: quick
send-sms-url: http://118.31.52.32/send/sms2
validate-code-url: http://118.31.52.32/validate/code
transfer-nft-message-codetype: notice_transfer
transfer-nft-email-codetype: notice_transfer
transfer-nft-voice-codetype: notice_transfer
refund-message-codetype: notice_refund
chain:
para:
rpc-url: http://119.8.39.159:8901
withhold:
withhold-key: a4c49dcb35e0032dc8db5891dc81481943b68fc558ce93ce74d0382c1d104934
token-manager:
token-manager-key: 4e92bda2477ded0e7c07a9e3acd2370de8d7401c68cc83ee8376806db3121e77
title: user.p.FILMCHAIN.
cName: user.evm.0xa038a372ab27d9038328932c98454e52390b94555a69ab9559e8ab14ff2e540f
cAddr: 1Nhju8CgSUmkQQwc7ECk4bFxnv48iRLNRX
huaweiyun:
obs:
app-key: HIULSHJZJOTWB72Z38ZB
app-secret: GI0oWEGRJuMKmPXJq2fCmuMpFPIITLmjeCQxo2tA
end-point: obs.cn-east-3.myhuaweicloud.com
bucket: filmchain-file
wx-pay:
app-id: wxbdddd81913c795e9
app-secret: aa201717c46a0e07c4c143b1ee73229a
mch-id: 1604477044
api-v3-key: D864DA53FEF8ACD41519064967DC10D2
mch-serial-num: 72A62544B0A08A214FAEC780108692EDC6E7D5FA
private-key-path: apiclient_key.pem
pay-notify-url: https://146.56.218.121:12100/wx-pay/notify/jsapi
refund-notify-url: https://146.56.218.121:12100/wx-pay/notify/refund
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</contextName>
<!--日志路径--> <configuration debug="false">
<property name="LOG_HOME" value="logs"/> <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{12} - %msg%n"/>
<!--日志格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %logger{50}:表示logger名字最长50个字符,否则按照句点分割 %msg:日志消息,%n是换行符 --> <property name="log.path" value="/app/logs/fuzamei/hz"/>
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n"/> <property name="log.name" value="joying"/>
<!-- 控制台 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志格式 -->
<encoder> <encoder>
<pattern>${LOG_PATTERN}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> <charset>UTF-8</charset>
</encoder> </encoder>
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender> </appender>
<!--输出到文件--> <!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/${log.name}/info.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${log.path}/${log.name}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2、全部日志时间滚动输出 --> <!-- 时间滚动输出 level为 WARN 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 循环政策:基于时间创建日志文件 --> <!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/${log.name}/warn.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志命名:单个文件大于50MB 按照时间+自增i 生成log文件 --> <fileNamePattern>${log.path}/${log.name}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<fileNamePattern>${LOG_HOME}/logback.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize> <maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy> </timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>180</maxHistory> <!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy> </rollingPolicy>
<append>true</append> <!-- 此日志文件只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/${log.name}/error.log</file>
<!--日志文件输出格式-->
<encoder> <encoder>
<pattern>${LOG_PATTERN}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> <charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder> </encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/${log.name}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender> </appender>
<logger name="org.apache.coyote.http11.Http11Processor" level="warn"/>
<logger name="org.apache.tomcat.util.http.parser.Cookie" level="warn"/>
<logger name="org.apache.http.client.protocol.ResponseProcessCookies" level="error"/>
<logger name="org.springframework.data.convert.CustomConversions" level="error"/>
<root level="INFO"> <root level="INFO">
<!--开发环境和本地:--> <!-- 控制台输出 -->
<springProfile name="local"> <appender-ref ref="STDOUT"/>
<appender-ref ref="CONSOLE"/> <!-- 文件输出 -->
</springProfile> <appender-ref ref="INFO"/>
<springProfile name="dev"> <appender-ref ref="WARN"/>
<appender-ref ref="CONSOLE"/> <appender-ref ref="ERROR"/>
<appender-ref ref="INFO_FILE"/>
</springProfile>
<springProfile name="prod">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="INFO_FILE"/>
</springProfile>
<springProfile name="nj">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="INFO_FILE"/>
</springProfile>
</root> </root>
</configuration> </configuration>
\ No newline at end of file
package com.fzm.portal; package com.fzm.portal;
import cn.hutool.crypto.SecureUtil;
import java.io.File;
import java.util.TreeMap; import java.util.TreeMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Semaphore;
/** /**
* @author tangtuo * @author tangtuo
......
package com.fzm.portal; package com.fzm.portal;
import cn.fzm.chain.simplesdk.client.ParaChainClient; import cn.fzm.chain.simplesdk.client.ParaChainClient;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import com.fzm.common.constant.RedisConstant;
import com.fzm.common.entity.CopyrightAuthorityRelation;
import com.fzm.common.entity.OpusCategory;
import com.fzm.common.entity.dto.CopyrightRequest;
import com.fzm.common.entity.vo.CopyrightVo;
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.properties.CopyrightProperties; import com.fzm.common.properties.CopyrightProperties;
import com.fzm.common.service.CopyrightApplyService; import com.fzm.common.service.CopyrightApplyService;
import com.fzm.common.service.CopyrightAuthorityRelationService;
import com.fzm.common.service.OpusCategoryService; import com.fzm.common.service.OpusCategoryService;
import com.fzm.common.service.impl.CopyrightAuthorityRelationServiceImpl;
import com.fzm.common.utils.JsonUtil;
import com.fzm.common.utils.RedisUtil; import com.fzm.common.utils.RedisUtil;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.redisson.Redisson;
import org.redisson.api.RSemaphore; import org.redisson.api.RSemaphore;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
@SpringBootTest @SpringBootTest
......
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
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