From a578d5d18c09cfe8b045bf95f3907620ffd1221d Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期三, 08 七月 2020 00:49:19 +0800
Subject: [PATCH] 事务问题处理完成

---
 service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java |   36 ++++++++++++++++++++++--------------
 1 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java b/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
index 6ef665d..18d9fbc 100644
--- a/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
+++ b/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
@@ -101,24 +101,26 @@
                 JSONArray params = generateParam(orderItemDto);
                 httpEntity = new HttpEntity<String>(params.toJSONString(), header);
                 restTemplate.exchange(FALLBACK_URL.replace(SERVICE_NAME, orderItemDto.getServiceName()), HttpMethod.POST, httpEntity, String.class);
+
+                //鏍囪涓鸿鍗曢」澶辫触
+                Map info = new HashMap();
+                info.put("finishTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+                info.put("statusCd", "E");
+                info.put("bId", orderItemDto.getbId());
+                info.put("oId", orderDto.getoId());
+                centerServiceDAOImpl.updateOrderItem(info);
+
+                //鍒犻櫎 浜嬪姟鏃ュ織
+                //centerServiceDAOImpl.deleteUnItemLog(info);
             } catch (Exception e) {
                 logger.error("鍥為��浜嬪姟澶辫触", e);
                 errorOrderItemDtos.add(orderItemDto);
             }
         }
 
-        //鏍囪涓鸿鍗曢」澶辫触
-        Map info = new HashMap();
-        info.put("finishTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        info.put("statusCd", "E");
-        info.put("oId", orderDto.getoId());
-        centerServiceDAOImpl.updateOrderItem(info);
-
-        //鍒犻櫎 浜嬪姟鏃ュ織
-        centerServiceDAOImpl.deleteUnItemLog(info);
 
         //鏍囪涓鸿鍗曞け璐�
-        info = new HashMap();
+        Map info = new HashMap();
         info.put("finishTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         info.put("statusCd", "E");
         info.put("oId", orderDto.getoId());
@@ -237,11 +239,11 @@
         String logText = orderItemDto.getLogText();
 
         JSONObject logTextObj = JSONObject.parseObject(logText);
-        JSONArray preValues = logTextObj.getJSONArray("preValue");
-        for (int preValueIndex = 0; preValueIndex < preValues.size(); preValueIndex++) {
+        JSONArray afterValues = logTextObj.getJSONArray("afterValue");
+        for (int preValueIndex = 0; preValueIndex < afterValues.size(); preValueIndex++) {
             sql = "delete from " + orderItemDto.getActionObj() + " where 1=1 ";
             param = new JSONObject();
-            JSONObject keyValue = preValues.getJSONObject(preValueIndex);
+            JSONObject keyValue = afterValues.getJSONObject(preValueIndex);
             for (String key : keyValue.keySet()) {
                 sql += (" and " + key + "=" + keyValue.getString(key));
             }
@@ -276,6 +278,12 @@
         if (StringUtil.isEmpty(orderItemDto.getbId()) || orderItemDto.getbId().startsWith("-")) {
             orderItemDto.setbId(GenerateCodeFactory.getBId());
         }
+        //鍒ゆ柇OID鏄惁瀛樺湪
+        OrderDto orderDto = BeanConvertUtil.covertBean(centerServiceDAOImpl.getOrder(BeanConvertUtil.beanCovertMap(orderItemDto)), OrderDto.class);
+
+        if (orderDto == null || "E".equals(orderDto.getStatusCd())) {
+            return new ResponseEntity<String>("褰撳墠娌℃湁浜嬪姟鎴栬�呬簨鍔″凡缁忓洖婊�", HttpStatus.NOT_FOUND);
+        }
         centerServiceDAOImpl.saveOrderItem(BeanConvertUtil.beanCovertMap(orderItemDto));
 
         return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
@@ -301,7 +309,7 @@
         centerServiceDAOImpl.updateOrderItem(info);
 
         //鍒犻櫎 浜嬪姟鏃ュ織
-        centerServiceDAOImpl.deleteUnItemLog(info);
+        //centerServiceDAOImpl.deleteUnItemLog(info);
 
         //瀹屾垚璁㈠崟
         info = new HashMap();

--
Gitblit v1.8.0