From f5a35b86d6d66bcc7961626f1de1940c775d0bd9 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 18 四月 2025 14:06:39 +0800
Subject: [PATCH] 小程序获取轮灌组取消分页功能

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java
new file mode 100644
index 0000000..2d1a8c7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java
@@ -0,0 +1,60 @@
+package com.dy.common.multiDataSource;
+
+import com.dy.common.contant.Constant;
+import com.mysql.cj.util.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+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.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
+import java.util.Objects;
+
+/**
+ * 澶氭暟鎹簮搴旂敤涓紝閫氳繃娉ㄨВ纭畾鏌愪釜鏁版嵁婧�
+ * 渚嬪鍦⊿ervices灞傛柟娉曚笂娉ㄨВ锛�
+ * @DataSource("test")
+ * 琛ㄧず搴旂敤鏁版嵁婧恡est
+ */
+@Slf4j
+@Aspect
+@Order(Constant.AspectOrderDataSource)
+@Component
+public class DataSourceAspect {
+
+    @Pointcut("@annotation(com.dy.common.multiDataSource.DataSource)")
+    public void dataSourcePointCut() {
+    }
+
+    @Around("dataSourcePointCut()")
+    public Object around(ProceedingJoinPoint point) throws Throwable {
+        MethodSignature signature = (MethodSignature) point.getSignature();
+        Method method = signature.getMethod();
+        DataSource dataSource = method.getAnnotation(DataSource.class);
+
+        if (Objects.nonNull(dataSource) && !StringUtils.isNullOrEmpty(dataSource.value())) {
+            //log.info("鍒囨崲鏁版嵁婧愪负" + dataSource.value());
+            //寮哄埗杞垚鏂规硶涓婇厤缃殑鏁版嵁婧愶紝鏇挎崲鎺塂ataSourceContext涓繚瀛樼殑鏁版嵁婧�
+            DataSourceContext.set(dataSource.value());
+        }else{
+            String dataSourceName = DataSourceContext.get() ;
+            if(!StringUtils.isNullOrEmpty(dataSourceName)){
+                log.info("褰撳墠鏁版嵁婧愪负" + dataSourceName);
+            }
+        }
+
+        try {
+            log.info("鏁版嵁搴撴搷浣滃紑濮�" + dataSource.value());
+            return point.proceed();
+        } finally {
+            // 閿�姣佹暟鎹簮 鍦ㄦ墽琛屾柟娉曚箣鍚�
+            log.info("鏁版嵁婧愭搷浣滃畬姣�" + dataSource.value());
+            DataSourceContext.remove();
+        }
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.8.0