From 9bb19dd1eeea68b3669727253be49df50fe1428f Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 10 十一月 2023 16:08:07 +0800
Subject: [PATCH] 整合代码
---
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java | 83 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 80 insertions(+), 3 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 e7ad4cc..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
@@ -7,15 +7,21 @@
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
-import com.alibaba.nacos.api.naming.pojo.ServiceInfo;
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;
+import com.vci.ubcs.starter.web.enumpck.NewAppConstantEnum;
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;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
@@ -61,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;
@@ -88,6 +104,60 @@
return body;
}
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
@@ -243,11 +313,18 @@
* @return 涓嶅寘鍚粯璁ゆ湇鍔$殑鍏朵粬鏈嶅姟
* @throws NacosException
*/
- public static List<String> getDomain() throws NacosException {
+ public static List<DomainVO> getDomain() throws NacosException {
RestTemplate restTemplate = new RestTemplate();
String url = "http://" +LauncherConstant.NACOS_DEV_ADDR + "/nacos/v1/ns/service/list?pageNo=1&pageSize=50";
String forObject = restTemplate.getForObject(url, String.class);
JSONObject jsonObject = JSON.parseObject(forObject);
- return (List<String>) jsonObject.get("doms");
+ List<String> doms = (List<String>) jsonObject.get("doms");
+ NewAppConstantEnum[] apps = NewAppConstantEnum.values();
+ return Arrays.stream(apps).filter(app -> doms.stream().anyMatch(s -> StringUtil.equals(app.getName(), s))).map(app -> {
+ DomainVO domain = new DomainVO();
+ domain.setValue(app.getName());
+ domain.setLabel(app.getText());
+ return domain;
+ }).collect(Collectors.toList());
}
}
--
Gitblit v1.9.3