diff --git a/tacit-common/pom.xml b/common/common-core/pom.xml
similarity index 53%
rename from tacit-common/pom.xml
rename to common/common-core/pom.xml
index eab4713..ca0e2da 100644
--- a/tacit-common/pom.xml
+++ b/common/common-core/pom.xml
@@ -6,42 +6,28 @@
tacit-parent
com.tacit
1.0.0-SNAPSHOT
+ ../../pom.xml
4.0.0
- tacit-common
- Tacit Common
- Common module for Tacit microservices
+ common-core
+ Common Core
+ Core utilities and global handlers module for Tacit microservices
-
+
+
+ com.tacit
+ common-model
+ ${project.parent.version}
+
+
+
org.springframework.boot
spring-boot-starter-web
-
-
- com.alibaba.cloud
- spring-cloud-starter-alibaba-nacos-discovery
-
-
- com.alibaba.cloud
- spring-cloud-starter-alibaba-nacos-config
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-bootstrap
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-openfeign
-
-
io.jsonwebtoken
@@ -58,19 +44,6 @@
runtime
-
-
- org.projectlombok
- lombok
- provided
-
-
-
-
- org.springframework.boot
- spring-boot-starter-validation
-
-
org.apache.commons
@@ -78,17 +51,6 @@
-
- org.junit.jupiter
- junit-jupiter-api
- test
-
-
- org.junit.jupiter
- junit-jupiter-engine
- test
-
-
org.junit.jupiter
junit-jupiter
diff --git a/tacit-common/src/main/java/com/tacit/common/handler/GlobalExceptionHandler.java b/common/common-core/src/main/java/com/tacit/common/handler/GlobalExceptionHandler.java
similarity index 99%
rename from tacit-common/src/main/java/com/tacit/common/handler/GlobalExceptionHandler.java
rename to common/common-core/src/main/java/com/tacit/common/handler/GlobalExceptionHandler.java
index e0e64ad..dafe3f4 100644
--- a/tacit-common/src/main/java/com/tacit/common/handler/GlobalExceptionHandler.java
+++ b/common/common-core/src/main/java/com/tacit/common/handler/GlobalExceptionHandler.java
@@ -69,4 +69,4 @@ public class GlobalExceptionHandler {
log.error("系统异常: {}", e.getMessage(), e);
return ResponseResult.fail(500, "系统内部错误");
}
-}
+}
\ No newline at end of file
diff --git a/tacit-common/src/main/java/com/tacit/common/utils/JwtUtils.java b/common/common-core/src/main/java/com/tacit/common/utils/JwtUtils.java
similarity index 80%
rename from tacit-common/src/main/java/com/tacit/common/utils/JwtUtils.java
rename to common/common-core/src/main/java/com/tacit/common/utils/JwtUtils.java
index 6dbe715..e08cb3e 100644
--- a/tacit-common/src/main/java/com/tacit/common/utils/JwtUtils.java
+++ b/common/common-core/src/main/java/com/tacit/common/utils/JwtUtils.java
@@ -13,8 +13,8 @@ import java.util.Map;
@Slf4j
public class JwtUtils {
-// private static final SecretKey SECRET_KEY = Keys.hmacShaKeyFor(CommonConstant.JWT_SECRET.getBytes(StandardCharsets.UTF_8));
- private static final SecretKey SECRET_KEY = Keys.secretKeyFor(SignatureAlgorithm.HS256);
+ private static final SecretKey SECRET_KEY = Keys.hmacShaKeyFor(CommonConstant.JWT_SECRET.getBytes(StandardCharsets.UTF_8));
+// private static final SecretKey SECRET_KEY = Keys.secretKeyFor(SignatureAlgorithm.HS256);
/**
* 生成JWT令牌
@@ -24,13 +24,23 @@ public class JwtUtils {
public static String generateToken(Map claims) {
Date now = new Date();
Date expireDate = new Date(now.getTime() + CommonConstant.JWT_EXPIRE_TIME);
+
+ log.info("JWT生成参数: claims={}, now={}, expireDate={}, secretKey={}", claims, now, expireDate, SECRET_KEY);
- return Jwts.builder()
- .setClaims(claims)
- .setIssuedAt(now)
- .setExpiration(expireDate)
- .signWith(SECRET_KEY, SignatureAlgorithm.HS256)
- .compact();
+ String token = null;
+ try {
+ token = Jwts.builder()
+ .setClaims(claims)
+ .setIssuedAt(now)
+ .setExpiration(expireDate)
+ .signWith(SECRET_KEY, SignatureAlgorithm.HS256)
+ .compact();
+ log.info("JWT生成成功: {}", token);
+ } catch (Exception e) {
+ log.error("JWT生成失败: {}", e.getMessage(), e);
+ }
+
+ return token;
}
public static Long getUserIdFromToken(String token) {
Claims claims = parseToken(token);
@@ -118,4 +128,4 @@ public class JwtUtils {
return false;
}
}
-}
+}
\ No newline at end of file
diff --git a/tacit-common/src/test/java/com/tacit/common/utils/JwtUtilsTest.java b/common/common-core/src/test/java/com/tacit/common/utils/JwtUtilsTest.java
similarity index 86%
rename from tacit-common/src/test/java/com/tacit/common/utils/JwtUtilsTest.java
rename to common/common-core/src/test/java/com/tacit/common/utils/JwtUtilsTest.java
index 258daca..4b953d6 100644
--- a/tacit-common/src/test/java/com/tacit/common/utils/JwtUtilsTest.java
+++ b/common/common-core/src/test/java/com/tacit/common/utils/JwtUtilsTest.java
@@ -24,7 +24,13 @@ public class JwtUtilsTest {
claims.put("userId", 1L);
claims.put("username", "testuser");
claims.put("role", "admin");
- token = JwtUtils.generateToken(claims);
+ try {
+ System.out.println("Before generateToken: claims = " + claims);
+ token = JwtUtils.generateToken(claims);
+ System.out.println("After generateToken: token = " + token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
@Test
@@ -70,4 +76,4 @@ public class JwtUtilsTest {
String role = JwtUtils.getRoleFromToken(token);
assertEquals("admin", role);
}
-}
+}
\ No newline at end of file
diff --git a/common/common-feign/pom.xml b/common/common-feign/pom.xml
new file mode 100644
index 0000000..86eccd6
--- /dev/null
+++ b/common/common-feign/pom.xml
@@ -0,0 +1,57 @@
+
+
+
+ tacit-parent
+ com.tacit
+ 1.0.0-SNAPSHOT
+ ../../pom.xml
+
+ 4.0.0
+
+ common-feign
+ Common Feign
+ Feign clients module for Tacit microservices
+
+
+
+
+ com.tacit
+ common-model
+ ${project.parent.version}
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/tacit-common/src/main/java/com/tacit/common/feign/AdminFeignClient.java b/common/common-feign/src/main/java/com/tacit/common/feign/AdminFeignClient.java
similarity index 99%
rename from tacit-common/src/main/java/com/tacit/common/feign/AdminFeignClient.java
rename to common/common-feign/src/main/java/com/tacit/common/feign/AdminFeignClient.java
index c488c48..1f8fb51 100644
--- a/tacit-common/src/main/java/com/tacit/common/feign/AdminFeignClient.java
+++ b/common/common-feign/src/main/java/com/tacit/common/feign/AdminFeignClient.java
@@ -10,4 +10,4 @@ public interface AdminFeignClient {
@GetMapping("/user/info/{id}")
ResponseResult
-
-
- org.projectlombok
- lombok
- ${lombok.version}
-
-
io.jsonwebtoken
@@ -119,7 +113,33 @@
commons-lang3
${commons-lang3.version}
-
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
@@ -166,6 +186,44 @@
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+ provided
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ ${spring-boot.version}
+ test
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit-jupiter.version}
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit-jupiter.version}
+ test
+
+
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
@@ -217,6 +275,22 @@
UTF-8
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.2.5
+
+ true
+ --enable-preview
+
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit-jupiter.version}
+
+
+
diff --git a/tacit-admin/pom.xml b/tacit-admin/pom.xml
index c336b1a..85708e7 100644
--- a/tacit-admin/pom.xml
+++ b/tacit-admin/pom.xml
@@ -53,19 +53,27 @@
springdoc-openapi-starter-webmvc-ui
-
+
com.tacit
- tacit-common
+ common-model
${project.parent.version}
-
-
- org.projectlombok
- lombok
- ${lombok.version}
- provided
+ com.tacit
+ common-feign
+ ${project.parent.version}
+
+
+ com.tacit
+ common-core
+ ${project.parent.version}
+
+
+
+ com.tacit
+ xxljob
+ ${project.parent.version}
@@ -74,12 +82,6 @@
resilience4j-spring-boot3
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
diff --git a/tacit-admin/src/main/java/com/tacit/admin/job/TestJob.java b/tacit-admin/src/main/java/com/tacit/admin/job/TestJob.java
new file mode 100644
index 0000000..6b03037
--- /dev/null
+++ b/tacit-admin/src/main/java/com/tacit/admin/job/TestJob.java
@@ -0,0 +1,24 @@
+package com.tacit.admin.job;
+
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Auther: xia
+ * @Date: 2026/1/4 15:01
+ * @Description: com.tacit.admin.job
+ * @version: 1.0
+ */
+@Component
+public class TestJob {
+
+ @XxlJob("myJobHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("执行任务: " + param);
+ return ReturnT.SUCCESS;
+ }
+
+
+}
diff --git a/tacit-app-api/pom.xml b/tacit-app-api/pom.xml
index 8489c1f..c45c6c1 100644
--- a/tacit-app-api/pom.xml
+++ b/tacit-app-api/pom.xml
@@ -53,27 +53,23 @@
springdoc-openapi-starter-webmvc-ui
-
+
com.tacit
- tacit-common
+ common-model
+ ${project.parent.version}
+
+
+ com.tacit
+ common-feign
+ ${project.parent.version}
+
+
+ com.tacit
+ common-core
${project.parent.version}
-
-
- org.projectlombok
- lombok
- ${lombok.version}
- provided
-
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
diff --git a/tacit-gateway/pom.xml b/tacit-gateway/pom.xml
index 12822ba..11a7631 100644
--- a/tacit-gateway/pom.xml
+++ b/tacit-gateway/pom.xml
@@ -26,28 +26,22 @@
spring-boot-starter-security
-
+
com.tacit
- tacit-common
+ common-model
+ ${project.parent.version}
+
+
+
+ com.tacit
+ common-core
${project.parent.version}
org.springframework.boot
spring-boot-starter-web
-
- org.springframework.boot
- spring-boot-starter-data-jdbc
-
-
- org.springframework.boot
- spring-boot-starter-validation
-
-
- com.zaxxer
- HikariCP
-
@@ -57,20 +51,18 @@
spring-cloud-starter-bootstrap
-
+
- org.projectlombok
- lombok
- ${lombok.version}
- provided
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
-
+
- org.springframework.boot
- spring-boot-starter-test
- test
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
diff --git a/tacit-gateway/src/main/java/com/tacit/gateway/filter/JwtAuthenticationFilter.java b/tacit-gateway/src/main/java/com/tacit/gateway/filter/JwtAuthenticationFilter.java
index 1e0e8c0..0edcd92 100644
--- a/tacit-gateway/src/main/java/com/tacit/gateway/filter/JwtAuthenticationFilter.java
+++ b/tacit-gateway/src/main/java/com/tacit/gateway/filter/JwtAuthenticationFilter.java
@@ -5,9 +5,7 @@ import com.tacit.common.utils.JwtUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
-import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
-import org.springframework.core.Ordered;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
diff --git a/tacit-gateway/src/main/resources/tacit-gateway.yaml b/tacit-gateway/src/main/resources/tacit-gateway.yaml
index 556206d..f3a459b 100644
--- a/tacit-gateway/src/main/resources/tacit-gateway.yaml
+++ b/tacit-gateway/src/main/resources/tacit-gateway.yaml
@@ -48,3 +48,25 @@ logging:
org.springframework.http.server.reactive: debug
org.springframework.web.reactive: debug
reactor.netty: debug
+
+# XXL-Job Configuration
+xxl:
+ job:
+ admin:
+ # XXL-Job Admin地址,多个地址用逗号分隔
+ addresses: http://localhost:8085/xxl-job-admin
+ # 可选,调度中心通讯TOKEN
+ access-token: default_token
+ executor:
+ # 执行器AppName,默认使用spring.application.name
+ appname: tacit-gateway
+ # 执行器IP,默认为空表示自动获取
+ ip:
+ # 执行器端口,默认9099
+ port: 9999
+ # 执行器通讯TOKEN
+ access-token: default_token
+ # 执行器日志路径
+ log-path: logs/applogs/xxl-job/jobhandler
+ # 执行器日志保存天数
+ log-retention-days: 30