Commit 216bd5e4 authored by 赵啸非's avatar 赵啸非

初始化提交

parent fa1f6f17
package com.mortals.xhx.common.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.BitSet;
/**
* @author 自动识别文件编码格式
*/
public class EncodeUtil {
private static Logger logger = LoggerFactory.getLogger(EncodeUtil.class);
private static int BYTE_SIZE = 8;
public static String CODE_UTF8 = "UTF-8";
public static String CODE_UTF8_BOM = "UTF-8_BOM";
public static String CODE_GBK = "GBK";
/**
* 通过文件全名称获取编码集名称
*
* @param fullFileName
* @param ignoreBom
* @return
* @throws Exception
*/
public static String getEncode(String fullFileName, boolean ignoreBom) throws Exception {
logger.debug("fullFileName ; {}", fullFileName);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fullFileName));
return getEncode(bis, ignoreBom);
}
/**
* 通过文件缓存流获取编码集名称,文件流必须为未曾
*
* @param bis
* @param ignoreBom 是否忽略utf-8 bom
* @return
* @throws Exception
*/
public static String getEncode(BufferedInputStream bis, boolean ignoreBom) throws Exception {
bis.mark(0);
String encodeType = "未识别";
byte[] head = new byte[3];
bis.read(head);
if (head[0] == -1 && head[1] == -2) {
encodeType = "UTF-16";
} else if (head[0] == -2 && head[1] == -1) {
encodeType = "Unicode";
} else if (head[0] == -17 && head[1] == -69 && head[2] == -65) { //带BOM
if (ignoreBom) {
encodeType = CODE_UTF8;
} else {
encodeType = CODE_UTF8_BOM;
}
} else if ("Unicode".equals(encodeType)) {
encodeType = "UTF-16";
} else if (isUTF8(bis)) {
encodeType = CODE_UTF8;
} else {
encodeType = CODE_GBK;
}
logger.info("result encode type : " + encodeType);
return encodeType;
}
/**
* 是否是无BOM的UTF8格式,不判断常规场景,只区分无BOM UTF8和GBK
*
* @param bis
* @return
*/
private static boolean isUTF8(BufferedInputStream bis) throws Exception {
bis.reset();
//读取第一个字节
int code = bis.read();
do {
BitSet bitSet = convert2BitSet(code);
//判断是否为单字节
if (bitSet.get(0)) {//多字节时,再读取N个字节
if (!checkMultiByte(bis, bitSet)) {//未检测通过,直接返回
return false;
}
} else {
//单字节时什么都不用做,再次读取字节
}
code = bis.read();
} while (code != -1);
return true;
}
/**
* 检测多字节,判断是否为utf8,已经读取了一个字节
*
* @param bis
* @param bitSet
* @return
*/
private static boolean checkMultiByte(BufferedInputStream bis, BitSet bitSet) throws Exception {
int count = getCountOfSequential(bitSet);
byte[] bytes = new byte[count - 1];//已经读取了一个字节,不能再读取
bis.read(bytes);
for (byte b : bytes) {
if (!checkUtf8Byte(b)) {
return false;
}
}
return true;
}
/**
* 检测单字节,判断是否为utf8
*
* @param b
* @return
*/
private static boolean checkUtf8Byte(byte b) throws Exception {
BitSet bitSet = convert2BitSet(b);
return bitSet.get(0) && !bitSet.get(1);
}
/**
* 检测bitSet中从开始有多少个连续的1
*
* @param bitSet
* @return
*/
private static int getCountOfSequential(BitSet bitSet) {
int count = 0;
for (int i = 0; i < BYTE_SIZE; i++) {
if (bitSet.get(i)) {
count++;
} else {
break;
}
}
return count;
}
/**
* 将整形转为BitSet
*
* @param code
* @return
*/
private static BitSet convert2BitSet(int code) {
BitSet bitSet = new BitSet(BYTE_SIZE);
for (int i = 0; i < BYTE_SIZE; i++) {
int tmp3 = code >> (BYTE_SIZE - i - 1);
int tmp2 = 0x1 & tmp3;
if (tmp2 == 1) {
bitSet.set(i);
}
}
return bitSet;
}
/**
* 将一指定编码的文件转换为另一编码的文件
*
* @param oldFullFileName
* @param oldCharsetName
* @param newFullFileName
* @param newCharsetName
*/
public static void convert(String oldFullFileName, String oldCharsetName, String newFullFileName, String newCharsetName) throws Exception {
logger.info("the old file name is : {}, The oldCharsetName is : {}", oldFullFileName, oldCharsetName);
logger.info("the new file name is : {}, The newCharsetName is : {}", newFullFileName, newCharsetName);
StringBuffer content = new StringBuffer();
BufferedReader bin = new BufferedReader(new InputStreamReader(new FileInputStream(oldFullFileName), oldCharsetName));
String line;
while ((line = bin.readLine()) != null) {
content.append(line);
content.append(System.getProperty("line.separator"));
}
newFullFileName = newFullFileName.replace("\\", "/");
File dir = new File(newFullFileName.substring(0, newFullFileName.lastIndexOf("/")));
if (!dir.exists()) {
dir.mkdirs();
}
Writer out = new OutputStreamWriter(new FileOutputStream(newFullFileName), newCharsetName);
out.write(content.toString());
}
}
package com.mortals.xhx.module.setup.mode;
import lombok.Data;
@Data
public class ResourceSetupEntity {
private static final long serialVersionUID = 1L;
/**
* 资源文件地址
*/
private String resourceFilePath;
}
\ No newline at end of file
package com.mortals.xhx.module.setup.web;
import cn.hutool.core.io.FileUtil;
import cn.hutool.db.ds.simple.SimpleDataSource;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseController;
import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.module.setup.mode.DbSetupEntity;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.jdbc.ScriptRunner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.support.EncodedResource;
......@@ -20,8 +16,6 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.sql.DataSource;
import java.io.*;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
......@@ -33,17 +27,15 @@ import static com.mortals.framework.web.BaseController.*;
@RestController
@RequestMapping("db")
@Slf4j
public class SetupController {
public class SetupDbController {
@Autowired
private UploadService uploadService;
@PostMapping("/initDb")
@PostMapping("/init")
@UnAuth
public String initDb(@RequestBody DbSetupEntity dbSetupEntity) {
JSONObject ret = new JSONObject();
String busiDesc = "导入数据库";
int code = VALUE_RESULT_SUCCESS;
try {
if (ObjectUtils.isEmpty(dbSetupEntity.getDbFilePath())) {
......@@ -52,11 +44,9 @@ public class SetupController {
if (ObjectUtils.isEmpty(dbSetupEntity.getDbName())) {
throw new AppException("请输入数据库名称");
}
//判断数据库是否已经存在 如果不存在 则链接默认库mysql 再初始化创建库
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setUrl("jdbc:mysql://" + dbSetupEntity.getDbHost() + ":" + dbSetupEntity.getDbPort()+"?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong");
druidDataSource.setUrl("jdbc:mysql://" + dbSetupEntity.getDbHost() + ":" + dbSetupEntity.getDbPort() + "?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong");
druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
druidDataSource.setUsername(dbSetupEntity.getUserName());
druidDataSource.setPassword(dbSetupEntity.getPassword());
......@@ -66,25 +56,16 @@ public class SetupController {
connection.setCatalog(dbSetupEntity.getDbName());
/* druidDataSource = new DruidDataSource();
druidDataSource.setUrl("jdbc:mysql://" + dbSetupEntity.getDbHost() + ":" + dbSetupEntity.getDbPort()
+ "/" + dbSetupEntity.getDbName() + "?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong");
druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
druidDataSource.setUsername(dbSetupEntity.getUserName());
druidDataSource.setPassword(dbSetupEntity.getPassword());
connection = druidDataSource.getConnection();*/
FileSystemResource rc = new FileSystemResource(uploadService.getFilePath(dbSetupEntity.getDbFilePath()));
EncodedResource er = new EncodedResource(rc, "UTF-8");
ScriptUtils.executeSqlScript(connection, er);
ret.put(KEY_RESULT_MSG, "初始化数据库成功!");
} catch (Exception e) {
code = VALUE_RESULT_FAILURE;
log.error("导入数据库失败", e);
ret.put(KEY_RESULT_MSG, e.getMessage());
//doException(request, busiDesc, model, e);
}
ret.put(KEY_RESULT_CODE, code);
return ret.toJSONString();
......@@ -107,8 +88,6 @@ public class SetupController {
//先链接已经存在的数据库
String filepath = uploadService.saveFileUpload(file, "/file/fileupload", null);
//CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
DruidDataSource druidDataSource = new DruidDataSource();
......@@ -119,16 +98,9 @@ public class SetupController {
druidDataSource.setPassword("12345678");
DruidPooledConnection connection = druidDataSource.getConnection();
boolean xhx = databaseExists(connection, "base-platform");
log.info("xhx数据库是否存在:{}", xhx);
/*
FileSystemResource rc = new FileSystemResource(uploadService.getFilePath(filepath));
EncodedResource er = new EncodedResource(rc, "UTF-8");
ScriptUtils.executeSqlScript(connection, er);
*/
} catch (Exception e) {
code = VALUE_RESULT_FAILURE;
log.error("导入数据库失败", e);
......@@ -139,7 +111,7 @@ public class SetupController {
}
//检查bank数据库是否存在
private static boolean databaseExists(Connection conn, String dbName) throws SQLException {
private boolean databaseExists(Connection conn, String dbName) throws SQLException {
ResultSet resultSet = conn.getMetaData().getCatalogs();
while (resultSet.next()) {
if (dbName.equals(resultSet.getString(1))) {
......@@ -150,7 +122,7 @@ public class SetupController {
}
//创建数据库
private void createDatabase(Connection conn, String dbName) throws SQLException {
private boolean createDatabase(Connection conn, String dbName) throws SQLException {
// 检查数据库是否已经存在
if (!databaseExists(conn, dbName)) {
Statement stmt = conn.createStatement();
......@@ -158,10 +130,11 @@ public class SetupController {
stmt.executeUpdate(sql);
log.info("成功创建数据库");
stmt.close();
} else {
log.info("数据库已经存在,无需创建");
}
return true;
}
log.info("数据库已经存在,无需创建与初始化");
return false;
}
}
\ No newline at end of file
package com.mortals.xhx.module.setup.web;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.exception.AppException;
import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.utils.EncodeUtil;
import com.mortals.xhx.module.setup.mode.DbSetupEntity;
import com.mortals.xhx.module.setup.mode.ResourceSetupEntity;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.jdbc.datasource.init.ScriptUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.nio.charset.Charset;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import static com.mortals.framework.web.BaseController.*;
@RestController
@RequestMapping("resource")
@Slf4j
public class SetupResourceController {
@Value("${upload.path}")
@Getter
private String filePath;
@Autowired
private UploadService uploadService;
@PostMapping("/init")
@UnAuth
public String initDb(@RequestBody ResourceSetupEntity resourceSetupEntity) {
JSONObject ret = new JSONObject();
int code = VALUE_RESULT_SUCCESS;
try {
if (ObjectUtils.isEmpty(resourceSetupEntity.getResourceFilePath())) {
throw new AppException("请上传资源文件");
}
String targetFilePath = uploadService.getFilePath(resourceSetupEntity.getResourceFilePath());
if (FileUtil.isEmpty(new File(targetFilePath))) {
throw new AppException("部署文件不存在!");
}
if (!FileUtil.getSuffix(resourceSetupEntity.getResourceFilePath()).equals("zip")) {
throw new AppException("部署只支持zip文件!");
}
if(!FileUtil.isDirectory(filePath)){
//部署路径是否存在 如果不存在 创建目录,
FileUtil.mkdir(filePath);
}
String fileEncode = "UTF-8";
try {
fileEncode = EncodeUtil.getEncode(targetFilePath, true);
} catch (Exception e) {
log.error("异常", e);
}
ZipUtil.unzip(targetFilePath, filePath, Charset.forName(fileEncode));
ret.put(KEY_RESULT_MSG, "初始化资源文件成功!");
} catch (Exception e) {
code = VALUE_RESULT_FAILURE;
log.error("导入资源文件失败", e);
ret.put(KEY_RESULT_MSG, e.getMessage());
}
ret.put(KEY_RESULT_CODE, code);
return ret.toJSONString();
}
//检查bank数据库是否存在
private boolean databaseExists(Connection conn, String dbName) throws SQLException {
ResultSet resultSet = conn.getMetaData().getCatalogs();
while (resultSet.next()) {
if (dbName.equals(resultSet.getString(1))) {
return true;
}
}
return false;
}
public static void main(String[] args) {
System.out.println(FileUtil.isDirectory("E://pic"));
}
}
\ No newline at end of file
-- ----------------------------
-- Table structure for mortals_xhx_idgenerator
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_idgenerator`;
CREATE TABLE `mortals_xhx_idgenerator` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`idType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'id类型',
`idMaxValue` bigint(20) UNSIGNED NOT NULL COMMENT 'id值',
`remark` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '备注',
`versionNum` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '版本号,默认0',
`gmtModify` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '最后修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '主键Id生成器' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of mortals_xhx_idgenerator
-- ----------------------------
INSERT INTO `mortals_xhx_idgenerator` VALUES (1, 'INFO_VERSION_KEY', 1, '基础信息版本号生成因子', 0, '2019-04-18 18:00:00');
-- ----------------------------
-- Table structure for mortals_xhx_menu
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_menu`;
CREATE TABLE `mortals_xhx_menu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID,主键,自增长',
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单名称',
`url` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '连接地址',
`parentId` bigint(20) NULL DEFAULT NULL COMMENT '父菜单ID,一级菜单的该字段值为-1',
`orderId` int(11) NULL DEFAULT NULL COMMENT '排序编号',
`status` tinyint(2) NULL DEFAULT 1 COMMENT '菜单状态,0:禁用,1:启用,默认1',
`linkType` tinyint(2) NULL DEFAULT 0 COMMENT '链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0',
`groupId` int(11) NULL DEFAULT 1 COMMENT '分组编号,使用菜单分隔符按该值分隔,默认1',
`groupName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`imgPath` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '主菜单图标,主菜单图标的css样式名',
`buttonImgPath` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '按钮图标,按钮图标的css样式名',
`imgCommPath` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '常用菜单图标,常用菜单图标的css样式名',
`commMenu` tinyint(2) NULL DEFAULT 0 COMMENT '是否常用菜单,0:非常用,1:常用,默认0',
`menuType` tinyint(2) NULL DEFAULT 0 COMMENT '菜单类型,0:主菜单,1:非主菜单(功能操作组),默认0',
`authType` tinyint(2) NULL DEFAULT 3 COMMENT '权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) NULL DEFAULT NULL COMMENT '创建用户',
`createUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建用户名称',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '菜单信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of mortals_xhx_menu
-- ----------------------------
INSERT INTO `mortals_xhx_menu` VALUES (91, '系统管理', '', 0, 9999, 1, 0, 0, NULL, 'setting', '', '', 0, 0, 3, NULL, NULL, '');
INSERT INTO `mortals_xhx_menu` VALUES (108, '区域信息', '/area/list', 91, 65, 1, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 3, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_menu` VALUES (9001, '主页', '/index', 90, 10, 1, 0, 1, NULL, '', NULL, NULL, 0, 0, 3, '2019-02-19 16:08:09', 1, 'admin');
INSERT INTO `mortals_xhx_menu` VALUES (9101, '用户信息', '/user/list', 91, 10, 1, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 3, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_menu` VALUES (9102, '角色信息', '/role/list', 91, 20, 1, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 3, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_menu` VALUES (9103, '资源信息', '/resource/list', 91, 30, 1, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 3, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_menu` VALUES (9104, '菜单信息', '/menu/list', 91, 40, 1, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 3, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_menu` VALUES (9105, '参数信息', '/param/list', 91, 50, 1, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 3, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_menu` VALUES (9106, '任务信息', '/task/list', 91, 60, 1, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 3, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_menu` VALUES (9107, '操作日志', '/oper/log/list', 91, 70, 1, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 3, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_menu` VALUES (9133, '站点管理', '/site/list', 91, NULL, 1, 0, 1, NULL, 'view', NULL, NULL, 0, 0, 3, '2021-11-03 21:51:48', 1, '系统管理员');
-- ----------------------------
-- Table structure for mortals_xhx_oper_log
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_oper_log`;
CREATE TABLE `mortals_xhx_oper_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`platformMark` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '平台标识',
`userId` bigint(20) NULL DEFAULT NULL COMMENT '用户id',
`userName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名称',
`loginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户登录名',
`requestUrl` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求地址',
`content` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作内容,记录操作具体信息,如修改前修改或的数据',
`ip` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作IP地址',
`logDate` datetime(0) NULL DEFAULT NULL COMMENT '操作时间',
`operType` tinyint(2) NULL DEFAULT NULL COMMENT '操作类型,0:新增,1:修改,2:删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '操作日志' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for mortals_xhx_param
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_param`;
CREATE TABLE `mortals_xhx_param` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数名称',
`firstOrganize` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '一级组织,如:平台配置',
`secondOrganize` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '二级组织,如:基础配置',
`paramKey` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数键,全局唯一',
`paramValue` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数值',
`validStatus` tinyint(2) NULL DEFAULT 1 COMMENT '参数有效状态,0:禁用,1:启用,默认1',
`modStatus` tinyint(2) NULL DEFAULT 4 COMMENT '参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4',
`displayType` tinyint(2) NULL DEFAULT 0 COMMENT '展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0',
`remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) NULL DEFAULT NULL COMMENT '创建用户',
`createUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建用户名称',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '参数信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for mortals_xhx_resource
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_resource`;
CREATE TABLE `mortals_xhx_resource` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID,主键,自增长',
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
`url` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '连接地址,多个地址以逗号分隔',
`authType` tinyint(2) NULL DEFAULT 3 COMMENT '权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3',
`sourceType` tinyint(2) NULL DEFAULT 0 COMMENT '资源类型,0:系统资源,1:开放资源,默认0',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) NULL DEFAULT NULL COMMENT '创建用户',
`createUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建用户名称',
`userType` tinyint(2) NULL DEFAULT NULL COMMENT '用户类型,0:系统用户 1:代理商用户 2:品牌商用户',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '资源信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of mortals_xhx_resource
-- ----------------------------
INSERT INTO `mortals_xhx_resource` VALUES (101001, '系统管理-菜单管理-查看', '/menu/list,/menu/view', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101002, '系统管理-菜单管理-维护', '/menu/add,/menu/edit,/menu/delete,/menu/save', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101003, '系统管理-角色管理-查看', '/role/list,/role/view', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101004, '系统管理-角色管理-维护', '/role/add,/role/edit,/role/save,/role/delete,/role/auth/list,/role/auth/distributionSource,/role/user/distributionUser,/user/list,/role/user/list,/role/user/distributionUser', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101005, '系统管理-用户管理-查看', '/user/list,/user/view,/role/roleNameByUserId', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101006, '系统管理-用户管理-维护', '/user/add,/user/edit,/user/delete,/user/save', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101007, '系统管理-任务设置-查看', '/task/list,/task/view', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101008, '系统管理-任务设置-维护', '/task/add,/task/edit,/task/delete,/task/save', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101009, '系统管理-参数设置-查看', '/param/list,/param/view', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101010, '系统管理-参数设置-维护', '/param/add,/param/edit,/param/delete,/param/save', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101011, '系统管理-资源管理-查看', '/resource/list,/resource/view', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101012, '系统管理-资源管理-维护', '/resource/add,/resource/edit,/resource/delete,/resource/save', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101013, '系统管理-操作日志-查看', '/oper/log/list,/oper/log/view', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101014, '系统管理-区域管理-查看', '/area/list,/area/view', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (101015, '系统管理-区域管理-维护', '/area/add,/area/edit,/area/delete,/area/save', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (150000, '控制台-主页', '/index', 3, 0, '2019-06-01 13:04:18', 1, '系统管理员', NULL);
INSERT INTO `mortals_xhx_resource` VALUES (150001, '公共资源', '/area/list', 2, 0, '2019-06-01 23:56:55', 1, '系统管理员', NULL);
-- ----------------------------
-- Table structure for mortals_xhx_role
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_role`;
CREATE TABLE `mortals_xhx_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色名称',
`remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`roleType` tinyint(2) NULL DEFAULT 2 COMMENT '角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2',
`customerId` bigint(20) NULL DEFAULT NULL COMMENT '归属客户ID',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) NULL DEFAULT NULL COMMENT '创建用户',
`createUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建用户名称',
`userType` tinyint(2) NULL DEFAULT NULL COMMENT '用户类型,0:系统用户 1:代理商用户 2:品牌商用户',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of mortals_xhx_role
-- ----------------------------
INSERT INTO `mortals_xhx_role` VALUES (1, '管理员', '类似admin', 0, NULL, '2019-03-04 11:41:06', 1, 'admin', NULL);
-- ----------------------------
-- Table structure for mortals_xhx_role_auth
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_role_auth`;
CREATE TABLE `mortals_xhx_role_auth` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`roleId` bigint(20) NULL DEFAULT NULL COMMENT '角色ID',
`resourceId` bigint(20) NULL DEFAULT NULL COMMENT '资源ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色资源权限' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for mortals_xhx_role_user
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_role_user`;
CREATE TABLE `mortals_xhx_role_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`roleId` bigint(20) NULL DEFAULT NULL COMMENT '角色ID',
`userId` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色用户' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for mortals_xhx_table_index
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_table_index`;
CREATE TABLE `mortals_xhx_table_index` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID,主键,自增长',
`tableName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '表名称',
`tableMark` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '表标识',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '分表索引信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for mortals_xhx_task
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_task`;
CREATE TABLE `mortals_xhx_task` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务名称',
`taskKey` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务关键字,区分任务执行流程',
`status` tinyint(2) NULL DEFAULT 0 COMMENT '任务状态,0:未启动,1:执行中,默认0',
`excuteService` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务执行服务',
`excuteParam` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '任务执行参数',
`excuteHost` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务执行主机,为空表示不限制任务的执行主机,多个用逗号分隔',
`excuteStrategy` tinyint(2) NULL DEFAULT 1 COMMENT '执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1',
`excuteDate` int(11) NULL DEFAULT 0 COMMENT '执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0',
`excuteTime` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '00' COMMENT '执行时间,格式:HH:mm,默认:00:00',
`remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`lastExcuteHost` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最后执行主机',
`lastExcuteTime` datetime(0) NULL DEFAULT NULL COMMENT '最后执行时间',
`interimExcuteStatus` tinyint(2) NULL DEFAULT 0 COMMENT '临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) NULL DEFAULT NULL COMMENT '创建用户',
`createUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建用户名称',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '任务信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of mortals_xhx_task
-- ----------------------------
INSERT INTO `mortals_xhx_task` VALUES (2, '分表创建任务', 'tableIndexService', 0, 'tableIndexService', NULL, NULL, 1, 0, '00:30', NULL, '192.168.1.106', '2021-08-18 00:30:01', 0, '2021-08-12 11:07:23', 1, '系统管理员');
-- ----------------------------
-- Table structure for mortals_xhx_uploadfile
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_uploadfile`;
CREATE TABLE `mortals_xhx_uploadfile` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID,主键,自增长',
`fileName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件名称',
`filePath` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件路径',
`fileType` tinyint(2) NULL DEFAULT NULL COMMENT '文件类型,1 excel ,2 img,3 zip, 4 pdf',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`createUser` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建用户',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '上传文件' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for mortals_xhx_user
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_user`;
CREATE TABLE `mortals_xhx_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键,自增长',
`loginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '登录名',
`loginPwd` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '登录密码,使用md5双次加密',
`loginPwd1` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最近一次使用密码,使用md5双次加密',
`loginPwd2` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最近二次使用密码,使用md5双次加密',
`loginPwd3` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最近三次使用密码,使用md5双次加密',
`loginLimitAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录',
`realName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',
`mobile` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户手机号',
`phone` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户联系电话',
`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户邮箱',
`qq` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'QQ号码',
`userType` tinyint(2) NULL DEFAULT NULL COMMENT '用户类型,0:系统用户 1:普通用户 2:工作人员,默认2',
`siteId` bigint(20) NULL DEFAULT 0 COMMENT '站点id',
`status` tinyint(2) NULL DEFAULT 1 COMMENT '用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1',
`customerId` bigint(20) NULL DEFAULT NULL COMMENT '客户ID',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) NULL DEFAULT NULL COMMENT '创建用户',
`createUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建用户名称',
`lastLoginTime` datetime(0) NULL DEFAULT NULL COMMENT '最后一次登录时间',
`lastLoginAddress` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最后一次登录地址',
`lastModPwdTime` datetime(0) NULL DEFAULT NULL COMMENT '最后修改密码时间',
`lastModPwdAddr` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最后修改密码地址',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `idx_loginName`(`loginName`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = ujis COLLATE = ujis_japanese_ci COMMENT = '用户信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of mortals_xhx_user
-- ----------------------------
INSERT INTO `mortals_xhx_user` VALUES (1, 'admin', '43442676c74ae59f219c2d87fd6bad52', NULL, NULL, NULL, NULL, '系统管理员', '13808095770', NULL, NULL, NULL, 1, 7, 1, 5, NULL, NULL, NULL, '2020-10-26 15:08:30', '127.0.0.1', NULL, NULL);
-- ----------------------------
-- Table structure for mortals_xhx_valid_code
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_valid_code`;
CREATE TABLE `mortals_xhx_valid_code` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID,主键,自增长',
`code` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '验证码',
`url` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '校验地址,email校验使用',
`mobile` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '校验手机号',
`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '校验邮箱',
`type` tinyint(2) NULL DEFAULT 0 COMMENT '校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0',
`sessionId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会话ID',
`ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'IP地址',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`lapseTime` datetime(0) NULL DEFAULT NULL COMMENT '失效时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '验证码信息' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
......@@ -7,15 +7,15 @@ Content-Disposition: form-data; name="file"; filename="file.sql"
< ./base.sql
--WebAppBoundary--
###上传数据库脚本文件
###上传资源文件
POST http://localhost:8081/setup/file/commonupload
Content-Type: multipart/form-data; boundary=WebAppBoundary
--WebAppBoundary
Content-Disposition: form-data; name="file"; filename="file.sql"
Content-Disposition: form-data; name="file"; filename="file.zip"
< ./base.sql
< ./file.zip
--WebAppBoundary--
###测试导入sql数据库文件
......@@ -30,3 +30,12 @@ Content-Type: application/json
"userName": "root",
"password": "12345678"
}
###测试导入资源文件
POST http://localhost:8081/setup/resource/init
Content-Type: application/json
{
"resourceFilePath": "/file/fileupload/1725938407302.zip"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment