From 1a07db181c732729abc1d6ec71ae206ecffca86d Mon Sep 17 00:00:00 2001 From: lihang <lihang@vci-tech.com> Date: 星期三, 24 五月 2023 18:33:45 +0800 Subject: [PATCH] 迁移链接类型后台接口,修正属性字段,增加元数据查找应用范围功能 --- Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java | 68 ++++++++++++++++++++++++++++++++++ 1 files changed, 68 insertions(+), 0 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java index 3a2df3a..86486e8 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java @@ -9,6 +9,9 @@ import com.alibaba.nacos.api.naming.pojo.Instance; import com.vci.ubcs.common.constant.LauncherConstant; import com.vci.ubcs.omd.dto.BtmAndLinkTypeDdlDTO; +import com.vci.ubcs.omd.dto.TableAddColumnDTO; +import com.vci.ubcs.omd.dto.TableCheckDTO; +import com.vci.ubcs.omd.dto.TableCheckResultDTO; import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.omd.vo.DomainVO; import com.vci.ubcs.omd.vo.LinkTypeVO; @@ -16,6 +19,7 @@ import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.StringPool; import org.springblade.core.tool.utils.StringUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -63,6 +67,16 @@ public static final String API_CHECK_DIFFERENT_REFLEX = API_PREFIX + StringPool.SLASH + "checkDifferentAndReflex"; /** + * 妫�鏌ユ暟鎹〃鏄惁鏈夋暟鎹紝娌℃湁鎸夐渶姹傚垹闄� + */ + public static final String API_CHECK_TABLE_HAS_DATA_THEN_DELETE = API_PREFIX + StringPool.SLASH + "checkTableHasDataThenDelete"; + + /** + * 鏁版嵁琛ㄦ坊鍔犲瓧娈� + */ + public static final String API_TABLE_ADD_COLUMN = API_PREFIX + StringPool.SLASH + "addColumnForTable"; + + /** * 鐢ㄤ簬鏋勫缓闈欐�佹湇鍔$被 */ public static DomainRepeater domainRepeater; @@ -92,6 +106,60 @@ return R.fail(String.valueOf(responseEntity.getStatusCode().value())); } + /** + * 妫�鏌ユ暟鎹〃鏄惁瀛樺湪鏁版嵁锛屽鏋滀笉瀛樺湪鍒欏垹闄� + * @param checkList 闇�瑕佹鏌ョ殑琛ㄩ泦鍚� + * @return 妫�鏌ョ粨鏋� + * @throws NacosException 鎵句笉鍒版湇鍔$殑鏃跺�欎細鎶涘嚭寮傚父 + */ + public static R checkTableHasDataByTableNameThenDrop(List<TableCheckDTO> checkList) throws NacosException { + Map<String, List<TableCheckDTO>> serviceMap = checkList.stream().collect(Collectors.groupingBy(TableCheckDTO::getDomain)); + List<TableCheckResultDTO> result = new ArrayList<>(); + for (String key : serviceMap.keySet()) { + String url = getUrl(key, API_CHECK_TABLE_HAS_DATA_THEN_DELETE); + ResponseEntity<R> responseEntity = executePost(url, JSONObject.toJSONString(serviceMap.get(key)), new HashMap<>(16)); + if (responseEntity.getStatusCode().equals(HttpStatus.OK)) { + R r = responseEntity.getBody(); + if (r.getData() instanceof List){ + List dataList = (List) r.getData(); + dataList.forEach(data -> { + TableCheckResultDTO dto = BeanUtil.copy(JSON.parseObject(JSON.toJSONString(data)), TableCheckResultDTO.class); + result.add(dto); + }); + } + } + } + return R.data(result); + } + + /** + * 涓鸿〃娣诲姞瀛楁 + * @param addColumnDTO 娣诲姞鐨勫璞� + * @param serviceName 鏈嶅姟鍚� + * @return 鎵ц缁撴灉 + * @throws NacosException 鎵句笉鍒版湇鍔℃椂鎶涘嚭寮傚父 + */ + public static R addColumnForTable(TableAddColumnDTO addColumnDTO, String serviceName) throws NacosException { + try { + String url = getUrl(serviceName,API_TABLE_ADD_COLUMN); + ResponseEntity<R> responseEntity = executePost(url, JSONObject.toJSONString(addColumnDTO), null); + if (responseEntity.getStatusCode().equals(HttpStatus.OK)) { + R body = Objects.requireNonNull(responseEntity.getBody()); + return body; + } + return R.fail(String.valueOf(responseEntity.getStatusCode().value())); + }catch (HttpClientErrorException e) { + if (HttpStatus.NOT_FOUND.equals(e.getStatusCode())) { + R fail = R.fail("璋冪敤鏈嶅姟澶辫触"); + fail.setCode(HttpStatus.NOT_FOUND.value()); + return fail; + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return R.fail("鏈煡閿欒"); + } + @PostConstruct private void init() { domainRepeater = this; -- Gitblit v1.9.3