mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 16:13:26 +08:00
【优化】优化全局营销,团购,秒杀优惠模式结算策略,增加了优惠是否针对单个数量或者批量购买的情况。
This commit is contained in:
@@ -269,7 +269,15 @@ namespace CoreCms.Net.Services
|
||||
//此处不存储优惠后单价,防止出现针对单个产品,多个数量情况下,单一优惠券无法针对每个数量的商品进行计算售价。
|
||||
//cartProducts.products.price = Math.Round(cartProducts.products.price - objMoney, 2);
|
||||
//此次商品促销一共优惠了多少钱
|
||||
promotionMoney = promotionInfo.type == (int)GlobalEnumVars.PromotionType.Coupon ? isApplyToNum == 1 ? objMoney : Math.Round(cartProducts.nums * objMoney, 2) : Math.Round(cartProducts.nums * objMoney, 2);
|
||||
if (promotionInfo.type is (int)GlobalEnumVars.PromotionType.Coupon or (int)GlobalEnumVars.PromotionType.Seckill or (int)GlobalEnumVars.PromotionType.Group or (int)GlobalEnumVars.PromotionType.Promotion)
|
||||
{
|
||||
promotionMoney = isApplyToNum == 1 ? objMoney : Math.Round(cartProducts.nums * objMoney, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
promotionMoney = Math.Round(cartProducts.nums * objMoney, 2);
|
||||
}
|
||||
//promotionMoney = promotionInfo.type == (int)GlobalEnumVars.PromotionType.Coupon ? isApplyToNum == 1 ? objMoney : Math.Round(cartProducts.nums * objMoney, 2) : Math.Round(cartProducts.nums * objMoney, 2);
|
||||
//设置商品优惠总金额
|
||||
cartProducts.products.promotionAmount = Math.Round(cartProducts.products.promotionAmount + promotionMoney, 2);
|
||||
//设置商品的实际销售金额(单品)
|
||||
@@ -303,7 +311,16 @@ namespace CoreCms.Net.Services
|
||||
|
||||
//单品优惠的金额
|
||||
var pmoney = Math.Round(goodsPrice - productsPrice, 2);
|
||||
var promotionMoney = promotionInfo.type == (int)GlobalEnumVars.PromotionType.Coupon ? isApplyToNum == 1 ? pmoney : Math.Round(cartProducts.nums * pmoney, 2) : Math.Round(cartProducts.nums * pmoney, 2);
|
||||
decimal promotionMoney = 0;
|
||||
if (promotionInfo.type is (int)GlobalEnumVars.PromotionType.Coupon or (int)GlobalEnumVars.PromotionType.Seckill or (int)GlobalEnumVars.PromotionType.Group or (int)GlobalEnumVars.PromotionType.Promotion)
|
||||
{
|
||||
promotionMoney = isApplyToNum == 1 ? pmoney : Math.Round(cartProducts.nums * pmoney, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
promotionMoney = Math.Round(cartProducts.nums * pmoney, 2);
|
||||
}
|
||||
//var promotionMoney = promotionInfo.type == (int)GlobalEnumVars.PromotionType.Coupon ? isApplyToNum == 1 ? pmoney : Math.Round(cartProducts.nums * pmoney, 2) : Math.Round(cartProducts.nums * pmoney, 2);
|
||||
//设置商品优惠总金额
|
||||
cartProducts.products.promotionAmount = Math.Round(cartProducts.products.promotionAmount + promotionMoney, 2);
|
||||
//设置商品的实际销售总金额
|
||||
@@ -331,7 +348,15 @@ namespace CoreCms.Net.Services
|
||||
var productsPrice = Math.Round(objMoney, 2);
|
||||
//单品优惠的金额
|
||||
var pmoney = Math.Round(goodsPrice - productsPrice, 2);
|
||||
promotionMoney = promotionInfo.type == (int)GlobalEnumVars.PromotionType.Coupon ? isApplyToNum == 1 ? pmoney : Math.Round(cartProducts.nums * pmoney, 2) : Math.Round(cartProducts.nums * pmoney, 2);
|
||||
if (promotionInfo.type is (int)GlobalEnumVars.PromotionType.Coupon or (int)GlobalEnumVars.PromotionType.Seckill or (int)GlobalEnumVars.PromotionType.Group or (int)GlobalEnumVars.PromotionType.Promotion)
|
||||
{
|
||||
promotionMoney = isApplyToNum == 1 ? pmoney : Math.Round(cartProducts.nums * pmoney, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
promotionMoney = Math.Round(cartProducts.nums * pmoney, 2);
|
||||
}
|
||||
//promotionMoney = promotionInfo.type == (int)GlobalEnumVars.PromotionType.Coupon ? isApplyToNum == 1 ? pmoney : Math.Round(cartProducts.nums * pmoney, 2) : Math.Round(cartProducts.nums * pmoney, 2);
|
||||
//设置商品优惠总金额
|
||||
cartProducts.products.promotionAmount = Math.Round(cartProducts.products.promotionAmount + promotionMoney, 2);
|
||||
//设置商品的实际销售总金额
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<blockquote class="layui-elem-quote layui-quote-nm">
|
||||
1、优惠券结果为多条叠加,请注意,如:设置了商品减免20元,又设置了订单减免50元,那么一个优惠券将优惠了70元
|
||||
1、优惠券结果只能为一个结果。但是优惠券可以和全局促销一起使用。请注意合理规避计算风险。
|
||||
</blockquote>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">
|
||||
|
||||
@@ -185,18 +185,21 @@
|
||||
return false;
|
||||
}
|
||||
parameters.money = field.money;
|
||||
parameters.isApplyToNum = field.isApplyToNum;
|
||||
} else if (field.code === 'GOODS_DISCOUNT') { //指定商品打X折
|
||||
if (!!!field.discount) {
|
||||
layer.msg("请输入折扣");
|
||||
return false;
|
||||
}
|
||||
parameters.discount = field.discount;
|
||||
parameters.isApplyToNum = field.isApplyToNum;
|
||||
} else if (field.code === 'GOODS_ONE_PRICE') {//指定商品一口价
|
||||
if (!!!field.money) {
|
||||
layer.msg("请输入金额");
|
||||
return false;
|
||||
}
|
||||
parameters.money = field.money;
|
||||
parameters.isApplyToNum = field.isApplyToNum;
|
||||
} else if (field.code === 'ORDER_REDUCE') {//订单减指定金额
|
||||
if (!!!field.money) {
|
||||
layer.msg("请输入金额");
|
||||
@@ -257,7 +260,7 @@
|
||||
area: ['600px', '400px'],
|
||||
id: 'LAY-popup-CoreCmsPromotionResult-edit',
|
||||
success: function (layero, index) {
|
||||
view(this.id).render('promotion/promotion/resultedit', { data: e.data }).done(function () {
|
||||
view(this.id).render('promotion/group/resultedit', { data: e.data }).done(function () {
|
||||
//监听提交
|
||||
form.on('submit(LAY-app-CoreCmsPromotionResult-editForm-submit)',
|
||||
function (data) {
|
||||
@@ -278,18 +281,21 @@
|
||||
return false;
|
||||
}
|
||||
parameters.money = field.money;
|
||||
parameters.isApplyToNum = field.isApplyToNum;
|
||||
} else if (field.code === 'GOODS_DISCOUNT') { //指定商品打X折
|
||||
if (!!!field.discount) {
|
||||
layer.msg("请输入折扣");
|
||||
return false;
|
||||
}
|
||||
parameters.discount = field.discount;
|
||||
parameters.isApplyToNum = field.isApplyToNum;
|
||||
} else if (field.code === 'GOODS_ONE_PRICE') {//指定商品一口价
|
||||
if (!!!field.money) {
|
||||
layer.msg("请输入金额");
|
||||
return false;
|
||||
}
|
||||
parameters.money = field.money;
|
||||
parameters.isApplyToNum = field.isApplyToNum;
|
||||
} else if (field.code === 'ORDER_REDUCE') {//订单减指定金额
|
||||
if (!!!field.money) {
|
||||
layer.msg("请输入金额");
|
||||
|
||||
@@ -37,6 +37,14 @@
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">商品优惠的金额</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品范围:</label>
|
||||
<div class="layui-input-inline layui-inline-4">
|
||||
<input type="radio" name="isApplyToNum" value="1" title="一个数量" checked>
|
||||
<input type="radio" name="isApplyToNum" value="2" title="所有数量">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="goods_discount_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
@@ -50,6 +58,14 @@
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">大于0小于10的数字</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品范围:</label>
|
||||
<div class="layui-input-inline layui-inline-4">
|
||||
<input type="radio" name="isApplyToNum" value="1" title="一个数量" checked>
|
||||
<input type="radio" name="isApplyToNum" value="2" title="所有数量">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="goods_one_price_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
@@ -63,6 +79,14 @@
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">商品的固定价格</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品范围:</label>
|
||||
<div class="layui-input-inline layui-inline-4">
|
||||
<input type="radio" name="isApplyToNum" value="1" title="一个数量" checked>
|
||||
<input type="radio" name="isApplyToNum" value="2" title="所有数量">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="order_reduce_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
@@ -100,7 +124,7 @@
|
||||
<div class="layui-input-inline seller-inline-2">
|
||||
<input name="num" lay-verType="tips" lay-verify="required|number" autocomplete="off" value="1" placeholder="" class="layui-input" type="text">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">每第几件商品</div>
|
||||
<div class="layui-form-mid layui-word-aux">如设置2,下单10,那么就5*优惠金额</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">优惠金额:</label>
|
||||
|
||||
@@ -0,0 +1,198 @@
|
||||
<script type="text/html" template lay-done="layui.data.done(d);">
|
||||
<div class="layui-form coreshop-form" lay-filter="LAY-app-CoreCmsPromotionResult-editForm" id="LAY-app-CoreCmsPromotionResult-editForm">
|
||||
<input type="hidden" name="promotionId" id="promotionId" value="{{d.params.data.promotionModel.promotionId}}" />
|
||||
<input type="hidden" name="id" id="id" value="{{d.params.data.promotionModel.id}}" />
|
||||
<div class="layui-form-item" style="display:none;">
|
||||
<label class="layui-form-label">促销结果:</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="code" id="code" lay-filter="resultCode">
|
||||
<option value="">请选择促销结果</option>
|
||||
{{# layui.each(d.params.data.resultCodes, function(index, item){ }}
|
||||
<option value="{{ item.sKey }}" {{d.params.data.promotionModel.code==item.sKey?'selected="selected"':''}}>{{ item.sDescription }}</option>
|
||||
{{# }); }}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ResultBox"></div>
|
||||
<div class="layui-form-item core-hidden">
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-footer">
|
||||
<input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-CoreCmsPromotionResult-editForm-submit" id="LAY-app-CoreCmsPromotionResult-editForm-submit" value="确认添加">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script id="goods_reduce_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">结果名称:</label>
|
||||
<div class="layui-form-mid">指定商品减固定金额</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">金额:</label>
|
||||
<div class="layui-input-inline seller-inline-2">
|
||||
<input name="money" lay-verType="tips" lay-verify="required|money" autocomplete="off" value="{{d.money}}" placeholder="金额" class="layui-input" type="text">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">商品优惠的金额</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品范围:</label>
|
||||
<div class="layui-input-inline layui-inline-4">
|
||||
<input type="radio" name="isApplyToNum" value="1" title="一个数量" {{d.isApplyToNum=="1"?'checked':''}}>
|
||||
<input type="radio" name="isApplyToNum" value="2" title="所有数量" {{d.isApplyToNum=="2"?'checked':''}}>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="goods_discount_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">结果名称:</label>
|
||||
<div class="layui-form-mid">指定商品打X折</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">折扣:</label>
|
||||
<div class="layui-input-inline seller-inline-2">
|
||||
<input name="discount" lay-verType="tips" lay-verify="required|discount" autocomplete="off" value="{{d.discount}}" placeholder="折扣" class="layui-input" type="text">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">大于0小于10的数字</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品范围:</label>
|
||||
<div class="layui-input-inline layui-inline-4">
|
||||
<input type="radio" name="isApplyToNum" value="1" title="一个数量" {{d.isApplyToNum=="1"?'checked':''}}>
|
||||
<input type="radio" name="isApplyToNum" value="2" title="所有数量" {{d.isApplyToNum=="2"?'checked':''}}>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="goods_one_price_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">结果名称:</label>
|
||||
<div class="layui-form-mid">指定商品一口价</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">金额:</label>
|
||||
<div class="layui-input-inline seller-inline-2">
|
||||
<input name="money" lay-verType="tips" lay-verify="required|money" autocomplete="off" value="{{d.money}}" placeholder="金额" class="layui-input" type="text">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">商品的固定价格</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品范围:</label>
|
||||
<div class="layui-input-inline layui-inline-4">
|
||||
<input type="radio" name="isApplyToNum" value="1" title="一个数量" {{d.isApplyToNum=="1"?'checked':''}}>
|
||||
<input type="radio" name="isApplyToNum" value="2" title="所有数量" {{d.isApplyToNum=="2"?'checked':''}}>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="order_reduce_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">结果名称:</label>
|
||||
<div class="layui-form-mid">订单减指定金额</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">金额:</label>
|
||||
<div class="layui-input-inline seller-inline-2">
|
||||
<input name="money" lay-verType="tips" lay-verify="required|money" autocomplete="off" value="{{d.money}}" placeholder="金额" class="layui-input" type="text">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">订单总价减XX钱</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="order_discount_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">结果名称:</label>
|
||||
<div class="layui-form-mid">订单打X折</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">折扣:</label>
|
||||
<div class="layui-input-inline seller-inline-2">
|
||||
<input name="discount" lay-verType="tips" lay-verify="required|discount" autocomplete="off" value="{{d.discount}}" placeholder="折扣" class="layui-input" type="text">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">大于0小于10的数字</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="goods_half_price_tpl" type="text/html">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">结果名称:</label>
|
||||
<div class="layui-form-mid">指定商品每第几件减去指定金额</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">每第几件:</label>
|
||||
<div class="layui-input-inline seller-inline-2">
|
||||
<input name="num" lay-verType="tips" lay-verify="required|number" autocomplete="off" value="{{d.num}}" placeholder="" class="layui-input" type="number">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">如设置2,下单10,那么就5*优惠金额</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">优惠金额:</label>
|
||||
<div class="layui-input-inline seller-inline-2">
|
||||
<input name="money" lay-verType="tips" lay-verify="required|money" autocomplete="off" value="{{d.money}}" placeholder="金额" class="layui-input" type="text">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">减去的固定价格</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var debug = layui.setter.debug;
|
||||
layui.data.done = function (d) {
|
||||
//开启调试情况下获取接口赋值数据
|
||||
if (debug) { console.log(d.params.data); }
|
||||
layui.use(['admin', 'form', 'coreHelper', 'laytpl', 'view', 'util'],
|
||||
function () {
|
||||
var $ = layui.$
|
||||
, form = layui.form
|
||||
, admin = layui.admin
|
||||
, view = layui.view
|
||||
, laytpl = layui.laytpl
|
||||
, util = layui.util
|
||||
, coreHelper = layui.coreHelper;
|
||||
|
||||
var code = d.params.data.promotionModel.code;
|
||||
var obj = JSON.parse(d.params.data.promotionModel.parameters);
|
||||
var view = document.getElementById('ResultBox');
|
||||
$("#ResultBox").empty();
|
||||
if (code === 'GOODS_REDUCE') {//指定商品减固定金额
|
||||
laytpl(goods_reduce_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
|
||||
} else if (code === 'GOODS_DISCOUNT') { //指定商品打X折
|
||||
laytpl(goods_discount_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
|
||||
} else if (code === 'GOODS_ONE_PRICE') {//指定商品一口价
|
||||
laytpl(goods_one_price_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
|
||||
} else if (code === 'ORDER_REDUCE') {//订单减指定金额
|
||||
laytpl(order_reduce_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
|
||||
} else if (code === 'ORDER_DISCOUNT') {//订单打X折
|
||||
laytpl(order_discount_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
|
||||
} else if (code === 'GOODS_HALF_PRICE') {//指定商品每第几件减指定金额
|
||||
laytpl(goods_half_price_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
|
||||
}
|
||||
|
||||
form.on('select(resultCode)', function (data) {
|
||||
$('#code').val(data.value);
|
||||
var view = document.getElementById('ResultBox');
|
||||
$("#ResultBox").empty();
|
||||
if (data.value === 'GOODS_REDUCE') {//指定商品减固定金额
|
||||
laytpl(goods_reduce_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
|
||||
} else if (data.value === 'GOODS_DISCOUNT') { //指定商品打X折
|
||||
laytpl(goods_discount_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
|
||||
} else if (data.value === 'GOODS_ONE_PRICE') {//指定商品一口价
|
||||
laytpl(goods_one_price_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
|
||||
} else if (data.value === 'ORDER_REDUCE') {//订单减指定金额
|
||||
laytpl(order_reduce_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
|
||||
} else if (data.value === 'ORDER_DISCOUNT') {//订单打X折
|
||||
laytpl(order_discount_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
|
||||
} else if (data.value === 'GOODS_HALF_PRICE') {//指定商品每第几件减指定金额
|
||||
laytpl(goods_half_price_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
|
||||
}
|
||||
form.render();
|
||||
});
|
||||
|
||||
form.verify({
|
||||
money: [/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, '请输入金额'],
|
||||
discount: [/^(?:([1-9](?:\.[\d]{0,2})?)|(?:0\.[1-9]{1,2})|10)$/, '请输入折扣'],
|
||||
});
|
||||
//重载form
|
||||
form.render(null, 'LAY-app-CoreCmsPromotionResult-editForm');
|
||||
})
|
||||
};
|
||||
</script>
|
||||
Reference in New Issue
Block a user