Commit 913a5e9e authored by 33's avatar 33

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

parent 232fed80
**乐映影视:**
项目主要采用的框架是spring-boot mybatis-plus sa-token 等, 数据库采用的是mysql,缓存用的是redis
项目主要分为三个模块:
----joying-admin 后台管理系统
----joying-portal 门户系统
----joying-common 公共模块
项目主要采用的框架是spring-boot mybatis-plus sa-token 等, 数据库采用的是mysql,缓存用的是redis 项目主要分为三个模块: ----joying-admin 后台管理系统
----joying-portal 门户系统 ----joying-common 公共模块
1、变成规范
......
......@@ -34,31 +34,32 @@
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -z "$MAVEN_SKIP_RC" ]; then
if [ -f /etc/mavenrc ] ; then
if [ -f /etc/mavenrc ]; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
if [ -f "$HOME/.mavenrc" ]; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
cygwin=false
darwin=false
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
case "$(uname)" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true ;;
Darwin*)
darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
export JAVA_HOME="$(/usr/libexec/java_home)"
else
export JAVA_HOME="/Library/Java/Home"
fi
......@@ -66,96 +67,102 @@ case "`uname`" in
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
if [ -z "$JAVA_HOME" ]; then
if [ -r /etc/gentoo-release ]; then
JAVA_HOME=$(java-config --jre-home)
fi
fi
if [ -z "$M2_HOME" ] ; then
if [ -z "$M2_HOME" ]; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
while [ -h "$PRG" ]; do
ls=$(ls -ld "$PRG")
link=$(expr "$ls" : '.*-> \(.*\)$')
if expr "$link" : '/.*' >/dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
PRG="$(dirname "$PRG")/$link"
fi
done
saveddir=`pwd`
saveddir=$(pwd)
M2_HOME=`dirname "$PRG"`/..
M2_HOME=$(dirname "$PRG")/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
M2_HOME=$(cd "$M2_HOME" && pwd)
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
M2_HOME=$(cygpath --unix "$M2_HOME")
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
if $mingw; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
M2_HOME="$( (
cd "$M2_HOME"
pwd
))"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
JAVA_HOME="$( (
cd "$JAVA_HOME"
pwd
))"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
javaExecutable="$(which javac)"
if [ -n "$javaExecutable" ] && ! [ "$(expr \"$javaExecutable\" : '\([^ ]*\)')" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
readLink=$(which readlink)
if [ ! $(expr "$readLink" : '\([^ ]*\)') = "no" ]; then
if $darwin; then
javaHome="$(dirname \"$javaExecutable\")"
javaExecutable="$(cd \"$javaHome\" && pwd -P)/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
javaExecutable="$(readlink -f \"$javaExecutable\")"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
javaHome="$(dirname \"$javaExecutable\")"
javaHome=$(expr "$javaHome" : '\(.*\)/bin')
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
if [ -z "$JAVACMD" ]; then
if [ -n "$JAVA_HOME" ]; then
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
JAVACMD="$(which java)"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
if [ ! -x "$JAVACMD" ]; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
if [ -z "$JAVA_HOME" ]; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
......@@ -165,22 +172,24 @@ CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
if [ -z "$1" ]; then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
while [ "$wdir" != '/' ]; do
if [ -d "$wdir"/.mvn ]; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
wdir=$(
cd "$wdir/.."
pwd
)
fi
# end of workaround
done
......@@ -190,13 +199,13 @@ find_maven_basedir() {
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
echo "$(tr -s '\n' ' ' <"$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
BASE_DIR=$(find_maven_basedir "$(pwd)")
if [ -z "$BASE_DIR" ]; then
exit 1;
exit 1
fi
##########################################################################################
......@@ -217,18 +226,21 @@ else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
case "$key" in wrapperUrl)
jarUrl="$value"
break
;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
done <"$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
fi
if command -v wget > /dev/null; then
if command -v wget >/dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
......@@ -237,7 +249,7 @@ else
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
elif command -v curl >/dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
......@@ -254,7 +266,7 @@ else
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
javaClass=$(cygpath --path --windows "$javaClass")
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
......@@ -287,13 +299,13 @@ MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
M2_HOME=$(cygpath --path --windows "$M2_HOME")
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
fi
# Provide a "standardized" way to retrieve the CLI args that will
......
......@@ -29,7 +29,7 @@
<dependency>
<groupId>com.fzm</groupId>
<artifactId>joying-common</artifactId>
<version>1.0.0</version>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
......
package com.fzm.admin;
import com.fzm.common.config.WxPayConfig;
import com.spring4all.swagger.EnableSwagger2Doc;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
......
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.common.constant.RedisConstant;
import com.fzm.common.constant.TokenConstant;
import com.fzm.common.entity.Admin;
import com.fzm.common.model.ResponseModel;
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.ApiOperation;
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 java.util.HashMap;
......
......@@ -4,14 +4,14 @@ import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.EntrustShelf;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.EntrustShelfService;
import com.fzm.common.valid.InsertGroup;
import com.fzm.common.valid.UpdateGroup;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.validation.annotation.Validated;
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;
......
......@@ -13,7 +13,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
......
......@@ -11,7 +11,10 @@ import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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 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:
port: 8002
spring:
application:
name: ly-admin
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
main:
allow-bean-definition-overriding: true
datasource:
......@@ -56,8 +61,8 @@ spring:
simple:
acknowledge-mode: manual #acknowledge-mode: none,关闭ack;manual,手动ack;auto:自动ack
swagger:
title: 乐映影视后台管理系统
description: 乐映影视后台管理系统RESTFUL API
title: '乐映影视后台管理系统'
description: '乐映影视后台管理系统RESTFUL API'
version: 1.0.0
base-package: com.fzm.admin.controller
base-path: /**
......@@ -72,6 +77,16 @@ swagger:
name: tangtuo
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:
para:
rpcUrl: http://146.56.197.42:12021
......
server:
port: 8002
spring:
application:
name: ly-admin
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
main:
allow-bean-definition-overriding: true
datasource:
......@@ -56,8 +61,8 @@ spring:
simple:
acknowledge-mode: manual #acknowledge-mode: none,关闭ack;manual,手动ack;auto:自动ack
swagger:
title: 乐映影视后台管理系统
description: 乐映影视后台管理系统RESTFUL API
title: '乐映影视后台管理系统'
description: '乐映影视后台管理系统RESTFUL API'
version: 1.0.0
base-package: com.fzm.admin.controller
base-path: /**
......@@ -72,6 +77,16 @@ swagger:
name: tangtuo
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:
para:
rpc-url: http://119.8.39.159:8901
......
server:
port: 8002
spring:
profiles:
active: nj
application:
name: ly-admin
jackson:
time-zone: GMT+8
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:
type-aliases-package: com.fzm.common.entity
......@@ -14,7 +82,54 @@ mybatis-plus:
configuration:
map-underscore-to-camel-case: true
logging:
level:
com.fzm.common.mapper: debug
debug:
sms: true
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"?>
<!-- 日志级别从低到高分为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>
<!--日志路径-->
<property name="LOG_HOME" value="logs"/>
<!--日志格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %logger{50}:表示logger名字最长50个字符,否则按照句点分割 %msg:日志消息,%n是换行符 -->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n"/>
<configuration debug="false">
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{12} - %msg%n"/>
<property name="log.path" value="/app/logs/fuzamei/hz"/>
<property name="log.name" value="joying-admin"/>
<!-- 控制台 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志格式 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</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、全部日志时间滚动输出 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 循环政策:基于时间创建日志文件 -->
<!-- 时间滚动输出 level为 WARN 日志 -->
<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">
<!-- 日志命名:单个文件大于50MB 按照时间+自增i 生成log文件 -->
<fileNamePattern>${LOG_HOME}/logback.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<fileNamePattern>${log.path}/${log.name}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>180</maxHistory>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</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>
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</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>
<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">
<!--开发环境和本地:-->
<springProfile name="local">
<appender-ref ref="CONSOLE"/>
</springProfile>
<springProfile name="dev">
<appender-ref ref="CONSOLE"/>
<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>
<!-- 控制台输出 -->
<appender-ref ref="STDOUT"/>
<!-- 文件输出 -->
<appender-ref ref="INFO"/>
<appender-ref ref="WARN"/>
<appender-ref ref="ERROR"/>
</root>
</configuration>
\ No newline at end of file
......@@ -6,5 +6,4 @@ import org.springframework.boot.test.context.SpringBootTest;
class LyAdminApplicationTests {
}
......@@ -5,7 +5,7 @@
<parent>
<artifactId>fzm-joying</artifactId>
<groupId>com.fzm</groupId>
<version>1.0.0</version>
<version>1.1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>joying-common</artifactId>
......@@ -111,6 +111,12 @@
<artifactId>wechatpay-apache-httpclient</artifactId>
<version>0.4.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.79</version>
</dependency>
</dependencies>
<properties>
......
......@@ -15,6 +15,7 @@ public class InterceptorConfig implements WebMvcConfigurer {
.excludePathPatterns("/user/login", "/admin/login", "/verificationCode/send/sms")
.addPathPatterns("/**");
}
@Bean
public AuthenticationInterceptor authenticationInterceptor() {
return new AuthenticationInterceptor();
......
......@@ -6,10 +6,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
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 {
@Override
public void insertFill(MetaObject metaObject) {
if (log.isDebugEnabled()) {
log.debug("start insert fill ....");
}
Long currentTime = SystemClock.now();
this.setFieldValByName("createTime", currentTime, metaObject);
this.setFieldValByName("updateTime", currentTime, metaObject);
......@@ -27,7 +26,10 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void updateFill(MetaObject metaObject) {
if (log.isDebugEnabled()) {
log.debug("start update fill ....");
}
Long currentTime = SystemClock.now();
this.setFieldValByName("updateTime", currentTime, metaObject);
}
......
......@@ -48,7 +48,6 @@ public class RabbitMQConfig {
}
/**
* 用户追加tokenInfo时,通过evmSetTokenInfo()方法得到交易hash,然后通过getRealTxHashFromGrp()得到真实哈希,
* 但是需要阻塞3秒左右才能查到真实哈希,所以这里使用死信加延时队列
......
......@@ -6,7 +6,6 @@ import org.redisson.config.Config;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import javax.annotation.Resource;
......
......@@ -13,7 +13,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
public class SecurityConfig {
@Bean
public PasswordEncoder passwordEncoder(){
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
......@@ -9,8 +9,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.util.Date;
/**
......
......@@ -12,7 +12,7 @@ import lombok.experimental.Accessors;
@Data
@TableName("tb_category")
@Accessors(chain = true)
public class Category extends BaseEntity{
public class Category extends BaseEntity {
@ApiModelProperty("类目名称")
private String categoryName;
......
......@@ -9,8 +9,6 @@ import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Stream;
......
......@@ -94,7 +94,7 @@ public class CopyrightApplyOwnerRelation {
private Date updateDate;
public CopyrightApplyOwnerRelation(Integer copyrightId,CopyrightOwner copyrightOwner) {
public CopyrightApplyOwnerRelation(Integer copyrightId, CopyrightOwner copyrightOwner) {
this.copyrightId = copyrightId;
this.ownerId = copyrightOwner.getId();
BeanUtil.copyProperties(copyrightOwner, this, true);
......
package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
......
......@@ -3,7 +3,6 @@ package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
......
......@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
......
......@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
......
......@@ -2,7 +2,6 @@ package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import java.util.Date;
......
......@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
......
package com.fzm.common.entity.vo;
import cn.hutool.core.date.DateUtil;
import com.fzm.common.entity.CommemorateNft;
import com.fzm.common.entity.Nft;
import com.fzm.common.entity.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.fzm.common.entity.vo;
import cn.hutool.core.bean.BeanUtil;
import com.fzm.common.entity.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author tangtuo
......
package com.fzm.common.entity.vo;
import cn.hutool.core.date.DateUtil;
import com.fzm.common.entity.Nft;
import com.fzm.common.entity.User;
import io.swagger.annotations.ApiModelProperty;
......
package com.fzm.common.entity.vo;
import cn.hutool.core.date.DateUtil;
import com.fzm.common.entity.Nft;
import com.fzm.common.entity.User;
import io.swagger.annotations.ApiModelProperty;
......@@ -41,6 +40,6 @@ public class NftTransferVo {
this.avatar = user.getAvatar();
this.wallet = user.getWallet();
this.nickname = user.getNickname();
this.nftId=nft.getNftId();
this.nftId = nft.getNftId();
}
}
package com.fzm.common.entity.vo;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fzm.common.entity.Order;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
......@@ -3,7 +3,6 @@ package com.fzm.common.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
......
......@@ -9,9 +9,8 @@ import lombok.Getter;
@Getter
public enum AuthType {
PERSON(0,"个人认证"),
ENTERPRISE(1,"企业认证")
;
PERSON(0, "个人认证"),
ENTERPRISE(1, "企业认证");
private Integer type;
private String desc;
......
......@@ -10,12 +10,12 @@ import lombok.Getter;
@Getter
@AllArgsConstructor
public enum IdCardVerificationResponse {
SUCCESS("0","姓名和身份证号一致"),
FAILED1("-1","姓名和身份证号不一致"),
FAILED2("-2","非法身份证号(长度、校验位等不正确)"),
FAILED3("-3","非法姓名(长度、格式等不正确)"),
FAILED4("-4","证件库服务异常"),
FAILED5("-5","证件库中无此身份证记录"),
SUCCESS("0", "姓名和身份证号一致"),
FAILED1("-1", "姓名和身份证号不一致"),
FAILED2("-2", "非法身份证号(长度、校验位等不正确)"),
FAILED3("-3", "非法姓名(长度、格式等不正确)"),
FAILED4("-4", "证件库服务异常"),
FAILED5("-5", "证件库中无此身份证记录"),
;
private String code;
private String desc;
......
package com.fzm.common.enums;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import java.util.Arrays;
......
......@@ -11,9 +11,6 @@ import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
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.stream.Collectors;
......
package com.fzm.common.interceptor;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.constant.RedisConstant;
import com.fzm.common.constant.TokenConstant;
......
......@@ -2,7 +2,6 @@ package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.Admin;
import com.fzm.common.entity.Category;
import org.apache.ibatis.annotations.Mapper;
/**
......
......@@ -15,6 +15,7 @@ public interface CollectionMapper extends BaseMapper<TbCollection> {
/**
* 根据用户id查询所有收藏的nftId
*
* @param userId
* @return
*/
......
package com.fzm.common.mapper;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.Param;
import java.util.List;
/**
* @author tangtuo
......
......@@ -2,7 +2,6 @@ package com.fzm.common.mapper;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.AuthPerson;
import com.fzm.common.entity.NftTransferRecord;
import com.fzm.common.entity.vo.NftTransferDetailVo;
import com.fzm.common.entity.vo.NftTransferRecordVo;
......
package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.Admin;
import com.fzm.common.entity.OpusCategory;
import org.apache.ibatis.annotations.Mapper;
......
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.image.BufferedImage;
import com.google.zxing.LuminanceSource;
public class BufferedImageLuminanceSource extends LuminanceSource {
......
......@@ -3,8 +3,6 @@ package com.fzm.common.params;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author tangtuo
* @date 2021/6/23 15:33
......
......@@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
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;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @author tangtuo
......
package com.fzm.common.properties;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
......
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.Admin;
import com.fzm.common.entity.CommemorateNft;
/**
......
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.AuthPerson;
import com.fzm.common.entity.EntrustShelf;
import com.github.pagehelper.PageInfo;
......
......@@ -178,19 +178,20 @@ public interface NftService extends IService<Nft> {
/**
* 删除
*
* @param id
*/
void delete(Integer id);
/**
* 获取当前用户正在发行中的nft列表
* @return
*
* @param status
* @return
*/
List<Nft> getPublishingList(Integer status);
// void republish();
}
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.NftChainInfo;
import com.fzm.common.entity.NftTransferRecord;
import com.fzm.common.entity.vo.NftTransferDetailVo;
import com.fzm.common.entity.vo.NftTransferRecordVo;
......
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.Admin;
import com.fzm.common.entity.OpusCategory;
import java.util.List;
......
package com.fzm.common.service;
import cn.hutool.json.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fzm.common.entity.dto.JsapiPayDto;
import javax.servlet.http.HttpServletRequest;
......
......@@ -5,11 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.AuthPerson;
import com.fzm.common.mapper.AuthPersonMapper;
import com.fzm.common.service.AuthPersonService;
import jdk.nashorn.internal.ir.annotations.Reference;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @author tangtuo
* @date 2021/6/28 11:29
......
......@@ -5,10 +5,8 @@ import cn.fzm.chain.simplesdk.constant.EvmTokenEnum;
import cn.fzm.chain.simplesdk.constant.TxStatusEnum;
import cn.fzm.chain.simplesdk.model.TxResult;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.constant.RedisConstant;
......
......@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.CopyrightAuthor;
import com.fzm.common.entity.CopyrightFile;
import com.fzm.common.mapper.CopyrightAuthorMapper;
import com.fzm.common.service.CopyrightAuthorService;
import org.springframework.stereotype.Service;
......
......@@ -6,7 +6,6 @@ import com.fzm.common.entity.CopyrightAuthorityRelation;
import com.fzm.common.mapper.CopyrightAuthorityRelationMapper;
import com.fzm.common.service.CopyrightAuthorityRelationService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
......
......@@ -5,11 +5,9 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.dto.CopyrightDTO;
import com.fzm.common.entity.dto.DraftDTO;
import com.fzm.common.enums.CopyrightApplyState;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.DraftMapper;
......
......@@ -138,7 +138,7 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe
throw GlobalException.newException(ResultCode.FAILED, "nft发行失败");
}
String tradeHash = paraChainClient.evmSetTokenInfo(abi, contractAddr, 0L, tokenId, tokenInfo, wallet, privkey, true);
System.out.println("tradeHash = " + tradeHash);
if (StringUtils.isBlank(tradeHash)) {
throw GlobalException.newException(ResultCode.PUBLISH_ERROR, "nft发行失败");
}
......@@ -342,7 +342,7 @@ public class NftServiceImpl extends ServiceImpl<NftMapper, Nft> implements NftSe
throw GlobalException.newException(ResultCode.FAILED, "nft发行失败");
}
String tradeHash = paraChainClient.evmSetTokenInfo(abi, contractAddr, 0L, tokenId, tokenInfo, wallet, privkey, true);
System.out.println("tradeHash = " + tradeHash);
if (StringUtils.isBlank(tradeHash)) {
throw GlobalException.newException(ResultCode.PUBLISH_ERROR, "nft发行失败");
}
......
......@@ -4,14 +4,11 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.User;
import com.fzm.common.entity.vo.NftTransferDetailVo;
import com.fzm.common.entity.vo.NftTransferRecordVo;
import com.fzm.common.mapper.AuthPersonMapper;
import com.fzm.common.mapper.NftTransferRecordMapper;
import com.fzm.common.service.AuthPersonService;
import com.fzm.common.service.NftTransferRecordService;
import com.fzm.common.service.UserService;
import org.apache.commons.lang3.StringUtils;
......
......@@ -7,7 +7,10 @@ import com.fzm.common.entity.Order;
import com.fzm.common.entity.dto.OrderDto;
import com.fzm.common.entity.dto.OrderProcessMsg;
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.mapper.OrderMapper;
import com.fzm.common.service.*;
......
......@@ -8,7 +8,6 @@ import com.fzm.common.entity.Refund;
import com.fzm.common.entity.vo.PaymentVo;
import com.fzm.common.enums.RefundLaunchChannel;
import com.fzm.common.mapper.RefundMapper;
import com.fzm.common.service.OrderService;
import com.fzm.common.service.RefundService;
import com.fzm.common.service.WxPayService;
import com.github.pagehelper.PageHelper;
......
......@@ -22,6 +22,7 @@ import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.UserMapper;
import com.fzm.common.params.LoginParam;
import com.fzm.common.properties.DebugProperties;
import com.fzm.common.properties.SmsProperties;
import com.fzm.common.service.AuthPersonService;
import com.fzm.common.service.UserService;
......@@ -83,6 +84,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Resource
private ObsUtil obsUtil;
@Resource
private DebugProperties debugProperties;
@Override
public User loadUserByUsername(String username) {
......@@ -227,12 +231,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if (AuthStatus.SUCCESS.getStatus().equals(user.getAuthStatus())) {
throw GlobalException.newException(ResultCode.ID_CARD_VERIFICATION_ERROR, "您已认证成功,无法再次认证");
}
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());
IdCardOCRVerificationResponse response = TencentApi.idCardOCRVerification(encode);
response = TencentApi.idCardOCRVerification(encode);
log.info("实名认证结果:{}", JSONUtil.toJsonStr(response));
Integer status;
}
if (IdCardVerificationResponse.SUCCESS.getCode().equals(response.getResult())) {
// 验证成功上传身份证证件
String frontUrl = obsUtil.putObject(cardPictureFront);
......
......@@ -9,14 +9,12 @@ import com.fzm.common.constant.SystemConstant;
import com.fzm.common.entity.Order;
import com.fzm.common.entity.Payment;
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.OrderProcessMsg;
import com.fzm.common.enums.*;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.properties.WxPayProperties;
import com.fzm.common.service.*;
import com.fzm.common.utils.SmsUtil;
import com.fzm.common.utils.SnowflakeUtil;
import com.wechat.pay.contrib.apache.httpclient.util.AesUtil;
import lombok.extern.slf4j.Slf4j;
......@@ -39,7 +37,6 @@ import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.security.GeneralSecurityException;
import java.security.PrivateKey;
......
package com.fzm.common.utils;
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 org.springframework.boot.autoconfigure.codec.CodecProperties;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Map;
import java.util.TreeMap;
......
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.SymmetricCrypto;
import sun.misc.BASE64Encoder;
import sun.security.krb5.internal.crypto.HmacSha1Aes256CksumType;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
/**
* @author tangtuo
......@@ -33,7 +25,7 @@ public class PasswordUtil {
public static void main(String[] args) {
String password="12rehkkkfbhksskkhbssrktbsr3456gbibvbybkfnriowernolwgrojgbrqg";
String password = "12rehkkkfbhksskkhbssrktbsr3456gbibvbybkfnriowernolwgrojgbrqg";
String encrypt = encrypt(password);
System.out.println(encrypt);
System.out.println(match(encrypt, password));
......
package com.fzm.common.utils;
import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Shape;
import com.fzm.common.model.BufferedImageLuminanceSource;
import com.google.zxing.*;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
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.image.BufferedImage;
import java.io.ByteArrayOutputStream;
......@@ -12,20 +16,6 @@ import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
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 {
private static final String CHARSET = "utf-8";
......@@ -113,7 +103,7 @@ public class QRCodeUtil {
BASE64Encoder encoder = new BASE64Encoder();
String png_base64 = encoder.encodeBuffer(bytes).trim();//转换成base64串
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;
}
......
......@@ -9,6 +9,7 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.properties.DebugProperties;
import com.fzm.common.properties.SmsProperties;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
......@@ -26,6 +27,9 @@ public class SmsUtil {
@Resource
private SmsProperties smsProperties;
@Resource
private DebugProperties debugProperties;
public static String getStringToSignOfStr(Map<String, Object> map) {
TreeMap<String, String> treeMap = new TreeMap<>();
......@@ -63,13 +67,17 @@ public class SmsUtil {
* @return
*/
public Boolean sendSms(String codetype, String mobile) {
if (debugProperties.getSms()) {
return true;
}
String timestamp = getTimestamp();
HashMap<String, Object> params = new HashMap<>();
params.put("mobile", mobile);
params.put("codetype", codetype);
params.put("param", "FzmRandom4");
String paramStr = getStringToSignOfStr(params);
System.out.println(paramStr);
String sign = getSign(smsProperties.getAppKey(), smsProperties.getAppSecret(), paramStr, timestamp);
HttpResponse response = HttpRequest.post(smsProperties.getSendSmsUrl()).
header("FZM-Ca-Timestamp", timestamp).
......@@ -94,13 +102,17 @@ public class SmsUtil {
* @return
*/
public Boolean sendRefundSms(String mobile, String fee) {
if (debugProperties.getSms()) {
return true;
}
String timestamp = getTimestamp();
HashMap<String, Object> params = new HashMap<>();
params.put("mobile", mobile);
params.put("codetype", smsProperties.getRefundMessageCodetype());
params.put("param", fee);
String paramStr = getStringToSignOfStr(params);
System.out.println(paramStr);
String sign = getSign(smsProperties.getAppKey(), smsProperties.getAppSecret(), paramStr, timestamp);
HttpResponse response = HttpRequest.post(smsProperties.getSendSmsUrl()).
header("FZM-Ca-Timestamp", timestamp).
......@@ -124,6 +136,10 @@ public class SmsUtil {
* @return
*/
public Boolean validateCode(String codetype, String mobile, String code, String type) {
if (debugProperties.getSms()) {
return true;
}
String timestamp = getTimestamp();
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("t", type);
......
package com.fzm.common.utils;
import com.fzm.common.enums.IdCardVerificationResponse;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.tencentcloudapi.common.Credential;
......
......@@ -103,10 +103,12 @@
FROM tb_nft a
WHERE a.user_id = #{userId}
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 id="get" resultType="com.fzm.common.entity.Nft">
select * from tb_nft where nft_hash != ''
select *
from tb_nft
where nft_hash != ''
</select>
</mapper>
\ No newline at end of file
......@@ -34,31 +34,32 @@
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -z "$MAVEN_SKIP_RC" ]; then
if [ -f /etc/mavenrc ] ; then
if [ -f /etc/mavenrc ]; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
if [ -f "$HOME/.mavenrc" ]; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
cygwin=false
darwin=false
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
case "$(uname)" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true ;;
Darwin*)
darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
export JAVA_HOME="$(/usr/libexec/java_home)"
else
export JAVA_HOME="/Library/Java/Home"
fi
......@@ -66,96 +67,102 @@ case "`uname`" in
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
if [ -z "$JAVA_HOME" ]; then
if [ -r /etc/gentoo-release ]; then
JAVA_HOME=$(java-config --jre-home)
fi
fi
if [ -z "$M2_HOME" ] ; then
if [ -z "$M2_HOME" ]; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
while [ -h "$PRG" ]; do
ls=$(ls -ld "$PRG")
link=$(expr "$ls" : '.*-> \(.*\)$')
if expr "$link" : '/.*' >/dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
PRG="$(dirname "$PRG")/$link"
fi
done
saveddir=`pwd`
saveddir=$(pwd)
M2_HOME=`dirname "$PRG"`/..
M2_HOME=$(dirname "$PRG")/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
M2_HOME=$(cd "$M2_HOME" && pwd)
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
M2_HOME=$(cygpath --unix "$M2_HOME")
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
if $mingw; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
M2_HOME="$( (
cd "$M2_HOME"
pwd
))"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
JAVA_HOME="$( (
cd "$JAVA_HOME"
pwd
))"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
javaExecutable="$(which javac)"
if [ -n "$javaExecutable" ] && ! [ "$(expr \"$javaExecutable\" : '\([^ ]*\)')" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
readLink=$(which readlink)
if [ ! $(expr "$readLink" : '\([^ ]*\)') = "no" ]; then
if $darwin; then
javaHome="$(dirname \"$javaExecutable\")"
javaExecutable="$(cd \"$javaHome\" && pwd -P)/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
javaExecutable="$(readlink -f \"$javaExecutable\")"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
javaHome="$(dirname \"$javaExecutable\")"
javaHome=$(expr "$javaHome" : '\(.*\)/bin')
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
if [ -z "$JAVACMD" ]; then
if [ -n "$JAVA_HOME" ]; then
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
JAVACMD="$(which java)"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
if [ ! -x "$JAVACMD" ]; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
if [ -z "$JAVA_HOME" ]; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
......@@ -165,22 +172,24 @@ CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
if [ -z "$1" ]; then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
while [ "$wdir" != '/' ]; do
if [ -d "$wdir"/.mvn ]; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
wdir=$(
cd "$wdir/.."
pwd
)
fi
# end of workaround
done
......@@ -190,13 +199,13 @@ find_maven_basedir() {
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
echo "$(tr -s '\n' ' ' <"$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
BASE_DIR=$(find_maven_basedir "$(pwd)")
if [ -z "$BASE_DIR" ]; then
exit 1;
exit 1
fi
##########################################################################################
......@@ -217,18 +226,21 @@ else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
case "$key" in wrapperUrl)
jarUrl="$value"
break
;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
done <"$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
fi
if command -v wget > /dev/null; then
if command -v wget >/dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
......@@ -237,7 +249,7 @@ else
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
elif command -v curl >/dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
......@@ -254,7 +266,7 @@ else
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
javaClass=$(cygpath --path --windows "$javaClass")
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
......@@ -287,13 +299,13 @@ MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
M2_HOME=$(cygpath --path --windows "$M2_HOME")
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
fi
# Provide a "standardized" way to retrieve the CLI args that will
......
......@@ -34,7 +34,7 @@
<dependency>
<groupId>com.fzm</groupId>
<artifactId>joying-common</artifactId>
<version>1.0.0</version>
<version>1.1.0</version>
</dependency>
<dependency>
......
......@@ -7,7 +7,10 @@ import com.fzm.common.service.ChargeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
......
......@@ -112,7 +112,7 @@ public class CopyrightApplyController {
@GetMapping("/certificate/{id}")
@ApiOperation(value = "查看版权存证证书")
public ResponseModel<CopyrightCertificateVo> getCertificate(@PathVariable Integer id){
public ResponseModel<CopyrightCertificateVo> getCertificate(@PathVariable Integer id) {
CopyrightCertificateVo copyrightCertificateVo = copyrightApplyService.getCertificate(id);
return ResponseModel.success(copyrightCertificateVo);
}
......
......@@ -3,7 +3,6 @@ package com.fzm.portal.controller;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.Draft;
import com.fzm.common.entity.dto.DraftDTO;
import com.fzm.common.entity.vo.CopyrightVo;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.DraftService;
import com.fzm.common.utils.JwtUtil;
......
......@@ -12,7 +12,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
/**
* @author tangtuo
......
......@@ -6,7 +6,6 @@ import com.fzm.common.service.FileTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
......
......@@ -3,7 +3,6 @@ package com.fzm.portal.controller;
import cn.hutool.crypto.SecureUtil;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.Nft;
import com.fzm.common.entity.NftDto;
import com.fzm.common.entity.User;
import com.fzm.common.entity.vo.CollectionNftVo;
import com.fzm.common.entity.vo.NftCertificateVo;
......
......@@ -4,12 +4,14 @@ import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.vo.NftTransferDetailVo;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.NftTransferRecordService;
import com.fzm.common.utils.JwtUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
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 java.util.List;
......@@ -37,7 +39,7 @@ public class NftTransferRecordController {
@GetMapping("/detail/{id}")
@ApiOperation(value = "获取流转详情")
public ResponseModel<NftTransferDetailVo> getDetail(@PathVariable Integer id){
public ResponseModel<NftTransferDetailVo> getDetail(@PathVariable Integer id) {
NftTransferDetailVo nftTransferDetailVo = nftTransferRecordService.getDetail(id);
return ResponseModel.success(nftTransferDetailVo);
}
......
......@@ -128,7 +128,7 @@ public class UserController {
@ApiOperation(value = "个人认证")
public ResponseModel<IdCardOCRVerificationResponse> personAuth(@ApiParam("身份证正面照") @RequestParam MultipartFile front,
@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;
import cn.hutool.http.HttpStatus;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.dto.JsapiPayDto;
import com.fzm.common.entity.dto.OrderDto;
import com.fzm.common.enums.RefundLaunchChannel;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.WxPayService;
......
......@@ -21,8 +21,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.Date;
/**
* @author tangtuo
......
......@@ -14,7 +14,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
/**
* @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:
port: 8001
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:
allow-bean-definition-overriding: true
datasource:
......@@ -60,8 +69,8 @@ spring:
multiplier: 2 # 下次失败的等待时长倍数,下次等待时长 = multiplier * last-interval
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
swagger:
title: 乐映影视门户系统
description: 乐映影视门户系统RESTFUL API
title: '乐映影视门户系统'
description: '乐映影视门户系统RESTFUL API'
version: 1.0.0
base-package: com.fzm.portal.controller
base-path: /**
......@@ -76,6 +85,16 @@ swagger:
name: tangtuo
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:
app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn
......
server:
port: 8001
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:
allow-bean-definition-overriding: true
datasource:
......@@ -61,8 +70,8 @@ spring:
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
swagger:
title: 乐映影视门户系统
description: 乐映影视门户系统RESTFUL API
title: '乐映影视门户系统'
description: '乐映影视门户系统RESTFUL API'
version: 1.0.0
base-package: com.fzm.portal.controller
base-path: /**
......@@ -77,6 +86,16 @@ swagger:
name: tangtuo
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:
app-key: Yiru
app-secret: mx5oaR^RY8!(ziHn
......
server:
port: 8001
spring:
profiles:
active: dev
application:
name: joying-portal
servlet:
......@@ -10,15 +10,128 @@ spring:
jackson:
time-zone: GMT+8
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:
type-aliases-package: com.fzm.common.entity
mapper-locations: classpath:mapper/*.xml
configuration:
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
logging:
level:
com.fzm.common.mapper: debug
debug:
sms: true
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"?>
<!-- 日志级别从低到高分为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>
<!--日志路径-->
<property name="LOG_HOME" value="logs"/>
<!--日志格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %logger{50}:表示logger名字最长50个字符,否则按照句点分割 %msg:日志消息,%n是换行符 -->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n"/>
<configuration debug="false">
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{12} - %msg%n"/>
<property name="log.path" value="/app/logs/fuzamei/hz"/>
<property name="log.name" value="joying"/>
<!-- 控制台 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志格式 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</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、全部日志时间滚动输出 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 循环政策:基于时间创建日志文件 -->
<!-- 时间滚动输出 level为 WARN 日志 -->
<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">
<!-- 日志命名:单个文件大于50MB 按照时间+自增i 生成log文件 -->
<fileNamePattern>${LOG_HOME}/logback.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<fileNamePattern>${log.path}/${log.name}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>180</maxHistory>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</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>
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</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>
<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">
<!--开发环境和本地:-->
<springProfile name="local">
<appender-ref ref="CONSOLE"/>
</springProfile>
<springProfile name="dev">
<appender-ref ref="CONSOLE"/>
<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>
<!-- 控制台输出 -->
<appender-ref ref="STDOUT"/>
<!-- 文件输出 -->
<appender-ref ref="INFO"/>
<appender-ref ref="WARN"/>
<appender-ref ref="ERROR"/>
</root>
</configuration>
\ No newline at end of file
package com.fzm.portal;
import cn.hutool.crypto.SecureUtil;
import java.io.File;
import java.util.TreeMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Semaphore;
/**
* @author tangtuo
......
package com.fzm.portal;
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.exception.GlobalException;
import com.fzm.common.properties.CopyrightProperties;
import com.fzm.common.service.CopyrightApplyService;
import com.fzm.common.service.CopyrightAuthorityRelationService;
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 org.junit.jupiter.api.Test;
import org.redisson.Redisson;
import org.redisson.api.RSemaphore;
import org.redisson.api.RedissonClient;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.security.crypto.password.PasswordEncoder;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ExecutionException;
@SpringBootTest
......
This diff is collapsed.
This diff is collapsed.
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