From 980e74ee64ba7e279537e582de46776170d3debd Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期一, 24 四月 2017 17:41:43 +0800
Subject: [PATCH] 完善订单作废功能实现
---
OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java | 85 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 85 insertions(+), 0 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 d19ad81..6aea826 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,6 +2,8 @@
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.log.LoggerEngine;
import com.java110.common.util.ProtocolUtil;
import com.java110.config.properties.EventProperties;
@@ -335,7 +337,47 @@
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"));
+
+ saveBusiOrderFlag = iOrderServiceDao.saveDataToBusiOrderAttr(busiOrderAttr);
+ if(saveBusiOrderFlag < 1){
+ throw new RuntimeException("鎾ゅ崟锛屼綔搴熻鍗曞け璐�,淇濆瓨璁㈠崟椤逛俊鎭睘鎬уけ璐�"+JSONObject.toJSONString(busiOrderAttr));
+ }
+
+
+
+ }
+
+ //杩欓噷琛ュ厖 order_list_attr涓� 缂栫爜涓� 10000002 鐨勬暟鎹紝瑕佷綔搴� 璁㈠崟璐墿杞︿俊鎭紝鐪熸浣滃簾鍗曞瓙鏄互 busi_order_attr 涓殑boId 涓轰富
+
@@ -397,6 +439,49 @@
}
+
+ /**
+ *
+ * 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("olId")) || 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());
+ }
+
+ 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);
+ }
+
public IPrimaryKeyService getiPrimaryKeyService() {
return iPrimaryKeyService;
}
--
Gitblit v1.8.0