新增金属徽章工艺

This commit is contained in:
2025-11-27 10:36:52 +08:00
parent 58a1eecc62
commit 6ce28bae01
3 changed files with 152 additions and 43 deletions
@@ -4783,44 +4783,89 @@ public class ProductService {
List<Product> priceList = new ArrayList<>(); List<Product> priceList = new ArrayList<>();
int count = dto.getCount(); int count = dto.getCount();
int number = dto.getNumber(); int number = dto.getNumber();
double[][] prices_list = {
{450, 880, 1700, 3250, 5380, 10000, 14728, 23685, 43103},
};
int[] count_list = { int[] count_list = {
50, 100, 200, 500, 1000, 2000, 3000, 5000, 10000 50, 100, 200, 500, 1000, 2000, 3000, 5000, 10000
}; };
int pre_count = 0; if (carft_list.contains("PET印刷")) {
for (int i = 0; i < count_list.length; i++) { double[][] prices_list = {
double price = prices_list[0][i]; {450, 880, 1700, 3250, 5380, 10000, 14728, 23685, 43103},
};
int item_count = count_list[i]; int pre_count = 0;
if (item_count < count) { for (int i = 0; i < count_list.length; i++) {
pre_count = item_count; double price = prices_list[0][i];
continue;
} int item_count = count_list[i];
if (priceList.size() > 2) { if (item_count < count) {
break; pre_count = item_count;
} continue;
//数量小于50 }
Product pro = new Product(); if (priceList.size() > 2) {
if (pre_count > 0 && count > pre_count) { break;
double base_price = prices_list[0][i - 1] / pre_count; }
//数量小于50
Product pro = new Product();
if (pre_count > 0 && count > pre_count) {
double base_price = prices_list[0][i - 1] / pre_count;
pro = new Product();
pro.setCount(count);
pro.setWeight(df.format(0.005 * count * dto.getNumber()));
pro.setPrice(Math.ceil(base_price * count * dto.getNumber()));
priceList.add(pro);
}
pro = new Product(); pro = new Product();
pro.setCount(count); pro.setCount(item_count);
pro.setWeight(df.format(0.005 * count * dto.getNumber())); pro.setWeight(df.format(0.005 * item_count * dto.getNumber()));
pro.setPrice(Math.ceil(base_price * count * dto.getNumber())); pro.setPrice(Math.ceil(price * dto.getNumber()));
priceList.add(pro);
pre_count = item_count;
}
}
if (carft_list.contains("UV印刷")) {
int pre_count = 0;
double miniprice = 400;
double mo_price = 250;
double base_price = 4.5;
if (width <= 4 && length <= 4) {
base_price = 4;
}
if (base_price < 4.5) {
if (count > 100 && count <= 500) {
base_price = 3.5;
} else if (count > 500) {
base_price = 3;
}
}
Product pro = new Product();
pro.setCount(count);
pro.setWeight(df.format(0.005 * count * dto.getNumber()));
pro.setPrice(Math.max(Math.ceil(base_price * count * dto.getNumber() + mo_price * dto.getNumber()), miniprice));
priceList.add(pro);
for (int i = 0; i < count_list.length; i++) {
int item_count = count_list[i];
if (item_count < count || count == item_count) {
continue;
}
if (priceList.size() > 2) {
break;
}
pro = new Product();
if (base_price < 4.5) {
if (item_count > 100 && item_count <= 500) {
base_price = 3.5;
} else if (item_count > 500) {
base_price = 3;
}
}
pro = new Product();
pro.setCount(item_count);
pro.setWeight(df.format(0.005 * item_count * dto.getNumber()));
pro.setPrice(Math.max(Math.ceil(base_price * item_count * dto.getNumber() + mo_price * dto.getNumber()), miniprice));
priceList.add(pro); priceList.add(pro);
} }
pro = new Product();
pro.setCount(item_count);
pro.setWeight(df.format(0.005 * item_count * dto.getNumber()));
pro.setPrice(Math.ceil(price * dto.getNumber()));
priceList.add(pro);
pre_count = item_count;
} }
return priceList; return priceList;
} }
+76 -12
View File
@@ -24,15 +24,16 @@
材质 材质
</p> </p>
<div class="layui-form-item"> <div class="layui-form-item">
<select name="kind" class="select" lay-search> <select name="kind" class="select" lay-search lay-filter="kind">
<option value="1">金属微章</option> <option value="1"></option>
<option value="2">锌合金</option>
</select> </select>
</div> </div>
<p> <p>
尺寸(CM/厘米) <span style="font-size: 14px; color: red">输入格式: 长 * 宽</span> 尺寸(CM/厘米) <span style="font-size: 14px; color: red">输入格式: 长 * 宽</span>
</p> </p>
<div class="layui-form-item" id="ui_size"> <div class="layui-form-item" id="ui_size">
<input type="text" name="size" id="size" value="3*3" class="layui-input" autocomplete="off" readonly> <input type="text" name="size" id="size" value="3*3" class="layui-input" autocomplete="off">
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@@ -83,12 +84,16 @@
<div class="layui-form-item" id='z4_craft'> <div class="layui-form-item" id='z4_craft'>
<div class="layui-input-block"> <div class="layui-input-block">
画面工艺: 画面工艺:
<input type="checkbox" lay-filter="ui_craft" value="PET印刷" title="PET印刷" checked> <input type="checkbox" name="craft" lay-filter="ui_craft" value="UV印刷" title="UV印刷">
<span>
<input type="checkbox" name="craft" lay-filter="ui_craft" value="PET印刷" title="PET印刷" checked>
</span>
</div> </div>
<div class="layui-input-block"> <div class="layui-input-block">
底托颜色: 底托颜色:
<input type="checkbox" name="craft" lay-filter="ui_craft" value="金色" title="金色" checked> <input type="checkbox" name="craft" lay-filter="ui_craft" value="金色" title="金色" checked>
<input type="checkbox" name="craft" lay-filter="ui_craft" value="银色" title="银色"> <input type="checkbox" name="craft" lay-filter="ui_craft" value="银色" title="银色">
<input type="checkbox" name="craft" lay-filter="ui_craft" value="黑色" title="黑色">
</div> </div>
<div class="layui-input-block"> <div class="layui-input-block">
配件: 配件:
@@ -130,6 +135,25 @@
</body> </body>
<%@include file="/views/copyResult.jsp" %> <%@include file="/views/copyResult.jsp" %>
<script> <script>
function changeRemark() {
let craft_list = [];
craft_list.push($("select[name='craft'] option:selected").val());
$("input[name='craft']:checked").each(function () {
if (!$(this).is(':disabled')) {
craft_list.push($(this).val());
}
}
);
let remark = " ";
if (craft_list.includes("PET印刷")) {
remark = "预计发货时间:<br>发货地:浙江 <br>快递:中通 顺丰特快 <br>100个以内隔天发货<br>100-500个2天左右发货<br>500-1000个3天左右发货<br>1000-3000个4天左右发货";
}
if (craft_list.includes("UV印刷")) {
remark = "预计发货时间:<br>发货地:浙江 <br>快递:中通 顺丰特快 <br>10-12天发货";
}
$("#remark").empty().append(remark);
}
layui.use(['table', 'form', 'carousel'], function () { layui.use(['table', 'form', 'carousel'], function () {
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功 var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
var carousel = layui.carousel; var carousel = layui.carousel;
@@ -144,6 +168,7 @@
const carft_list2 = ["别针", "蝴蝶扣", "磁铁"]; const carft_list2 = ["别针", "蝴蝶扣", "磁铁"];
const carft_list3 = ["UV印刷", "PET印刷"];
// 清空轮播图 // 清空轮播图
$("#carousel").empty(); $("#carousel").empty();
$("#remark").empty(); $("#remark").empty();
@@ -181,9 +206,22 @@
} }
} }
}); });
form.on('select(kind)', function (val) {
$("input[name='craft'][value='UV印刷']").prop("checked", true);
$("input[name='craft'][value='PET印刷']").parent().show();
$("input[name='craft'][value='PET印刷']").prop("disabled", false);
$("input[name='craft'][value='PET印刷']").prop("checked", false);
if (val.value == 2) {
$("input[name='craft'][value='PET印刷']").parent().hide();
$("input[name='craft'][value='PET印刷']").prop("disabled", true);
}
form.render();
changeRemark()
})
form.on("select(count_select)", function (val) { form.on("select(count_select)", function (val) {
$("#count").val(val.value); $("#count").val(val.value);
}) })
form.on('checkbox(ui_craft)', function (data) { form.on('checkbox(ui_craft)', function (data) {
let craft_list = []; let craft_list = [];
craft_list.push($("select[name='craft'] option:selected").val()); craft_list.push($("select[name='craft'] option:selected").val());
@@ -193,13 +231,7 @@
} }
} }
); );
if (data.value == "PET印刷") {
$(data.elem).prop("checked", true);
layer.msg("画面工艺不能取消", {offset: ['300px', '300px']}, function () {
});
form.render();
return false;
}
const carft1 = carft_list1.filter(craft => craft_list.includes(craft)); const carft1 = carft_list1.filter(craft => craft_list.includes(craft));
if (carft1.length > 1) { if (carft1.length > 1) {
@@ -209,6 +241,18 @@
form.render(); form.render();
return false; 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;
}
if (craft_list.includes("PET印刷") > 0) {
$("#size").val("3*3")
}
changeRemark()
}) })
form.on('checkbox(peijian)', function (data) { form.on('checkbox(peijian)', function (data) {
let craft_list = []; let craft_list = [];
@@ -243,7 +287,16 @@
craft.push($(this).val()); craft.push($(this).val());
} }
}); });
if ((size.split("*")[0] > 9 || size.split("*")[1] > 9)) {
layer.msg('最大尺寸9*9cm', {offset: ['300px', '300px']}, function () {
});
return false;
}
if ((size.split("*")[0] < 1 || size.split("*")[1] < 1)) {
layer.msg('最小尺寸1*1cm', {offset: ['300px', '300px']}, function () {
});
return false;
}
const carft1 = carft_list1.filter(item => craft.includes(item)); const carft1 = carft_list1.filter(item => craft.includes(item));
if (carft1.length == 0) { if (carft1.length == 0) {
layer.msg("请选择底托颜色", {offset: ['300px', '300px']}, function () { layer.msg("请选择底托颜色", {offset: ['300px', '300px']}, function () {
@@ -256,6 +309,17 @@
}); });
return false; return false;
} }
const carft3 = carft_list3.filter(item => craft.includes(item));
if (carft3.length == 0) {
layer.msg("请选择画面", {offset: ['300px', '300px']}, function () {
});
return false;
}
if (craft.includes("PET印刷") && (size.split("*")[0] != 3 || size.split("*")[1] != 3)) {
layer.msg("PET印刷只能做3*3尺寸", {offset: ['300px', '300px']}, function () {
});
return false;
}
$.ajax({ $.ajax({
url: "${path}/getThanSum", url: "${path}/getThanSum",
type: "GET", type: "GET",
@@ -81,7 +81,7 @@
</p> </p>
<div class="layui-form-item"> <div class="layui-form-item">
<input type="radio" name="kindValue" value="1" title="250克铜版纸"> <input type="radio" name="kindValue" value="1" title="250克铜版纸">
<input type="radio" name="kindValue" value="2" title="皮纹纸"> <%-- <input type="radio" name="kindValue" value="2" title="皮纹纸">--%>
</div> </div>
<p> <p>
内页 内页