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
81078698
"vscode:/vscode.git/clone" did not exist on "e0af08ebddc35cca0ac2fe401ffa415a00b9eb72"
Commit
81078698
authored
Dec 28, 2018
by
郑杰
Browse files
v1.2 版本发布,详细信息查看发行版说明
parent
d787ed30
Changes
31
Hide whitespace changes
Inline
Side-by-side
pom.xml
View file @
81078698
...
...
@@ -151,6 +151,13 @@
<version>
1
</version>
</dependency>
<!--邮件依赖-->
<dependency>
<groupId>
javax.mail
</groupId>
<artifactId>
mail
</artifactId>
<version>
1.4.7
</version>
</dependency>
</dependencies>
<repositories>
...
...
sql/eladmin.sql
View file @
81078698
...
...
@@ -11,29 +11,25 @@
Target Server Version : 50559
File Encoding : 65001
Date: 2
5
/12/2018 1
1:00:27
Date: 2
8
/12/2018 1
7:50:46
*/
SET
NAMES
utf8mb4
;
SET
FOREIGN_KEY_CHECKS
=
0
;
-- ----------------------------
-- Table structure for
lo
g
-- Table structure for
email_confi
g
-- ----------------------------
DROP
TABLE
IF
EXISTS
`
lo
g`
;
CREATE
TABLE
`
lo
g`
(
DROP
TABLE
IF
EXISTS
`
email_confi
g`
;
CREATE
TABLE
`
email_confi
g`
(
`id`
bigint
(
20
)
NOT
NULL
AUTO_INCREMENT
,
`createTime`
datetime
NULL
DEFAULT
NULL
,
`description`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`exceptionDetail`
varchar
(
1500
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`logType`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`method`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`params`
varchar
(
1500
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`requestIp`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`time`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`username`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`fromUser`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`host`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`pass`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`port`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`user`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
3081
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
2
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
-- ----------------------------
-- Table structure for menu
...
...
@@ -46,11 +42,11 @@ CREATE TABLE `menu` (
`name`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`component`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`pid`
bigint
(
20
)
NOT
NULL
,
`so
f
t`
bigint
(
20
)
NOT
NULL
,
`so
r
t`
bigint
(
20
)
NOT
NULL
,
`icon`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`path`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
1
3
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
1
8
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
-- ----------------------------
-- Records of menu
...
...
@@ -64,9 +60,14 @@ INSERT INTO `menu` VALUES (6, '2018-12-18 15:17:48', b'0', '系统监控', NULL,
INSERT
INTO
`menu`
VALUES
(
7
,
'2018-12-18 15:18:26'
,
b
'0'
,
'系统日志'
,
'monitor/log/index'
,
6
,
11
,
'log'
,
'logs'
);
INSERT
INTO
`menu`
VALUES
(
8
,
'2018-12-18 15:19:01'
,
b
'0'
,
'系统缓存'
,
'monitor/redis/index'
,
6
,
12
,
'redis'
,
'redis'
);
INSERT
INTO
`menu`
VALUES
(
9
,
'2018-12-18 15:19:34'
,
b
'1'
,
'SQL监控'
,
NULL
,
6
,
14
,
'sqlMonitor'
,
'http://localhost/druid'
);
INSERT
INTO
`menu`
VALUES
(
10
,
'2018-12-19 13:38:16'
,
b
'0'
,
'组件管理'
,
NULL
,
0
,
2
0
,
'zujian'
,
'components'
);
INSERT
INTO
`menu`
VALUES
(
11
,
'2018-12-19 13:38:49'
,
b
'0'
,
'图标库'
,
'components/IconSelect'
,
10
,
2
1
,
'icon'
,
'icon'
);
INSERT
INTO
`menu`
VALUES
(
10
,
'2018-12-19 13:38:16'
,
b
'0'
,
'组件管理'
,
NULL
,
0
,
5
0
,
'zujian'
,
'components'
);
INSERT
INTO
`menu`
VALUES
(
11
,
'2018-12-19 13:38:49'
,
b
'0'
,
'图标库'
,
'components/IconSelect'
,
10
,
5
1
,
'icon'
,
'icon'
);
INSERT
INTO
`menu`
VALUES
(
12
,
'2018-12-24 20:37:35'
,
b
'0'
,
'实时控制台'
,
'monitor/log/msg'
,
6
,
13
,
'codeConsole'
,
'msg'
);
INSERT
INTO
`menu`
VALUES
(
13
,
'2018-12-27 10:11:26'
,
b
'0'
,
'三方工具'
,
''
,
0
,
20
,
'tools'
,
'tools'
);
INSERT
INTO
`menu`
VALUES
(
14
,
'2018-12-27 10:13:09'
,
b
'0'
,
'邮件工具'
,
'tools/email/index'
,
13
,
21
,
'email'
,
'email'
);
INSERT
INTO
`menu`
VALUES
(
15
,
'2018-12-27 11:58:25'
,
b
'0'
,
'富文本'
,
'components/Editor'
,
10
,
52
,
'fwb'
,
'tinymce'
);
INSERT
INTO
`menu`
VALUES
(
16
,
'2018-12-28 09:36:53'
,
b
'0'
,
'SM.MS图床'
,
'tools/picture/index'
,
13
,
22
,
'image'
,
'pictures'
);
INSERT
INTO
`menu`
VALUES
(
17
,
'2018-12-28 15:09:49'
,
b
'1'
,
'项目地址'
,
''
,
0
,
0
,
'github'
,
'https://github.com/elunez/eladmin'
);
-- ----------------------------
-- Table structure for menus_roles
...
...
@@ -96,6 +97,22 @@ INSERT INTO `menus_roles` VALUES (9, 1);
INSERT
INTO
`menus_roles`
VALUES
(
10
,
1
);
INSERT
INTO
`menus_roles`
VALUES
(
11
,
1
);
INSERT
INTO
`menus_roles`
VALUES
(
12
,
1
);
INSERT
INTO
`menus_roles`
VALUES
(
13
,
1
);
INSERT
INTO
`menus_roles`
VALUES
(
14
,
1
);
INSERT
INTO
`menus_roles`
VALUES
(
15
,
1
);
INSERT
INTO
`menus_roles`
VALUES
(
16
,
1
);
INSERT
INTO
`menus_roles`
VALUES
(
17
,
1
);
INSERT
INTO
`menus_roles`
VALUES
(
1
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
2
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
3
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
4
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
5
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
6
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
9
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
12
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
13
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
16
,
2
);
INSERT
INTO
`menus_roles`
VALUES
(
17
,
2
);
-- ----------------------------
-- Table structure for permission
...
...
@@ -108,7 +125,7 @@ CREATE TABLE `permission` (
`name`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`pid`
int
(
11
)
NOT
NULL
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
2
3
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
3
4
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
-- ----------------------------
-- Records of permission
...
...
@@ -119,11 +136,11 @@ INSERT INTO `permission` VALUES (3, '用户查询', '2018-12-03 12:31:35', 'USER
INSERT
INTO
`permission`
VALUES
(
4
,
'用户创建'
,
'2018-12-03 12:31:35'
,
'USER_CREATE'
,
2
);
INSERT
INTO
`permission`
VALUES
(
5
,
'用户编辑'
,
'2018-12-03 12:31:35'
,
'USER_EDIT'
,
2
);
INSERT
INTO
`permission`
VALUES
(
6
,
'用户删除'
,
'2018-12-03 12:31:35'
,
'USER_DELETE'
,
2
);
INSERT
INTO
`permission`
VALUES
(
7
,
'角色管理'
,
'2018-12-03 12:28:19'
,
'ROLE_ALL'
,
0
);
INSERT
INTO
`permission`
VALUES
(
8
,
'角色查询'
,
'2018-12-03 12:31:35'
,
'ROLE_SELECT'
,
7
);
INSERT
INTO
`permission`
VALUES
(
10
,
'角色创建'
,
'2018-12-09 20:10:16'
,
'ROLE_CREATE'
,
7
);
INSERT
INTO
`permission`
VALUES
(
11
,
'角色编辑'
,
'2018-12-09 20:10:42'
,
'ROLE_EDIT'
,
7
);
INSERT
INTO
`permission`
VALUES
(
12
,
'角色删除'
,
'2018-12-09 20:11:07'
,
'ROLE_DELETE'
,
7
);
INSERT
INTO
`permission`
VALUES
(
7
,
'角色管理'
,
'2018-12-03 12:28:19'
,
'ROLE
S
_ALL'
,
0
);
INSERT
INTO
`permission`
VALUES
(
8
,
'角色查询'
,
'2018-12-03 12:31:35'
,
'ROLE
S
_SELECT'
,
7
);
INSERT
INTO
`permission`
VALUES
(
10
,
'角色创建'
,
'2018-12-09 20:10:16'
,
'ROLE
S
_CREATE'
,
7
);
INSERT
INTO
`permission`
VALUES
(
11
,
'角色编辑'
,
'2018-12-09 20:10:42'
,
'ROLE
S
_EDIT'
,
7
);
INSERT
INTO
`permission`
VALUES
(
12
,
'角色删除'
,
'2018-12-09 20:11:07'
,
'ROLE
S
_DELETE'
,
7
);
INSERT
INTO
`permission`
VALUES
(
13
,
'权限管理'
,
'2018-12-09 20:11:37'
,
'PERMISSION_ALL'
,
0
);
INSERT
INTO
`permission`
VALUES
(
14
,
'权限查询'
,
'2018-12-09 20:11:55'
,
'PERMISSION_SELECT'
,
13
);
INSERT
INTO
`permission`
VALUES
(
15
,
'权限创建'
,
'2018-12-09 20:14:10'
,
'PERMISSION_CREATE'
,
13
);
...
...
@@ -134,6 +151,37 @@ INSERT INTO `permission` VALUES (19, '新增缓存', '2018-12-17 13:53:44', 'RED
INSERT
INTO
`permission`
VALUES
(
20
,
'缓存查询'
,
'2018-12-17 13:54:07'
,
'REDIS_SELECT'
,
18
);
INSERT
INTO
`permission`
VALUES
(
21
,
'缓存编辑'
,
'2018-12-17 13:54:26'
,
'REDIS_EDIT'
,
18
);
INSERT
INTO
`permission`
VALUES
(
22
,
'缓存删除'
,
'2018-12-17 13:55:04'
,
'REDIS_DELETE'
,
18
);
INSERT
INTO
`permission`
VALUES
(
23
,
'图床管理'
,
'2018-12-27 20:31:49'
,
'PICTURE_ALL'
,
0
);
INSERT
INTO
`permission`
VALUES
(
24
,
'查询图片'
,
'2018-12-27 20:32:04'
,
'PICTURE_SELECT'
,
23
);
INSERT
INTO
`permission`
VALUES
(
25
,
'上传图片'
,
'2018-12-27 20:32:24'
,
'PICTURE_UPLOAD'
,
23
);
INSERT
INTO
`permission`
VALUES
(
26
,
'删除图片'
,
'2018-12-27 20:32:45'
,
'PICTURE_DELETE'
,
23
);
INSERT
INTO
`permission`
VALUES
(
29
,
'菜单管理'
,
'2018-12-28 17:34:31'
,
'MENU_ALL'
,
0
);
INSERT
INTO
`permission`
VALUES
(
30
,
'菜单查询'
,
'2018-12-28 17:34:41'
,
'MENU_SELECT'
,
29
);
INSERT
INTO
`permission`
VALUES
(
31
,
'菜单创建'
,
'2018-12-28 17:34:52'
,
'MENU_CREATE'
,
29
);
INSERT
INTO
`permission`
VALUES
(
32
,
'菜单编辑'
,
'2018-12-28 17:35:20'
,
'MENU_EDIT'
,
29
);
INSERT
INTO
`permission`
VALUES
(
33
,
'菜单删除'
,
'2018-12-28 17:35:29'
,
'MENU_DELETE'
,
29
);
-- ----------------------------
-- Table structure for picture
-- ----------------------------
DROP
TABLE
IF
EXISTS
`picture`
;
CREATE
TABLE
`picture`
(
`id`
bigint
(
20
)
NOT
NULL
AUTO_INCREMENT
,
`createTime`
datetime
NULL
DEFAULT
NULL
,
`delete_url`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`filename`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`height`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`size`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`url`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`username`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`width`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
38
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
-- ----------------------------
-- Records of picture
-- ----------------------------
INSERT
INTO
`picture`
VALUES
(
34
,
'2018-12-28 16:02:42'
,
'https://sm.ms/delete/JDAtayhFMH56wCXE'
,
'1'
,
'220'
,
'3.73KB '
,
'https://i.loli.net/2018/12/28/5c25d8a253445.jpg'
,
'admin'
,
'229'
);
-- ----------------------------
-- Table structure for role
...
...
@@ -145,7 +193,7 @@ CREATE TABLE `role` (
`name`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
,
`remark`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
3
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
4
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
-- ----------------------------
-- Records of role
...
...
@@ -170,9 +218,12 @@ CREATE TABLE `roles_permissions` (
-- Records of roles_permissions
-- ----------------------------
INSERT
INTO
`roles_permissions`
VALUES
(
1
,
1
);
INSERT
INTO
`roles_permissions`
VALUES
(
2
,
1
);
INSERT
INTO
`roles_permissions`
VALUES
(
2
,
3
);
INSERT
INTO
`roles_permissions`
VALUES
(
2
,
4
);
INSERT
INTO
`roles_permissions`
VALUES
(
2
,
8
);
INSERT
INTO
`roles_permissions`
VALUES
(
2
,
14
);
INSERT
INTO
`roles_permissions`
VALUES
(
2
,
19
);
INSERT
INTO
`roles_permissions`
VALUES
(
2
,
23
);
INSERT
INTO
`roles_permissions`
VALUES
(
2
,
30
);
-- ----------------------------
-- Table structure for user
...
...
@@ -190,12 +241,13 @@ CREATE TABLE `user` (
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
UNIQUE
INDEX
`UK_kpubos9gc2cvtkb0thktkbkes`
(
`email`
)
USING
BTREE
,
UNIQUE
INDEX
`username`
(
`username`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
15
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
8
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT
INTO
`user`
VALUES
(
1
,
'https://i.loli.net/2018/12/06/5c08894d8de21.jpg'
,
'2018-08-23 09:11:56'
,
'zhengjie@tom.com'
,
1
,
'14e1b600b1fd579f47433b88e8d85291'
,
'admin'
,
'2018-11-23 10:12:36'
);
INSERT
INTO
`user`
VALUES
(
3
,
'https://i.loli.net/2018/12/06/5c08894d8de21.jpg'
,
'2018-12-27 20:05:26'
,
'test@qq.com'
,
1
,
'14e1b600b1fd579f47433b88e8d85291'
,
'test'
,
NULL
);
-- ----------------------------
-- Table structure for users_roles
...
...
@@ -214,41 +266,21 @@ CREATE TABLE `users_roles` (
-- Records of users_roles
-- ----------------------------
INSERT
INTO
`users_roles`
VALUES
(
1
,
1
);
INSERT
INTO
`users_roles`
VALUES
(
3
,
2
);
-- ----------------------------
-- Table structure for v
isits
-- Table structure for v
erification_code
-- ----------------------------
DROP
TABLE
IF
EXISTS
`v
isits
`
;
CREATE
TABLE
`v
isits
`
(
DROP
TABLE
IF
EXISTS
`v
erification_code
`
;
CREATE
TABLE
`v
erification_code
`
(
`id`
bigint
(
20
)
NOT
NULL
AUTO_INCREMENT
,
`date`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`ip_counts`
bigint
(
20
)
NULL
DEFAULT
NULL
,
`pv_counts`
bigint
(
20
)
NULL
DEFAULT
NULL
,
`weekDay`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`code`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`createTime`
datetime
NULL
DEFAULT
NULL
,
`status`
bit
(
1
)
NULL
DEFAULT
NULL
,
`type`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`value`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
38
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
1
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Compact
;
-- ----------------------------
-- Records of visits
-- ----------------------------
INSERT
INTO
`visits`
VALUES
(
1
,
'2018-12-06'
,
30
,
45
,
'Thu'
,
'2018-12-06 18:06:14'
);
INSERT
INTO
`visits`
VALUES
(
2
,
'2018-12-07'
,
10
,
30
,
'Fri'
,
'2018-12-07 18:06:19'
);
INSERT
INTO
`visits`
VALUES
(
3
,
'2018-12-08'
,
10
,
30
,
'Sat'
,
'2018-12-08 18:06:23'
);
INSERT
INTO
`visits`
VALUES
(
4
,
'2018-12-09'
,
56
,
50
,
'Sun'
,
'2018-12-09 18:06:27'
);
INSERT
INTO
`visits`
VALUES
(
5
,
'2018-12-10'
,
20
,
50
,
'Mon'
,
'2018-12-10 18:06:32'
);
INSERT
INTO
`visits`
VALUES
(
6
,
'2018-12-11'
,
79
,
50
,
'Tue'
,
'2018-12-11 18:06:35'
);
INSERT
INTO
`visits`
VALUES
(
7
,
'2018-12-12'
,
54
,
23
,
'Wed'
,
'2018-12-12 18:06:38'
);
INSERT
INTO
`visits`
VALUES
(
11
,
'2018-12-13'
,
2
,
2
,
'Thu'
,
'2018-12-13 20:49:27'
);
INSERT
INTO
`visits`
VALUES
(
13
,
'2018-12-14'
,
1
,
27
,
'Fri'
,
'2018-12-14 09:21:00'
);
INSERT
INTO
`visits`
VALUES
(
15
,
'2018-12-17'
,
1
,
19
,
'Mon'
,
'2018-12-17 12:49:28'
);
INSERT
INTO
`visits`
VALUES
(
16
,
'2018-12-18'
,
1
,
72
,
'Tue'
,
'2018-12-18 15:13:33'
);
INSERT
INTO
`visits`
VALUES
(
26
,
'2018-12-19'
,
1
,
51
,
'Wed'
,
'2018-12-19 12:54:12'
);
INSERT
INTO
`visits`
VALUES
(
27
,
'2018-12-20'
,
1
,
226
,
'Thu'
,
'2018-12-20 09:21:13'
);
INSERT
INTO
`visits`
VALUES
(
28
,
'2018-12-21'
,
1
,
80
,
'Fri'
,
'2018-12-21 09:38:04'
);
INSERT
INTO
`visits`
VALUES
(
29
,
'2018-12-22'
,
1
,
42
,
'Sat'
,
'2018-12-22 10:06:59'
);
INSERT
INTO
`visits`
VALUES
(
30
,
'2018-12-23'
,
1
,
2
,
'Sun'
,
'2018-12-23 11:16:52'
);
INSERT
INTO
`visits`
VALUES
(
35
,
'2018-12-24'
,
1
,
8
,
'Mon'
,
'2018-12-24 19:12:01'
);
INSERT
INTO
`visits`
VALUES
(
36
,
'2018-12-25'
,
1
,
6
,
'Tue'
,
'2018-12-25 00:12:35'
);
SET
FOREIGN_KEY_CHECKS
=
1
;
src/main/java/me/zhengjie/common/redis/RedisConfig.java
View file @
81078698
...
...
@@ -94,6 +94,7 @@ public class RedisConfig extends CachingConfigurerSupport {
// 建议使用这种方式,小范围指定白名单
ParserConfig
.
getGlobalInstance
().
addAccept
(
"me.zhengjie.system.service.dto"
);
ParserConfig
.
getGlobalInstance
().
addAccept
(
"me.zhengjie.system.domain"
);
ParserConfig
.
getGlobalInstance
().
addAccept
(
"me.zhengjie.tools.domain"
);
// key的序列化采用StringRedisSerializer
template
.
setKeySerializer
(
new
StringRedisSerializer
());
template
.
setHashKeySerializer
(
new
StringRedisSerializer
());
...
...
src/main/java/me/zhengjie/common/utils/ElAdminConstant.java
0 → 100644
View file @
81078698
package
me.zhengjie.common.utils
;
/**
* 常用静态常量
* @author jie
* @date 2018-12-26
*/
public
class
ElAdminConstant
{
/**
* 用于七牛云zone与机房对应关系
*/
public
static
class
QiNiu
{
public
static
final
String
HUAD
=
"华东"
;
public
static
final
String
HUAB
=
"华北"
;
public
static
final
String
HUAN
=
"华南"
;
public
static
final
String
BEIM
=
"北美"
;
public
static
final
String
DNY
=
"东南亚"
;
}
/**
* 常用接口
*/
public
static
class
Url
{
public
static
final
String
SM_MS_URL
=
"https://sm.ms/api/upload"
;
}
}
src/main/java/me/zhengjie/common/utils/FileUtil.java
0 → 100644
View file @
81078698
package
me.zhengjie.common.utils
;
import
cn.hutool.core.util.IdUtil
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.File
;
import
java.io.IOException
;
import
java.text.DecimalFormat
;
/**
* File工具类
* @author jie
* @date 2018-12-27
*/
public
class
FileUtil
{
/**
* 定义GB的计算常量
*/
private
static
final
int
GB
=
1024
*
1024
*
1024
;
/**
* 定义MB的计算常量
*/
private
static
final
int
MB
=
1024
*
1024
;
/**
* 定义KB的计算常量
*/
private
static
final
int
KB
=
1024
;
/**
* 格式化小数
*/
private
static
final
DecimalFormat
DF
=
new
DecimalFormat
(
"0.00"
);
/**
* MultipartFile转File
* @param multipartFile
* @return
*/
public
static
File
toFile
(
MultipartFile
multipartFile
){
// 获取文件名
String
fileName
=
multipartFile
.
getOriginalFilename
();
// 获取文件后缀
String
prefix
=
"."
+
getExtensionName
(
fileName
);
File
file
=
null
;
try
{
// 用uuid作为文件名,防止生成的临时文件重复
file
=
File
.
createTempFile
(
IdUtil
.
simpleUUID
(),
prefix
);
// MultipartFile to File
multipartFile
.
transferTo
(
file
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
file
;
}
/**
* 删除
* @param files
*/
public
static
void
deleteFile
(
File
...
files
)
{
for
(
File
file
:
files
)
{
if
(
file
.
exists
())
{
file
.
delete
();
}
}
}
/**
* 获取文件扩展名
* @param filename
* @return
*/
public
static
String
getExtensionName
(
String
filename
)
{
if
((
filename
!=
null
)
&&
(
filename
.
length
()
>
0
))
{
int
dot
=
filename
.
lastIndexOf
(
'.'
);
if
((
dot
>-
1
)
&&
(
dot
<
(
filename
.
length
()
-
1
)))
{
return
filename
.
substring
(
dot
+
1
);
}
}
return
filename
;
}
/**
* Java文件操作 获取不带扩展名的文件名
* @param filename
* @return
*/
public
static
String
getFileNameNoEx
(
String
filename
)
{
if
((
filename
!=
null
)
&&
(
filename
.
length
()
>
0
))
{
int
dot
=
filename
.
lastIndexOf
(
'.'
);
if
((
dot
>-
1
)
&&
(
dot
<
(
filename
.
length
())))
{
return
filename
.
substring
(
0
,
dot
);
}
}
return
filename
;
}
/**
* 文件大小转换
* @param size
* @return
*/
public
static
String
getSize
(
int
size
){
String
resultSize
=
""
;
if
(
size
/
GB
>=
1
)
{
//如果当前Byte的值大于等于1GB
resultSize
=
DF
.
format
(
size
/
(
float
)
GB
)
+
"GB "
;
}
else
if
(
size
/
MB
>=
1
)
{
//如果当前Byte的值大于等于1MB
resultSize
=
DF
.
format
(
size
/
(
float
)
MB
)
+
"MB "
;
}
else
if
(
size
/
KB
>=
1
)
{
//如果当前Byte的值大于等于1KB
resultSize
=
DF
.
format
(
size
/
(
float
)
KB
)
+
"KB "
;
}
else
{
resultSize
=
size
+
"B "
;
}
return
resultSize
;
}
}
src/main/java/me/zhengjie/core/utils/EncryptUtils.java
View file @
81078698
package
me.zhengjie.core.utils
;
import
org.springframework.util.DigestUtils
;
import
javax.crypto.Cipher
;
import
javax.crypto.SecretKey
;
import
javax.crypto.SecretKeyFactory
;
import
javax.crypto.spec.DESKeySpec
;
import
javax.crypto.spec.IvParameterSpec
;
/**
* 加密
...
...
@@ -9,6 +14,77 @@ import org.springframework.util.DigestUtils;
*/
public
class
EncryptUtils
{
private
static
String
strKey
=
"Passw0rd"
,
strParam
=
"Passw0rd"
;
/**
* 对称加密
* @param source
* @return
* @throws Exception
*/
public
static
String
desEncrypt
(
String
source
)
throws
Exception
{
if
(
source
==
null
||
source
.
length
()
==
0
){
return
null
;
}
Cipher
cipher
=
Cipher
.
getInstance
(
"DES/CBC/PKCS5Padding"
);
DESKeySpec
desKeySpec
=
new
DESKeySpec
(
strKey
.
getBytes
(
"UTF-8"
));
SecretKeyFactory
keyFactory
=
SecretKeyFactory
.
getInstance
(
"DES"
);
SecretKey
secretKey
=
keyFactory
.
generateSecret
(
desKeySpec
);
IvParameterSpec
iv
=
new
IvParameterSpec
(
strParam
.
getBytes
(
"UTF-8"
));
cipher
.
init
(
Cipher
.
ENCRYPT_MODE
,
secretKey
,
iv
);
return
byte2hex
(
cipher
.
doFinal
(
source
.
getBytes
(
"UTF-8"
))).
toUpperCase
();
}
public
static
String
byte2hex
(
byte
[]
inStr
)
{
String
stmp
;
StringBuffer
out
=
new
StringBuffer
(
inStr
.
length
*
2
);
for
(
int
n
=
0
;
n
<
inStr
.
length
;
n
++)
{
stmp
=
Integer
.
toHexString
(
inStr
[
n
]
&
0xFF
);
if
(
stmp
.
length
()
==
1
)
{
// 如果是0至F的单位字符串,则添加0
out
.
append
(
"0"
+
stmp
);
}
else
{
out
.
append
(
stmp
);
}
}
return
out
.
toString
();
}
public
static
byte
[]
hex2byte
(
byte
[]
b
)
{
if
((
b
.
length
%
2
)
!=
0
){
throw
new
IllegalArgumentException
(
"长度不是偶数"
);
}
byte
[]
b2
=
new
byte
[
b
.
length
/
2
];
for
(
int
n
=
0
;
n
<
b
.
length
;
n
+=
2
)
{
String
item
=
new
String
(
b
,
n
,
2
);
b2
[
n
/
2
]
=
(
byte
)
Integer
.
parseInt
(
item
,
16
);
}
return
b2
;
}
/**
* 对称解密
* @param source
* @return
* @throws Exception
*/
public
static
String
desDecrypt
(
String
source
)
throws
Exception
{
if
(
source
==
null
||
source
.
length
()
==
0
){
return
null
;
}
byte
[]
src
=
hex2byte
(
source
.
getBytes
());
Cipher
cipher
=
Cipher
.
getInstance
(
"DES/CBC/PKCS5Padding"
);
DESKeySpec
desKeySpec
=
new
DESKeySpec
(
strKey
.
getBytes
(
"UTF-8"
));
SecretKeyFactory
keyFactory
=
SecretKeyFactory
.
getInstance
(
"DES"
);
SecretKey
secretKey
=
keyFactory
.
generateSecret
(
desKeySpec
);
IvParameterSpec
iv
=
new
IvParameterSpec
(
strParam
.
getBytes
(
"UTF-8"
));
cipher
.
init
(
Cipher
.
DECRYPT_MODE
,
secretKey
,
iv
);
byte
[]
retByte
=
cipher
.
doFinal
(
src
);
return
new
String
(
retByte
);
}
/**
* 密码加密
* @param password
...
...
src/main/java/me/zhengjie/system/domain/Menu.java
View file @
81078698
...
...
@@ -26,7 +26,7 @@ public class Menu {
private
String
name
;
@Column
(
unique
=
true
)
private
Long
so
f
t
;
private
Long
so
r
t
;
@Column
(
name
=
"path"
)
private
String
path
;
...
...
src/main/java/me/zhengjie/system/domain/VerificationCode.java
0 → 100644
View file @
81078698
package
me.zhengjie.system.domain
;
import
lombok.Data
;
import
org.hibernate.annotations.CreationTimestamp
;
import
javax.persistence.*
;
import
java.sql.Timestamp
;
/**
* @author jie
* @date 2018-12-26
*/
@Data
@Entity
@Table
(
name
=
"verification_code"
)
public
class
VerificationCode
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
private
String
code
;
/**
* true 为有效,false 为无效
*/
private
Boolean
status
=
true
;
/**
* 类型 :phone 和 email
*/
private
String
type
;
/**
* 具体的phone与email
*/
private
String
value
;
/**
* 创建日期
*/
@CreationTimestamp
private
Timestamp
createTime
;
}
src/main/java/me/zhengjie/system/repository/MenuRepository.java
View file @
81078698
...
...
@@ -25,7 +25,7 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
* @param roleSet
* @return
*/
Set
<
Menu
>
findByRolesOrderBySo
f
t
(
Set
<
Role
>
roleSet
);
Set
<
Menu
>
findByRolesOrderBySo
r
t
(
Set
<
Role
>
roleSet
);
/**
* findByPid
...
...
src/main/java/me/zhengjie/system/repository/VerificationCodeRepository.java
0 → 100644
View file @
81078698
package
me.zhengjie.system.repository
;
import
me.zhengjie.system.domain.VerificationCode
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* @author jie
* @date 2018-12-26
*/
public
interface
VerificationCodeRepository
extends
JpaRepository
<
VerificationCode
,
Long
>
{
}
src/main/java/me/zhengjie/system/rest/MenuController.java
View file @
81078698
...
...
@@ -77,7 +77,7 @@ public class MenuController {
@Log
(
description
=
"新增菜单"
)
@PostMapping
(
value
=
"/menus"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','
PERMISSION_ALL','PERMISSION
_CREATE')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','
MENU_ALL','MENU
_CREATE')"
)
public
ResponseEntity
create
(
@Validated
@RequestBody
Menu
resources
){
if
(
resources
.
getId
()
!=
null
)
{
throw
new
BadRequestException
(
"A new "
+
ENTITY_NAME
+
" cannot already have an ID"
);
...
...
@@ -87,7 +87,7 @@ public class MenuController {
@Log
(
description
=
"修改菜单"
)
@PutMapping
(
value
=
"/menus"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','
PERMISSION_ALL','PERMISSION
_EDIT')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','
MENU_ALL','MENU
_EDIT')"
)
public
ResponseEntity
update
(
@Validated
@RequestBody
Menu
resources
){
if
(
resources
.
getId
()
==
null
)
{
throw
new
BadRequestException
(
ENTITY_NAME
+
" ID Can not be empty"
);
...
...
@@ -98,7 +98,7 @@ public class MenuController {
@Log
(
description
=
"删除菜单"
)
@DeleteMapping
(
value
=
"/menus/{id}"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','
PERMISSION_ALL','PERMISSION
_DELETE')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','
MENU_ALL','MENU
_DELETE')"
)
public
ResponseEntity
delete
(
@PathVariable
Long
id
){
menuService
.
delete
(
id
);
return
new
ResponseEntity
(
HttpStatus
.
OK
);
...
...
src/main/java/me/zhengjie/system/rest/PermissionController.java
View file @
81078698
...
...
@@ -42,7 +42,7 @@ public class PermissionController {
* @return
*/
@GetMapping
(
value
=
"/permissions/tree"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','PERMISSION_ALL','
ROLE_ALL','ROLE_ADD
','ROLE
_EDIT
')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','PERMISSION_ALL','
PERMISSION_SELECT','ROLES_SELECT
','ROLE
S_ALL
')"
)
public
ResponseEntity
getRoleTree
(){
return
new
ResponseEntity
(
permissionService
.
getPermissionTree
(
permissionService
.
findByPid
(
0L
)),
HttpStatus
.
OK
);
}
...
...
src/main/java/me/zhengjie/system/rest/RoleController.java
View file @
81078698
...
...
@@ -31,7 +31,7 @@ public class RoleController {
private
static
final
String
ENTITY_NAME
=
"role"
;
@GetMapping
(
value
=
"/roles/{id}"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE_ALL','ROLE_SELECT')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE
S
_ALL','ROLE
S
_SELECT')"
)
public
ResponseEntity
getRoles
(
@PathVariable
Long
id
){
return
new
ResponseEntity
(
roleService
.
findById
(
id
),
HttpStatus
.
OK
);
}
...
...
@@ -41,21 +41,21 @@ public class RoleController {
* @return
*/
@GetMapping
(
value
=
"/roles/tree"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','
ROLE
_ALL','
USER
_ALL','USER_A
DD
','USER_
EDI
T')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','
MENU
_ALL','
MENU_SELECT','ROLES
_ALL','USER_A
LL
','USER_
SELEC
T')"
)
public
ResponseEntity
getRoleTree
(){
return
new
ResponseEntity
(
roleService
.
getRoleTree
(),
HttpStatus
.
OK
);
}
@Log
(
description
=
"查询角色"
)
@GetMapping
(
value
=
"/roles"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE_ALL','ROLE_SELECT')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE
S
_ALL','ROLE
S
_SELECT')"
)
public
ResponseEntity
getRoles
(
RoleDTO
resources
,
Pageable
pageable
){
return
new
ResponseEntity
(
roleQueryService
.
queryAll
(
resources
,
pageable
),
HttpStatus
.
OK
);
}
@Log
(
description
=
"新增角色"
)
@PostMapping
(
value
=
"/roles"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE_ALL','ROLE_CREATE')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE
S
_ALL','ROLE
S
_CREATE')"
)
public
ResponseEntity
create
(
@Validated
@RequestBody
Role
resources
){
if
(
resources
.
getId
()
!=
null
)
{
throw
new
BadRequestException
(
"A new "
+
ENTITY_NAME
+
" cannot already have an ID"
);
...
...
@@ -65,7 +65,7 @@ public class RoleController {
@Log
(
description
=
"修改角色"
)
@PutMapping
(
value
=
"/roles"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE_ALL','ROLE_EDIT')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE
S
_ALL','ROLE
S
_EDIT')"
)
public
ResponseEntity
update
(
@Validated
@RequestBody
Role
resources
){
if
(
resources
.
getId
()
==
null
)
{
throw
new
BadRequestException
(
ENTITY_NAME
+
" ID Can not be empty"
);
...
...
@@ -76,7 +76,7 @@ public class RoleController {
@Log
(
description
=
"删除角色"
)
@DeleteMapping
(
value
=
"/roles/{id}"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE_ALL','ROLE_DELETE')"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','ROLE
S
_ALL','ROLE
S
_DELETE')"
)
public
ResponseEntity
delete
(
@PathVariable
Long
id
){
roleService
.
delete
(
id
);
return
new
ResponseEntity
(
HttpStatus
.
OK
);
...
...
src/main/java/me/zhengjie/system/rest/VerificationCodeController.java
0 → 100644
View file @
81078698
package
me.zhengjie.system.rest
;
import
me.zhengjie.system.domain.VerificationCode
;
import
me.zhengjie.system.service.VerificationCodeService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author jie
* @date 2018-12-26
*/
@RestController
@RequestMapping
(
"api"
)
public
class
VerificationCodeController
{
@Autowired
private
VerificationCodeService
verificationCodeService
;
@PostMapping
(
value
=
"/code/sendEmail"
)
public
ResponseEntity
sendEmail
(
@RequestBody
VerificationCode
code
){
code
.
setType
(
"email"
);
verificationCodeService
.
sendEmail
(
code
);
return
new
ResponseEntity
(
HttpStatus
.
OK
);
}
@GetMapping
(
value
=
"/code/validated"
)
public
ResponseEntity
validated
(
VerificationCode
code
){
verificationCodeService
.
validated
(
code
);
return
new
ResponseEntity
(
HttpStatus
.
OK
);
}
}
src/main/java/me/zhengjie/system/service/VerificationCodeService.java
0 → 100644
View file @
81078698
package
me.zhengjie.system.service
;
import
me.zhengjie.system.domain.VerificationCode
;
/**
* @author jie
* @date 2018-12-26
*/
public
interface
VerificationCodeService
{
/**
* 发送邮件验证码
* @param code
*/
void
sendEmail
(
VerificationCode
code
);
/**
* 验证
* @param code
*/
void
validated
(
VerificationCode
code
);
}
src/main/java/me/zhengjie/system/service/dto/MenuDTO.java
View file @
81078698
...
...
@@ -16,7 +16,7 @@ public class MenuDTO {
private
String
name
;
private
Long
so
f
t
;
private
Long
so
r
t
;
private
String
path
;
...
...
src/main/java/me/zhengjie/system/service/impl/MenuServiceImpl.java
View file @
81078698
...
...
@@ -37,7 +37,12 @@ public class MenuServiceImpl implements MenuService {
@Override
public
List
<
MenuDTO
>
findByRoles
(
Set
<
Role
>
roles
)
{
Set
<
Menu
>
menus
=
menuRepository
.
findByRolesOrderBySoft
(
roles
);
Set
<
Menu
>
menus
=
new
LinkedHashSet
<>();
for
(
Role
role
:
roles
)
{
Set
<
Role
>
roleSet
=
new
HashSet
<>();
roleSet
.
add
(
role
);
menus
.
addAll
(
menuRepository
.
findByRolesOrderBySort
(
roleSet
));
}
return
menus
.
stream
().
map
(
menuMapper:
:
toDto
).
collect
(
Collectors
.
toList
());
}
...
...
@@ -67,7 +72,7 @@ public class MenuServiceImpl implements MenuService {
menu
.
setIcon
(
resources
.
getIcon
());
menu
.
setIFrame
(
resources
.
getIFrame
());
menu
.
setPid
(
resources
.
getPid
());
menu
.
setSo
f
t
(
resources
.
getSo
f
t
());
menu
.
setSo
r
t
(
resources
.
getSo
r
t
());
menu
.
setRoles
(
resources
.
getRoles
());
menuRepository
.
save
(
menu
);
}
...
...
@@ -137,6 +142,8 @@ public class MenuServiceImpl implements MenuService {
MenuVo
menuVo
=
new
MenuVo
();
menuVo
.
setName
(
menuDTO
.
getName
());
menuVo
.
setPath
(
menuDTO
.
getPath
());
// 如果不是外链
if
(!
menuDTO
.
getIFrame
()){
if
(
menuDTO
.
getPid
().
equals
(
0L
)){
//一级目录需要加斜杠,不然访问不了
...
...
@@ -149,6 +156,24 @@ public class MenuServiceImpl implements MenuService {
if
(
menuDTOList
!=
null
&&
menuDTOList
.
size
()!=
0
){
menuVo
.
setAlwaysShow
(
true
);
menuVo
.
setChildren
(
buildMenus
(
menuDTOList
));
// 处理是一级菜单并且没有子菜单的情况
}
else
if
(
menuDTO
.
getPid
().
equals
(
0L
)){
MenuVo
menuVo1
=
new
MenuVo
();
menuVo1
.
setMeta
(
menuVo
.
getMeta
());
// 非外链
if
(!
menuDTO
.
getIFrame
()){
menuVo1
.
setPath
(
"index"
);
menuVo1
.
setName
(
menuVo
.
getName
());
menuVo1
.
setComponent
(
menuVo
.
getComponent
());
}
else
{
menuVo1
.
setPath
(
menuDTO
.
getPath
());
}
menuVo
.
setName
(
null
);
menuVo
.
setMeta
(
null
);
menuVo
.
setComponent
(
"Layout"
);
List
<
MenuVo
>
list1
=
new
ArrayList
<
MenuVo
>();
list1
.
add
(
menuVo1
);
menuVo
.
setChildren
(
list1
);
}
list
.
add
(
menuVo
);
}
...
...
src/main/java/me/zhengjie/system/service/impl/VerificationCodeServiceImpl.java
0 → 100644
View file @
81078698
package
me.zhengjie.system.service.impl
;
import
me.zhengjie.system.domain.VerificationCode
;
import
me.zhengjie.system.service.VerificationCodeService
;
import
org.springframework.stereotype.Service
;
/**
* @author jie
* @date 2018-12-26
*/
@Service
public
class
VerificationCodeServiceImpl
implements
VerificationCodeService
{
@Override
public
void
sendEmail
(
VerificationCode
code
)
{
}
@Override
public
void
validated
(
VerificationCode
code
)
{
}
}
src/main/java/me/zhengjie/tools/config/MultipartConfig.java
0 → 100644
View file @
81078698
package
me.zhengjie.tools.config
;
import
org.springframework.boot.web.servlet.MultipartConfigFactory
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
javax.servlet.MultipartConfigElement
;
import
java.io.File
;
/**
* @date 2018-12-28
* @author https://blog.csdn.net/llibin1024530411/article/details/79474953
*/
@Configuration
public
class
MultipartConfig
{
/**
* 文件上传临时路径
*/
@Bean
MultipartConfigElement
multipartConfigElement
()
{
MultipartConfigFactory
factory
=
new
MultipartConfigFactory
();
String
location
=
System
.
getProperty
(
"user.dir"
)
+
"/data/tmp"
;
File
tmpFile
=
new
File
(
location
);
if
(!
tmpFile
.
exists
())
{
tmpFile
.
mkdirs
();
}
factory
.
setLocation
(
location
);
return
factory
.
createMultipartConfig
();
}
}
\ No newline at end of file
src/main/java/me/zhengjie/tools/domain/EmailConfig.java
0 → 100644
View file @
81078698
package
me.zhengjie.tools.domain
;
import
lombok.Data
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
/**
* 邮件配置类,数据存覆盖式存入数据存
* @author jie
* @date 2018-12-26
*/
@Entity
@Data
@Table
(
name
=
"email_config"
)
public
class
EmailConfig
implements
Serializable
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
/**
*邮件服务器SMTP地址
*/
@NotBlank
private
String
host
;
/**
* 邮件服务器SMTP端口
*/
@NotBlank
private
String
port
;
/**
* 发件者用户名,默认为发件人邮箱前缀
*/
@NotBlank
private
String
user
;
@NotBlank
private
String
pass
;
/**
* 发件人
*/
@NotBlank
private
String
fromUser
;
}
Prev
1
2
Next
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