From 3d019610083e00f67dc460217f4bed03dc069c39 Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期四, 07 六月 2018 15:13:49 +0800
Subject: [PATCH] 生成ID统一走codeService
---
java110-common/src/main/java/com/java110/common/util/SequenceUtil.java | 95 +++++++++++++++++++++++++++++++++++++++++------
1 files changed, 82 insertions(+), 13 deletions(-)
diff --git a/java110-common/src/main/java/com/java110/common/util/SequenceUtil.java b/java110-common/src/main/java/com/java110/common/util/SequenceUtil.java
index 60da2c3..77ba1c4 100644
--- a/java110-common/src/main/java/com/java110/common/util/SequenceUtil.java
+++ b/java110-common/src/main/java/com/java110/common/util/SequenceUtil.java
@@ -1,8 +1,15 @@
package com.java110.common.util;
+import com.alibaba.fastjson.JSONObject;
import com.java110.common.cache.MappingCache;
import com.java110.common.constant.MappingConstant;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.exception.GenerateCodeException;
+import com.java110.common.exception.ResponseErrorException;
+import com.java110.common.factory.ApplicationContextFactory;
+import org.springframework.web.client.RestTemplate;
+import java.rmi.NoSuchObjectException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -27,9 +34,9 @@
*
* 鍙湁鍦ㄤ笉璋冪敤鏈嶅姟鐢熸垚ID鏃舵湁鐢�
*/
- private static Map prefixMap = null;
+ private static Map<String,String> prefixMap = null;
static {
- prefixMap = new HashMap();
+ prefixMap = new HashMap<String,String>();
//10+yyyymmdd+鍏綅搴忓垪
prefixMap.put("oId","10");
//锛�20+yyyymmdd+鍏綅搴忓垪锛�
@@ -86,45 +93,107 @@
return prefixMap.get("pageTransactionId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId();
}
- public static String getOId(){
+ public static String getOId() throws GenerateCodeException{
if(!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))){
return prefixMap.get("oId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%08d");
}
- //璋冪敤鏈嶅姟
- return null;
+ return getCode(prefixMap.get("oId"));
}
- public static String getBId(){
+
+ /**
+ * 鏌ヨCode
+ * @param prefix
+ * @return
+ * @throws GenerateCodeException
+ */
+ private static String getCode(String prefix) throws GenerateCodeException{
+ //璋冪敤鏈嶅姟
+ String code = "-1";
+ try {
+ String responseMessage = restTemplate().postForObject(MappingCache.getValue(MappingConstant.KEY_CODE_PATH),
+ createCodeRequestJson(getTransactionId(),prefix,prefix).toJSONString(), String.class);
+
+ Assert.jsonObjectHaveKey(responseMessage, "code", "缂栫爜鐢熸垚绯荤粺 杩斿洖鎶ユ枃閿欒" + responseMessage);
+
+ JSONObject resJson = JSONObject.parseObject(responseMessage);
+
+ if (!ResponseConstant.RESULT_CODE_SUCCESS.equals(resJson.getString("code"))) {
+ throw new ResponseErrorException(resJson.getString("code"), "鐢熸垚oId缂栫爜澶辫触 "
+ + resJson.getString("message"));
+ }
+ code = resJson.getString("id");
+ }catch (Exception e){
+ throw new GenerateCodeException(ResponseConstant.RESULT_CODE_ERROR,e.getMessage());
+ }
+ finally {
+ return code;
+ }
+
+ }
+
+ public static String getBId() throws GenerateCodeException{
if(!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))){
return prefixMap.get("bId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%08d");
}
//璋冪敤鏈嶅姟
- return null;
+ return getCode(prefixMap.get("bId"));
}
- public static String getAttrId(){
+ public static String getAttrId() throws GenerateCodeException{
if(!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))){
return prefixMap.get("attrId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%08d");
}
//璋冪敤鏈嶅姟
- return null;
+ return getCode(prefixMap.get("attrId"));
}
- public static String getDataFlowId(){
+ public static String getDataFlowId() throws GenerateCodeException{
if(!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))){
return prefixMap.get("dataFlowId") + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%08d");
}
- return null;
+ return getCode(prefixMap.get("dataFlowId"));
}
- public static String getUserId(){
+ public static String getUserId() throws GenerateCodeException{
if(!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))){
return prefixMap.get("userId") + nextId("%08d");
}
//璋冪敤鏈嶅姟
- return null;
+ return getCode(prefixMap.get("userId"));
}
+
+ /**
+ * 鑾峰彇restTemplate
+ * @return
+ * @throws NoSuchObjectException
+ */
+ private static RestTemplate restTemplate() throws NoSuchObjectException{
+
+ Object bean = ApplicationContextFactory.getBean("restTemplate");
+
+ if(bean == null){
+ throw new NoSuchObjectException("娌℃湁鎵惧埌restTemplate瀵硅薄锛岃鏍稿疄");
+ }
+
+ return (RestTemplate) bean;
+ }
+
+
+ /**
+ * ID鐢熸垚璇锋眰鎶ユ枃
+ * @param transactionId
+ * @return
+ */
+ private static JSONObject createCodeRequestJson(String transactionId, String prefix, String name){
+ JSONObject paramOut = JSONObject.parseObject("{}");
+ paramOut.put("transactionId",transactionId);
+ paramOut.put("prefix",prefix);
+ paramOut.put("name",name);
+ paramOut.put("requestTime",DateUtil.getNowDefault());
+ return paramOut;
+ }
}
--
Gitblit v1.8.0