From cc1daa4d9b3aafb06b8c078d751ef12d710b149f Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期二, 11 四月 2017 14:20:36 +0800
Subject: [PATCH] 用户服务信息完善,用户信息基本信息,属性信息受理,查询客户信息

---
 UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java |  156 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 127 insertions(+), 29 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 11a60be..7fa9dd9 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
@@ -6,13 +6,16 @@
 import com.java110.common.util.ProtocolUtil;
 import com.java110.entity.user.BoCust;
 import com.java110.entity.user.BoCustAttr;
+import com.java110.entity.user.Cust;
 import com.java110.feign.base.IPrimaryKeyService;
 import com.java110.user.dao.IUserServiceDao;
 import com.java110.user.smo.IUserServiceSMO;
 import com.java110.core.base.smo.BaseServiceSMO;
 import org.apache.commons.lang.math.NumberUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -21,6 +24,7 @@
  * Created by wuxw on 2017/4/5.
  */
 @Service("userServiceSMOImpl")
+@Transactional
 public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSMO {
 
     @Autowired
@@ -44,7 +48,7 @@
      * @param userInfoJson 鍏ュ弬涓虹敤鎴蜂俊鎭痡son浼�
      * @return
      */
-    public String saveUser(String userInfoJson) {
+    public String saveUser(String userInfoJson) throws Exception{
 
         JSONObject reqUserJSON = null;
         try {
@@ -67,7 +71,7 @@
             //杩斿洖寮傚父淇℃伅
             return e.getMessage();
         }
-        return soUserService(reqUserJSON.toJSONString());
+        return soUserService(reqUserJSON);
     }
 
 
@@ -77,29 +81,48 @@
      * @param userInfoJson
      * @return
      */
-    public String soUserService(String userInfoJson) {
+    public String soUserService(JSONObject userInfoJson) throws Exception{
         LoggerEngine.debug("鐢ㄦ埛鏈嶅姟鎿嶄綔瀹㈡埛鍏ュ弬锛�" + userInfoJson);
-        String resultUserInfo = null;
-        JSONObject reqUserJSON = null;
-        try {
-            reqUserJSON = this.simpleValidateJSON(userInfoJson);
-            //1.0瑙勫垯鏍¢獙锛屾姤鏂囨槸鍚﹀悎娉�
+        JSONObject paramJson = new JSONObject();
 
-            if(reqUserJSON.containsKey("boCust")){
+        JSONObject resultInfo = null;
 
-            }
-
-            if(reqUserJSON.containsKey("boCustAttr")){
-
-            }
-
-            //2.0
-        } catch (Exception e) {
-            LoggerEngine.error("鏈嶅姟澶勭悊鍑虹幇寮傚父锛�", e);
-        } finally {
-            LoggerEngine.debug("鐢ㄦ埛鏈嶅姟鎿嶄綔瀹㈡埛鍑哄弬锛�" + resultUserInfo);
-            return resultUserInfo;
+        if (userInfoJson == null){
+            throw new IllegalArgumentException("soUserService 鍏ュ弬 涓虹┖"+userInfoJson);
         }
+         // 瀹㈡埛淇℃伅澶勭悊
+            if(userInfoJson.containsKey("boCust")){
+                JSONArray boCusts = userInfoJson.getJSONArray("boCust");
+                JSONObject boCustObj = new JSONObject();
+                boCustObj.put("boCust",boCusts);
+                String returnSaveBoCust = this.soBoCust(boCustObj.toJSONString());
+
+                if(!ProtocolUtil.validateReturnJson(returnSaveBoCust,paramJson)){
+
+                    throw new RuntimeException("淇濆瓨 bo_cust 澶辫触锛�"+boCustObj+(paramJson != null
+                            && paramJson.containsKey("RESULT_MSG")?paramJson.getString("RESULT_MSG"):"鏈煡寮傚父"));
+                }
+
+                resultInfo = paramJson.getJSONObject("RESULT_INFO");
+            }
+
+            //瀹㈡埛灞炴�т俊鎭鐞�
+            if(userInfoJson.containsKey("boCustAttr")){
+
+                JSONArray boCustAttrs = userInfoJson.getJSONArray("boCustAttr");
+                JSONObject boCustAttrObj = new JSONObject();
+                boCustAttrObj.put("boCustAttr",boCustAttrs);
+                String returnSaveBoCustAttr = soBoCustAttr(boCustAttrObj.toJSONString());
+
+                if(!ProtocolUtil.validateReturnJson(returnSaveBoCustAttr,paramJson)){
+
+                    throw new RuntimeException("淇濆瓨 bo_cust 澶辫触锛�"+boCustAttrObj+(paramJson != null
+                            && paramJson.containsKey("RESULT_MSG")?paramJson.getString("RESULT_MSG"):"鏈煡寮傚父"));
+                }
+            }
+
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",resultInfo);
+
     }
 
     /**
@@ -107,13 +130,20 @@
      *     boCust:[{},{}]
      * }
      * 瀹㈡埛淇″績澶勭悊
+     *
+     *
      * @param boCusts
-     * @return
+     * @return 鎴愬姛 浼氬甫涓婂鐞嗗鎴风殑瀹㈡埛ID
+     * {'RESULT_CODE':'0000','RESULT_MSG':'鎴愬姛','RESULT_INFO':{'custId':'7000123,718881991}}
      * @throws Exception
      */
     public String soBoCust(String boCusts) throws Exception{
         // 灏� jsonArray 杞负list<BoCust> 瀵硅薄
         JSONObject jsonObject = JSONObject.parseObject(boCusts);
+
+        JSONObject resultInfo = new JSONObject();
+
+        String custIds = "";
 
         List<BoCust> boCustList = JSONObject.parseArray(jsonObject.getJSONArray("boCust").toJSONString(), BoCust.class);
 
@@ -141,12 +171,39 @@
             //淇濆瓨鏁版嵁鑷� bo_cust 琛ㄤ腑
             int saveBoCustFlag = iUserServiceDao.saveDataToBoCust(boCust);
 
-            if(saveBoCustFlag > 0){
-                //寤烘。 澶勭悊
+            if(saveBoCustFlag < 1){ // 濡傛灉娌℃湁淇濆瓨鎴愬姛锛屾姏鍑哄紓甯革紝鏈変簨鐗� 鍥為��浜嬬墿
+                throw new RuntimeException("淇濆瓨杩囩▼[bo_cust]鏁版嵁澶辫触,鍗拌薄璁板綍鏁颁负"+saveBoCustFlag+"锛宐oCust : "+boCust);
+            }
+            //寤烘。 澶勭悊 瀹炰緥鏁版嵁
+            int saveCustFlag = 0;
+            if("ADD".equals(boCust.getState())){
+                saveCustFlag  = iUserServiceDao.saveDataToCust(boCust.convert());
+            }else if("DEL".equals(boCust.getState())){
+                saveCustFlag = iUserServiceDao.deleteDataToCust(boCust.convert());
+            }else if("KIP".equals(boCust.getState())){
+                //鎸夌悊杩欓噷鍒颁笉浜嗭紝KIP琛ㄧず瀹炰緥鏁版嵁涓嶅彉锛屾墍浠ヨ繖閲岄粯璁ゅ啓鎴�1 璁や负鏄垚鍔�
+                saveCustFlag = 1;
+            }else{
+                //杩欓噷鍗曠嫭鎶涘嚭寮傚父锛屼笉璧颁笅闈㈢粺涓�寮傚父鎶涘嚭锛屾槸涓轰簡璇存槑鏇村叿浣撶偣
+                throw new RuntimeException("鍏ュ弬閿欒boCust 鐨� state 鐩墠鍙敮鎸� [ADD,DEL,KIP] , boCust : " +boCust);
             }
 
+
+            if(saveCustFlag < 1){
+                throw new RuntimeException("淇濆瓨瀹炰緥[cust]鏁版嵁澶辫触锛屽奖鍝嶈褰曟暟涓�"+saveCustFlag+", cust : "+boCust.convert());
+            }
+
+            custIds +=","+custId;
         }
-        return "";
+
+        //鍘婚櫎绗竴涓�楀彿
+        if (custIds.length()>0){
+            custIds = custIds.substring(1);
+        }
+
+        resultInfo.put("custId",custIds);
+
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",resultInfo);
     }
 
     /**
@@ -177,13 +234,54 @@
         for(BoCustAttr boCustAttr : boCustAttrList) {
 
             //淇濆瓨鏁版嵁鑷� bo_cust_attr 琛ㄤ腑
-            int saveBoCustFlag = iUserServiceDao.saveDataToBoCustAttr(boCustAttr);
+            int saveBoCustAttrFlag = iUserServiceDao.saveDataToBoCustAttr(boCustAttr);
 
-            if (saveBoCustFlag > 0) {
-                //寤烘。 澶勭悊
+            if(saveBoCustAttrFlag < 1){ // 濡傛灉娌℃湁淇濆瓨鎴愬姛锛屾姏鍑哄紓甯革紝鏈変簨鐗� 鍥為��浜嬬墿
+                throw new RuntimeException("淇濆瓨杩囩▼[bo_cust_attr]鏁版嵁澶辫触,鍗拌薄璁板綍鏁颁负"+saveBoCustAttrFlag+"锛宐oCustAttr : "+boCustAttr);
+            }
+
+            //寤烘。 澶勭悊 瀹炰緥鏁版嵁
+            int saveCustAttrFlag = 0;
+            if("ADD".equals(boCustAttr.getState())){
+                saveCustAttrFlag  = iUserServiceDao.saveDataToCustAttr(boCustAttr.convert());
+            }else if("DEL".equals(boCustAttr.getState())){
+                saveCustAttrFlag = iUserServiceDao.deleteDataToCustAttr(boCustAttr.convert());
+            }else if("KIP".equals(boCustAttr.getState())){
+                //鎸夌悊杩欓噷鍒颁笉浜嗭紝KIP琛ㄧず瀹炰緥鏁版嵁涓嶅彉锛屾墍浠ヨ繖閲岄粯璁ゅ啓鎴�1 璁や负鏄垚鍔�
+                saveCustAttrFlag = 1;
+            }else{
+                //杩欓噷鍗曠嫭鎶涘嚭寮傚父锛屼笉璧颁笅闈㈢粺涓�寮傚父鎶涘嚭锛屾槸涓轰簡璇存槑鏇村叿浣撶偣
+                throw new RuntimeException("鍏ュ弬閿欒boCustAttr 鐨� state 鐩墠鍙敮鎸� [ADD,DEL,KIP] , boCust : " +boCustAttr);
+            }
+
+            if(saveCustAttrFlag < 1){
+                throw new RuntimeException("淇濆瓨瀹炰緥[cust_attr]鏁版嵁澶辫触锛屽奖鍝嶈褰曟暟涓�"+saveCustAttrFlag+", cust : "+boCustAttr.convert());
             }
         }
-            return "";
+
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",null);
+    }
+
+
+    /**
+     * 鏌ヨ瀹㈡埛淇℃伅
+     * 鍖呮嫭 鍩烘湰淇℃伅cust 鍜� 灞炴�т俊鎭� custAttr
+     * @param cust
+     * @return
+     * @throws Exception
+     */
+    public String queryCust(Cust cust) throws Exception{
+        LoggerEngine.debug("瀹㈡埛淇℃伅鏌ヨ鍏ュ弬锛�" + cust);
+        if(cust == null || StringUtils.isBlank(cust.getCustId()) ){
+            throw new IllegalArgumentException("瀹㈡埛淇℃伅鏌ヨ鍏ュ弬涓虹┖锛宑ustId 涓虹┖ "+cust);
+        }
+        Cust newCust = iUserServiceDao.queryDataToCust(cust);
+
+        if(newCust == null){
+            return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_ERROR,"鏈壘鍒扮敤鎴蜂俊鎭�",null);
+        }
+
+        return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",JSONObject.parseObject(JSONObject.toJSONString(newCust)));
     }
 
     public IPrimaryKeyService getiPrimaryKeyService() {

--
Gitblit v1.8.0