From 9454b49eeabd56894550f1419f14e96f9d10c2ef Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期六, 02 二月 2019 13:15:51 +0800
Subject: [PATCH] 调整日志信息
---
UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java | 573 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 530 insertions(+), 43 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 6097884..0e14431 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,25 +2,43 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.JSONPath;
+import com.java110.common.cache.MappingCache;
+import com.java110.common.constant.KafkaConstant;
+import com.java110.common.constant.MappingConstant;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.StateConstant;
+import com.java110.common.exception.SMOException;
+import com.java110.common.kafka.KafkaFactory;
import com.java110.common.log.LoggerEngine;
+import com.java110.common.util.Assert;
+import com.java110.common.util.DateUtil;
import com.java110.common.util.ProtocolUtil;
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.context.BusinessServiceDataFlow;
+import com.java110.core.context.DataFlow;
+import com.java110.core.factory.DataFlowFactory;
+import com.java110.core.factory.DataTransactionFactory;
+import com.java110.entity.center.DataFlowLinksCost;
+import com.java110.entity.center.DataFlowLog;
+import com.java110.entity.order.BusiOrder;
import com.java110.entity.user.BoCust;
import com.java110.entity.user.BoCustAttr;
import com.java110.entity.user.Cust;
+import com.java110.entity.user.CustAttr;
+import com.java110.event.service.BusinessServiceDataFlowEventPublishing;
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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
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;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* 鐢ㄦ埛鏈嶅姟淇℃伅绠$悊涓氬姟淇℃伅瀹炵幇
@@ -30,7 +48,9 @@
@Transactional
public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSMO {
- @Autowired
+ private final static Logger logger = LoggerFactory.getLogger(UserServiceSMOImpl.class);
+
+ //@Autowired
IPrimaryKeyService iPrimaryKeyService;
@Autowired
@@ -80,7 +100,15 @@
/**
* 鎵�鏈夋湇鍔″鐞嗙被
+ * {
*
+ * 'boCust':[{}],
+ * 'boCustAttr':[{}]
+ * }
+ *
+ * 杩斿洖鎶ユ枃锛�
+ *
+ * {'RESULT_CODE':'0000','RESULT_MSG':'鎴愬姛','RESULT_INFO':{'custId':'7000123,718881991'}}
* @param userInfoJson
* @return
*/
@@ -96,46 +124,92 @@
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(),custIdKey);
- if(!ProtocolUtil.validateReturnJson(returnSaveBoCust,paramJson)){
+ // 瀹㈡埛淇℃伅澶勭悊 澶勭悊boCust鑺傜偣
+ doProcessBoCust(userInfoJson, paramJson, custIdKey, resultInfo);
- 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");
- //棣栧厛瀵筩ustId 杩涜澶勭悊
- if(custIdKey != null && custIdKey.size() > 0 ){
- for(int boCustAttrIndex = 0 ; boCustAttrIndex < boCustAttrs.size();boCustAttrIndex++){
- JSONObject boCustAttr = boCustAttrs.getJSONObject(boCustAttrIndex);
- boCustAttr.put("custId",custIdKey.get("custId"+boCustAttr.getString("custId")));
- }
- }
- 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"):"鏈煡寮傚父"));
- }
- }
+ //瀹㈡埛灞炴�т俊鎭鐞� 澶勭悊boCustAttr鑺傜偣
+ doProcessBoCustAttr(userInfoJson, paramJson, custIdKey, resultInfo);
return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",resultInfo);
+ }
+
+ /**
+ *
+ * 璇锋眰鎶ユ枃涓猴細
+ *
+ * {
+ "data": [
+ {
+ "actionTypeCd": "C1",
+ "boCust": [{},{}],
+ "boCustAttr": [{ }, {}]
+ },
+ {
+ "actionTypeCd": "C1",
+ "boCust": [{},{}],
+ "boCustAttr": [{ }, {}]
+ }
+ ]
+ }
+
+ 杩斿洖鎶ユ枃 锛�
+
+ { 'RESULT_CODE': '0000', 'RESULT_MSG': '鎴愬姛', 'RESULT_INFO': {'cust':[{'oldCustId':'-1','custId':'12345678'},{'oldCustId':'-2','custId':'12345678'}]} }
+ * @param userInfoJson
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public String soUserServiceForOrderService(JSONObject userInfoJson) throws Exception {
+
+ Assert.isNotNull(userInfoJson,"data","璇锋眰鎶ユ枃缂哄皯 data 鑺傜偣锛岃妫�鏌�");
+
+ JSONArray custInfos = userInfoJson.getJSONArray("data");
+
+ Assert.isNull(custInfos,"璇锋眰鎶ユ枃涓璬ata鑺傜偣锛屾病鏈夊瓙鑺傜偣锛宒ata瀛愯妭鐐瑰簲璇ヤ负JSONArray,custInfos="+custInfos);
+
+ 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);
+ JSONObject resultInfo = new JSONObject();
+
+ 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")) {
+
+ 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);
+ }
+
+ }
+ }
+
+ }
+
+ custInfoJ.put("cust",resultCustIdArray);
+
+ return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",custInfoJ);
}
/**
@@ -147,7 +221,7 @@
*
* @param boCusts
* @return 鎴愬姛 浼氬甫涓婂鐞嗗鎴风殑瀹㈡埛ID
- * {'RESULT_CODE':'0000','RESULT_MSG':'鎴愬姛','RESULT_INFO':{'custId':'7000123,718881991}}
+ * {'RESULT_CODE':'0000','RESULT_MSG':'鎴愬姛','RESULT_INFO':{'custId':'7000123,718881991'}}
* @throws Exception
*/
public String soBoCust(String boCusts) throws Exception{
@@ -328,6 +402,36 @@
return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",null);
}
+ /**
+ * 浣滃簾瀹㈡埛淇℃伅
+ * [{},{},{}]
+ *
+ * @param datas
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public String soDeleteCustInfo(JSONArray datas) throws Exception {
+
+ Assert.isNull(datas,"浼犲叆鐨刣ata鑺傜偣涓嬫病鏈変换浣曞唴瀹�");
+
+ for(int boIdIndex = 0 ; boIdIndex < datas.size(); boIdIndex++){
+ JSONObject data = datas.getJSONObject(boIdIndex);
+
+ Assert.isNotNull(data,"boId","褰撳墠鑺傜偣涓病鏈夊寘鍚玝oId鑺傜偣鏍煎紡閿欒"+data);
+
+ // 澶嶅師Cust
+ doDeleteBoCust(data);
+
+ // 澶嶅師CustAttr
+ doDeleteBoCustAttr(data);
+
+ }
+
+
+ return null;
+ }
+
/**
* 鏌ヨ瀹㈡埛淇℃伅
@@ -350,6 +454,389 @@
return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",JSONObject.parseObject(JSONObject.toJSONString(newCust)));
}
+ /**
+ * 鏍规嵁olID鏌ヨ瀹㈡埛淇℃伅
+ * @param busiOrderStr
+ * @return
+ * @throws Exception
+ */
+ public String queryCustInfoByOlId(String busiOrderStr) throws Exception{
+ return doQueryCustInfoByOlId(busiOrderStr,false);
+ }
+
+ /**
+ * 鏍规嵁olID鏌ヨ瀹㈡埛淇℃伅 闇�瑕佷綔搴熺殑鍙戣捣鐨勬姤鏂�
+ * @param busiOrderStr
+ * @return
+ * @throws Exception
+ */
+ public String queryNeedDeleteCustInfoByOlId(String busiOrderStr) throws Exception{
+ return doQueryCustInfoByOlId(busiOrderStr,true);
+ }
+
+ /**
+ * 鏌ヨ瀹㈡埛璁㈠崟淇℃伅
+ * @param busiOrderStr 璁㈠崟椤逛俊鎭�
+ * @param isNeedDelete 鏄惁鏄挙鍗曟姤鏂� true 鏌ヨ鎾ゅ崟鎶ユ枃 false
+ * @return
+ * @throws Exception
+ */
+ private String doQueryCustInfoByOlId(String busiOrderStr,Boolean isNeedDelete) throws Exception{
+ BusiOrder busiOrder = JSONObject.parseObject(busiOrderStr, BusiOrder.class);
+
+ if(busiOrder == null || "".equals(busiOrder.getOlId())){
+ throw new IllegalArgumentException("瀹㈡埛淇℃伅鏌ヨ鍏ュ弬涓虹┖锛宱lId 涓虹┖ "+busiOrderStr);
+ }
+
+ Cust cust = new Cust();
+ cust.setVersionId(busiOrder.getOlId());
+ //鏍规嵁鐗堟湰ID鏌ヨ瀹炰緥鏁版嵁
+ Cust newCust = iUserServiceDao.queryDataToCust(cust);
+ JSONObject returnJson = JSONObject.parseObject("{'data':{}}");
+ if(newCust == null){
+ return returnJson.toJSONString();
+ }
+
+ BoCust boCust = new BoCust();
+
+ boCust.setBoId(busiOrder.getBoId());
+ boCust.setCustId(newCust.getCustId());
+ boCust.setVersionId(busiOrder.getOlId());
+
+ List<BoCust> boCusts = iUserServiceDao.queryBoCust(boCust);
+
+
+ //涓�鑸儏鍐典笅娌℃湁杩欑鎯呭喌瀛樺湪锛岄櫎闈� 浜哄伐 鏀逛簡鏁版嵁锛屾垨娌℃寜娴佺▼瀹屾垚鏁版嵁澶勭悊
+ if(boCusts == null || boCusts.size() == 0){
+ return returnJson.toJSONString();
+ }
+
+
+ JSONArray boCustArray = new JSONArray();
+ //鍗曠函鐨勫垹闄� 鍜屽崟绾� 澧炲姞
+ for(int boCustIndex = 0 ; boCustIndex < boCusts.size();boCustIndex++) {
+ BoCust newBoCust = boCusts.get(boCustIndex);
+ if(isNeedDelete) {
+ if (StateConstant.STATE_DEL.equals(newBoCust.getState())) {
+ newBoCust.setBoId("");
+ newBoCust.setState(StateConstant.STATE_ADD);
+ } else if (StateConstant.STATE_ADD.equals(newBoCust.getState())) {
+ newBoCust.setState(StateConstant.STATE_DEL);
+ } else {
+ newBoCust.setState(StateConstant.STATE_KIP);
+ }
+ }
+ boCustArray.add(newBoCust);
+ }
+ returnJson.getJSONObject("data").put("boCust",JSONObject.toJSONString(boCustArray));
+
+
+ //灞炴�у鐞�
+ CustAttr oldCustAttr = new CustAttr();
+ oldCustAttr.setCustId(newCust.getCustId());
+ oldCustAttr.setVersionId(busiOrder.getOlId());
+ List<CustAttr> custAttrs = iUserServiceDao.queryDataToCustAttr(oldCustAttr);
+ if(custAttrs == null || custAttrs.size() == 0){
+ return returnJson.toJSONString();
+ }
+ /**
+ * 鏌ヨ瀹㈡埛鏌ヨ鐨勮繃绋嬫暟鎹�
+ */
+ BoCustAttr boCustAttr = new BoCustAttr();
+ boCustAttr.setCustId(newCust.getCustId());
+ boCustAttr.setVersionId(busiOrder.getOlId());
+ List<BoCustAttr> boCustAttrs = iUserServiceDao.queryBoCustAttr(boCustAttr);
+
+
+ //涓�鑸儏鍐典笅娌℃湁杩欑鎯呭喌瀛樺湪锛岄櫎闈� 浜哄伐 鏀逛簡鏁版嵁锛屾垨娌℃寜娴佺▼瀹屾垚鏁版嵁澶勭悊
+ if(boCustAttrs == null || boCustAttrs.size() == 0){
+ return returnJson.toJSONString();
+ }
+
+
+ JSONArray boCustAttrArray = new JSONArray();
+ //鍗曠函鐨勫垹闄� 鍜屽崟绾� 澧炲姞
+ for(BoCustAttr newBoCustAttr : boCustAttrs) {
+ if(isNeedDelete) {
+ if (StateConstant.STATE_DEL.equals(newBoCustAttr.getState())) {
+ newBoCustAttr.setBoId("");
+ newBoCustAttr.setState(StateConstant.STATE_ADD);
+ } else if (StateConstant.STATE_ADD.equals(newBoCustAttr.getState())) {
+ newBoCustAttr.setState(StateConstant.STATE_DEL);
+ } else {
+ newBoCustAttr.setState(StateConstant.STATE_KIP);
+ }
+ }
+ boCustAttrArray.add(newBoCustAttr);
+ }
+
+ returnJson.getJSONObject("data").put("boCustAttr",JSONObject.toJSONString(boCustAttrArray));
+
+ return returnJson.toJSONString();
+
+ }
+ /**
+ * 澶勭悊boCust 鑺傜偣
+ * @throws Exception
+ */
+ public void doProcessBoCust(JSONObject userInfoJson,JSONObject paramJson,Map custIdKey, JSONObject resultInfo) throws Exception{
+
+ if(userInfoJson.containsKey("boCust")){
+ JSONArray boCusts = userInfoJson.getJSONArray("boCust");
+ JSONObject boCustObj = new JSONObject();
+ boCustObj.put("boCust",boCusts);
+ String returnSaveBoCust = this.soBoCust(boCustObj.toJSONString(),custIdKey);
+
+ 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");
+ }
+ }
+
+ /**
+ * 澶勭悊boCustAttr 鑺傜偣
+ * @param userInfoJson
+ * @param paramJson
+ * @param custIdKey
+ * @param resultInfo
+ */
+ public void doProcessBoCustAttr(JSONObject userInfoJson,JSONObject paramJson,Map custIdKey, JSONObject resultInfo) throws Exception{
+ if(userInfoJson.containsKey("boCustAttr")){
+
+ JSONArray boCustAttrs = userInfoJson.getJSONArray("boCustAttr");
+ //棣栧厛瀵筩ustId 杩涜澶勭悊
+ if(custIdKey != null && custIdKey.size() > 0 ){
+ for(int boCustAttrIndex = 0 ; boCustAttrIndex < boCustAttrs.size();boCustAttrIndex++){
+ JSONObject boCustAttr = boCustAttrs.getJSONObject(boCustAttrIndex);
+ boCustAttr.put("custId",custIdKey.get("custId"+boCustAttr.getString("custId")));
+ }
+ }
+ 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"):"鏈煡寮傚父"));
+ }
+ }
+ }
+
+ /**
+ * 浣滃簾 boCust 淇℃伅
+ * @param data
+ * @throws Exception
+ */
+ public void doDeleteBoCust(JSONObject data) throws Exception{
+
+
+ Cust deleteCust = null;
+ //鏍规嵁boId 鏌ヨbo_cust 琛紝鏄惁鏈夋暟鎹紝娌℃暟鎹洿鎺ヨ繑鍥�
+ BoCust boCust = new BoCust();
+
+ boCust.setBoId(data.getString("boId"));
+
+ List<BoCust> boCusts = iUserServiceDao.queryBoCust(boCust);
+
+ //Assert.isOne(boCusts,"鍦ㄨ〃bo_cust涓湭鎵惧埌boId 涓篬"+data.getString("boId")+"]鐨勬暟鎹� 鎴栨湁澶氭潯鏁版嵁锛岃妫�鏌�");
+ if(boCusts == null || boCusts.size() < 1){
+ LoggerEngine.error("褰撳墠娌℃湁鏌ュ埌鏁颁负 "+data+"璇锋鏌ユ暟鎹�");
+ return;
+ }
+ //鍦ㄨ繃绋嬭〃涓ˉ涓�鏉′綔搴熺殑鏁版嵁锛岀劧鍚庢牴鎹産oId鐨勫姩浣滃瀹炰緥鏁版嵁杩涜澶勭悊
+
+ boCust.setCustId(boCusts.get(0).getCustId());
+ boCust.setBoId("");
+ //鏌ヨ鍑烘墍鏈塩ustId 涓�鏍风殑鏁版嵁
+ List<BoCust> boCustAll = iUserServiceDao.queryBoCust(boCust);
+
+ Assert.isNull(boCustAll,"褰撳墠娌℃湁鏌ュ埌custId 涓� "+boCusts.get(0).getCustId()+"璇锋鏌ユ暟鎹�");
+
+ boCust = boCusts.get(0);
+
+ BoCust newBoCust = new BoCust();
+ newBoCust.setBoId(data.getString("newBoId"));
+ newBoCust.setCustId(boCust.getCustId());
+ newBoCust.setState("DEL");
+ int saveBoCustFlag = iUserServiceDao.saveDataToBoCust(newBoCust);
+
+ if(saveBoCustFlag < 1){
+ throw new RuntimeException("鍚慴o_cust琛ㄤ腑淇濆瓨鏁版嵁澶辫触锛宐oCust="+JSONObject.toJSONString(newBoCust));
+ }
+
+ //棣栧厛鍒犻櫎瀹炰緥鏁版嵁
+ deleteCust = new Cust();
+ deleteCust.setCustId(boCust.getCustId());
+ if(iUserServiceDao.deleteDataToCust(deleteCust) < 1){
+ throw new RuntimeException("鍒犻櫎cust瀹炰緥鏁版嵁澶辫触"+JSONObject.toJSONString(deleteCust));
+ }
+ //濡傛灉鏈夊鏉℃暟鎹紝鍒欐仮澶� 鍓嶄竴鏉℃暟鎹俊鎭紝杩欒竟瀛樺湪bug 濡傛灉涓婁竴鏉$殑鏁版嵁娌℃湁鍒嗚浠ュ墠鏁版嵁鐨勬儏鍐典笅浼氭湁闂锛�
+ // 鎵�浠ユ垜浠殑鍘熷垯鏄啀鏇存柊鎴栧垹闄ゆ暟鎹椂涓�瀹氳鍦ㄨ繃绋嬭〃涓繚瀛樺畬鏁存槸瀹炰緥鏁版嵁淇℃伅
+ if(boCustAll.size() > 1){
+ Cust oldCust = boCustAll.get(1).convert();
+ if(iUserServiceDao.saveDataToCust(oldCust)<1 ){
+ throw new RuntimeException("cust 琛ㄦ仮澶嶈�佹暟鎹俊鎭け璐ワ紝cust 涓猴細"+JSONObject.toJSONString(oldCust));
+ }
+ }
+ }
+
+ /**
+ * 鍒犻櫎 bo_cust_attr
+ * @param data
+ * @throws Exception
+ */
+ public void doDeleteBoCustAttr(JSONObject data) throws Exception{
+
+ BoCustAttr boCustAttrTmp = new BoCustAttr();
+
+ boCustAttrTmp.setBoId(data.getString("boId"));
+
+ List<BoCustAttr> boCustAttrs = iUserServiceDao.queryBoCustAttr(boCustAttrTmp);
+
+ if(boCustAttrs == null || boCustAttrs.size() < 1){
+ LoggerEngine.error("褰撳墠娌℃湁鏌ュ埌鏁颁负 "+data+"璇锋鏌ユ暟鎹�");
+ return;
+ }
+
+ boCustAttrTmp.setBoId("");
+ boCustAttrTmp.setCustId(boCustAttrs.get(0).getCustId());
+
+ List<BoCustAttr> boCustAttrsTmps = iUserServiceDao.queryBoCustAttr(boCustAttrTmp);
+
+ Assert.isNull(boCustAttrsTmps,"褰撳墠娌℃湁鏌ュ埌custId 涓� "+boCustAttrs.get(0).getCustId()+"璇锋鏌ユ暟鎹�");
+
+ //鑾峰彇涓婁竴娆℃墍鏈夌殑灞炴��
+
+ List<BoCustAttr> preBoCustAttrTmps = getPreBoCustAttrs(boCustAttrsTmps);
+
+ //淇濆瓨杩囩▼琛�
+ for(BoCustAttr boCustAttr : boCustAttrs){
+ boCustAttr.setBoId("newBoId");
+ boCustAttr.setState("DEL");
+ if(iUserServiceDao.saveDataToBoCustAttr(boCustAttr) < 1){
+ throw new RuntimeException("淇濆瓨鏁版嵁澶辫触锛屼繚瀛樻暟鎹负boCustAttr = "+ JSONObject.toJSONString(boCustAttr));
+ }
+ }
+
+ //鍒犻櫎瀹炰緥鏁版嵁 杩欓噷鎬濊矾鏄紝鍒犻櫎瀹炰緥鏁版嵁涓暟鎹紝灏嗕笂涓�娆DD鏁版嵁閲嶆柊鍐欎竴閬�
+ CustAttr custAttrTmp = new CustAttr();
+ custAttrTmp.setCustId(boCustAttrs.get(0).getCustId());
+ if(iUserServiceDao.deleteDataToCustAttr(custAttrTmp) < 1){
+ throw new RuntimeException("鍒犻櫎CustAttr 瀹炰緥鏁版嵁澶辫触,鏁版嵁涓猴細"+JSONObject.toJSONString(custAttrTmp));
+ }
+
+ for(BoCustAttr boCustAttr : preBoCustAttrTmps){
+ if("ADD".equals(boCustAttr.getState())){
+ if(iUserServiceDao.deleteDataToCustAttr(boCustAttr.convert()) < 1){
+ throw new RuntimeException("澶嶅師鍘熷鏁版嵁澶辫触锛屾暟鎹负锛�" + JSONObject.toJSONString(boCustAttr));
+ }
+ }
+ }
+
+ }
+
+ /**
+ * 鑾峰彇涓婁笂涓�娆$殑鎿嶄綔
+ * @param boCustAttrs
+ * @return
+ */
+ private List<BoCustAttr> getPreBoCustAttrs(List<BoCustAttr> boCustAttrs){
+
+ String firstBoId = boCustAttrs.get(0).getBoId();
+ String preBoId = "";
+ List<BoCustAttr> preBoCustAttrs = new ArrayList<BoCustAttr>();
+ for(BoCustAttr boCustAttr : boCustAttrs){
+ if(!firstBoId.equals(boCustAttr.getBoId())){
+ if(!preBoId.equals(boCustAttr.getBoId()) && !"".equals(preBoId)){
+ break;
+ }
+ preBoId = boCustAttr.getBoId();
+ preBoCustAttrs.add(boCustAttr);
+ }
+ }
+ return preBoCustAttrs;
+ }
+
+
+ @Override
+ public JSONObject service(BusinessServiceDataFlow businessServiceDataFlow) throws SMOException {
+ try {
+ Assert.hasLength(businessServiceDataFlow.getbId(),"bId 涓嶈兘涓虹┖");
+
+ BusinessServiceDataFlowEventPublishing.multicastEvent(businessServiceDataFlow);
+ Assert.notEmpty(businessServiceDataFlow.getResJson(),"鐢ㄦ埛鏈嶅姟["+businessServiceDataFlow.getCurrentBusiness().getServiceCode()+"]娌℃湁杩斿洖鍐呭");
+ } catch (Exception e) {
+ logger.error("鐢ㄦ埛淇℃伅澶勭悊寮傚父",e);
+ throw new SMOException(ResponseConstant.RESULT_PARAM_ERROR,"鐢ㄦ埛淇℃伅澶勭悊寮傚父"+e.getMessage());
+ }finally {
+ if(businessServiceDataFlow == null){
+ return null;
+ }
+
+ //杩欓噷璁板綍鏃ュ織
+ Date endDate = DateUtil.getCurrentDate();
+
+ businessServiceDataFlow.setEndDate(endDate);
+ //娣诲姞鑰楁椂
+ DataFlowFactory.addCostTime(businessServiceDataFlow, "service", "涓氬姟澶勭悊鎬昏�楁椂",
+ businessServiceDataFlow.getStartDate(), businessServiceDataFlow.getEndDate());
+ //淇濆瓨鑰楁椂
+ saveCostTimeLogMessage(businessServiceDataFlow);
+ //淇濆瓨鏃ュ織
+ saveLogMessage(businessServiceDataFlow);
+ }
+ return businessServiceDataFlow.getResJson();
+ }
+
+
+ /**
+ * 淇濆瓨鏃ュ織淇℃伅
+ * @param businessServiceDataFlow
+ */
+ private void saveLogMessage(BusinessServiceDataFlow businessServiceDataFlow){
+
+ try{
+ if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_LOG_ON_OFF))){
+ for(DataFlowLog dataFlowLog :businessServiceDataFlow.getLogDatas()) {
+ KafkaFactory.sendKafkaMessage(KafkaConstant.TOPIC_LOG_NAME, "", JSONObject.toJSONString(dataFlowLog));
+ }
+ }
+ }catch (Exception e){
+ logger.error("鎶ラ敊鏃ュ織鍑洪敊浜嗭紝",e);
+ }
+ }
+
+ /**
+ * 淇濆瓨鑰楁椂淇℃伅
+ * @param businessServiceDataFlow
+ */
+ private void saveCostTimeLogMessage(BusinessServiceDataFlow businessServiceDataFlow){
+ try{
+ if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_COST_TIME_ON_OFF))){
+ List<DataFlowLinksCost> dataFlowLinksCosts = businessServiceDataFlow.getLinksCostDates();
+ JSONObject costDate = new JSONObject();
+ JSONArray costDates = new JSONArray();
+ JSONObject newObj = null;
+ for(DataFlowLinksCost dataFlowLinksCost : dataFlowLinksCosts){
+ newObj = JSONObject.parseObject(JSONObject.toJSONString(dataFlowLinksCost));
+ newObj.put("dataFlowId",businessServiceDataFlow.getDataFlowId());
+ newObj.put("transactionId",businessServiceDataFlow.getTransactionId());
+ costDates.add(newObj);
+ }
+ costDate.put("costDates",costDates);
+
+ KafkaFactory.sendKafkaMessage(KafkaConstant.TOPIC_COST_TIME_LOG_NAME,"",costDate.toJSONString());
+ }
+ }catch (Exception e){
+ logger.error("鎶ラ敊鏃ュ織鍑洪敊浜嗭紝",e);
+ }
+ }
+
public IPrimaryKeyService getiPrimaryKeyService() {
return iPrimaryKeyService;
}
--
Gitblit v1.8.0