From c19de84fa332a00c651f28e3a52292fd14f143a1 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 23 九月 2025 17:30:07 +0800
Subject: [PATCH] 陆常丽反应软件系统财务对账时而数据不准确,分析源码,找到bug原因是,财务对账统计只有用户点击后才会触发统计功能,把历史上及当天进行了统计,如果当天统计时未下班,例如是中午触发统计了,而下午又进行了充值售水,但下班后未再点击触发对账统计,那么今天的对账统计完成了但数据不对。编写自动任务,在下半夜进行对账统计。
---
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