Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
887f28a7
Commit
887f28a7
authored
Aug 01, 2019
by
hezhen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'base-modify' of
http://113.105.137.151:22280/youjj/cloud-platform
into base-modify
parents
958531b8
300d89fd
Changes
47
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
688 additions
and
302 deletions
+688
-302
.gitignore
.gitignore
+1
-1
AuthBootstrap.java
.../java/com/github/wxiaoqi/security/auth/AuthBootstrap.java
+2
-2
DenyFilter.java
...a/com/github/wxiaoqi/security/auth/filter/DenyFilter.java
+0
-12
logback.xml
ace-auth/ace-auth-server/src/main/resources/logback.xml
+5
-3
pom.xml
ace-common/pom.xml
+0
-1
AddBasicConfiguration.java
...oqi/security/common/annotation/AddBasicConfiguration.java
+14
-0
GlobalBasicConfiguration.java
...curity/common/config/global/GlobalBasicConfiguration.java
+35
-0
AcceptFilter.java
...m/github/wxiaoqi/security/common/filter/AcceptFilter.java
+5
-1
DenyFilter.java
...com/github/wxiaoqi/security/common/filter/DenyFilter.java
+5
-1
NacosLogFilter.java
...github/wxiaoqi/security/common/filter/NacosLogFilter.java
+16
-0
JsonUtil.java
...ava/com/github/wxiaoqi/security/common/util/JsonUtil.java
+93
-0
RequestContextHolderUtil.java
...xiaoqi/security/common/util/RequestContextHolderUtil.java
+59
-0
pom.xml
ace-control/pom.xml
+14
-14
AcceptFilter.java
...com/github/wxiaoqi/security/gate/filter/AcceptFilter.java
+0
-12
AccessGatewayFilter.java
...hub/wxiaoqi/security/gate/filter/AccessGatewayFilter.java
+72
-13
DenyFilter.java
...a/com/github/wxiaoqi/security/gate/filter/DenyFilter.java
+0
-12
ResponseRecordFilter.java
...ub/wxiaoqi/security/gate/filter/ResponseRecordFilter.java
+149
-0
logback.xml
ace-gate/src/main/resources/logback.xml
+3
-12
AdminBootstrap.java
...ava/com/github/wxiaoqi/security/admin/AdminBootstrap.java
+2
-0
AppUserRelationBiz.java
...github/wxiaoqi/security/admin/biz/AppUserRelationBiz.java
+1
-0
AcceptFilter.java
...om/github/wxiaoqi/security/admin/filter/AcceptFilter.java
+0
-12
DenyFilter.java
.../com/github/wxiaoqi/security/admin/filter/DenyFilter.java
+0
-12
logback.xml
ace-modules/ace-admin/src/main/resources/logback.xml
+3
-12
ActivityApplication.java
.../java/com/xxfc/platform/activity/ActivityApplication.java
+2
-0
logback.xml
...ctivity/xx-activity-server/src/main/resources/logback.xml
+1
-10
AppApplication.java
...r/src/main/java/com/xxfc/platform/app/AppApplication.java
+2
-0
logback.xml
xx-app/xx-app-server/src/main/resources/logback.xml
+1
-10
CampSiteApplication.java
.../java/com/xxfc/platform/campsite/CampSiteApplication.java
+2
-1
logback.xml
...ampsite/xx-campsite-server/src/main/resources/logback.xml
+32
-104
ImApplication.java
...ver/src/main/java/com/xxfc/platform/im/ImApplication.java
+2
-0
logback.xml
xx-im/xx-im-server/src/main/resources/logback.xml
+1
-10
OrderApplication.java
...c/main/java/com/xxfc/platform/order/OrderApplication.java
+2
-2
OrderRefundBiz.java
...main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
+1
-1
logback.xml
xx-order/xx-order-server/src/main/resources/logback.xml
+1
-10
TourApplication.java
...src/main/java/com/xxfc/platform/tour/TourApplication.java
+2
-0
logback.xml
xx-tour/xx-tour-server/src/main/resources/logback.xml
+1
-10
UniversalApplication.java
...ava/com/xxfc/platform/universal/UniversalApplication.java
+2
-1
logback.xml
...versal/xx-universal-server/src/main/resources/logback.xml
+1
-10
VehicleApplication.java
...in/java/com/xxfc/platform/vehicle/VehicleApplication.java
+2
-1
VehicleBiz.java
...c/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
+3
-0
VehicleBookInfoBiz.java
...ava/com/xxfc/platform/vehicle/biz/VehicleBookInfoBiz.java
+4
-0
XxlJobConfig.java
...n/java/com/xxfc/platform/vehicle/config/XxlJobConfig.java
+73
-0
VehicleJobHandler.java
...m/xxfc/platform/vehicle/jobhandler/VehicleJobHandler.java
+62
-0
VehicleBookInfoMapper.java
...m/xxfc/platform/vehicle/mapper/VehicleBookInfoMapper.java
+2
-0
VehicleMapper.java
.../java/com/xxfc/platform/vehicle/mapper/VehicleMapper.java
+3
-1
logback.xml
xx-vehicle/xx-vehicle-server/src/main/resources/logback.xml
+1
-10
VehicleBookInfoMapper.xml
...erver/src/main/resources/mapper/VehicleBookInfoMapper.xml
+6
-1
No files found.
.gitignore
View file @
887f28a7
...
@@ -8,4 +8,4 @@ target/
...
@@ -8,4 +8,4 @@ target/
.classpath
.classpath
ace-modules/ace-tool/src/main/resources/application-dev.yml
ace-modules/ace-tool/src/main/resources/application-dev.yml
src/main/test/**
src/main/test/**
/logs
logs/**
ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/AuthBootstrap.java
View file @
887f28a7
package
com
.
github
.
wxiaoqi
.
security
.
auth
;
package
com
.
github
.
wxiaoqi
.
security
.
auth
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
com.github.wxiaoqi.security.auth.feign.IUserService
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
@@ -15,6 +14,7 @@ import tk.mybatis.spring.annotation.MapperScan;
...
@@ -15,6 +14,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
@SpringBootApplication
@EnableDiscoveryClient
@EnableDiscoveryClient
@EnableFeignClients
@EnableFeignClients
@AddBasicConfiguration
@MapperScan
(
"com.github.wxiaoqi.security.auth.mapper"
)
@MapperScan
(
"com.github.wxiaoqi.security.auth.mapper"
)
//@EnableAutoConfiguration
//@EnableAutoConfiguration
public
class
AuthBootstrap
{
public
class
AuthBootstrap
{
...
...
ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/filter/DenyFilter.java
deleted
100644 → 0
View file @
958531b8
package
com
.
github
.
wxiaoqi
.
security
.
auth
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
DENY
:
FilterReply
.
ACCEPT
;
}
}
\ No newline at end of file
ace-auth/ace-auth-server/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -18,7 +19,7 @@
...
@@ -18,7 +19,7 @@
</appender>
</appender>
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
auth
.filter.DenyFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
common
.filter.DenyFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
@@ -26,10 +27,10 @@
...
@@ -26,10 +27,10 @@
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
auth
.filter.AcceptFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
common
.filter.AcceptFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
@@ -39,6 +40,7 @@
...
@@ -39,6 +40,7 @@
</encoder>
</encoder>
</appender>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
...
...
ace-common/pom.xml
View file @
887f28a7
...
@@ -33,7 +33,6 @@
...
@@ -33,7 +33,6 @@
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-aop
</artifactId>
<artifactId>
spring-boot-starter-aop
</artifactId>
...
...
ace-common/src/main/java/com/github/wxiaoqi/security/common/annotation/AddBasicConfiguration.java
0 → 100644
View file @
887f28a7
package
com
.
github
.
wxiaoqi
.
security
.
common
.
annotation
;
import
com.github.wxiaoqi.security.common.config.global.GlobalBasicConfiguration
;
import
org.springframework.context.annotation.EnableAspectJAutoProxy
;
import
org.springframework.context.annotation.Import
;
import
java.lang.annotation.*
;
@EnableAspectJAutoProxy
@Import
(
GlobalBasicConfiguration
.
class
)
@Target
(
ElementType
.
TYPE
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Documented
public
@interface
AddBasicConfiguration
{}
\ No newline at end of file
ace-common/src/main/java/com/github/wxiaoqi/security/common/config/global/GlobalBasicConfiguration.java
0 → 100644
View file @
887f28a7
package
com
.
github
.
wxiaoqi
.
security
.
common
.
config
.
global
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationRunner
;
import
org.springframework.core.env.Environment
;
public
class
GlobalBasicConfiguration
implements
ApplicationRunner
{
private
static
Logger
log
=
LoggerFactory
.
getLogger
(
GlobalBasicConfiguration
.
class
);
private
static
Environment
env
;
@Autowired
private
void
setEnv
(
Environment
env
)
{
GlobalBasicConfiguration
.
env
=
env
;
}
@Override
public
void
run
(
ApplicationArguments
args
)
throws
Exception
{
showApplicationProperties
(
"数据库连接地址: "
,
"spring.datasource.url"
);
showApplicationProperties
(
"Redis连接主机: "
,
"spring.redis.host"
);
showApplicationProperties
(
"Redis连接端口: "
,
"spring.redis.port"
);
showApplicationProperties
(
"rabbitmq连接主机"
,
"spring.rabbitmq.host"
);
showApplicationProperties
(
"rabbitmq连接虚拟机"
,
"spring.rabbitmq.virtual-host"
);
}
public
static
void
showApplicationProperties
(
String
key
,
String
value
)
{
if
(
env
!=
null
)
{
log
.
info
(
key
+
"{}"
,
env
.
getProperty
(
value
));
}
}
}
ace-common/src/main/java/com/github/wxiaoqi/security/common/filter/AcceptFilter.java
View file @
887f28a7
...
@@ -7,6 +7,10 @@ import ch.qos.logback.core.spi.FilterReply;
...
@@ -7,6 +7,10 @@ import ch.qos.logback.core.spi.FilterReply;
public
class
AcceptFilter
extends
Filter
<
ILoggingEvent
>
{
public
class
AcceptFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.xxfc.platform"
)
?
FilterReply
.
ACCEPT
:
FilterReply
.
DENY
;
if
(
event
.
getLoggerName
().
startsWith
(
"com.xxfc.platform"
)
||
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
))
{
return
FilterReply
.
ACCEPT
;
}
else
{
return
FilterReply
.
DENY
;
}
}
}
}
}
\ No newline at end of file
ace-common/src/main/java/com/github/wxiaoqi/security/common/filter/DenyFilter.java
View file @
887f28a7
...
@@ -7,6 +7,10 @@ import ch.qos.logback.core.spi.FilterReply;
...
@@ -7,6 +7,10 @@ import ch.qos.logback.core.spi.FilterReply;
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.xxfc.platform"
)
?
FilterReply
.
DENY
:
FilterReply
.
ACCEPT
;
if
(
event
.
getLoggerName
().
startsWith
(
"com.alibaba.nacos"
)
||
event
.
getLoggerName
().
startsWith
(
"com.xxfc.platform"
)
||
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
))
{
return
FilterReply
.
DENY
;
}
else
{
return
FilterReply
.
ACCEPT
;
}
}
}
}
}
\ No newline at end of file
ace-
auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/filter/Accept
Filter.java
→
ace-
common/src/main/java/com/github/wxiaoqi/security/common/filter/NacosLog
Filter.java
View file @
887f28a7
package
com
.
github
.
wxiaoqi
.
security
.
auth
.
filter
;
package
com
.
github
.
wxiaoqi
.
security
.
common
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
Accept
Filter
extends
Filter
<
ILoggingEvent
>
{
public
class
NacosLog
Filter
extends
Filter
<
ILoggingEvent
>
{
@Override
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
ACCEPT
:
FilterReply
.
DENY
;
if
(
event
.
getLoggerName
().
startsWith
(
"com.alibaba.nacos"
))
{
return
FilterReply
.
DENY
;
}
else
{
return
FilterReply
.
ACCEPT
;
}
}
}
}
}
\ No newline at end of file
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/JsonUtil.java
0 → 100644
View file @
887f28a7
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
;
import
java.util.List
;
import
java.util.Map
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.util.StringUtils
;
import
com.fasterxml.jackson.annotation.JsonInclude.Include
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.JavaType
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
public
abstract
class
JsonUtil
{
private
static
final
ObjectMapper
mapper
=
new
ObjectMapper
();
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
JsonUtil
.
class
);
static
{
mapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
mapper
.
setSerializationInclusion
(
Include
.
NON_NULL
);
}
public
static
String
objectToJson
(
Object
data
)
{
try
{
return
mapper
.
writeValueAsString
(
data
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.objectToJson execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
public
static
<
T
>
T
jsonToPojo
(
String
jsonData
,
Class
<
T
>
beanType
)
{
try
{
if
(
StringUtils
.
isEmpty
(
jsonData
))
return
null
;
return
mapper
.
readValue
(
jsonData
,
beanType
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.jsonToPojo execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
public
static
<
T
,
R
>
R
objectToObject
(
T
srcObj
,
Class
<
R
>
beanType
)
{
String
toJson
=
objectToJson
(
srcObj
);
return
jsonToPojo
(
toJson
,
beanType
);
}
@SuppressWarnings
(
"rawtypes"
)
public
static
<
T
,
R
>
R
objectToObjectByTypeReference
(
T
srcObj
,
TypeReference
valueTypeRef
)
{
String
toJson
=
objectToJson
(
srcObj
);
return
toPojoByTypeReference
(
toJson
,
valueTypeRef
);
}
@SuppressWarnings
(
"unchecked"
)
public
static
<
T
,
R
>
Map
<
T
,
R
>
jsonToMap
(
String
json
)
{
return
jsonToPojo
(
json
,
Map
.
class
);
}
public
static
<
T
>
List
<
T
>
jsonToList
(
String
jsonData
,
Class
<
T
>
beanType
)
{
try
{
if
(
StringUtils
.
isEmpty
(
jsonData
))
return
null
;
JavaType
javaType
=
mapper
.
getTypeFactory
().
constructParametricType
(
List
.
class
,
beanType
);
return
mapper
.
readValue
(
jsonData
,
javaType
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.jsonToList execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
@SuppressWarnings
(
"rawtypes"
)
public
static
<
T
>
T
toPojoByTypeReference
(
String
jsonData
,
TypeReference
valueTypeRef
)
{
try
{
if
(
StringUtils
.
isEmpty
(
jsonData
))
return
null
;
return
mapper
.
readValue
(
jsonData
,
valueTypeRef
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.jsonToPojo execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
public
static
<
T
>
T
jsonToGeneric
(
String
jsonData
,
Class
<
T
>
beanType
,
Class
<?>
resultType
)
{
try
{
if
(
StringUtils
.
isEmpty
(
jsonData
))
return
null
;
JavaType
javaType
=
mapper
.
getTypeFactory
().
constructParametricType
(
beanType
,
beanType
);
return
mapper
.
readValue
(
jsonData
,
javaType
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.jsonToList execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
}
\ No newline at end of file
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/RequestContextHolderUtil.java
0 → 100644
View file @
887f28a7
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
;
import
org.springframework.web.context.ContextLoader
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.ServletContext
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpSession
;
/**
* 获取request中的参数
*/
public
class
RequestContextHolderUtil
{
public
static
HttpServletRequest
getRequest
()
{
return
getRequestAttributes
().
getRequest
();
}
public
static
HttpServletResponse
getResponse
()
{
return
getRequestAttributes
().
getResponse
();
}
public
static
HttpSession
getSession
(
boolean
create
)
{
return
getRequest
().
getSession
(
create
);
}
public
static
HttpSession
getSession
()
{
return
getSession
(
true
);
}
public
static
String
getRequestParameter
(
String
name
)
{
return
getRequest
().
getParameter
(
name
);
}
public
static
ServletRequestAttributes
getRequestAttributes
()
{
RequestAttributes
requestAttributes
=
RequestContextHolder
.
currentRequestAttributes
();
return
((
ServletRequestAttributes
)
requestAttributes
);
}
public
static
ServletContext
getServletContext
()
{
return
ContextLoader
.
getCurrentWebApplicationContext
().
getServletContext
();
}
public
static
String
getRequestHeader
(
String
name
)
{
return
getRequest
().
getHeader
(
name
);
}
public
static
String
getBaseUrl
()
{
HttpServletRequest
request
=
getRequest
();
StringBuffer
requestURL
=
request
.
getRequestURL
();
String
url
=
requestURL
.
delete
(
requestURL
.
length
()
-
request
.
getRequestURI
().
length
(),
requestURL
.
length
())
.
toString
();
return
url
;
}
}
\ No newline at end of file
ace-control/pom.xml
View file @
887f28a7
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<parent>
<artifactId>
ace-security
</artifactId>
<artifactId>
ace-security
</artifactId>
<groupId>
com.github.wxiaoqi
</groupId>
<groupId>
com.github.wxiaoqi
</groupId>
<version>
2.0-SNAPSHOT
</version>
<version>
2.0-SNAPSHOT
</version>
</parent>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
pom
</packaging>
<packaging>
pom
</packaging>
<artifactId>
ace-control
</artifactId>
<artifactId>
ace-control
</artifactId>
<modules>
<modules>
<module>
ace-monitor
</module>
<module>
ace-monitor
</module>
</modules>
</modules>
</project>
</project>
\ No newline at end of file
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/AcceptFilter.java
deleted
100644 → 0
View file @
958531b8
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
AcceptFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
ACCEPT
:
FilterReply
.
DENY
;
}
}
\ No newline at end of file
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/AccessGatewayFilter.java
View file @
887f28a7
...
@@ -13,10 +13,10 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler;
...
@@ -13,10 +13,10 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import
com.github.wxiaoqi.security.common.msg.BaseResponse
;
import
com.github.wxiaoqi.security.common.msg.BaseResponse
;
import
com.github.wxiaoqi.security.common.msg.auth.TokenForbiddenResponse
;
import
com.github.wxiaoqi.security.common.msg.auth.TokenForbiddenResponse
;
import
com.github.wxiaoqi.security.gate.feign.IAppUserService
;
import
com.github.wxiaoqi.security.gate.feign.IAppUserService
;
import
com.github.wxiaoqi.security.gate.handler.RequestBodyRoutePredicateFactory
;
import
com.github.wxiaoqi.security.gate.utils.DBLog
;
import
com.github.wxiaoqi.security.gate.feign.ILogService
;
import
com.github.wxiaoqi.security.gate.feign.ILogService
;
import
com.github.wxiaoqi.security.gate.feign.IUserService
;
import
com.github.wxiaoqi.security.gate.feign.IUserService
;
import
com.github.wxiaoqi.security.gate.handler.RequestBodyRoutePredicateFactory
;
import
com.github.wxiaoqi.security.gate.utils.DBLog
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
...
@@ -24,23 +24,25 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -24,23 +24,25 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.cloud.gateway.filter.GatewayFilterChain
;
import
org.springframework.cloud.gateway.filter.GatewayFilterChain
;
import
org.springframework.cloud.gateway.filter.GlobalFilter
;
import
org.springframework.cloud.gateway.filter.GlobalFilter
;
import
org.springframework.cloud.gateway.support.DefaultServerRequest
;
import
org.springframework.cloud.gateway.support.ServerWebExchangeUtils
;
import
org.springframework.cloud.gateway.support.ServerWebExchangeUtils
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.core.io.buffer.DataBuffer
;
import
org.springframework.core.io.buffer.DataBuffer
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.server.reactive.ServerHttpRequest
;
import
org.springframework.http.server.reactive.ServerHttpRequest
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.reactive.function.server.ServerRequest
;
import
org.springframework.web.server.ServerWebExchange
;
import
org.springframework.web.server.ServerWebExchange
;
import
reactor.core.publisher.Flux
;
import
reactor.core.publisher.Flux
;
import
reactor.core.publisher.Mono
;
import
reactor.core.publisher.Mono
;
import
java.net.URI
;
import
java.net.URI
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
java.util.Date
;
import
java.util.*
;
import
java.util.Iterator
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
import
java.util.function.Predicate
;
import
java.util.function.Predicate
;
import
java.util.regex.Pattern
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -52,7 +54,7 @@ import java.util.stream.Stream;
...
@@ -52,7 +54,7 @@ import java.util.stream.Stream;
*/
*/
@Configuration
@Configuration
@Slf4j
@Slf4j
public
class
AccessGatewayFilter
implements
GlobalFilter
{
public
class
AccessGatewayFilter
implements
GlobalFilter
{
@Autowired
@Autowired
@Lazy
@Lazy
private
IUserService
userService
;
private
IUserService
userService
;
...
@@ -91,6 +93,7 @@ public class AccessGatewayFilter implements GlobalFilter {
...
@@ -91,6 +93,7 @@ public class AccessGatewayFilter implements GlobalFilter {
log
.
info
(
"check token and user permission...."
);
log
.
info
(
"check token and user permission...."
);
LinkedHashSet
requiredAttribute
=
serverWebExchange
.
getRequiredAttribute
(
ServerWebExchangeUtils
.
GATEWAY_ORIGINAL_REQUEST_URL_ATTR
);
LinkedHashSet
requiredAttribute
=
serverWebExchange
.
getRequiredAttribute
(
ServerWebExchangeUtils
.
GATEWAY_ORIGINAL_REQUEST_URL_ATTR
);
ServerHttpRequest
request
=
serverWebExchange
.
getRequest
();
ServerHttpRequest
request
=
serverWebExchange
.
getRequest
();
setLogService
(
serverWebExchange
,
gatewayFilterChain
);
String
requestUri
=
request
.
getPath
().
pathWithinApplication
().
value
();
String
requestUri
=
request
.
getPath
().
pathWithinApplication
().
value
();
if
(
requiredAttribute
!=
null
)
{
if
(
requiredAttribute
!=
null
)
{
Iterator
<
URI
>
iterator
=
requiredAttribute
.
iterator
();
Iterator
<
URI
>
iterator
=
requiredAttribute
.
iterator
();
...
@@ -116,12 +119,6 @@ public class AccessGatewayFilter implements GlobalFilter {
...
@@ -116,12 +119,6 @@ public class AccessGatewayFilter implements GlobalFilter {
log
.
error
(
"用户Token过期异常"
,
e
);
log
.
error
(
"用户Token过期异常"
,
e
);
return
getVoidMono
(
serverWebExchange
,
new
TokenForbiddenResponse
(
"User Token Forbidden or Expired!"
));
return
getVoidMono
(
serverWebExchange
,
new
TokenForbiddenResponse
(
"User Token Forbidden or Expired!"
));
}
}
// String requestType = user.getRequestType();
//
// if (requestType == null || requestType.trim().equals("")) {
// requestType = RequestTypeConstants.BASE;
// }
List
<
PermissionInfo
>
permissionIfs
=
userService
.
getAllPermissionInfo
();
List
<
PermissionInfo
>
permissionIfs
=
userService
.
getAllPermissionInfo
();
// 判断资源是否启用权限约束
// 判断资源是否启用权限约束
Stream
<
PermissionInfo
>
stream
=
getPermissionIfs
(
requestUri
,
method
,
permissionIfs
);
Stream
<
PermissionInfo
>
stream
=
getPermissionIfs
(
requestUri
,
method
,
permissionIfs
);
...
@@ -273,4 +270,66 @@ public class AccessGatewayFilter implements GlobalFilter {
...
@@ -273,4 +270,66 @@ public class AccessGatewayFilter implements GlobalFilter {
return
serverWebExchange
.
getResponse
().
setComplete
();
return
serverWebExchange
.
getResponse
().
setComplete
();
}
}
public
void
setLogService
(
ServerWebExchange
exchange
,
GatewayFilterChain
chain
)
{
MediaType
mediaType
=
exchange
.
getRequest
().
getHeaders
().
getContentType
();
ServerRequest
serverRequest
=
new
DefaultServerRequest
(
exchange
);
// 如果是json格式,将body内容转化为object or map 都可
if
(
MediaType
.
APPLICATION_JSON
.
isCompatibleWith
(
mediaType
)){
Mono
<
Object
>
modifiedBody
=
serverRequest
.
bodyToMono
(
Object
.
class
)
.
flatMap
(
body
->
{
recordLog
(
exchange
.
getRequest
(),
body
);
return
Mono
.
just
(
body
);
});
}
// 如果是表单请求
else
if
(
MediaType
.
APPLICATION_FORM_URLENCODED
.
isCompatibleWith
(
mediaType
)){
Mono
<
String
>
modifiedBody
=
serverRequest
.
bodyToMono
(
String
.
class
)
// .log("modify_request_mono", Level.INFO)
.
flatMap
(
body
->
{
recordLog
(
exchange
.
getRequest
(),
body
);
return
Mono
.
just
(
body
);
});
}
// TODO 这里未来还可以限制一些格式
// 无法兼容的请求,则不读取body,像Get请求这种
recordLog
(
exchange
.
getRequest
(),
""
);
}
private
void
recordLog
(
ServerHttpRequest
request
,
Object
body
)
{
// 记录要访问的url
StringBuilder
builder
=
new
StringBuilder
();
log
.
info
(
"=================请求uri:"
+
request
.
getURI
().
getRawPath
());
// 记录访问的方法
HttpMethod
method
=
request
.
getMethod
();
if
(
null
!=
method
){
log
.
info
(
"=================请求方法:"
+
method
.
name
());
}
// 记录头部信息
builder
.
append
(
", header { "
);
for
(
Map
.
Entry
<
String
,
List
<
String
>>
entry
:
request
.
getHeaders
().
entrySet
())
{
builder
.
append
(
entry
.
getKey
()).
append
(
":"
).
append
(
StringUtils
.
join
(
entry
.
getValue
(),
","
)).
append
(
","
);
}
log
.
info
(
"=================请求头header:"
+
builder
.
toString
());
// 记录参数
builder
=
new
StringBuilder
();
// 处理get的请求
if
(
null
!=
method
&&
HttpMethod
.
GET
.
matches
(
method
.
name
()))
{
// 记录请求的参数信息 针对GET 请求
MultiValueMap
<
String
,
String
>
queryParams
=
request
.
getQueryParams
();
for
(
Map
.
Entry
<
String
,
List
<
String
>>
entry
:
queryParams
.
entrySet
())
{
builder
.
append
(
entry
.
getKey
()).
append
(
"="
).
append
(
StringUtils
.
join
(
entry
.
getValue
(),
","
)).
append
(
","
);
}
}
else
{
// 从body中读取参数
builder
.
append
(
body
);
}
log
.
info
(
"=================请求参数:"
+
builder
.
toString
());
}
}
}
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/DenyFilter.java
deleted
100644 → 0
View file @
958531b8
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
DENY
:
FilterReply
.
ACCEPT
;
}
}
\ No newline at end of file
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/ResponseRecordFilter.java
0 → 100644
View file @
887f28a7
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
filter
;
import
lombok.extern.slf4j.Slf4j
;
import
org.reactivestreams.Publisher
;
import
org.springframework.cloud.gateway.filter.GatewayFilterChain
;
import
org.springframework.cloud.gateway.filter.GlobalFilter
;
import
org.springframework.cloud.gateway.support.BodyInserterContext
;
import
org.springframework.cloud.gateway.support.CachedBodyOutputMessage
;
import
org.springframework.cloud.gateway.support.DefaultClientResponse
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.codec.Decoder
;
import
org.springframework.core.codec.Encoder
;
import
org.springframework.core.io.buffer.DataBuffer
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseCookie
;
import
org.springframework.http.client.reactive.ClientHttpResponse
;
import
org.springframework.http.codec.ClientCodecConfigurer
;
import
org.springframework.http.codec.json.Jackson2JsonDecoder
;
import
org.springframework.http.codec.json.Jackson2JsonEncoder
;
import
org.springframework.http.server.reactive.ServerHttpResponseDecorator
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.reactive.function.BodyInserter
;
import
org.springframework.web.reactive.function.BodyInserters
;
import
org.springframework.web.reactive.function.client.ExchangeStrategies
;
import
org.springframework.web.server.ServerWebExchange
;
import
reactor.core.publisher.Flux
;
import
reactor.core.publisher.Mono
;
import
java.util.function.Consumer
;
import
java.util.function.Function
;
@Component
@Slf4j
public
class
ResponseRecordFilter
implements
GlobalFilter
,
Ordered
{
Class
inClass
=
String
.
class
;
Class
outClass
=
String
.
class
;
private
static
Decoder
decoder
=
new
Jackson2JsonDecoder
();
private
static
Encoder
encoder
=
new
Jackson2JsonEncoder
();
private
static
final
ExchangeStrategies
STRATEGIES
;
static
{
STRATEGIES
=
ExchangeStrategies
.
builder
().
codecs
(
new
Consumer
<
ClientCodecConfigurer
>()
{
@Override
public
void
accept
(
ClientCodecConfigurer
clientCodecConfigurer
)
{
ClientCodecConfigurer
.
ClientDefaultCodecs
clientDefaultCodecs
=
clientCodecConfigurer
.
defaultCodecs
();
clientDefaultCodecs
.
jackson2JsonDecoder
(
decoder
);
clientDefaultCodecs
.
jackson2JsonEncoder
(
encoder
);
}
}).
build
();
}
@Override
public
Mono
<
Void
>
filter
(
ServerWebExchange
exchange
,
GatewayFilterChain
chain
)
{
// 响应报文打印
Function
responseRead
=
body
->
{
log
.
info
(
"===============响应体:body = {}"
,
body
);
return
Mono
.
just
(
body
);
};
ServerHttpResponseDecorator
responseDecorator
=
new
ServerHttpResponseDecorator
(
exchange
.
getResponse
())
{
@Override
public
Mono
<
Void
>
writeWith
(
Publisher
<?
extends
DataBuffer
>
body
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
add
(
"Content-Type"
,
"application/json"
);
ResponseAdapter
responseAdapter
=
new
ResponseAdapter
(
body
,
httpHeaders
);
DefaultClientResponse
clientResponse
=
new
DefaultClientResponse
(
responseAdapter
,
STRATEGIES
);
Mono
modifiedBody
=
clientResponse
.
bodyToMono
(
inClass
).
flatMap
(
responseRead
);
BodyInserter
bodyInserter
=
BodyInserters
.
fromPublisher
(
modifiedBody
,
outClass
);
CachedBodyOutputMessage
outputMessage
=
new
CachedBodyOutputMessage
(
exchange
,
exchange
.
getResponse
().
getHeaders
());
return
bodyInserter
.
insert
(
outputMessage
,
new
BodyInserterContext
()).
then
(
Mono
.
defer
(()
->
{
Flux
<
DataBuffer
>
messageBody
=
outputMessage
.
getBody
();
HttpHeaders
headers
=
this
.
getDelegate
().
getHeaders
();
if
(!
headers
.
containsKey
(
"Transfer-Encoding"
))
{
messageBody
=
messageBody
.
doOnNext
((
data
)
->
{
headers
.
setContentLength
((
long
)
data
.
readableByteCount
());
});
}
return
this
.
getDelegate
().
writeWith
(
messageBody
);
}));
}
@Override
public
Mono
<
Void
>
writeAndFlushWith
(
Publisher
<?
extends
Publisher
<?
extends
DataBuffer
>>
body
)
{
return
this
.
writeWith
(
Flux
.
from
(
body
).
flatMapSequential
((
p
)
->
{
return
p
;
}));
}
};
return
chain
.
filter
(
exchange
.
mutate
().
response
(
responseDecorator
).
build
());
}
@Override
public
int
getOrder
()
{
return
Ordered
.
HIGHEST_PRECEDENCE
;
}
public
static
class
ResponseAdapter
implements
ClientHttpResponse
{
private
final
Flux
<
DataBuffer
>
flux
;
private
final
HttpHeaders
headers
;
public
ResponseAdapter
(
Publisher
<?
extends
DataBuffer
>
body
,
HttpHeaders
headers
)
{
this
.
headers
=
headers
;
if
(
body
instanceof
Flux
)
{
this
.
flux
=
(
Flux
)
body
;
}
else
{
this
.
flux
=
((
Mono
)
body
).
flux
();
}
}
@Override
public
Flux
<
DataBuffer
>
getBody
()
{
return
this
.
flux
;
}
@Override
public
HttpHeaders
getHeaders
()
{
return
this
.
headers
;
}
@Override
public
HttpStatus
getStatusCode
()
{
return
null
;
}
@Override
public
int
getRawStatusCode
()
{
return
0
;
}
@Override
public
MultiValueMap
<
String
,
ResponseCookie
>
getCookies
()
{
return
null
;
}
}
}
ace-gate/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -18,7 +19,7 @@
...
@@ -18,7 +19,7 @@
</appender>
</appender>
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
gate
.filter.DenyFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
common
.filter.DenyFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
@@ -29,7 +30,7 @@
...
@@ -29,7 +30,7 @@
</appender>
</appender>
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
gate
.filter.AcceptFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
common
.filter.AcceptFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java
View file @
887f28a7
...
@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin;
...
@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker
;
import
org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker
;
...
@@ -31,6 +32,7 @@ import tk.mybatis.spring.annotation.MapperScan;
...
@@ -31,6 +32,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@MapperScan
(
"com.github.wxiaoqi.security.admin.mapper"
)
@MapperScan
(
"com.github.wxiaoqi.security.admin.mapper"
)
@EnableAspectJAutoProxy
(
proxyTargetClass
=
true
,
exposeProxy
=
true
)
@EnableAspectJAutoProxy
(
proxyTargetClass
=
true
,
exposeProxy
=
true
)
//@EnableSwagger2Doc
//@EnableSwagger2Doc
@AddBasicConfiguration
public
class
AdminBootstrap
{
public
class
AdminBootstrap
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
new
SpringApplicationBuilder
(
AdminBootstrap
.
class
).
run
(
args
);
}
new
SpringApplicationBuilder
(
AdminBootstrap
.
class
).
run
(
args
);
}
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserRelationBiz.java
View file @
887f28a7
...
@@ -255,6 +255,7 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
...
@@ -255,6 +255,7 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
Map
<
Integer
,
Integer
>
memberSateAndCountMap
=
new
HashMap
<>();
Map
<
Integer
,
Integer
>
memberSateAndCountMap
=
new
HashMap
<>();
AppUserRelation
appUserRelation
=
new
AppUserRelation
();
AppUserRelation
appUserRelation
=
new
AppUserRelation
();
appUserRelation
.
setParentId
(
userId
);
appUserRelation
.
setParentId
(
userId
);
appUserRelation
.
setIsForever
(
0
);
int
totalCount
=
mapper
.
selectCount
(
appUserRelation
);
int
totalCount
=
mapper
.
selectCount
(
appUserRelation
);
appUserRelation
.
setIsForever
(
1
);
appUserRelation
.
setIsForever
(
1
);
int
activityCount
=
mapper
.
selectCount
(
appUserRelation
);
int
activityCount
=
mapper
.
selectCount
(
appUserRelation
);
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/filter/AcceptFilter.java
deleted
100644 → 0
View file @
958531b8
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
AcceptFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
ACCEPT
:
FilterReply
.
DENY
;
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/filter/DenyFilter.java
deleted
100644 → 0
View file @
958531b8
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
DENY
:
FilterReply
.
ACCEPT
;
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -18,7 +19,7 @@
...
@@ -18,7 +19,7 @@
</appender>
</appender>
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
admi
n.filter.DenyFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
commo
n.filter.DenyFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
@@ -29,7 +30,7 @@
...
@@ -29,7 +30,7 @@
</appender>
</appender>
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
admi
n.filter.AcceptFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
commo
n.filter.AcceptFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/ActivityApplication.java
View file @
887f28a7
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.activity;
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.activity;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.cache.annotation.EnableCaching
;
...
@@ -30,6 +31,7 @@ import tk.mybatis.spring.annotation.MapperScan;
...
@@ -30,6 +31,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableAceCache
@EnableAceCache
@EnableCaching
@EnableCaching
@MapperScan
(
basePackages
=
"com.xxfc.platform.activity.mapper"
)
@MapperScan
(
basePackages
=
"com.xxfc.platform.activity.mapper"
)
@AddBasicConfiguration
public
class
ActivityApplication
{
public
class
ActivityApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
...
...
xx-activity/xx-activity-server/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-app/xx-app-server/src/main/java/com/xxfc/platform/app/AppApplication.java
View file @
887f28a7
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.app;
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.app;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
@@ -19,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
...
@@ -19,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAceAuthClient
@EnableAceAuthClient
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@EnableAceCache
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.app.mapper"
)
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.app.mapper"
)
public
class
AppApplication
{
public
class
AppApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
...
...
xx-app/xx-app-server/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-campsite/xx-campsite-server/src/main/java/com/xxfc/platform/campsite/CampSiteApplication.java
View file @
887f28a7
...
@@ -3,9 +3,9 @@ package com.xxfc.platform.campsite;
...
@@ -3,9 +3,9 @@ package com.xxfc.platform.campsite;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
...
@@ -27,6 +27,7 @@ import tk.mybatis.spring.annotation.MapperScan;
...
@@ -27,6 +27,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableScheduling
@EnableScheduling
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@EnableAceCache
@AddBasicConfiguration
@MapperScan
(
basePackages
=
"com.xxfc.platform.campsite.mapper"
)
@MapperScan
(
basePackages
=
"com.xxfc.platform.campsite.mapper"
)
public
class
CampSiteApplication
{
public
class
CampSiteApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
...
...
xx-campsite/xx-campsite-server/src/main/resources/logback.xml
View file @
887f28a7
<configuration
debug=
"false"
scan=
"true"
scanPeriod=
"10 seconds"
>
<?xml version="1.0" encoding="UTF-8"?>
<!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->
<configuration
debug=
"false"
>
<!--<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>-->
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property
name=
"LOG_HOME"
value=
"${system.log.path:-logs}"
/>
<contextName>
logback
</contextName>
<!-- 彩色日志依赖的渲染类 -->
<!--输出sql语句-->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<logger
name=
"com.xxfc"
level=
"debug"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<property
name=
"path"
value=
"logs"
></property>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<property
name=
"maxHistory"
value=
"30"
/>
<!-- 彩色日志格式 -->
<property
name=
"maxFileSize"
value=
"50MB"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<level>
debug
</level>
</filter>
<encoder>
<pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
</appender>
<appender
name=
"debug_file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
${path}/logback_debug.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天一归档 -->
<fileNamePattern>
${path}/logback_debug.log.%d{yyyy-MM-dd}-%i.zip
</fileNamePattern>
<maxHistory>
${maxHistory}
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
${maxFileSize}
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<encoder>
<
pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
<
Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<
/pattern
>
<
charset>
UTF-8
</charset>
<!-- 设置字符集 --
>
</encoder>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
DEBUG
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
</appender>
<appender
name=
"
info_file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"
SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 --
>
<fil
e>
${path}/logback_info.log
</file
>
<fil
ter
class=
"com.github.wxiaoqi.security.common.filter.DenyFilter"
></filter
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天一归档 -->
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<fileNamePattern>
${path}/logback_info.log.%d{yyyy-MM-dd}-%i.zip
</fileNamePattern>
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
<maxHistory>
${maxHistory}
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
${maxFileSize}
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</rollingPolicy>
<encoder>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</pattern>
</encoder>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
INFO
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
</appender>
<appender
name=
"
warn_file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"
WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 --
>
<fil
e>
${path}/logback_warn.log
</file
>
<fil
ter
class=
"com.github.wxiaoqi.security.common.filter.AcceptFilter"
></filter
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天一归档 -->
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<fileNamePattern>
${path}/logback_warn.log.%d{yyyy-MM-dd}-%i.zip
</fileNamePattern>
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
<maxHistory>
${maxHistory}
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
${maxFileSize}
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</rollingPolicy>
<encoder>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</pattern>
</encoder>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
WARN
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
</appender>
<appender
name=
"error_file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<root
level=
"INFO"
>
<file>
${path}/logback_error.log
</file>
<appender-ref
ref=
"STDOUT"
/>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<!-- 每天一归档 -->
<appender-ref
ref=
"WEB_FILE"
/>
<fileNamePattern>
${path}/logback_error.log.%d{yyyy-MM-dd}-%i.zip
</fileNamePattern>
<maxHistory>
${maxHistory}
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
${maxFileSize}
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
ERROR
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<root>
<level
value=
"info"
/>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"debug_file"
/>
<appender-ref
ref=
"info_file"
/>
<appender-ref
ref=
"warn_file"
/>
<appender-ref
ref=
"error_file"
/>
</root>
</root>
</configuration>
</configuration>
\ No newline at end of file
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/ImApplication.java
View file @
887f28a7
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.im;
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.im;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
...
@@ -22,6 +23,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
...
@@ -22,6 +23,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@EnableAceCache
@EnableCaching
@EnableCaching
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.im.mapper"
)
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.im.mapper"
)
public
class
ImApplication
{
public
class
ImApplication
{
...
...
xx-im/xx-im-server/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/OrderApplication.java
View file @
887f28a7
...
@@ -3,8 +3,7 @@ package com.xxfc.platform.order;
...
@@ -3,8 +3,7 @@ package com.xxfc.platform.order;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.spring4all.swagger.EnableSwagger2Doc
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
@@ -21,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
...
@@ -21,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAceAuthClient
@EnableAceAuthClient
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@EnableAceCache
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.order.mapper"
)
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.order.mapper"
)
public
class
OrderApplication
{
public
class
OrderApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
View file @
887f28a7
...
@@ -63,7 +63,7 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
...
@@ -63,7 +63,7 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
if
(
RefundStatusEnum
.
NONE
.
getCode
().
equals
(
orderMQDTO
.
getRefundStatus
()))
{
if
(
RefundStatusEnum
.
NONE
.
getCode
().
equals
(
orderMQDTO
.
getRefundStatus
()))
{
OrderVehicleCrosstown
crosstown
=
crosstownBiz
.
selectOne
(
new
OrderVehicleCrosstown
(){{
OrderVehicleCrosstown
crosstown
=
crosstownBiz
.
selectOne
(
new
OrderVehicleCrosstown
(){{
setOrderId
(
orderMQDTO
.
getId
());
setOrderId
(
orderMQDTO
.
getId
());
setType
(
CrosstownTypeEnum
.
TOUR
.
getCode
());
setType
(
CrosstownTypeEnum
.
ARRIVE
.
getCode
());
}});
}});
//还车扣除款 剩余的 钱,再减去违章预备金
//还车扣除款 剩余的 钱,再减去违章预备金
BigDecimal
refundAmont
=
crosstown
.
getRestDeposit
().
subtract
(
illegalReserve
);
BigDecimal
refundAmont
=
crosstown
.
getRestDeposit
().
subtract
(
illegalReserve
);
...
...
xx-order/xx-order-server/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/TourApplication.java
View file @
887f28a7
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.tour;
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.tour;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.cache.annotation.EnableCaching
;
...
@@ -27,6 +28,7 @@ import tk.mybatis.spring.annotation.MapperScan;
...
@@ -27,6 +28,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@EnableAceCache
@EnableCaching
@EnableCaching
@AddBasicConfiguration
@MapperScan
(
basePackages
=
"com.xxfc.platform.tour.mapper"
)
@MapperScan
(
basePackages
=
"com.xxfc.platform.tour.mapper"
)
public
class
TourApplication
{
public
class
TourApplication
{
...
...
xx-tour/xx-tour-server/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/UniversalApplication.java
View file @
887f28a7
...
@@ -3,7 +3,7 @@ package com.xxfc.platform.universal;
...
@@ -3,7 +3,7 @@ package com.xxfc.platform.universal;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
org.mybatis.spring.annotation.MapperSca
n
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguratio
n
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
...
@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableScheduling
@EnableScheduling
@EnableAceCache
@EnableAceCache
@EnableTransactionManagement
@EnableTransactionManagement
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.universal.mapper"
)
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.universal.mapper"
)
@EnableFeignClients
(
value
=
{
"com.xxfc.platform"
,
"com.github.wxiaoqi.security"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableFeignClients
(
value
=
{
"com.xxfc.platform"
,
"com.github.wxiaoqi.security"
},
defaultConfiguration
=
HeaderConfig
.
class
)
public
class
UniversalApplication
{
public
class
UniversalApplication
{
...
...
xx-universal/xx-universal-server/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/VehicleApplication.java
View file @
887f28a7
...
@@ -3,11 +3,11 @@ package com.xxfc.platform.vehicle;
...
@@ -3,11 +3,11 @@ package com.xxfc.platform.vehicle;
import
com.ace.cache.EnableAceCache
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
@SpringBootApplication
(
scanBasePackages
=
{
@SpringBootApplication
(
scanBasePackages
=
{
...
@@ -21,6 +21,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
...
@@ -21,6 +21,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAceAuthClient
@EnableAceAuthClient
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security"
,
"com.xxfc.platform.vehicle.feign"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security"
,
"com.xxfc.platform.vehicle.feign"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@EnableAceCache
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.vehicle.mapper"
)
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.vehicle.mapper"
)
public
class
VehicleApplication
{
public
class
VehicleApplication
{
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
View file @
887f28a7
...
@@ -1334,4 +1334,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
...
@@ -1334,4 +1334,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
return
list
;
return
list
;
}
}
public
List
<
String
>
findExistVehicleIds
()
{
return
mapper
.
findExistVehicleIds
();
}
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleBookInfoBiz.java
View file @
887f28a7
...
@@ -29,6 +29,7 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
...
@@ -29,6 +29,7 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
public
static
final
DateTimeFormatter
YEARMONTH_DATE_TIME_FORMATTER
=
DateTimeFormat
.
forPattern
(
"yyyy-MM"
);
public
static
final
DateTimeFormatter
YEARMONTH_DATE_TIME_FORMATTER
=
DateTimeFormat
.
forPattern
(
"yyyy-MM"
);
public
static
final
Integer
DEL_BATCH_SIZE
=
1000
;
public
static
final
Integer
DEL_BATCH_SIZE
=
1000
;
public
static
final
Integer
COPY_BATCH_SIZE
=
100
;
public
static
final
Integer
COPY_BATCH_SIZE
=
100
;
public
static
final
int
MONTH_INTERVAL
=
2
;
@Autowired
@Autowired
private
RedisTemplate
customRedisTemplate
;
private
RedisTemplate
customRedisTemplate
;
...
@@ -127,4 +128,7 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
...
@@ -127,4 +128,7 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
mapper
.
createTbIfNotExists
(
tbName
);
mapper
.
createTbIfNotExists
(
tbName
);
}
}
public
void
InsertBatch
(
List
<
VehicleBookInfo
>
bookInfos
)
{
mapper
.
insertBatch
(
bookInfos
);
}
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/config/XxlJobConfig.java
0 → 100644
View file @
887f28a7
package
com
.
xxfc
.
platform
.
vehicle
.
config
;
import
com.xxl.job.core.executor.impl.XxlJobSpringExecutor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
*/
@Slf4j
@Configuration
public
class
XxlJobConfig
{
@Value
(
"${xxl.job.admin.addresses}"
)
private
String
adminAddresses
;
@Value
(
"${xxl.job.executor.appname}"
)
private
String
appName
;
@Value
(
"${xxl.job.executor.ip}"
)
private
String
ip
;
@Value
(
"${xxl.job.executor.port}"
)
private
int
port
;
@Value
(
"${xxl.job.accessToken}"
)
private
String
accessToken
;
@Value
(
"${xxl.job.executor.logpath}"
)
private
String
logPath
;
@Value
(
"${xxl.job.executor.logretentiondays}"
)
private
int
logRetentionDays
;
@Bean
(
initMethod
=
"start"
,
destroyMethod
=
"destroy"
)
public
XxlJobSpringExecutor
xxlJobExecutor
()
{
log
.
info
(
">>>>>>>>>>> xxl-job config init."
);
XxlJobSpringExecutor
xxlJobSpringExecutor
=
new
XxlJobSpringExecutor
();
xxlJobSpringExecutor
.
setAdminAddresses
(
adminAddresses
);
xxlJobSpringExecutor
.
setAppName
(
appName
);
xxlJobSpringExecutor
.
setIp
(
ip
);
xxlJobSpringExecutor
.
setPort
(
port
);
xxlJobSpringExecutor
.
setAccessToken
(
accessToken
);
xxlJobSpringExecutor
.
setLogPath
(
logPath
);
xxlJobSpringExecutor
.
setLogRetentionDays
(
logRetentionDays
);
return
xxlJobSpringExecutor
;
}
/**
* 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
*
* 1、引入依赖:
* <dependency>
* <groupId>org.springframework.cloud</groupId>
* <artifactId>spring-cloud-commons</artifactId>
* <version>${version}</version>
* </dependency>
*
* 2、配置文件,或者容器启动变量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
* 3、获取IP
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
*/
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/jobhandler/VehicleJobHandler.java
0 → 100644
View file @
887f28a7
package
com
.
xxfc
.
platform
.
vehicle
.
jobhandler
;
import
com.xxfc.platform.vehicle.biz.VehicleBiz
;
import
com.xxfc.platform.vehicle.biz.VehicleBookInfoBiz
;
import
com.xxfc.platform.vehicle.entity.VehicleBookInfo
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.handler.IJobHandler
;
import
com.xxl.job.core.handler.annotation.JobHandler
;
import
com.xxl.job.core.log.XxlJobLogger
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDate
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/1 11:28
*/
@JobHandler
(
value
=
"vehicle_job_handler"
)
@Component
(
"vehicle_job_handler"
)
public
class
VehicleJobHandler
extends
IJobHandler
{
@Autowired
private
VehicleBiz
vehicleBiz
;
@Autowired
private
VehicleBookInfoBiz
vehicleBookInfoBiz
;
@Override
public
ReturnT
<
String
>
execute
(
String
s
)
throws
Exception
{
try
{
List
<
String
>
existVehicleIds
=
vehicleBiz
.
findExistVehicleIds
();
LocalDate
date
=
LocalDate
.
now
();
int
year
=
date
.
getYear
();
int
nowMonth
=
date
.
getMonthValue
();
int
month
=
nowMonth
+
VehicleBookInfoBiz
.
MONTH_INTERVAL
>
12
?
(
VehicleBookInfoBiz
.
MONTH_INTERVAL
+
nowMonth
)
-
12
:
nowMonth
+
VehicleBookInfoBiz
.
MONTH_INTERVAL
;
year
=
month
>
nowMonth
?
year
:
year
+
1
;
String
yearAndMonth
=
String
.
format
(
"%d-%d"
,
year
,
month
);
if
(
CollectionUtils
.
isNotEmpty
(
existVehicleIds
))
{
List
<
VehicleBookInfo
>
bookInfos
=
existVehicleIds
.
stream
().
map
(
vehicleId
->
{
VehicleBookInfo
vehicleBookInfo
=
new
VehicleBookInfo
();
vehicleBookInfo
.
setVehicle
(
vehicleId
);
vehicleBookInfo
.
setYearMonth
(
yearAndMonth
);
return
vehicleBookInfo
;
}).
collect
(
Collectors
.
toList
());
vehicleBookInfoBiz
.
InsertBatch
(
bookInfos
);
}
ReturnT
returnT
=
new
ReturnT
();
returnT
.
setCode
(
100
);
returnT
.
setMsg
(
"成功"
);
return
returnT
;
}
catch
(
Exception
ex
)
{
XxlJobLogger
.
log
(
ex
);
return
FAIL
;
}
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleBookInfoMapper.java
View file @
887f28a7
package
com
.
xxfc
.
platform
.
vehicle
.
mapper
;
package
com
.
xxfc
.
platform
.
vehicle
.
mapper
;
import
com.xxfc.platform.vehicle.entity.VehicleBookInfo
;
import
com.xxfc.platform.vehicle.entity.VehicleBookInfo
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
import
java.util.List
;
...
@@ -43,4 +44,5 @@ public interface VehicleBookInfoMapper extends Mapper<VehicleBookInfo> {
...
@@ -43,4 +44,5 @@ public interface VehicleBookInfoMapper extends Mapper<VehicleBookInfo> {
public
Integer
del4YearMoth
(
Map
<
String
,
Object
>
params
);
public
Integer
del4YearMoth
(
Map
<
String
,
Object
>
params
);
void
insertBatch
(
@Param
(
"vbfs"
)
List
<
VehicleBookInfo
>
bookInfos
);
}
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleMapper.java
View file @
887f28a7
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.mapper;
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.mapper;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.pojo.*
;
import
com.xxfc.platform.vehicle.pojo.*
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
org.apache.ibatis.annotations.Select
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.data.repository.query.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.common.Mapper
;
...
@@ -46,5 +47,6 @@ public interface VehicleMapper extends Mapper<Vehicle> {
...
@@ -46,5 +47,6 @@ public interface VehicleMapper extends Mapper<Vehicle> {
int
upMileageByIdAndStatus
(
@Param
(
"vehicleId"
)
String
vehicleId
,
@Param
(
"status"
)
Integer
status
,
int
upMileageByIdAndStatus
(
@Param
(
"vehicleId"
)
String
vehicleId
,
@Param
(
"status"
)
Integer
status
,
@Param
(
"lastStatus"
)
Integer
lastStatus
,
@Param
(
"mileage"
)
Integer
mileage
);
@Param
(
"lastStatus"
)
Integer
lastStatus
,
@Param
(
"mileage"
)
Integer
mileage
);
@Select
(
"select `id` from `vehicle` where `is_del`=0"
)
List
<
String
>
findExistVehicleIds
();
}
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/resources/logback.xml
View file @
887f28a7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
@@ -39,16 +40,6 @@
...
@@ -39,16 +40,6 @@
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleBookInfoMapper.xml
View file @
887f28a7
...
@@ -87,5 +87,10 @@
...
@@ -87,5 +87,10 @@
</insert>
</insert>
<insert
id=
"insertBatch"
>
INSERT IGNORE INTO vehicle_book_info(`vehicle`,`year_month`,`booked_date`)VALUES
<foreach
collection=
"vbfs"
item=
"vbf"
separator=
","
>
(#{vbf.vehicle} ,#{vbf.yearMonth} ,0)
</foreach>
</insert>
</mapper>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment