【新增】同城配送运费增加超过20公里自定义每公里金额,增加订单超过多少金额免运费设置。

This commit is contained in:
大灰灰
2022-11-29 18:13:37 +08:00
parent 9e5232762a
commit f396d9ff6d
7 changed files with 60 additions and 37 deletions

View File

@@ -846,6 +846,16 @@ namespace CoreCms.Net.Configuration
/// </summary> /// </summary>
public static readonly string IntraCityServiceBy20KM = "intraCityServiceBy20KM"; public static readonly string IntraCityServiceBy20KM = "intraCityServiceBy20KM";
/// <summary>
/// 同城配送超过20公里内
/// </summary>
public static readonly string IntraCityServiceByExceed20KM = "intraCityServiceByExceed20KM";
/// <summary>
/// 同城配送多少钱免运费
/// </summary>
public static readonly string IntraCityServiceFreeCredit = "intraCityServiceFreeCredit";

View File

@@ -85,11 +85,11 @@ namespace CoreCms.Net.Configuration
di.Add(SystemSettingConstVars.OrderAutoSignTime, new DictionaryKeyValues() { sKey = "订单确认收货时间", sValue = "20" }); di.Add(SystemSettingConstVars.OrderAutoSignTime, new DictionaryKeyValues() { sKey = "订单确认收货时间", sValue = "20" });
di.Add(SystemSettingConstVars.OrderAutoEvalTime, new DictionaryKeyValues() { sKey = "订单自动评价时间", sValue = "30" }); di.Add(SystemSettingConstVars.OrderAutoEvalTime, new DictionaryKeyValues() { sKey = "订单自动评价时间", sValue = "30" });
di.Add(SystemSettingConstVars.RemindOrderTime, new DictionaryKeyValues() { sKey = "订单提醒付款时间", sValue = "1" }); di.Add(SystemSettingConstVars.RemindOrderTime, new DictionaryKeyValues() { sKey = "订单提醒付款时间", sValue = "1" });
di.Add(SystemSettingConstVars.ReshipName, new DictionaryKeyValues() { sKey = "退货联系人", sValue = "" }); di.Add(SystemSettingConstVars.ReshipName, new DictionaryKeyValues() { sKey = "商家联系人", sValue = "" });
di.Add(SystemSettingConstVars.ReshipMobile, new DictionaryKeyValues() { sKey = "退货联系方式", sValue = "" }); di.Add(SystemSettingConstVars.ReshipMobile, new DictionaryKeyValues() { sKey = "商家联系方式", sValue = "" });
di.Add(SystemSettingConstVars.ReshipAreaId, new DictionaryKeyValues() { sKey = "退货区域", sValue = "" }); di.Add(SystemSettingConstVars.ReshipAreaId, new DictionaryKeyValues() { sKey = "商家区域", sValue = "" });
di.Add(SystemSettingConstVars.ReshipAddress, new DictionaryKeyValues() { sKey = "退货详细地址", sValue = "" }); di.Add(SystemSettingConstVars.ReshipAddress, new DictionaryKeyValues() { sKey = "商家详细地址", sValue = "" });
di.Add(SystemSettingConstVars.ReshipCoordinate, new DictionaryKeyValues() { sKey = "退货坐标", sValue = "" }); di.Add(SystemSettingConstVars.ReshipCoordinate, new DictionaryKeyValues() { sKey = "商家坐标", sValue = "" });
di.Add(SystemSettingConstVars.StoreOrderAutomaticDelivery, new DictionaryKeyValues() { sKey = "门店自提自动发货", sValue = "2" }); di.Add(SystemSettingConstVars.StoreOrderAutomaticDelivery, new DictionaryKeyValues() { sKey = "门店自提自动发货", sValue = "2" });
@@ -243,6 +243,8 @@ namespace CoreCms.Net.Configuration
di.Add(SystemSettingConstVars.IntraCityServiceBy10KM, new DictionaryKeyValues() { sKey = "10公里内", sValue = "0" }); di.Add(SystemSettingConstVars.IntraCityServiceBy10KM, new DictionaryKeyValues() { sKey = "10公里内", sValue = "0" });
di.Add(SystemSettingConstVars.IntraCityServiceBy15KM, new DictionaryKeyValues() { sKey = "15公里内", sValue = "0" }); di.Add(SystemSettingConstVars.IntraCityServiceBy15KM, new DictionaryKeyValues() { sKey = "15公里内", sValue = "0" });
di.Add(SystemSettingConstVars.IntraCityServiceBy20KM, new DictionaryKeyValues() { sKey = "20公里内", sValue = "0" }); di.Add(SystemSettingConstVars.IntraCityServiceBy20KM, new DictionaryKeyValues() { sKey = "20公里内", sValue = "0" });
di.Add(SystemSettingConstVars.IntraCityServiceByExceed20KM, new DictionaryKeyValues() { sKey = "超过20公里", sValue = "2" });
di.Add(SystemSettingConstVars.IntraCityServiceFreeCredit, new DictionaryKeyValues() { sKey = "免运费额度", sValue = "0" });
//签到 //签到
di.Add(SystemSettingConstVars.CheckInIsOpen, new DictionaryKeyValues() { sKey = "是否开启签到", sValue = "1" }); di.Add(SystemSettingConstVars.CheckInIsOpen, new DictionaryKeyValues() { sKey = "是否开启签到", sValue = "1" });

