From 026447959141110afd24d18b61da953c62aa2209 Mon Sep 17 00:00:00 2001
From: zhubaomin <470473919@qq.com>
Date: 星期三, 23 四月 2025 12:23:55 +0800
Subject: [PATCH] 各轮灌组开阀时间提前2分钟,第一组除外

---
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/config/WechatFilter.java |   76 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/config/WechatFilter.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/config/WechatFilter.java
new file mode 100644
index 0000000..1e695f6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/config/WechatFilter.java
@@ -0,0 +1,76 @@
+package com.dy.pipIrrWechat.config;
+
+import com.dy.common.multiDataSource.DataSourceContext;
+import com.dy.common.util.AES;
+import com.dy.pipIrrGlobal.pojoSe.SeWechatpay;
+import com.dy.pipIrrWechat.wechatpay.PayInfo;
+import com.dy.pipIrrWechat.wechatpay.PaymentSv;
+import jakarta.servlet.*;
+import jakarta.servlet.http.HttpServletRequest;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-10-23 17:13
+ * @LastEditTime 2024-10-23 17:13
+ * @Description
+ */
+
+@Slf4j
+public class WechatFilter implements Filter {
+    private PaymentSv paymentSv;
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+        // 浠嶴ervletContext鑾峰彇ApplicationContext
+        ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(filterConfig.getServletContext());
+        // 浠嶢pplicationContext涓幏鍙栨湇鍔ean
+        paymentSv = applicationContext.getBean(PaymentSv.class);
+    }
+
+    @SneakyThrows
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) {
+        HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
+
+        // 閰嶇疆鏁版嵁婧�
+        String wxDataSourceName = httpRequest.getHeader("tag");
+        if (wxDataSourceName != null && wxDataSourceName.trim().length() > 0) {
+            log.info("寰俊寮�鍙戯紝璁剧疆鏁版嵁婧愬悕绉颁负:" + wxDataSourceName);
+            //鎶婄粍缁囧崟浣嶆爣绛句綔涓烘暟鎹簮鍚嶇О
+            DataSourceContext.set(wxDataSourceName);
+        } else {
+            log.info("鐢ㄦ埛鏈�夋嫨鏁版嵁婧�");
+        }
+
+        // 鍒濆鍖栧井淇℃敮浠樹俊鎭�
+        String appId = httpRequest.getHeader("appId");
+        if (appId == null || appId.trim().length() == 0) {
+            log.info("灏忕▼搴忓敮涓�鏍囪瘑涓嶈兘涓虹┖");
+        } else {
+            appId = AES.encrypt(appId);
+
+            SeWechatpay seWechatpay = paymentSv.getWechatpayByAppId(appId);
+            if (seWechatpay != null) {
+                PayInfo.appid = AES.decrypt(seWechatpay.getAppId());
+                PayInfo.secret = AES.decrypt(seWechatpay.getAppSecret());
+                PayInfo.mchid = AES.decrypt(seWechatpay.getMchId());
+                PayInfo.key = AES.decrypt(seWechatpay.getMchKey());
+                PayInfo.serial_no = AES.decrypt(seWechatpay.getSerialNo());
+                PayInfo.notifyUrl = AES.decrypt(seWechatpay.getNotifyUrl());
+                log.info(PayInfo.appid + " ; " + PayInfo.secret);
+            } else {
+                log.info("灏忕▼搴忓敮涓�鏍囪瘑閿欒鎴栧叾淇℃伅涓嶅瓨鍦�");
+            }
+        }
+
+        filterChain.doFilter(servletRequest, servletResponse);
+    }
+
+    @Override
+    public void destroy() {
+    }
+}

--
Gitblit v1.8.0