rebuild
This commit is contained in:
@@ -39,7 +39,8 @@ public class RedisConfiguration extends CachingConfigurerSupport {
|
||||
*/
|
||||
private static final String[] WHITELIST_STR = {
|
||||
"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>
|
||||
<version>1.3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.odboy</groupId>
|
||||
<artifactId>cutejava-pipline</artifactId>
|
||||
<version>1.3.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<!-- 打包 -->
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package cn.odboy;
|
||||
|
||||
|
||||
import cn.odboy.mybatis.util.CmdGenHelper;
|
||||
import cn.odboy.core.framework.mybatisplus.util.CmdGenHelper;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
||||
@@ -154,7 +154,7 @@ mybatis-plus:
|
||||
id-type: auto
|
||||
# 表名是否使用驼峰转下划线命名,只对表名生效
|
||||
table-underline: true
|
||||
# 是否控制台 print mybatis-plus 的 LOGO
|
||||
# 是否控制台 print mybatisplus-plus 的 LOGO
|
||||
banner: true
|
||||
|
||||
app:
|
||||
|
||||
@@ -154,7 +154,7 @@ mybatis-plus:
|
||||
id-type: auto
|
||||
# 表名是否使用驼峰转下划线命名,只对表名生效
|
||||
table-underline: true
|
||||
# 是否控制台 print mybatis-plus 的 LOGO
|
||||
# 是否控制台 print mybatisplus-plus 的 LOGO
|
||||
banner: true
|
||||
|
||||
app:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 应用的拦截模块
|
||||
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
|
||||
# 日期格式
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
@@ -8,11 +9,18 @@ import org.springframework.boot.test.context.SpringBootTest;
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
public class PipelineTests {
|
||||
@Autowired
|
||||
private PipelineManage pipelineManage;
|
||||
private PipelineManager pipelineManager;
|
||||
@Autowired
|
||||
private PipelineProcessManager pipelineProcessManager;
|
||||
|
||||
@Test
|
||||
public void contextLoads() {
|
||||
pipelineManage.execute();
|
||||
public void testPipelineManager() {
|
||||
pipelineManager.test();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPipelineProcessManager() {
|
||||
pipelineProcessManager.test();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,12 +15,14 @@
|
||||
<jjwt.version>0.11.5</jjwt.version>
|
||||
<!-- oshi监控需要指定jna版本, 问题详见 https://github.com/oshi/oshi/issues/1040 -->
|
||||
<jna.version>5.8.0</jna.version>
|
||||
<mail.version>1.4.7</mail.version>
|
||||
<qiniu.version>7.9.3</qiniu.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.odboy</groupId>
|
||||
<artifactId>cutejava-job</artifactId>
|
||||
<artifactId>cutejava-common</artifactId>
|
||||
<version>1.3.1</version>
|
||||
</dependency>
|
||||
|
||||
@@ -59,5 +61,35 @@
|
||||
<artifactId>oshi-core</artifactId>
|
||||
<version>6.6.5</version>
|
||||
</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>
|
||||
</project>
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cn.odboy.constant;
|
||||
package cn.odboy.core.constant;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cn.odboy.constant;
|
||||
package cn.odboy.core.constant;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
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集合
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cn.odboy.constant;
|
||||
package cn.odboy.core.constant;
|
||||
|
||||
public interface TransferProtocolConst {
|
||||
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.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.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 io.swagger.annotations.Api;
|
||||
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.util.IdUtil;
|
||||
import cn.odboy.annotation.AnonymousPostMapping;
|
||||
import cn.odboy.constant.LoginCodeEnum;
|
||||
import cn.odboy.application.core.context.TokenProvider;
|
||||
import cn.odboy.application.core.service.impl.UserDetailsServiceImpl;
|
||||
import cn.odboy.application.core.service.impl.UserOnlineServiceImpl;
|
||||
import cn.odboy.core.framework.properties.AppProperties;
|
||||
import cn.odboy.core.constant.LoginCodeEnum;
|
||||
import cn.odboy.constant.SystemConst;
|
||||
import cn.odboy.constant.SystemRedisKey;
|
||||
import cn.odboy.config.AppProperties;
|
||||
import cn.odboy.context.SecurityHelper;
|
||||
import cn.odboy.core.constant.SystemRedisKey;
|
||||
import cn.odboy.core.framework.permission.util.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.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.util.RsaEncryptUtil;
|
||||
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.application.tools.service.EmailService;
|
||||
import cn.odboy.constant.CaptchaBizEnum;
|
||||
import cn.odboy.core.constant.CaptchaBizEnum;
|
||||
import cn.odboy.core.service.tools.CaptchaService;
|
||||
import cn.odboy.core.service.tools.EmailService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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.model.system.domain.Dept;
|
||||
import cn.odboy.model.system.request.CreateDeptRequest;
|
||||
import cn.odboy.model.system.request.QueryDeptRequest;
|
||||
import cn.odboy.core.service.system.dto.CreateDeptRequest;
|
||||
import cn.odboy.core.service.system.dto.QueryDeptRequest;
|
||||
import cn.odboy.core.dal.dataobject.system.Dept;
|
||||
import cn.odboy.core.service.system.DeptService;
|
||||
import cn.odboy.util.PageUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
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.model.system.domain.Dict;
|
||||
import cn.odboy.model.system.request.CreateDictRequest;
|
||||
import cn.odboy.model.system.request.QueryDictRequest;
|
||||
import cn.odboy.core.service.system.dto.CreateDictRequest;
|
||||
import cn.odboy.core.service.system.dto.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 io.swagger.annotations.Api;
|
||||
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.model.system.domain.DictDetail;
|
||||
import cn.odboy.model.system.request.CreateDictDetailRequest;
|
||||
import cn.odboy.model.system.request.QueryDictDetailRequest;
|
||||
import cn.odboy.core.service.system.dto.CreateDictDetailRequest;
|
||||
import cn.odboy.core.service.system.dto.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 io.swagger.annotations.Api;
|
||||
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.model.system.domain.Job;
|
||||
import cn.odboy.model.system.request.CreateJobRequest;
|
||||
import cn.odboy.model.system.request.QueryJobRequest;
|
||||
import cn.odboy.core.service.system.dto.CreateJobRequest;
|
||||
import cn.odboy.core.service.system.dto.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 io.swagger.annotations.Api;
|
||||
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.odboy.application.system.service.MenuService;
|
||||
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.model.system.domain.Menu;
|
||||
import cn.odboy.model.system.request.QueryMenuRequest;
|
||||
import cn.odboy.model.system.response.MenuResponse;
|
||||
import cn.odboy.util.PageUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
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.ApiOperation;
|
||||
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.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 io.swagger.annotations.Api;
|
||||
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.odboy.application.system.service.RoleService;
|
||||
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.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 io.swagger.annotations.Api;
|
||||
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.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.PageResult;
|
||||
import cn.odboy.config.AppProperties;
|
||||
import cn.odboy.constant.CaptchaBizEnum;
|
||||
import cn.odboy.context.SecurityHelper;
|
||||
import cn.odboy.core.framework.properties.AppProperties;
|
||||
import cn.odboy.core.constant.CaptchaBizEnum;
|
||||
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.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.RsaEncryptUtil;
|
||||
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.model.tools.domain.EmailConfig;
|
||||
import cn.odboy.model.tools.request.SendEmailRequest;
|
||||
import cn.odboy.core.service.tools.dto.SendEmailRequest;
|
||||
import cn.odboy.core.dal.dataobject.tools.EmailConfig;
|
||||
import cn.odboy.core.service.tools.EmailService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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.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.model.tools.domain.LocalStorage;
|
||||
import cn.odboy.model.tools.request.QueryLocalStorageRequest;
|
||||
import cn.odboy.util.FileUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.model.tools.domain.QiniuConfig;
|
||||
import cn.odboy.model.tools.domain.QiniuContent;
|
||||
import cn.odboy.model.tools.request.QueryQiniuRequest;
|
||||
import cn.odboy.core.service.tools.dto.QueryQiniuRequest;
|
||||
import cn.odboy.core.dal.dataobject.tools.QiniuConfig;
|
||||
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 io.swagger.annotations.Api;
|
||||
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 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 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 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 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 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 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 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.model.system.model.MenuMetaVo;
|
||||
import cn.odboy.core.service.system.dto.MenuMetaVo;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
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.constant.DataScopeEnum;
|
||||
import cn.odboy.core.constant.DataScopeEnum;
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
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 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 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.model.system.model.RoleCodeVo;
|
||||
import cn.odboy.model.system.model.SimpleUserVo;
|
||||
import cn.odboy.core.service.system.dto.RoleCodeVo;
|
||||
import cn.odboy.core.service.system.dto.SimpleUserVo;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
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 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.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 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 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.model.job.request.QueryQuartzJobRequest;
|
||||
import cn.odboy.core.service.job.dto.QueryQuartzJobRequest;
|
||||
import cn.odboy.core.dal.dataobject.job.QuartzJob;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.model.job.request.QueryQuartzJobRequest;
|
||||
import cn.odboy.core.service.job.dto.QueryQuartzJobRequest;
|
||||
import cn.odboy.core.dal.dataobject.job.QuartzLog;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.model.system.request.QueryDeptRequest;
|
||||
import cn.odboy.core.service.system.dto.QueryDeptRequest;
|
||||
import cn.odboy.core.dal.dataobject.system.Dept;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
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.model.system.request.QueryDictDetailRequest;
|
||||
import cn.odboy.core.service.system.dto.QueryDictDetailRequest;
|
||||
import cn.odboy.core.dal.dataobject.system.DictDetail;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.model.system.request.QueryDictRequest;
|
||||
import cn.odboy.core.service.system.dto.QueryDictRequest;
|
||||
import cn.odboy.core.dal.dataobject.system.Dict;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.model.system.request.QueryJobRequest;
|
||||
import cn.odboy.core.service.system.dto.QueryJobRequest;
|
||||
import cn.odboy.core.dal.dataobject.system.Job;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.model.system.request.QueryMenuRequest;
|
||||
import cn.odboy.core.service.system.dto.QueryMenuRequest;
|
||||
import cn.odboy.core.dal.dataobject.system.Menu;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
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.Param;
|
||||
import java.util.Set;
|
||||
@@ -8,6 +8,8 @@ import java.util.Set;
|
||||
@Mapper
|
||||
public interface RoleDeptMapper {
|
||||
void insertBatchWithRoleId(@Param("depts") Set<Dept> depts, @Param("roleId") Long roleId);
|
||||
|
||||
void deleteByRoleId(@Param("roleId") Long roleId);
|
||||
|
||||
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.model.system.request.QueryRoleRequest;
|
||||
import cn.odboy.core.service.system.dto.QueryRoleRequest;
|
||||
import cn.odboy.core.dal.dataobject.system.Role;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
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.Param;
|
||||
import java.util.Set;
|
||||
@@ -9,6 +9,7 @@ import java.util.Set;
|
||||
@Mapper
|
||||
public interface RoleMenuMapper {
|
||||
void insertBatchWithRoleId(@Param("menus") Set<Menu> menus, @Param("roleId") Long roleId);
|
||||
|
||||
void deleteByRoleId(@Param("roleId") Long roleId);
|
||||
|
||||
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.Param;
|
||||
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.model.system.request.QueryUserRequest;
|
||||
import cn.odboy.core.service.system.dto.QueryUserRequest;
|
||||
import cn.odboy.core.dal.dataobject.system.User;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.Param;
|
||||
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 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.model.tools.request.QueryLocalStorageRequest;
|
||||
import cn.odboy.core.service.tools.dto.QueryLocalStorageRequest;
|
||||
import cn.odboy.core.dal.dataobject.tools.LocalStorage;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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 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.model.tools.request.QueryQiniuRequest;
|
||||
import cn.odboy.core.service.tools.dto.QueryQiniuRequest;
|
||||
import cn.odboy.core.dal.dataobject.tools.QiniuContent;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -12,5 +12,6 @@ import org.apache.ibatis.annotations.Param;
|
||||
@Mapper
|
||||
public interface QiniuContentMapper extends BaseMapper<QiniuContent> {
|
||||
QiniuContent getQiniuContentByName(@Param("name") String name);
|
||||
|
||||
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.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.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 cn.odboy.handler.SerialPipelineNodeHandler;
|
||||
import cn.odboy.model.pipeline.model.PipelineNodeVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import java.util.ArrayList;
|
||||
@@ -18,30 +19,42 @@ import java.util.List;
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class PipelineManage {
|
||||
public class PipelineManager {
|
||||
private static final PipelineTaskPool pipelineTaskPool = new PipelineTaskPool("DefaultPipelineTaskPool");
|
||||
|
||||
public void execute() {
|
||||
public void test() {
|
||||
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, () -> {
|
||||
List<PipelineNodeVo> pipelineNodeVos = initialize();
|
||||
for (PipelineNodeVo pipelineNodeVo : pipelineNodeVos) {
|
||||
executePipeline(pipelineId, pipelineNodeVo);
|
||||
while ("running".equals(pipelineNodeVo.getExecuteStatus())) {
|
||||
// 要么成功,要么失败
|
||||
boolean interrupted = Thread.currentThread().isInterrupted();
|
||||
while (!interrupted && "running".equals(pipelineNodeVo.getExecuteStatus())) {
|
||||
log.info("流水线执行中...");
|
||||
ThreadUtil.safeSleep(2000);
|
||||
}
|
||||
if (interrupted) {
|
||||
log.info("流水线被中断...");
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
ThreadUtil.safeSleep(1000000);
|
||||
}
|
||||
|
||||
private void executePipeline(String pipelineId, PipelineNodeVo pipelineNodeVo) {
|
||||
String pipelineServiceName = String.format("pipeline:%s", pipelineNodeVo.getBizCode());
|
||||
SerialPipelineNodeHandler<Object, Object> pipelineNodeHandler = SpringBeanHolder.getBean(pipelineServiceName);
|
||||
try {
|
||||
Object o = pipelineNodeHandler.doProcess(pipelineId, null);
|
||||
int i = 1 / 0;
|
||||
Object o = pipelineNodeHandler.doProcess(pipelineId, pipelineNodeVo);
|
||||
log.info("运行结果, {}", o);
|
||||
} catch (BadRequestException e) {
|
||||
log.error("运行流水线异常", e);
|
||||
@@ -70,10 +83,10 @@ public class PipelineManage {
|
||||
pipelineNodeVos.add(createReleaseBranchNodeVo);
|
||||
|
||||
PipelineNodeVo createReleaseBranchNodeVo1 = new PipelineNodeVo();
|
||||
createReleaseBranchNodeVo1.setName("初始化1");
|
||||
createReleaseBranchNodeVo1.setName("代码构建");
|
||||
createReleaseBranchNodeVo1.setClick(true);
|
||||
createReleaseBranchNodeVo1.setButtonList(null);
|
||||
createReleaseBranchNodeVo1.setBizCode("create_release_branch");
|
||||
createReleaseBranchNodeVo1.setBizCode("build_code");
|
||||
createReleaseBranchNodeVo1.setStartTimeMillis(DateTime.now().getTime());
|
||||
createReleaseBranchNodeVo1.setDurationMillis(0L);
|
||||
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.concurrent.BlockingQueue;
|
||||
@@ -216,9 +216,22 @@ public class PipelineTaskPool {
|
||||
|
||||
if (running.compareAndSet(true, false)) {
|
||||
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;
|
||||
}
|
||||
+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 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.odboy.exception.BadRequestException;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import io.undertow.util.BadRequestException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
@@ -71,6 +71,14 @@ public abstract class SerialPipelineNodeHandler<I, T> {
|
||||
*/
|
||||
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 {
|
||||
try {
|
||||
if (Thread.currentThread().isInterrupted()) {
|
||||
onProcessInterrupted(pipelineId, inputModel);
|
||||
throw new InterruptedException("业务被中断");
|
||||
}
|
||||
preProcess(pipelineId, inputModel);
|
||||
log.info("preProcess,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel));
|
||||
} catch (Exception e) {
|
||||
preProcessException(pipelineId, 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)) {
|
||||
ThreadUtil.safeSleep(2000);
|
||||
}
|
||||
try {
|
||||
if (Thread.currentThread().isInterrupted()) {
|
||||
throw new BadRequestException("业务被中断");
|
||||
}
|
||||
T processResult = process(pipelineId, inputModel);
|
||||
log.info("process,pipelineId={},inputModel={}", pipelineId, JSON.toJSONString(inputModel));
|
||||
try {
|
||||
@@ -100,12 +118,12 @@ public abstract class SerialPipelineNodeHandler<I, T> {
|
||||
} catch (Exception e) {
|
||||
postProcessException(pipelineId, inputModel, processResult, e);
|
||||
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) {
|
||||
processException(pipelineId, 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;
|
||||
|
||||
@Slf4j
|
||||
@Service("pipeline:create_release_branch")
|
||||
public class PipelineAppCreateReleaseBranchBiz extends SerialPipelineNodeHandler<Object, Object> {
|
||||
public class PipelineAppCreateReleaseBranchHandlerServiceImpl extends SerialPipelineNodeHandler<Object, Object> {
|
||||
@Override
|
||||
public void preProcess(String pipelineId, Object inputModel) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void preProcessException(String pipelineId, Object inputModel, Exception e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -22,21 +22,23 @@ public class PipelineAppCreateReleaseBranchBiz extends SerialPipelineNodeHandler
|
||||
|
||||
@Override
|
||||
public void processException(String pipelineId, Object inputModel, Exception e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postProcess(String pipelineId, Object inputModel, Object processResult) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postProcessException(String pipelineId, Object inputModel, Object processResult, Exception e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLocked(String pipelineId, Object inputModel) {
|
||||
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.extension.plugins.MybatisPlusInterceptor;
|
||||
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.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 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.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 com.p6spy.engine.spy.appender.MessageFormattingStrategy;
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* 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.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.odboy.context.SecurityHelper;
|
||||
import cn.odboy.core.framework.permission.util.SecurityHelper;
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import org.apache.ibatis.reflection.MetaObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* 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.collection.CollUtil;
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package cn.odboy.mybatis.interfaces;
|
||||
package cn.odboy.core.framework.mybatisplus.interfaces;
|
||||
|
||||
import cn.odboy.base.PageResult;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
+3
-3
@@ -13,14 +13,14 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* 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.collection.CollUtil;
|
||||
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.mybatis.interfaces.EasyMapper;
|
||||
import cn.odboy.mybatis.util.MybatisHelper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.enums.SqlMethod;
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* 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.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.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.odboy.base.MyEntity;
|
||||
import cn.odboy.core.framework.mybatisplus.constant.MpQuery;
|
||||
import cn.odboy.exception.BadRequestException;
|
||||
import cn.odboy.mybatis.constant.MpQuery;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
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 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 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.core.service.system.impl.UserOnlineServiceImpl;
|
||||
import cn.odboy.util.AnonTagUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
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 org.springframework.security.config.annotation.SecurityConfigurerAdapter;
|
||||
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.odboy.application.core.service.impl.UserOnlineServiceImpl;
|
||||
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 org.springframework.security.core.Authentication;
|
||||
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.DateUtil;
|
||||
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.SystemRedisKey;
|
||||
import cn.odboy.model.system.model.UserJwtVo;
|
||||
import cn.odboy.core.constant.SystemRedisKey;
|
||||
import cn.odboy.core.service.system.dto.UserJwtVo;
|
||||
import cn.odboy.redis.RedisHelper;
|
||||
import io.jsonwebtoken.Claims;
|
||||
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.stereotype.Service;
|
||||
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.jwt.JWT;
|
||||
import cn.hutool.jwt.JWTUtil;
|
||||
import cn.odboy.constant.DataScopeEnum;
|
||||
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.JSONArray;
|
||||
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.config.model.FileUploadSettingModel;
|
||||
import cn.odboy.config.model.JwtAuthSettingModel;
|
||||
import cn.odboy.config.model.QuartzTaskThreadPoolSettingModel;
|
||||
import cn.odboy.config.model.SwaggerApiDocSettingModel;
|
||||
import cn.odboy.config.model.UserLoginSettingModel;
|
||||
import cn.odboy.core.framework.properties.dto.ContentRsaEncodeSettingModel;
|
||||
import cn.odboy.core.framework.properties.dto.FileUploadSettingModel;
|
||||
import cn.odboy.core.framework.properties.dto.JwtAuthSettingModel;
|
||||
import cn.odboy.core.framework.properties.dto.QuartzTaskThreadPoolSettingModel;
|
||||
import cn.odboy.core.framework.properties.dto.SwaggerApiDocSettingModel;
|
||||
import cn.odboy.core.framework.properties.dto.UserLoginSettingModel;
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 密码加密传输,前端公钥加密,后端私钥解密
|
||||
*/
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cn.odboy.config.model;
|
||||
package cn.odboy.core.framework.properties.dto;
|
||||
|
||||
import cn.odboy.constant.SystemConst;
|
||||
import lombok.Data;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cn.odboy.config.model;
|
||||
package cn.odboy.core.framework.properties.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cn.odboy.config.model;
|
||||
package cn.odboy.core.framework.properties.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package cn.odboy.config.model;
|
||||
package cn.odboy.core.framework.properties.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author odboy
|
||||
* @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.util.StringUtil;
|
||||
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