[代码完善] 由于免费图床过于不稳定,影响体验,因此删除图床管理模块。 富文本,markdown 替换为使用本地存储上传图片。如想继续使用,可以直接在其官网管理数据 https://sm.ms/

pull/482/head
ZhengJie 2020-09-05 10:54:32 +08:00
parent 0e6105c641
commit 67f0e6b387
24 changed files with 113 additions and 871 deletions

View File

@ -41,8 +41,6 @@ public class ElAdminConstant {
*
*/
public static class Url {
// 免费图床
public static final String SM_MS_URL = "https://sm.ms/api";
// IP归属地查询
public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp?ip=%s&json=true";
}

View File

@ -43,7 +43,9 @@ import java.util.Map;
* @date 2018-12-27
*/
public class FileUtil extends cn.hutool.core.io.FileUtil {
private static final Logger log = LoggerFactory.getLogger(FileUtil.class);
/**
*
* <br>
@ -75,6 +77,13 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
*/
private static final DecimalFormat DF = new DecimalFormat("0.00");
public static final String IMAGE = "图片";
public static final String TXT = "文档";
public static final String MUSIC = "音乐";
public static final String VIDEO = "视频";
public static final String OTHER = "其他";
/**
* MultipartFileFile
*/
@ -217,15 +226,15 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
String video = "avi mpg mpe mpeg asf wmv mov qt rm mp4 flv m4v webm ogv ogg";
String image = "bmp dib pcp dif wmf gif jpg tif eps psd cdr iff tga pcd mpt png jpeg";
if (image.contains(type)) {
return "图片";
return IMAGE;
} else if (documents.contains(type)) {
return "文档";
return TXT;
} else if (music.contains(type)) {
return "音乐";
return MUSIC;
} else if (video.contains(type)) {
return "视频";
return VIDEO;
} else {
return "其他";
return OTHER;
}
}

View File

@ -53,7 +53,3 @@ code:
#密码加密传输,前端公钥加密,后端私钥解密
rsa:
private_key: MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A==
# sm.ms 图床的 token
smms:
token: 1oOP3ykFDI0K6ifmtvU7c8Y1eTWZSlyl

View File

@ -1,77 +0,0 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.CreationTimestamp;
import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* sm.ms
*
* @author Zheng Jie
* @date 2018-12-27
*/
@Data
@Entity
@Table(name = "tool_picture")
public class Picture implements Serializable {
@Id
@Column(name = "picture_id")
@ApiModelProperty(value = "ID", hidden = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ApiModelProperty(value = "文件名")
private String filename;
@ApiModelProperty(value = "图片url")
private String url;
@ApiModelProperty(value = "图片大小")
private String size;
@ApiModelProperty(value = "图片高")
private String height;
@ApiModelProperty(value = "图片宽")
private String width;
@Column(name = "delete_url")
@ApiModelProperty(value = "用于删除的url")
private String delete;
@ApiModelProperty(value = "创建者")
private String username;
@CreationTimestamp
@ApiModelProperty(value = "创建时间")
private Timestamp createTime;
/** 用于检测文件是否重复 */
private String md5Code;
@Override
public String toString() {
return "Picture{" +
"filename='" + filename + '\'' +
'}';
}
}

View File

@ -1,41 +0,0 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.repository;
import me.zhengjie.domain.Picture;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author Zheng Jie
* @date 2018-12-27
*/
public interface PictureRepository extends JpaRepository<Picture,Long>, JpaSpecificationExecutor<Picture> {
/**
* Mds
* @param code
* @return /
*/
Picture findByMd5Code(String code);
/**
*
* @param url /
* @return /
*/
boolean existsByUrl(String url);
}

View File

@ -18,8 +18,11 @@ package me.zhengjie.rest;
import lombok.RequiredArgsConstructor;
import me.zhengjie.annotation.Log;
import me.zhengjie.domain.LocalStorage;
import me.zhengjie.exception.BadRequestException;
import me.zhengjie.service.LocalStorageService;
import me.zhengjie.service.dto.LocalStorageQueryCriteria;
import me.zhengjie.utils.FileUtil;
import me.zhengjie.utils.SecurityUtils;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@ -67,6 +70,19 @@ public class LocalStorageController {
return new ResponseEntity<>(HttpStatus.CREATED);
}
@Log("上传图片")
@PostMapping("/pictures")
@ApiOperation("上传图片")
public ResponseEntity<Object> upload(@RequestParam MultipartFile file){
// 判断文件是否为图片
String suffix = FileUtil.getExtensionName(file.getOriginalFilename());
if(!FileUtil.IMAGE.equals(FileUtil.getFileType(suffix))){
throw new BadRequestException("只能上传图片");
}
LocalStorage localStorage = localStorageService.create(null, file);
return new ResponseEntity<>(localStorage, HttpStatus.OK);
}
@ApiOperation("修改文件")
@PutMapping
@PreAuthorize("@el.check('storage:edit')")

View File

@ -1,89 +0,0 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.rest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import me.zhengjie.annotation.Log;
import me.zhengjie.domain.Picture;
import me.zhengjie.service.PictureService;
import me.zhengjie.service.dto.PictureQueryCriteria;
import me.zhengjie.utils.SecurityUtils;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author
* @date 2018/09/20 14:13:32
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/pictures")
@Api(tags = "工具:免费图床管理")
public class PictureController {
private final PictureService pictureService;
@Log("查询图片")
@PreAuthorize("@el.check('pictures:list')")
@GetMapping
@ApiOperation("查询图片")
public ResponseEntity<Object> query(PictureQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(pictureService.queryAll(criteria,pageable),HttpStatus.OK);
}
@Log("导出数据")
@ApiOperation("导出数据")
@GetMapping(value = "/download")
@PreAuthorize("@el.check('pictures:list')")
public void download(HttpServletResponse response, PictureQueryCriteria criteria) throws IOException {
pictureService.download(pictureService.queryAll(criteria), response);
}
@Log("上传图片")
@PreAuthorize("@el.check('pictures:add')")
@PostMapping
@ApiOperation("上传图片")
public ResponseEntity<Object> upload(@RequestParam MultipartFile file){
String userName = SecurityUtils.getCurrentUsername();
Picture picture = pictureService.upload(file,userName);
return new ResponseEntity<>(picture,HttpStatus.OK);
}
@Log("同步图床数据")
@ApiOperation("同步图床数据")
@PostMapping(value = "/synchronize")
public ResponseEntity<Object> synchronize(){
pictureService.synchronize();
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("多选删除图片")
@ApiOperation("多选删除图片")
@PreAuthorize("@el.check('pictures:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
pictureService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@ -56,8 +56,9 @@ public interface LocalStorageService {
*
* @param name
* @param file
* @return
*/
void create(String name, MultipartFile file);
LocalStorage create(String name, MultipartFile file);
/**
*

View File

@ -1,81 +0,0 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.service;
import me.zhengjie.domain.Picture;
import me.zhengjie.service.dto.PictureQueryCriteria;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* @author Zheng Jie
* @date 2018-12-27
*/
public interface PictureService {
/**
*
* @param criteria
* @param pageable
* @return /
*/
Object queryAll(PictureQueryCriteria criteria, Pageable pageable);
/**
*
* @param criteria
* @return /
*/
List<Picture> queryAll(PictureQueryCriteria criteria);
/**
*
* @param file /
* @param username /
* @return /
*/
Picture upload(MultipartFile file, String username);
/**
* ID
* @param id /
* @return /
*/
Picture findById(Long id);
/**
*
* @param ids /
*/
void deleteAll(Long[] ids);
/**
*
* @param queryAll
* @param response /
* @throws IOException /
*/
void download(List<Picture> queryAll, HttpServletResponse response) throws IOException;
/**
*
*/
void synchronize();
}

View File

@ -71,7 +71,7 @@ public class LocalStorageServiceImpl implements LocalStorageService {
@Override
@Transactional(rollbackFor = Exception.class)
public void create(String name, MultipartFile multipartFile) {
public LocalStorage create(String name, MultipartFile multipartFile) {
FileUtil.checkSize(properties.getMaxSize(), multipartFile.getSize());
String suffix = FileUtil.getExtensionName(multipartFile.getOriginalFilename());
String type = FileUtil.getFileType(suffix);
@ -89,7 +89,7 @@ public class LocalStorageServiceImpl implements LocalStorageService {
type,
FileUtil.getSize(multipartFile.getSize())
);
localStorageRepository.save(localStorage);
return localStorageRepository.save(localStorage);
}catch (Exception e){
FileUtil.del(file);
throw e;

View File

@ -1,157 +0,0 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.service.impl;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.zhengjie.domain.Picture;
import me.zhengjie.repository.PictureRepository;
import me.zhengjie.service.PictureService;
import me.zhengjie.service.dto.PictureQueryCriteria;
import me.zhengjie.exception.BadRequestException;
import me.zhengjie.utils.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.*;
/**
* @author Zheng Jie
* @date 2018-12-27
*/
@Slf4j
@RequiredArgsConstructor
@Service(value = "pictureService")
public class PictureServiceImpl implements PictureService {
@Value("${smms.token}")
private String token;
private final PictureRepository pictureRepository;
private static final String SUCCESS = "success";
private static final String CODE = "code";
private static final String MSG = "message";
@Override
public Object queryAll(PictureQueryCriteria criteria, Pageable pageable){
return PageUtil.toPage(pictureRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable));
}
@Override
public List<Picture> queryAll(PictureQueryCriteria criteria) {
return pictureRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder));
}
@Override
@Transactional(rollbackFor = Throwable.class)
public Picture upload(MultipartFile multipartFile, String username) {
File file = FileUtil.toFile(multipartFile);
// 验证是否重复上传
Picture picture = pictureRepository.findByMd5Code(FileUtil.getMd5(file));
if(picture != null){
return picture;
}
HashMap<String, Object> paramMap = new HashMap<>(1);
paramMap.put("smfile", file);
// 上传文件
String result= HttpRequest.post(ElAdminConstant.Url.SM_MS_URL + "/v2/upload")
.header("Authorization", token)
.form(paramMap)
.timeout(20000)
.execute().body();
JSONObject jsonObject = JSONUtil.parseObj(result);
if(!jsonObject.get(CODE).toString().equals(SUCCESS)){
throw new BadRequestException(TranslatorUtil.translate(jsonObject.get(MSG).toString()));
}
picture = JSON.parseObject(jsonObject.get("data").toString(), Picture.class);
picture.setSize(FileUtil.getSize(Integer.parseInt(picture.getSize())));
picture.setUsername(username);
picture.setMd5Code(FileUtil.getMd5(file));
picture.setFilename(FileUtil.getFileNameNoEx(multipartFile.getOriginalFilename())+"."+FileUtil.getExtensionName(multipartFile.getOriginalFilename()));
pictureRepository.save(picture);
//删除临时文件
FileUtil.del(file);
return picture;
}
@Override
public Picture findById(Long id) {
Picture picture = pictureRepository.findById(id).orElseGet(Picture::new);
ValidationUtil.isNull(picture.getId(),"Picture","id",id);
return picture;
}
@Override
public void deleteAll(Long[] ids) {
for (Long id : ids) {
Picture picture = findById(id);
try {
HttpUtil.get(picture.getDelete());
pictureRepository.delete(picture);
} catch(Exception e){
pictureRepository.delete(picture);
}
}
}
@Override
public void synchronize() {
//链式构建请求
String result = HttpRequest.get(ElAdminConstant.Url.SM_MS_URL + "/v2/upload_history")
//头信息,多个头信息多次调用此方法即可
.header("Authorization", token)
.timeout(20000)
.execute().body();
JSONObject jsonObject = JSONUtil.parseObj(result);
List<Picture> pictures = JSON.parseArray(jsonObject.get("data").toString(), Picture.class);
for (Picture picture : pictures) {
if(!pictureRepository.existsByUrl(picture.getUrl())){
picture.setSize(FileUtil.getSize(Integer.parseInt(picture.getSize())));
picture.setUsername("System Sync");
picture.setMd5Code(null);
pictureRepository.save(picture);
}
}
}
@Override
public void download(List<Picture> queryAll, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (Picture picture : queryAll) {
Map<String,Object> map = new LinkedHashMap<>();
map.put("文件名", picture.getFilename());
map.put("图片地址", picture.getUrl());
map.put("文件大小", picture.getSize());
map.put("操作人", picture.getUsername());
map.put("高度", picture.getHeight());
map.put("宽度", picture.getWidth());
map.put("删除地址", picture.getDelete());
map.put("创建日期", picture.getCreateTime());
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
}

View File

@ -1,7 +0,0 @@
-- code_gen_config 表改动 start --
alter table code_gen_config CHANGE id config_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
-- code_gen_config end --
-- code_column_config 表改动 start --
alter table code_column_config CHANGE id column_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
-- code_column_config end --

View File

@ -3,15 +3,15 @@
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50710
Source Server Version : 100505
Source Host : localhost:3306
Source Schema : eladmin
Target Server Type : MySQL
Target Server Version : 50710
Target Server Version : 100505
File Encoding : 65001
Date: 14/05/2020 13:28:14
Date: 05/09/2020 10:49:19
*/
SET NAMES utf8mb4;
@ -38,7 +38,7 @@ CREATE TABLE `code_column_config` (
`date_annotation` varchar(255) DEFAULT NULL,
PRIMARY KEY (`column_id`) USING BTREE,
KEY `idx_table_name` (`table_name`)
) ENGINE=InnoDB AUTO_INCREMENT=187 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='代码生成字段信息存储';
) ENGINE=InnoDB AUTO_INCREMENT=191 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='代码生成字段信息存储';
-- ----------------------------
-- Table structure for code_gen_config
@ -57,7 +57,7 @@ CREATE TABLE `code_gen_config` (
`api_alias` varchar(255) DEFAULT NULL COMMENT '接口名称',
PRIMARY KEY (`config_id`) USING BTREE,
KEY `idx_table_name` (`table_name`(100))
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='代码生成器配置';
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='代码生成器配置';
-- ----------------------------
-- Table structure for mnt_app
@ -185,13 +185,6 @@ CREATE TABLE `mnt_server` (
KEY `idx_ip` (`ip`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='服务器管理';
-- ----------------------------
-- Records of mnt_server
-- ----------------------------
BEGIN;
INSERT INTO `mnt_server` VALUES (1, 'root', '132.232.129.20', '腾讯云', 'Dqjdda1996.', 8013, NULL, NULL, '2019-11-24 20:35:02', NULL);
COMMIT;
-- ----------------------------
-- Table structure for sys_dept
-- ----------------------------
@ -199,9 +192,9 @@ DROP TABLE IF EXISTS `sys_dept`;
CREATE TABLE `sys_dept` (
`dept_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`pid` bigint(20) DEFAULT NULL COMMENT '上级部门',
`sub_count` int(5) DEFAULT '0' COMMENT '子部门数目',
`sub_count` int(5) DEFAULT 0 COMMENT '子部门数目',
`name` varchar(255) NOT NULL COMMENT '名称',
`dept_sort` int(5) DEFAULT '999' COMMENT '排序',
`dept_sort` int(5) DEFAULT 999 COMMENT '排序',
`enabled` bit(1) NOT NULL COMMENT '状态',
`create_by` varchar(255) DEFAULT NULL COMMENT '创建者',
`update_by` varchar(255) DEFAULT NULL COMMENT '更新者',
@ -210,18 +203,19 @@ CREATE TABLE `sys_dept` (
PRIMARY KEY (`dept_id`) USING BTREE,
KEY `inx_pid` (`pid`),
KEY `inx_enabled` (`enabled`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='部门';
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='部门';
-- ----------------------------
-- Records of sys_dept
-- ----------------------------
BEGIN;
INSERT INTO `sys_dept` VALUES (2, 7, 0, '研发部', 3, b'1', NULL, 'admin', '2019-03-25 09:15:32', '2020-05-10 17:37:58');
INSERT INTO `sys_dept` VALUES (5, 7, 0, '运维部', 4, b'1', NULL, NULL, '2019-03-25 09:20:44', NULL);
INSERT INTO `sys_dept` VALUES (6, 8, 0, '测试部', 6, b'1', NULL, NULL, '2019-03-25 09:52:18', NULL);
INSERT INTO `sys_dept` VALUES (7, NULL, 2, '华南分部', 0, b'1', NULL, 'admin', '2019-03-25 11:04:50', '2020-05-10 19:59:12');
INSERT INTO `sys_dept` VALUES (8, NULL, 2, '华北分部', 1, b'1', NULL, 'admin', '2019-03-25 11:04:53', '2020-05-14 12:54:00');
INSERT INTO `sys_dept` VALUES (2, 7, 1, '研发部', 3, b'1', 'admin', 'admin', '2019-03-25 09:15:32', '2020-08-02 14:48:47');
INSERT INTO `sys_dept` VALUES (5, 7, 0, '运维部', 4, b'1', 'admin', 'admin', '2019-03-25 09:20:44', '2020-05-17 14:27:27');
INSERT INTO `sys_dept` VALUES (6, 8, 0, '测试部', 6, b'1', 'admin', 'admin', '2019-03-25 09:52:18', '2020-06-08 11:59:21');
INSERT INTO `sys_dept` VALUES (7, NULL, 2, '华南分部', 0, b'1', 'admin', 'admin', '2019-03-25 11:04:50', '2020-06-08 12:08:56');
INSERT INTO `sys_dept` VALUES (8, NULL, 2, '华北分部', 1, b'1', 'admin', 'admin', '2019-03-25 11:04:53', '2020-05-14 12:54:00');
INSERT INTO `sys_dept` VALUES (15, 8, 0, 'UI部门', 7, b'1', 'admin', 'admin', '2020-05-13 22:56:53', '2020-05-14 12:54:13');
INSERT INTO `sys_dept` VALUES (17, 2, 0, '研发一组', 999, b'1', 'admin', 'admin', '2020-08-02 14:49:07', '2020-08-02 14:49:07');
COMMIT;
-- ----------------------------
@ -315,24 +309,18 @@ CREATE TABLE `sys_log` (
`description` varchar(255) DEFAULT NULL,
`log_type` varchar(255) DEFAULT NULL,
`method` varchar(255) DEFAULT NULL,
`params` text,
`params` text DEFAULT NULL,
`request_ip` varchar(255) DEFAULT NULL,
`time` bigint(20) DEFAULT NULL,
`username` varchar(255) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`browser` varchar(255) DEFAULT NULL,
`exception_detail` text,
`exception_detail` text DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
PRIMARY KEY (`log_id`) USING BTREE,
KEY `log_create_time_index` (`create_time`),
KEY `inx_log_type` (`log_type`)
) ENGINE=InnoDB AUTO_INCREMENT=2573 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统日志';
-- ----------------------------
-- Records of sys_log
-- ----------------------------
BEGIN;
COMMIT;
) ENGINE=InnoDB AUTO_INCREMENT=3537 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统日志';
-- ----------------------------
-- Table structure for sys_menu
@ -341,7 +329,7 @@ DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`pid` bigint(20) DEFAULT NULL COMMENT '上级菜单ID',
`sub_count` int(5) DEFAULT '0' COMMENT '子菜单数目',
`sub_count` int(5) DEFAULT 0 COMMENT '子菜单数目',
`type` int(11) DEFAULT NULL COMMENT '菜单类型',
`title` varchar(255) DEFAULT NULL COMMENT '菜单标题',
`name` varchar(255) DEFAULT NULL COMMENT '组件名称',
@ -361,7 +349,7 @@ CREATE TABLE `sys_menu` (
UNIQUE KEY `uniq_title` (`title`),
UNIQUE KEY `uniq_name` (`name`),
KEY `inx_pid` (`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=120 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统菜单';
) ENGINE=InnoDB AUTO_INCREMENT=118 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统菜单';
-- ----------------------------
-- Records of sys_menu
@ -372,17 +360,16 @@ INSERT INTO `sys_menu` VALUES (2, 1, 3, 1, '用户管理', 'User', 'system/user/
INSERT INTO `sys_menu` VALUES (3, 1, 3, 1, '角色管理', 'Role', 'system/role/index', 3, 'role', 'role', b'0', b'0', b'0', 'roles:list', NULL, NULL, '2018-12-18 15:16:07', NULL);
INSERT INTO `sys_menu` VALUES (5, 1, 3, 1, '菜单管理', 'Menu', 'system/menu/index', 5, 'menu', 'menu', b'0', b'0', b'0', 'menu:list', NULL, NULL, '2018-12-18 15:17:28', NULL);
INSERT INTO `sys_menu` VALUES (6, NULL, 5, 0, '系统监控', NULL, NULL, 10, 'monitor', 'monitor', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-18 15:17:48', NULL);
INSERT INTO `sys_menu` VALUES (7, 6, 0, 1, '操作日志', 'Log', 'monitor/log/index', 11, 'log', 'logs', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-18 15:18:26', NULL);
INSERT INTO `sys_menu` VALUES (7, 6, 0, 1, '操作日志', 'Log', 'monitor/log/index', 11, 'log', 'logs', b'0', b'1', b'0', NULL, NULL, 'admin', '2018-12-18 15:18:26', '2020-06-06 13:11:57');
INSERT INTO `sys_menu` VALUES (9, 6, 0, 1, 'SQL监控', 'Sql', 'monitor/sql/index', 18, 'sqlMonitor', 'druid', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-18 15:19:34', NULL);
INSERT INTO `sys_menu` VALUES (10, NULL, 5, 0, '组件管理', NULL, NULL, 50, 'zujian', 'components', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-19 13:38:16', NULL);
INSERT INTO `sys_menu` VALUES (11, 10, 0, 1, '图标库', 'Icons', 'components/icons/index', 51, 'icon', 'icon', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-19 13:38:49', NULL);
INSERT INTO `sys_menu` VALUES (14, 36, 0, 1, '邮件工具', 'Email', 'tools/email/index', 35, 'email', 'email', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-27 10:13:09', NULL);
INSERT INTO `sys_menu` VALUES (15, 10, 0, 1, '富文本', 'Editor', 'components/Editor', 52, 'fwb', 'tinymce', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-27 11:58:25', NULL);
INSERT INTO `sys_menu` VALUES (16, 36, 2, 1, '图床管理', 'Pictures', 'tools/picture/index', 33, 'image', 'pictures', b'0', b'0', b'0', 'pictures:list', NULL, NULL, '2018-12-28 09:36:53', NULL);
INSERT INTO `sys_menu` VALUES (18, 36, 3, 1, '存储管理', 'Storage', 'tools/storage/index', 34, 'qiniu', 'storage', b'0', b'0', b'0', 'storage:list', NULL, NULL, '2018-12-31 11:12:15', NULL);
INSERT INTO `sys_menu` VALUES (19, 36, 0, 1, '支付宝工具', 'AliPay', 'tools/aliPay/index', 37, 'alipay', 'aliPay', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-31 14:52:38', NULL);
INSERT INTO `sys_menu` VALUES (21, NULL, 2, 0, '多级菜单', NULL, '', 900, 'menu', 'nested', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:22:03', NULL);
INSERT INTO `sys_menu` VALUES (22, 21, 2, 1, '二级菜单1', NULL, 'nested/menu1/index', 999, 'menu', 'menu1', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:23:29', NULL);
INSERT INTO `sys_menu` VALUES (21, NULL, 2, 0, '多级菜单', NULL, '', 900, 'menu', 'nested', b'0', b'0', b'0', NULL, NULL, 'admin', '2019-01-04 16:22:03', '2020-06-21 17:27:35');
INSERT INTO `sys_menu` VALUES (22, 21, 2, 1, '二级菜单1', NULL, 'nested/menu1/index', 999, 'menu', 'menu1', b'0', b'0', b'0', NULL, NULL, 'admin', '2019-01-04 16:23:29', '2020-06-21 17:27:20');
INSERT INTO `sys_menu` VALUES (23, 21, 0, 1, '二级菜单2', NULL, 'nested/menu2/index', 999, 'menu', 'menu2', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:23:57', NULL);
INSERT INTO `sys_menu` VALUES (24, 22, 0, 1, '三级菜单1', NULL, 'nested/menu1/menu1-1', 999, 'menu', 'menu1-1', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:24:48', NULL);
INSERT INTO `sys_menu` VALUES (27, 22, 0, 1, '三级菜单2', NULL, 'nested/menu1/menu1-2', 999, 'menu', 'menu1-2', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-07 17:27:32', NULL);
@ -392,7 +379,7 @@ INSERT INTO `sys_menu` VALUES (32, 6, 0, 1, '异常日志', 'ErrorLog', 'monitor
INSERT INTO `sys_menu` VALUES (33, 10, 0, 1, 'Markdown', 'Markdown', 'components/MarkDown', 53, 'markdown', 'markdown', b'0', b'0', b'0', NULL, NULL, NULL, '2019-03-08 13:46:44', NULL);
INSERT INTO `sys_menu` VALUES (34, 10, 0, 1, 'Yaml编辑器', 'YamlEdit', 'components/YamlEdit', 54, 'dev', 'yaml', b'0', b'0', b'0', NULL, NULL, NULL, '2019-03-08 15:49:40', NULL);
INSERT INTO `sys_menu` VALUES (35, 1, 3, 1, '部门管理', 'Dept', 'system/dept/index', 6, 'dept', 'dept', b'0', b'0', b'0', 'dept:list', NULL, NULL, '2019-03-25 09:46:00', NULL);
INSERT INTO `sys_menu` VALUES (36, NULL, 8, 0, '系统工具', NULL, '', 30, 'sys-tools', 'sys-tools', b'0', b'0', b'0', NULL, NULL, NULL, '2019-03-29 10:57:35', NULL);
INSERT INTO `sys_menu` VALUES (36, NULL, 7, 0, '系统工具', NULL, '', 30, 'sys-tools', 'sys-tools', b'0', b'0', b'0', NULL, NULL, NULL, '2019-03-29 10:57:35', NULL);
INSERT INTO `sys_menu` VALUES (37, 1, 3, 1, '岗位管理', 'Job', 'system/job/index', 7, 'Steve-Jobs', 'job', b'0', b'0', b'0', 'job:list', NULL, NULL, '2019-03-29 13:51:18', NULL);
INSERT INTO `sys_menu` VALUES (38, 36, 0, 1, '接口文档', 'Swagger', 'tools/swagger/index', 36, 'swagger', 'swagger2', b'0', b'0', b'0', NULL, NULL, NULL, '2019-03-29 19:57:53', NULL);
INSERT INTO `sys_menu` VALUES (39, 1, 3, 1, '字典管理', 'Dict', 'system/dict/index', 8, 'dictionary', 'dict', b'0', b'0', b'0', 'dict:list', NULL, NULL, '2019-04-10 11:49:04', NULL);
@ -415,8 +402,6 @@ INSERT INTO `sys_menu` VALUES (62, 37, 0, 2, '岗位删除', NULL, '', 4, '', ''
INSERT INTO `sys_menu` VALUES (64, 39, 0, 2, '字典新增', NULL, '', 2, '', '', b'0', b'0', b'0', 'dict:add', NULL, NULL, '2019-10-29 13:00:17', NULL);
INSERT INTO `sys_menu` VALUES (65, 39, 0, 2, '字典编辑', NULL, '', 3, '', '', b'0', b'0', b'0', 'dict:edit', NULL, NULL, '2019-10-29 13:00:42', NULL);
INSERT INTO `sys_menu` VALUES (66, 39, 0, 2, '字典删除', NULL, '', 4, '', '', b'0', b'0', b'0', 'dict:del', NULL, NULL, '2019-10-29 13:00:59', NULL);
INSERT INTO `sys_menu` VALUES (70, 16, 0, 2, '图片上传', NULL, '', 2, '', '', b'0', b'0', b'0', 'pictures:add', NULL, NULL, '2019-10-29 13:05:34', NULL);
INSERT INTO `sys_menu` VALUES (71, 16, 0, 2, '图片删除', NULL, '', 3, '', '', b'0', b'0', b'0', 'pictures:del', NULL, NULL, '2019-10-29 13:05:52', NULL);
INSERT INTO `sys_menu` VALUES (73, 28, 0, 2, '任务新增', NULL, '', 2, '', '', b'0', b'0', b'0', 'timing:add', NULL, NULL, '2019-10-29 13:07:28', NULL);
INSERT INTO `sys_menu` VALUES (74, 28, 0, 2, '任务编辑', NULL, '', 3, '', '', b'0', b'0', b'0', 'timing:edit', NULL, NULL, '2019-10-29 13:07:41', NULL);
INSERT INTO `sys_menu` VALUES (75, 28, 0, 2, '任务删除', NULL, '', 4, '', '', b'0', b'0', b'0', 'timing:del', NULL, NULL, '2019-10-29 13:07:54', NULL);
@ -477,8 +462,8 @@ CREATE TABLE `sys_quartz_job` (
-- Records of sys_quartz_job
-- ----------------------------
BEGIN;
INSERT INTO `sys_quartz_job` VALUES (2, 'testTask', '0/5 * * * * ?', b'1', '测试1', 'run1', 'test', '带参测试多参使用json', '测试', NULL, NULL, NULL, NULL, 'admin', '2019-08-22 14:08:29', '2020-05-05 17:26:19');
INSERT INTO `sys_quartz_job` VALUES (3, 'testTask', '0/5 * * * * ?', b'1', '测试', 'run', '', '不带参测试', 'Zheng Jie', '', '2,6', b'1', NULL, 'admin', '2019-09-26 16:44:39', '2020-05-05 20:45:39');
INSERT INTO `sys_quartz_job` VALUES (2, 'testTask', '0/5 * * * * ?', b'1', '测试1', 'run1', 'test', '带参测试多参使用json', '测试', NULL, NULL, NULL, NULL, 'admin', '2019-08-22 14:08:29', '2020-05-24 13:58:33');
INSERT INTO `sys_quartz_job` VALUES (3, 'testTask', '0/5 * * * * ?', b'1', '测试', 'run', '', '不带参测试', 'Zheng Jie', '', '5,6', b'1', NULL, 'admin', '2019-09-26 16:44:39', '2020-05-24 14:48:12');
INSERT INTO `sys_quartz_job` VALUES (5, 'Test', '0/5 * * * * ?', b'1', '任务告警测试', 'run', NULL, '测试', 'test', '', NULL, b'1', 'admin', 'admin', '2020-05-05 20:32:41', '2020-05-05 20:36:13');
INSERT INTO `sys_quartz_job` VALUES (6, 'testTask', '0/5 * * * * ?', b'1', '测试3', 'run2', NULL, '测试3', 'Zheng Jie', '', NULL, b'1', 'admin', 'admin', '2020-05-05 20:35:41', '2020-05-05 20:36:07');
COMMIT;
@ -492,20 +477,14 @@ CREATE TABLE `sys_quartz_log` (
`bean_name` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`cron_expression` varchar(255) DEFAULT NULL,
`exception_detail` text,
`exception_detail` text DEFAULT NULL,
`is_success` bit(1) DEFAULT NULL,
`job_name` varchar(255) DEFAULT NULL,
`method_name` varchar(255) DEFAULT NULL,
`params` varchar(255) DEFAULT NULL,
`time` bigint(20) DEFAULT NULL,
PRIMARY KEY (`log_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='定时任务日志';
-- ----------------------------
-- Records of sys_quartz_log
-- ----------------------------
BEGIN;
COMMIT;
) ENGINE=InnoDB AUTO_INCREMENT=151 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='定时任务日志';
-- ----------------------------
-- Table structure for sys_role
@ -530,8 +509,8 @@ CREATE TABLE `sys_role` (
-- Records of sys_role
-- ----------------------------
BEGIN;
INSERT INTO `sys_role` VALUES (1, '超级管理员', 1, '-', '全部', NULL, 'admin', '2018-11-23 11:04:37', '2020-05-11 18:34:06');
INSERT INTO `sys_role` VALUES (2, '普通用户', 2, '-', '自定义', NULL, 'admin', '2018-11-23 13:09:06', '2020-05-11 18:28:45');
INSERT INTO `sys_role` VALUES (1, '超级管理员', 1, '-', '自定义', NULL, 'admin', '2018-11-23 11:04:37', '2020-08-06 16:10:24');
INSERT INTO `sys_role` VALUES (2, '普通用户', 2, '-', '自定义', NULL, 'admin', '2018-11-23 13:09:06', '2020-09-05 10:45:12');
COMMIT;
-- ----------------------------
@ -549,7 +528,9 @@ CREATE TABLE `sys_roles_depts` (
-- Records of sys_roles_depts
-- ----------------------------
BEGIN;
INSERT INTO `sys_roles_depts` VALUES (2, 7);
INSERT INTO `sys_roles_depts` VALUES (1, 7);
INSERT INTO `sys_roles_depts` VALUES (1, 8);
INSERT INTO `sys_roles_depts` VALUES (2, 6);
COMMIT;
-- ----------------------------
@ -568,52 +549,74 @@ CREATE TABLE `sys_roles_menus` (
-- ----------------------------
BEGIN;
INSERT INTO `sys_roles_menus` VALUES (1, 1);
INSERT INTO `sys_roles_menus` VALUES (1, 2);
INSERT INTO `sys_roles_menus` VALUES (2, 1);
INSERT INTO `sys_roles_menus` VALUES (2, 2);
INSERT INTO `sys_roles_menus` VALUES (3, 1);
INSERT INTO `sys_roles_menus` VALUES (3, 2);
INSERT INTO `sys_roles_menus` VALUES (5, 1);
INSERT INTO `sys_roles_menus` VALUES (5, 2);
INSERT INTO `sys_roles_menus` VALUES (6, 1);
INSERT INTO `sys_roles_menus` VALUES (6, 2);
INSERT INTO `sys_roles_menus` VALUES (7, 1);
INSERT INTO `sys_roles_menus` VALUES (7, 2);
INSERT INTO `sys_roles_menus` VALUES (9, 1);
INSERT INTO `sys_roles_menus` VALUES (9, 2);
INSERT INTO `sys_roles_menus` VALUES (10, 1);
INSERT INTO `sys_roles_menus` VALUES (10, 2);
INSERT INTO `sys_roles_menus` VALUES (11, 1);
INSERT INTO `sys_roles_menus` VALUES (11, 2);
INSERT INTO `sys_roles_menus` VALUES (14, 1);
INSERT INTO `sys_roles_menus` VALUES (14, 2);
INSERT INTO `sys_roles_menus` VALUES (15, 1);
INSERT INTO `sys_roles_menus` VALUES (16, 1);
INSERT INTO `sys_roles_menus` VALUES (15, 2);
INSERT INTO `sys_roles_menus` VALUES (18, 1);
INSERT INTO `sys_roles_menus` VALUES (18, 2);
INSERT INTO `sys_roles_menus` VALUES (19, 1);
INSERT INTO `sys_roles_menus` VALUES (19, 2);
INSERT INTO `sys_roles_menus` VALUES (21, 1);
INSERT INTO `sys_roles_menus` VALUES (21, 2);
INSERT INTO `sys_roles_menus` VALUES (22, 1);
INSERT INTO `sys_roles_menus` VALUES (22, 2);
INSERT INTO `sys_roles_menus` VALUES (23, 1);
INSERT INTO `sys_roles_menus` VALUES (23, 2);
INSERT INTO `sys_roles_menus` VALUES (24, 1);
INSERT INTO `sys_roles_menus` VALUES (24, 2);
INSERT INTO `sys_roles_menus` VALUES (27, 1);
INSERT INTO `sys_roles_menus` VALUES (27, 2);
INSERT INTO `sys_roles_menus` VALUES (28, 1);
INSERT INTO `sys_roles_menus` VALUES (28, 2);
INSERT INTO `sys_roles_menus` VALUES (30, 1);
INSERT INTO `sys_roles_menus` VALUES (32, 1);
INSERT INTO `sys_roles_menus` VALUES (33, 1);
INSERT INTO `sys_roles_menus` VALUES (33, 2);
INSERT INTO `sys_roles_menus` VALUES (34, 1);
INSERT INTO `sys_roles_menus` VALUES (34, 2);
INSERT INTO `sys_roles_menus` VALUES (35, 1);
INSERT INTO `sys_roles_menus` VALUES (35, 2);
INSERT INTO `sys_roles_menus` VALUES (36, 1);
INSERT INTO `sys_roles_menus` VALUES (36, 2);
INSERT INTO `sys_roles_menus` VALUES (37, 1);
INSERT INTO `sys_roles_menus` VALUES (37, 2);
INSERT INTO `sys_roles_menus` VALUES (38, 1);
INSERT INTO `sys_roles_menus` VALUES (38, 2);
INSERT INTO `sys_roles_menus` VALUES (39, 1);
INSERT INTO `sys_roles_menus` VALUES (39, 2);
INSERT INTO `sys_roles_menus` VALUES (41, 1);
INSERT INTO `sys_roles_menus` VALUES (80, 1);
INSERT INTO `sys_roles_menus` VALUES (80, 2);
INSERT INTO `sys_roles_menus` VALUES (82, 1);
INSERT INTO `sys_roles_menus` VALUES (83, 1);
INSERT INTO `sys_roles_menus` VALUES (83, 2);
INSERT INTO `sys_roles_menus` VALUES (90, 1);
INSERT INTO `sys_roles_menus` VALUES (90, 2);
INSERT INTO `sys_roles_menus` VALUES (92, 1);
INSERT INTO `sys_roles_menus` VALUES (92, 2);
INSERT INTO `sys_roles_menus` VALUES (93, 1);
INSERT INTO `sys_roles_menus` VALUES (94, 1);
INSERT INTO `sys_roles_menus` VALUES (97, 1);
INSERT INTO `sys_roles_menus` VALUES (98, 1);
INSERT INTO `sys_roles_menus` VALUES (116, 1);
INSERT INTO `sys_roles_menus` VALUES (1, 2);
INSERT INTO `sys_roles_menus` VALUES (2, 2);
INSERT INTO `sys_roles_menus` VALUES (3, 2);
INSERT INTO `sys_roles_menus` VALUES (5, 2);
INSERT INTO `sys_roles_menus` VALUES (10, 2);
INSERT INTO `sys_roles_menus` VALUES (21, 2);
INSERT INTO `sys_roles_menus` VALUES (36, 2);
COMMIT;
-- ----------------------------
@ -652,8 +655,8 @@ CREATE TABLE `sys_user` (
-- Records of sys_user
-- ----------------------------
BEGIN;
INSERT INTO `sys_user` VALUES (1, 2, 'admin', '管理员', '', '18888888888', '201507802@qq.com', NULL, NULL, '$2a$10$Egp1/gvFlt7zhlXVfEFw4OfWQCGPw0ClmMcc6FjTnvXNRVf9zdMRa', b'1', 1, NULL, 'admin', '2020-05-03 16:38:31', '2018-08-23 09:11:56', '2020-05-05 10:12:21');
INSERT INTO `sys_user` VALUES (2, 2, 'test', '测试', '', '18888888888', '231@qq.com', NULL, NULL, '$2a$10$4XcyudOYTSz6fue6KFNMHeUQnCX5jbBQypLEnGk1PmekXt5c95JcK', b'0', 1, 'admin', 'admin', NULL, '2020-05-05 11:15:49', '2020-05-05 11:20:51');
INSERT INTO `sys_user` VALUES (1, 2, 'admin', '管理员', '', '18888888888', '201507802@qq.com', 'avatar-20200806032259161.png', '/Users/jie/Documents/work/me/admin/eladmin/~/avatar/avatar-20200806032259161.png', '$2a$10$Egp1/gvFlt7zhlXVfEFw4OfWQCGPw0ClmMcc6FjTnvXNRVf9zdMRa', b'1', 1, NULL, 'admin', '2020-05-03 16:38:31', '2018-08-23 09:11:56', '2020-09-05 10:43:31');
INSERT INTO `sys_user` VALUES (2, 2, 'test', '测试', '', '18888888888', '231@qq.com', NULL, NULL, '$2a$10$4XcyudOYTSz6fue6KFNMHeUQnCX5jbBQypLEnGk1PmekXt5c95JcK', b'0', 1, 'admin', 'admin', NULL, '2020-05-05 11:15:49', '2020-09-05 10:43:38');
COMMIT;
-- ----------------------------
@ -671,7 +674,6 @@ CREATE TABLE `sys_users_jobs` (
-- ----------------------------
BEGIN;
INSERT INTO `sys_users_jobs` VALUES (1, 11);
INSERT INTO `sys_users_jobs` VALUES (1, 12);
INSERT INTO `sys_users_jobs` VALUES (2, 12);
COMMIT;
@ -705,8 +707,8 @@ CREATE TABLE `tool_alipay_config` (
`format` varchar(255) DEFAULT NULL COMMENT '类型 固定格式json',
`gateway_url` varchar(255) DEFAULT NULL COMMENT '网关地址',
`notify_url` varchar(255) DEFAULT NULL COMMENT '异步回调',
`private_key` text COMMENT '私钥',
`public_key` text COMMENT '公钥',
`private_key` text DEFAULT NULL COMMENT '私钥',
`public_key` text DEFAULT NULL COMMENT '公钥',
`return_url` varchar(255) DEFAULT NULL COMMENT '回调地址',
`sign_type` varchar(255) DEFAULT NULL COMMENT '签名方式',
`sys_service_provider_id` varchar(255) DEFAULT NULL COMMENT '商户号',
@ -751,7 +753,7 @@ CREATE TABLE `tool_local_storage` (
`create_time` datetime DEFAULT NULL COMMENT '创建日期',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`storage_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='本地存储';
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='本地存储';
-- ----------------------------
-- Records of tool_local_storage
@ -759,36 +761,16 @@ CREATE TABLE `tool_local_storage` (
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for tool_picture
-- ----------------------------
DROP TABLE IF EXISTS `tool_picture`;
CREATE TABLE `tool_picture` (
`picture_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`filename` varchar(255) DEFAULT NULL COMMENT '图片名称',
`md5code` varchar(255) DEFAULT NULL COMMENT '文件的MD5值',
`size` varchar(255) DEFAULT NULL COMMENT '图片大小',
`url` varchar(255) DEFAULT NULL COMMENT '图片地址',
`delete_url` varchar(255) DEFAULT NULL COMMENT '删除的URL',
`height` varchar(255) DEFAULT NULL COMMENT '图片高度',
`width` varchar(255) DEFAULT NULL COMMENT '图片宽度',
`username` varchar(255) DEFAULT NULL COMMENT '用户名称',
`create_time` datetime DEFAULT NULL COMMENT '上传日期',
PRIMARY KEY (`picture_id`) USING BTREE,
UNIQUE KEY `uniq_md5_code` (`md5code`),
KEY `inx_url` (`url`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='Sm.Ms图床';
-- ----------------------------
-- Table structure for tool_qiniu_config
-- ----------------------------
DROP TABLE IF EXISTS `tool_qiniu_config`;
CREATE TABLE `tool_qiniu_config` (
`config_id` bigint(20) NOT NULL COMMENT 'ID',
`access_key` text COMMENT 'accessKey',
`access_key` text DEFAULT NULL COMMENT 'accessKey',
`bucket` varchar(255) DEFAULT NULL COMMENT 'Bucket 识别符',
`host` varchar(255) NOT NULL COMMENT '外链域名',
`secret_key` text COMMENT 'secretKey',
`secret_key` text DEFAULT NULL COMMENT 'secretKey',
`type` varchar(255) DEFAULT NULL COMMENT '空间类型',
`zone` varchar(255) DEFAULT NULL COMMENT '机房',
PRIMARY KEY (`config_id`) USING BTREE
@ -809,6 +791,12 @@ CREATE TABLE `tool_qiniu_content` (
`update_time` datetime DEFAULT NULL COMMENT '上传或同步的时间',
PRIMARY KEY (`content_id`) USING BTREE,
UNIQUE KEY `uniq_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='七牛云文件存储';
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='七牛云文件存储';
-- ----------------------------
-- Records of tool_qiniu_content
-- ----------------------------
BEGIN;
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,35 +0,0 @@
-- mnt_app 表改动 start --
alter table mnt_app CHANGE id app_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* 加入通用字段 */
alter table mnt_app add create_by VARCHAR(255) COMMENT '创建者';
alter table mnt_app add update_by VARCHAR(255) COMMENT '更新者';
alter table mnt_app add update_time datetime COMMENT '更新时间';
-- mnt_app end --
-- mnt_database 表改动 start --
alter table mnt_database CHANGE id db_id VARCHAR(50) COMMENT 'ID';
/* 加入通用字段 */
alter table mnt_database add create_by VARCHAR(255) COMMENT '创建者';
alter table mnt_database add update_by VARCHAR(255) COMMENT '更新者';
alter table mnt_database add update_time datetime COMMENT '更新时间';
-- mnt_database end --
-- mnt_deploy 表改动 start --
alter table mnt_deploy CHANGE id deploy_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* 加入通用字段 */
alter table mnt_deploy add create_by VARCHAR(255) COMMENT '创建者';
alter table mnt_deploy add update_by VARCHAR(255) COMMENT '更新者';
alter table mnt_deploy add update_time datetime COMMENT '更新时间';
-- mnt_deploy end --
-- mnt_server 表改动 start --
alter table mnt_server CHANGE id server_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* 加入通用字段 */
alter table mnt_server add create_by VARCHAR(255) COMMENT '创建者';
alter table mnt_server add update_by VARCHAR(255) COMMENT '更新者';
alter table mnt_server add update_time datetime COMMENT '更新时间';
-- mnt_server end --
-- mnt_deploy_history 表改动 start --
alter table mnt_deploy_history CHANGE id history_id VARCHAR(50) COMMENT 'ID';
-- mnt_deploy end --

View File

@ -1,134 +0,0 @@
-- sys_user 表变动 start --
/* id 改为 user_id */
alter table sys_user CHANGE id user_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* 实际操作中需要将 avatar 表的数据移入 sys_user 中 */
alter table sys_user CHANGE avatar_id avatar_url VARCHAR(255) COMMENT '头像地址';
/* 添加头像路径 */
alter table sys_user add avatar_path VARCHAR(255) COMMENT '头像真实路径' AFTER avatar_url;
/* 判断是否为 admin */
alter table sys_user add is_admin bit(1) COMMENT '是否为admin账号' DEFAULT 0 AFTER create_time;
/* sex 改为 gender */
alter table sys_user CHANGE sex gender VARCHAR(2) COMMENT '性别';
/* last_password_reset_time 改为 pwd_reset_time */
alter table sys_user CHANGE last_password_reset_time pwd_reset_time datetime COMMENT '修改密码的时间';
/* 加入通用字段 */
alter table sys_user add update_by VARCHAR(255) COMMENT '更新者' AFTER enabled;
alter table sys_user add create_by VARCHAR(255) COMMENT '创建者' AFTER enabled;
alter table sys_user add update_time datetime COMMENT '更新时间';
-- sys_user end --
-- sys_role 表变动 start--
/* id 改为 role_id */
alter table sys_role CHANGE id role_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* remark 改为 description */
alter table sys_role CHANGE remark description VARCHAR(255) COMMENT '描述';
/* 删除权限字段 */
ALTER TABLE sys_role DROP permission;
/* 加入通用字段 */
alter table sys_role add update_by VARCHAR(255) COMMENT '更新者';
alter table sys_role add create_by VARCHAR(255) COMMENT '创建者';
alter table sys_role add update_time datetime COMMENT '更新时间';
-- sys_role end --
-- sys_menu 表变动 start--
/* id 改为 menu_id */
alter table sys_menu CHANGE id menu_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* name 改为 title */
alter table sys_menu CHANGE name title VARCHAR(255) COMMENT '菜单标题';
/* component_name 改为 name */
alter table sys_menu CHANGE component_name name VARCHAR(255) COMMENT '组件名称';
/* sort 改为 menu_sort */
alter table sys_menu CHANGE sort menu_sort INT(5) COMMENT '排序';
/* pid 允许为空 */
alter table sys_menu modify pid BIGINT(20) null;
/* 加入子节点数量字段 */
alter table sys_menu add sub_count INT(5) DEFAULT 0 COMMENT '子菜单数目';
/* 加入通用字段 */
alter table sys_menu add update_by VARCHAR(255) COMMENT '更新者';
alter table sys_menu add create_by VARCHAR(255) COMMENT '创建者';
alter table sys_menu add update_time datetime COMMENT '更新时间';
-- sys_menu end --
-- sys_job 表改动 start --
/* id 改为 menu_id */
alter table sys_job CHANGE id job_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* sort 改为 job_sort */
alter table sys_job CHANGE sort job_sort INT(5) COMMENT '排序';
/* 删除岗位与部门的关系 */
ALTER TABLE sys_job DROP dept_id;
/* 加入通用字段 */
alter table sys_job add create_by VARCHAR(255) COMMENT '创建者';
alter table sys_job add update_by VARCHAR(255) COMMENT '更新者';
alter table sys_job add update_time datetime COMMENT '更新时间';
-- sys_job end --
-- sys_dept 表改动 start--
/* id 改为 menu_id */
alter table sys_dept CHANGE id dept_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* pid 允许为空 */
alter table sys_dept modify pid BIGINT(20) null;
/* 加入排序字段 */
alter table sys_dept add dept_sort int(5) DEFAULT 999 COMMENT '排序';
/* 加入子节点数量字段 */
alter table sys_dept add sub_count INT(5) DEFAULT 0 COMMENT '子部门数目';
/* 加入通用字段 */
alter table sys_dept add create_by VARCHAR(255) COMMENT '创建者';
alter table sys_dept add update_by VARCHAR(255) COMMENT '更新者';
alter table sys_dept add update_time datetime COMMENT '更新时间';
-- sys_dept end --
-- sys_dict 表改动 start --
/* id 改为 menu_id */
alter table sys_dict CHANGE id dict_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* remark 改为 description */
alter table sys_dict CHANGE remark description VARCHAR(255) COMMENT '描述';
/* 加入通用字段 */
alter table sys_dict add create_by VARCHAR(255) COMMENT '创建者';
alter table sys_dict add update_by VARCHAR(255) COMMENT '更新者';
alter table sys_dict add update_time datetime COMMENT '更新时间';
-- sys_dict end --
-- sys_dict_detail 表改动 start --
/* id 改为 menu_id */
alter table sys_dict_detail CHANGE id detail_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* sort 改为 dict_sort */
alter table sys_dict_detail CHANGE sort dict_sort INT(5) COMMENT '排序';
/* 加入通用字段 */
alter table sys_dict_detail add create_by VARCHAR(255) COMMENT '创建者';
alter table sys_dict_detail add update_by VARCHAR(255) COMMENT '更新者';
alter table sys_dict_detail add update_time datetime COMMENT '更新时间';
-- sys_dict_detail end --
-- sys_quartz_job and sys_quartz_log 表改动 start --
/* id 改为 job_id */
alter table sys_quartz_job CHANGE id job_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
alter table sys_quartz_log CHANGE id log_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* baen_name 改为 bean_name */
alter table sys_quartz_log CHANGE baen_name bean_name VARCHAR(255) COMMENT 'Bean 名称';
/* remark 改为 description */
alter table sys_quartz_job CHANGE remark description VARCHAR(255) COMMENT '备注';
/* 加入通用字段 */
alter table sys_quartz_job add create_by VARCHAR(255) COMMENT '创建者';
alter table sys_quartz_job add update_by VARCHAR(255) COMMENT '更新者';
alter table sys_quartz_job add update_time datetime COMMENT '更新时间';
/* 添加负责人 与 报警邮箱 */
alter table sys_quartz_job add person_in_charge VARCHAR(100) COMMENT '负责人';
alter table sys_quartz_job add email VARCHAR(100) COMMENT '报警邮箱';
alter table sys_quartz_job add sub_task VARCHAR(100) COMMENT '子任务ID';
alter table sys_quartz_job add pause_after_failure bit(1) COMMENT '任务失败后是否暂停';
-- sys_quartz_job end --
-- sys_monitor_server 表改动 start --
alter table sys_monitor_server CHANGE id monitor_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* sort 改为 monitor_sort */
alter table sys_monitor_server CHANGE sort monitor_sort INT(5) COMMENT '排序';
/* 加入通用字段 */
alter table sys_monitor_server add create_by VARCHAR(255) COMMENT '创建者';
alter table sys_monitor_server add update_by VARCHAR(255) COMMENT '更新者';
alter table sys_monitor_server add create_time datetime COMMENT '创建时间';
alter table sys_monitor_server add update_time datetime COMMENT '更新时间';
-- sys_monitor_server end --
-- sys_log 表改动 start --
alter table sys_log CHANGE id log_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
-- sys_log end --

View File

@ -1,29 +0,0 @@
-- tool_alipay_config 表改动 start --
alter table tool_alipay_config CHANGE id config_id BIGINT(20) COMMENT 'ID';
-- tool_alipay_config end --
-- tool_email_config 表改动 start --
alter table tool_email_config CHANGE id config_id BIGINT(20) COMMENT 'ID';
-- tool_email_config end --
-- tool_local_storage 表改动 start --
alter table tool_local_storage CHANGE id storage_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
/* 加入通用字段 */
alter table tool_local_storage add create_by VARCHAR(255) COMMENT '创建者';
alter table tool_local_storage add update_by VARCHAR(255) COMMENT '更新者';
alter table tool_local_storage add update_time datetime COMMENT '更新时间';
/* 删除 operate 字段 */
ALTER TABLE tool_local_storage DROP operate;
-- tool_local_storage end --
-- tool_picture 表改动 start --
alter table tool_picture CHANGE id picture_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
-- tool_picture end --
-- tool_qiniu_config 表改动 start --
alter table tool_qiniu_config CHANGE id config_id BIGINT(20) COMMENT 'ID';
-- tool_qiniu_config end --
-- tool_qiniu_content 表改动 start --
alter table tool_qiniu_content CHANGE id content_id BIGINT(20) AUTO_INCREMENT COMMENT 'ID';
-- tool_qiniu_content end --

2
sql/tool_picture.sql Normal file
View File

@ -0,0 +1,2 @@
-- 删除免费图床表
DROP TABLE tool_picture;

View File

@ -1,5 +0,0 @@
/* 检索并拼接sql语句复制所有结果删除所有外键 */
SELECT CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' DROP FOREIGN KEY ',CONSTRAINT_NAME,';')
FROM information_schema.TABLE_CONSTRAINTS c
WHERE c.TABLE_SCHEMA='eladmin' AND c.CONSTRAINT_TYPE='FOREIGN KEY';

View File

@ -1,2 +0,0 @@
-- 删除头像关联表,将头像信息存入 sys_user 表,执行前先执行 字段调整. --
DROP TABLE user_avatar

View File

@ -1,12 +0,0 @@
-- ----------------------------
-- Table structure for sys_users_jobs
-- ----------------------------
DROP TABLE IF EXISTS `sys_users_jobs`;
CREATE TABLE `sys_users_jobs` (
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`job_id` bigint(20) NOT NULL COMMENT '岗位ID',
PRIMARY KEY (`user_id`,`job_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- sys_user 需要将岗位信息移入 sys_users_jobs 表中,这里不提供移入脚本--
ALTER TABLE sys_user DROP job_id;

View File

@ -1,17 +0,0 @@
/** 将admin改为管理员 */
update sys_user set is_admin = 1 WHERE user_id = 1;
UPDATE sys_dept SET pid = NULL WHERE pid = 0;
UPDATE sys_menu SET pid = NULL WHERE pid = 0;
-- 创建零时表并复制数据 --
create table sys_menu_tmp select * from sys_menu;
create table sys_dept_tmp select * from sys_dept;
-- 更新 sub_count --
UPDATE sys_menu s set s.sub_count = (
SELECT COUNT(1) FROM sys_menu_tmp tmp WHERE tmp.pid = s.menu_id
);
UPDATE sys_dept d set d.sub_count = (
SELECT COUNT(1) FROM sys_dept_tmp tmp WHERE tmp.pid = d.dept_id
);
-- 删除零时表 --
DROP TABLE sys_menu_tmp;
DROP TABLE sys_dept_tmp;

View File

@ -1,38 +0,0 @@
-- code_ --
CREATE INDEX idx_table_name ON code_column_config(table_name);
CREATE INDEX idx_table_name ON code_gen_config(table_name);
-- mnt_ --
CREATE INDEX idx_ip ON mnt_server(ip);
-- sys_ --
CREATE INDEX inx_is_pause ON sys_quartz_job(is_pause);
CREATE INDEX inx_pid ON sys_dept(pid);
CREATE INDEX inx_enabled ON sys_dept(enabled);
CREATE UNIQUE INDEX uniq_name ON sys_job(name);
CREATE INDEX inx_enabled ON sys_job(enabled);
CREATE UNIQUE INDEX uniq_title ON sys_menu(title);
-- 将 设置成 NULL --
UPDATE sys_menu set name = NULL WHERE name = '';
CREATE UNIQUE INDEX uniq_name ON sys_menu(name);
CREATE INDEX inx_pid ON sys_menu(pid);
CREATE UNIQUE INDEX uniq_name ON sys_role(name);
CREATE UNIQUE INDEX uniq_username ON sys_user(username);
CREATE UNIQUE INDEX uniq_email ON sys_user(email);
CREATE INDEX inx_enabled ON sys_user(enabled);
CREATE INDEX inx_log_type ON sys_log(log_type);
-- tool_ --
-- 将 设置成 NULL --
UPDATE tool_picture set md5code = NULL WHERE md5code = '';
CREATE UNIQUE INDEX uniq_md5_code ON tool_picture(md5code);
CREATE INDEX inx_url ON tool_picture(url);
CREATE UNIQUE INDEX uniq_name ON tool_qiniu_content(name);

View File

@ -7,18 +7,5 @@
### 初次使用
eladmin.sql 为 eladmin 项目完整的 sql 脚本,适合于初次使用的用户
### 更新迭代
对于老版本的,可以按下面的顺序执行
1. 删除所有外键.sql
2. 表名修改.sql
3. code_ 相关表字段调整.sql
4. mnt_ 相关表字段调整.sql
5. tool_ 相关表字段调整.sql
6. sys_ 相关表字段调整.sql
7. 用户岗位改动.sql
8. 相关数据更新.sql
9. 索引相关.sql
10. 删除无用表.sql
脚本已经提供,其他的就需要自己慢慢调试了,祝成功!

View File

@ -1,31 +0,0 @@
/** 系统相关表统一 sys 前缀 */
ALTER TABLE `user` RENAME TO `sys_user`;
ALTER TABLE `role` RENAME TO `sys_role`;
ALTER TABLE `menu` RENAME TO `sys_menu`;
ALTER TABLE `dept` RENAME TO `sys_dept`;
ALTER TABLE `job` RENAME TO `sys_job`;
ALTER TABLE `dict` RENAME TO `sys_dict`;
ALTER TABLE `dict_detail` RENAME TO `sys_dict_detail`;
ALTER TABLE `log` RENAME TO `sys_log`;
ALTER TABLE `visits` RENAME TO `sys_visits`;
ALTER TABLE `verification_code` RENAME TO `sys_verification_code`;
ALTER TABLE `monitor_server` RENAME TO `sys_monitor_server`;
ALTER TABLE `quartz_job` RENAME TO `sys_quartz_job`;
ALTER TABLE `quartz_log` RENAME TO `sys_quartz_log`;
ALTER TABLE `users_roles` RENAME TO `sys_users_roles`;
ALTER TABLE `roles_menus` RENAME TO `sys_roles_menus`;
ALTER TABLE `roles_depts` RENAME TO `sys_roles_depts`;
/** 工具相关表 */
ALTER TABLE `alipay_config` RENAME TO `tool_alipay_config`;
ALTER TABLE `email_config` RENAME TO `tool_email_config`;
ALTER TABLE `local_storage` RENAME TO `tool_local_storage`;
ALTER TABLE `picture` RENAME TO `tool_picture`;
ALTER TABLE `qiniu_config` RENAME TO `tool_qiniu_config`;
ALTER TABLE `qiniu_content` RENAME TO `tool_qiniu_content`;
/** 代码生成器相关 */
ALTER TABLE `column_config` RENAME TO `code_column_config`;
ALTER TABLE `gen_config` RENAME TO `code_gen_config`;