From 179c4d64313c9b7572778da4aaaf6c6584fe457d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 20 五月 2025 23:48:08 +0800
Subject: [PATCH] 修改文件上传类型限制

---
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 102 insertions(+), 5 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java
index 1594834..7ead3bb 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java
@@ -1,12 +1,21 @@
 package com.panzhihua.applets.weixin;
 
 import cn.binarywang.wx.miniapp.api.WxMaSecCheckService;
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest;
+import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse;
+import cn.binarywang.wx.miniapp.config.WxMaConfig;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.panzhihua.applets.config.WxMaConfiguration;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -20,15 +29,103 @@
     @Resource
     private WxMaConfiguration wxMaConfiguration;
 
-    public boolean checkMessage(String msg){
-        WxMaSecCheckService wxMaSecCheckService=wxMaConfiguration.getMaService().getSecCheckService();
+    public boolean checkMessage(String msg) {
+        WxMaService maService = wxMaConfiguration.getMaService("");
+
+        WxMaConfig wxMaConfig = maService.getWxMaConfig();
+        WxMaMsgSecCheckCheckRequest wxMaMsgSecCheckCheckRequest = WxMaMsgSecCheckCheckRequest.builder().version("2").openid(wxMaConfig.getAppid()).scene(2).content(msg).build();
+        WxMaSecCheckService wxMaSecCheckService = maService.getSecCheckService();
         try {
-            boolean b = wxMaSecCheckService.checkMessage(msg);
-            return b;
+            WxMaMsgSecCheckCheckResponse wxMaMsgSecCheckCheckResponse = wxMaSecCheckService.checkMessage(wxMaMsgSecCheckCheckRequest);
+            wxMaMsgSecCheckCheckResponse.getResult();
+            return true;
         } catch (WxErrorException e) {
-            log.error("微信审核文字内容出错【{}】",e.getMessage());
+            log.error("微信审核文字内容出错【{}】", e.getMessage());
             e.printStackTrace();
         }
         return false;
     }
+
+    public String checkMessageBy(String msg, String openId, String appId) {
+        WxMaMsgSecCheckCheckRequest wxMaMsgSecCheckCheckRequest = WxMaMsgSecCheckCheckRequest.builder().version("2").openid(openId).scene(2).content(msg).build();
+        WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService(appId).getSecCheckService();
+        try {
+            WxMaMsgSecCheckCheckResponse result = wxMaSecCheckService.checkMessage(wxMaMsgSecCheckCheckRequest);
+            return this.handleResult(result);
+        } catch (WxErrorException e) {
+            log.error("微信审核文字内容出错【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public boolean checkImageBy(String url, String appId) {
+        String[] imageUrlArr = url.split(",");
+        for (String imageUrl : imageUrlArr) {
+            WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService(appId).getSecCheckService();
+            try {
+                return wxMaSecCheckService.checkImage(imageUrl);
+            } catch (WxErrorException e) {
+                log.error("微信审核图片内容出错【{}】", e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 处理微信返回的违规结果
+     *
+     * @param result
+     * @return
+     */
+    private String handleResult(WxMaMsgSecCheckCheckResponse result) {
+        List<WxMaMsgSecCheckCheckResponse.DetailBean> detailBeanList = result.getDetail();
+        if (null != detailBeanList && detailBeanList.size() > 0) {
+            List<String> resultMsgs = new ArrayList<>();
+            for (WxMaMsgSecCheckCheckResponse.DetailBean detailBean : detailBeanList) {
+                if (0 == detailBean.getErrcode()) {
+                    String label = detailBean.getLabel();
+                    if (StrUtil.isNotBlank(label)) {
+                        switch (label) {
+                            case "100":
+                                continue;
+                            case "10001":
+                                resultMsgs.add("广告");
+                                continue;
+                            case "20001":
+                                resultMsgs.add("时政");
+                                continue;
+                            case "20002":
+                                resultMsgs.add("色情");
+                                continue;
+                            case "20003":
+                                resultMsgs.add("辱骂");
+                                continue;
+                            case "20006":
+                                resultMsgs.add("违法犯罪");
+                                continue;
+                            case "20008":
+                                resultMsgs.add("欺诈");
+                                continue;
+                            case "20012":
+                                resultMsgs.add("低俗");
+                                continue;
+                            case "20013":
+                                resultMsgs.add("版权");
+                                continue;
+                            case "21000":
+                                resultMsgs.add("其他");
+                        }
+                    }
+
+                }
+            }
+            if (CollUtil.isNotEmpty(resultMsgs)) {
+                return StringUtils.join(resultMsgs, ",");
+            }
+        }
+        return null;
+    }
+
 }

--
Gitblit v1.7.1