1
0

修改条幅价格

Este cometimento está contido em:
2025-06-28 11:30:50 +08:00
ascendente 988fddf6c8
cometimento 679c946391
+40 -15
Ver ficheiro
@@ -1767,24 +1767,20 @@ public class PriceUtils {
}
} else {
double[] areas = null;
int[] prices = null;
double last_price = 0;
double min_price = 0;
if ((width == 0.5 && length == 3 && count == 1) || (width == 3 && length == 0.5 && count == 1)) {
price = 24 * area;
} else if (area <= 1) {
price = 35;
} else if (area <= 2) {
price = 30 * area;
} else if (area <= 3) {
price = 24 * area;
} else if (area <= 4) {
price = 21 * area;
} else if (area <= 5) {
price = 18 * area;
} else if (area <= 10) {
price = 16 * area;
} else {
price = 13 * area;
areas = new double[]{1, 2, 3, 4, 5, 10};
prices = new int[]{35, 30, 24, 21, 18, 16};
last_price = 13;
min_price += 40;
price = Math.max(TableUnitPrice(area, prices, areas, last_price), min_price);
}
price = price > 40 ? price : 40;
}
pro.setCount(count);
pro.setPrice(Math.ceil(price));
@@ -3428,7 +3424,7 @@ public class PriceUtils {
endIndex = Math.min(i + 1, areas.length - 1);
}
}
if (startIndex == 0) {
if (startIndex == endIndex && startIndex == 0) {
price = price_list[endIndex];
} else if (startIndex == endIndex) {
price = (price_list[endIndex] / areas[endIndex]) * area;
@@ -3438,6 +3434,35 @@ public class PriceUtils {
return price;
}
public static double TableUnitPrice(double area, int[] price_list, double[] areas, double last_price) {
double price = 0;
int startIndex = 0;
int endIndex = 0;
boolean islast = false;
for (int i = 0; i < areas.length; i++) {
if (area > areas[i]) {
startIndex = endIndex;
endIndex = Math.min(i + 1, areas.length - 1);
}
if (area == areas[i]) {
endIndex = startIndex = i;
}
if (area > areas[i] && i == areas.length - 1) {
islast = true;
}
}
if (startIndex == endIndex && startIndex == 0) {
price = price_list[endIndex];
} else if (startIndex == endIndex) {
price = (price_list[endIndex] * areas[endIndex] / areas[endIndex]) * area;
} else {
price = (price_list[startIndex] * areas[startIndex] + price_list[endIndex] * areas[endIndex]) / (areas[startIndex] + areas[endIndex]) * area;
}
price = islast ? last_price * area : price;
return Math.ceil(price);
}
public double CalculatePrice(List<String> craft_list, double count, int coNumber, double countNum) {
if (craft_list.contains("烫画")) {
return (int) count * 120;