From c3e9ef1922656471b934aba4034a8f91a5ba9555 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期五, 27 六月 2025 16:07:29 +0800
Subject: [PATCH] HttpCollectorForAsag

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java |   65 ++++++++++++++++++++------------
 1 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java
index 12e7474..9ed4669 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java
@@ -1,13 +1,14 @@
 package com.iailab.module.data.channel.http.controller.admin;
 
 import com.iailab.framework.apilog.core.annotation.ApiAccessLog;
+import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants;
 import com.iailab.framework.common.pojo.CommonResult;
 import com.iailab.framework.common.pojo.PageParam;
 import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.framework.excel.core.util.ExcelUtils;
-import com.iailab.module.data.channel.http.collector.ihdb.HttpCollectorForIhd;
+import com.iailab.module.data.channel.http.collector.HttpCollector;
 import com.iailab.module.data.channel.http.entity.HttpTagEntity;
 import com.iailab.module.data.channel.http.service.HttpTagService;
 import com.iailab.module.data.channel.http.vo.HttpTagPageReqVO;
@@ -15,9 +16,12 @@
 import com.iailab.module.data.channel.tag.vo.TagExportExcelVO;
 import com.iailab.module.data.channel.tag.vo.TagImportExcelVO;
 import com.iailab.module.data.channel.tag.vo.TagImportRespVO;
+import com.iailab.module.data.common.enums.DataQualityEnum;
+import com.iailab.module.data.common.enums.IsEnableEnum;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -27,14 +31,13 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.stream.Collectors;
+import java.util.*;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 
 import static com.iailab.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.iailab.framework.common.pojo.CommonResult.error;
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
 
@@ -51,29 +54,41 @@
     private HttpTagService tagService;
 
     @Resource
-    private HttpCollectorForIhd httpCollectorForIhd;
+    private HttpCollector httpCollector;
+
+    ThreadPoolExecutor threadPool = new ThreadPoolExecutor(18, 36, 30, TimeUnit.SECONDS,
+            new ArrayBlockingQueue<Runnable>(36), new ThreadPoolExecutor.AbortPolicy());
 
     @PreAuthorize("@ss.hasPermission('data:channel-http:query')")
     @GetMapping("page")
     public CommonResult<PageResult<HttpTagRespVO>> page(@Valid HttpTagPageReqVO reqVO) {
-
         PageResult<HttpTagEntity> page = tagService.queryPage(reqVO);
-        PageResult<HttpTagRespVO> pageResultVO = new PageResult<>();
-        List<String> tagNames = page.getList().stream()
-                .map(HttpTagEntity::getTagName)
-                .collect(Collectors.toList());
-        Map<String, Object> dataMap = httpCollectorForIhd.getLastValues(tagNames);
+        PageResult<HttpTagRespVO> pageResult = BeanUtils.toBean(page, HttpTagRespVO.class);
+        try {
+            /*pageResult.getList().forEach(item -> {
+                item.setDataValue(httpCollector.getTagValue(item.getApiId(), item.getTagName()));
+                item.setDataTime(new Date());
+                item.setDataQuality(DataQualityEnum.getEumByValue(item.getDataValue()).getDesc());
+            });*/
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        return success(pageResult);
+    }
 
-        List<HttpTagRespVO> vos = page.getList().stream().map(entity -> {
-
-            HttpTagRespVO vo = BeanUtils.toBean(entity,HttpTagRespVO.class);
-            vo.setDataValue(Double.parseDouble(dataMap.get(entity.getTagName()).toString()));
-            return vo;
-        }).collect(Collectors.toList());
-
-        pageResultVO.setList(vos);
-
-        return success(pageResultVO);
+    @PostMapping("/tag-value")
+    public CommonResult<HttpTagRespVO> getTagValue(@RequestBody HttpTagRespVO reqVO) {
+        HttpTagRespVO result = new HttpTagRespVO();
+        if (StringUtils.isBlank(reqVO.getTagName())) {
+            return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST);
+        }
+        if (StringUtils.isBlank(reqVO.getApiId())) {
+            return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST);
+        }
+        result.setDataValue(httpCollector.getTagValue(reqVO.getApiId(), reqVO.getTagName()));
+        result.setDataTime(new Date());
+        result.setDataQuality(DataQualityEnum.getEumByValue(reqVO.getDataValue()).getDesc());
+        return success(result);
     }
 
     @PreAuthorize("@ss.hasPermission('data:channel-http:query')")
@@ -130,7 +145,7 @@
     public void importTemplate(HttpServletResponse response) throws IOException {
         // 手动创建导出 demo
         List<TagImportExcelVO> list = Collections.singletonList(
-                TagImportExcelVO.builder().tagName("Tag名称").tagDesc("Tag描述").dataType("String").enabled(1)
+                TagImportExcelVO.builder().tagName("Tag名称").tagDesc("Tag描述").dataType("String").enabled(IsEnableEnum.ENABLE.getCode())
                         .build()
         );
         // 输出

--
Gitblit v1.9.3