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