php电子商务模板,关于php:电商系统设计之运费模板下

电商大伙每天都在用,相似某猫,某狗等。

电商零碎设计看似简单又很简略,看似简略又很简单

本章适宜初中级工程师细看,大佬请随便

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

前言

在订单零碎中,运费模板是其中一个重要组成部分,看似简略的一个设置,在其内的设计中,要思考的问题还是很多滴,上一章咱们讲了运费的一些规定以及在数据库表中如何设计,本章聊聊如何计算运费

获取

通过上一篇文章咱们建设的数据表获取该商品绑定的哪一个运费模版

$templateId = Product::where('id',$product)->value('template_id');

if($template == 0) return [];

指定商品或者会应用多项规定,例如像这样

是否包邮

指定地区运费

达成某种条件下运费多少或者包邮

那这么多条件,咱们要保障所有的规定全副都能够检索到,并且还要晋升其计算速度。

在计算前,该当想好有几种可能性,再抉择其优先级,就像有

三个不同色彩的球,拼凑的办法有多种一样

我记得这应该是一道小学的数学题。

就近准则

相比大家必定做过这道面试题

把一份打乱的字符串,进行排序

那依照经典的形式

疾速排序

抉择排序

插入排序

冒泡排序

当然,咱们不讲排序,咱们是要通过这类算法去思考如何以疾速的形式去查问到咱们想要的信息。

排序算法归并与一点外围,就是通过比拟的形式进行,无论是从两头开始进行计算,还是从头或者从尾开始,都是通过对字符串自身要出现形式的一种猜想。

那咱们对于运费计算,应该从什么地位开始“排序”呢?

依据业务,首先咱们思考对于是否包邮、指定地区运费、达成指定条件这三种规定,他们的优先级大多是这样的。

达成指定条件 > 指定地区运费 > 是否包邮

一、达成指定条件就不在计算指定地区条件和是否包邮

二、达成指定地区条件就不判断是否包邮

思路是不是清晰了一点呢,那么咱们上代码

实战

演示为伪代码,这类计算必定不能交给前端去计算,会呈现很多平安问题,例如数据被篡改等等,偷懒的后端不是一个好后端

当咱们获取templateId后,在表product_template_config中查问其关联的规定,这是一个一对多的数据列,意味着会查问出多条,首先咱们先查问指定条件。

select count(1) product_template_config where template_id = $templateId and 是否有指定条件

当有指定条件则进行计算,例如

达成指定金额,运费固定

达成指定金额,运费多少

计算就简略了,小学就学过的嘛~

商品数量*商品单价 > 指定金额 = 运费

如果没有指定条件,则去查问指定城市运费,城市咱们应用的是json存储,会有多条,免不了for,这样你必定会说了,那很多个城市不会导致效率低嘛?做任何性能都要以理论业务登程,除了西藏、新疆及偏远地区,会有商家一个市一个市设置不同运费的嘛😂,那咱们就应用2种形式

第一种:没有蛇精病的商家

$list = "select * from `product_template_config` where template_id = $templateId";

$city = [];

for($list){

if($list->city == "北京市"){

return price;

}

}

第二种:有蛇精病的商家

这种办法,那咱们就在sql高低点功夫,不应用json查问

select * from `product_template_config` where city like "%北京市%"

最初如果以上两种规定都不满足,则就回到最简略都自定义运费和是否包邮,自定义运费的话就计算最终运费,包邮的话,间接return 0就完事喽。

流程图如下

至此,咱们运费模版的设计和实战就到此结束了。

致谢

感激你的关注,心愿本篇文章能够帮到你,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采用光线跟踪绘制场景 c++_光线追踪的相干性聚集:硬件光线追踪的优势

尽管在理论上实现现代GPU的方法是无限的,但真正有效的方法是切实地了解问题并着手将方案变为现实。制造现代高性能半导体器件以及试图加速当前可编程光栅化技术所面临的问题揭示了GPU硬件行业发展的未来趋势。例如在现代GPU中SIMD处理和固定功能纹理单元是必不可少的…

