From 4513ef24bf9b188c2a77d6ce94f1a6b7e9ebf0e6 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期日, 27 四月 2025 20:40:19 +0800
Subject: [PATCH] fix(irrigatePlan): 修正灌溉计划开始时间逻辑

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

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceSingleAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceSingleAspect.java
new file mode 100644
index 0000000..1f7c680
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceSingleAspect.java
@@ -0,0 +1,57 @@
+package com.dy.common.multiDataSource;
+
+
+import com.dy.common.contant.Constant;
+import com.dy.common.springUtil.SpringContextUtil;
+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;
+
+@Slf4j
+@Aspect
+@Order(Constant.AspectOrderDataSource)
+@Component
+public class DataSourceSingleAspect {
+
+    @Pointcut("@annotation(com.dy.common.multiDataSource.DataSourceSingle)")
+    public void dataSourceSinglePointCut() {
+    }
+
+    @Around("dataSourceSinglePointCut()")
+    public Object around(ProceedingJoinPoint point) throws Throwable {
+        MethodSignature signature = (MethodSignature) point.getSignature();
+        Method method = signature.getMethod();
+        DataSourceSingle dataSource = method.getAnnotation(DataSourceSingle.class);
+
+        if (Objects.nonNull(dataSource) && !StringUtils.isNullOrEmpty(dataSource.value())) {
+            //log.info("鏁版嵁婧愭寚瀹氫负" + dataSource.value());
+            //寮哄埗杞垚鏂规硶涓婇厤缃殑鏁版嵁婧愶紝鏇挎崲鎺塂ataSourceContext涓繚瀛樼殑鏁版嵁婧�
+            DataSourceContext.set(dataSource.value());
+        }else{
+            String datasourceName = SpringContextUtil.getApplicationContext().getEnvironment().getProperty("spring.datasource.names") ;
+            if(!StringUtils.isNullOrEmpty(datasourceName)){
+                //log.info("鏍规嵁閰嶇疆鏁版嵁婧愪负" + datasourceName);
+                DataSourceContext.set(datasourceName);
+            }else{
+                log.error("鏁版嵁婧愭湭鎸囧畾");
+            }
+        }
+        try {
+            //log.info("鏁版嵁搴撴搷浣滃紑濮�" + dataSource.value());
+            return point.proceed();
+        } finally {
+            // 閿�姣佹暟鎹簮 鍦ㄦ墽琛屾柟娉曚箣鍚�
+            //log.info("鏁版嵁婧愭搷浣滃畬姣�" + dataSource.value());
+            DataSourceContext.remove();
+        }
+    }
+}

--
Gitblit v1.8.0