fix: 更新获取IP地址
This commit is contained in:
parent
48b489f4e5
commit
7fedf7deee
|
@ -6,7 +6,7 @@ import cn.bunny.common.generator.utils.GeneratorCodeUtils;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersAddDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersAddDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersUpdateDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersUpdateDto;
|
||||||
import cn.bunny.dao.entity.schedulers.Schedulers;
|
import cn.bunny.dao.entity.schedulers.ViewSchedulers;
|
||||||
import cn.bunny.dao.vo.schedulers.SchedulersVo;
|
import cn.bunny.dao.vo.schedulers.SchedulersVo;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.google.common.base.CaseFormat;
|
import com.google.common.base.CaseFormat;
|
||||||
|
@ -51,7 +51,7 @@ public class WebGeneratorCode {
|
||||||
public static String resourceMapperPath = "D:\\Project\\web\\PC\\auth\\auth-server-java\\service\\src\\main\\resources\\mapper\\";
|
public static String resourceMapperPath = "D:\\Project\\web\\PC\\auth\\auth-server-java\\service\\src\\main\\resources\\mapper\\";
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
Class<?> originalClass = Schedulers.class;
|
Class<?> originalClass = ViewSchedulers.class;
|
||||||
Class<?> dtoClass = SchedulersDto.class;
|
Class<?> dtoClass = SchedulersDto.class;
|
||||||
Class<?> addDtoClass = SchedulersAddDto.class;
|
Class<?> addDtoClass = SchedulersAddDto.class;
|
||||||
Class<?> updateDtoClass = SchedulersUpdateDto.class;
|
Class<?> updateDtoClass = SchedulersUpdateDto.class;
|
||||||
|
|
|
@ -1,79 +0,0 @@
|
||||||
package cn.bunny.common.service.utils;
|
|
||||||
|
|
||||||
import jakarta.annotation.PostConstruct;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.lionsoul.ip2region.xdb.Searcher;
|
|
||||||
import org.springframework.core.io.ClassPathResource;
|
|
||||||
import org.springframework.util.FileCopyUtils;
|
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
public class IpUtil {
|
|
||||||
private static Searcher searcher;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 判断是否为合法 IP
|
|
||||||
*/
|
|
||||||
public static boolean checkIp(String ipAddress) {
|
|
||||||
String ip = "([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";
|
|
||||||
Pattern pattern = Pattern.compile(ip);
|
|
||||||
Matcher matcher = pattern.matcher(ipAddress);
|
|
||||||
return matcher.matches();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 在服务启动时,将 ip2region 加载到内存中
|
|
||||||
*/
|
|
||||||
@PostConstruct
|
|
||||||
private static void initIp2Region() {
|
|
||||||
try {
|
|
||||||
InputStream inputStream = new ClassPathResource("/ipdb/ip2region.xdb").getInputStream();
|
|
||||||
byte[] bytes = FileCopyUtils.copyToByteArray(inputStream);
|
|
||||||
searcher = Searcher.newWithBuffer(bytes);
|
|
||||||
} catch (Exception exception) {
|
|
||||||
log.error(exception.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取 ip 所属地址
|
|
||||||
*
|
|
||||||
* @param ip ip
|
|
||||||
*/
|
|
||||||
public static String getIpRegion(String ip) {
|
|
||||||
if (ip.equals("0:0:0:0:0:0:0:1")) ip = "127.0.0.1";
|
|
||||||
boolean isIp = checkIp(ip);
|
|
||||||
if (isIp) {
|
|
||||||
initIp2Region();
|
|
||||||
try {
|
|
||||||
// searchIpInfo 的数据格式: 国家|区域|省份|城市|ISP
|
|
||||||
String searchIpInfo = searcher.search(ip);
|
|
||||||
String[] splitIpInfo = searchIpInfo.split("\\|");
|
|
||||||
if (splitIpInfo.length > 0) {
|
|
||||||
if ("中国".equals(splitIpInfo[0])) {
|
|
||||||
// 国内属地返回省份
|
|
||||||
return splitIpInfo[2];
|
|
||||||
} else if ("0".equals(splitIpInfo[0])) {
|
|
||||||
if ("内网IP".equals(splitIpInfo[4])) {
|
|
||||||
// 内网 IP
|
|
||||||
return splitIpInfo[4];
|
|
||||||
} else {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 国外属地返回国家
|
|
||||||
return splitIpInfo[0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception exception) {
|
|
||||||
log.error(exception.getMessage());
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
} else {
|
|
||||||
throw new IllegalArgumentException("非法的IP地址");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,7 @@
|
||||||
package cn.bunny.common.service.utils.ip;
|
package cn.bunny.common.service.utils.ip;
|
||||||
|
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.lionsoul.ip2region.xdb.Searcher;
|
import org.lionsoul.ip2region.xdb.Searcher;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
|
@ -9,6 +10,7 @@ import org.springframework.web.context.request.RequestContextHolder;
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.net.InetAddress;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@ -87,13 +89,43 @@ public class IpUtil {
|
||||||
* @return IP地址
|
* @return IP地址
|
||||||
*/
|
*/
|
||||||
public static IpEntity getCurrentUserIpAddress() {
|
public static IpEntity getCurrentUserIpAddress() {
|
||||||
// 获取用户IP地址
|
|
||||||
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
String remoteAddr = requestAttributes != null ? requestAttributes.getRequest().getRemoteAddr() : "0:0:0:0:0:0:0:1";
|
String remoteAddr = requestAttributes != null ? getIpAddr(requestAttributes.getRequest()) : "0:0:0:0:0:0:0:1";
|
||||||
String ipRegion = IpUtil.getIpRegion(remoteAddr);
|
String ipRegion = IpUtil.getIpRegion(remoteAddr);
|
||||||
return IpEntity.builder()
|
return IpEntity.builder()
|
||||||
.remoteAddr(remoteAddr)
|
.remoteAddr(remoteAddr)
|
||||||
.ipRegion(ipRegion)
|
.ipRegion(ipRegion)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* * 获取IP地址
|
||||||
|
*
|
||||||
|
* @param request 请求头
|
||||||
|
*/
|
||||||
|
public static String getIpAddr(HttpServletRequest request) {
|
||||||
|
String ipAddress;
|
||||||
|
try {
|
||||||
|
ipAddress = request.getHeader("x-forwarded-for");
|
||||||
|
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||||
|
ipAddress = request.getHeader("Proxy-Client-IP");
|
||||||
|
}
|
||||||
|
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||||
|
ipAddress = request.getHeader("WL-Proxy-Client-IP");
|
||||||
|
}
|
||||||
|
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||||
|
ipAddress = request.getRemoteAddr();
|
||||||
|
if (ipAddress.equals("127.0.0.1")) ipAddress = InetAddress.getLocalHost().getHostAddress();
|
||||||
|
}
|
||||||
|
// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
|
||||||
|
if (ipAddress != null && ipAddress.length() > 15) {
|
||||||
|
if (ipAddress.indexOf(",") > 0) {
|
||||||
|
ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
ipAddress = null;
|
||||||
|
}
|
||||||
|
return ipAddress;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,9 +19,9 @@ import java.io.Serializable;
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@TableName("v_schedulers")
|
@TableName("qrtz_view_schedulers")
|
||||||
@Schema(name = "Schedulers对象", title = "Schedulers视图", description = "Schedulers视图")
|
@Schema(name = "Schedulers对象", title = "Schedulers视图", description = "Schedulers视图")
|
||||||
public class Schedulers implements Serializable {
|
public class ViewSchedulers implements Serializable {
|
||||||
|
|
||||||
@Schema(name = "jobName", title = "任务名称")
|
@Schema(name = "jobName", title = "任务名称")
|
||||||
private String jobName;
|
private String jobName;
|
|
@ -0,0 +1,497 @@
|
||||||
|
/*
|
||||||
|
Navicat Premium Dump SQL
|
||||||
|
|
||||||
|
Source Server : MySQL(自己使用)
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80033 (8.0.33)
|
||||||
|
Source Host : 192.168.3.98:3304
|
||||||
|
Source Schema : auth_admin
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80033 (8.0.33)
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 15/10/2024 15:22:47
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_BLOB_TRIGGERS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_BLOB_TRIGGERS`;
|
||||||
|
CREATE TABLE `QRTZ_BLOB_TRIGGERS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`BLOB_DATA` blob NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
|
||||||
|
INDEX `SCHED_NAME`(`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC) USING BTREE,
|
||||||
|
CONSTRAINT `QRTZ_BLOB_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_CALENDARS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_CALENDARS`;
|
||||||
|
CREATE TABLE `QRTZ_CALENDARS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`CALENDAR` blob NOT NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_CRON_TRIGGERS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_CRON_TRIGGERS`;
|
||||||
|
CREATE TABLE `QRTZ_CRON_TRIGGERS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`CRON_EXPRESSION` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
|
||||||
|
CONSTRAINT `QRTZ_CRON_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_FIRED_TRIGGERS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_FIRED_TRIGGERS`;
|
||||||
|
CREATE TABLE `QRTZ_FIRED_TRIGGERS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`FIRED_TIME` bigint NOT NULL,
|
||||||
|
`SCHED_TIME` bigint NOT NULL,
|
||||||
|
`PRIORITY` int NOT NULL,
|
||||||
|
`STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME` ASC, `INSTANCE_NAME` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME` ASC, `INSTANCE_NAME` ASC, `REQUESTS_RECOVERY` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME` ASC, `JOB_GROUP` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_JOB_DETAILS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_JOB_DETAILS`;
|
||||||
|
CREATE TABLE `QRTZ_JOB_DETAILS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`JOB_DATA` blob NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME` ASC, `REQUESTS_RECOVERY` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME` ASC, `JOB_GROUP` ASC) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_LOCKS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_LOCKS`;
|
||||||
|
CREATE TABLE `QRTZ_LOCKS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_PAUSED_TRIGGER_GRPS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_PAUSED_TRIGGER_GRPS`;
|
||||||
|
CREATE TABLE `QRTZ_PAUSED_TRIGGER_GRPS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_SCHEDULER_STATE
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_SCHEDULER_STATE`;
|
||||||
|
CREATE TABLE `QRTZ_SCHEDULER_STATE` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`LAST_CHECKIN_TIME` bigint NOT NULL,
|
||||||
|
`CHECKIN_INTERVAL` bigint NOT NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_SIMPLE_TRIGGERS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_SIMPLE_TRIGGERS`;
|
||||||
|
CREATE TABLE `QRTZ_SIMPLE_TRIGGERS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`REPEAT_COUNT` bigint NOT NULL,
|
||||||
|
`REPEAT_INTERVAL` bigint NOT NULL,
|
||||||
|
`TIMES_TRIGGERED` bigint NOT NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
|
||||||
|
CONSTRAINT `QRTZ_SIMPLE_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_SIMPROP_TRIGGERS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_SIMPROP_TRIGGERS`;
|
||||||
|
CREATE TABLE `QRTZ_SIMPROP_TRIGGERS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`INT_PROP_1` int NULL DEFAULT NULL,
|
||||||
|
`INT_PROP_2` int NULL DEFAULT NULL,
|
||||||
|
`LONG_PROP_1` bigint NULL DEFAULT NULL,
|
||||||
|
`LONG_PROP_2` bigint NULL DEFAULT NULL,
|
||||||
|
`DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL,
|
||||||
|
`DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL,
|
||||||
|
`BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
|
||||||
|
CONSTRAINT `QRTZ_SIMPROP_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for QRTZ_TRIGGERS
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `QRTZ_TRIGGERS`;
|
||||||
|
CREATE TABLE `QRTZ_TRIGGERS` (
|
||||||
|
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`NEXT_FIRE_TIME` bigint NULL DEFAULT NULL,
|
||||||
|
`PREV_FIRE_TIME` bigint NULL DEFAULT NULL,
|
||||||
|
`PRIORITY` int NULL DEFAULT NULL,
|
||||||
|
`TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`START_TIME` bigint NOT NULL,
|
||||||
|
`END_TIME` bigint NULL DEFAULT NULL,
|
||||||
|
`CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`MISFIRE_INSTR` smallint NULL DEFAULT NULL,
|
||||||
|
`JOB_DATA` blob NULL,
|
||||||
|
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_J`(`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME` ASC, `JOB_GROUP` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_C`(`SCHED_NAME` ASC, `CALENDAR_NAME` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_G`(`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME` ASC, `TRIGGER_STATE` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME` ASC, `NEXT_FIRE_TIME` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME` ASC, `TRIGGER_STATE` ASC, `NEXT_FIRE_TIME` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_STATE` ASC) USING BTREE,
|
||||||
|
INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC) USING BTREE,
|
||||||
|
CONSTRAINT `QRTZ_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_dept
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_dept`;
|
||||||
|
CREATE TABLE `sys_dept` (
|
||||||
|
`id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '唯一id',
|
||||||
|
`parent_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '父级id',
|
||||||
|
`manager` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '管理者id',
|
||||||
|
`dept_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '部门名称',
|
||||||
|
`summary` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '部门简介',
|
||||||
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NOT NULL COMMENT '创建用户',
|
||||||
|
`update_user` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_email_template
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_email_template`;
|
||||||
|
CREATE TABLE `sys_email_template` (
|
||||||
|
`id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '唯一id',
|
||||||
|
`template_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '模板名称',
|
||||||
|
`email_user` bigint NULL DEFAULT NULL COMMENT '关联邮件用户配置',
|
||||||
|
`subject` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '主题',
|
||||||
|
`body` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '邮件内容',
|
||||||
|
`type` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '邮件类型',
|
||||||
|
`is_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否默认',
|
||||||
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NOT NULL COMMENT '创建用户',
|
||||||
|
`update_user` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '邮件模板表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_email_users
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_email_users`;
|
||||||
|
CREATE TABLE `sys_email_users` (
|
||||||
|
`id` bigint NOT NULL,
|
||||||
|
`email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '邮箱',
|
||||||
|
`password` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '密码',
|
||||||
|
`host` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 'Host地址',
|
||||||
|
`port` int NOT NULL COMMENT '端口号',
|
||||||
|
`smtp_agreement` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '邮箱协议',
|
||||||
|
`is_default` tinyint NULL DEFAULT NULL COMMENT '是否为默认邮件',
|
||||||
|
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NOT NULL COMMENT '创建用户',
|
||||||
|
`update_user` bigint NULL DEFAULT NULL COMMENT '更新用户',
|
||||||
|
`is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否被删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '邮箱发送表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_files
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_files`;
|
||||||
|
CREATE TABLE `sys_files` (
|
||||||
|
`id` bigint NOT NULL COMMENT '文件的唯一标识符,自动递增',
|
||||||
|
`filename` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '文件的名称',
|
||||||
|
`filepath` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '文件在服务器上的存储路径',
|
||||||
|
`file_size` int NOT NULL COMMENT '文件的大小,以字节为单位',
|
||||||
|
`file_type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '文件的MIME类型',
|
||||||
|
`download_count` int NULL DEFAULT 0 COMMENT '下载数量',
|
||||||
|
`create_user` bigint NOT NULL COMMENT '创建用户',
|
||||||
|
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录文件最后修改的时间戳',
|
||||||
|
`update_user` int NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '文件是否被删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '系统文件表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_i18n
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_i18n`;
|
||||||
|
CREATE TABLE `sys_i18n` (
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`key_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '多语言key',
|
||||||
|
`translation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '多语言翻译名称',
|
||||||
|
`type_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '多语言类型',
|
||||||
|
`create_user` bigint NULL DEFAULT NULL COMMENT '创建用户',
|
||||||
|
`update_user` int NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录文件最后修改的时间戳',
|
||||||
|
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '文件是否被删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '多语言表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_i18n_type
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_i18n_type`;
|
||||||
|
CREATE TABLE `sys_i18n_type` (
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`type_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '多语言类型(比如zh,en)',
|
||||||
|
`summary` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称解释(比如中文,英文)',
|
||||||
|
`is_default` tinyint NULL DEFAULT NULL COMMENT '是否为默认语言',
|
||||||
|
`create_user` bigint NULL DEFAULT NULL COMMENT '创建用户',
|
||||||
|
`update_user` int NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录文件最后修改的时间戳',
|
||||||
|
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '文件是否被删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '多语言类型表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_menu_icon
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_menu_icon`;
|
||||||
|
CREATE TABLE `sys_menu_icon` (
|
||||||
|
`id` bigint NOT NULL,
|
||||||
|
`icon_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'icon类名',
|
||||||
|
`icon_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'icon 名称',
|
||||||
|
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NOT NULL COMMENT '创建用户',
|
||||||
|
`update_user` bigint NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`is_deleted` tinyint NULL DEFAULT 0 COMMENT '是否删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统菜单图标' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_power
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_power`;
|
||||||
|
CREATE TABLE `sys_power` (
|
||||||
|
`id` bigint NOT NULL COMMENT '权限ID',
|
||||||
|
`parent_id` bigint NULL DEFAULT NULL COMMENT '父级id',
|
||||||
|
`power_code` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '权限编码',
|
||||||
|
`power_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '权限名称',
|
||||||
|
`request_url` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '请求路径',
|
||||||
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NULL DEFAULT NULL COMMENT '创建用户',
|
||||||
|
`update_user` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '更新用户',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NULL DEFAULT 0 COMMENT '是否删除,0-未删除,1-已删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '系统权限表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_role
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_role`;
|
||||||
|
CREATE TABLE `sys_role` (
|
||||||
|
`id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
|
||||||
|
`role_code` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '角色代码',
|
||||||
|
`description` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '描述',
|
||||||
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NOT NULL COMMENT '创建用户',
|
||||||
|
`update_user` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '系统角色表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_role_power
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_role_power`;
|
||||||
|
CREATE TABLE `sys_role_power` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`role_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '角色id',
|
||||||
|
`power_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '权限id',
|
||||||
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NULL DEFAULT NULL COMMENT '创建用户',
|
||||||
|
`update_user` bigint NULL DEFAULT NULL COMMENT '更新用户',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NULL DEFAULT 0 COMMENT '是否删除,0-未删除,1-已删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '系统角色权限表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_router
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_router`;
|
||||||
|
CREATE TABLE `sys_router` (
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`parent_id` bigint NULL DEFAULT NULL COMMENT '父级id',
|
||||||
|
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '在项目中路径',
|
||||||
|
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件位置',
|
||||||
|
`frame_src` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'frame路径',
|
||||||
|
`route_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由名称',
|
||||||
|
`title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由title',
|
||||||
|
`menu_type` int NULL DEFAULT NULL COMMENT '菜单类型',
|
||||||
|
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标',
|
||||||
|
`router_rank` int NULL DEFAULT NULL COMMENT '等级',
|
||||||
|
`visible` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否显示 返给前端为 showLink',
|
||||||
|
`create_user` bigint NULL DEFAULT NULL COMMENT '创建用户',
|
||||||
|
`update_user` int NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录文件最后修改的时间戳',
|
||||||
|
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '文件是否被删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
INDEX `idx_id_parent_id`(`id` ASC, `parent_id` ASC) USING BTREE,
|
||||||
|
INDEX `idx_id`(`id` ASC) USING BTREE,
|
||||||
|
INDEX `idx_parent_id`(`parent_id` ASC) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统菜单表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_router_role
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_router_role`;
|
||||||
|
CREATE TABLE `sys_router_role` (
|
||||||
|
`id` bigint NOT NULL COMMENT '主键ID',
|
||||||
|
`router_id` bigint NOT NULL COMMENT '路由ID',
|
||||||
|
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||||
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改的时间戳',
|
||||||
|
`create_user` bigint NOT NULL COMMENT '创建用户',
|
||||||
|
`update_user` int NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '是否被删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统路由角色关系表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_user
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_user`;
|
||||||
|
CREATE TABLE `sys_user` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名',
|
||||||
|
`nick_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '昵称',
|
||||||
|
`email` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱',
|
||||||
|
`phone` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
|
||||||
|
`password` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
|
||||||
|
`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||||
|
`sex` tinyint NULL DEFAULT 1 COMMENT '0:女 1:男',
|
||||||
|
`summary` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '个人描述',
|
||||||
|
`last_login_ip` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最后登录IP',
|
||||||
|
`last_login_ip_address` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最后登录ip归属地',
|
||||||
|
`status` tinyint NULL DEFAULT 0 COMMENT '1:禁用 0:正常',
|
||||||
|
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NULL DEFAULT NULL COMMENT '创建用户',
|
||||||
|
`update_user` bigint NULL DEFAULT NULL COMMENT '操作用户',
|
||||||
|
`is_deleted` tinyint NULL DEFAULT 0 COMMENT '是否删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
UNIQUE INDEX `key_email`(`email` ASC) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户信息' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_user_dept
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_user_dept`;
|
||||||
|
CREATE TABLE `sys_user_dept` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户id',
|
||||||
|
`dept_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '部门id',
|
||||||
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NULL DEFAULT NULL COMMENT '创建用户',
|
||||||
|
`update_user` bigint NULL DEFAULT NULL COMMENT '更新用户',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NULL DEFAULT 0 COMMENT '是否删除,0-未删除,1-已删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门用户关系表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_user_role
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_user_role`;
|
||||||
|
CREATE TABLE `sys_user_role` (
|
||||||
|
`id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'ID',
|
||||||
|
`user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户id',
|
||||||
|
`role_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色id',
|
||||||
|
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`create_user` bigint NOT NULL COMMENT '创建用户',
|
||||||
|
`update_user` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新用户',
|
||||||
|
`is_deleted` tinyint(1) UNSIGNED ZEROFILL NULL DEFAULT 0 COMMENT '是否删除,0-未删除,1-已删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统用户角色关系表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- View structure for qrtz_view_schedulers
|
||||||
|
-- ----------------------------
|
||||||
|
DROP VIEW IF EXISTS `qrtz_view_schedulers`;
|
||||||
|
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `qrtz_view_schedulers` AS select `job`.`JOB_NAME` AS `job_name`,`job`.`JOB_GROUP` AS `job_group`,`job`.`DESCRIPTION` AS `description`,`job`.`JOB_CLASS_NAME` AS `job_class_name`,`cron`.`CRON_EXPRESSION` AS `cron_expression`,`tri`.`TRIGGER_NAME` AS `trigger_name`,`tri`.`TRIGGER_STATE` AS `trigger_state` from ((`QRTZ_JOB_DETAILS` `job` join `QRTZ_TRIGGERS` `tri` on(((`job`.`JOB_NAME` = `tri`.`JOB_NAME`) and (`job`.`JOB_GROUP` = `tri`.`JOB_GROUP`)))) join `QRTZ_CRON_TRIGGERS` `cron` on(((`cron`.`TRIGGER_NAME` = `tri`.`TRIGGER_NAME`) and (`cron`.`TRIGGER_GROUP` = `tri`.`JOB_GROUP`)))) where (`tri`.`TRIGGER_TYPE` = 'CRON');
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
|
@ -1,5 +1,5 @@
|
||||||
FROM openjdk:21
|
FROM openjdk:17
|
||||||
MAINTAINER bunny
|
MAINTAINER server
|
||||||
|
|
||||||
#系统编码
|
#系统编码
|
||||||
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
|
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
|
||||||
|
@ -9,15 +9,15 @@ RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||||
RUN echo "Asia/Shanghai" > /etc/timezone
|
RUN echo "Asia/Shanghai" > /etc/timezone
|
||||||
|
|
||||||
# 设定工作目录
|
# 设定工作目录
|
||||||
WORKDIR /home/bunny
|
WORKDIR /home/server
|
||||||
|
|
||||||
# 复制jar包
|
# 复制jar包
|
||||||
COPY target/*.jar /home/bunny/app.jar
|
COPY target/*.jar /home/server/app.jar
|
||||||
|
|
||||||
#启动容器时的进程
|
# 启动容器时的进程
|
||||||
ENTRYPOINT ["java","-jar","/home/bunny/app.jar"]
|
ENTRYPOINT ["java","-jar","/home/server/app.jar"]
|
||||||
|
|
||||||
#暴露 8800 端口
|
#暴露 7070 端口
|
||||||
EXPOSE 7070
|
EXPOSE 7070
|
||||||
|
|
||||||
# mvn clean package -Pprod -DskipTests
|
# mvn clean package -Pprod -DskipTests
|
|
@ -96,6 +96,10 @@
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
@ -103,37 +107,6 @@
|
||||||
<skip>true</skip>
|
<skip>true</skip>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>com.spotify</groupId>
|
|
||||||
<artifactId>docker-maven-plugin</artifactId>
|
|
||||||
<version>1.2.2</version>
|
|
||||||
<!--将插件绑定在某个phase执行-->
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>build-image</id>
|
|
||||||
<!--将插件绑定在package这个phase(阶段)上。也就是说,用户只需执行mvn package,就会自动执行mvn docker:build-->
|
|
||||||
<phase>package</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>build</goal>
|
|
||||||
<goal>push</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
<configuration>
|
|
||||||
<serverId>harbor</serverId>
|
|
||||||
<registryUrl>http://${docker.repostory}</registryUrl>
|
|
||||||
<!-- 配置docker主机地址 -->
|
|
||||||
<dockerHost>http://${docker.host}</dockerHost>
|
|
||||||
<!--指定生成的镜像名-->
|
|
||||||
<imageName>
|
|
||||||
${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}
|
|
||||||
</imageName>
|
|
||||||
<!-- 指定 dockerfile 路径-->
|
|
||||||
<dockerDirectory>${project.basedir}</dockerDirectory>
|
|
||||||
<!-- 是否跳过docker构建 -->
|
|
||||||
<skipDockerBuild>false</skipDockerBuild>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class I18nTypeController {
|
||||||
private I18nTypeService i18nTypeService;
|
private I18nTypeService i18nTypeService;
|
||||||
|
|
||||||
@Operation(summary = "获取多语言类型", description = "获取多语言类型")
|
@Operation(summary = "获取多语言类型", description = "获取多语言类型")
|
||||||
@GetMapping("getI18nTypeList")
|
@GetMapping("/noAuth/getI18nTypeList")
|
||||||
public Mono<Result<List<I18nTypeVo>>> getI18nTypeList() {
|
public Mono<Result<List<I18nTypeVo>>> getI18nTypeList() {
|
||||||
List<I18nTypeVo> voList = i18nTypeService.getI18nTypeList();
|
List<I18nTypeVo> voList = i18nTypeService.getI18nTypeList();
|
||||||
return Mono.just(Result.success(voList));
|
return Mono.just(Result.success(voList));
|
||||||
|
|
|
@ -4,7 +4,7 @@ import cn.bunny.dao.dto.schedulers.SchedulersAddDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersOperationDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersOperationDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersUpdateDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersUpdateDto;
|
||||||
import cn.bunny.dao.entity.schedulers.Schedulers;
|
import cn.bunny.dao.entity.schedulers.ViewSchedulers;
|
||||||
import cn.bunny.dao.pojo.result.PageResult;
|
import cn.bunny.dao.pojo.result.PageResult;
|
||||||
import cn.bunny.dao.pojo.result.Result;
|
import cn.bunny.dao.pojo.result.Result;
|
||||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||||
|
@ -45,7 +45,7 @@ public class SchedulersController {
|
||||||
@Parameter(name = "limit", description = "每页记录数", required = true)
|
@Parameter(name = "limit", description = "每页记录数", required = true)
|
||||||
@PathVariable("limit") Integer limit,
|
@PathVariable("limit") Integer limit,
|
||||||
SchedulersDto dto) {
|
SchedulersDto dto) {
|
||||||
Page<Schedulers> pageParams = new Page<>(page, limit);
|
Page<ViewSchedulers> pageParams = new Page<>(page, limit);
|
||||||
PageResult<SchedulersVo> pageResult = schedulersService.getSchedulersList(pageParams, dto);
|
PageResult<SchedulersVo> pageResult = schedulersService.getSchedulersList(pageParams, dto);
|
||||||
return Mono.just(Result.success(pageResult));
|
return Mono.just(Result.success(pageResult));
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import cn.bunny.dao.pojo.constant.UserConstant;
|
||||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||||
import cn.bunny.services.mapper.PowerMapper;
|
import cn.bunny.services.mapper.PowerMapper;
|
||||||
import cn.bunny.services.mapper.RoleMapper;
|
import cn.bunny.services.mapper.RoleMapper;
|
||||||
|
import cn.bunny.services.mapper.UserMapper;
|
||||||
import cn.bunny.services.security.custom.CustomCheckIsAdmin;
|
import cn.bunny.services.security.custom.CustomCheckIsAdmin;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -37,8 +38,11 @@ public class UserFactory {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisTemplate<String, Object> redisTemplate;
|
private RedisTemplate<String, Object> redisTemplate;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MinioUtil minioUtil;
|
private MinioUtil minioUtil;
|
||||||
|
@Autowired
|
||||||
|
private UserMapper userMapper;
|
||||||
|
|
||||||
public LoginVo buildUserVo(AdminUser user, long readMeDay) {
|
public LoginVo buildUserVo(AdminUser user, long readMeDay) {
|
||||||
// 创建token
|
// 创建token
|
||||||
|
@ -46,6 +50,8 @@ public class UserFactory {
|
||||||
String email = user.getEmail();
|
String email = user.getEmail();
|
||||||
String token = JwtHelper.createToken(userId, email, (int) readMeDay);
|
String token = JwtHelper.createToken(userId, email, (int) readMeDay);
|
||||||
String avatar = user.getAvatar();
|
String avatar = user.getAvatar();
|
||||||
|
String remoteAddr = IpUtil.getCurrentUserIpAddress().getRemoteAddr();
|
||||||
|
String ipRegion = IpUtil.getCurrentUserIpAddress().getIpRegion();
|
||||||
|
|
||||||
// 判断用户是否有头像,如果没有头像设置默认头像
|
// 判断用户是否有头像,如果没有头像设置默认头像
|
||||||
avatar = StringUtils.hasText(avatar) ? minioUtil.getObjectNameFullPath(avatar) : UserConstant.USER_AVATAR;
|
avatar = StringUtils.hasText(avatar) ? minioUtil.getObjectNameFullPath(avatar) : UserConstant.USER_AVATAR;
|
||||||
|
@ -53,8 +59,9 @@ public class UserFactory {
|
||||||
// 设置用户IP地址,并更新用户信息
|
// 设置用户IP地址,并更新用户信息
|
||||||
AdminUser updateUser = new AdminUser();
|
AdminUser updateUser = new AdminUser();
|
||||||
updateUser.setId(userId);
|
updateUser.setId(userId);
|
||||||
updateUser.setLastLoginIp(IpUtil.getCurrentUserIpAddress().getRemoteAddr());
|
updateUser.setLastLoginIp(remoteAddr);
|
||||||
updateUser.setLastLoginIpAddress(IpUtil.getCurrentUserIpAddress().getIpRegion());
|
updateUser.setLastLoginIpAddress(ipRegion);
|
||||||
|
userMapper.updateById(updateUser);
|
||||||
|
|
||||||
// 计算过期时间,并格式化返回
|
// 计算过期时间,并格式化返回
|
||||||
LocalDateTime localDateTime = LocalDateTime.now();
|
LocalDateTime localDateTime = LocalDateTime.now();
|
||||||
|
@ -79,8 +86,8 @@ public class UserFactory {
|
||||||
loginVo.setAvatar(avatar);
|
loginVo.setAvatar(avatar);
|
||||||
loginVo.setToken(token);
|
loginVo.setToken(token);
|
||||||
loginVo.setRefreshToken(token);
|
loginVo.setRefreshToken(token);
|
||||||
loginVo.setLastLoginIp(IpUtil.getCurrentUserIpAddress().getRemoteAddr());
|
loginVo.setLastLoginIp(remoteAddr);
|
||||||
loginVo.setLastLoginIpAddress(IpUtil.getCurrentUserIpAddress().getIpRegion());
|
loginVo.setLastLoginIpAddress(ipRegion);
|
||||||
loginVo.setRoles(roles);
|
loginVo.setRoles(roles);
|
||||||
loginVo.setPermissions(permissions);
|
loginVo.setPermissions(permissions);
|
||||||
loginVo.setUpdateUser(userId);
|
loginVo.setUpdateUser(userId);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package cn.bunny.services.mapper;
|
package cn.bunny.services.mapper;
|
||||||
|
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
||||||
import cn.bunny.dao.entity.schedulers.Schedulers;
|
import cn.bunny.dao.entity.schedulers.ViewSchedulers;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
@ -19,7 +19,7 @@ import java.util.List;
|
||||||
* @since 2024-10-14 20:59:25
|
* @since 2024-10-14 20:59:25
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface SchedulersMapper extends BaseMapper<Schedulers> {
|
public interface SchedulersMapper extends BaseMapper<ViewSchedulers> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* * 分页查询Schedulers视图内容
|
* * 分页查询Schedulers视图内容
|
||||||
|
@ -28,7 +28,7 @@ public interface SchedulersMapper extends BaseMapper<Schedulers> {
|
||||||
* @param dto Schedulers视图查询表单
|
* @param dto Schedulers视图查询表单
|
||||||
* @return Schedulers视图分页结果
|
* @return Schedulers视图分页结果
|
||||||
*/
|
*/
|
||||||
IPage<Schedulers> selectListByPage(@Param("page") Page<Schedulers> pageParams, @Param("dto") SchedulersDto dto);
|
IPage<ViewSchedulers> selectListByPage(@Param("page") Page<ViewSchedulers> pageParams, @Param("dto") SchedulersDto dto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 物理删除Schedulers视图
|
* 物理删除Schedulers视图
|
||||||
|
|
|
@ -2,15 +2,10 @@ package cn.bunny.services.quartz;
|
||||||
|
|
||||||
import org.quartz.Scheduler;
|
import org.quartz.Scheduler;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.config.PropertiesFactoryBean;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
|
||||||
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
|
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class QuartzConfiguration {
|
public class QuartzConfiguration {
|
||||||
|
|
||||||
|
@ -28,24 +23,11 @@ public class QuartzConfiguration {
|
||||||
@Bean
|
@Bean
|
||||||
public SchedulerFactoryBean schedulerFactoryBean() {
|
public SchedulerFactoryBean schedulerFactoryBean() {
|
||||||
SchedulerFactoryBean factoryBean = new SchedulerFactoryBean();
|
SchedulerFactoryBean factoryBean = new SchedulerFactoryBean();
|
||||||
try {
|
factoryBean.setAutoStartup(true);
|
||||||
factoryBean.setAutoStartup(true);
|
// 延时1秒启动
|
||||||
// 延时3秒启动
|
factoryBean.setStartupDelay(1);
|
||||||
factoryBean.setStartupDelay(3);
|
factoryBean.setJobFactory(quartzJobFactory);
|
||||||
factoryBean.setQuartzProperties(quartzProperties());
|
return factoryBean;
|
||||||
factoryBean.setJobFactory(quartzJobFactory);
|
|
||||||
return factoryBean;
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public Properties quartzProperties() throws IOException {
|
|
||||||
PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
|
|
||||||
propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties"));
|
|
||||||
propertiesFactoryBean.afterPropertiesSet();
|
|
||||||
return propertiesFactoryBean.getObject();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "scheduler")
|
@Bean(name = "scheduler")
|
||||||
|
|
|
@ -47,8 +47,14 @@ public class NoTokenAuthenticationFilter extends OncePerRequestFilter {
|
||||||
Object loginVoObject = redisTemplate.opsForValue().get(RedisUserConstant.getAdminLoginInfoPrefix(username));
|
Object loginVoObject = redisTemplate.opsForValue().get(RedisUserConstant.getAdminLoginInfoPrefix(username));
|
||||||
LoginVo loginVo = JSON.parseObject(JSON.toJSONString(loginVoObject), LoginVo.class);
|
LoginVo loginVo = JSON.parseObject(JSON.toJSONString(loginVoObject), LoginVo.class);
|
||||||
|
|
||||||
|
// 登录信息为空
|
||||||
|
if (loginVo == null) {
|
||||||
|
ResponseUtil.out(response, Result.error(ResultCodeEnum.LOGIN_AUTH));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 判断用户是否禁用
|
// 判断用户是否禁用
|
||||||
if (loginVo != null && loginVo.getStatus()) {
|
if (loginVo.getStatus()) {
|
||||||
ResponseUtil.out(response, Result.error(ResultCodeEnum.FAIL_NO_ACCESS_DENIED_USER_LOCKED));
|
ResponseUtil.out(response, Result.error(ResultCodeEnum.FAIL_NO_ACCESS_DENIED_USER_LOCKED));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ package cn.bunny.services.security.filter;
|
||||||
|
|
||||||
|
|
||||||
import cn.bunny.dao.dto.system.user.LoginDto;
|
import cn.bunny.dao.dto.system.user.LoginDto;
|
||||||
import cn.bunny.dao.pojo.constant.RedisUserConstant;
|
|
||||||
import cn.bunny.dao.pojo.result.Result;
|
import cn.bunny.dao.pojo.result.Result;
|
||||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||||
|
@ -49,6 +48,10 @@ public class TokenLoginFilterService extends UsernamePasswordAuthenticationFilte
|
||||||
this.customUserDetailsService = customUserDetailsService;
|
this.customUserDetailsService = customUserDetailsService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* * 自定义验证
|
||||||
|
* 判断邮箱验证码是否正确
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) {
|
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) {
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
@ -59,16 +62,17 @@ public class TokenLoginFilterService extends UsernamePasswordAuthenticationFilte
|
||||||
String username = loginDto.getUsername();
|
String username = loginDto.getUsername();
|
||||||
String password = loginDto.getPassword();
|
String password = loginDto.getPassword();
|
||||||
|
|
||||||
Object redisEmailCode = redisTemplate.opsForValue().get(RedisUserConstant.getAdminUserEmailCodePrefix(username));
|
// Object redisEmailCode = redisTemplate.opsForValue().get(RedisUserConstant.getAdminUserEmailCodePrefix(username));
|
||||||
if (redisEmailCode == null) {
|
// if (redisEmailCode == null) {
|
||||||
out(response, Result.error(ResultCodeEnum.EMAIL_CODE_EMPTY));
|
// out(response, Result.error(ResultCodeEnum.EMAIL_CODE_EMPTY));
|
||||||
return null;
|
// return null;
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (!emailCode.equals(redisEmailCode.toString().toLowerCase())) {
|
// 判断用户邮箱验证码是否和Redis中发送的验证码
|
||||||
out(response, Result.error(ResultCodeEnum.EMAIL_CODE_NOT_MATCHING));
|
// if (!emailCode.equals(redisEmailCode.toString().toLowerCase())) {
|
||||||
return null;
|
// out(response, Result.error(ResultCodeEnum.EMAIL_CODE_NOT_MATCHING));
|
||||||
}
|
// return null;
|
||||||
|
// }
|
||||||
|
|
||||||
Authentication authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
|
Authentication authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
|
||||||
return getAuthenticationManager().authenticate(authenticationToken);
|
return getAuthenticationManager().authenticate(authenticationToken);
|
||||||
|
|
|
@ -4,7 +4,7 @@ import cn.bunny.dao.dto.schedulers.SchedulersAddDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersOperationDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersOperationDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersUpdateDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersUpdateDto;
|
||||||
import cn.bunny.dao.entity.schedulers.Schedulers;
|
import cn.bunny.dao.entity.schedulers.ViewSchedulers;
|
||||||
import cn.bunny.dao.pojo.result.PageResult;
|
import cn.bunny.dao.pojo.result.PageResult;
|
||||||
import cn.bunny.dao.vo.schedulers.SchedulersVo;
|
import cn.bunny.dao.vo.schedulers.SchedulersVo;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
@ -21,14 +21,14 @@ import java.util.List;
|
||||||
* @author Bunny
|
* @author Bunny
|
||||||
* @since 2024-10-14 20:59:25
|
* @since 2024-10-14 20:59:25
|
||||||
*/
|
*/
|
||||||
public interface SchedulersService extends IService<Schedulers> {
|
public interface SchedulersService extends IService<ViewSchedulers> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* * 获取Schedulers视图列表
|
* * 获取Schedulers视图列表
|
||||||
*
|
*
|
||||||
* @return Schedulers视图返回列表
|
* @return Schedulers视图返回列表
|
||||||
*/
|
*/
|
||||||
PageResult<SchedulersVo> getSchedulersList(Page<Schedulers> pageParams, SchedulersDto dto);
|
PageResult<SchedulersVo> getSchedulersList(Page<ViewSchedulers> pageParams, SchedulersDto dto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* * 添加Schedulers视图
|
* * 添加Schedulers视图
|
||||||
|
|
|
@ -4,7 +4,7 @@ import cn.bunny.dao.dto.schedulers.SchedulersAddDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersOperationDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersOperationDto;
|
||||||
import cn.bunny.dao.dto.schedulers.SchedulersUpdateDto;
|
import cn.bunny.dao.dto.schedulers.SchedulersUpdateDto;
|
||||||
import cn.bunny.dao.entity.schedulers.Schedulers;
|
import cn.bunny.dao.entity.schedulers.ViewSchedulers;
|
||||||
import cn.bunny.dao.pojo.result.PageResult;
|
import cn.bunny.dao.pojo.result.PageResult;
|
||||||
import cn.bunny.dao.vo.schedulers.SchedulersVo;
|
import cn.bunny.dao.vo.schedulers.SchedulersVo;
|
||||||
import cn.bunny.services.mapper.SchedulersMapper;
|
import cn.bunny.services.mapper.SchedulersMapper;
|
||||||
|
@ -27,7 +27,7 @@ import java.util.List;
|
||||||
* @since 2024-10-14 20:59:25
|
* @since 2024-10-14 20:59:25
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class SchedulersServiceImpl extends ServiceImpl<SchedulersMapper, Schedulers> implements SchedulersService {
|
public class SchedulersServiceImpl extends ServiceImpl<SchedulersMapper, ViewSchedulers> implements SchedulersService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* * Schedulers视图 服务实现类
|
* * Schedulers视图 服务实现类
|
||||||
|
@ -37,9 +37,9 @@ public class SchedulersServiceImpl extends ServiceImpl<SchedulersMapper, Schedul
|
||||||
* @return 查询分页Schedulers视图返回对象
|
* @return 查询分页Schedulers视图返回对象
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public PageResult<SchedulersVo> getSchedulersList(Page<Schedulers> pageParams, SchedulersDto dto) {
|
public PageResult<SchedulersVo> getSchedulersList(Page<ViewSchedulers> pageParams, SchedulersDto dto) {
|
||||||
// 分页查询菜单图标
|
// 分页查询菜单图标
|
||||||
IPage<Schedulers> page = baseMapper.selectListByPage(pageParams, dto);
|
IPage<ViewSchedulers> page = baseMapper.selectListByPage(pageParams, dto);
|
||||||
|
|
||||||
List<SchedulersVo> voList = page.getRecords().stream().map(schedulers -> {
|
List<SchedulersVo> voList = page.getRecords().stream().map(schedulers -> {
|
||||||
SchedulersVo schedulersVo = new SchedulersVo();
|
SchedulersVo schedulersVo = new SchedulersVo();
|
||||||
|
@ -63,9 +63,9 @@ public class SchedulersServiceImpl extends ServiceImpl<SchedulersMapper, Schedul
|
||||||
@Override
|
@Override
|
||||||
public void addSchedulers(@Valid SchedulersAddDto dto) {
|
public void addSchedulers(@Valid SchedulersAddDto dto) {
|
||||||
// 保存数据
|
// 保存数据
|
||||||
Schedulers schedulers = new Schedulers();
|
ViewSchedulers viewSchedulers = new ViewSchedulers();
|
||||||
BeanUtils.copyProperties(dto, schedulers);
|
BeanUtils.copyProperties(dto, viewSchedulers);
|
||||||
save(schedulers);
|
save(viewSchedulers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,9 +76,9 @@ public class SchedulersServiceImpl extends ServiceImpl<SchedulersMapper, Schedul
|
||||||
@Override
|
@Override
|
||||||
public void updateSchedulers(@Valid SchedulersUpdateDto dto) {
|
public void updateSchedulers(@Valid SchedulersUpdateDto dto) {
|
||||||
// 更新内容
|
// 更新内容
|
||||||
Schedulers schedulers = new Schedulers();
|
ViewSchedulers viewSchedulers = new ViewSchedulers();
|
||||||
BeanUtils.copyProperties(dto, schedulers);
|
BeanUtils.copyProperties(dto, viewSchedulers);
|
||||||
updateById(schedulers);
|
updateById(viewSchedulers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -10,8 +10,7 @@ logging:
|
||||||
pattern:
|
pattern:
|
||||||
dateformat: HH:mm:ss:SSS
|
dateformat: HH:mm:ss:SSS
|
||||||
file:
|
file:
|
||||||
path: "logs/${spring.application.name}"
|
path: "/logs/${spring.application.name}"
|
||||||
|
|
||||||
|
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
mapper-locations: classpath:mapper/*.xml
|
mapper-locations: classpath:mapper/*.xml
|
||||||
|
|
|
@ -25,20 +25,20 @@ knife4j:
|
||||||
|
|
||||||
bunny:
|
bunny:
|
||||||
datasource1:
|
datasource1:
|
||||||
host: 192.168.3.98
|
host: 106.15.251.123
|
||||||
port: 3304
|
port: 3305
|
||||||
sqlData: auth_admin
|
sqlData: auth_admin
|
||||||
username: root
|
username: root
|
||||||
password: "02120212"
|
password: "02120212"
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
host: 192.168.3.98
|
host: 47.120.65.66
|
||||||
port: 6379
|
port: 6379
|
||||||
database: 0
|
database: 0
|
||||||
password: "123456"
|
password: "02120212"
|
||||||
|
|
||||||
minio:
|
minio:
|
||||||
endpointUrl: "http://192.168.3.98:9000"
|
endpointUrl: "http://116.196.101.14:9000"
|
||||||
accessKey: bunny
|
accessKey: bunny
|
||||||
secretKey: "02120212"
|
secretKey: "02120212"
|
||||||
bucket-name: auth-admin
|
bucket-name: auth-admin
|
|
@ -43,11 +43,33 @@ spring:
|
||||||
quartz:
|
quartz:
|
||||||
job-store-type: jdbc
|
job-store-type: jdbc
|
||||||
jdbc:
|
jdbc:
|
||||||
initialize-schema: always
|
initialize-schema: never
|
||||||
auto-startup: true
|
auto-startup: true
|
||||||
wait-for-jobs-to-complete-on-shutdown: true
|
wait-for-jobs-to-complete-on-shutdown: true
|
||||||
overwrite-existing-jobs: false
|
overwrite-existing-jobs: false
|
||||||
scheduler-name: quartzScheduler
|
scheduler-name: quartzScheduler
|
||||||
|
properties:
|
||||||
|
org:
|
||||||
|
quartz:
|
||||||
|
scheduler:
|
||||||
|
# 默认
|
||||||
|
instanceName: quartzScheduler
|
||||||
|
# 如果使用集群,instanceId必须唯一,设置成AUTO
|
||||||
|
instanceId: AUTO
|
||||||
|
jobStore:
|
||||||
|
# 存储方式使用JobStoreTX 也就是数据库
|
||||||
|
class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
|
||||||
|
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
|
||||||
|
# 表名前缀
|
||||||
|
tablePrefix: QRTZ_
|
||||||
|
useProperties: false
|
||||||
|
misfireThreshold: 5000
|
||||||
|
threadPool:
|
||||||
|
class: org.quartz.simpl.SimpleThreadPool
|
||||||
|
threadCount: 20
|
||||||
|
threadPriority: 5
|
||||||
|
threadsInheritContextClassLoaderOfInitializingThread: true
|
||||||
|
|
||||||
|
|
||||||
jackson:
|
jackson:
|
||||||
date-format: yyyy-MM-dd HH:mm:ss
|
date-format: yyyy-MM-dd HH:mm:ss
|
||||||
|
|
|
@ -3,14 +3,14 @@
|
||||||
<mapper namespace="cn.bunny.services.mapper.SchedulersMapper">
|
<mapper namespace="cn.bunny.services.mapper.SchedulersMapper">
|
||||||
|
|
||||||
<!-- 通用查询映射结果 -->
|
<!-- 通用查询映射结果 -->
|
||||||
<resultMap id="BaseResultMap" type="cn.bunny.dao.entity.schedulers.Schedulers">
|
<resultMap id="BaseResultMap" type="cn.bunny.dao.entity.schedulers.ViewSchedulers">
|
||||||
<id column="job_name" property="jobName"/>
|
<id column="job_name" property="jobName"/>
|
||||||
<id column="job_group" property="jobGroup"/>
|
<id column="job_group" property="jobGroup"/>
|
||||||
<id column="description" property="description"/>
|
<id column="description" property="description"/>
|
||||||
<id column="job_class_name" property="jobClassName"/>
|
<id column="job_class_name" property="jobClassName"/>
|
||||||
<id column="cron_expression" property="cronExpression"/>
|
<id column="cron_expression" property="cronExpression"/>
|
||||||
<id column="trigger_name" property="triggerName"/>
|
<id column="trigger_name" property="triggerName"/>
|
||||||
<id column="trigger_state" property="triggerState"/>
|
<id column="trigger_state" property="triggerState"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<!-- 通用查询结果列 -->
|
<!-- 通用查询结果列 -->
|
||||||
|
@ -19,29 +19,29 @@
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<!-- 分页查询Schedulers视图内容 -->
|
<!-- 分页查询Schedulers视图内容 -->
|
||||||
<select id="selectListByPage" resultType="cn.bunny.dao.entity.schedulers.Schedulers">
|
<select id="selectListByPage" resultType="cn.bunny.dao.entity.schedulers.ViewSchedulers">
|
||||||
select
|
select
|
||||||
<include refid="Base_Column_List"/>
|
<include refid="Base_Column_List"/>
|
||||||
from v_schedulers
|
from qrtz_view_schedulers
|
||||||
<where>
|
<where>
|
||||||
<if test="dto.jobName != null and dto.jobName != ''">
|
<if test="dto.jobName != null and dto.jobName != ''">
|
||||||
and job_name like CONCAT('%',#{dto.jobName},'%')
|
and job_name like CONCAT('%',#{dto.jobName},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="dto.jobGroup != null and dto.jobGroup != ''">
|
<if test="dto.jobGroup != null and dto.jobGroup != ''">
|
||||||
and job_group like CONCAT('%',#{dto.jobGroup},'%')
|
and job_group like CONCAT('%',#{dto.jobGroup},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="dto.description != null and dto.description != ''">
|
<if test="dto.description != null and dto.description != ''">
|
||||||
and description like CONCAT('%',#{dto.description},'%')
|
and description like CONCAT('%',#{dto.description},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="dto.jobClassName != null and dto.jobClassName != ''">
|
<if test="dto.jobClassName != null and dto.jobClassName != ''">
|
||||||
and job_class_name like CONCAT('%',#{dto.jobClassName},'%')
|
and job_class_name like CONCAT('%',#{dto.jobClassName},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="dto.triggerName != null and dto.triggerName != ''">
|
<if test="dto.triggerName != null and dto.triggerName != ''">
|
||||||
and trigger_name like CONCAT('%',#{dto.triggerName},'%')
|
and trigger_name like CONCAT('%',#{dto.triggerName},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="dto.triggerState != null and dto.triggerState != ''">
|
<if test="dto.triggerState != null and dto.triggerState != ''">
|
||||||
and trigger_state like CONCAT('%',#{dto.triggerState},'%')
|
and trigger_state like CONCAT('%',#{dto.triggerState},'%')
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
order by update_time desc
|
order by update_time desc
|
||||||
</select>
|
</select>
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
<!-- 物理删除Schedulers视图 -->
|
<!-- 物理删除Schedulers视图 -->
|
||||||
<delete id="deleteBatchIdsWithPhysics">
|
<delete id="deleteBatchIdsWithPhysics">
|
||||||
delete
|
delete
|
||||||
from v_schedulers
|
from qrtz_view_schedulers
|
||||||
where id in
|
where id in
|
||||||
<foreach collection="ids" item="id" open="(" close=")" separator=",">
|
<foreach collection="ids" item="id" open="(" close=")" separator=",">
|
||||||
#{id}
|
#{id}
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
org.quartz.scheduler.instanceName=quartzScheduler
|
|
||||||
org.quartz.scheduler.instanceId=AUTO
|
|
||||||
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
|
|
||||||
org.quartz.threadPool.threadCount=20
|
|
||||||
org.quartz.threadPool.threadPriority=5
|
|
||||||
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
|
|
||||||
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
|
|
||||||
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
|
|
||||||
org.quartz.jobStore.tablePrefix=QRTZ_
|
|
||||||
org.quartz.jobStore.dataSource=auth_admin
|
|
||||||
org.quartz.jobStore.misfireThreshold=5000
|
|
||||||
org.quartz.dataSource.auth_admin.driver=com.mysql.cj.jdbc.Driver
|
|
||||||
org.quartz.dataSource.auth_admin.URL=jdbc:mysql://192.168.3.98:3306/auth_admin?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
|
|
||||||
org.quartz.dataSource.auth_admin.user=root
|
|
||||||
org.quartz.dataSource.auth_admin.password=02120212
|
|
||||||
org.quartz.dataSource.auth_admin.maxConnections=5
|
|
Loading…
Reference in New Issue