ajax请求php省略后缀,如何在PHP中更安全地处理Ajax请求?

在谷歌搜索了很多次后,回答结束了!步骤1:为所有Web服务生成令牌系统:生成令牌:session_start();$token md5(rand(1000,9999)); //you can use any encryption$_SESSION[token] $token; //store it as session variable?>步骤2:发送Ajax调用时使用它:var form_data {data…

python编写字符串查找函数_Python 简明教程 --- 8,Python 字符串函数

好代码本身就是最好的文档。当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释。—— Steve McConnell目录字符串有很多操作函数,所以,这里我们专门用一节来介绍这些函数。建议:由于字符串函数较多,对于新…

php汽车之家数据api,基于聚合数据的全国违章直连查询接口示例-PHP版

前言从聚合数据官网的接口文档中我们可以看出全国违章直连查询的调用一般来说需要两个步骤获取支持城市参数接口&#xff0c;即获取到不同城市的需要的参数的长度规则请求违章查询接口&#xff0c;即获取到车辆的违章记录我们以无锡城市为例代码部分<?php // 请求的接口URL…

xxljob 配置具体定时任务_分布式任务调度: XXL-Job

1 任务调度中心搭建、部署、任务管理与监控[1]任务调度中心页面2 SpringBoot 集成 xxl-job&#xff1a;创建调度任务maven项目pom.xml引入依赖:<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>…

php 判断同时存在英文跟数字,php判断输入是否是纯数字,英文,汉字的方法

本文实例讲述了php判断输入是否是纯数字&#xff0c;英文&#xff0c;汉字的方法。分享给大家供大家参考。具体分析如下&#xff1a;这里利用php的mb_strlen和strlen函数就可以轻松得知字符串的构成是全英文、英汉混合、还是纯汉字。简要说明如下&#xff1a;1、如果strlen返回…

前端白屏问题_深入理解前端性能监控

在同样的网络环境下&#xff0c;有两个同样能满足你的需求的网站&#xff0c;一个唰的一下就加载出来了&#xff0c;另一个白屏转圈转了半天内容才出来&#xff0c;如果让你选择&#xff0c;你会用哪一个&#xff1f;页面的性能问题是前端开发中一个重要环节&#xff0c;但一直…

java in action,java 7 in action

《JAVA语言程序设计》期末考试试题及答案7_远程、网络教育_成人教育_教育专区。《JAVA语言程序设计》期末考试试题及答案7 一、选择题 1. 请说出下列代码的执行结果......v alidateTree Methods inherited from class javaponent action, add, addCom ponentListener, addFocus…

信号的采样与恢复matlab实验报告,实验七 连续信号的采样与恢复

一、实验目的通过MATLAB仿真验证抽样定理&#xff0c;进一步加深对抽样定理的理解。二、实验原理1. 连续信号的采样对某一连续时间信号f(t)的采样原理图为&#xff1a;由图可知&#xff0c;&#xff0c;其中&#xff0c;单位冲激采样信号的表达式为&#xff1a; 其傅里叶变换为…

treegrid 如何获取getchanges inserted_如何避开Vue性能优化之路的荆棘?

随着这几年前端技术快速发展&#xff0c;Vue框架在国内普及率极高&#xff0c;人人都会用&#xff0c;那Vue如何写得比别人优雅&#xff1f;如何写得比别人漂亮&#xff1f;鉴于一线互联网大厂在前沿技术领域的持续研究和大规模投入&#xff0c;直接向他们取经&#xff0c;是最…

matlab+信号+mpf,Python和Matlab中平均频率的差异

我有这个EMG signal&#xff0c;我想根据这个article绘制平均功率频率。我使用以下代码在Matlab中实现它&#xff1a;clear all;close all;EMGload(EMG.txt);N1000; %my windowz1;fs200 %sampling ratefor i1:length(EMG)-NDUM0;NUM0;FTfft(EMG(i:iN-1));psdFT.*conj(FT);NFFTl…

