Browse Source

从JD拉取的订单中如果包含富氢机+富氢T1滤芯*3、富氢T2滤芯*3,将排除T1、T2

xian 5 years ago
parent
commit
7531ff57c1

+ 10 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderSyncLogServiceImpl.java

@@ -1795,7 +1795,14 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
         return returnMap;
     }
 
+    /**
+     * 还需优化:买多台水机的客户、多个产品进行拆分的订单
+     * @param itemsArray
+     * @param groupRule
+     * @return
+     */
     private JSONArray groupProductFilter(JSONArray itemsArray, String groupRule) {
+        int ruleNum = 1;
         // 再次判断来源产品中是否包含了指定的组合产品
         com.alibaba.fastjson.JSONObject groupJSON = com.alibaba.fastjson.JSONObject.parseObject(groupRule);
         boolean isGroup = false;
@@ -1803,6 +1810,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
             JSONObject jsonObject = itemsArray.getJSONObject(i);
             if (jsonObject.get("outerId").equals(groupJSON.getString("productCode"))) {
                 isGroup = true;
+                ruleNum = jsonObject.getInt("num");
                 break;
             }
         }
@@ -1820,7 +1828,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
         for (int gi = 0; gi < group.size(); gi++) {
             com.alibaba.fastjson.JSONObject rule = group.getJSONObject(gi);
             String productCode = rule.getString("productCode");
-            Integer productNum = rule.getInteger("productNum");
+            Integer productNum = rule.getInteger("productNum") * ruleNum;
             for (int i = 0; i < itemsArray.length(); i++) {
                 JSONObject org = itemsArray.getJSONObject(i);
                 if (productCode.equals(org.getString("outerId")) && org.getInt("num") >= productNum) {
@@ -1837,7 +1845,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
         for (int gi = 0; gi < group.size(); gi++) {
             com.alibaba.fastjson.JSONObject rule = group.getJSONObject(gi);
             String productCode = rule.getString("productCode");
-            Integer productNum = rule.getInteger("productNum");
+            Integer productNum = rule.getInteger("productNum") * ruleNum;
             for (int i = 0; i < result.length(); i++) {
                 JSONObject org = result.getJSONObject(i);
                 int num = org.getInt("num");