chendayu 2 년 전
부모
커밋
d1a1775534

+ 32 - 0
src/main/java/com/example/demo/domain/entity/SysDictItem.java

@@ -0,0 +1,32 @@
+package com.example.demo.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @author 沈永艺
+ * @date 2022-8-16
+ * @description 字典项类 数据库对应实体
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SysDictItem extends BaseEntity<SysDictItem> {
+    /**
+     * 字典KEY
+     */
+    private String dictParentKey;
+
+    /**
+     * 字典项说明
+     */
+    private String dictChildLabel;
+
+    /**
+     * 字典项值
+     */
+    private String dictChildValue;
+}

+ 13 - 0
src/main/java/com/example/demo/service/OutInterfaceService.java

@@ -374,4 +374,17 @@ public class OutInterfaceService {
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
 
+    public String getAdminEmailPersonsFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/tenant/getAdminEmailPersons")
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
 }

+ 6 - 2
src/main/java/com/example/demo/service/detectInterface/GetCitedNumByPubNoService.java

@@ -30,7 +30,7 @@ public class GetCitedNumByPubNoService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getCitedNumByPubNo(publicOrAppNo.getPublicNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("被引用次数", json);
             }
@@ -38,7 +38,11 @@ public class GetCitedNumByPubNoService implements DetectInterface {
 
         } catch (IOException e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("被引用次数", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("被引用次数", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 8 - 2
src/main/java/com/example/demo/service/detectInterface/GetCnBibApiService.java

@@ -7,6 +7,8 @@ import com.example.demo.util.PatentStarEmail;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+
 /**
  * 监听检索中国专利著录接口异常发送邮件
  *
@@ -29,7 +31,7 @@ public class GetCnBibApiService implements DetectInterface {
         try {
             //调用pas 检索中国专利著录接口
             String json = outInterfaceService.getCnBibApi(publicOrAppNo.getAppNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("中国专利著录", json);
             }
@@ -37,7 +39,11 @@ public class GetCnBibApiService implements DetectInterface {
 
         } catch (Exception e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("中国专利著录", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("中国专利著录", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 7 - 2
src/main/java/com/example/demo/service/detectInterface/GetCnFullXmlService.java

@@ -30,7 +30,8 @@ public class GetCnFullXmlService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getCnFullXml(publicOrAppNo.getAppNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            //if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
+            if ((json.contains("StatusCode") && json.contains("Info") && json.contains("Data")) || (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限"))) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("中国专利全文文本", json);
             }
@@ -38,7 +39,11 @@ public class GetCnFullXmlService implements DetectInterface {
 
         } catch (IOException e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("中国专利全文文本", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("中国专利全文文本", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 7 - 3
src/main/java/com/example/demo/service/detectInterface/GetCnLegalService.java

@@ -30,15 +30,19 @@ public class GetCnLegalService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getCnLegal(publicOrAppNo.getAppNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("中国专利法律状态", json);
             }
 
 
-        } catch (IOException e) {
+        } catch (Exception e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("中国专利法律状态", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("中国专利法律状态", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 6 - 2
src/main/java/com/example/demo/service/detectInterface/GetCnPdfService.java

@@ -30,7 +30,7 @@ public class GetCnPdfService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getCnPdf(publicOrAppNo.getAppNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("中国专利pdf全文", json);
             }
@@ -38,7 +38,11 @@ public class GetCnPdfService implements DetectInterface {
 
         } catch (IOException e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("中国专利pdf全文", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("中国专利pdf全文", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 6 - 2
src/main/java/com/example/demo/service/detectInterface/GetEnBibService.java

@@ -30,7 +30,7 @@ public class GetEnBibService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getENBib(publicOrAppNo.getPublicNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("世界专利著录信息", json);
             }
@@ -38,7 +38,11 @@ public class GetEnBibService implements DetectInterface {
 
         } catch (IOException e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("世界专利著录信息", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("世界专利著录信息", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 6 - 2
src/main/java/com/example/demo/service/detectInterface/GetEnPdfService.java

@@ -30,7 +30,7 @@ public class GetEnPdfService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getEnPdf(publicOrAppNo.getPublicNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("世界专利pdf", json);
             }
@@ -38,7 +38,11 @@ public class GetEnPdfService implements DetectInterface {
 
         } catch (IOException e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("世界专利pdf", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("世界专利pdf", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 6 - 2
src/main/java/com/example/demo/service/detectInterface/GetFamilyByPubNoService.java

@@ -30,7 +30,7 @@ public class GetFamilyByPubNoService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getFamilyByPubNo(publicOrAppNo.getPublicNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("同族专利", json);
             }
@@ -38,7 +38,11 @@ public class GetFamilyByPubNoService implements DetectInterface {
 
         } catch (IOException e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("同族专利", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("同族专利", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 8 - 2
src/main/java/com/example/demo/service/detectInterface/GetPictureService.java

@@ -7,6 +7,8 @@ import com.example.demo.util.PatentStarEmail;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+
 /**
  * 监听检索中国专利摘要附图接口异常发送邮件
  *
@@ -28,7 +30,7 @@ public class GetPictureService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getPicture(publicOrAppNo.getAppNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("中国专利摘要附图", json);
             }
@@ -36,7 +38,11 @@ public class GetPictureService implements DetectInterface {
 
         } catch (Exception e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("中国专利摘要附图", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("中国专利摘要附图", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 6 - 2
src/main/java/com/example/demo/service/detectInterface/GetWGPictureService.java

@@ -30,7 +30,7 @@ public class GetWGPictureService implements DetectInterface {
     public void executeDetectInterface(PublicOrAppNo publicOrAppNo) {
         try {
             String json = outInterfaceService.getWGPicture(publicOrAppNo.getAppNo());
-            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("")) {
+            if (json.contains("请求参数") && json.contains("不合法") || json.equals("{}") || json.trim().equals("") || json.contains("访问IP数已达上限")) {
                 //发送邮件通知
                 patentStarEmail.sendEmail("中国专利外观图", json);
             }
@@ -38,7 +38,11 @@ public class GetWGPictureService implements DetectInterface {
 
         } catch (IOException e) {
             //发送邮件通知
-            patentStarEmail.sendEmail("中国专利外观图", "调用接口失败,抛出异常");
+            try {
+                patentStarEmail.sendEmail("中国专利外观图", "调用接口失败,抛出异常");
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
         }
 
     }

+ 24 - 10
src/main/java/com/example/demo/util/PatentStarEmail.java

@@ -1,11 +1,19 @@
 package com.example.demo.util;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.example.demo.domain.entity.SysDictItem;
+import com.example.demo.service.OutInterfaceService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.io.IOException;
 import java.io.Serializable;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -18,20 +26,26 @@ import java.util.Map;
 @Component
 public class PatentStarEmail implements Serializable {
     private final MessageUtils mailUtils;
+    private final OutInterfaceService outInterfaceService;
 
     /**
      * 发送邮件通知
      */
-    public void sendEmail(String jieKouName, String json) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("title", "专利之星接口调用异常通知");
-        map.put("template", "mail/emailPatentStarException.html");
-        map.put("value1", jieKouName + "接口异常获取到的信息为:" + json);
-        map.put("img", "/logo.png");
-        map.put("email", "chendayuya@163.com");
-        map.put("value2", "陈宇");
-
-        mailUtils.sendEmailMessage(map);
+    public void sendEmail(String jieKouName, String json) throws IOException {
+        //调用权限系统从字典表里获得配置联系人数
+        String res = outInterfaceService.getAdminEmailPersonsFromPCS();
+        JSONObject jsonObject = JSONObject.parseObject(res);
+        List<SysDictItem> sysDictItems = JSON.parseArray(jsonObject.get("data").toString(), SysDictItem.class);
+        sysDictItems.forEach(item -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put("title", "专利之星接口调用异常通知");
+            map.put("template", "mail/emailPatentStarException.html");
+            map.put("value1", jieKouName + "接口异常获取到的信息为:" + json);
+            map.put("img", "/logo.png");
+            map.put("email", item.getDictChildValue());
+            map.put("value2", item.getDictChildLabel());
+            mailUtils.sendEmailMessage(map);
+        });
     }
 
 }