Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-manage
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
finance-oa
finance-manage
Commits
d9859de7
Commit
d9859de7
authored
Feb 12, 2022
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码优化
parent
5e6fd0d1
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
10 additions
and
229 deletions
+10
-229
ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java
...src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java
+0
-223
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
...ain/java/com/ruoyi/common/utils/file/FileUploadUtils.java
+0
-1
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java
...src/main/java/com/ruoyi/common/utils/http/HttpHelper.java
+0
-1
ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java
...mon/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java
+4
-2
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java
.../java/com/ruoyi/system/service/ISysLogininforService.java
+1
-0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
...ava/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+4
-2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java
...m/ruoyi/system/service/impl/SysLogininforServiceImpl.java
+1
-0
No files found.
ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java
deleted
100644 → 0
View file @
5e6fd0d1
package
com.ruoyi.common.utils
;
import
java.awt.Color
;
import
java.awt.Font
;
import
java.awt.Graphics
;
import
java.awt.Graphics2D
;
import
java.awt.RenderingHints
;
import
java.awt.geom.AffineTransform
;
import
java.awt.image.BufferedImage
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.security.SecureRandom
;
import
java.util.Arrays
;
import
java.util.Random
;
import
javax.imageio.ImageIO
;
/**
* 验证码工具类
*
* @author ruoyi
*/
public
class
VerifyCodeUtils
{
// 使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符
public
static
final
String
VERIFY_CODES
=
"123456789ABCDEFGHJKLMNPQRSTUVWXYZ"
;
private
static
Random
random
=
new
SecureRandom
();
/**
* 使用系统默认字符源生成验证码
*
* @param verifySize 验证码长度
* @return
*/
public
static
String
generateVerifyCode
(
int
verifySize
)
{
return
generateVerifyCode
(
verifySize
,
VERIFY_CODES
);
}
/**
* 使用指定源生成验证码
*
* @param verifySize 验证码长度
* @param sources 验证码字符源
* @return
*/
public
static
String
generateVerifyCode
(
int
verifySize
,
String
sources
)
{
if
(
sources
==
null
||
sources
.
length
()
==
0
)
{
sources
=
VERIFY_CODES
;
}
int
codesLen
=
sources
.
length
();
Random
rand
=
new
Random
(
System
.
currentTimeMillis
());
StringBuilder
verifyCode
=
new
StringBuilder
(
verifySize
);
for
(
int
i
=
0
;
i
<
verifySize
;
i
++)
{
verifyCode
.
append
(
sources
.
charAt
(
rand
.
nextInt
(
codesLen
-
1
)));
}
return
verifyCode
.
toString
();
}
/**
* 输出指定验证码图片流
*
* @param w
* @param h
* @param os
* @param code
* @throws IOException
*/
public
static
void
outputImage
(
int
w
,
int
h
,
OutputStream
os
,
String
code
)
throws
IOException
{
int
verifySize
=
code
.
length
();
BufferedImage
image
=
new
BufferedImage
(
w
,
h
,
BufferedImage
.
TYPE_INT_RGB
);
Random
rand
=
new
Random
();
Graphics2D
g2
=
image
.
createGraphics
();
g2
.
setRenderingHint
(
RenderingHints
.
KEY_ANTIALIASING
,
RenderingHints
.
VALUE_ANTIALIAS_ON
);
Color
[]
colors
=
new
Color
[
5
];
Color
[]
colorSpaces
=
new
Color
[]
{
Color
.
WHITE
,
Color
.
CYAN
,
Color
.
GRAY
,
Color
.
LIGHT_GRAY
,
Color
.
MAGENTA
,
Color
.
ORANGE
,
Color
.
PINK
,
Color
.
YELLOW
};
float
[]
fractions
=
new
float
[
colors
.
length
];
for
(
int
i
=
0
;
i
<
colors
.
length
;
i
++)
{
colors
[
i
]
=
colorSpaces
[
rand
.
nextInt
(
colorSpaces
.
length
)];
fractions
[
i
]
=
rand
.
nextFloat
();
}
Arrays
.
sort
(
fractions
);
g2
.
setColor
(
Color
.
GRAY
);
// 设置边框色
g2
.
fillRect
(
0
,
0
,
w
,
h
);
Color
c
=
getRandColor
(
200
,
250
);
g2
.
setColor
(
c
);
// 设置背景色
g2
.
fillRect
(
0
,
2
,
w
,
h
-
4
);
// 绘制干扰线
Random
random
=
new
Random
();
g2
.
setColor
(
getRandColor
(
160
,
200
));
// 设置线条的颜色
for
(
int
i
=
0
;
i
<
20
;
i
++)
{
int
x
=
random
.
nextInt
(
w
-
1
);
int
y
=
random
.
nextInt
(
h
-
1
);
int
xl
=
random
.
nextInt
(
6
)
+
1
;
int
yl
=
random
.
nextInt
(
12
)
+
1
;
g2
.
drawLine
(
x
,
y
,
x
+
xl
+
40
,
y
+
yl
+
20
);
}
// 添加噪点
float
yawpRate
=
0.05f
;
// 噪声率
int
area
=
(
int
)
(
yawpRate
*
w
*
h
);
for
(
int
i
=
0
;
i
<
area
;
i
++)
{
int
x
=
random
.
nextInt
(
w
);
int
y
=
random
.
nextInt
(
h
);
int
rgb
=
getRandomIntColor
();
image
.
setRGB
(
x
,
y
,
rgb
);
}
shear
(
g2
,
w
,
h
,
c
);
// 使图片扭曲
g2
.
setColor
(
getRandColor
(
100
,
160
));
int
fontSize
=
h
-
4
;
Font
font
=
new
Font
(
"Algerian"
,
Font
.
ITALIC
,
fontSize
);
g2
.
setFont
(
font
);
char
[]
chars
=
code
.
toCharArray
();
for
(
int
i
=
0
;
i
<
verifySize
;
i
++)
{
AffineTransform
affine
=
new
AffineTransform
();
affine
.
setToRotation
(
Math
.
PI
/
4
*
rand
.
nextDouble
()
*
(
rand
.
nextBoolean
()
?
1
:
-
1
),
(
w
/
verifySize
)
*
i
+
fontSize
/
2
,
h
/
2
);
g2
.
setTransform
(
affine
);
g2
.
drawChars
(
chars
,
i
,
1
,
((
w
-
10
)
/
verifySize
)
*
i
+
5
,
h
/
2
+
fontSize
/
2
-
10
);
}
g2
.
dispose
();
ImageIO
.
write
(
image
,
"jpg"
,
os
);
}
private
static
Color
getRandColor
(
int
fc
,
int
bc
)
{
if
(
fc
>
255
)
{
fc
=
255
;
}
if
(
bc
>
255
)
{
bc
=
255
;
}
int
r
=
fc
+
random
.
nextInt
(
bc
-
fc
);
int
g
=
fc
+
random
.
nextInt
(
bc
-
fc
);
int
b
=
fc
+
random
.
nextInt
(
bc
-
fc
);
return
new
Color
(
r
,
g
,
b
);
}
private
static
int
getRandomIntColor
()
{
int
[]
rgb
=
getRandomRgb
();
int
color
=
0
;
for
(
int
c
:
rgb
)
{
color
=
color
<<
8
;
color
=
color
|
c
;
}
return
color
;
}
private
static
int
[]
getRandomRgb
()
{
int
[]
rgb
=
new
int
[
3
];
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
rgb
[
i
]
=
random
.
nextInt
(
255
);
}
return
rgb
;
}
private
static
void
shear
(
Graphics
g
,
int
w1
,
int
h1
,
Color
color
)
{
shearX
(
g
,
w1
,
h1
,
color
);
shearY
(
g
,
w1
,
h1
,
color
);
}
private
static
void
shearX
(
Graphics
g
,
int
w1
,
int
h1
,
Color
color
)
{
int
period
=
random
.
nextInt
(
2
);
boolean
borderGap
=
true
;
int
frames
=
1
;
int
phase
=
random
.
nextInt
(
2
);
for
(
int
i
=
0
;
i
<
h1
;
i
++)
{
double
d
=
(
double
)
(
period
>>
1
)
*
Math
.
sin
((
double
)
i
/
(
double
)
period
+
(
6.2831853071795862
D
*
(
double
)
phase
)
/
(
double
)
frames
);
g
.
copyArea
(
0
,
i
,
w1
,
1
,
(
int
)
d
,
0
);
if
(
borderGap
)
{
g
.
setColor
(
color
);
g
.
drawLine
((
int
)
d
,
i
,
0
,
i
);
g
.
drawLine
((
int
)
d
+
w1
,
i
,
w1
,
i
);
}
}
}
private
static
void
shearY
(
Graphics
g
,
int
w1
,
int
h1
,
Color
color
)
{
int
period
=
random
.
nextInt
(
40
)
+
10
;
// 50;
int
frames
=
20
;
int
phase
=
7
;
for
(
int
i
=
0
;
i
<
w1
;
i
++)
{
double
d
=
(
double
)
(
period
>>
1
)
*
Math
.
sin
((
double
)
i
/
(
double
)
period
+
(
6.2831853071795862
D
*
(
double
)
phase
)
/
(
double
)
frames
);
g
.
copyArea
(
i
,
0
,
1
,
h1
,
0
,
(
int
)
d
);
g
.
setColor
(
color
);
g
.
drawLine
(
i
,
(
int
)
d
,
i
,
0
);
g
.
drawLine
(
i
,
(
int
)
d
+
h1
,
i
,
h1
);
}
}
}
\ No newline at end of file
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
View file @
d9859de7
...
@@ -3,7 +3,6 @@ package com.ruoyi.common.utils.file;
...
@@ -3,7 +3,6 @@ package com.ruoyi.common.utils.file;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.Objects
;
import
java.util.Objects
;
import
org.apache.commons.io.FilenameUtils
;
import
org.apache.commons.io.FilenameUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.ruoyi.common.config.RuoYiConfig
;
import
com.ruoyi.common.config.RuoYiConfig
;
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java
View file @
d9859de7
...
@@ -4,7 +4,6 @@ import java.io.BufferedReader;
...
@@ -4,7 +4,6 @@ import java.io.BufferedReader;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.io.InputStreamReader
;
import
java.nio.charset.Charset
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletRequest
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java
View file @
d9859de7
...
@@ -50,8 +50,10 @@ public class SqlUtil
...
@@ -50,8 +50,10 @@ public class SqlUtil
return
;
return
;
}
}
String
[]
sqlKeywords
=
StringUtils
.
split
(
SQL_REGEX
,
"\\|"
);
String
[]
sqlKeywords
=
StringUtils
.
split
(
SQL_REGEX
,
"\\|"
);
for
(
String
sqlKeyword
:
sqlKeywords
)
{
for
(
String
sqlKeyword
:
sqlKeywords
)
if
(
StringUtils
.
indexOfIgnoreCase
(
value
,
sqlKeyword
)
>
-
1
)
{
{
if
(
StringUtils
.
indexOfIgnoreCase
(
value
,
sqlKeyword
)
>
-
1
)
{
throw
new
UtilException
(
"参数存在SQL注入风险"
);
throw
new
UtilException
(
"参数存在SQL注入风险"
);
}
}
}
}
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java
View file @
d9859de7
...
@@ -29,6 +29,7 @@ public interface ISysLogininforService
...
@@ -29,6 +29,7 @@ public interface ISysLogininforService
* 批量删除系统登录日志
* 批量删除系统登录日志
*
*
* @param infoIds 需要删除的登录日志ID
* @param infoIds 需要删除的登录日志ID
* @return 结果
*/
*/
public
int
deleteLogininforByIds
(
Long
[]
infoIds
);
public
int
deleteLogininforByIds
(
Long
[]
infoIds
);
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
View file @
d9859de7
...
@@ -63,9 +63,11 @@ public class SysDeptServiceImpl implements ISysDeptService
...
@@ -63,9 +63,11 @@ public class SysDeptServiceImpl implements ISysDeptService
{
{
tempList
.
add
(
dept
.
getDeptId
());
tempList
.
add
(
dept
.
getDeptId
());
}
}
for
(
SysDept
dept
:
depts
)
{
for
(
SysDept
dept
:
depts
)
{
// 如果是顶级节点, 遍历该父节点的所有子节点
// 如果是顶级节点, 遍历该父节点的所有子节点
if
(!
tempList
.
contains
(
dept
.
getParentId
()))
{
if
(!
tempList
.
contains
(
dept
.
getParentId
()))
{
recursionFn
(
depts
,
dept
);
recursionFn
(
depts
,
dept
);
returnList
.
add
(
dept
);
returnList
.
add
(
dept
);
}
}
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java
View file @
d9859de7
...
@@ -46,6 +46,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService
...
@@ -46,6 +46,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService
* 批量删除系统登录日志
* 批量删除系统登录日志
*
*
* @param infoIds 需要删除的登录日志ID
* @param infoIds 需要删除的登录日志ID
* @return 结果
*/
*/
@Override
@Override
public
int
deleteLogininforByIds
(
Long
[]
infoIds
)
public
int
deleteLogininforByIds
(
Long
[]
infoIds
)
...
...
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