From e6883f7be0a81d6423b8c9e9ed8290bfe5852eea Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期六, 29 四月 2017 19:52:49 +0800
Subject: [PATCH] 完成客户信息撤销,作废接口
---
OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java | 416 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 407 insertions(+), 9 deletions(-)
diff --git a/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java b/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java
index ab58298..937da1f 100644
--- a/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java
+++ b/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java
@@ -2,10 +2,14 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.ActionTypeConstant;
+import com.java110.common.constant.AttrCdConstant;
+import com.java110.common.constant.CommonConstant;
import com.java110.common.log.LoggerEngine;
import com.java110.common.util.ProtocolUtil;
import com.java110.config.properties.EventProperties;
import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.context.AppContext;
import com.java110.core.event.AppEventPublishing;
import com.java110.entity.order.BusiOrder;
import com.java110.entity.order.BusiOrderAttr;
@@ -13,15 +17,16 @@
import com.java110.entity.order.OrderListAttr;
import com.java110.feign.base.IPrimaryKeyService;
import com.java110.order.dao.IOrderServiceDao;
+import com.java110.order.mq.DeleteOrderInfoProducer;
import com.java110.order.smo.IOrderServiceSMO;
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 com.java110.common.util.Assert;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* 璁㈠崟鏈嶅姟涓氬姟閫昏緫澶勭悊瀹炵幇绫�
@@ -40,8 +45,45 @@
@Autowired
EventProperties eventProperties;
+ @Autowired
+ DeleteOrderInfoProducer deleteOrderInfoProducer;
+
+ /**
+ * 鏍规嵁璐墿杞D 鎴栬�� 澶栭儴绯荤粺ID 鎴栬�� custId 鎴栬�� channelId 鏌ヨ璁㈠崟淇℃伅
+ * @param orderList
+ * @return
+ */
+ @Override
+ public String queryOrderInfo(OrderList orderList) throws Exception{
+
+
+ List<OrderList> orderLists = iOrderServiceDao.queryOrderListAndAttr(orderList);
+ //
+ JSONArray orderListsArray = new JSONArray();
+ for (OrderList orderListTmp : orderLists){
+ //
+ BusiOrder busiOrderTmp = new BusiOrder();
+ busiOrderTmp.setBoId(orderListTmp.getOlId());
+
+ List<BusiOrder> busiOrders = iOrderServiceDao.queryBusiOrderAndAttr(busiOrderTmp);
+
+ JSONObject orderListJSON = JSONObject.parseObject(JSONObject.toJSONString(orderListTmp));
+
+ orderListJSON.put("busiOrders",JSONObject.parseArray(JSONObject.toJSONString(busiOrders)));
+
+ orderListsArray.add(orderListJSON);
+ }
+
+ JSONObject orderListTmpO = new JSONObject();
+ orderListTmpO.put("orderLists",orderListsArray);
+
+ return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鏌ヨ鎴愬姛",orderListTmpO);
+ }
+
/**
* 璁㈠崟璋冨害
+ *
+ * orderListInfo 涓瓧娈� asyn 濡傛灉涓� A 琛ㄧず 寮傛澶勭悊璁㈠崟锛屽叾浠栬〃鍚屾澶勭悊璁㈠崟
* @param orderInfo 璁㈠崟淇℃伅
* @return 璁㈠崟澶勭悊鎺ュ彛
* @throws Exception
@@ -92,11 +134,17 @@
//鑾峰彇 璁㈠崟椤�
JSONArray busiOrderTmps = orderInfo.getJSONArray("busiOrder");
+ //瀛樻斁busiOrder 鐨刣ata鑺傜偣
+
+ Map<String,JSONArray> datasTmp = new HashMap<String, JSONArray>();
+
for(int busiOrderTmpsIndex = 0 ; busiOrderTmpsIndex < busiOrderTmps.size() ; busiOrderTmpsIndex++){
JSONObject busiOrderJson = busiOrderTmps.getJSONObject(busiOrderTmpsIndex);
- if (!busiOrderJson.containsKey("busiObj")){
+ /*if (!busiOrderJson.containsKey("busiObj")){
throw new IllegalArgumentException("璇锋眰鎶ユ枃涓璪usiOrder 鑺傜偣涓病鏈夊搴旂殑 busiObj 鑺傜偣锛岃妫�鏌�"+busiOrderJson);
- }
+ }*/
+
+ Assert.isNull(busiOrderJson,"busiObj","璇锋眰鎶ユ枃涓璪usiOrder 鑺傜偣涓病鏈夊搴旂殑 busiObj 鑺傜偣锛岃妫�鏌�"+busiOrderJson);
BusiOrder busiOrderObj = JSONObject.parseObject(busiOrderJson.getJSONObject("busiObj").toJSONString(),BusiOrder.class);
@@ -130,9 +178,11 @@
}
}
//淇敼data鑺傜偣涓嬬殑boId锛屼竴鑸槸娌℃湁杩欎釜鍊硷紝鎵�浠ョ洿鎺ユ柊鍔犲氨琛屼簡锛屼笉璁稿垽鏂槸鍚﹀凡-寮�澶�
- if (!busiOrderJson.containsKey("data")){
+ /* if (!busiOrderJson.containsKey("data")){
throw new IllegalArgumentException("璇锋眰鎶ユ枃涓璪usiOrder 鑺傜偣涓病鏈夊搴旂殑 data 鑺傜偣锛岃妫�鏌�"+busiOrderJson);
- }
+ }*/
+
+ Assert.isNull(busiOrderJson,"data","璇锋眰鎶ユ枃涓璪usiOrder 鑺傜偣涓病鏈夊搴旂殑 data 鑺傜偣锛岃妫�鏌�"+busiOrderJson);
//澶勭悊data 鑺傜偣
JSONObject data = busiOrderJson.getJSONObject("data");
@@ -154,20 +204,368 @@
//鏍规嵁busiOrder 鐨� actionTypeCd 娉ㄥ唽閭d釜鏈嶅姟鍘诲鐞�
String actionTypeCd = busiOrderObj.getActionTypeCd();
+ JSONArray dataJsonTmp = null;
+ if(!datasTmp.containsKey(actionTypeCd)){
+ dataJsonTmp = new JSONArray();
+ }else{
+ dataJsonTmp = datasTmp.get(actionTypeCd);
+ }
+ data.put("actionTypeCd",actionTypeCd);
+ dataJsonTmp.add(data);
+
+ datasTmp.put(actionTypeCd,dataJsonTmp);
+
+ /*
try {
//鍙戝竷浜嬩欢
- AppEventPublishing.multicastEvent(actionTypeCd,orderInfo.toJSONString(), data.toJSONString());
+ AppEventPublishing.multicastEvent(actionTypeCd,orderInfo.toJSONString(), data.toJSONString(),orderListTmp.getString("asyn"));
}catch (Exception e){
//杩欓噷琛ュ伩浜嬬墿
throw e;
- }
-
+ }*/
}
+ //鍒涘缓涓婁笅鏂囧璞�
+ AppContext context = createApplicationContext();
+
+ prepareContext(context, datasTmp);
+ try {
+ //鍙戝竷浜嬩欢
+ AppEventPublishing.multicastEvent(context,datasTmp,orderListTmp.getString("asyn"));
+ }catch (Exception e){
+ //杩欓噷琛ュ伩浜嬬墿,杩欓噷鍙戝竷骞挎挱
+ compensateTransactional(datasTmp);
+ throw e;
+ }
return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",JSONObject.parseObject(JSONObject.toJSONString(orderList)));
}
+ /**
+ * 浣滃簾璁㈠崟
+ * 鏍规嵁涓氬姟鍔ㄤ綔浣滃簾
+ * 璇锋眰鍗忚锛�
+ * {
+ * "orderList":{
+ * "transactionId": "1000000200201704113137002690",
+ "channelId": "700212896",
+ "remarks": "",
+ "custId": "701008023904",
+ "statusCd": "S",
+ "reqTime": "20170411163709",
+ "extSystemId": "310013698777",
+ "olTypeCd": "15",
+ * "oldOlId":"123456789",
+ * "asyn":"S"
+ * },
+ * "busiOrder":[{
+ * "actionTypeCd":"ALL"
+ * }]
+ * }
+ *
+ * 锛�
+ *
+ * 鏍规嵁 璁㈠崟椤笽D浣滃簾
+ *
+ * {
+ * "orderList":{
+ * "transactionId": "1000000200201704113137002690",
+ "channelId": "700212896",
+ "remarks": "",
+ "custId": "701008023904",
+ "statusCd": "S",
+ "reqTime": "20170411163709",
+ "extSystemId": "310013698777",
+ "olTypeCd": "15",
+ "asyn":"A"
+ * },
+ * "busiOrder":[{
+ * "oldBoId":"123456789"
+ * },
+ * {
+ * "oldBoId":"123456799"
+ * }]
+ * }
+ * @param orderInfo
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public String deleteOrder(JSONObject orderInfo) throws Exception {
+ //1.0 璐墿杞︿俊鎭牎楠屽鐞�,璧拌鍗曞彈鐞嗗繀椤昏鏈夎喘鐗╄溅淇℃伅鍜岃鍗曢」淇℃伅
+ if(!orderInfo.containsKey("orderList") || !orderInfo.containsKey("busiOrder")){
+ throw new IllegalArgumentException("璇锋眰鎶ユ枃涓病鏈夎喘鐗╄溅鐩稿叧淇℃伅[orderList]鎴栬鍗曢」鐩稿叧淇℃伅[busiOrder],璇锋鏌ユ姤鏂囷細"+orderInfo);
+ }
+
+ JSONObject orderListTmp = orderInfo.getJSONObject("orderList");
+ OrderList orderList = JSONObject.parseObject(orderListTmp.toJSONString(),OrderList.class);
+
+ String olId = orderList.getOlId();
+ //鐢熸垚olId
+ if(StringUtils.isBlank(olId) || olId.startsWith("-") ){
+ olId = this.queryPrimaryKey(iPrimaryKeyService,"OL_ID");
+ orderList.setOlId(olId);
+ }
+
+ //杩欓噷淇濆瓨璐墿杞�
+
+ int saveOrderListFlag = iOrderServiceDao.saveDataToBoOrderList(orderList);
+ if (saveOrderListFlag < 1){
+ throw new RuntimeException("浣滃簾璁㈠崟鏃朵繚瀛樿喘鐗╄溅淇℃伅澶辫触"+orderListTmp);
+ }
+
+ JSONArray busiOrderTmps = orderInfo.getJSONArray("busiOrder");
+
+ /**
+ * 鏍规嵁actionTypeCd 浣滃簾
+ */
+ Assert.isNull(busiOrderTmps,"鍏ュ弬閿欒锛屾病鏈塨usiOrder 鑺傜偣锛屾垨娌℃湁瀛愯妭鐐�");
+
+ List<Map<String,String>> needDeleteBoIds = new ArrayList<Map<String,String>>();
+
+ if(busiOrderTmps.getJSONObject(0).containsKey("actionTypeCd")){
+ String actionTypeCds = busiOrderTmps.getJSONObject(0).getString("actionTypeCd");
+ getNeeddeleteOrderByActionTypeCd(orderListTmp.getString("oldOlId"),needDeleteBoIds,actionTypeCds.split(","));
+ //return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",JSONObject.parseObject(JSONObject.toJSONString(orderList)));
+ }else if(busiOrderTmps.getJSONObject(0).containsKey("oldBoId")){
+ Map<String,String> oldBoIdMap = null;
+ for(int busiOrderIndex = 0; busiOrderIndex< busiOrderTmps.size();busiOrderIndex++){
+ oldBoIdMap = new HashMap<String, String>();
+ oldBoIdMap.put("actionTypeCd","");
+ oldBoIdMap.put("boId",busiOrderTmps.getJSONObject(busiOrderIndex).getString("oldBoId"));
+ oldBoIdMap.put("olId","");
+ needDeleteBoIds.add(oldBoIdMap);
+ }
+ }else {
+ throw new IllegalArgumentException("褰撳墠绯荤粺鍙敮鎸乥usiOrder 鑺傜偣涓嬬涓�涓妭鐐瑰寘鍚� actionTypeCd鑺傜偣鍜� oldOlId鑺傜偣鐨勬姤鏂囷細"+orderInfo);
+ }
+
+ //鏁版嵁鍒嗚
+ Map<String,JSONArray> datasTmp = new HashMap<String, JSONArray>();
+ //娣诲姞鏁版嵁鑷� busi_order,杩欓噷鐢熸垚鏂扮殑boId 灏嗛渶瑕佷綔搴熺殑boId淇℃伅鍐欏叆鍊糱usi_order_attr 涓崟鐙敞鍐屼竴涓睘鎬т俊鎭�
+
+ for(Map<String,String> needDeleteBoIdMap : needDeleteBoIds){
+ BusiOrder busiOrder = new BusiOrder();
+
+ String newBoId = this.queryPrimaryKey(iPrimaryKeyService,"BO_ID");
+
+ busiOrder.setOlId(olId);
+ //閲嶆柊鐢熸垚 boId
+ busiOrder.setBoId(newBoId);
+ //璁剧疆鎾ゅ崟锛屼綔搴熻鍗曞姩浣�
+ busiOrder.setActionTypeCd(ActionTypeConstant.ACTION_TYPE_CANCEL_ORDER);
+
+ busiOrder.setRemark("鎾ゅ崟锛屼綔搴熻鍗曞鐞嗭紝浣滃簾璁㈠崟涓�"+needDeleteBoIdMap.get("boId"));
+
+ //杩欓噷淇濆瓨璁㈠崟椤� busiOrder
+ int saveBusiOrderFlag = iOrderServiceDao.saveDataToBusiOrder(busiOrder);
+ if(saveBusiOrderFlag < 1){
+ throw new RuntimeException("鎾ゅ崟锛屼綔搴熻鍗曞け璐ワ紝淇濆瓨璁㈠崟椤逛俊鎭け璐�"+JSONObject.toJSONString(busiOrder));
+ }
+
+ //灏嗛渶瑕佷綔搴熺殑璁㈠崟boId 鍐欏叆鍊� busi_order_attr 涓� 灞炴�т负锛� 10000001
+
+ BusiOrderAttr busiOrderAttr = new BusiOrderAttr();
+ busiOrderAttr.setBoId(newBoId);
+ busiOrderAttr.setAttrCd(AttrCdConstant.BUSI_ORDER_ATTR_10000001);
+ busiOrderAttr.setValue(needDeleteBoIdMap.get("boId"));
+ needDeleteBoIdMap.put("newBoId",newBoId);
+
+ saveBusiOrderFlag = iOrderServiceDao.saveDataToBusiOrderAttr(busiOrderAttr);
+ if(saveBusiOrderFlag < 1){
+ throw new RuntimeException("鎾ゅ崟锛屼綔搴熻鍗曞け璐�,淇濆瓨璁㈠崟椤逛俊鎭睘鎬уけ璐�"+JSONObject.toJSONString(busiOrderAttr));
+ }
+
+ //灏佽鏁版嵁
+ processDeleteOrderByActionTypeCd(needDeleteBoIdMap,datasTmp);
+
+ }
+
+ //杩欓噷琛ュ厖 order_list_attr涓� 缂栫爜涓� 10000002 鐨勬暟鎹紝瑕佷綔搴� 璁㈠崟璐墿杞︿俊鎭紝鐪熸浣滃簾鍗曞瓙鏄互 busi_order_attr 涓殑boId 涓轰富
+ Assert.hasSize(datasTmp,"褰撳墠娌℃湁鍙綔搴熺殑璁㈠崟锛岃鏍稿疄");
+ //鐢变簬鎾ゅ崟锛屼綔搴熻鍗曟垜浠彧鏀寔涓�涓喘鐗╄溅鎿嶄綔
+ Set keys = datasTmp.keySet();
+ Object key = keys.toArray()[0];
+ Assert.isNull(datasTmp.get(key).getJSONObject(0),"olId","鏁版嵁閿欒锛岄渶瑕佷綔搴熺殑璁㈠崟鐨勭涓�涓妭鐐逛负绌猴紝鎴栦笉鍖呭惈olId鑺傜偣锛岃鏍告煡"+datasTmp);
+ String oldOlId = datasTmp.get(key).getJSONObject(0).getString("olId");
+
+
+ OrderListAttr orderListAttr = new OrderListAttr();
+ orderListAttr.setOlId(olId);
+ orderListAttr.setAttrCd(AttrCdConstant.ORDER_LIST_ATTR_10000002);
+ orderListAttr.setValue(oldOlId);
+ saveOrderListFlag = iOrderServiceDao.saveDataToOrderListAttr(orderListAttr);
+ if(saveOrderListFlag < 1){
+ throw new RuntimeException("淇濆瓨璐墿杞﹀睘鎬т俊鎭け璐�"+JSONObject.toJSONString(orderListAttr));
+ }
+
+
+
+
+ //鍒涘缓涓婁笅鏂囧璞�
+ AppContext context = createApplicationContext();
+
+ prepareContext(context, datasTmp);
+ try {
+ //鍙戝竷浜嬩欢
+ AppEventPublishing.multicastEvent(context,datasTmp,orderListTmp.getString("asyn"));
+ }catch (Exception e){
+ //杩欓噷琛ュ伩浜嬬墿
+ compensateTransactional(datasTmp);
+ throw e;
+ }
+ return ProtocolUtil.createResultMsg(ProtocolUtil.RETURN_MSG_SUCCESS,"鎴愬姛",JSONObject.parseObject(JSONObject.toJSONString(orderList)));
+
+ }
+
+ /**
+ * 鏍规嵁 璁㈠崟鍔ㄤ綔 浣滃簾
+ * @param oldOlId 浣滃簾鐨勮喘鐗╄溅
+ * @param actionTypeCd busi_order action_type_cd 绫诲瀷鏉ヤ綔搴熻鍗�
+ * @throws Exception
+ */
+ private void getNeeddeleteOrderByActionTypeCd(String oldOlId,List<Map<String,String>> needDeleteBoIds,String ...actionTypeCd) throws Exception{
+ //鏍规嵁oldOdId actionTypeCd 鑾峰彇璁㈠崟椤�
+ BusiOrder busiOrderTmp = new BusiOrder();
+ busiOrderTmp.setOlId(oldOlId);
+ String actionTypeCds= "";
+ // 'C1','A1','M1',
+ for(String ac : actionTypeCd){
+ actionTypeCds += ("'"+ac+"',");
+ }
+
+ // 'C1','A1','M1'
+ actionTypeCds = actionTypeCds.endsWith(",")?actionTypeCds.substring(0,actionTypeCds.length()-1):actionTypeCds;
+
+ //濡傛灉涓� ALL 浣滃簾鏁翠釜璁㈠崟鏁版嵁锛岃繖閲岀洿鎺ヤ紶涓虹┖ 鏍规嵁olId 澶勭悊
+ if("ALL".equals(actionTypeCds)){
+
+ actionTypeCds = "";
+ }
+
+ busiOrderTmp.setActionTypeCd(actionTypeCds);
+
+ /**
+ * 宸茬粡鐢熸垚鐨勮鍗曢」淇℃伅
+ */
+ List<BusiOrder> oldBusiOrders = iOrderServiceDao.queryBusiOrderAndAttr(busiOrderTmp);
+
+ Assert.isNull(oldBusiOrders,"娌℃湁鎵惧埌闇�瑕佷綔搴熺殑璁㈠崟锛孾oldOdId="+oldOlId+",actionTypeCd = "+actionTypeCd+"]");
+
+ //浣滃簾鑰佽鍗曚俊鎭�
+ Map<String,String> oldBoIdMap = null;
+ for(BusiOrder oldBusiOrder : oldBusiOrders){
+ oldBoIdMap = new HashMap<String, String>();
+ oldBoIdMap.put("actionTypeCd",oldBusiOrder.getActionTypeCd());
+ oldBoIdMap.put("boId",oldBusiOrder.getBoId());
+ oldBoIdMap.put("olId",oldBusiOrder.getOlId());
+ needDeleteBoIds.add(oldBoIdMap);
+ }
+ }
+
+ private void prepareContext(AppContext context,Map<String,JSONArray> datasTmp){
+ Assert.isNull(context,"鍒涘缓涓婁笅瀵硅薄澶辫触");
+
+ //杩欓噷灏嗘暣涓鍗曠殑data 淇℃伅瀛樺叆 涓婁笅鏂囧璞′腑锛屼互闃插悗鏈熶娇鐢ㄦ棤娉曡幏鍙�
+
+ context.coverData(datasTmp);
+
+ }
+
+
+ /**
+ *
+ * oldBoIdMap.put("actionTypeCd","");
+ *
+ * oldBoIdMap.put("boId",busiOrderTmps.getJSONObject(busiOrderIndex).getString("oldBoId"));
+ * oldBoIdMap.put("olId","");
+ * @param needDeleteBoIdMap
+ *
+ */
+ private void processDeleteOrderByActionTypeCd(Map<String,String> needDeleteBoIdMap,Map<String,JSONArray> datasTmp){
+
+ Assert.isNull(datasTmp,"processDeleteOrderByActionTypeCd 鏂规硶鐨勫弬鏁� datasTmp 涓虹┖锛�");
+
+ // 濡傛灉杩欎袱涓腑鏈変竴涓负绌猴紝鍒欎粠搴撲腑鏌ヨ
+ if(StringUtils.isBlank(needDeleteBoIdMap.get("newBoId")) || StringUtils.isBlank(needDeleteBoIdMap.get("actionTypeCd"))){
+ BusiOrder busiOrderTmp = new BusiOrder();
+ busiOrderTmp.setBoId(needDeleteBoIdMap.get("boId"));
+ //杩欓噷鍙湁涓�鏉″叾浠栵紝鍚﹀垯鎶涘嚭寮傚父
+ List<BusiOrder> oldBusiOrders = iOrderServiceDao.queryBusiOrderAndAttr(busiOrderTmp);
+
+ if(oldBusiOrders == null || oldBusiOrders.size() != 1){
+ throw new IllegalArgumentException("褰撳墠[boId="+needDeleteBoIdMap.get("boId")+"] 鏁版嵁鍦╞usi_order琛ㄤ腑涓嶅瓨鍦紝璇峰鐞嗭紝寰堟湁鍙兘鏄叆鍙傞敊璇�");
+ }
+
+ //鍥炲啓鏁版嵁
+
+ needDeleteBoIdMap.put("olId",oldBusiOrders.get(0).getOlId());
+ needDeleteBoIdMap.put("actionTypeCd",oldBusiOrders.get(0).getActionTypeCd()+ CommonConstant.SUFFIX_DELETE_ORDER);
+ }
+
+ String actionTypeCd = needDeleteBoIdMap.get("actionTypeCd");
+
+ JSONArray dataJsonTmp = null;
+ if(!datasTmp.containsKey(actionTypeCd)){
+ dataJsonTmp = new JSONArray();
+ }else{
+ dataJsonTmp = datasTmp.get(actionTypeCd);
+ }
+ dataJsonTmp.add(JSONObject.parseObject(JSONObject.toJSONString(needDeleteBoIdMap)));
+ datasTmp.put(actionTypeCd,dataJsonTmp);
+
+ //deleteOrderInfoProducer.send(datasTmp.toString());
+ }
+
+
+ /**
+ * 琛ュ伩浜嬬墿锛岃繖閲屼笉鐢ㄦ墜宸ヤ綔搴� 璐墿杞︿俊鎭紝浜嬬墿浼氳嚜鍔ㄥ洖閫�鎺夛紝杩欓噷杩欓渶瑕佹墜宸ョ粰鍏朵粬鐨勭郴缁熷彂甯冧簨鐗╁洖閫�
+ *
+ * { 'data': [
+
+ {
+ 'boId': '222222',
+ 'actionTypeCd': 'C1',
+ 'oldBoId':'11111'
+ },
+ {
+ 'boId': '222222',
+ 'actionTypeCd': 'M1',
+ 'oldBoId':'11111'
+ },
+ {
+ 'boId': '222222',
+ 'actionTypeCd': 'C1',
+ 'oldBoId':'11111'
+ }
+ ]
+ }
+ * @param datasTmp {C1={'data':[{}]}}
+ */
+ private void compensateTransactional(Map<String,JSONArray> datasTmp){
+
+ Set<String> keys = datasTmp.keySet();
+
+ JSONArray compensateDatas = new JSONArray();
+
+ JSONObject compensateBoId = null;
+ for(String key : keys){
+ JSONArray datas = datasTmp.get(key);
+
+ for(int dataIndex = 0 ; dataIndex <datas.size() ; dataIndex++){
+ compensateBoId.put("boId",datas.getJSONObject(dataIndex).getString("boId"));
+ compensateBoId.put("actionTypeCd",key);
+ compensateDatas.add(compensateBoId);
+ }
+ }
+
+ JSONObject compensateData = new JSONObject();
+
+ compensateData.put("data",compensateDatas);
+
+ deleteOrderInfoProducer.send(datasTmp.toString());
+ }
+
public IPrimaryKeyService getiPrimaryKeyService() {
return iPrimaryKeyService;
}
--
Gitblit v1.8.0