修改冰箱贴价格

This commit is contained in:
2025-12-29 11:51:06 +08:00
rodzic 2099f32634
commit 4b1a74bf13
2 zmienionych plików z 213 dodań i 69 usunięć
@@ -1758,6 +1758,9 @@ public class ProductService {
for (Product product : priceList) {
product.setPrice(Math.ceil((product.getPrice() + addPrice) * product.getPriceMultiple()));
}
for (Product product : priceList) {
product.setPrice(Math.ceil(product.getPrice() * number * min * zhekou));
}
if ("500克拉丝闪银".equals(kind)) {
String[] craft = dto.getCraft();
if (!StringUtils.isEmpty(craft)) {
@@ -1778,13 +1781,12 @@ public class ProductService {
}
}
} else {
dto.setMaxian(1);
getCraft(dto, priceList, null, null, 0);
}
// 根据位数重新算价格
// 根据款数重新算价格
for (Product product : priceList) {
product.setPrice(Math.ceil(product.getPrice() * number * min * zhekou));
}
//直角的价格 按照报价系统乘以2.3 异形的按照报价系统的价格乘以1.5哈
if ("金绒".equals(kind) && craft_list.contains("白墨")) {
for (Product product : priceList) {
@@ -5359,24 +5361,58 @@ public class ProductService {
List<String> carft_list = dto.getCraft() == null ? new ArrayList<>() : Arrays.asList(dto.getCraft());
List<Product> priceList = new ArrayList<>();
String cailiao = dto.getCailiao();
double price = 0;
double min_price = 50;
double last_price = 1000;
int count = dto.getCount();
int number = dto.getNumber();
double area = width * length * dto.getCount() / 10000 * dto.getNumber();
double[] areas = {0, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 1, 2, 3, 5, 7, 9, 10, 20, 50};
int[] prices = {0, 1500, 1480, 1450, 1400, 1380, 1350, 1200, 1100, 1080, 1050, 1000, 1000, 1000, 1000, 1000};
if ("2.3".equals(cailiao) && carft_list.contains("激光")) {
prices = new int[]{0, 1500, 1400, 1350, 1300, 1280, 1250, 1100, 1000, 950, 900, 850, 850, 850, 850, 850};
last_price = 850;
String weight = "";
if ("冰箱贴".equals(dto.getKindValue())) {
double[] areas = {0, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 1, 2, 3, 5, 7, 9, 10, 20, 50};
int[] prices = {0, 1500, 1480, 1450, 1400, 1380, 1350, 1200, 1100, 1080, 1050, 1000, 1000, 1000, 1000, 1000};
if ("2.3".equals(cailiao) && carft_list.contains("激光")) {
prices = new int[]{0, 1500, 1400, 1350, 1300, 1280, 1250, 1100, 1000, 950, 900, 850, 850, 850, 850, 850};
last_price = 850;
}
if ("4.2".equals(cailiao) && carft_list.contains("CNC")) {
prices = new int[]{0, 1600, 1500, 1480, 1450, 1400, 1380, 1350, 1300, 1250, 1200, 1200, 1200, 1200, 1200, 1200};
last_price = 1200;
}
if ("2.3".equals(cailiao) && carft_list.contains("CNC")) {
prices = new int[]{0, 1500, 1400, 1380, 1350, 1300, 1280, 1250, 1200, 1150, 1100, 1100, 1100, 1100, 1100, 1100};
last_price = 1100;
}
price = PriceUtils.TableUnitPrice(area, prices, areas, last_price);
price = Math.max(price, min_price) + ((dto.getNumber() - 1) * 8);
weight = df.format(width * length * 4.17 * dto.getCount() * 0.1 * number / 1000 * Double.parseDouble(cailiao));
}
if ("4.2".equals(cailiao) && carft_list.contains("CNC")) {
prices = new int[]{0, 1600, 1500, 1480, 1450, 1400, 1380, 1350, 1300, 1250, 1200, 1200, 1200, 1200, 1200, 1200};
last_price = 1200;
if ("对联冰箱贴".equals(dto.getKindValue())) {
double basePrice = 0;
min_price = 55;
double baseWeight = 0.4;
if ("2.3".equals(cailiao) && "70*80".equals(dto.getSize())) {
basePrice = 8;
}
if ("2.3滴塑".equals(cailiao) && "70*80".equals(dto.getSize())) {
basePrice = 10;
}
if ("2.3".equals(cailiao) && "90*100".equals(dto.getSize())) {
basePrice = 10;
baseWeight = 0.6;
}
if ("2.3滴塑".equals(cailiao) && "90*100".equals(dto.getSize())) {
basePrice = 12;
baseWeight = 0.6;
}
if ("2.3滴塑".equals(cailiao)) {
cailiao = "2.3";
}
price = Math.ceil(Math.max((basePrice * count * number), min_price) + 8 * number);
weight = df.format(width * length * 4.17 * dto.getCount() * number * 0.1 / 100000 * Double.parseDouble(cailiao));
}
if ("2.3".equals(cailiao) && carft_list.contains("CNC")) {
prices = new int[]{0, 1500, 1400, 1380, 1350, 1300, 1280, 1250, 1200, 1150, 1100, 1100, 1100, 1100, 1100, 1100};
last_price = 1100;
}
double price = PriceUtils.TableUnitPrice(area, prices, areas, last_price);
double card_price = 0;
if (carft_list.contains("背卡")) {
String card_size = dto.getSize1();
@@ -5443,8 +5479,8 @@ public class ProductService {
Product pro = new Product();
pro.setCount(dto.getCount());
pro.setNumber(dto.getNumber());
pro.setWeight(df.format(width * length * 4.17 * dto.getCount() * 0.1 / 1000 * Double.parseDouble(cailiao)));
pro.setPrice(Math.ceil(Math.max(price, min_price) + ((dto.getNumber() - 1) * 8) + card_price));
pro.setWeight(weight);
pro.setPrice(Math.ceil(price + card_price));
priceList.add(pro);
return priceList;
@@ -20,6 +20,10 @@
<hr>
<form class="layui-form">
<input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="冰箱贴"/>
<div class="layui-form-item">
<input type="radio" lay-filter="kindValue" name="kindValue" value="冰箱贴" title="冰箱贴" checked="checked">
<input type="radio" lay-filter="kindValue" name="kindValue" value="对联冰箱贴" title="对联冰箱贴">
</div>
<p>
材质
</p>
@@ -34,9 +38,14 @@
<div class="layui-form-item" id="ui_size">
<input type="text" name="size" id="size" placeholder="格式:长*宽" class="layui-input" autocomplete="off">
</div>
<div class="layui-form-item" style="display: none">
<select name="size" id="selectSize" class="select" disabled>
<option value="70*80">拼版70*80 mm</option>
<option value="90*100">拼版90*100 mm</option>
</select>
</div>
<p>
数量()
数量()
</p>
<div class="layui-form-item">
<input type="text" name="count" id="count" placeholder="请输入整数" class="layui-input" autocomplete="off">
@@ -52,7 +61,7 @@
板材厚度
</p>
<div class="layui-form-item">
<select name="cailiao" class="select">
<select name="cailiao" id="cailiao" class="select">
<option value="2.3">2.3mm</option>
<option value="4.2">4.2mm</option>
</select>
@@ -65,7 +74,7 @@
class="layui-input">
</div>
<p>
工艺
工艺<span style="font-size: 14px; color: red">一套为一款</span>
</p>
<div class="layui-form-item" id='z4_craft'>
<div class="layui-input-block">
@@ -77,9 +86,11 @@
<input type="checkbox" name="craft" lay-filter="ui_craft" value="激光" title="激光" checked>
<input type="checkbox" name="craft" lay-filter="ui_craft" value="CNC" title="CNC">
</div>
<div style="font-size: 14px; color: red">现货背卡尺寸:115*95mm</div>
<div class="layui-input-block">
背纸工艺:
<input type="checkbox" name="craft" lay-filter="ui_craft" value="背卡" title="背卡">
<input type="checkbox" name="craft" lay-filter="ui_craft" value="现货背卡" title="现货背卡">
</div>
<div class="layui-input-block beika" style="display: none">
背纸尺寸:
@@ -106,6 +117,12 @@
disabled>
<input type="checkbox" name="craft" lay-filter="ui_craft" value="背卡异形模切" title="异形模切" disabled>
</div>
<div class="layui-input-block xhbeika" style="display: none">
背纸颜色:
<input type="checkbox" name="craft" lay-filter="ui_craft" value="红色款" title="红色款" checked disabled>
<input type="checkbox" name="craft" lay-filter="ui_craft" value="黄色款" title="黄色款" disabled>
</div>
</div>
<hr>
<div class="layui-form-item">
@@ -154,46 +171,86 @@
var remark = " ";
const carft_list1 = ["激光", "CNC"];
const carft_list2 = ["背卡直角裁切", "背卡异形模切"];
const carft_list3 = ["背卡", "现货背卡"];
const carft_list4 = ["红色款", "黄色款"];
getImages()
// 清空轮播图
$("#carousel").empty();
$("#remark").empty();
$(".ui_feb").show();
$(".ui_feb select").attr("disabled", false);
$.ajax({
url: "${pageContext.request.contextPath}/getImgs",
type: "GET",
data: {
proTypeValue: $("#proTypeValue").val(),
kindValue: $('input[name="kindValue"]').val()
},
success: function (result) {
for (let i = 0; i < result.length; i++) {
// 只留一个remark
remark = "";
html += '<div><img style="width:100%;height: 100%;object-fit: contain" src="' + result[i].imgUrl + '"></div>';
remark += '<div><span>' + result[i].remark + '<span/></div>';
}
$("#carousel").append(html);
// 如果没有说明,就不显示null
if (remark.indexOf("null") < 0) {
$("#remark").append(remark);
}
// 如果没有轮播图就隐藏
if (result.length == 0) {
document.getElementById("test1").style.display = "none"; //隐藏
} else {
document.getElementById("test1").style.display = "block"; //显示
ins.reload({
elem: '#test1',
width: result[0].imgWidth, //设置容器宽度
height: result[0].imgHeight
});
function getImages() {
$("#carousel").empty();
$("#remark").empty();
$(".ui_feb").show();
$(".ui_feb select").attr("disabled", false);
$.ajax({
url: "${pageContext.request.contextPath}/getImgs",
type: "GET",
data: {
proTypeValue: $("#proTypeValue").val(),
kindValue: $('input[name="kindValue"]:checked').val()
},
success: function (result) {
for (let i = 0; i < result.length; i++) {
// 只留一个remark
remark = "";
html += '<div><img style="width:100%;height: 100%;object-fit: contain" src="' + result[i].imgUrl + '"></div>';
remark += '<div><span>' + result[i].remark + '<span/></div>';
}
$("#carousel").append(html);
// 如果没有说明,就不显示null
if (remark.indexOf("null") < 0) {
$("#remark").append(remark);
}
// 如果没有轮播图就隐藏
if (result.length == 0) {
document.getElementById("test1").style.display = "none"; //隐藏
} else {
document.getElementById("test1").style.display = "block"; //显示
ins.reload({
elem: '#test1',
width: result[0].imgWidth, //设置容器宽度
height: result[0].imgHeight
});
}
}
});
}
form.on("radio(kindValue)", function (data) {
let kindValue = data.value;
let cailiaoHtml = `<option value="2.3">2.3mm</option>
<option value="4.2">4.2mm</option>`;
$("#ui_size").show();
$("#ui_size").find("input").attr("disabled", false);
$("#selectSize").parent().hide();
$("#selectSize").attr("disabled", true);
$("input[name='craft'][value='激光']").prop("checked", true);
$("input[name='craft'][value='CNC']").prop("checked", false);
$("input[name='craft'][value='现货背卡']").prop("checked", false);
$(".xhbeika").hide();
$(".xhbeika").find("input").prop("disabled", true)
if (kindValue == "对联冰箱贴") {
cailiaoHtml = `<option value="2.3">2.3mm</option>
<option value="2.3滴塑">2.3mm滴塑</option>`;
$("#ui_size").hide();
$("#ui_size").find("input").attr("disabled", true);
$("#selectSize").parent().show();
$("#selectSize").attr("disabled", false);
$("input[name='craft'][value='现货背卡']").prop("checked", true);
$("input[name='craft'][value='背卡']").prop("checked", false);
$(".beika").hide();
$(".beika").find("input").prop("disabled", true)
$(".xhbeika").show();
$(".xhbeika").find("input").prop("disabled", false)
}
});
$("#cailiao").empty();
$("#cailiao").append(cailiaoHtml);
getImages()
form.render();
})
form.on('checkbox(ui_craft)', function (data) {
let craft_list = [];
let kindValue = $('input[name="kindValue"]:checked').val();
craft_list.push($("select[name='craft'] option:selected").val());
$("input[name='craft']:checked").each(function () {
if (!$(this).is(':disabled')) {
@@ -208,6 +265,13 @@
form.render();
return false;
}
if (data.value == "CNC" && kindValue == "对联冰箱贴") {
$(data.elem).prop("checked", false);
layer.msg("对联冰箱贴CNC工艺不能选择", {offset: ['300px', '300px']}, function () {
});
form.render();
return false;
}
const carft1 = carft_list1.filter(craft => craft_list.includes(craft));
if (carft1.length > 1) {
$(data.elem).prop("checked", false);
@@ -224,6 +288,29 @@
form.render();
return false;
}
if (data.value == "现货背卡" && kindValue == "冰箱贴") {
$(data.elem).prop("checked", false);
layer.msg("冰箱贴现货背卡工艺不能选择", {offset: ['300px', '300px']}, function () {
});
form.render();
return false;
}
const carft3 = carft_list3.filter(craft => craft_list.includes(craft));
if (carft3.length > 1) {
$(data.elem).prop("checked", false);
layer.msg("背卡工艺不能同时选择", {offset: ['300px', '300px']}, function () {
});
form.render();
return false;
}
const carft4 = carft_list4.filter(craft => craft_list.includes(craft));
if (carft4.length > 1) {
$(data.elem).prop("checked", false);
layer.msg("背卡颜色不能同时选择", {offset: ['300px', '300px']}, function () {
});
form.render();
return false;
}
if (data.value == "背卡") {
$(".beika").hide();
$(".beika").find("input").prop("disabled", true)
@@ -232,6 +319,14 @@
$(".beika").find("input").prop("disabled", false)
}
}
if (data.value == "现货背卡") {
$(".xhbeika").hide();
$(".xhbeika").find("input").prop("disabled", true)
if (data.elem.checked) {
$(".xhbeika").show();
$(".xhbeika").find("input").prop("disabled", false)
}
}
form.render();
})
@@ -239,27 +334,35 @@
form.on('submit(acount_btn)', function (data) {
var number = $("#number").val();
var size = $("#size").val();
let kindValue = $('input[name="kindValue"]:checked').val();
var count = $("#count").val();
var kind = $("select[name='kind'] option:selected").text();
let size1 = $("#size1").val();
let shuliang = $("#shuliang").val();
let pinzhong = $("#pinzhong").val();
var craft = [];
if (kindValue == "对联冰箱贴") {
size = $("#selectSize option:selected").val();
}
if (size == "") {
layer.msg('请填写尺寸!', {offset: ['300px', '300px']}, function () {
});
return false;
}
if ((size.split("*")[0] > 16 || size.split("*")[1] > 16)) {
layer.msg('最大尺寸16*16cm', {offset: ['300px', '300px']}, function () {
});
return false;
}
if ((size.split("*")[0] < 2 || size.split("*")[1] < 2)) {
layer.msg('最小尺寸2*2cm', {offset: ['300px', '300px']}, function () {
});
return false;
if (kindValue == "冰箱贴") {
if ((size.split("*")[0] > 16 || size.split("*")[1] > 16)) {
layer.msg('最大尺寸16*16cm', {offset: ['300px', '300px']}, function () {
});
return false;
}
if ((size.split("*")[0] < 2 || size.split("*")[1] < 2)) {
layer.msg('最小尺寸2*2cm', {offset: ['300px', '300px']}, function () {
});
return false;
}
}
craft.push($("#xiangwei select[name='craft'] option:selected").val());
$("input:checkbox[name='craft']:checked").each(function (i) {
// 没有被禁用的工艺加到arr中
@@ -308,19 +411,24 @@
return false;
}
var data = result.data.proList;
var span_result = '冰箱贴 - ' + kind + '-' + $("select[name='cailiao'] option:selected").text() + ' - ' + size + ' CM (同款内容)\n';
let unit = "套";
if (kindValue == "冰箱贴") {
var span_result = kindValue + ' - ' + kind + '-' + $("select[name='cailiao'] option:selected").text() + ' - ' + size + ' CM (同款内容)\n';
unit = "个"
} else {
var span_result = kindValue + ' - ' + kind + '-' + $("select[name='cailiao'] option:selected").text() + ' - 拼版' + size + ' MM (同款内容)\n';
}
span_result += `工艺:` + craft.join(",") + '\n';
if (number > 1) {
for (let i = 0; i < data.length; i++) {
span_result += number + '款 各' + data[i].count + ",共" + data[i].price + "元" + '\n'
span_result += number + '款 各' + data[i].count + unit + ",共" + data[i].price + "元" + '\n'
data[i].number = number;
}
} else {
for (let i = 0; i < data.length; i++) {
span_result += number + '款 ' + data[i].count + ",共" + data[i].price + "元" + '\n'
span_result += number + '款 ' + data[i].count + unit + ",共" + data[i].price + "元" + '\n'
data[i].number = number;
}
}