From ceb6a4d82d4f67c95d8f4dd457ec7a1bfdba0c4c Mon Sep 17 00:00:00 2001 From: ludc <pUXmgxCf6A> Date: 星期四, 18 五月 2023 15:58:40 +0800 Subject: [PATCH] 以及发布webservice接口功能搭建,将通通用接口移植过来 --- 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