From 601a32ba5dcee884180908ad00b9d7f65a4e7fea Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期一, 24 四月 2017 10:38:24 +0800
Subject: [PATCH] 新建客户时,将新生成的客户主键信息回写至AppContext 中方便于其他模块用改造

---
 UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java |   41 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java b/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java
index 30e60b4..a485259 100644
--- a/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java
+++ b/UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.JSONPath;
 import com.java110.common.log.LoggerEngine;
 import com.java110.common.util.Assert;
 import com.java110.common.util.ProtocolUtil;
@@ -17,6 +18,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -86,6 +88,10 @@
      *     'boCust':[{}],
      *     'boCustAttr':[{}]
      * }
+     *
+     * 杩斿洖鎶ユ枃锛�
+     *
+     * {'RESULT_CODE':'0000','RESULT_MSG':'鎴愬姛','RESULT_INFO':{'custId':'7000123,718881991'}}
      * @param userInfoJson
      * @return
      */
@@ -161,6 +167,10 @@
      }
      ]
      }
+
+     杩斿洖鎶ユ枃 锛�
+
+     { 'RESULT_CODE': '0000', 'RESULT_MSG': '鎴愬姛', 'RESULT_INFO': {'cust':[{'oldCustId':'-1','custId':'12345678'},{'oldCustId':'-2','custId':'12345678'}]} }
      * @param userInfoJson
      * @return
      * @throws Exception
@@ -174,7 +184,8 @@
 
         Assert.isNull(custInfos,"璇锋眰鎶ユ枃涓璬ata鑺傜偣锛屾病鏈夊瓙鑺傜偣锛宒ata瀛愯妭鐐瑰簲璇ヤ负JSONArray,custInfos="+custInfos);
 
-        JSONArray resultInfos = new JSONArray();
+        JSONObject custInfoJ = new JSONObject();
+        JSONArray resultCustIdArray = new JSONArray();
         for(int custInfoIndex = 0 ;custInfoIndex < custInfos.size();custInfoIndex ++){
             JSONObject custInfoJson = custInfos.getJSONObject(custInfoIndex);
             String soUserServiceResult = this.soUserService(custInfoJson);
@@ -183,12 +194,34 @@
             if(!ProtocolUtil.validateReturnJson(soUserServiceResult,resultInfo)){
                 throw new RuntimeException("瀹㈡埛淇℃伅鍙楃悊澶辫触锛屽師鍥犱负锛�"+resultInfo.getString(ProtocolUtil.RESULT_MSG));
             }
+            if(resultInfo.getJSONObject(ProtocolUtil.RESULT_INFO) != null
+                    && resultInfo.getJSONObject(ProtocolUtil.RESULT_INFO).containsKey("custId")) {
 
-            resultInfos.add(resultInfo.getJSONObject(ProtocolUtil.RESULT_INFO));
+                String custIds = custInfoJ.getString("custId");
+//                custIds += "," + resultInfo.getJSONObject(ProtocolUtil.RESULT_INFO).getString("custId");
+
+//                custIds = custIds.startsWith(",") && custIds.length()>1 ? custIds.substring(1,custIds.length()):custIds;
+                //custInfoJ.put("custId", custIds);
+                JSONArray boCusts = custInfoJson.getJSONArray("boCust");
+
+                Object custIdObj = JSONPath.eval(custInfoJson,"$.boCust[custId < '0'][0].custId");
+                if(StringUtils.isNotBlank(custIds) && !ObjectUtils.isEmpty(custIdObj)) {
+
+                    String[] allNewCustIds = custIds.split(",");
+                    JSONObject newCustIdJson = null;
+                    for (String custId : allNewCustIds) {
+                        newCustIdJson = new JSONObject();
+                        newCustIdJson.put("oldCustId",custIdObj);
+                        newCustIdJson.put("custId",custId);
+                        resultCustIdArray.add(newCustIdJson);
+                    }
+
+                }
+            }
+
         }
-        JSONObject custInfoJ = new JSONObject();
 
-        custInfoJ.put("data",resultInfos);
+        custInfoJ.put("cust",resultCustIdArray);
 
         return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",custInfoJ);
     }

--
Gitblit v1.8.0