Browse Source

修改uv冷转印

zhuyiyi 6 months ago
parent
commit
844f622d3e

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

@@ -2392,29 +2392,30 @@ public class ProductService {
                         }
                         if (length == paperLength || length == paperWidth) {
 
-                        }else{
+                        } else {
                             length = BigDecimal.valueOf(length).add(BigDecimal.valueOf(0.6)).doubleValue();
                         }
                         if (width == paperLength || width == paperWidth) {
 
-                        }else{
+                        } else {
                             width = BigDecimal.valueOf(width).add(BigDecimal.valueOf(0.6)).doubleValue();
                         }
 
                         //一张大纸能放几个
-                        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.getCount() / 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());
@@ -2428,7 +2429,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.getCount() / num), 1);
+                            double currentPrice = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber, countNum);
 
                             pro = new Product();
 
@@ -2437,9 +2439,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;
                     }

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

@@ -3440,20 +3440,25 @@ 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;
+            if (countNum == 1) {
+                price = 260 * Math.ceil(count / countNum) + (coNumber - 1) * 100;
+
             } else {
-                price = 12 * count;
+                if (count <= 5) {
+                    price = 260;
+                } else if (count < 100) {
+                    price = 14 * count + 200;
+                } else {
+                    price = 12 * count;
+                }
+                price = price + (coNumber - 1) * 100;
             }
-            price = price + (coNumber - 1) * 100;
         }
 
         return price;