From 7026924403af3d377cf51b7b7ebb0ebcf2bba7dc Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期五, 20 六月 2025 10:55:45 +0800
Subject: [PATCH] 异步 tag-value

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java |   49 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 6 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 ceeac7b..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,12 +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.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;
@@ -14,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.*;
@@ -26,12 +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.UUID;
+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;
 
 
@@ -47,11 +53,42 @@
     @Resource
     private HttpTagService tagService;
 
+    @Resource
+    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);
-        return success(BeanUtils.toBean(page, HttpTagRespVO.class));
+        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);
+    }
+
+    @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')")
@@ -108,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