From 0bea703067ceea46c3f70b3a34d2cf0f55fe3281 Mon Sep 17 00:00:00 2001
From: ludc <pUXmgxCf6A>
Date: 星期二, 23 五月 2023 12:27:38 +0800
Subject: [PATCH] 与集团接口集成对象,数据持久层代码添加,及其服务添加
---
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java | 88 +++++++++++++++++++++++++++++++-------------
1 files changed, 62 insertions(+), 26 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 24e772c..3a2df3a 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
@@ -2,24 +2,26 @@
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.NacosServiceManager;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.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.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
@@ -68,12 +70,27 @@
* Nacos鏈嶅姟鍒楄〃
*/
private static NamingService namingService;
-
@Autowired
private NacosServiceManager manager;
@Autowired
private NacosDiscoveryProperties properties;
+
+
+ /**
+ * 鎷垮彇鏈嶅姟涓殑鎵�鏈夎〃淇℃伅
+ * @param serviceName 鏈嶅姟鍚嶇О
+ * @return 杩斿洖缁撴灉
+ * @throws NacosException 鎵句笉鍒版湇鍔℃椂鎶涘嚭寮傚父
+ */
+ public static R getFromTable(String serviceName) throws NacosException{
+ ResponseEntity<R> responseEntity = executeGet(getUrl(serviceName, API_GET_ALL_TABLE_INFO), new HashMap<>());
+ if (responseEntity.getStatusCode().equals(HttpStatus.OK)) {
+ R body = Objects.requireNonNull(responseEntity.getBody());
+ return body;
+ }
+ return R.fail(String.valueOf(responseEntity.getStatusCode().value()));
+ }
@PostConstruct
private void init() {
@@ -198,29 +215,48 @@
}
/**
+ * 鎵цhttpGet鎺ュ彛
+ *
+ * @param url 鍦板潃
+ * @param extraHeaders 璇锋眰澶村弬鏁�
+ * @return 鎵ц缁撴灉
+ */
+ private static ResponseEntity<R> executeGet(String url,Map<String, String> extraHeaders) {
+ RestTemplate restTemplate = new RestTemplate();
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.add("Blade-Auth", AuthUtil.getHeader());
+ HttpEntity<String> request = new HttpEntity<>(httpHeaders);
+ if (!CollectionUtils.isEmpty(extraHeaders)){
+ StringBuilder sb = new StringBuilder().append("?");
+ extraHeaders.forEach( (k,v) -> {
+ sb.append(k).append(StringPool.EQUALS).append(v).append(StringPool.AMPERSAND);
+ });
+ String str = sb.toString();
+ if (str.endsWith(StringPool.AMPERSAND)){
+ str = str.substring(0,str.length()-1);
+ }
+ url = url + str;
+ }
+ return restTemplate.exchange(url, HttpMethod.GET,request,R.class,"");
+ }
+
+ /**
* 鑾峰彇鎵�鏈夊凡娉ㄥ唽鐨勬湇鍔�
* @return 涓嶅寘鍚粯璁ゆ湇鍔$殑鍏朵粬鏈嶅姟
* @throws NacosException
*/
- public static List<String> getDomain() throws NacosException {
- List<ServiceInfo> services = namingService.getSubscribeServices();
- Set<String> serviceNames = new HashSet<>();
- serviceNames.add(AppConstant.APPLICATION_GATEWAY_NAME);
- serviceNames.add(AppConstant.APPLICATION_ADMIN_NAME);
- serviceNames.add(AppConstant.APPLICATION_AUTH_NAME);
- serviceNames.add(AppConstant.APPLICATION_DESK_NAME);
- serviceNames.add(AppConstant.APPLICATION_DEVELOP_NAME);
- serviceNames.add(AppConstant.APPLICATION_FLOW_NAME);
- serviceNames.add(AppConstant.APPLICATION_FLOWDESIGN_NAME);
- serviceNames.add(AppConstant.APPLICATION_LOG_NAME);
- serviceNames.add(AppConstant.APPLICATION_REPORT_NAME);
- serviceNames.add(AppConstant.APPLICATION_SWAGGER_NAME);
- serviceNames.add(AppConstant.APPLICATION_SYSTEM_NAME);
- serviceNames.add(AppConstant.APPLICATION_TURBINE_NAME);
- serviceNames.add(AppConstant.APPLICATION_USER_NAME);
- serviceNames.add(AppConstant.APPLICATION_WEBSOCKET_NAME);
- serviceNames.add(AppConstant.APPLICATION_ZIPKIN_NAME);
- serviceNames.add(AppConstant.APPLICATION_NAME_OMD);
- return services.stream().map(ServiceInfo::getName).filter(s -> !serviceNames.contains(s)).collect(Collectors.toList());
+ 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);
+ 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