View File

@@ -53,7 +53,8 @@ namespace CoreCms.Net.Repository
type = p.type, type = p.type,
sort = p.sort, sort = p.sort,
isDel = p.isDel, isDel = p.isDel,
createTime = p.createTime createTime = p.createTime,
contentBody = p.contentBody
}).WithCache().ToPageListAsync(pageIndex, pageSize, totalCount); }).WithCache().ToPageListAsync(pageIndex, pageSize, totalCount);
var list = new PageList<CoreCmsNotice>(page, pageIndex, pageSize, totalCount); var list = new PageList<CoreCmsNotice>(page, pageIndex, pageSize, totalCount);
return list; return list;

View File

@@ -721,18 +721,30 @@ namespace CoreCms.Net.Services
var intraCityServiceBy10Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy10KM).ObjectToDecimal(0); var intraCityServiceBy10Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy10KM).ObjectToDecimal(0);
var intraCityServiceBy15Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy15KM).ObjectToDecimal(0); var intraCityServiceBy15Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy15KM).ObjectToDecimal(0);
var intraCityServiceBy20Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy20KM).ObjectToDecimal(0); var intraCityServiceBy20Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy20KM).ObjectToDecimal(0);
var intraCityServiceByExceed20Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceByExceed20KM).ObjectToDecimal(0);
cartDto.costFreight = result switch if (result is >= 0 and <= 2)
cartDto.costFreight = intraCityServiceBy2Km;
else if (result is > 2 and <= 5)
cartDto.costFreight = intraCityServiceBy5Km;
else if (result is > 5 and <= 10)
cartDto.costFreight = intraCityServiceBy10Km;
else if (result is > 10 and <= 15)
cartDto.costFreight = intraCityServiceBy15Km;
else if (result is > 15 and <= 20)
cartDto.costFreight = intraCityServiceBy20Km;
else if (result > 20)
cartDto.costFreight = Math.Round(intraCityServiceByExceed20Km * (decimal) result).ObjectToDecimal();
else if (result < 0)
cartDto.costFreight = intraCityServiceBy2Km;
else
cartDto.costFreight = cartDto.costFreight;
var intraCityServiceFreeCredit = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceFreeCredit).ObjectToDecimal(0);
if (intraCityServiceFreeCredit > 0 && cartDto.amount > intraCityServiceFreeCredit)
{ {
>= 0 and <= 2 => intraCityServiceBy2Km, cartDto.costFreight = 0;
> 2 and <= 5 => intraCityServiceBy5Km, }
> 5 and <= 10 => intraCityServiceBy10Km,
> 10 and <= 15 => intraCityServiceBy15Km,
> 15 and <= 20 => intraCityServiceBy20Km,
> 20 => Math.Round(result * 2).ObjectToDecimal(),
< 0 => intraCityServiceBy2Km,
_ => cartDto.costFreight
};
cartDto.amount = Math.Round(cartDto.amount + cartDto.costFreight, 2); cartDto.amount = Math.Round(cartDto.amount + cartDto.costFreight, 2);
} }
return true; return true;

View File

