From bdcb64f0293f27e2dfb3de12a60f6e8412cb962b Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 26 五月 2022 01:45:22 +0800
Subject: [PATCH] 退费修改为 从证书地址中获取
---
service-order/src/main/java/com/java110/order/OrderServiceApplicationStart.java | 162 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 124 insertions(+), 38 deletions(-)
diff --git a/service-order/src/main/java/com/java110/order/OrderServiceApplicationStart.java b/service-order/src/main/java/com/java110/order/OrderServiceApplicationStart.java
old mode 100644
new mode 100755
index e215f6e..ba2e2ff
--- a/service-order/src/main/java/com/java110/order/OrderServiceApplicationStart.java
+++ b/service-order/src/main/java/com/java110/order/OrderServiceApplicationStart.java
@@ -1,15 +1,38 @@
+/*
+ * Copyright 2017-2020 鍚村鏂� and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.java110.order;
-import com.java110.utils.cache.MappingCache;
-import com.java110.utils.factory.ApplicationContextFactory;
-import com.java110.utils.util.StringUtil;
+import com.java110.config.properties.code.ZookeeperProperties;
import com.java110.core.annotation.Java110ListenerDiscovery;
+import com.java110.core.trace.Java110RestTemplateInterceptor;
import com.java110.core.client.RestTemplate;
import com.java110.core.event.center.DataFlowEventPublishing;
-import com.java110.order.smo.ICenterServiceCacheSMO;
+import com.java110.service.init.ServiceInfoListener;
import com.java110.service.init.ServiceStartInit;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.MappingConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.StartException;
+import com.java110.utils.factory.ApplicationContextFactory;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
+import org.apache.zookeeper.*;
+import org.apache.zookeeper.data.Stat;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
@@ -19,8 +42,13 @@
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.scheduling.annotation.EnableAsync;
+import javax.annotation.Resource;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import java.nio.charset.Charset;
+import java.util.List;
/**
@@ -33,21 +61,26 @@
* @tag
*/
@SpringBootApplication(scanBasePackages = {"com.java110.service", "com.java110.order",
- "com.java110.core", "com.java110.core.event.order", "com.java110.config.properties.code","com.java110.db"})
+ "com.java110.core", "com.java110.core.event.order", "com.java110.config.properties.code", "com.java110.db"})
@EnableDiscoveryClient
//@EnableConfigurationProperties(EventProperties.class)
@Java110ListenerDiscovery(listenerPublishClass = DataFlowEventPublishing.class,
basePackages = {"com.java110.order.listener"})
@EnableFeignClients(basePackages = {
- "com.java110.core.smo.code",
- "com.java110.core.smo.user",
- "com.java110.core.smo.common",
- "com.java110.core.smo.community",
- "com.java110.core.smo.fee"
+ "com.java110.intf.code",
+ "com.java110.intf.job",
+ "com.java110.intf.user",
+ "com.java110.intf.common",
+ "com.java110.intf.community",
+ "com.java110.intf.fee"
})
+@EnableAsync
public class OrderServiceApplicationStart {
- private static Logger logger = LoggerFactory.getLogger(OrderServiceApplicationStart.class);
+ private static Logger logger = LoggerFactory.getLogger(OrderServiceApplicationStart.class);
+
+ @Resource
+ private Java110RestTemplateInterceptor java110RestTemplateInterceptor;
/**
* 瀹炰緥鍖朢estTemplate锛岄�氳繃@LoadBalanced娉ㄨВ寮�鍚潎琛¤礋杞借兘鍔�.
@@ -59,6 +92,7 @@
public RestTemplate restTemplate() {
StringHttpMessageConverter m = new StringHttpMessageConverter(Charset.forName("UTF-8"));
RestTemplate restTemplate = new RestTemplateBuilder().additionalMessageConverters(m).build(RestTemplate.class);
+ restTemplate.getInterceptors().add(java110RestTemplateInterceptor);
return restTemplate;
}
@@ -68,7 +102,7 @@
* @return restTemplate
*/
@Bean
- public RestTemplate restTemplateNoLoadBalanced() {
+ public RestTemplate outRestTemplate() {
StringHttpMessageConverter m = new StringHttpMessageConverter(Charset.forName("UTF-8"));
RestTemplate restTemplate = new RestTemplateBuilder().additionalMessageConverters(m).build(RestTemplate.class);
return restTemplate;
@@ -76,6 +110,8 @@
public static void main(String[] args) throws Exception {
try {
+ ServiceStartInit.preInitSystemConfig();
+
ApplicationContext context = SpringApplication.run(OrderServiceApplicationStart.class, args);
//鏈嶅姟鍚姩鍔犺浇
@@ -84,40 +120,90 @@
//鍔犺浇浜嬩欢鏁版嵁
//EventConfigInit.initSystemConfig();
- //鍒锋柊缂撳瓨
- flushMainCache(args);
- }catch (Throwable e){
- logger.error("绯荤粺鍚姩澶辫触",e);
+
+ //鍔犺浇workId
+ loadWorkId();
+ } catch (Throwable e) {
+ logger.error("绯荤粺鍚姩澶辫触", e);
}
}
/**
- * 鍒锋柊涓昏鐨勭紦瀛�
- *
- * @param args
+ * 鍔犺浇 workId
*/
- private static void flushMainCache(String[] args) {
+ public static void loadWorkId() throws StartException {
- logger.debug("鍒ゆ柇鏄惁闇�瑕佸埛鏂版棩蹇楋紝鍙傛暟 args 涓� {}", args);
-
- //鍥犱负濂藉鏈嬪弸鍚姩鏃� 涓嶅姞 鍙傛暟-Dcache 鎵�浠ュ惎鍔ㄦ椂妫�娴� redis 涓槸鍚﹀瓨鍦� java110_hc_version
- String mapping = MappingCache.getValue("java110_hc_version");
- if(StringUtil.isEmpty(mapping)){
- ICenterServiceCacheSMO centerServiceCacheSMO = (ICenterServiceCacheSMO) ApplicationContextFactory.getBean("centerServiceCacheSMOImpl");
- centerServiceCacheSMO.startFlush();
- return ;
- }
-
- if (args == null || args.length == 0) {
+ if (!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))) {
return;
}
- for (int i = 0; i < args.length; i++) {
- if (args[i].equalsIgnoreCase("-Dcache")) {
- logger.debug("寮�濮嬪埛鏂版棩蹇楋紝鍏ュ弬涓猴細{}", args[i]);
- ICenterServiceCacheSMO centerServiceCacheSMO = (ICenterServiceCacheSMO) ApplicationContextFactory.getBean("centerServiceCacheSMOImpl");
- centerServiceCacheSMO.startFlush();
- }
+ ZookeeperProperties zookeeperProperties = ApplicationContextFactory.getBean("zookeeperProperties", ZookeeperProperties.class);
+
+ if (zookeeperProperties == null) {
+ throw new StartException(ResponseConstant.RESULT_CODE_ERROR, "绯荤粺鍚姩澶辫触锛屾湭鍔犺浇zookeeper 閰嶇疆淇℃伅");
}
+
+ String host = null;
+ try {
+ host = InetAddress.getLocalHost().getHostAddress();
+ } catch (UnknownHostException e) {
+ throw new StartException(ResponseConstant.RESULT_CODE_ERROR, "绯荤粺鍚姩澶辫触锛岃幏鍙杊ost澶辫触" + e);
+ }
+
+ ServiceInfoListener serviceInfoListener = ApplicationContextFactory.getBean("serviceInfoListener", ServiceInfoListener.class);
+
+ if (serviceInfoListener == null) {
+ throw new StartException(ResponseConstant.RESULT_CODE_ERROR, "绯荤粺鍚姩澶辫触锛岃幏鍙栨湇鍔$洃鍚鍙eけ璐�");
+ }
+
+ serviceInfoListener.setServiceHost(host);
+
+ try {
+ ZooKeeper zooKeeper = new ZooKeeper(zookeeperProperties.getZookeeperConnectString(), zookeeperProperties.getTimeOut(), new Watcher() {
+
+ @Override
+ public void process(WatchedEvent watchedEvent) {
+
+ }
+ });
+
+
+ Stat stat = zooKeeper.exists(zookeeperProperties.getWorkDir(), true);
+
+ if (stat == null) {
+ zooKeeper.create(zookeeperProperties.getWorkDir(), "".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
+ CreateMode.PERSISTENT);
+ }
+ String workDir = "";
+ List<String> workDirs = zooKeeper.getChildren(zookeeperProperties.getWorkDir(), true);
+
+ if (workDirs != null && workDirs.size() > 0) {
+ for (String workDirTemp : workDirs) {
+ if (workDirTemp.startsWith(serviceInfoListener.getHostPort())) {
+ workDir = workDirTemp;
+ break;
+ }
+ }
+ }
+ if (StringUtil.isNullOrNone(workDir)) {
+ workDir = zooKeeper.create(zookeeperProperties.getWorkDir() + "/" + serviceInfoListener.getHostPort(), "".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
+ CreateMode.PERSISTENT_SEQUENTIAL);
+ }
+
+ String[] pathTokens = workDir.split("/");
+ if (pathTokens.length > 0
+ && pathTokens[pathTokens.length - 1].contains("-")
+ && pathTokens[pathTokens.length - 1].contains(":")) {
+ String workId = pathTokens[pathTokens.length - 1].substring(pathTokens[pathTokens.length - 1].indexOf("-") + 1);
+ serviceInfoListener.setWorkId(Long.parseLong(workId));
+ }
+
+ Assert.hasLength(serviceInfoListener.getWorkId() + "", "绯荤粺涓姞杞絯orkId 澶辫触");
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new StartException(ResponseConstant.RESULT_CODE_ERROR, "绯荤粺鍚姩澶辫触锛岄摼鎺ookeeper澶辫触" + zookeeperProperties.getZookeeperConnectString());
+ }
+
+
}
}
\ No newline at end of file
--
Gitblit v1.8.0