Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Eladmin
Commits
615a4206
Commit
615a4206
authored
May 31, 2022
by
Zheng Jie
Browse files
Merge branch 'master' into deploy
parents
13737921
5959c3fc
Changes
17
Hide whitespace changes
Inline
Side-by-side
eladmin-common/pom.xml
View file @
615a4206
...
...
@@ -9,7 +9,7 @@
</parent>
<modelVersion>
4.0.0
</modelVersion>
<properties>
<hutool.version>
5.
3.4
</hutool.version>
<hutool.version>
5.
7.22
</hutool.version>
</properties>
<artifactId>
eladmin-common
</artifactId>
...
...
eladmin-common/src/main/java/me/zhengjie/config/SwaggerConfig.java
View file @
615a4206
...
...
@@ -15,8 +15,8 @@
*/
package
me.zhengjie.config
;
import
cn.hutool.core.collection.CollUtil
;
import
com.fasterxml.classmate.TypeResolver
;
import
com.google.common.base.Predicates
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -29,14 +29,18 @@ import springfox.documentation.builders.ApiInfoBuilder;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.schema.AlternateTypeRule
;
import
springfox.documentation.schema.AlternateTypeRuleConvention
;
import
springfox.documentation.service.*
;
import
springfox.documentation.service.ApiInfo
;
import
springfox.documentation.service.ApiKey
;
import
springfox.documentation.service.AuthorizationScope
;
import
springfox.documentation.service.SecurityReference
;
import
springfox.documentation.service.SecurityScheme
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spi.service.contexts.SecurityContext
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
import
java.util.ArrayList
;
import
java.util.List
;
import
static
com
.
google
.
common
.
collect
.
Lists
.
newArrayList
;
import
static
springfox
.
documentation
.
schema
.
AlternateTypeRules
.
newRule
;
/**
...
...
@@ -62,7 +66,7 @@ public class SwaggerConfig {
.
pathMapping
(
"/"
)
.
apiInfo
(
apiInfo
())
.
select
()
.
paths
(
Predicates
.
not
(
PathSelectors
.
regex
(
"/error.*"
))
)
.
paths
(
PathSelectors
.
regex
(
"
^(?!
/error
)
.*"
))
.
paths
(
PathSelectors
.
any
())
.
build
()
//添加登陆认证
...
...
@@ -98,7 +102,7 @@ public class SwaggerConfig {
private
SecurityContext
getContextByPath
()
{
return
SecurityContext
.
builder
()
.
securityReferences
(
defaultAuth
())
.
forPaths
(
PathSelectors
.
regex
(
"^(?!/auth).*$"
))
.
operationSelector
(
o
->
o
.
requestMappingPattern
().
matches
(
"^(?!/auth).*$"
))
.
build
();
}
...
...
@@ -128,7 +132,7 @@ class SwaggerDataConfig {
@Override
public
List
<
AlternateTypeRule
>
rules
()
{
return
newArrayList
(
newRule
(
resolver
.
resolve
(
Pageable
.
class
),
resolver
.
resolve
(
Page
.
class
)));
return
CollUtil
.
newArrayList
(
newRule
(
resolver
.
resolve
(
Pageable
.
class
),
resolver
.
resolve
(
Page
.
class
)));
}
};
}
...
...
eladmin-common/src/main/java/me/zhengjie/utils/ValidationUtil.java
View file @
615a4206
...
...
@@ -15,16 +15,17 @@
*/
package
me.zhengjie.utils
;
import
cn.hutool.core.lang.Validator
;
import
cn.hutool.core.util.ObjectUtil
;
import
me.zhengjie.exception.BadRequestException
;
import
org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator
;
/**
* 验证工具
*
* @author Zheng Jie
* @date 2018-11-23
*/
public
class
ValidationUtil
{
public
class
ValidationUtil
{
/**
* 验证空
...
...
@@ -36,10 +37,10 @@ public class ValidationUtil{
}
}
/**
* 验证是否为邮箱
*/
public
static
boolean
isEmail
(
String
email
)
{
return
new
Email
Validator
()
.
is
Valid
(
email
,
nul
l
);
}
/**
* 验证是否为邮箱
*/
public
static
boolean
isEmail
(
String
email
)
{
return
Validator
.
is
Email
(
emai
l
);
}
}
eladmin-common/src/test/java/me/zhengjie/utils/DateUtilsTest.java
View file @
615a4206
package
me.zhengjie.utils
;
import
org.junit.Test
;
import
org.junit.
jupiter.api.
Test
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
...
...
eladmin-common/src/test/java/me/zhengjie/utils/EncryptUtilsTest.java
View file @
615a4206
package
me.zhengjie.utils
;
import
org.junit.Test
;
import
static
org
.
junit
.
Assert
.*;
import
org.junit.
jupiter.api.
Test
;
import
static
me
.
zhengjie
.
utils
.
EncryptUtils
.*;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
public
class
EncryptUtilsTest
{
...
...
eladmin-common/src/test/java/me/zhengjie/utils/FileUtilTest.java
View file @
615a4206
package
me.zhengjie.utils
;
import
org.junit.Test
;
import
org.junit.
jupiter.api.
Test
;
import
org.springframework.mock.web.MockMultipartFile
;
import
static
org
.
junit
.
Assert
.*;
import
static
me
.
zhengjie
.
utils
.
FileUtil
.*;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
public
class
FileUtilTest
{
...
...
eladmin-common/src/test/java/me/zhengjie/utils/StringUtilsTest.java
View file @
615a4206
package
me.zhengjie.utils
;
import
org.junit.Test
;
import
org.junit.
jupiter.api.
Test
;
import
org.springframework.mock.web.MockHttpServletRequest
;
import
java.text.SimpleDateFormat
;
import
java.util.
*
;
import
java.util.
Date
;
import
static
me
.
zhengjie
.
utils
.
StringUtils
.*;
import
static
org
.
junit
.
Assert
.*;
import
static
me
.
zhengjie
.
utils
.
StringUtils
.
getIp
;
import
static
me
.
zhengjie
.
utils
.
StringUtils
.
getWeekDay
;
import
static
me
.
zhengjie
.
utils
.
StringUtils
.
toCamelCase
;
import
static
me
.
zhengjie
.
utils
.
StringUtils
.
toCapitalizeCamelCase
;
import
static
me
.
zhengjie
.
utils
.
StringUtils
.
toUnderScoreCase
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertNull
;
public
class
StringUtilsTest
{
...
...
@@ -40,4 +45,4 @@ public class StringUtilsTest {
public
void
testGetIP
()
{
assertEquals
(
"127.0.0.1"
,
getIp
(
new
MockHttpServletRequest
()));
}
}
\ No newline at end of file
}
eladmin-generator/pom.xml
View file @
615a4206
...
...
@@ -13,7 +13,7 @@
<name>
代码生成模块
</name>
<properties>
<configuration.version>
1.
9
</configuration.version>
<configuration.version>
1.
10
</configuration.version>
</properties>
<dependencies>
...
...
eladmin-system/pom.xml
View file @
615a4206
...
...
@@ -13,7 +13,7 @@
<name>
核心模块
</name>
<properties>
<jjwt.version>
0.11.
1
</jjwt.version>
<jjwt.version>
0.11.
2
</jjwt.version>
<!-- oshi监控需要指定jna版本, 问题详见 https://github.com/oshi/oshi/issues/1040 -->
<jna.version>
5.8.0
</jna.version>
</properties>
...
...
@@ -84,7 +84,7 @@
<dependency>
<groupId>
com.github.oshi
</groupId>
<artifactId>
oshi-core
</artifactId>
<version>
5.7.1
</version>
<version>
6.1.4
</version>
</dependency>
</dependencies>
...
...
eladmin-system/src/main/java/me/zhengjie/config/ConfigurerAdapter.java
View file @
615a4206
...
...
@@ -54,7 +54,7 @@ public class ConfigurerAdapter implements WebMvcConfigurer {
UrlBasedCorsConfigurationSource
source
=
new
UrlBasedCorsConfigurationSource
();
CorsConfiguration
config
=
new
CorsConfiguration
();
config
.
setAllowCredentials
(
true
);
config
.
addAllowedOrigin
(
"*"
);
config
.
addAllowedOrigin
Pattern
(
"*"
);
config
.
addAllowedHeader
(
"*"
);
config
.
addAllowedMethod
(
"*"
);
source
.
registerCorsConfiguration
(
"/**"
,
config
);
...
...
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MonitorServiceImpl.java
View file @
615a4206
...
...
@@ -15,9 +15,8 @@
*/
package
me.zhengjie.modules.system.service.impl
;
import
cn.hutool.core.date.BetweenFormater
;
import
cn.hutool.core.date.BetweenFormat
t
er
.Level
;
import
cn.hutool.core.date.DateUtil
;
import
me.zhengjie.exception.BadRequestException
;
import
me.zhengjie.modules.system.service.MonitorService
;
import
me.zhengjie.utils.ElAdminConstant
;
import
me.zhengjie.utils.FileUtil
;
...
...
@@ -177,7 +176,7 @@ public class MonitorServiceImpl implements MonitorService {
long
time
=
ManagementFactory
.
getRuntimeMXBean
().
getStartTime
();
Date
date
=
new
Date
(
time
);
// 计算项目运行时间
String
formatBetween
=
DateUtil
.
formatBetween
(
date
,
new
Date
(),
BetweenFormater
.
Level
.
HOUR
);
String
formatBetween
=
DateUtil
.
formatBetween
(
date
,
new
Date
(),
Level
.
HOUR
);
// 系统信息
systemInfo
.
put
(
"os"
,
os
.
toString
());
systemInfo
.
put
(
"day"
,
formatBetween
);
...
...
eladmin-system/src/main/resources/banner.txt
View file @
615a4206
...
...
@@ -5,4 +5,4 @@
| __| | | (_| | (_| | | | | | | | | | |
\___|_| \__,_|\__,_|_| |_| |_|_|_| |_|
:: Spring Boot :: (v2.2.10.RELEASE)
\ No newline at end of file
:: Spring Boot :: (v2.6.4)
\ No newline at end of file
eladmin-system/src/main/resources/template/generator/admin/Entity.ftl
View file @
615a4206
...
...
@@ -55,7 +55,7 @@ public class ${className} implements Serializable {
@
G
eneratedValue
(
strategy
=
G
enerationType
.IDENTITY
)
</#
if
>
</#
if
>
@
C
olumn
(
name
=
"${column.columnName}"
<#
if
column
.columnKey
=
'
UNI
'>
,
unique
=
true
</#
if
><#
if
column
.istNotNull
&&
column
.columnKey
!=
'
PRI
'>
,
nullable
=
false
</#
if
>
)
@
C
olumn
(
name
=
"
`
${column.columnName}
`
"
<#
if
column
.columnKey
=
'
UNI
'>
,
unique
=
true
</#
if
><#
if
column
.istNotNull
&&
column
.columnKey
!=
'
PRI
'>
,
nullable
=
false
</#
if
>
)
<#
if
column
.istNotNull
&&
column
.columnKey
!=
'
PRI
'>
<#
if
column
.columnType
=
'
S
tring
'>
@
N
otBlank
...
...
@@ -82,4 +82,4 @@ public class ${className} implements Serializable {
public
void
copy
(
$
{
className
}
source
){
B
eanUtil
.copyProperties
(
source
,
this
,
C
opyOptions
.create
()
.setIgnoreNullValue
(
true
))
;
}
}
\ No newline at end of file
}
eladmin-system/src/test/java/me/zhengjie/EladminSystemApplicationTests.java
View file @
615a4206
package
me.zhengjie
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
webEnvironment
=
SpringBootTest
.
WebEnvironment
.
RANDOM_PORT
)
public
class
EladminSystemApplicationTests
{
...
...
eladmin-system/src/test/java/me/zhengjie/LoginCacheTest.java
deleted
100644 → 0
View file @
13737921
package
me.zhengjie
;
import
me.zhengjie.modules.security.service.UserDetailsServiceImpl
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
javax.annotation.Resource
;
import
java.util.concurrent.CountDownLatch
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
webEnvironment
=
SpringBootTest
.
WebEnvironment
.
RANDOM_PORT
)
public
class
LoginCacheTest
{
@Resource
(
name
=
"userDetailsService"
)
private
UserDetailsServiceImpl
userDetailsService
;
ExecutorService
executor
=
Executors
.
newCachedThreadPool
();
@Test
public
void
testCache
()
throws
InterruptedException
{
long
start1
=
System
.
currentTimeMillis
();
int
size
=
1000
;
CountDownLatch
latch
=
new
CountDownLatch
(
size
);
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
executor
.
submit
(()
->
userDetailsService
.
loadUserByUsername
(
"admin"
));
latch
.
countDown
();
}
latch
.
await
();
long
end1
=
System
.
currentTimeMillis
();
//关闭缓存
userDetailsService
.
setEnableCache
(
false
);
long
start2
=
System
.
currentTimeMillis
();
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
userDetailsService
.
loadUserByUsername
(
"admin"
);
}
long
end2
=
System
.
currentTimeMillis
();
System
.
out
.
print
(
"使用缓存:"
+
(
end1
-
start1
)
+
"毫秒\n 不使用缓存:"
+
(
end2
-
start2
)
+
"毫秒"
);
}
@Test
public
void
testCacheManager
()
throws
InterruptedException
{
int
size
=
1000
;
CountDownLatch
latch
=
new
CountDownLatch
(
size
);
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
int
mod
=
i
%
10
;
executor
.
submit
(()
->
{
try
{
Thread
.
sleep
(
mod
*
2
+
(
int
)
(
Math
.
random
()
*
10000
));
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
userDetailsService
.
loadUserByUsername
(
"admin"
+
mod
);
latch
.
countDown
();
System
.
out
.
println
(
"剩余未完成数量"
+
latch
.
getCount
());
});
}
latch
.
await
();
}
}
eladmin-tools/pom.xml
View file @
615a4206
...
...
@@ -14,8 +14,8 @@
<properties>
<mail.version>
1.4.7
</mail.version>
<qiniu.version>
[
7.
2.0, 7.2.99]
</qiniu.version>
<alipay.version>
4.
9.153
.ALL
</alipay.version>
<qiniu.version>
7.
9.3
</qiniu.version>
<alipay.version>
4.
22.57
.ALL
</alipay.version>
</properties>
<dependencies>
...
...
@@ -47,4 +47,4 @@
<version>
${alipay.version}
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
pom.xml
View file @
615a4206
...
...
@@ -23,7 +23,7 @@
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.
2.10.RELEASE
</version>
<version>
2.
6.4
</version>
</parent>
<properties>
...
...
@@ -35,9 +35,9 @@
<log4jdbc.version>
1.16
</log4jdbc.version>
<swagger.version>
2.9.2
</swagger.version>
<fastjson.version>
1.2.83
</fastjson.version>
<druid.version>
1.
1.24
</druid.version>
<commons-pool2.version>
2.
5.0
</commons-pool2.version>
<mapstruct.version>
1.
3.1
.Final
</mapstruct.version>
<druid.version>
1.
2.8
</druid.version>
<commons-pool2.version>
2.
11.1
</commons-pool2.version>
<mapstruct.version>
1.
4.2
.Final
</mapstruct.version>
</properties>
<dependencies>
...
...
@@ -80,6 +80,7 @@
</dependency>
<!--spring boot 集成redis所需common-pool2-->
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-pool2
</artifactId>
...
...
@@ -98,37 +99,14 @@
</dependency>
<!-- Swagger UI 相关 -->
<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter -->
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<version>
${swagger.version}
</version>
<exclusions>
<exclusion>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-annotations
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-models
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
${swagger.version}
</version>
</dependency>
<dependency>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-annotations
</artifactId>
<version>
1.5.21
</version>
</dependency>
<dependency>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-models
</artifactId>
<version>
1.5.21
</version>
<groupId>
com.github.xiaoymin
</groupId>
<artifactId>
knife4j-spring-boot-starter
</artifactId>
<version>
3.0.3
</version>
</dependency>
<!--Mysql依赖包-->
<dependency>
<groupId>
mysql
</groupId>
...
...
@@ -144,13 +122,13 @@
</dependency>
<!-- ip2region IP库 -->
<!-- https://mvnrepository.com/artifact/net.dreamlu/mica-ip2region -->
<dependency>
<groupId>
net.dreamlu
</groupId>
<artifactId>
mica-ip2region
</artifactId>
<version>
2.
5.6
</version>
<version>
2.
6.3
</version>
</dependency>
<!--lombok插件-->
<dependency>
<groupId>
org.projectlombok
</groupId>
...
...
@@ -162,12 +140,12 @@
<dependency>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi
</artifactId>
<version>
3.17
</version>
<version>
5.2.0
</version>
</dependency>
<dependency>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi-ooxml
</artifactId>
<version>
3.17
</version>
<version>
5.2.0
</version>
</dependency>
<dependency>
<groupId>
xerces
</groupId>
...
...
@@ -211,7 +189,7 @@
<dependency>
<groupId>
nl.basjes.parse.useragent
</groupId>
<artifactId>
yauaa
</artifactId>
<version>
5.23
</version>
<version>
6.11
</version>
</dependency>
</dependencies>
...
...
Write
Preview
Supports
Markdown
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