From f4be36f30a802e70038bde438d1689eb749032fd Mon Sep 17 00:00:00 2001
From: zhangchao <zc857179121@qq.com>
Date: 星期五, 22 十一月 2024 08:49:19 +0800
Subject: [PATCH] 采用定长的线程池,防止定时任务的异常导致大量线程被占用

---
 src/main/java/com/zy/common/web/BaseController.java |   65 ++++++++++++++++++++++++++++++--
 1 files changed, 61 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/common/web/BaseController.java b/src/main/java/com/zy/common/web/BaseController.java
index 01ce52c..0309a4a 100644
--- a/src/main/java/com/zy/common/web/BaseController.java
+++ b/src/main/java/com/zy/common/web/BaseController.java
@@ -1,6 +1,5 @@
 package com.zy.common.web;
 
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
@@ -8,9 +7,13 @@
 import com.core.common.Cools;
 import com.core.controller.AbstractBaseController;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.Node;
 import com.zy.asrs.entity.Tag;
+import com.zy.asrs.service.NodeService;
 import com.zy.asrs.service.TagService;
 import com.zy.system.entity.User;
+import com.zy.system.entity.UserLogin;
+import com.zy.system.service.UserLoginService;
 import com.zy.system.service.UserService;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,8 +36,16 @@
     private UserService userService;
     @Autowired
     private TagService tagService;
+    @Autowired
+    private NodeService nodeService;
+
+    @Autowired
+    private UserLoginService userLoginService;
 
     protected Long getUserId(){
+        if(Cools.isEmpty(request.getAttribute("userId"))){
+            return 000L;
+        }
         return Long.parseLong(String.valueOf(request.getAttribute("userId")));
     }
 
@@ -58,6 +69,14 @@
 
     protected Tag getOriginTag(){
         return tagService.getTop();
+    }
+
+    protected Node getOriginNode(){
+        Node node = nodeService.getTop();
+        if (node == null) {
+            throw new CoolException("搴撳尯鏁版嵁閿欒");
+        }
+        return node;
     }
 
     /**
@@ -148,12 +167,50 @@
         if (Cools.isEmpty(str)) {
             return false;
         } else {
-            try {
-                JSON.parse(str);
+            str = str.trim();
+            if (str.startsWith("{") && str.endsWith("}")) {
                 return true;
-            } catch (Exception e) {
+            } else if (str.startsWith("[") && str.endsWith("]")) {
+                return true;
+            } else {
                 return false;
             }
         }
     }
+
+    protected <T> void hostEq(EntityWrapper<T> wrapper){
+        Long hostId = getHostId();
+        if (hostId != null) {
+            wrapper.eq("host_id", hostId);
+        }
+    }
+
+    protected Long getHostId(){
+        if (getUserId() == 9527) {
+            return null;
+        }
+        User user = getUser();
+        if (user.getRoleId() == 1) {
+            String hostId = String.valueOf(request.getAttribute("hostId"));
+            if (Cools.isEmpty(hostId)) {
+                UserLogin userLogin = userLoginService.selectOne(new EntityWrapper<UserLogin>().eq("user_id", user.getId()));
+                if (userLogin != null) {
+                    //return userLogin.getHostId();
+                    return 1L;
+                }
+            }
+            return Long.parseLong(hostId);
+        } else {
+            return user.getHostId();
+        }
+    }
+
+    public static boolean isNumber(String str){
+        for (int i = str.length();--i>=0;){
+            if (!Character.isDigit(str.charAt(i))){
+                return false;
+            }
+        }
+        return true;
+    }
 }

--
Gitblit v1.9.1