diff --git a/.gitignore b/.gitignore index 0f1422b0b..dd60221b7 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ target/ .flattened-pom.xml data/ +rebel.xml \ No newline at end of file diff --git a/snail-job-server/.gitignore b/snail-job-server/.gitignore index d4847f3cf..b973dbb3d 100644 --- a/snail-job-server/.gitignore +++ b/snail-job-server/.gitignore @@ -30,3 +30,6 @@ target/ # Maven ignore .flattened-pom.xml + +# Frontend +/snail-job-server-ui/src/main/frontend/ \ No newline at end of file diff --git a/snail-job-server/pom.xml b/snail-job-server/pom.xml index 0a61fe16b..e9a1213ec 100644 --- a/snail-job-server/pom.xml +++ b/snail-job-server/pom.xml @@ -20,6 +20,7 @@ snail-job-server-retry-task snail-job-server-job-task snail-job-server-starter + snail-job-server-ui @@ -53,6 +54,11 @@ snail-job-server-job-task ${revision} + + com.aizuda + snail-job-server-ui + ${revision} + com.typesafe.akka akka-actor-typed_2.13 diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceLRU.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceLRU.java index 99025c071..9c8014360 100644 --- a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceLRU.java +++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceLRU.java @@ -1,12 +1,11 @@ package com.aizuda.snailjob.server.common.allocate.client; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.aizuda.snailjob.server.common.ClientLoadBalance; import com.aizuda.snailjob.server.common.allocate.client.ClientLoadBalanceManager.AllocationAlgorithmEnum; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Objects; -import java.util.TreeSet; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** @@ -43,9 +42,15 @@ public class ClientLoadBalanceLRU implements ClientLoadBalance { } // 删除已经下线的节点 + List delKeys = new ArrayList<>(); for (String address : lruItem.keySet()) { if (!clientAllAddressSet.contains(address)) { - lruItem.remove(address); + delKeys.add(address); + } + } + if (CollectionUtil.isNotEmpty(delKeys)) { + for (String delKey : delKeys) { + lruItem.remove(delKey); } } diff --git a/snail-job-server/snail-job-server-starter/pom.xml b/snail-job-server/snail-job-server-starter/pom.xml index 8687c4c1a..7736583a6 100644 --- a/snail-job-server/snail-job-server-starter/pom.xml +++ b/snail-job-server/snail-job-server-starter/pom.xml @@ -50,6 +50,10 @@ com.aizuda snail-job-server-common + + com.aizuda + snail-job-server-ui + org.springframework.boot spring-boot-starter-web diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/aizuda.png b/snail-job-server/snail-job-server-starter/src/main/resources/admin/aizuda.png deleted file mode 100644 index bfbfc0da9..000000000 Binary files a/snail-job-server/snail-job-server-starter/src/main/resources/admin/aizuda.png and /dev/null differ diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/logo.png b/snail-job-server/snail-job-server-starter/src/main/resources/admin/logo.png deleted file mode 100644 index adbf832aa..000000000 Binary files a/snail-job-server/snail-job-server-starter/src/main/resources/admin/logo.png and /dev/null differ diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/ryp.png b/snail-job-server/snail-job-server-starter/src/main/resources/admin/ryp.png deleted file mode 100644 index f26a15a84..000000000 Binary files a/snail-job-server/snail-job-server-starter/src/main/resources/admin/ryp.png and /dev/null differ diff --git a/snail-job-server/snail-job-server-ui/README.md b/snail-job-server/snail-job-server-ui/README.md new file mode 100644 index 000000000..975908cea --- /dev/null +++ b/snail-job-server/snail-job-server-ui/README.md @@ -0,0 +1,33 @@ +## 自定义前端指南 + +为了在项目中集成自定义前端界面,请按照以下步骤操作: + +### 1. 创建前端目录 + +首先,在 [`snail-job-server-ui`]() 的 [`src/main`](src/main) 目录下创建一个名为 [`frontend`](src/main/frontend) 的新目录: + +``` +snail-job-server-ui/ +└─ src/ + └─ main/ + └─ frontend/ # 新建的前端目录 +``` + +### 2. 拉取前端代码 + +使用 Git 命令拉取前端代码库到 frontend 目录中: + +```bash +cd src/main/frontend +git clone https://gitee.com/opensnail/snail-job-admin.git +``` + +> 注意:确保你在 [`frontend`](src/main/frontend) 目录中执行 `git clone` 命令,这样代码会被克隆到当前目录而不是创建一个新的子目录。 + +### 3. 自定义前端 + +在 [`frontend`](src/main/frontend) 目录中对前端代码进行必要的修改。你可以编辑文件、添加新文件或删除不必要的文件来满足你的自定义需求。 + +### 4. 打包程序 + +在 `Maven` 配置中找到 `skipFrontend` 选项,并确保其未被勾选,以便在打包时包含前端代码的修改,然后运行 `Maven` 打包命令来构建项目。 diff --git a/snail-job-server/snail-job-server-ui/pom.xml b/snail-job-server/snail-job-server-ui/pom.xml new file mode 100644 index 000000000..45a80435c --- /dev/null +++ b/snail-job-server/snail-job-server-ui/pom.xml @@ -0,0 +1,144 @@ + + + 4.0.0 + + com.aizuda + snail-job-server + ${revision} + ../pom.xml + + + snail-job-server-ui + snail-job-server-ui + snail-job-server-ui + jar + + + 17 + 17 + 17 + UTF-8 + v18.20.2 + 9.4.0 + + + + + org.springframework.boot + spring-boot-starter-web + true + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + none + execute + + + + + repackage + + + + + + org.apache.maven.plugins + maven-clean-plugin + ${maven-clean-plugin.version} + + + + src/main/frontend/ + false + + dist/** + + + + + + + com.github.eirslett + frontend-maven-plugin + + target + src/main/frontend + + + + install node and pnpm + + install-node-and-pnpm + + + ${node.version} + ${pnpm.version} + + + + pnpm install + + pnpm + + generate-resources + + install + https://registry.npmmirror.com + true + + + + pnpm build + + pnpm + + generate-resources + + build + + + + + + + + src/main/frontend/dist + admin + + + src/main/resources + + **/* + + + + + + + skipFrontend + + true + + + + + com.github.eirslett + frontend-maven-plugin + + true + + + + + + + + \ No newline at end of file diff --git a/snail-job-server/snail-job-server-ui/src/main/java/com/aizuda/snailjob/server/ui/config/SnailJobAdminServerUiAutoConfiguration.java b/snail-job-server/snail-job-server-ui/src/main/java/com/aizuda/snailjob/server/ui/config/SnailJobAdminServerUiAutoConfiguration.java new file mode 100644 index 000000000..044e7006d --- /dev/null +++ b/snail-job-server/snail-job-server-ui/src/main/java/com/aizuda/snailjob/server/ui/config/SnailJobAdminServerUiAutoConfiguration.java @@ -0,0 +1,21 @@ +package com.aizuda.snailjob.server.ui.config; + +import org.springframework.boot.autoconfigure.web.WebProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class SnailJobAdminServerUiAutoConfiguration { + + @Bean + public WebProperties webProperties() { + WebProperties properties = new WebProperties(); + WebProperties.Resources resources = properties.getResources(); + resources.setStaticLocations(new String[]{"classpath:admin/"}); + return properties; + } + +} \ No newline at end of file diff --git a/snail-job-server/snail-job-server-ui/src/main/java/com/aizuda/snailjob/server/ui/controller/WebController.java b/snail-job-server/snail-job-server-ui/src/main/java/com/aizuda/snailjob/server/ui/controller/WebController.java new file mode 100644 index 000000000..258b7d0a5 --- /dev/null +++ b/snail-job-server/snail-job-server-ui/src/main/java/com/aizuda/snailjob/server/ui/controller/WebController.java @@ -0,0 +1,20 @@ +package com.aizuda.snailjob.server.ui.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * 默认接口 + * + * @author: opensnail + * @date : 2022-03-28 22:17 + */ +@Controller +public class WebController { + + @GetMapping + public String forwardIndex() { + return "index"; + } + +} diff --git a/snail-job-server/snail-job-server-ui/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/snail-job-server/snail-job-server-ui/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..447b48a4d --- /dev/null +++ b/snail-job-server/snail-job-server-ui/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.aizuda.snailjob.server.ui.config.SnailJobAdminServerUiAutoConfiguration \ No newline at end of file diff --git a/snail-job-server/snail-job-server-ui/src/main/resources/admin/aizuda.png b/snail-job-server/snail-job-server-ui/src/main/resources/admin/aizuda.png new file mode 100644 index 000000000..e69de29bb diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/DescriptionsItem-LhWljJnV.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/DescriptionsItem-LhWljJnV.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/DescriptionsItem-LhWljJnV.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/DescriptionsItem-LhWljJnV.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/Grid-CRDcRyPk.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/Grid-CRDcRyPk.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/Grid-CRDcRyPk.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/Grid-CRDcRyPk.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/Progress-BRSG0yYs.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/Progress-BRSG0yYs.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/Progress-BRSG0yYs.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/Progress-BRSG0yYs.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/_url_-rMAKsN2P.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/_url_-rMAKsN2P.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/_url_-rMAKsN2P.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/_url_-rMAKsN2P.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/auth-C5d9H5Pz.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/auth-C5d9H5Pz.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/auth-C5d9H5Pz.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/auth-C5d9H5Pz.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/code-mirror.vue_vue_type_script_setup_true_lang-CLSflgjt.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/code-mirror.vue_vue_type_script_setup_true_lang-CLSflgjt.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/code-mirror.vue_vue_type_script_setup_true_lang-CLSflgjt.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/code-mirror.vue_vue_type_script_setup_true_lang-CLSflgjt.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/dashboard-dvIvAY5p.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/dashboard-dvIvAY5p.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/dashboard-dvIvAY5p.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/dashboard-dvIvAY5p.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/datetime-range.vue_vue_type_script_setup_true_lang-LaVXNa0e.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/datetime-range.vue_vue_type_script_setup_true_lang-LaVXNa0e.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/datetime-range.vue_vue_type_script_setup_true_lang-LaVXNa0e.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/datetime-range.vue_vue_type_script_setup_true_lang-LaVXNa0e.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/detail-drawer-6eZaB4pC.css b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/detail-drawer-6eZaB4pC.css similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/detail-drawer-6eZaB4pC.css rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/detail-drawer-6eZaB4pC.css diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/detail-drawer-CeEIcqT0.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/detail-drawer-CeEIcqT0.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/detail-drawer-CeEIcqT0.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/detail-drawer-CeEIcqT0.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/download-ip38Mwxm.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/download-ip38Mwxm.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/download-ip38Mwxm.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/download-ip38Mwxm.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/exception-base.vue_vue_type_script_setup_true_lang-CgitO2V0.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/exception-base.vue_vue_type_script_setup_true_lang-CgitO2V0.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/exception-base.vue_vue_type_script_setup_true_lang-CgitO2V0.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/exception-base.vue_vue_type_script_setup_true_lang-CgitO2V0.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/group-frwXGSCG.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/group-frwXGSCG.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/group-frwXGSCG.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/group-frwXGSCG.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index--naHqliG.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index--naHqliG.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index--naHqliG.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index--naHqliG.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-2ay5PpNs.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-2ay5PpNs.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-2ay5PpNs.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-2ay5PpNs.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BJEHbRVM.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BJEHbRVM.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BJEHbRVM.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BJEHbRVM.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BQrXbjze.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BQrXbjze.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BQrXbjze.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BQrXbjze.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BZQfv1PK.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BZQfv1PK.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BZQfv1PK.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BZQfv1PK.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BideD3ow.css b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BideD3ow.css similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BideD3ow.css rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BideD3ow.css diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BkhNq40I.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BkhNq40I.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BkhNq40I.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BkhNq40I.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BxR_p-ch.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BxR_p-ch.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-BxR_p-ch.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-BxR_p-ch.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-C6cEahYO.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-C6cEahYO.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-C6cEahYO.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-C6cEahYO.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CUXEi-rX.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CUXEi-rX.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CUXEi-rX.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CUXEi-rX.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CUZ-ZGC7.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CUZ-ZGC7.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CUZ-ZGC7.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CUZ-ZGC7.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-C_Yl51GR.css b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-C_Yl51GR.css similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-C_Yl51GR.css rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-C_Yl51GR.css diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CdrPBtCH.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CdrPBtCH.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CdrPBtCH.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CdrPBtCH.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CgPArJSH.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CgPArJSH.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CgPArJSH.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CgPArJSH.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-Cm2e7Lv-.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-Cm2e7Lv-.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-Cm2e7Lv-.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-Cm2e7Lv-.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CoKgXZDN.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CoKgXZDN.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CoKgXZDN.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CoKgXZDN.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CrVQ8ETu.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CrVQ8ETu.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-CrVQ8ETu.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-CrVQ8ETu.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-D2gKOuoY.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-D2gKOuoY.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-D2gKOuoY.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-D2gKOuoY.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-D3rICic-.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-D3rICic-.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-D3rICic-.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-D3rICic-.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DGSV_nw-.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DGSV_nw-.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DGSV_nw-.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DGSV_nw-.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DGuwZRaA.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DGuwZRaA.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DGuwZRaA.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DGuwZRaA.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DHVgWJ-0.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DHVgWJ-0.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DHVgWJ-0.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DHVgWJ-0.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DWyLBvsm.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DWyLBvsm.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DWyLBvsm.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DWyLBvsm.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DpGIIkG6.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DpGIIkG6.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-DpGIIkG6.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-DpGIIkG6.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-FxD56JQl.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-FxD56JQl.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-FxD56JQl.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-FxD56JQl.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-fyfyZBK4.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-fyfyZBK4.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-fyfyZBK4.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-fyfyZBK4.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-jlqTxuuS.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-jlqTxuuS.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-jlqTxuuS.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-jlqTxuuS.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-kEpqoCjH.css b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-kEpqoCjH.css similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-kEpqoCjH.css rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-kEpqoCjH.css diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-luHl0WMJ.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-luHl0WMJ.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-luHl0WMJ.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-luHl0WMJ.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-wQfBWnrg.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-wQfBWnrg.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/index-wQfBWnrg.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/index-wQfBWnrg.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/job-8-wbHxv4.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/job-8-wbHxv4.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/job-8-wbHxv4.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/job-8-wbHxv4.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/log-BdmE3tAM.css b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/log-BdmE3tAM.css similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/log-BdmE3tAM.css rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/log-BdmE3tAM.css diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/log-CNFmopnc.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/log-CNFmopnc.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/log-CNFmopnc.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/log-CNFmopnc.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/notify-BmtrPduQ.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/notify-BmtrPduQ.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/notify-BmtrPduQ.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/notify-BmtrPduQ.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/route-key.vue_vue_type_script_setup_true_lang-Cls4SKv2.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/route-key.vue_vue_type_script_setup_true_lang-Cls4SKv2.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/route-key.vue_vue_type_script_setup_true_lang-Cls4SKv2.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/route-key.vue_vue_type_script_setup_true_lang-Cls4SKv2.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/search-form.vue_vue_type_script_setup_true_lang-xYfW9G7N.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/search-form.vue_vue_type_script_setup_true_lang-xYfW9G7N.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/search-form.vue_vue_type_script_setup_true_lang-xYfW9G7N.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/search-form.vue_vue_type_script_setup_true_lang-xYfW9G7N.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/select-group.vue_vue_type_script_setup_true_lang-Bk3YnuuX.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/select-group.vue_vue_type_script_setup_true_lang-Bk3YnuuX.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/select-group.vue_vue_type_script_setup_true_lang-Bk3YnuuX.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/select-group.vue_vue_type_script_setup_true_lang-Bk3YnuuX.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/select-scene.vue_vue_type_script_setup_true_lang-DxzzLcAX.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/select-scene.vue_vue_type_script_setup_true_lang-DxzzLcAX.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/select-scene.vue_vue_type_script_setup_true_lang-DxzzLcAX.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/select-scene.vue_vue_type_script_setup_true_lang-DxzzLcAX.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/status-switch.vue_vue_type_script_setup_true_lang-DuU56cot.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/status-switch.vue_vue_type_script_setup_true_lang-DuU56cot.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/status-switch.vue_vue_type_script_setup_true_lang-DuU56cot.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/status-switch.vue_vue_type_script_setup_true_lang-DuU56cot.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/task-batch-status.vue_vue_type_script_setup_true_lang-jyvTK0pm.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/task-batch-status.vue_vue_type_script_setup_true_lang-jyvTK0pm.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/task-batch-status.vue_vue_type_script_setup_true_lang-jyvTK0pm.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/task-batch-status.vue_vue_type_script_setup_true_lang-jyvTK0pm.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/text-CH5rbrd1.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/text-CH5rbrd1.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/text-CH5rbrd1.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/text-CH5rbrd1.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/workflow-DX1Amij-.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/workflow-DX1Amij-.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/workflow-DX1Amij-.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/workflow-DX1Amij-.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/workflow.vue_vue_type_script_setup_true_lang-CDR_Hxib.js b/snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/workflow.vue_vue_type_script_setup_true_lang-CDR_Hxib.js similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/assets/workflow.vue_vue_type_script_setup_true_lang-CDR_Hxib.js rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/assets/workflow.vue_vue_type_script_setup_true_lang-CDR_Hxib.js diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/favicon.svg b/snail-job-server/snail-job-server-ui/src/main/resources/admin/favicon.svg similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/favicon.svg rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/favicon.svg diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/ant-design.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/ant-design.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/ant-design.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/ant-design.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/carbon.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/carbon.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/carbon.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/carbon.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/cbi.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/cbi.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/cbi.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/cbi.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/eos-icons.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/eos-icons.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/eos-icons.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/eos-icons.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/fluent.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/fluent.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/fluent.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/fluent.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/heroicons.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/heroicons.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/heroicons.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/heroicons.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/line-md.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/line-md.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/line-md.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/line-md.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/lucide.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/lucide.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/lucide.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/lucide.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/majesticons.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/majesticons.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/majesticons.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/majesticons.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/material-symbols.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/material-symbols.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/material-symbols.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/material-symbols.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/mdi.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/mdi.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/mdi.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/mdi.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/octicon.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/octicon.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/octicon.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/octicon.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/oui.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/oui.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/oui.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/oui.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/ph.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/ph.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/ph.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/ph.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/simple-icons.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/simple-icons.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/simple-icons.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/simple-icons.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/streamline.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/streamline.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/streamline.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/streamline.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/tabler.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/tabler.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/tabler.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/tabler.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/typcn.json b/snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/typcn.json similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/iconify/typcn.json rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/iconify/typcn.json diff --git a/snail-job-server/snail-job-server-starter/src/main/resources/admin/index.html b/snail-job-server/snail-job-server-ui/src/main/resources/admin/index.html similarity index 100% rename from snail-job-server/snail-job-server-starter/src/main/resources/admin/index.html rename to snail-job-server/snail-job-server-ui/src/main/resources/admin/index.html diff --git a/snail-job-server/snail-job-server-ui/src/main/resources/admin/logo.png b/snail-job-server/snail-job-server-ui/src/main/resources/admin/logo.png new file mode 100644 index 000000000..e69de29bb diff --git a/snail-job-server/snail-job-server-ui/src/main/resources/admin/ryp.png b/snail-job-server/snail-job-server-ui/src/main/resources/admin/ryp.png new file mode 100644 index 000000000..e69de29bb