@@ -440,21 +440,21 @@
<!--<input type="text" name="reshipAreaId" value="{{d.data.configs['reshipAreaId']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">--> <!--<input type="text" name="reshipAreaId" value="{{d.data.configs['reshipAreaId']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">-->
<input type="hidden" name="reshipAreaId" value="{{d.data.configs['reshipAreaId']['sValue']}}"> <input type="hidden" name="reshipAreaId" value="{{d.data.configs['reshipAreaId']['sValue']}}">
</div> </div>
<div class="layui-form-mid layui-word-aux">退货区域设置</div> <div class="layui-form-mid layui-word-aux">商家区域设置</div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">{{d.data.configs['reshipCoordinate']['sKey']}}</label> <label class="layui-form-label">{{d.data.configs['reshipCoordinate']['sKey']}}</label>
<div class="layui-input-inline layui-inline-5"> <div class="layui-input-inline layui-inline-5">
<input type="text" name="reshipCoordinate" id="coordinateBox" lay-active="showMap" value="{{d.data.configs['reshipCoordinate']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="退货坐标" class="layui-input"> <input type="text" name="reshipCoordinate" id="coordinateBox" lay-active="showMap" value="{{d.data.configs['reshipCoordinate']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="退货坐标" class="layui-input">
</div> </div>
<div class="layui-form-mid layui-word-aux">退货坐标</div> <div class="layui-form-mid layui-word-aux">商家坐标同城配送的运费计算将使用用户地址的坐标和本坐标进行计算多少公里数按照公里数计算运费</div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">{{d.data.configs['reshipAddress']['sKey']}}</label> <label class="layui-form-label">{{d.data.configs['reshipAddress']['sKey']}}</label>
<div class="layui-input-inline layui-inline-5"> <div class="layui-input-inline layui-inline-5">
<input type="text" name="reshipAddress" value="{{d.data.configs['reshipAddress']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="退货地址" class="layui-input"> <input type="text" name="reshipAddress" value="{{d.data.configs['reshipAddress']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="退货地址" class="layui-input">
</div> </div>
<div class="layui-form-mid layui-word-aux">退货的详细地址</div> <div class="layui-form-mid layui-word-aux">商家的详细地址</div>
</div> </div>
<blockquote class="layui-elem-quote"> <blockquote class="layui-elem-quote">
@@ -517,6 +517,20 @@
</div> </div>
<div class="layui-form-mid layui-word-aux">15-20公里以内</div> <div class="layui-form-mid layui-word-aux">15-20公里以内</div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">{{d.data.configs['intraCityServiceByExceed20KM']['sKey']}}</label>
<div class="layui-input-inline layui-inline-2">
<input type="number" min="0" max="999999" name="intraCityServiceByExceed20KM" value="{{d.data.configs['intraCityServiceByExceed20KM']['sValue']}}" lay-verify="title|number" autocomplete="off" placeholder="请输入正整数" class="layui-input" list="defaultNumbers">
</div>
<div class="layui-form-mid layui-word-aux">超过20公里每公里乘以多少填写每公里单价</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{{d.data.configs['intraCityServiceFreeCredit']['sKey']}}</label>
<div class="layui-input-inline layui-inline-2">
<input type="number" min="0" max="999999" name="intraCityServiceFreeCredit" value="{{d.data.configs['intraCityServiceFreeCredit']['sValue']}}" lay-verify="title|number" autocomplete="off" placeholder="请输入正整数" class="layui-input" list="defaultNumbers">
</div>
<div class="layui-form-mid layui-word-aux">订单超过多少钱免运费此设置超过0之后条件满足的情况下以上的距离计算将失效</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">&nbsp;</label> <label class="layui-form-label">&nbsp;</label>

View File

@@ -9,16 +9,3 @@
<a href="https://gitee.com/CoreUnion/CoreShop" target="_blank" class="layui-btn layui-btn-sm">Gitee下载</a> <a href="https://gitee.com/CoreUnion/CoreShop" target="_blank" class="layui-btn layui-btn-sm">Gitee下载</a>
</div> </div>
</div> </div>
<div class="layui-card-header">关于版权</div>
<div class="layui-card-body layui-text layadmin-about">
<blockquote class="layui-elem-quote" style="border: none;">
允许个人学习研究使用,支持二次开发。<br />
允许商业用途,但仅限自运营,如果商用必须保留版权信息,望自觉遵守。<br />
不允许对程序代码以任何形式、任何目的的再发行或出售,否则将追究侵权者法律责任。<br />
软件受国家计算机软件著作权保护(登记号:<a href="https://files.cdn.coreshop.cn/images/coreshopcopyright.jpeg" target="_blank">2020SR1224749</a>)。<br />
我们的团队水平有限也是在探索中学习、改进。开源是为了让认可我们的用户能自由的使用、学习软件的内部架构让更多的人有机会阅读并发现Bug、对软件项目提出改进意见。
</blockquote>
<p>© 2021 <a href="http://www.coreshop.cn/" target="_blank">coreshop.cn</a> 版权所有</p>
</div>

View File

@@ -57,8 +57,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
{ {
var jm = new WebApiCallBack(); var jm = new WebApiCallBack();
var list = await _noticeServices.QueryPageAsync(p => p.isDel == false, p => p.createTime, OrderByType.Desc, var list = await _noticeServices.QueryPageAsync(p => p.isDel == false, p => p.createTime, OrderByType.Desc, entity.page, entity.limit);
entity.page, entity.limit);
jm.status = true; jm.status = true;
jm.data = list; jm.data = list;
@@ -68,8 +67,6 @@ namespace CoreCms.Net.Web.WebApi.Controllers
#endregion #endregion
/// <summary> /// <summary>
/// 获取单个公告内容 /// 获取单个公告内容
/// </summary> /// </summary>