瀏覽代碼

E-订单系统促销活动功能升级与优化(第二版)

hu 1 年之前
父節點
當前提交
e3abc3e889

+ 13 - 3
src/custom/restcontroller/webmanage/sale/order/OrderItemsHelper.java

@@ -380,6 +380,10 @@ public class OrderItemsHelper extends BaseClass {
             }
         }
         RowsMap pRowsMap = promotionitems.toRowsMap("sa_promotion_itemsid");
+        long sa_promotionid =0;
+        if(promotionitems.isNotEmpty()){
+             sa_promotionid = promotionitems.get(0).getLong("sa_promotionid");
+        }
         if (type.equals("促销订单")) {
             if (pRowsMap.containsKey(item.getString("sa_promotion_itemsid"))) {
                 String saPromotionItemsid = item.getString("sa_promotion_itemsid");
@@ -389,11 +393,17 @@ public class OrderItemsHelper extends BaseClass {
                     BigDecimal orderaddqty = pRowsMap.get(saPromotionItemsid).get(0).getBigDecimal("orderaddqty");
                     BigDecimal orderminqty = pRowsMap.get(saPromotionItemsid).get(0).getBigDecimal("orderminqty");
                     boolean islimit = pRowsMap.get(saPromotionItemsid).get(0).getBoolean("islimit");
-                    if (orderaddqty.compareTo(BigDecimal.ZERO) != 0) {
-                        if (((qty.subtract(orderminqty)).remainder(orderaddqty)).compareTo(BigDecimal.ZERO) != 0 || qty.compareTo(orderminqty) < 0) {
-                            throw new YosException(false, "品号为" + itemRowsMap.get(itemid).get(0).getString("itemno") + "的商品数量不符合该商品的起订量和增量");
+                    Rows rows =dbConnect.runSqlQuery("select * from sa_promotion where sa_promotionid="+sa_promotionid);
+                    if(rows.isNotEmpty()){
+                        if(!rows.get(0).getString("type").equals("套餐活动")){
+                            if (orderaddqty.compareTo(BigDecimal.ZERO) != 0) {
+                                if (((qty.subtract(orderminqty)).remainder(orderaddqty)).compareTo(BigDecimal.ZERO) != 0 || qty.compareTo(orderminqty) < 0) {
+                                    throw new YosException(false, "品号为" + itemRowsMap.get(itemid).get(0).getString("itemno") + "的商品数量不符合该商品的起订量和增量");
+                                }
+                            }
                         }
                     }
+
                     if (islimit) {
                         if (groupqty.compareTo(saledqty.add(qty)) < 0) {
                             throw new YosException(false, "品号:" + itemRow.getString("itemno") + "已超过限购数量:" + groupqty.subtract(saledqty));

+ 9 - 5
src/custom/restcontroller/webmanage/sale/promotion/promotion.java

@@ -548,6 +548,11 @@ public class promotion extends Controller {
                     return getErrReturnObject().setErrMsg("返利促销授权的经销商必须都为限购").toString();
                 }
             }
+            for (Row row:rowsdetails) {
+                if(row.getBigDecimal("orderminqty").compareTo(BigDecimal.ZERO)==0 || row.getBigDecimal("orderaddqty").compareTo(BigDecimal.ZERO)==0){
+                    return getErrReturnObject().setErrMsg("该促销方案【"+row.getString("itemno")+"】商品起订量或增量为0,无法审核").toString();
+                }
+            }
             if (rows.get(0).getString("type").equals("套餐活动")) {
                 if (StringUtils.isBlank(rows.get(0).getString("packagetype"))) {
                     return getErrReturnObject().setErrMsg("套餐活动的方案必须选择套餐类型").toString();
@@ -563,17 +568,16 @@ public class promotion extends Controller {
                         return getErrReturnObject().setErrMsg("套餐名:"+row.getString("packagetypemx")+" 商品添加数量已超上限(同一套餐最多只能添加100个商品)").toString();
                     }
                 }
-
-            }
-            for (Row row:rowsdetails) {
-                if(row.getBigDecimal("orderminqty").compareTo(BigDecimal.ZERO)==0 || row.getBigDecimal("orderaddqty").compareTo(BigDecimal.ZERO)==0){
-                    return getErrReturnObject().setErrMsg("该促销方案【"+row.getString("itemno")+"】商品起订量或增量为0,无法审核").toString();
+                Rows promotioncountRows = dbConnect.runSqlQuery("select distinct groupqty/(ifnull(t1.orderminqty,1)) count  from sa_promotion_items t1 where t1.siteid='"+siteid+"' and t1.sa_promotionid="+sa_promotionid);
+                if(promotioncountRows.size()>1){
+                    return getErrReturnObject().setErrMsg("限购数量设置不合理,请重新设置!").toString();
                 }
             }
 
 
 
 
+
         }
 
         ArrayList<String> sqlList = new ArrayList<>();