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就完事嘍。
流程圖如下
至此,咱們運費模版的設計和實戰就到此結束了。
致謝
感激你的關注,心愿本篇文章能夠幫到你,謝謝。
總結
以上是生活随笔為你收集整理的php电子商务模板,关于php:电商系统设计之运费模板下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php链接mysql编码错误_php 操
- 下一篇: windows上配置nginx php,