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