Browse Source

Merge branch 'main' into temp

zhuyiyi 6 months ago
parent
commit
c74735f0a5

+ 8 - 6
src/main/java/lingtao/net/service/ProductService.java

@@ -2543,19 +2543,20 @@ public class ProductService {
                         }
 
                         //一张大纸能放几个
-                        double num = Math.min(Math.floor(paperLength / length) * Math.floor(paperWidth / width), Math.floor(paperLength / width) * Math.floor(paperWidth / length));
+                        double num = Math.max(Math.min(Math.floor(paperLength / length) * Math.floor(paperWidth / width), Math.floor(paperLength / width) * Math.floor(paperWidth / length)), 1);
                         if (craft_list.contains("烫画")) {
                             num = Math.max(Math.ceil(paperLength / length) * Math.ceil(paperWidth / width), Math.ceil(paperLength / width) * Math.ceil(paperWidth / length));
 
                         }
 
                         double baseCount = Math.max(Math.ceil(dto.getCount() * dto.getNumber() / num), 1);
+                        double countNum = Math.max(Math.ceil(dto.getNumber() / num), 1);
                         int coNumber = dto.getCo_number();
                         if (coNumber <= 0) {
                             coNumber = 1;
                         }
 
-                        double price = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber);
+                        double price = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber, countNum);
 
                         Product pro = new Product();
                         pro.setCount(dto.getCount());
@@ -2569,7 +2570,8 @@ public class ProductService {
                                 break;
                             }
                             baseCount = Math.max(Math.ceil(quantitySteps[i] * dto.getNumber() / num), 1);
-                            double currentPrice = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber);
+                            countNum = Math.max(Math.ceil(dto.getNumber() / num), 1);
+                            double currentPrice = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber, countNum);
 
                             pro = new Product();
 
@@ -2578,9 +2580,9 @@ public class ProductService {
                             priceList.add(pro);
                         }
 
-                        for (Product product : priceList) {
-                            product.setPrice(Math.ceil(product.getPrice() + (number - 1) * 0.5));
-                        }
+//                        for (Product product : priceList) {
+//                            product.setPrice(Math.ceil(product.getPrice() + (number - 1) * 0.5));
+//                        }
 
                         return priceList;
                     }

+ 17 - 7
src/main/java/lingtao/net/util/PriceUtils.java

@@ -3440,19 +3440,29 @@ public class PriceUtils {
         return price;
     }
 
-    public double CalculatePrice(List<String> craft_list, double count, int coNumber) {
+    public double CalculatePrice(List<String> craft_list, double count, int coNumber, double countNum) {
         if (craft_list.contains("烫画")) {
             return (int) count * 120;
         }
         double price = 0;
         if (craft_list.contains("冷转印")) {
-            if (count <= 5) {
-                price = 260;
-            } else if (count < 100) {
-                price = 14 * count + 200;
-            } else {
-                price = 12 * count;
+            double banfei = 200;
+            if (countNum > 1) {
+                price = 260 * countNum;
+                banfei = 0;
+                count = Math.abs(count - countNum);
+
+            }
+            if (count > 0) {
+                if (count <= 5) {
+                    price += 260;
+                } else if (count < 100) {
+                    price += 14 * count + banfei;
+                } else {
+                    price += 12 * count;
+                }
             }
+
             price = price + (coNumber - 1) * 100;
         }