matlab和vlfeat关联,VLFeat在matlab和vs中安装

转&#xff1a;http://blog.csdn.net/u011718701/article/details/51452011博主最近用vlfeat库做课题&#xff0c;网上搜索使用方法&#xff0c;一大片都会告诉你说&#xff1a;run(/vl_setup) 然后就好啦哈哈哈哈哈哈~~~~~~~~~~~~~~But!理想很丰满&#xff0c;现实很骨感&…

document.createelement如何绑定点击事件_番外篇-EXCEL如何使用宏(VBA)

小编&#xff0c;会在后续推送一些关于VBA(宏)相关的文章(之前其实也推送了一些&#xff0c;其中也大概说了一下如何使用)&#xff0c;所以我们今天就专门写一篇如何使用宏&#xff0c;方便大家使用已经写好的宏。如何使用宏&#xff1a;常规宏VBA-一般都是此类1、调出-开发工具…

mysql --max_allowed_packet=32m,如何修改MySQL-max_allowed_packet

首先查找my.cnf的配置文件(为了让配置永久生效)mysql --help | grep my.cnf修改mysql配置文件&#xff0c;找到vim /etc/my.cnfmax_allowed_packet 1024M >改为2048M保存退出&#xff0c;重新启动mysql服务、/etc/init.d/mysqld restart登录mysql通过本地地址mysql -uroot…

局域网打印机反应慢_为什么你的Excel这么慢,这些原因必须要知道!

Excel是很多人的高频办公工具&#xff0c;但大家或多或少地遇到过&#xff0c;有时自己电脑的Excel很慢&#xff0c;导致工作的效率不高&#xff0c;可能就会导致要加班加点&#xff0c;也压缩了自己其他方面的时间。本文将介绍一些常见的Excel”慢“的情况及其解决方案&#x…

php密码安全检测,php – 密码安全随机字符串函数

目标&#xff1a;找到最加密的安全随机字符串生成器.在字符串中使用字母,数字和可能的特殊字符.我一直在这里和其他地方读书,但我仍然听到很多不同的答案/意见.那些对安全性和加密技术有最新知识且知识渊博的人可以在这里发出声音.以下函数将用于生成8个字符的随机密码,并生成1…

linux挂载fc存储有超级坏块_Nand Flash基础知识与坏块管理机制的研究

欢迎FPGA工程师加入官方微信技术群点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群概述Flash名称的由来&#xff0c;Flash的擦除操作是以block块为单位的&#xff0c;与此相对应的是其他很多存储设备&#xff0c;是以bit位为最小读取/写入的单位&#xff0c;Flash是一…

php 设置agent,限制某个目录禁止解析php及user_agent、php相关配置

一、 限定某个目录禁止解析php1、 核心配置文件内容php_admin_flag engine off2、curl测试时直接返回了php源代码&#xff0c;并未解析二、 限制user_agent1、 user_agent可以理解为浏览器标识2、核心配置文件内容RewriteEngine onRewriteCond %{HTTP_USER_AGENT} .curl. [NC,O…

python 打印xml文档树_[Python]xml.etree.ElementTree处理xml文档

需求&#xff1a;在实际应用中&#xff0c;需要对xml配置文件进行实时修改&#xff0c;1.增加、删除 某些节点2.增加&#xff0c;删除&#xff0c;修改某个节点下的某些属性3.增加&#xff0c;删除&#xff0c;修改某些节点的文本xml源文件格式[例]path"/tmp">out…

oracle最快访问行,Oracle技术网—在Oracle快速进行数据行存在性检查

在Oracle快速进行数据行存在性检查当在应用程序的业务逻辑中需要检查一个外键是否有相关的主键时&#xff0c;往往使用Select Count(*)类型的SQL语句。这是一个很显而易的方法&#xff0c;但却不是最快的方法。Count(*)函数调用可能会引起对整个表的进行扫描&#xff0c;这是一…