From bfd0ef2ad4c32b6a19e7dc22a9d115ddf8d8f04c Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 20 十月 2025 09:45:38 +0800
Subject: [PATCH] yys 修改-首页-应收应付统计逻辑
---
src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java | 36 +++++++++++++++++++++++++++++++++---
1 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java b/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
index 7b29267..bc85073 100644
--- a/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
+++ b/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
@@ -1,12 +1,17 @@
package com.ruoyi.framework.aspectj;
+import java.util.Objects;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.aspectj.lang.annotation.DataSource;
import com.ruoyi.framework.datasource.DynamicDataSourceContextHolder;
@@ -22,11 +27,22 @@
{
protected Logger logger = LoggerFactory.getLogger(getClass());
- @Around("@annotation(dataSource) || @within(dataSource)")
- public Object around(ProceedingJoinPoint point, DataSource dataSource) throws Throwable
+ @Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.DataSource)"
+ + "|| @within(com.ruoyi.framework.aspectj.lang.annotation.DataSource)")
+ public void dsPointCut()
{
- DynamicDataSourceContextHolder.setDataSourceType(dataSource.value().name());
+ }
+
+ @Around("dsPointCut()")
+ public Object around(ProceedingJoinPoint point) throws Throwable
+ {
+ DataSource dataSource = getDataSource(point);
+
+ if (StringUtils.isNotNull(dataSource))
+ {
+ DynamicDataSourceContextHolder.setDataSourceType(dataSource.value().name());
+ }
try
{
@@ -39,4 +55,18 @@
}
}
+ /**
+ * 鑾峰彇闇�瑕佸垏鎹㈢殑鏁版嵁婧�
+ */
+ public DataSource getDataSource(ProceedingJoinPoint point)
+ {
+ MethodSignature signature = (MethodSignature) point.getSignature();
+ DataSource dataSource = AnnotationUtils.findAnnotation(signature.getMethod(), DataSource.class);
+ if (Objects.nonNull(dataSource))
+ {
+ return dataSource;
+ }
+
+ return AnnotationUtils.findAnnotation(signature.getDeclaringType(), DataSource.class);
+ }
}
--
Gitblit v1.9.3