rebuild
This commit is contained in:
@@ -39,7 +39,8 @@ public class RedisConfiguration extends CachingConfigurerSupport {
|
|||||||
*/
|
*/
|
||||||
private static final String[] WHITELIST_STR = {
|
private static final String[] WHITELIST_STR = {
|
||||||
"org.springframework",
|
"org.springframework",
|
||||||
"cn.odboy.model",
|
"cn.odboy.core.controller.*.dto",
|
||||||
|
"cn.odboy.core.dal.dataobject",
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<parent>
|
|
||||||
<artifactId>cutejava</artifactId>
|
|
||||||
<groupId>cn.odboy</groupId>
|
|
||||||
<version>1.3.1</version>
|
|
||||||
</parent>
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<properties>
|
|
||||||
<hutool.version>5.8.36</hutool.version>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<artifactId>cutejava-domain</artifactId>
|
|
||||||
<name>模型模块</name>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.odboy</groupId>
|
|
||||||
<artifactId>cutejava-common</artifactId>
|
|
||||||
<version>1.3.1</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</project>
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<parent>
|
|
||||||
<artifactId>cutejava</artifactId>
|
|
||||||
<groupId>cn.odboy</groupId>
|
|
||||||
<version>1.3.1</version>
|
|
||||||
</parent>
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<artifactId>cutejava-job</artifactId>
|
|
||||||
<name>定时任务模块</name>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.odboy</groupId>
|
|
||||||
<artifactId>cutejava-tools</artifactId>
|
|
||||||
<version>1.3.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- quartz -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-quartz</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.quartz-scheduler</groupId>
|
|
||||||
<artifactId>quartz-jobs</artifactId>
|
|
||||||
<version>2.3.2</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.mchange</groupId>
|
|
||||||
<artifactId>c3p0</artifactId>
|
|
||||||
<version>0.10.1</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</project>
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<parent>
|
|
||||||
<artifactId>cutejava</artifactId>
|
|
||||||
<groupId>cn.odboy</groupId>
|
|
||||||
<version>1.3.1</version>
|
|
||||||
</parent>
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<artifactId>cutejava-pipline</artifactId>
|
|
||||||
<name>流水线模块</name>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<!-- 工具包 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.hutool</groupId>
|
|
||||||
<artifactId>hutool-all</artifactId>
|
|
||||||
<version>${hutool.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.odboy</groupId>
|
|
||||||
<artifactId>cutejava-domain</artifactId>
|
|
||||||
<version>1.3.1</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</project>
|
|
||||||
@@ -17,12 +17,6 @@
|
|||||||
<artifactId>cutejava-system</artifactId>
|
<artifactId>cutejava-system</artifactId>
|
||||||
<version>1.3.1</version>
|
<version>1.3.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.odboy</groupId>
|
|
||||||
<artifactId>cutejava-pipline</artifactId>
|
|
||||||
<version>1.3.1</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<!-- 打包 -->
|
<!-- 打包 -->
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy;
|
package cn.odboy;
|
||||||
|
|
||||||
|
|
||||||
import cn.odboy.mybatis.util.CmdGenHelper;
|
import cn.odboy.core.framework.mybatisplus.util.CmdGenHelper;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.monitor;
|
package cn.odboy.monitor;
|
||||||
|
|
||||||
import cn.odboy.application.system.service.DictService;
|
import cn.odboy.core.service.system.DictService;
|
||||||
import cn.odboy.monitor.service.HealthCheckPointService;
|
import cn.odboy.monitor.service.HealthCheckPointService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ mybatis-plus:
|
|||||||
id-type: auto
|
id-type: auto
|
||||||
# 表名是否使用驼峰转下划线命名,只对表名生效
|
# 表名是否使用驼峰转下划线命名,只对表名生效
|
||||||
table-underline: true
|
table-underline: true
|
||||||
# 是否控制台 print mybatis-plus 的 LOGO
|
# 是否控制台 print mybatisplus-plus 的 LOGO
|
||||||
banner: true
|
banner: true
|
||||||
|
|
||||||
app:
|
app:
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ mybatis-plus:
|
|||||||
id-type: auto
|
id-type: auto
|
||||||
# 表名是否使用驼峰转下划线命名,只对表名生效
|
# 表名是否使用驼峰转下划线命名,只对表名生效
|
||||||
table-underline: true
|
table-underline: true
|
||||||
# 是否控制台 print mybatis-plus 的 LOGO
|
# 是否控制台 print mybatisplus-plus 的 LOGO
|
||||||
banner: true
|
banner: true
|
||||||
|
|
||||||
app:
|
app:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# 应用的拦截模块
|
# 应用的拦截模块
|
||||||
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
|
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
|
||||||
# 自定义日志打印
|
# 自定义日志打印
|
||||||
logMessageFormat=cn.odboy.mybatis.context.CustomP6SpyLogger
|
logMessageFormat=cn.odboy.core.framework.mybatisplus.context.CustomP6SpyLogger
|
||||||
# 日志输出到控制台
|
# 日志输出到控制台
|
||||||
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
|
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
|
||||||
# 日期格式
|
# 日期格式
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.odboy.context.PipelineManage;
|
import cn.odboy.core.framework.flow.context.PipelineManager;
|
||||||
|
import cn.odboy.core.framework.flow.context.PipelineProcessManager;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
@@ -8,11 +9,18 @@ import org.springframework.boot.test.context.SpringBootTest;
|
|||||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
public class PipelineTests {
|
public class PipelineTests {
|
||||||
@Autowired
|
@Autowired
|
||||||
private PipelineManage pipelineManage;
|
private PipelineManager pipelineManager;
|
||||||
|
@Autowired
|
||||||
|
private PipelineProcessManager pipelineProcessManager;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void contextLoads() {
|
public void testPipelineManager() {
|
||||||
pipelineManage.execute();
|
pipelineManager.test();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPipelineProcessManager() {
|
||||||
|
pipelineProcessManager.test();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,12 +15,14 @@
|
|||||||
<jjwt.version>0.11.5</jjwt.version>
|
<jjwt.version>0.11.5</jjwt.version>
|
||||||
<!-- oshi监控需要指定jna版本, 问题详见 https://github.com/oshi/oshi/issues/1040 -->
|
<!-- oshi监控需要指定jna版本, 问题详见 https://github.com/oshi/oshi/issues/1040 -->
|
||||||
<jna.version>5.8.0</jna.version>
|
<jna.version>5.8.0</jna.version>
|
||||||
|
<mail.version>1.4.7</mail.version>
|
||||||
|
<qiniu.version>7.9.3</qiniu.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.odboy</groupId>
|
<groupId>cn.odboy</groupId>
|
||||||
<artifactId>cutejava-job</artifactId>
|
<artifactId>cutejava-common</artifactId>
|
||||||
<version>1.3.1</version>
|
<version>1.3.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@@ -59,5 +61,35 @@
|
|||||||
<artifactId>oshi-core</artifactId>
|
<artifactId>oshi-core</artifactId>
|
||||||
<version>6.6.5</version>
|
<version>6.6.5</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--邮件依赖-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.mail</groupId>
|
||||||
|
<artifactId>mail</artifactId>
|
||||||
|
<version>${mail.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--七牛云存储-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.qiniu</groupId>
|
||||||
|
<artifactId>qiniu-java-sdk</artifactId>
|
||||||
|
<version>${qiniu.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- quartz -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-quartz</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.quartz-scheduler</groupId>
|
||||||
|
<artifactId>quartz-jobs</artifactId>
|
||||||
|
<version>2.3.2</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.mchange</groupId>
|
||||||
|
<artifactId>c3p0</artifactId>
|
||||||
|
<version>0.10.1</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.constant;
|
package cn.odboy.core.constant;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.constant;
|
package cn.odboy.core.constant;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.constant;
|
package cn.odboy.core.constant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证码配置枚举
|
* 验证码配置枚举
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.constant;
|
package cn.odboy.core.constant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关于缓存的Key集合
|
* 关于缓存的Key集合
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.constant;
|
package cn.odboy.core.constant;
|
||||||
|
|
||||||
public interface TransferProtocolConst {
|
public interface TransferProtocolConst {
|
||||||
String PREFIX_HTTP = "http://";
|
String PREFIX_HTTP = "http://";
|
||||||
+6
-6
@@ -1,13 +1,13 @@
|
|||||||
package cn.odboy.application.job.rest;
|
package cn.odboy.core.controller.job;
|
||||||
|
|
||||||
import cn.odboy.application.job.service.QuartzJobService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.context.SpringBeanHolder;
|
import cn.odboy.context.SpringBeanHolder;
|
||||||
|
import cn.odboy.core.service.job.dto.QueryQuartzJobRequest;
|
||||||
|
import cn.odboy.core.service.job.dto.UpdateQuartzJobRequest;
|
||||||
|
import cn.odboy.core.dal.dataobject.job.QuartzJob;
|
||||||
|
import cn.odboy.core.dal.dataobject.job.QuartzLog;
|
||||||
|
import cn.odboy.core.service.job.QuartzJobService;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.model.job.domain.QuartzJob;
|
|
||||||
import cn.odboy.model.job.domain.QuartzLog;
|
|
||||||
import cn.odboy.model.job.request.UpdateQuartzJobRequest;
|
|
||||||
import cn.odboy.model.job.request.QueryQuartzJobRequest;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+11
-11
@@ -1,20 +1,20 @@
|
|||||||
package cn.odboy.application.core.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.odboy.annotation.AnonymousPostMapping;
|
import cn.odboy.annotation.AnonymousPostMapping;
|
||||||
import cn.odboy.constant.LoginCodeEnum;
|
import cn.odboy.core.framework.properties.AppProperties;
|
||||||
import cn.odboy.application.core.context.TokenProvider;
|
import cn.odboy.core.constant.LoginCodeEnum;
|
||||||
import cn.odboy.application.core.service.impl.UserDetailsServiceImpl;
|
|
||||||
import cn.odboy.application.core.service.impl.UserOnlineServiceImpl;
|
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
import cn.odboy.constant.SystemRedisKey;
|
import cn.odboy.core.constant.SystemRedisKey;
|
||||||
import cn.odboy.config.AppProperties;
|
import cn.odboy.core.framework.permission.util.SecurityHelper;
|
||||||
import cn.odboy.context.SecurityHelper;
|
import cn.odboy.core.service.system.dto.UserJwtVo;
|
||||||
|
import cn.odboy.core.service.system.dto.UserLoginRequest;
|
||||||
|
import cn.odboy.core.dal.dataobject.system.UserInfoResponse;
|
||||||
|
import cn.odboy.core.framework.permission.TokenProvider;
|
||||||
|
import cn.odboy.core.service.system.impl.UserDetailsServiceImpl;
|
||||||
|
import cn.odboy.core.service.system.impl.UserOnlineServiceImpl;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.model.system.model.UserJwtVo;
|
|
||||||
import cn.odboy.model.system.request.UserLoginRequest;
|
|
||||||
import cn.odboy.model.system.response.UserInfoResponse;
|
|
||||||
import cn.odboy.redis.RedisHelper;
|
import cn.odboy.redis.RedisHelper;
|
||||||
import cn.odboy.util.RsaEncryptUtil;
|
import cn.odboy.util.RsaEncryptUtil;
|
||||||
import cn.odboy.util.StringUtil;
|
import cn.odboy.util.StringUtil;
|
||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.odboy.application.tools.service.CaptchaService;
|
import cn.odboy.core.constant.CaptchaBizEnum;
|
||||||
import cn.odboy.application.tools.service.EmailService;
|
import cn.odboy.core.service.tools.CaptchaService;
|
||||||
import cn.odboy.constant.CaptchaBizEnum;
|
import cn.odboy.core.service.tools.EmailService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
+5
-5
@@ -1,10 +1,10 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.odboy.application.system.service.DeptService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.system.domain.Dept;
|
import cn.odboy.core.service.system.dto.CreateDeptRequest;
|
||||||
import cn.odboy.model.system.request.CreateDeptRequest;
|
import cn.odboy.core.service.system.dto.QueryDeptRequest;
|
||||||
import cn.odboy.model.system.request.QueryDeptRequest;
|
import cn.odboy.core.dal.dataobject.system.Dept;
|
||||||
|
import cn.odboy.core.service.system.DeptService;
|
||||||
import cn.odboy.util.PageUtil;
|
import cn.odboy.util.PageUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+5
-5
@@ -1,10 +1,10 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.odboy.application.system.service.DictService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.system.domain.Dict;
|
import cn.odboy.core.service.system.dto.CreateDictRequest;
|
||||||
import cn.odboy.model.system.request.CreateDictRequest;
|
import cn.odboy.core.service.system.dto.QueryDictRequest;
|
||||||
import cn.odboy.model.system.request.QueryDictRequest;
|
import cn.odboy.core.dal.dataobject.system.Dict;
|
||||||
|
import cn.odboy.core.service.system.DictService;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+5
-5
@@ -1,10 +1,10 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.odboy.application.system.service.DictDetailService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.system.domain.DictDetail;
|
import cn.odboy.core.service.system.dto.CreateDictDetailRequest;
|
||||||
import cn.odboy.model.system.request.CreateDictDetailRequest;
|
import cn.odboy.core.service.system.dto.QueryDictDetailRequest;
|
||||||
import cn.odboy.model.system.request.QueryDictDetailRequest;
|
import cn.odboy.core.dal.dataobject.system.DictDetail;
|
||||||
|
import cn.odboy.core.service.system.DictDetailService;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+5
-5
@@ -1,10 +1,10 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.odboy.application.system.service.JobService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.system.domain.Job;
|
import cn.odboy.core.service.system.dto.CreateJobRequest;
|
||||||
import cn.odboy.model.system.request.CreateJobRequest;
|
import cn.odboy.core.service.system.dto.QueryJobRequest;
|
||||||
import cn.odboy.model.system.request.QueryJobRequest;
|
import cn.odboy.core.dal.dataobject.system.Job;
|
||||||
|
import cn.odboy.core.service.system.JobService;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+6
-6
@@ -1,13 +1,13 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.odboy.application.system.service.MenuService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.context.SecurityHelper;
|
import cn.odboy.core.framework.permission.util.SecurityHelper;
|
||||||
|
import cn.odboy.core.service.system.dto.QueryMenuRequest;
|
||||||
|
import cn.odboy.core.dal.dataobject.system.Menu;
|
||||||
|
import cn.odboy.core.dal.dataobject.system.MenuResponse;
|
||||||
|
import cn.odboy.core.service.system.MenuService;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.model.system.domain.Menu;
|
|
||||||
import cn.odboy.model.system.request.QueryMenuRequest;
|
|
||||||
import cn.odboy.model.system.response.MenuResponse;
|
|
||||||
import cn.odboy.util.PageUtil;
|
import cn.odboy.util.PageUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.odboy.application.system.service.MonitorService;
|
import cn.odboy.core.service.system.MonitorService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
package cn.odboy.application.core.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.odboy.application.core.service.UserOnlineService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.system.model.UserOnlineVo;
|
import cn.odboy.core.service.system.dto.UserOnlineVo;
|
||||||
|
import cn.odboy.core.service.system.UserOnlineService;
|
||||||
import cn.odboy.util.DesEncryptUtil;
|
import cn.odboy.util.DesEncryptUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+6
-6
@@ -1,13 +1,13 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
import cn.odboy.application.system.service.RoleService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.context.SecurityHelper;
|
import cn.odboy.core.framework.permission.util.SecurityHelper;
|
||||||
|
import cn.odboy.core.service.system.dto.CreateRoleRequest;
|
||||||
|
import cn.odboy.core.service.system.dto.QueryRoleRequest;
|
||||||
|
import cn.odboy.core.dal.dataobject.system.Role;
|
||||||
|
import cn.odboy.core.service.system.RoleService;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.model.system.domain.Role;
|
|
||||||
import cn.odboy.model.system.request.CreateRoleRequest;
|
|
||||||
import cn.odboy.model.system.request.QueryRoleRequest;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+14
-14
@@ -1,22 +1,22 @@
|
|||||||
package cn.odboy.application.system.rest;
|
package cn.odboy.core.controller.system;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.odboy.application.system.service.DataService;
|
|
||||||
import cn.odboy.application.system.service.DeptService;
|
|
||||||
import cn.odboy.application.system.service.RoleService;
|
|
||||||
import cn.odboy.application.system.service.UserService;
|
|
||||||
import cn.odboy.application.tools.service.CaptchaService;
|
|
||||||
import cn.odboy.base.MyMetaOption;
|
import cn.odboy.base.MyMetaOption;
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.config.AppProperties;
|
import cn.odboy.core.framework.properties.AppProperties;
|
||||||
import cn.odboy.constant.CaptchaBizEnum;
|
import cn.odboy.core.constant.CaptchaBizEnum;
|
||||||
import cn.odboy.context.SecurityHelper;
|
import cn.odboy.core.framework.permission.util.SecurityHelper;
|
||||||
|
import cn.odboy.core.service.system.dto.QueryUserRequest;
|
||||||
|
import cn.odboy.core.dal.dataobject.system.Dept;
|
||||||
|
import cn.odboy.core.dal.dataobject.system.Role;
|
||||||
|
import cn.odboy.core.dal.dataobject.system.UpdateUserPasswordResponse;
|
||||||
|
import cn.odboy.core.dal.dataobject.system.User;
|
||||||
|
import cn.odboy.core.service.system.DataService;
|
||||||
|
import cn.odboy.core.service.system.DeptService;
|
||||||
|
import cn.odboy.core.service.system.RoleService;
|
||||||
|
import cn.odboy.core.service.system.UserService;
|
||||||
|
import cn.odboy.core.service.tools.CaptchaService;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.model.system.domain.Dept;
|
|
||||||
import cn.odboy.model.system.domain.Role;
|
|
||||||
import cn.odboy.model.system.domain.User;
|
|
||||||
import cn.odboy.model.system.request.QueryUserRequest;
|
|
||||||
import cn.odboy.model.system.response.UpdateUserPasswordResponse;
|
|
||||||
import cn.odboy.util.PageUtil;
|
import cn.odboy.util.PageUtil;
|
||||||
import cn.odboy.util.RsaEncryptUtil;
|
import cn.odboy.util.RsaEncryptUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
package cn.odboy.application.tools.rest;
|
package cn.odboy.core.controller.tools;
|
||||||
|
|
||||||
import cn.odboy.application.tools.service.EmailService;
|
import cn.odboy.core.service.tools.dto.SendEmailRequest;
|
||||||
import cn.odboy.model.tools.domain.EmailConfig;
|
import cn.odboy.core.dal.dataobject.tools.EmailConfig;
|
||||||
import cn.odboy.model.tools.request.SendEmailRequest;
|
import cn.odboy.core.service.tools.EmailService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
+4
-4
@@ -1,11 +1,11 @@
|
|||||||
package cn.odboy.application.tools.rest;
|
package cn.odboy.core.controller.tools;
|
||||||
|
|
||||||
import cn.odboy.application.tools.service.LocalStorageService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.constant.FileTypeEnum;
|
import cn.odboy.constant.FileTypeEnum;
|
||||||
|
import cn.odboy.core.service.tools.dto.QueryLocalStorageRequest;
|
||||||
|
import cn.odboy.core.dal.dataobject.tools.LocalStorage;
|
||||||
|
import cn.odboy.core.service.tools.LocalStorageService;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.model.tools.domain.LocalStorage;
|
|
||||||
import cn.odboy.model.tools.request.QueryLocalStorageRequest;
|
|
||||||
import cn.odboy.util.FileUtil;
|
import cn.odboy.util.FileUtil;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
+6
-6
@@ -1,11 +1,11 @@
|
|||||||
package cn.odboy.application.tools.rest;
|
package cn.odboy.core.controller.tools;
|
||||||
|
|
||||||
import cn.odboy.application.tools.service.QiniuConfigService;
|
|
||||||
import cn.odboy.application.tools.service.QiniuContentService;
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.tools.domain.QiniuConfig;
|
import cn.odboy.core.service.tools.dto.QueryQiniuRequest;
|
||||||
import cn.odboy.model.tools.domain.QiniuContent;
|
import cn.odboy.core.dal.dataobject.tools.QiniuConfig;
|
||||||
import cn.odboy.model.tools.request.QueryQiniuRequest;
|
import cn.odboy.core.dal.dataobject.tools.QiniuContent;
|
||||||
|
import cn.odboy.core.service.tools.QiniuConfigService;
|
||||||
|
import cn.odboy.core.service.tools.QiniuContentService;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.job.domain;
|
package cn.odboy.core.dal.dataobject.job;
|
||||||
|
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.job.domain;
|
package cn.odboy.core.dal.dataobject.job;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.domain;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.domain;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.domain;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.domain;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.domain;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.model.system.response;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import cn.odboy.model.system.model.MenuMetaVo;
|
import cn.odboy.core.service.system.dto.MenuMetaVo;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.model.system.domain;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
import cn.odboy.constant.DataScopeEnum;
|
import cn.odboy.core.constant.DataScopeEnum;
|
||||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.response;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.domain;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
package cn.odboy.model.system.response;
|
package cn.odboy.core.dal.dataobject.system;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import cn.odboy.model.system.model.RoleCodeVo;
|
import cn.odboy.core.service.system.dto.RoleCodeVo;
|
||||||
import cn.odboy.model.system.model.SimpleUserVo;
|
import cn.odboy.core.service.system.dto.SimpleUserVo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.tools.domain;
|
package cn.odboy.core.dal.dataobject.tools;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.tools.domain;
|
package cn.odboy.core.dal.dataobject.tools;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.bean.copier.CopyOptions;
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.tools.domain;
|
package cn.odboy.core.dal.dataobject.tools;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.tools.domain;
|
package cn.odboy.core.dal.dataobject.tools;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.job.mapper;
|
package cn.odboy.core.dal.mysql.job;
|
||||||
|
|
||||||
import cn.odboy.model.job.domain.QuartzJob;
|
import cn.odboy.core.service.job.dto.QueryQuartzJobRequest;
|
||||||
import cn.odboy.model.job.request.QueryQuartzJobRequest;
|
import cn.odboy.core.dal.dataobject.job.QuartzJob;
|
||||||
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;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.job.mapper;
|
package cn.odboy.core.dal.mysql.job;
|
||||||
|
|
||||||
import cn.odboy.model.job.domain.QuartzLog;
|
import cn.odboy.core.service.job.dto.QueryQuartzJobRequest;
|
||||||
import cn.odboy.model.job.request.QueryQuartzJobRequest;
|
import cn.odboy.core.dal.dataobject.job.QuartzLog;
|
||||||
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;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Dept;
|
import cn.odboy.core.service.system.dto.QueryDeptRequest;
|
||||||
import cn.odboy.model.system.request.QueryDeptRequest;
|
import cn.odboy.core.dal.dataobject.system.Dept;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.DictDetail;
|
import cn.odboy.core.service.system.dto.QueryDictDetailRequest;
|
||||||
import cn.odboy.model.system.request.QueryDictDetailRequest;
|
import cn.odboy.core.dal.dataobject.system.DictDetail;
|
||||||
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;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Dict;
|
import cn.odboy.core.service.system.dto.QueryDictRequest;
|
||||||
import cn.odboy.model.system.request.QueryDictRequest;
|
import cn.odboy.core.dal.dataobject.system.Dict;
|
||||||
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;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Job;
|
import cn.odboy.core.service.system.dto.QueryJobRequest;
|
||||||
import cn.odboy.model.system.request.QueryJobRequest;
|
import cn.odboy.core.dal.dataobject.system.Job;
|
||||||
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;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Menu;
|
import cn.odboy.core.service.system.dto.QueryMenuRequest;
|
||||||
import cn.odboy.model.system.request.QueryMenuRequest;
|
import cn.odboy.core.dal.dataobject.system.Menu;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
+4
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Dept;
|
import cn.odboy.core.dal.dataobject.system.Dept;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -8,6 +8,8 @@ import java.util.Set;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface RoleDeptMapper {
|
public interface RoleDeptMapper {
|
||||||
void insertBatchWithRoleId(@Param("depts") Set<Dept> depts, @Param("roleId") Long roleId);
|
void insertBatchWithRoleId(@Param("depts") Set<Dept> depts, @Param("roleId") Long roleId);
|
||||||
|
|
||||||
void deleteByRoleId(@Param("roleId") Long roleId);
|
void deleteByRoleId(@Param("roleId") Long roleId);
|
||||||
|
|
||||||
void deleteByRoleIds(@Param("roleIds") Set<Long> roleIds);
|
void deleteByRoleIds(@Param("roleIds") Set<Long> roleIds);
|
||||||
}
|
}
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Role;
|
import cn.odboy.core.service.system.dto.QueryRoleRequest;
|
||||||
import cn.odboy.model.system.request.QueryRoleRequest;
|
import cn.odboy.core.dal.dataobject.system.Role;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
+3
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Menu;
|
import cn.odboy.core.dal.dataobject.system.Menu;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -9,6 +9,7 @@ import java.util.Set;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface RoleMenuMapper {
|
public interface RoleMenuMapper {
|
||||||
void insertBatchWithRoleId(@Param("menus") Set<Menu> menus, @Param("roleId") Long roleId);
|
void insertBatchWithRoleId(@Param("menus") Set<Menu> menus, @Param("roleId") Long roleId);
|
||||||
|
|
||||||
void deleteByRoleId(@Param("roleId") Long roleId);
|
void deleteByRoleId(@Param("roleId") Long roleId);
|
||||||
|
|
||||||
void deleteByRoleIds(@Param("roleIds") Set<Long> roleIds);
|
void deleteByRoleIds(@Param("roleIds") Set<Long> roleIds);
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Job;
|
import cn.odboy.core.dal.dataobject.system.Job;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.User;
|
import cn.odboy.core.service.system.dto.QueryUserRequest;
|
||||||
import cn.odboy.model.system.request.QueryUserRequest;
|
import cn.odboy.core.dal.dataobject.system.User;
|
||||||
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;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.system.mapper;
|
package cn.odboy.core.dal.mysql.system;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.Role;
|
import cn.odboy.core.dal.dataobject.system.Role;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.tools.mapper;
|
package cn.odboy.core.dal.mysql.tools;
|
||||||
|
|
||||||
import cn.odboy.model.tools.domain.EmailConfig;
|
import cn.odboy.core.dal.dataobject.tools.EmailConfig;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.tools.mapper;
|
package cn.odboy.core.dal.mysql.tools;
|
||||||
|
|
||||||
import cn.odboy.model.tools.domain.LocalStorage;
|
import cn.odboy.core.service.tools.dto.QueryLocalStorageRequest;
|
||||||
import cn.odboy.model.tools.request.QueryLocalStorageRequest;
|
import cn.odboy.core.dal.dataobject.tools.LocalStorage;
|
||||||
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;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.tools.mapper;
|
package cn.odboy.core.dal.mysql.tools;
|
||||||
|
|
||||||
import cn.odboy.model.tools.domain.QiniuConfig;
|
import cn.odboy.core.dal.dataobject.tools.QiniuConfig;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
+4
-3
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.tools.mapper;
|
package cn.odboy.core.dal.mysql.tools;
|
||||||
|
|
||||||
import cn.odboy.model.tools.domain.QiniuContent;
|
import cn.odboy.core.service.tools.dto.QueryQiniuRequest;
|
||||||
import cn.odboy.model.tools.request.QueryQiniuRequest;
|
import cn.odboy.core.dal.dataobject.tools.QiniuContent;
|
||||||
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;
|
||||||
@@ -12,5 +12,6 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface QiniuContentMapper extends BaseMapper<QiniuContent> {
|
public interface QiniuContentMapper extends BaseMapper<QiniuContent> {
|
||||||
QiniuContent getQiniuContentByName(@Param("name") String name);
|
QiniuContent getQiniuContentByName(@Param("name") String name);
|
||||||
|
|
||||||
IPage<QiniuContent> queryQiniuContentPageByArgs(@Param("criteria") QueryQiniuRequest criteria, Page<Object> page);
|
IPage<QiniuContent> queryQiniuContentPageByArgs(@Param("criteria") QueryQiniuRequest criteria, Page<Object> page);
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.server;
|
package cn.odboy.core.framework.doc;
|
||||||
|
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
import cn.odboy.util.AnonTagUtil;
|
import cn.odboy.util.AnonTagUtil;
|
||||||
+25
-12
@@ -1,11 +1,12 @@
|
|||||||
package cn.odboy.context;
|
package cn.odboy.core.framework.flow.context;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.thread.ThreadUtil;
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.odboy.context.SpringBeanHolder;
|
||||||
|
import cn.odboy.core.framework.flow.dto.PipelineNodeVo;
|
||||||
|
import cn.odboy.core.framework.flow.handler.SerialPipelineNodeHandler;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.handler.SerialPipelineNodeHandler;
|
|
||||||
import cn.odboy.model.pipeline.model.PipelineNodeVo;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -18,30 +19,42 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class PipelineManage {
|
public class PipelineManager {
|
||||||
private static final PipelineTaskPool pipelineTaskPool = new PipelineTaskPool("DefaultPipelineTaskPool");
|
private static final PipelineTaskPool pipelineTaskPool = new PipelineTaskPool("DefaultPipelineTaskPool");
|
||||||
|
|
||||||
public void execute() {
|
public void test() {
|
||||||
String pipelineId = IdUtil.objectId();
|
String pipelineId = IdUtil.objectId();
|
||||||
|
List<PipelineNodeVo> pipelineNodeVos = initialize();
|
||||||
|
execute(pipelineId, pipelineNodeVos);
|
||||||
|
|
||||||
|
ThreadUtil.safeSleep(5000);
|
||||||
|
pipelineTaskPool.stopTaskForcibly(pipelineId);
|
||||||
|
ThreadUtil.safeSleep(1000000);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void execute(String pipelineId, List<PipelineNodeVo> pipelineNodeVos) {
|
||||||
pipelineTaskPool.submitTask(pipelineId, () -> {
|
pipelineTaskPool.submitTask(pipelineId, () -> {
|
||||||
List<PipelineNodeVo> pipelineNodeVos = initialize();
|
|
||||||
for (PipelineNodeVo pipelineNodeVo : pipelineNodeVos) {
|
for (PipelineNodeVo pipelineNodeVo : pipelineNodeVos) {
|
||||||
executePipeline(pipelineId, pipelineNodeVo);
|
executePipeline(pipelineId, pipelineNodeVo);
|
||||||
while ("running".equals(pipelineNodeVo.getExecuteStatus())) {
|
// 要么成功,要么失败
|
||||||
|
boolean interrupted = Thread.currentThread().isInterrupted();
|
||||||
|
while (!interrupted && "running".equals(pipelineNodeVo.getExecuteStatus())) {
|
||||||
log.info("流水线执行中...");
|
log.info("流水线执行中...");
|
||||||
ThreadUtil.safeSleep(2000);
|
ThreadUtil.safeSleep(2000);
|
||||||
}
|
}
|
||||||
|
if (interrupted) {
|
||||||
|
log.info("流水线被中断...");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ThreadUtil.safeSleep(1000000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void executePipeline(String pipelineId, PipelineNodeVo pipelineNodeVo) {
|
private void executePipeline(String pipelineId, PipelineNodeVo pipelineNodeVo) {
|
||||||
String pipelineServiceName = String.format("pipeline:%s", pipelineNodeVo.getBizCode());
|
String pipelineServiceName = String.format("pipeline:%s", pipelineNodeVo.getBizCode());
|
||||||
SerialPipelineNodeHandler<Object, Object> pipelineNodeHandler = SpringBeanHolder.getBean(pipelineServiceName);
|
SerialPipelineNodeHandler<Object, Object> pipelineNodeHandler = SpringBeanHolder.getBean(pipelineServiceName);
|
||||||
try {
|
try {
|
||||||
Object o = pipelineNodeHandler.doProcess(pipelineId, null);
|
Object o = pipelineNodeHandler.doProcess(pipelineId, pipelineNodeVo);
|
||||||
int i = 1 / 0;
|
|
||||||
log.info("运行结果, {}", o);
|
log.info("运行结果, {}", o);
|
||||||
} catch (BadRequestException e) {
|
} catch (BadRequestException e) {
|
||||||
log.error("运行流水线异常", e);
|
log.error("运行流水线异常", e);
|
||||||
@@ -70,10 +83,10 @@ public class PipelineManage {
|
|||||||
pipelineNodeVos.add(createReleaseBranchNodeVo);
|
pipelineNodeVos.add(createReleaseBranchNodeVo);
|
||||||
|
|
||||||
PipelineNodeVo createReleaseBranchNodeVo1 = new PipelineNodeVo();
|
PipelineNodeVo createReleaseBranchNodeVo1 = new PipelineNodeVo();
|
||||||
createReleaseBranchNodeVo1.setName("初始化1");
|
createReleaseBranchNodeVo1.setName("代码构建");
|
||||||
createReleaseBranchNodeVo1.setClick(true);
|
createReleaseBranchNodeVo1.setClick(true);
|
||||||
createReleaseBranchNodeVo1.setButtonList(null);
|
createReleaseBranchNodeVo1.setButtonList(null);
|
||||||
createReleaseBranchNodeVo1.setBizCode("create_release_branch");
|
createReleaseBranchNodeVo1.setBizCode("build_code");
|
||||||
createReleaseBranchNodeVo1.setStartTimeMillis(DateTime.now().getTime());
|
createReleaseBranchNodeVo1.setStartTimeMillis(DateTime.now().getTime());
|
||||||
createReleaseBranchNodeVo1.setDurationMillis(0L);
|
createReleaseBranchNodeVo1.setDurationMillis(0L);
|
||||||
createReleaseBranchNodeVo1.setExecuteStatus("running");
|
createReleaseBranchNodeVo1.setExecuteStatus("running");
|
||||||
+211
@@ -0,0 +1,211 @@
|
|||||||
|
package cn.odboy.core.framework.flow.context;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.odboy.context.SpringBeanHolder;
|
||||||
|
import cn.odboy.core.framework.flow.dto.PipelineNodeVo;
|
||||||
|
import cn.odboy.core.framework.flow.handler.SerialPipelineNodeHandler;
|
||||||
|
import cn.odboy.exception.BadRequestException;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流水线进程管理工具
|
||||||
|
*
|
||||||
|
* @author odboy
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class PipelineProcessManager {
|
||||||
|
// 使用ConcurrentHashMap保证线程安全
|
||||||
|
private final Map<String, Thread> runningTasks = new ConcurrentHashMap<>();
|
||||||
|
// 使用AtomicBoolean作为停止标志,保证原子性操作
|
||||||
|
private final Map<String, AtomicBoolean> stopFlags = new ConcurrentHashMap<>();
|
||||||
|
// 常量定义
|
||||||
|
private static final String PIPELINE_THREAD_PREFIX = "pipeline-";
|
||||||
|
private static final String PIPELINE_SERVICE_PREFIX = "pipeline:";
|
||||||
|
private static final String RUNNING_STATUS = "running";
|
||||||
|
private static final long DEFAULT_SLEEP_MS = 2000L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试方法
|
||||||
|
*/
|
||||||
|
public void test() {
|
||||||
|
String pipelineId = IdUtil.objectId();
|
||||||
|
List<PipelineNodeVo> pipelineNodes = initialize();
|
||||||
|
execute(pipelineId, pipelineNodes);
|
||||||
|
|
||||||
|
ThreadUtil.safeSleep(5000);
|
||||||
|
stopForcibly(pipelineId);
|
||||||
|
ThreadUtil.safeSleep(1000000);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行流水线
|
||||||
|
*
|
||||||
|
* @param pipelineId 流水线ID
|
||||||
|
* @param pipelineNodes 流水线节点列表
|
||||||
|
*/
|
||||||
|
public void execute(String pipelineId, List<PipelineNodeVo> pipelineNodes) {
|
||||||
|
if (runningTasks.containsKey(pipelineId)) {
|
||||||
|
log.warn("Pipeline [{}] is already running", pipelineId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
stopFlags.put(pipelineId, new AtomicBoolean(false));
|
||||||
|
|
||||||
|
Thread pipelineThread = new Thread(() -> processPipeline(pipelineId, pipelineNodes));
|
||||||
|
pipelineThread.setDaemon(true);
|
||||||
|
pipelineThread.setName(PIPELINE_THREAD_PREFIX + pipelineId);
|
||||||
|
|
||||||
|
runningTasks.put(pipelineId, pipelineThread);
|
||||||
|
pipelineThread.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理流水线任务
|
||||||
|
*/
|
||||||
|
private void processPipeline(String pipelineId, List<PipelineNodeVo> pipelineNodes) {
|
||||||
|
try {
|
||||||
|
for (PipelineNodeVo node : pipelineNodes) {
|
||||||
|
if (shouldStop(pipelineId)) {
|
||||||
|
log.info("Pipeline [{}] was interrupted", pipelineId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
executePipelineNode(pipelineId, node);
|
||||||
|
|
||||||
|
while (!shouldStop(pipelineId) && RUNNING_STATUS.equals(node.getExecuteStatus())) {
|
||||||
|
log.debug("Pipeline [{}] is running...", pipelineId);
|
||||||
|
sleepInterruptibly(DEFAULT_SLEEP_MS, pipelineId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shouldStop(pipelineId)) {
|
||||||
|
log.info("Pipeline [{}] was interrupted", pipelineId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("流水线异常", e);
|
||||||
|
} finally {
|
||||||
|
cleanup(pipelineId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查是否应该停止
|
||||||
|
*/
|
||||||
|
private boolean shouldStop(String pipelineId) {
|
||||||
|
return Optional.ofNullable(stopFlags.get(pipelineId))
|
||||||
|
.map(AtomicBoolean::get)
|
||||||
|
.orElse(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可中断的睡眠
|
||||||
|
*/
|
||||||
|
private void sleepInterruptibly(long millis, String pipelineId) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(millis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
log.info("Pipeline [{}] sleep interrupted", pipelineId);
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清理资源
|
||||||
|
*/
|
||||||
|
private void cleanup(String pipelineId) {
|
||||||
|
runningTasks.remove(pipelineId);
|
||||||
|
stopFlags.remove(pipelineId);
|
||||||
|
log.info("Pipeline [{}] resources cleaned up", pipelineId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查流水线是否在运行
|
||||||
|
*/
|
||||||
|
public boolean isRunning(String pipelineId) {
|
||||||
|
return Optional.ofNullable(runningTasks.get(pipelineId))
|
||||||
|
.map(Thread::isAlive)
|
||||||
|
.orElse(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行单个流水线节点
|
||||||
|
*/
|
||||||
|
private void executePipelineNode(String pipelineId, PipelineNodeVo node) {
|
||||||
|
String serviceName = PIPELINE_SERVICE_PREFIX + node.getBizCode();
|
||||||
|
SerialPipelineNodeHandler<Object, Object> handler = SpringBeanHolder.getBean(serviceName);
|
||||||
|
try {
|
||||||
|
Object result = handler.doProcess(pipelineId, node);
|
||||||
|
log.info("Pipeline [{}] node [{}] executed, result: {}", pipelineId, node.getName(), result);
|
||||||
|
} catch (BadRequestException e) {
|
||||||
|
handlePipelineError(pipelineId, "Business error in pipeline", e);
|
||||||
|
} catch (Exception e) {
|
||||||
|
handlePipelineError(pipelineId, "Unexpected error in pipeline", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理流水线错误
|
||||||
|
*/
|
||||||
|
private void handlePipelineError(String pipelineId, String message, Exception e) {
|
||||||
|
log.error(message, e);
|
||||||
|
if (isRunning(pipelineId)) {
|
||||||
|
stopForcibly(pipelineId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 强制停止流水线
|
||||||
|
*/
|
||||||
|
public void stopForcibly(String pipelineId) {
|
||||||
|
Optional.ofNullable(stopFlags.get(pipelineId))
|
||||||
|
.ifPresent(flag -> flag.set(true));
|
||||||
|
|
||||||
|
Optional.ofNullable(runningTasks.get(pipelineId))
|
||||||
|
.ifPresent(thread -> {
|
||||||
|
try {
|
||||||
|
thread.interrupt();
|
||||||
|
} catch (SecurityException e) {
|
||||||
|
log.error("Failed to interrupt pipeline [{}]", pipelineId, e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化测试流水线节点
|
||||||
|
*/
|
||||||
|
public List<PipelineNodeVo> initialize() {
|
||||||
|
List<PipelineNodeVo> nodes = new ArrayList<>();
|
||||||
|
|
||||||
|
nodes.add(createNode("初始化", "create_release_branch"));
|
||||||
|
nodes.add(createNode("代码构建", "build_code"));
|
||||||
|
|
||||||
|
return nodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建流水线节点
|
||||||
|
*/
|
||||||
|
private PipelineNodeVo createNode(String name, String bizCode) {
|
||||||
|
PipelineNodeVo node = new PipelineNodeVo();
|
||||||
|
node.setName(name);
|
||||||
|
node.setClick(true);
|
||||||
|
node.setButtonList(null);
|
||||||
|
node.setBizCode(bizCode);
|
||||||
|
node.setStartTimeMillis(DateTime.now().getTime());
|
||||||
|
node.setDurationMillis(0L);
|
||||||
|
node.setExecuteStatus(RUNNING_STATUS);
|
||||||
|
node.setResultDesc(null);
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
}
|
||||||
+16
-3
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.context;
|
package cn.odboy.core.framework.flow.context;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.BlockingQueue;
|
import java.util.concurrent.BlockingQueue;
|
||||||
@@ -216,9 +216,22 @@ public class PipelineTaskPool {
|
|||||||
|
|
||||||
if (running.compareAndSet(true, false)) {
|
if (running.compareAndSet(true, false)) {
|
||||||
if (currentThread != null) {
|
if (currentThread != null) {
|
||||||
// currentThread.interrupt();
|
|
||||||
// 暴力停止线程
|
// 暴力停止线程
|
||||||
currentThread.stop();
|
// currentThread.stop();
|
||||||
|
try {
|
||||||
|
/**
|
||||||
|
* Thread.interrupt只支持终止线程的阻塞状态(wait、join、sleep),
|
||||||
|
* 在阻塞出抛出InterruptedException异常,但是并不会终止运行的线程本身;
|
||||||
|
* 所以需要注意,此处彻底销毁本线程,需要通过共享变量方式;
|
||||||
|
*/
|
||||||
|
currentThread.interrupt();
|
||||||
|
currentThread.join();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
currentThread.interrupt();
|
||||||
|
} catch (Exception e) {
|
||||||
|
// ignore
|
||||||
|
// currentThread.stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.pipeline.model;
|
package cn.odboy.core.framework.flow.dto;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+23
-5
@@ -1,8 +1,8 @@
|
|||||||
package cn.odboy.handler;
|
package cn.odboy.core.framework.flow.handler;
|
||||||
|
|
||||||
import cn.hutool.core.thread.ThreadUtil;
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
|
import cn.odboy.exception.BadRequestException;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import io.undertow.util.BadRequestException;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,6 +71,14 @@ public abstract class SerialPipelineNodeHandler<I, T> {
|
|||||||
*/
|
*/
|
||||||
protected abstract boolean isLocked(String pipelineId, I inputModel);
|
protected abstract boolean isLocked(String pipelineId, I inputModel);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当进程被中断时
|
||||||
|
*
|
||||||
|
* @param pipelineId 流水线id
|
||||||
|
* @param inputModel 输入参数
|
||||||
|
*/
|
||||||
|
protected abstract void onProcessInterrupted(String pipelineId, I inputModel);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 业务处理
|
* 业务处理
|
||||||
*
|
*
|
||||||
@@ -80,17 +88,27 @@ public abstract class SerialPipelineNodeHandler<I, T> {
|
|||||||
*/
|
*/
|
||||||
public T doProcess(String pipelineId, I inputModel) throws BadRequestException {
|
public T doProcess(String pipelineId, I inputModel) throws BadRequestException {
|
||||||
try {
|
try {
|
||||||
|
if (Thread.currentThread().isInterrupted()) {
|
||||||
|
onProcessInterrupted(pipelineId, inputModel);
|
||||||
|
throw new InterruptedException("业务被中断");
|
||||||
|
}
|
||||||
preProcess(pipelineId, inputModel);
|
preProcess(pipelineId, inputModel);
|
||||||
log.info("preProcess,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel));
|
log.info("preProcess,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
preProcessException(pipelineId, inputModel, e);
|
preProcessException(pipelineId, inputModel, e);
|
||||||
log.error("preProcessException,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel), e);
|
log.error("preProcessException,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel), e);
|
||||||
throw new BadRequestException(e);
|
throw new BadRequestException(e.getMessage());
|
||||||
|
}
|
||||||
|
if (Thread.currentThread().isInterrupted()) {
|
||||||
|
throw new BadRequestException("业务被中断");
|
||||||
}
|
}
|
||||||
while (isLocked(pipelineId, inputModel)) {
|
while (isLocked(pipelineId, inputModel)) {
|
||||||
ThreadUtil.safeSleep(2000);
|
ThreadUtil.safeSleep(2000);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
if (Thread.currentThread().isInterrupted()) {
|
||||||
|
throw new BadRequestException("业务被中断");
|
||||||
|
}
|
||||||
T processResult = process(pipelineId, inputModel);
|
T processResult = process(pipelineId, inputModel);
|
||||||
log.info("process,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel));
|
log.info("process,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel));
|
||||||
try {
|
try {
|
||||||
@@ -100,12 +118,12 @@ public abstract class SerialPipelineNodeHandler<I, T> {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
postProcessException(pipelineId, inputModel, processResult, e);
|
postProcessException(pipelineId, inputModel, processResult, e);
|
||||||
log.error("postProcessException,pipelineId={},inputModel={},processResult={}", pipelineId, JSON.toJSONString(inputModel), JSON.toJSONString(processResult));
|
log.error("postProcessException,pipelineId={},inputModel={},processResult={}", pipelineId, JSON.toJSONString(inputModel), JSON.toJSONString(processResult));
|
||||||
throw new BadRequestException(e);
|
throw new BadRequestException(e.getMessage());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
processException(pipelineId, inputModel, e);
|
processException(pipelineId, inputModel, e);
|
||||||
log.error("processException,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel), e);
|
log.error("processException,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel), e);
|
||||||
throw new BadRequestException(e);
|
throw new BadRequestException(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+10
-8
@@ -1,18 +1,18 @@
|
|||||||
package cn.odboy.service;
|
package cn.odboy.core.framework.flow.handler.impl;
|
||||||
|
|
||||||
import cn.odboy.handler.SerialPipelineNodeHandler;
|
import cn.odboy.core.framework.flow.handler.SerialPipelineNodeHandler;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Service("pipeline:create_release_branch")
|
@Service("pipeline:create_release_branch")
|
||||||
public class PipelineAppCreateReleaseBranchBiz extends SerialPipelineNodeHandler<Object, Object> {
|
public class PipelineAppCreateReleaseBranchHandlerServiceImpl extends SerialPipelineNodeHandler<Object, Object> {
|
||||||
@Override
|
@Override
|
||||||
public void preProcess(String pipelineId, Object inputModel) {
|
public void preProcess(String pipelineId, Object inputModel) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preProcessException(String pipelineId, Object inputModel, Exception e) {
|
public void preProcessException(String pipelineId, Object inputModel, Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -22,21 +22,23 @@ public class PipelineAppCreateReleaseBranchBiz extends SerialPipelineNodeHandler
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void processException(String pipelineId, Object inputModel, Exception e) {
|
public void processException(String pipelineId, Object inputModel, Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postProcess(String pipelineId, Object inputModel, Object processResult) {
|
public void postProcess(String pipelineId, Object inputModel, Object processResult) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postProcessException(String pipelineId, Object inputModel, Object processResult, Exception e) {
|
public void postProcessException(String pipelineId, Object inputModel, Object processResult, Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isLocked(String pipelineId, Object inputModel) {
|
public boolean isLocked(String pipelineId, Object inputModel) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onProcessInterrupted(String pipelineId, Object inputModel) {
|
||||||
|
log.error("pipeline is stopping");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.mybatis.config;
|
package cn.odboy.core.framework.mybatisplus.config;
|
||||||
|
|
||||||
import cn.odboy.mybatis.context.InsertBatchSqlInjector;
|
import cn.odboy.core.framework.mybatisplus.context.InsertBatchSqlInjector;
|
||||||
import com.baomidou.mybatisplus.annotation.DbType;
|
import com.baomidou.mybatisplus.annotation.DbType;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.mybatis.config;
|
package cn.odboy.core.framework.mybatisplus.config;
|
||||||
|
|
||||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
|
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
|
||||||
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
|
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.mybatis.constant;
|
package cn.odboy.core.framework.mybatisplus.constant;
|
||||||
|
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.mybatis.constant;
|
package cn.odboy.core.framework.mybatisplus.constant;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.mybatis.constant;
|
package cn.odboy.core.framework.mybatisplus.constant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 动态查询 枚举
|
* 动态查询 枚举
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.mybatis.context;
|
package cn.odboy.core.framework.mybatisplus.context;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
|
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
|
||||||
+1
-1
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package cn.odboy.mybatis.context;
|
package cn.odboy.core.framework.mybatisplus.context;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
|
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.mybatis.context;
|
package cn.odboy.core.framework.mybatisplus.context;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.odboy.context.SecurityHelper;
|
import cn.odboy.core.framework.permission.util.SecurityHelper;
|
||||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||||
import org.apache.ibatis.reflection.MetaObject;
|
import org.apache.ibatis.reflection.MetaObject;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
+1
-1
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package cn.odboy.mybatis.interfaces;
|
package cn.odboy.core.framework.mybatisplus.interfaces;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
+1
-1
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package cn.odboy.mybatis.interfaces;
|
package cn.odboy.core.framework.mybatisplus.interfaces;
|
||||||
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
+3
-3
@@ -13,14 +13,14 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package cn.odboy.mybatis.interfaces.impl;
|
package cn.odboy.core.framework.mybatisplus.interfaces.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
|
import cn.odboy.core.framework.mybatisplus.interfaces.EasyMapper;
|
||||||
|
import cn.odboy.core.framework.mybatisplus.util.MybatisHelper;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.mybatis.interfaces.EasyMapper;
|
|
||||||
import cn.odboy.mybatis.util.MybatisHelper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.enums.SqlMethod;
|
import com.baomidou.mybatisplus.core.enums.SqlMethod;
|
||||||
+1
-1
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package cn.odboy.mybatis.util;
|
package cn.odboy.core.framework.mybatisplus.util;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
|
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
|
||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
package cn.odboy.mybatis.util;
|
package cn.odboy.core.framework.mybatisplus.util;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.MyEntity;
|
import cn.odboy.base.MyEntity;
|
||||||
|
import cn.odboy.core.framework.mybatisplus.constant.MpQuery;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.mybatis.constant.MpQuery;
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.application.core.context;
|
package cn.odboy.core.framework.permission;
|
||||||
|
|
||||||
import cn.odboy.exception.handler.ApiError;
|
import cn.odboy.exception.handler.ApiError;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.application.core.context;
|
package cn.odboy.core.framework.permission;
|
||||||
|
|
||||||
import cn.odboy.exception.handler.ApiError;
|
import cn.odboy.exception.handler.ApiError;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package cn.odboy.application.core.context;
|
package cn.odboy.core.framework.permission;
|
||||||
|
|
||||||
import cn.odboy.application.core.service.impl.UserOnlineServiceImpl;
|
|
||||||
import cn.odboy.constant.RequestMethodEnum;
|
import cn.odboy.constant.RequestMethodEnum;
|
||||||
|
import cn.odboy.core.service.system.impl.UserOnlineServiceImpl;
|
||||||
import cn.odboy.util.AnonTagUtil;
|
import cn.odboy.util.AnonTagUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.core.context;
|
package cn.odboy.core.framework.permission;
|
||||||
|
|
||||||
import cn.odboy.application.core.service.impl.UserOnlineServiceImpl;
|
import cn.odboy.core.service.system.impl.UserOnlineServiceImpl;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.security.config.annotation.SecurityConfigurerAdapter;
|
import org.springframework.security.config.annotation.SecurityConfigurerAdapter;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
package cn.odboy.application.core.context;
|
package cn.odboy.core.framework.permission;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.application.core.service.impl.UserOnlineServiceImpl;
|
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
import cn.odboy.model.system.model.UserOnlineVo;
|
import cn.odboy.core.service.system.dto.UserOnlineVo;
|
||||||
|
import cn.odboy.core.service.system.impl.UserOnlineServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
+4
-4
@@ -1,12 +1,12 @@
|
|||||||
package cn.odboy.application.core.context;
|
package cn.odboy.core.framework.permission;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateField;
|
import cn.hutool.core.date.DateField;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.odboy.config.AppProperties;
|
import cn.odboy.core.framework.properties.AppProperties;
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
import cn.odboy.constant.SystemRedisKey;
|
import cn.odboy.core.constant.SystemRedisKey;
|
||||||
import cn.odboy.model.system.model.UserJwtVo;
|
import cn.odboy.core.service.system.dto.UserJwtVo;
|
||||||
import cn.odboy.redis.RedisHelper;
|
import cn.odboy.redis.RedisHelper;
|
||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
import io.jsonwebtoken.JwtBuilder;
|
import io.jsonwebtoken.JwtBuilder;
|
||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package cn.odboy.context;
|
package cn.odboy.core.framework.permission.config;
|
||||||
|
|
||||||
|
import cn.odboy.core.framework.permission.util.SecurityHelper;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
+3
-2
@@ -1,10 +1,11 @@
|
|||||||
package cn.odboy.context;
|
package cn.odboy.core.framework.permission.util;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.jwt.JWT;
|
import cn.hutool.jwt.JWT;
|
||||||
import cn.hutool.jwt.JWTUtil;
|
import cn.hutool.jwt.JWTUtil;
|
||||||
import cn.odboy.constant.DataScopeEnum;
|
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
|
import cn.odboy.context.SpringBeanHolder;
|
||||||
|
import cn.odboy.core.constant.DataScopeEnum;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
+7
-7
@@ -1,11 +1,11 @@
|
|||||||
package cn.odboy.config;
|
package cn.odboy.core.framework.properties;
|
||||||
|
|
||||||
import cn.odboy.config.model.ContentRsaEncodeSettingModel;
|
import cn.odboy.core.framework.properties.dto.ContentRsaEncodeSettingModel;
|
||||||
import cn.odboy.config.model.FileUploadSettingModel;
|
import cn.odboy.core.framework.properties.dto.FileUploadSettingModel;
|
||||||
import cn.odboy.config.model.JwtAuthSettingModel;
|
import cn.odboy.core.framework.properties.dto.JwtAuthSettingModel;
|
||||||
import cn.odboy.config.model.QuartzTaskThreadPoolSettingModel;
|
import cn.odboy.core.framework.properties.dto.QuartzTaskThreadPoolSettingModel;
|
||||||
import cn.odboy.config.model.SwaggerApiDocSettingModel;
|
import cn.odboy.core.framework.properties.dto.SwaggerApiDocSettingModel;
|
||||||
import cn.odboy.config.model.UserLoginSettingModel;
|
import cn.odboy.core.framework.properties.dto.UserLoginSettingModel;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
+2
-1
@@ -1,6 +1,7 @@
|
|||||||
package cn.odboy.config.model;
|
package cn.odboy.core.framework.properties.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 密码加密传输,前端公钥加密,后端私钥解密
|
* 密码加密传输,前端公钥加密,后端私钥解密
|
||||||
*/
|
*/
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.config.model;
|
package cn.odboy.core.framework.properties.dto;
|
||||||
|
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.config.model;
|
package cn.odboy.core.framework.properties.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.config.model;
|
package cn.odboy.core.framework.properties.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
package cn.odboy.config.model;
|
package cn.odboy.core.framework.properties.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author odboy
|
* @author odboy
|
||||||
* @date 2025-04-13
|
* @date 2025-04-13
|
||||||
*/
|
*/
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.config.model;
|
package cn.odboy.core.framework.properties.dto;
|
||||||
|
|
||||||
import cn.odboy.constant.LoginCodeEnum;
|
import cn.odboy.core.constant.LoginCodeEnum;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.util.StringUtil;
|
import cn.odboy.util.StringUtil;
|
||||||
import com.wf.captcha.ArithmeticCaptcha;
|
import com.wf.captcha.ArithmeticCaptcha;
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user