日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

ThinkPHP+FastAdmin+uni-app上門預(yù)約系統(tǒng)源碼拆解與二次開(kāi)發(fā)

ThinkPHP+FastAdmin+uni-app上門預(yù)約系統(tǒng)源碼拆解與二次開(kāi)發(fā) 簡(jiǎn)介一套基于ThinkPHPMySQLuniappFastAdmin后臺(tái)開(kāi)發(fā)的上門家政按摩H5小程序與預(yù)約系統(tǒng)源碼面向需要快速落地同城O2O上門服務(wù)的開(kāi)發(fā)者、外包團(tuán)隊(duì)及產(chǎn)品經(jīng)理可直接部署或二次開(kāi)發(fā)。程序已測(cè)試通過(guò)配套完整包含公眾號(hào)通知、后端主程序、前端uniapp源碼、數(shù)據(jù)庫(kù)SQL及通知音頻文件。資源包共2000個(gè)文件大小66.31MB主要文件類型為865個(gè)JavaScript、546個(gè)Vue組件、350個(gè)Markdown文檔、91個(gè)JSON配置以及HTML、CSS、XML、Shell、SQL、Doc、Python等文件覆蓋前端頁(yè)面、接口交互、數(shù)據(jù)庫(kù)腳本和環(huán)境配置。運(yùn)行環(huán)境需LinuxNginxPHP7.2MySQL5.6并安裝fileinfo、Redis擴(kuò)展系統(tǒng)基于微信生態(tài)需備案域名、認(rèn)證服務(wù)號(hào)、微信支付及小程序賬號(hào)H5指公眾號(hào)H5須在微信中訪問(wèn)。目前已有255人學(xué)習(xí)下載??山柙创a理解FastAdmin權(quán)限管理與uniapp多端開(kāi)發(fā)的完整協(xié)作流程掌握預(yù)約下單、服務(wù)派單、支付回調(diào)、公眾號(hào)通知和音頻提醒等關(guān)鍵模塊的落地實(shí)現(xiàn)是學(xué)習(xí)同城上門預(yù)約類項(xiàng)目的實(shí)用參考。1. 上門預(yù)約系統(tǒng)到底解決了什么問(wèn)題一套三端代碼的本地生活服務(wù)樣板做本地生活服務(wù)的人應(yīng)該都有同感用戶端想要小程序順手還能分享H5管理端要能派單、能結(jié)算、能調(diào)整服務(wù)價(jià)格兩頭都不能少。這套基于 thinkphp mysql uniapp 組合的上門預(yù)約系統(tǒng)把幾個(gè)端一次性湊齊了——前臺(tái)用 uni-app 生成微信小程序和 H5后臺(tái)用 fastadmin 搭好了管理界面服務(wù)端用 ThinkPHP 寫(xiě)接口MySQL 負(fù)責(zé)訂單、技師、用戶、地址這些核心數(shù)據(jù)。對(duì)想快速上線上門家政、按摩、保潔這類業(yè)務(wù)的團(tuán)隊(duì)來(lái)說(shuō)它省掉的不只是 UI 工作量還有從下單、派單到完工結(jié)算的整條業(yè)務(wù)鏈路。下面按源碼實(shí)際結(jié)構(gòu)拆開(kāi)講。2. 三端架構(gòu)拆解ThinkPHP、FastAdmin 與 uni-app 如何各司其職這套系統(tǒng)的架構(gòu)一句話能說(shuō)清一個(gè)基于 ThinkPHP 的 FastAdmin 應(yīng)用提供全部后端能力用戶端是獨(dú)立的 uni-app 工程數(shù)據(jù)統(tǒng)一存在 MySQL 里。FastAdmin 跑在同一個(gè) PHP 應(yīng)用上通過(guò) admin 模塊提供后臺(tái)用戶端走 api 模塊兩者共用同一套模型和配置。這種一個(gè)應(yīng)用兩套入口的結(jié)構(gòu)是 FastAdmin 系源碼最常見(jiàn)的部署形態(tài)好處是二次開(kāi)發(fā)時(shí)不用維護(hù)兩套后端壞處是路由和權(quán)限要分清楚別讓前端接口和管理頁(yè)面混在一起。2.1 為什么是這套組合二次開(kāi)發(fā)視角的選型邏輯先說(shuō)結(jié)論這套組合選的不是最強(qiáng)的技術(shù)而是最省人力的技術(shù)。FastAdmin 基于 ThinkPHP自帶管理員登錄、權(quán)限節(jié)點(diǎn)、通用列表和表單生成后臺(tái)管理頁(yè)基本不用從零寫(xiě)uni-app 用 Vue 語(yǔ)法寫(xiě)一套代碼編譯輸出微信小程序和 H5對(duì)上門預(yù)約這種重分享、輕安裝的業(yè)務(wù)剛好合適thinkphp mysql 的部署資料多一臺(tái) Nginx 就能撐起一個(gè)小型平臺(tái)。從改造角度看這套選型還有一個(gè)隱藏優(yōu)點(diǎn)api 模塊和 admin 模塊在同一個(gè)應(yīng)用里訂單模型在 application/common/model 下是前后端共用的。后面加字段、改狀態(tài)、接支付只需要改一處模型不會(huì)出現(xiàn)后臺(tái)改完了接口沒(méi)跟上的問(wèn)題。等業(yè)務(wù)量上來(lái)接口和后臺(tái)也可以拆成兩個(gè)應(yīng)用分別部署目錄結(jié)構(gòu)已經(jīng)留好了拆分邊界。2.2 目錄結(jié)構(gòu)后端、后臺(tái)、前端各自的主力目錄與用途源碼解壓后主要看兩部分PHP 后端工程和 uniapp 前端工程。下面這張表把最常用的目錄列出來(lái)其他目錄大多可以暫時(shí)忽略。關(guān)注點(diǎn)目錄說(shuō)明站點(diǎn)入口public/Web 根目錄必須指向這里下有 index.php 與 uploads后臺(tái)控制器application/admin/controller/FastAdmin 管理端按訂單、服務(wù)、技師等模塊分文件前臺(tái)接口application/api/controller/H5 / 小程序請(qǐng)求的控制器Order、Service、Technician 等數(shù)據(jù)層application/common/model/訂單模型、技師模型前后端共用數(shù)據(jù)庫(kù)配置application/database.php數(shù)據(jù)庫(kù)連接參數(shù)、表前綴前端頁(yè)面uniapp/pages/首頁(yè)、服務(wù)列表、確認(rèn)訂單、訂單詳情等頁(yè)面前端公共uniapp/common/request.js 等公共方法幾個(gè)重點(diǎn)目錄展開(kāi)說(shuō)。application/api/controller 是用戶端實(shí)際打到的接口層FastAdmin 的 API 模塊路由通常是 index.php?s/api/控制器/方法前端請(qǐng)求路徑會(huì)拼成類似 /api/order/create 的形式。public 下的 uploads 存放后臺(tái)上傳的服務(wù)圖、技師頭像站點(diǎn)根目錄必須指向 public否則上傳文件會(huì)落到外部目錄導(dǎo)致前端加載不到。uniapp 前端里pages.json 控制頁(yè)面路由和 tabBarmanifest.json 是小程序 appid、H5 域名這些配置的集中地聯(lián)調(diào)時(shí)改的最多的就是這兩個(gè)文件加 common/request.js。2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)訂單表、技師表、服務(wù)表怎么配合表前綴默認(rèn)是 fa_安裝時(shí)也可以改。核心就三張業(yè)務(wù)表加一張用戶表。服務(wù)項(xiàng)目表結(jié)構(gòu)大致是這樣字段類型說(shuō)明idint主鍵namevarchar服務(wù)名稱如保開(kāi)關(guān)、推拿pricedecimal(10,2)單價(jià)單位元unitvarchar計(jì)費(fèi)單位次 / 小時(shí)service_minutesint預(yù)計(jì)服務(wù)時(shí)長(zhǎng)category_idint所屬分類statustinyint1 上架0 下架技師表 fa_technician 除了姓名、頭像、手機(jī)號(hào)之外最重要的是 lng、lat、server_radius 三個(gè)字段。lng 和 lat 是技師當(dāng)前位置坐標(biāo)server_radius 是服務(wù)半徑單位公里派單時(shí)用這兩個(gè)字段做距離篩選。訂單表 fa_order 則是業(yè)務(wù)核心包含 order_no 訂單號(hào)、user_id、service_id、technician_id、address、address_coordinate、amount、status、serve_time、pay_time、finish_time、remark 和創(chuàng)建時(shí)間。address_coordinate 字段存的是經(jīng)度,緯度逗號(hào)拼接的字符串派單 SQL 會(huì)直接用它做計(jì)算。訂單狀態(tài) status 是這套源碼的靈魂常見(jiàn)的定義是 1 待支付、2 已支付待派單、3 已派單、4 服務(wù)中、5 已完成、6 已取消。價(jià)格字段統(tǒng)一 decimal(10,2)不要用 float否則累計(jì)對(duì)賬時(shí)會(huì)出現(xiàn)精度問(wèn)題。這些字段定義是理解后面核心代碼的前提。3. 核心代碼鏈路一次預(yù)約從下單到派單的完整實(shí)現(xiàn)把用戶操作到后臺(tái)派單的過(guò)程串一遍用戶選服務(wù)填地址和時(shí)間提交訂單后臺(tái)按距離找技師技師接單開(kāi)始服務(wù)完成訂單。對(duì)應(yīng)到代碼上是三個(gè)核心文件前端的請(qǐng)求封裝、后端的下單控制器、派單控制器。下面按這條鏈路逐個(gè)拆。3.1 統(tǒng)一請(qǐng)求封裝token 與 401 跳轉(zhuǎn)都收在一處所有前端請(qǐng)求走同一個(gè)封裝函數(shù)是這類項(xiàng)目最基礎(chǔ)也最重要的約定。uniapp 工程里 common/request.js 負(fù)責(zé)統(tǒng)一拼接域名、帶 token、處理登錄過(guò)期。// uniapp/common/request.js const BASE_URL https://api.yourdomain.com/api; function request(path, data {}, method GET) { return new Promise((resolve, reject) { uni.request({ url: BASE_URL path, method, data, header: { token: uni.getStorageSync(token) || , Content-Type: application/json }, success: res { // 后端統(tǒng)一返回 code 字段401 表示登錄態(tài)失效 if (res.data.code 401) { uni.removeStorageSync(token); uni.navigateTo({ url: /pages/login/login }); reject(res.data); return; } resolve(res.data); }, fail: reject }); }); } export default request;邏輯說(shuō)明每個(gè)請(qǐng)求自動(dòng)從本地緩存拿 token 放進(jìn) header后端靠這個(gè) token 識(shí)別用戶身份一旦接口返回 401說(shuō)明 token 失效或未登錄前端統(tǒng)一清理本地狀態(tài)并跳轉(zhuǎn)登錄頁(yè)。BASE_URL 是聯(lián)調(diào)時(shí)第一個(gè)要替換的地方后續(xù)所有頁(yè)面都通過(guò) import request 來(lái)發(fā)請(qǐng)求不要分散在各頁(yè)面里用 uni.request 裸調(diào)。參數(shù)說(shuō)明path 是接口路徑data 是請(qǐng)求體method 默認(rèn) GETPOST 接口調(diào)用時(shí)顯式傳入第三個(gè)參數(shù)。后端要求的 token 字段名是 token如果你的項(xiàng)目改成了 Authorization這里和 FastAdmin 的 API 驗(yàn)權(quán)配置要同步改否則會(huì)出現(xiàn)登錄成功但業(yè)務(wù)接口全部未登錄的問(wèn)題。3.2 創(chuàng)建訂單接口必傳參數(shù)、狀態(tài)初值、事務(wù)用戶點(diǎn)提交訂單時(shí)前端把服務(wù) ID、地址、期望上門時(shí)間、備注 POST 到 api/order/create。后臺(tái)控制器的核心邏輯是校驗(yàn)服務(wù)是否存在組裝訂單數(shù)據(jù)寫(xiě)庫(kù)并返回訂單 ID。// application/api/controller/Order.php public function create() { $uid $this-user_id; $service_id $this-request-post(service_id); $address $this-request-post(address); $serve_time $this-request-post(serve_time); $remark $this-request-post(remark, ); $service ServiceModel::get($service_id); if (!$service || $service-status ! 1) { $this-error(服務(wù)項(xiàng)目不存在或已下架); } $order_data [ order_no date(YmdHis) . mt_rand(1000, 9999), user_id $uid, service_id $service_id, amount $service-price, address $address, serve_time $serve_time, remark $remark, status 1 // 待支付 ]; Db::startTrans(); try { $order OrderModel::create($order_data); Db::commit(); $this-success(下單成功, [order_id $order-id]); } catch (\Exception $e) { Db::rollback(); $this-error(下單失敗請(qǐng)重試); } }邏輯說(shuō)明先查服務(wù)表確認(rèn)服務(wù)存在且在上架狀態(tài)再組裝訂單數(shù)據(jù)。order_no 用時(shí)間加隨機(jī)數(shù)生成保證不會(huì)重復(fù)amount 直接取服務(wù)價(jià)格不讓前端傳價(jià)格這是防止用戶篡改金額的基本做法。status 初始化為 1 待支付。事務(wù)在這里雖然沒(méi)有跨表寫(xiě)入但后續(xù)如果加優(yōu)惠券核銷、加積分記錄事務(wù)就非常必要了所以保留這個(gè)結(jié)構(gòu)。參數(shù)說(shuō)明service_id 和 address 是必傳serve_time 是預(yù)約時(shí)間remark 可選。前端傳價(jià)格一律不接收。下單成功后返回 order_id前端再用這個(gè)訂單 ID 喚起支付或跳轉(zhuǎn)訂單詳情。如果想加提交訂單時(shí)鎖定技師在 order_data 里加 technician_id 字段即可第 6 章會(huì)專門講這個(gè)改造。3.3 附近技師查詢一段基于經(jīng)緯度的派單 SQL派單是整個(gè)上門預(yù)約系統(tǒng)的核心難點(diǎn)。這套源碼里的做法很直接以訂單地址的經(jīng)緯度為中心計(jì)算技師表里每個(gè)在崗技師的直線距離過(guò)濾出服務(wù)半徑內(nèi)的技師按距離升序返回。// application/api/controller/Assign.php public function findNearby() { $order_id $this-request-post(order_id); $order OrderModel::get($order_id); if (!$order) { $this-error(訂單不存在); } list($lng, $lat) explode(,, $order-address_coordinate); $list TechnicianModel::where(status, 1) -field(id, name, avatar, server_radius, (6378.138 * 2 * ASIN(SQRT(POW(SIN(({$lat} * PI() / 180 - lat * PI() / 180) / 2), 2) COS({$lat} * PI() / 180) * COS(lat * PI() / 180) * POW(SIN(({$lng} * PI() / 180 - lng * PI() / 180) / 2), 2)))) AS distance) -having(distance server_radius) -order(distance) -select(); $this-success(附近技師, $list); }邏輯說(shuō)明這段 SQL 用的是 Haversine 公式6378.138 是地球半徑公里數(shù)distance 的單位是公里。查詢條件有兩個(gè)技師狀態(tài)為 1在崗且算出來(lái)的距離小于技師自己設(shè)定的服務(wù)半徑。結(jié)果按距離從近到遠(yuǎn)排前端拿到的就是一個(gè)可選的技師列表。參數(shù)說(shuō)明address_coordinate 字段必須是經(jīng)度,緯度格式如果為空這條 SQL 會(huì)直接報(bào)錯(cuò)。常見(jiàn)的兜底做法是退化成按城市加狀態(tài)篩選先在地址表里解析出城市字段然后查 city_id 匹配的技師。這個(gè)兜底建議在改造時(shí)加上能避免訂單因?yàn)槿弊鴺?biāo)卡死在派單環(huán)節(jié)。3.4 FastAdmin 后臺(tái)訂單列表與狀態(tài)切換怎么配置后端接口就緒后管理后臺(tái)的訂單列表不需要手寫(xiě)頁(yè)面FastAdmin 提供了命令行生成器。在應(yīng)用根目錄執(zhí)行以下命令就能給 fa_order 表生成一套標(biāo)準(zhǔn)的后臺(tái)增刪改查php think crud -t fa_order -u 1執(zhí)行后application/admin 下會(huì)出現(xiàn) Order 控制器和視圖文件后臺(tái)菜單自動(dòng)掛到 admin/order 下。列表展示哪些字段、字段怎么格式化由 application/admin/view/order/index.html 里對(duì)應(yīng)的 JS 配置 control 決定。訂單狀態(tài)切換是運(yùn)營(yíng)最頻繁的操作對(duì)應(yīng)的代碼邏輯通常長(zhǎng)這樣// application/admin/view/order/index.html 對(duì)應(yīng)的事件綁定 $(.btn-change-status).on(click, function () { var id $(this).data(id); $.ajax({ url: order/changeStatus, data: { id: id, status: 3 }, // 3 表示已派單 success: function (res) { if (res.code 1) { window.location.reload(); } } }); });邏輯說(shuō)明changeStatus 是后臺(tái)控制器里自定義的方法接收訂單 ID 和目標(biāo)狀態(tài)更新后刷新列表。這套結(jié)構(gòu)的好處是每個(gè)狀態(tài)流轉(zhuǎn)動(dòng)作都可以掛獨(dú)立的校驗(yàn)比如從服務(wù)中改成已完成時(shí)強(qiáng)制填寫(xiě)完結(jié)金額從已派單改成已取消時(shí)記錄取消原因。參數(shù)說(shuō)明data 里的 id 是訂單主鍵status 是目標(biāo)狀態(tài)碼。后臺(tái)控制器里對(duì)應(yīng)接收這兩個(gè)參數(shù)并在操作前用管理員權(quán)限做一次驗(yàn)權(quán)防止越權(quán)改單。4. 本地搭建與運(yùn)行從空服務(wù)器到 H5小程序跑通這一章目標(biāo)很直接把這套源碼在你自己的機(jī)器上跑起來(lái)。先說(shuō)后端初始化再說(shuō)前端聯(lián)調(diào)最后給一個(gè)三端已經(jīng)連通的判斷方法。整個(gè)過(guò)程中 90% 的問(wèn)題集中在配置和路徑上代碼本身基本不用動(dòng)。4.1 后端初始化導(dǎo)庫(kù)、改配置、配偽靜態(tài)環(huán)境準(zhǔn)備按 FastAdmin 的常規(guī)要求來(lái)PHP 7.1 到 7.4 最穩(wěn)MySQL 5.7 以上Nginx 或 Apache 都行。先把數(shù)據(jù)庫(kù)建好再把源碼自帶的 SQL 文件導(dǎo)入。SQL 文件一般在根目錄或 sql 目錄下不同發(fā)行版位置不同先找一下。mysql -uroot -p -e create database fastadmin_home default charset utf8mb4; mysql -uroot -p fastadmin_home install.sql兩條命令的含義第一條創(chuàng)建名為 fastadmin_home 的數(shù)據(jù)庫(kù)指定 utf8mb4 字符集第二條把 install.sql 里的表結(jié)構(gòu)和初始數(shù)據(jù)導(dǎo)入這個(gè)庫(kù)。導(dǎo)入成功后會(huì)看到 fa_user、fa_order、fa_technician 等表。接著修改 application/database.php把數(shù)據(jù)庫(kù)連接參數(shù)換成你自己的。需要改的字段是 hostname、database、username、password、prefix。prefix 默認(rèn) fa_如果導(dǎo)入的 SQL 里表前綴不是 fa_這里必須改成一致的否則后臺(tái)登錄會(huì)報(bào)表不存在。最后是偽靜態(tài)配置。FastAdmin 的路由是 pathinfo 風(fēng)格Nginx 下站點(diǎn)根目錄要指向 public并加上 rewrite。配置示例server { listen 80; server_name localhost; root /path/to/項(xiàng)目根目錄/public; index index.php; location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s$1 last; } } }提示根目錄指錯(cuò)是最常見(jiàn)的啟動(dòng)失敗原因。一定要指到 public 目錄不是項(xiàng)目根目錄。配置完成后訪問(wèn) http://localhost/index.php?s/admin 進(jìn)入后臺(tái)默認(rèn)管理員賬號(hào)通常為 admin密碼 admin 或 123456。上線前第一件事就是改掉默認(rèn)密碼不要在這上面偷懶。4.2 前端聯(lián)調(diào)H5 與微信小程序?qū)雍蠖说牡胤讲灰粯忧岸斯こ逃?HBuilderX 打開(kāi) uniapp 目錄第一步修改 common/request.js 里的 BASE_URL。如果后端跑在本機(jī)H5 開(kāi)發(fā)模式建議用代理解決跨域不用改 BASE_URL 的域名。manifest.json 的 h5 節(jié)點(diǎn)配置本地代理// uniapp manifest.json 的開(kāi)發(fā)配置片段 h5: { devServer: { proxy: { /api: { target: http://127.0.0.1:8080, changeOrigin: true } } } }邏輯說(shuō)明開(kāi)發(fā)環(huán)境下前端請(qǐng)求 /api 開(kāi)頭的地址會(huì)自動(dòng)轉(zhuǎn)發(fā)到本機(jī) 8080 端口的 PHP 應(yīng)用繞開(kāi)瀏覽器跨域限制。生產(chǎn)環(huán)境 H5 直接配 HTTPS 域名不需要代理。微信小程序和 H5 的差別在域名校驗(yàn)。微信開(kāi)發(fā)者工具里默認(rèn)會(huì)校驗(yàn) request 合法域名本地聯(lián)調(diào)時(shí)可以在詳情 → 本地設(shè)置里勾選不校驗(yàn)合法域名。但真機(jī)預(yù)覽和體驗(yàn)版必須在小程序后臺(tái)把 API 域名加入 request 合法域名而且要求是已備案的 HTTPS 域名。這點(diǎn)后面避坑章還會(huì)再提。4.3 三端已連通的判斷方法跑通后怎么確認(rèn)鏈路是通的按三條線自檢第一打開(kāi)后端 runtime/log 目錄下的日志文件看請(qǐng)求是否進(jìn)來(lái)、在哪一步停下第二用接口調(diào)試工具先調(diào)登錄接口拿 token再帶 token 調(diào)一次訂單列表接口接口能通說(shuō)明 PHP 應(yīng)用本身沒(méi)問(wèn)題第三在后臺(tái)創(chuàng)建一個(gè)測(cè)試訂單然后查 MySQL 的 fa_order 表能看到新記錄就說(shuō)明數(shù)據(jù)鏈路完整。這三條自檢順序固定日志確認(rèn)請(qǐng)求到達(dá)接口確認(rèn)邏輯正確數(shù)據(jù)庫(kù)確認(rèn)落庫(kù)成功。按這個(gè)順序排查能把前端問(wèn)題和后端問(wèn)題快速分開(kāi)避免在兩端來(lái)回猜。5. 避坑記錄搭建與聯(lián)調(diào)中最常踩的五個(gè)坑這一章是實(shí)際操作里反復(fù)遇到的坑按現(xiàn)象到原因再到解決展開(kāi)。每一條都對(duì)應(yīng)一個(gè)具體的排查路徑希望你看完之后遇到同類問(wèn)題能直接定位。5.1 小程序請(qǐng)求全部失敗url not in domain list現(xiàn)象微信開(kāi)發(fā)者工具里所有 uni.request 請(qǐng)求都報(bào) request:fail url not in domain list頁(yè)面數(shù)據(jù)全空。原因小程序平臺(tái)對(duì) request 接口有域名白名單限制。開(kāi)發(fā)者工具默認(rèn)開(kāi)啟合法域名校驗(yàn)而你的 API 域名沒(méi)在小程序后臺(tái)配置或者開(kāi)發(fā)者工具里的不校驗(yàn)合法域名選項(xiàng)沒(méi)勾上。解決本地聯(lián)調(diào)階段在微信開(kāi)發(fā)者工具的詳情 → 本地設(shè)置里勾選不校驗(yàn)合法域名真機(jī)預(yù)覽和發(fā)布前到微信公眾平臺(tái)把 API 域名加入 request 合法域名。注意域名必須是 HTTPS、已備案且協(xié)議和域名要完全一致http 和 https 不能混著填。5.2 后臺(tái)圖片上傳成功前端加載不出來(lái)現(xiàn)象FastAdmin 后臺(tái)上傳的服務(wù)圖片、技師頭像顯示正常但小程序和 H5 頁(yè)面請(qǐng)求這些圖片時(shí) 404 或空白。原因上傳文件默認(rèn)落在 public/uploads 目錄正確訪問(wèn)路徑是 /uploads/xxx.jpg。但很多部署把站點(diǎn)根目錄指到了項(xiàng)目根目錄導(dǎo)致上傳文件實(shí)際在項(xiàng)目根目錄以外或路徑不對(duì)前端拼接的 URL 自然打不開(kāi)。解決先把 Nginx 站點(diǎn)根目錄固定到 public這是根本前端圖片地址用相對(duì)路徑 /uploads/xxx.jpg不要在前端寫(xiě)死帶域名和端口號(hào)的絕對(duì)地址避免域名一換就大面積裂圖。5.3 登錄成功但其他接口全部提示未登錄現(xiàn)象登錄接口返回 token 正常前端也存進(jìn)了緩存但一點(diǎn)進(jìn)訂單詳情就跳回登錄頁(yè)打開(kāi)接口返回 401 未登錄。原因前后端 token 字段名不一致。前端 header 里發(fā)送的是 token后端 API 驗(yàn)權(quán)默認(rèn)也從 header 的 token 取如果某一端改成了 Authorization或者大小寫(xiě)不一致驗(yàn)權(quán)就會(huì)失敗。另一種情況是 token 本身已過(guò)期后端正確返回 401前端統(tǒng)一跳轉(zhuǎn)看起來(lái)像沒(méi)登錄上。解決找到后端 API 驗(yàn)權(quán)的入口確認(rèn)它從哪個(gè) header 取 token把前端 request.js 的 header 改成一致。同時(shí)在登錄接口里檢查 token 有效期配置開(kāi)發(fā)階段可以把過(guò)期時(shí)間調(diào)長(zhǎng)一點(diǎn)減少干擾。5.4 SQL 導(dǎo)入失敗字符集與版本不匹配現(xiàn)象導(dǎo)入 install.sql 時(shí)報(bào)錯(cuò)常見(jiàn)信息有 Index column size too large 或 Unknown collation: utf8mb4_unicode_ci。原因SQL 文件是按 MySQL 5.7 和 utf8mb4 生成的你本地 MySQL 版本過(guò)低或者建庫(kù)時(shí)沒(méi)有指定字符集導(dǎo)致表結(jié)構(gòu)里的索引和排序規(guī)則不被支持。解決建庫(kù)時(shí)顯式指定 utf8mb4命令用 create database xxx default charset utf8mb4把 MySQL 升級(jí)到 5.7 以上。如果還有報(bào)錯(cuò)檢查 sql_mode 是不是嚴(yán)格模式臨時(shí)可以關(guān)掉 strict mode 再導(dǎo)入。5.5 訂單狀態(tài)對(duì)不上前端永遠(yuǎn)顯示待支付現(xiàn)象后臺(tái)訂單已經(jīng)是已支付用戶端卻一直顯示待支付狀態(tài)名和實(shí)際流轉(zhuǎn)對(duì)不上。原因訂單狀態(tài)枚舉的前后端定義不一致。后臺(tái)代碼把 1 定義為待支付前端頁(yè)面把 0 定義為待支付兩邊沒(méi)有共用同一份狀態(tài)字典。解決在前后端各維護(hù)一份公共狀態(tài)字典后端在 common 常量里定義前端在 common/status.js 里定義字段順序和數(shù)值必須完全一致。凡是展示狀態(tài)的地方都從字典取值禁止在頁(yè)面里寫(xiě)死狀態(tài)數(shù)字。改完順手把 fa_order 表里歷史數(shù)據(jù)的 status 也校正一遍。6. 二次開(kāi)發(fā)實(shí)戰(zhàn)把后臺(tái)派單改成用戶自選技師最后做一個(gè)最典型的業(yè)務(wù)改造把默認(rèn)的后臺(tái)指派技師改成用戶自己選技師。這個(gè)改動(dòng)覆蓋數(shù)據(jù)庫(kù)、接口、前端三處做完之后這套源碼的骨架你基本就摸清了。6.1 先鎖定改動(dòng)范圍要改的地方總共三處加一個(gè)字段。數(shù)據(jù)庫(kù)給 fa_order 表加 technician_id 字段存用戶選的技師 ID后端創(chuàng)建訂單接口加一個(gè)可選參數(shù) technician_id并在傳值時(shí)把訂單狀態(tài)改成待技師接單前端確認(rèn)訂單頁(yè)加一個(gè)技師選擇列表展示附近技師和距離。后臺(tái)派單流程保留作為無(wú)人選擇時(shí)的兜底。ALTER TABLE fa_order ADD COLUMN technician_id INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 用戶自選技師ID AFTER service_id;邏輯說(shuō)明technician_id 默認(rèn) 0 表示未指定非 0 表示用戶指定。訂單詳情查詢時(shí)聯(lián)查 fa_technician 表就能拿到技師姓名和頭像。6.2 前后端的具體改法前端在用戶選完服務(wù)后調(diào)一次附近技師接口把結(jié)果渲染成可選列表。距離字段在后端返回時(shí)單位是公里展示前格式化一下會(huì)更友好。// 預(yù)約確認(rèn)頁(yè)的技師選擇邏輯 async function loadTechnicians(serviceId) { const res await request(/order/canAssign, { service_id: serviceId }, POST); const list res.data.map(t ({ ...t, distanceText: t.distance 1 ? t.distance.toFixed(2) km : Math.round(t.distance * 1000) m })); this.technicians list; }邏輯說(shuō)明canAssign 接口內(nèi)部就是第 3 章那段 Haversine 查詢只是入口從訂單 ID 換成了服務(wù) ID。前端拿到列表后用戶點(diǎn)選某個(gè)技師就把技師 ID 存進(jìn)表單提交訂單時(shí)隨請(qǐng)求體一起發(fā)送。后端在創(chuàng)建訂單接口里加一段判斷$technician_id $this-request-post(technician_id, 0); if ($technician_id) { $tech TechnicianModel::get($technician_id); if (!$tech || $tech-status ! 1) { $this-error(技師不可用請(qǐng)重新選擇); } $order_data[technician_id] $technician_id; $order_data[status] 2; // 待技師接單原 2 是已支付待派單這里沿用 2 }邏輯說(shuō)明傳了 technician_id 才會(huì)校驗(yàn)技師狀態(tài)并把訂單狀態(tài)置為待技師接單不傳則維持原來(lái)的待支付流程由后臺(tái)派單。這兩個(gè)分支互不影響。6.3 改造后的驗(yàn)證驗(yàn)證要覆蓋兩條路徑在 FastAdmin 后臺(tái)給某技師填上經(jīng)緯度用前端選該技師下單查 fa_order 表確認(rèn) technician_id 有值、status 為 2再走一遍不選技師的舊流程確認(rèn)后臺(tái)派單仍然正常。兩條路徑都通改造才算完成。拆這類源碼最值錢的地方其實(shí)不是某個(gè)接口怎么寫(xiě)而是狀態(tài)和字段的約定怎么貫穿三端。我這次改的時(shí)候第一件事不是寫(xiě)代碼而是先翻 fa_order 的 status 注釋和前端的公共字典把待派單、待接單的定義對(duì)齊才動(dòng)手。從那以后我接手任何 FastAdmin 項(xiàng)目第一件事都是先導(dǎo)出數(shù)據(jù)庫(kù)字典再碰控制器這個(gè)習(xí)慣幫我少走了不少?gòu)澛贰OM@份拆解和改造思路對(duì)你也有用。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
视频国产欧美在线播放| 黄色AAAAAAAAAAA大片| 97舔舔| 亚洲人在线| 情色五月天就去干| 激情视屏国产乱伦强奸| 亚洲AV乱码专区国产噜噜亚洲| 校园春色美腿丝袜 | 91干熟女| 色综合99999| 欧成人精品一区二区三区| 青娱乐亚洲自拍| 激情综合五月| 嗯嗯啊啊的视频| 国产精品白丝在线播放| 亚洲熟妇熟在线电影视频| 亚洲欧美碰碰| 欧洲与亚洲欧美精品中文字幕| 亚洲综合97中文网| 99热在线播放| 丁香婷婷激情五月天无毒不卡| 久久久久久久9999| 丰满人妻一区二区三区免费,| 少妇无码av专区线| 久久久久久久久久久人妻| 人妻丰满熟妇av无码区蜜桃| 色色色999| 偷拍色图| 女人被添高潮免费视频 | 天天热精品| www.91人妻.com| 天天日天天射天天干| 欧美日韩中文视频播放| 天天操天天射青青草| 国产精品日日摸夜夜添骚逼| 亚洲熟妇自偷自拍另欧美| 大香蕉2017| 激情五月天社区| 欧美美逼| 大香蕉男女超碰精品在线| yazhououmeizongya| 久久久麻豆精品| 91男人天堂网| 久久香蕉影院| 丰满人妻一区二区三区色-百度| 玖玖视频在线资源一区二区三区| 国产主播福利| 亚洲欧洲第二视频在线观看色图| 亚洲精品aa久久伊人| 亚洲综合草草| 粘花网06av视频| 天天日天天搞天天干| 日韩av在线精品观看| 久久国产精品91| 日韩欧美成人综合在线| surenchaopeng| 精品黑人一区二区| 精品对白久久不卡| 一级黄碟在线观看| 在线亚洲精品久久久| 国产欧美日本亚洲精品| 射丝袜高跟鞋99| 久久性生大片免费观看性| 超碰97资源大奶| WWW.操逼.COM| 97超视频在线观看| 亚洲中文字幕网| 亚洲欧洲中文日韩女优乱码| 青久久| 蜜乳AV色欲AVAV无码| 日本媚薬中文字幕在线| 亚洲一本色码中文字幕| 久久久一区二区三区麻豆| 特污免视频| 青青青青青手机视频| 日本午夜福利视频| 中文字幕 人妻不满 在线视频| 粉嫩av在线| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 美女诱惑久久| 欲射影视| 丁香五月成人| 爽 好舒服 无码刺激久久| 亚洲天天在线| 亚洲另类色综合网站| 超碰免费97| 91美女国产在线| 一本一道人妻久久一区二区三区| 欧美成人四级在线播放| 人人摸人人入| 人人性爱视频免费| 操91| AV天天综合| 亚洲最大的综合性av| 国产一区二区二区按摩精品啪视频| 中文久久96| 久久天天摸| 国产综合永久精品日韩鬼片| 日韩在线一区高清在线| 亚洲 欧美 第一页| 久久久久幕乱码| 91性高| 懂色AV一区二区三区| 国产 三级自拍| 操操逼视频| 亚洲熟女av中文字幕| 在线一区| 久久久九| 欧美性第1页| 国产性感在线观看| 综合 青草 伊久久 影院 综合 | 日本最新1区2区3区| 嗯啊免费视频| 色婷婷激情| 人人操人人插人www| 91中文字幕| 国产精品女久久久久av爽| 偷拍偷窥与盗摄视频专区| 欧美天天搞| 蜜臀网址在线| 日本媚薬中文字幕在线| 特污精品女优骚货黄色视频在线免费观看| 亚洲天堂资源网| 99re69| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | www.AV有限公司一区| 久无码| 精品久久一区二区三区四区五区| 九九久久99| 亚洲人妻av| 日韩啪啪视频| 日本大片日本一区二区免费高清| 爱媛媛久久国产福利| 久久久久久国产成人| 色噜噜人妻av中文字幕| 欧洲精品二区| 玖玖久久久| 久久久久久免费电影| 人妻人妻天天碰| 亚洲Av噜噜一区二区三区妖精| 日本 成 人 小说 电影 一区二区| 丁香六月婷婷| 五月婷婷色色| 亚洲色图久久成人| 97公开久久| 中文久久96| 欧美超碰人妻97| 97超碰超欧美。| 欧美劲爆视频一区二区| jizzjizz欧美| 国产无码精品无码| 多毛小伙内射老太婆| 中日韩久久久| www.夜夜操| 欧美亚综合色图| 嗯啊啊啊轻点视频 | 中文字幕交换人妻| 亚洲中文字幕噜噜噜久久久| 久操在97| 亚洲天天自拍| 易易A毛视频| 久久精品国产亚洲AV高级北京| 在线观看中文av字幕| 精品性爱无码在线播放| 男人天堂.AB| 麻豆激情综合| 加勒比在线观看一区二区| 二对二中文字幕。| 飘花国产午夜精品不卡| 超碰AV在线| av大香蕉网站| 综合亚洲网| 亚洲国产精品无码AV久久| 少妇熟女1区2区3区| 日韩乱伦影音先锋| 丰满翘臀美女影院视频| 97伦综合| 成人性爱视频在线看| 国产农村一一级特黄毛片| 91婷婷伊人狠人| 欧美暴力猛交| 国产后入清纯| 淫荡网址| 国产色呦呦| 色妹子A V| 神马福利久草| 中亚黄色三级大片| 一级岛国大片| 在线 制服丝袜中出 人妻| 一区二区不卡| 日韩强奸av| 操91| 97国伦国色| 欧美性高潮在线| 天天日天天搞天天干| 操人无码| 国产91丝袜 在线播放| 国产精品黄色三级av| 天天狠| 日韩激情视频| 久久精品人妻一区| 人妻精品综合中文字幕在线| 精品无人区麻豆乱码1区2区图片| 欧美成人一级麻豆| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 99熟女| 亚洲影视综合网| 神马午夜久久久| 风间由美日韩欧美久久| 亚欧高清在线| 美女干逼2| 自拍偷拍 日韩欧美| 人妻少妇色综合| 小骚逼被操的爽不爽| V A在线| AA丁香综合激情| 亚洲性刺激| 欧美人妻一区| 亚洲91网站| 高清国产无码av| 日韩欧亚太美不卡| 偷拍 欧美 日韩| 成人精品电影| 日本精品中文字幕视频| 午夜电影在线观看无码专区| 激情四射婷婷六月天| 91爆操视频| 日韩视频小说在线观看 | 久久久久13| 射久久| 国产按摩一区二区三区| 日本不卡五区| 97色论| 97超碰人人操人人操| 久久香蕉网| 91A欧美电影网站| 这里有精品| 天天伊人| 三上制服丝AV| 国产综合网站在线播放 | 免费国产| 超碰午夜| AV电影在线播放| 亚洲欧洲无码bt精品合集| 色色97爱| 中文字幕一区二区三区蜜臀| 狠狠色噜噜狠狠狠狠狠色综合久久 | 亚洲av资源| 婷婷丁香六月| 男女做爰猛烈动高潮A片免费应用| 欧美美女在线高潮999| 小视频国产| 欧美综合狠| 激情五月天丁香| 日本506070| 美国久久一二三四| 狠狠久久亚洲欧美专区| 91精品国| 亚洲欧洲无码97久久精品| 亚洲古典另类欧美在线| 亚洲欧美首页| 午夜毛片高清免费不卡| 脫衣舞一区二区三区| 性欧美第一页| 九九热最新| 国产亚洲精品激情| 国产精品午夜福利视频| 日韩亚洲美女一区久久| 欧美另类综合久久| 精品91日日夜夜超清资源| 一区二区三区蜜桃成人撸久久东京热| 日日碰狠狠添天天爽超| 老熟女乱伦片| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 欧美色图亚洲激情| 国产suv精品一区二六| 极品极品色影院| 婷婷操视频| 欧美变态激情网| 最新日产中文在线麻豆| 十八禁av无码免费网站APP| 欧美96在线|欧| 伊人久久久日韩一区| 99热99在线| 一区二区三区高清天码| 亚洲影院成人| 欧美性五月| 美腿色图| 精品精品精品| 探花激情视频| 女人香蕉久久毛毛片精品| 欧亚综合一卡二卡中文字幕| 97在线精品观看视频| 超碰久超碰久| 嗯嗯嗯啊啊在线观看| 亚州久久9| 久草婷婷| 国产成人自拍视频在线| 2021久久国产综合精品青草| 欧美精品三级黄片| 亚洲日韩在线a不卡99精品| 日韩图色| 麻豆av一区二区| wwwxxx日本爽| 高清国产无码av| 爱爱啊啊啊| 日韩欧美女求操每天更新| 97se综合| 日韩97超碰中文字幕| 人人 操人人 操人人| 免费观看成人www精品视频| 无马一区二区| 色综合大香蕉| 男人的天堂VA| 欧美综合亚洲| 国产一区二区在线看| 精吧天堂| 久草久日| a啊啊啊啊啊啊啊啊一区二区| 夜夜嗷嗷一区二区| 日本三级韩三级99久久| 久久手机好看网站| 极品肉射| 日韩无码精品综合久久| 欧美经典一区二区三区 | 欧美性爱1080p| 久久永久无码人妻视频| 91成人无码| 天天爽天天爽| 无码一区二区三区四区五区六区七区八区九区十区视频 | 亚洲视频小说| 99精品视频在线观看| A级毛片在线看免费| 极品五月天噜噜| 青青草这里只有精品| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 大香蕉免费3| 欧美亚洲自拍另类人妻| 手机看片日韩人妻| 91蜜臀在线久久久久| 欧美v亚洲v日韩v最新在线二区 | 欧美,日韩综合久久| 懂色Av一区二区三区| 少妇超碰在线| 精品国产乱码久久久久久久| 97天天操天天干| 五月婷婷丁香六月丁香| 精品999999| 你懂的在线观看区国产| se吧提供国产乱老熟视频胖女人 | 亚洲诱惑天堂| 色欲久久99国产精品久久久久久| 人人爱人人乐人人操| 天天影视色香欲综合网小说| 久久久97| 啪一啪免费视频| 九热视频| 91色综合激情| 激情婷婷丁香网| 久久久九精品| 大肥女高潮bbwbbwhd视频| 涩涩涩综合| 久操热| 综合久久六月久久婷婷| 国产无马av| 91neishe| 88在线一区二区三区| A级片一区| 欧美特大黄一级片片免费| 久久久国产成人一区二区三区在线| 亚洲国产日韩欧美熟妇在线| 欧美美女在线高潮999| 亚洲情色 无码专区| 丝袜美腿91| 好爽视频在线观看视频 | 五月天大香蕉| 日韩精品三级片长长久久| 天天日天天看| 91精品伊人久久久大香线蕉91| 无码78| 美女诱惑一区| 超碰97日韩| 欧美在线天堂| 免费av在线播放二区| 成人资源中文字幕在线观看天天| 另类欧美综合| 99爱在线视频| 91日日| 欧美色就是色| 久久一级无码精品毛片6| 欧美性爱超碰97| 婷婷伊人五月| 国产后入精品| 九九九九九精品视频| 日韩成人精品视频自拍| 激情五月天社区| 中国小夫妻勾搭露脸淫荡对白| 欧美亚洲中文| 99热精品在线| 97chaopenrihan| 久久五十路熟女人妻| 国产精品久久久久久夜夜夜| 欧美色图 人妻| 亚洲在线网站| 亚熟在线| 波多野结衣AV无码一区| 亚洲午夜免费狠狠干| 新怡红院| 久久九九视频九九视频| 97超碰色情| 91精品免费| 一区二区娱乐网站| 亚洲天堂久久久久久粉红视频| 久久最新免费视频23| 在线A日本| 丝袜狂射91| 人妻欧美| 超碰天天操| 美女干逼2| 色婷婷九月| 人妻 欧美亚洲| 神马久久久久久伦理片| 97超视频在线观看| 九九九九热| 国产麻豆一级精品视频| 麻豆一区二区AV天美| 国模精品一区二区三区苹果色戒| 伊人性在线视频| 欧美 亚洲 偷拍自拍| 成人久久久精品| 久久五月天婷婷丁香中文字幕| 久偷拍欧美日韩三区| 99久久e免费热视| 97精品一区| www.久久99| 夜夜精品视频| 国产精品亚洲四五区在线观看| 日韩免费看在线黄色片| 久久极品一区二区| 插入逼91| 九九九九免费高| 亚洲日韩成人性爱视频| 啊啊啊轻点在线观看| 黄片com.| 人人澡人人干| 亚洲综合性感在线| 欧美激情中文字幕另类小说| 天天伊人| 91精品免费| 玖玖在线视频| 欧美v日韩v亚洲v最新在线| 久久久精品日本一道| 性久久久| 夜夜高潮夜夜爽夜夜爱爱一区| 欧美成人9797| 逼逼逼逼操操操操操操操操操午夜剧场| 欧美伊人电影| 五月婷婷激情综合| 中文字幕中文字幕一区二区| 1240青青草一区二区三区视频天爱| 欧美97在线观看| 欧美日韩第一页| 久久 精品| 青青草乱入乱欲视频在线观看| 啊a一区在线| 天天摸夜夜摸| 九九九久千久久激情蜜桃在线看 | 日韩欧美tv一区二区在线观看| 国产自产22区| 清柠毛片| 91处女在线观看| 女同性恋中文字幕| 美女97超碰| 亚洲精品三| 久久久99免费| 久久久久久久9| 劲爆欧美人妖三区91| 蜜桃中文字日产乱幕4区| 欧美十八禁网站| 欧美不卡在线一区二区| 91色欧美| 国产风韵犹存熟妇三区| 精品人妻视频一区二区三区蜜桃视频| 色婷婷影视| 色久综合| www.成人无码| 大色综合| 另类小说五月天| 久久av一级av少妇av高潮| 99在线免费公开视频| 操逼逼无码| 久久国产乱子伦精品免费女人| 长久操视频| 人妻在线大香蕉| 欧美日韩淫加| 天操天操夜操夜月操月年年操| 五月天久久久| 91丨熟女丨丰满熟女| 精品亚洲一区在线观看| 九九热三级片| 日韩精品人妻中文字幕有码午| 国产亚洲在线| 成人自拍三级在线观看| 高清无码久操视频| 97欧美| 极品少妇久久久| 亚洲狼狼干综合1| 99热精品在线观看| 日韩欧美视频青青| 午夜黄色免费在线观看| 天天视频综合在线观看视频| 一道α片欧美| 国产亚洲女v在线观看| 国产一区在线观看无码AV| 奇米四色网| 欧美探花网| 美女大乳久久久久久久女人18| 久99久视频| 日本一级一级一级一级| 国产天美欧美| 成人综合视频久久| 射丝袜大香蕉| 97欧美日韩精品| 天天拍夜夜| 夜夜骑日日| 狠狠爱夜夜| 超碰在线一区| 第四色奇米影视777| 国语国产操逼伊人AV网| 一类无码操逼视频| 亚洲av强奸乱伦| 五月丁香久久| 超碰激情808| 97超级欧美| 成人女人国产| 金典av| 欧美白嫩在线放| 国产欧美黑人丰满在线| 麻豆一区二区三区在线看| 97色综合中文网| 超碰免费人妻人人| 久久精品国产96精品亚洲拳交| 秋霞免费AV| 久久久久久久久成人av解说| 99re视频在线观看这里只有精品| 激情自拍 校园春色| 青青国产精品在线| 国产 日韩 欧美高清| 一区二区三区四区免费视频| 夜夜黄| 欧美专利1区2区3区4区5区免费| 久久精品国产99精品亚洲蜜...| 色汉综合| 日本精品加勒比海一区| 爱干爱射网啊啊啊| 国产日本久久免费精品| 黄色人人| 蜜臀Av一区二区三区| 校园春色美腿丝袜| 亚洲超碰AV| 天天综合91入口| CCYY草草影院地址入口| 日日干夜夜欢| 亚洲色图一区二区三区| 人干人人人操人人摸| 免费夜夜爱黄色视频毛片| 女人喷水视频在线观看| 加勒比中文av| 亚洲激情在线| 搡老女人老91妇女熟女| 热的中文 热的有码 热的国产| 久久超碰亚洲人| 午夜天天碰综合视频| 97精品国产97久久久久久| 操碰91| 欧美精品1区2区3区| 综合久久2017| 四虎免费在线观看| 久久精品熟妇丰满人妻99| 亚洲黄a三级三级三级看三级| 亚洲欧美骚| 久久久久9| 亚洲操操操| 免费av在线播放二区| 性色高清..……| 97人人夜夜精品视频| 日韩性色b| 久久精品操| 色伊人91| 婷婷97| 日本性一区| 无码精品久久久天天影视| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 精品一二三区久久AAA片| 成人天天看站长推荐| 韩国一级做a久久久久| 超碰成人免费| 欧美熟妇亚洲版| 摸奶性爱视频网站在线免费播放| 我要看免费韩日黄片| 日日日大屁股骚女人精品| 电家庭影院午夜69久久夜色精品国产69乱| 国产a片操逼| 最新亚洲风情电影| 女同女同恋久久级三级| 920日本午夜免费| 欧美综合天堂| 91校园春色长篇| 999国产精品999久久久久久| 亚洲欧美精品福利在线| 久久久精选| 中文字幕日本久久| 久久精品电影| 日本女人操逼| 日韩欧美三级| 超碰亚洲欧美日韩无| 久久久91福利姬| 免费一级毛片在线视频观看| 国产久9| 国产精品三级视频网站| 欧美亚洲清纯| 美女被艹尤物视频| 亚洲 欧美 第一页| 日韩情色视频| 无码高清少妇久久| 人人爽夜夜玩视频| 综合久久婷婷| 骚货操死你| 无码99| 澳门黄片一香蕉视频| 四虎AV无码| 午夜AV人气不卡| 久久久男人的天堂| 日韩欧美国产一区二区三区四区| 日本熟妇自慰性高潮一区二区三区| 操逼操操操91| 午夜性生活av免费在线看| 美欧老女人97| 思思热免费视频观看| 精品国产乱码久久久久久蜜臀| 日韩影片中文字幕一区二区三区| 国产亚洲精品av一区| 91日日| 人人做,人人操,人人摸| 青青草一区二区三区四| 日韩人妻少妇中文字幕| 无码操逼视频一下| 天天日天天屌天天操| 狠狠穞A片一區二區三區| 久久久啊啊啊| 91天天c| 青椒国产97在线熟女| 亚洲色阁| 久久精品国产久精国产| 中文字幕老熟妇黄色视频| 天天看天天干| 国产精品日日摸天天碰| 国产精品视频播放| 亚洲欧美999| 亚洲美女精品| 日本九九九九| TS人妖另类精品视频系列| 蜜桃臀一区二区aV| 久9久9精品| 91狼人| 国产精品无码久久久久2025| 亚洲风情在线观看| 自拍第一页| 中 文字幕一区二区三四 五 区日 日 骚| 国产成久久综合片| 久久大精品乱码视频人妻熟女| 日韩人妻资源在线看| 免费a在线播放v| 91东京热男人的天堂| 美女毛片999| 国产天美欧美| 91九色网| av黄图片在线观看| 中文字幕第2页| 99热这里只有精品1| 欧美成人综合| 青青草视频在线观看一区二区| 国产超碰人人操| 探花熟女,姿勢到位,體驗感也到位| 国产婷婷综合在线观看| 九久9精品| 九九九九热只有精品| 蜜桃狠狠色伊人亚洲综合| 色播综合| 黄片www.| 精…码一二三区| 国内一级精品| 怡红院成人视频| 极品AV网站在线观看| 精品久久久久久久久久久久| 一区二区三区四区姦女| 国产黄色av大片网站| 日韩美女操b| 91人妻中文| 岛国片在线视频网站| 亚洲欧洲日本精品中文a∨| 国产精品白丝| 97在线观| 成人怡红院| 囯产精品久久久久久久久久梁医生 | 少妇99| 99热国产精品| 极品粉嫩少妇视频| 国产热av| 999综合色| 综合久久99亚洲人妻中文在线| 九九热在线精品视频| 欧美国产操逼| 99热线麻豆| 97色欧洲| 麻豆亚洲AV成人无码久久精品| 伊欧美综合视频| 亚洲欧美日韩精品久久久一区二区| 久久鲁干| 色婷婷电影| 无码9区| 日本免费不卡二区| 日本精品性生活久久久| 激情四射婷婷六月天| 久热无码| 七久久久| 麻豆久久久久久久久丝袜| 国产免费大片| 久久久四区| 欧美精品日韩一区二区| 婷婷丁香六月| 久久伊人在线五区| 国产亚洲深夜激情| A级片日韩欧美国产欧美视频精选观看| av激情亚洲五月天| 中文字幕一二区二三区人妻专区| 亚洲AV成人无码一区二区三区在线观看| 五月婷色| 日本 免费 一区二区三区 久久香蕉| 久啪| 玖玖久久久| 乱伦一二三区| 人妻无码后入| 懂色Av| 亚洲三区视频| 久操热| 亚洲免费97免费| 成人精品水蜜桃久久久久久久| 国产2.3.4区| 中国一级αV| 一级久久久久久久久久久| 亚洲精品一区中文字幕乱码| 99国产精品久久久久久久成人热 | 中国特猛少妇色xxx| 很很操在线| 国产精品白丝在线播放| 美女AV一区二区| 国产视频三区四区| 999熟女精品| 国产传媒日韩| 亚一综合久久久久久久久久| 五月天激情小说| 久久综合久色欧美综合狠狠 | 精品人妻一区二区三区视频在线| 影音先锋日本乱伦| 九九九九九九九精品视频| 人妻天天爽| 色哟哟 日韩精品| 欧美很很操视频| 26uuu国产亚洲综合| 97久久视频| 超碰久久精品| 嫩草在线视频| 精品一区二区啪啪啪| 天天综合网91入口| 78超碰| 大伊香蕉在线视频免费| 偷拍亚洲高清图片| 四虎免费在线观看| 极品色www影院| 欧美专区第一页| 97在线播放 | 亚洲日韩国产欧美综合v| 国产乱弄免费在线视频。| 亚洲久9| 九九人人操| 亚洲极品| 嗯啊抽插大香蕉网页| 男人天堂日日夜夜| 三男一女不戴套的A片| 丰满人妻一区二区三区免费,| 怡红院网站在线视频| 欧美色视频在线| 成人黄页| 久久av一级av少妇av高潮| 插入逼91| 欧美少妇熟女| 日本不卡在线二区三区| 啪啪91| 美女91网址 | 激情五月婷婷| 蜜桃久久一区| 岛国大片国产| 四虎在线播放| 黄在线| 激情婷婷丁香网| 7777欧美成是人在线观看| 夜夜国自区| 日韩999| 久久东京热久久| 性爱乱伦视频免费| 色妹子A V| 大香蕉伊人75| 中文字幕在线播放2中文字幕在线观看2 | 91|九色|国产熟女| 国产大片精久久久久久| 一区二区三区免费视频入口| 国产丝袜视频| 五月天婷婷社区| 欧美性爱视频免费一区一A| 亚洲美腿丝袜香蕉影视欧美成人| 日本伦乱九九九综合| 少妇与黑人高潮在线| 美女啊啊啊啊啊啊| 欧洲免费一区二| 国产日韩欧美操逼视频| 青青草色插素人| 日本视频一区二区三区| 91黄射| 一级黄色性爱A级片| 欲香欲色天天天综合和网| 国产69精品久久久久99尤物| 精品人妻高清麻豆av| 五月天激情婷婷| 亚洲欧美成人网站AAA| 久久香蕉超碰97国产精品| blacked精品一区国产| 男人 天堂 日 亚洲| 乱伦3P视频| 一本一道久久综合久久| 麻豆人妻精品一区二区| 国产无吗在线播放| 91成人在线| 极品尤物在线观看| 中日韩免费看男女操逼大全| 欧美大战久久久伊人| 91狠狠综合久久| 国产日韩怡红院| 一级啊性爱在线视频| 午夜男女爽爽爽影院视频| 图片区小说区| 啊啊啊啊啊好多水| 久久久国产成人一区二区三区在线| 校园春色亚洲色图| 粉嫩国产精品久久粉嫩| 东京热男人的天堂| 夜夜国自区| 欧美日日网| 亚洲97久久精品亚洲| 久久九色| 色婷婷A V一二三四区麻豆综合| 国产精品天美传媒| 免费a级毛片av无码久久精品中文字幕| 日韩中文9| 日本一片一区| 神马久久久久久伦理片| 日韩精品-原创伙伴| 国产精品亚洲免费| 在线αⅴ| 91男人天堂网| 91黑丝美女| 日韩精品高清资源在线| 99在线精品观看99| 欧美日韩国产高清在线一二三区 | 国产精品一区二区三区,亚洲综合| 啊啊啊好舒服视频| 欧美综合综合| 五月天亚洲网| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 欧亚乱色熟女一区二区| 超清福利精品视频在线| 伊人少妇久久久| 好爽免费视频,| 荡小穴在线观看| 天天爱天天韩国日本牛牛牛牛| 欧美黑人精品一区二区| 操逼www.| 国产日韩在线播放av| 校园春色综合网| 天天日天天干少妇日| 漂亮人妻被强中文字幕hd| 亚洲清纯唯美| 嗯嗯啊啊啊啊轻点视频| 超碰夫妻97| www.狠狠干.coom | 91色人妻| 丰满人妻一区二区三区四区| 精品无人区麻豆乱码1区2区图片| 美女网站黄页| 丝袜美腿校园春色| 久久久久久久久久久久久久久性生活视频 | 99日视频在线免费| 四虎视频在线观看| 精品视频123区小说区| 天天日老熟妇| 婷婷成人久久久精品| 亚洲无码色| 艹比视频国产精品| 8050无码八戒| 亚洲精品国产专区在线观看| 日韩精品在线视频在线观看| 日韩av免费一级电影| 99在线无码精品秘 入口黑人| 人妻中文字幕精品无码| 欧美性爱中文字幕无线码| 蜜乳AV一区| 中国女人内射6XXXXX| 国产精品成人无码av无码免费| 欧美黑人精品一区二区| 国产亚洲在线观看| 992这里有精品| 有码人妻系列| 色哟哟-国产专区| 日韩精品人妻中文字有码在线| 插B在线观看| 亚洲熟女诱惑| 亚洲AV无码秘 蜜桃臀国精产品| 不卡av免费在线网址| 亚洲乱码精品一区二区| 正在播放国产精品一区| 91东京热男人的天堂| 国产AV久久野战精品| 综合欧美日本三级| 天天看少妇| 久久精品国产99国产精品亚洲| 熟女一区二区| 亚洲的天堂网| 久久超碰网| 中文字幕精品探花视频| 少妇干B| www.久久99| 欧美在线色图| 亚州欧美在线| 欧亚无码视频| 国产精品探花视频| 久久久无码av精| 免费中文在线| 久久精品国产72国产精品福利| 最新啪啪视频| 日本一二区免费| 99热这里只有精品1| 亚洲色欧美| 欧美日韩国产三级黄色| 99热伊人| 日韩久草| 亚洲天堂男人的天堂| 最新的亚洲无吗| 97最新在线播放视频| 成人精品电影| 青草精品视频一日本久久久久网站| 欧美亚州综合网图片| 人人操人人摸人人看人人干| 久久久久免费少妇| 欧美亚洲涩涩| 超碰免费97| 国产激情久久久| 男人精品天堂一区| 国产亚洲色停停久久99精品91| 精品成人亚洲午夜电影| 青草青青久久久久久国产| 久久婷婷苹果| 午夜一区二区三区国产| www老逼91| 一区二区视频在看| 色情乱伦AV| 激情综合五月天| 国产九九久久久精品| 性欧美91| 色综合九九| 久久熟女久| jazzjazz国产精品麻豆| 高清无码网址| 久久亚洲一区二区色婷婷| 国产成人免费观看在线视频| 偷拍欧美综合| 亚洲AV永久无码精品成人调教| 国产精品久久久吖| 91精品国产综合久久久蜜臀| 日日夜夜骑| 国产精品久久久久久久久AV大片 | 久草成人福利导航| 精品天堂| 久99久视频| 综合性视频99| 福利在线观看一区二区| 欧美久久婷婷| 97日韩欧美亚洲| 午夜偷拍久久熟女| 91高跟美女在线播放| 99久久久久久亚洲精品不卡| 91女在线观看| 天美传媒麻豆一区二区三区国产精| 亚洲 欧美 手机在线观看| 精品9区| 淫荡少妇免费| 久久九精品| 欧美一级久久久丰满| 麻豆国产成人精品| 久久久久久电影| 欧美性爱一区| 日韩av无码网站| 久久国产三区| 欧美成人一级麻豆| 亚洲熟妇丝袜在线观看| 性无码专区2020| 91久久18禁| www亚洲免费| 91黑丝操| 国产精品亚洲免费| 亚洲图片 欧美电影| 黄页网站免费高清在线观看| 欧美青青视频| 五十路六十路七十路熟婆| 和协影院中文字幕三区| 国产熟女完整版中字| 偷拍综合亚洲| 另类在线| 欧美综合天堂| 99热超碰| 欧美综合另类| 2025亚洲男人天堂| 国产精品ⅴ无码大片在线看.| 啊啊啊要高潮了| 日本3级一区二区免费| 久久在肏| 夜夜操av亚洲一区二区| 一二三四视频中文字幕在线看| 亚洲欧美国产va在线| 五月婷婷丁香| 69国产对白刺激| 久久水蜜臀亚洲AV无码精品| 婷婷激情五月天小说网| 后入精品| 日逼五月天| 国产亚洲性生活视频播放| 欧美日韩亚洲五月天婷婷| 337p大胆噜噜噜噜噜91Av| 婷婷午夜清品久久久久久久性色视频观| 国产馆极品诱惑| 欧美色图99| 久久天天摸| 日本成人电影资源网| 曰韩少妇无码| 色一射色一射| 亚欧视频在线| 69一区二区三区| 亚洲熟久久| 色999人与兽| 亚洲第一狼人丝袜美女另类| 黄色成年| 人妻 欧美 中文| 国产欧美一区激情交| 不卡中文字幕aⅴ在线| 亚洲AV在线资源| 91欧美高清| 岛国视频免费在线观看| 美女久久久久久久久久久| 97精品久久久久中文字幕| 曰韩欧美国产传媒麻豆第一区| 欧美日韩日产免费网站看| 欧美 亚洲精品首页| 日本九九久久99| 人妻少妇精品一区二区三区| 国产精品免费1区2区视频| 欧美日韩人妻精品系列一区二区三区| 偷拍欧美综合| 久久亚洲精品成人av| 台湾佬大香蕉| 伊人精品国产| 欧美色一二三| 麻豆60秒| 国产成人在线观看综合| 国产一区二区a毛片| 96精品久久久久久久久| 欧美丝袜91| 夜夜操夜夜高潮夜夜爽国产精品区| 天天干天天操天天拍| 熟女精品一区二区三区| 日韩免费在线视频观看| 久久无码精品| 国产尤物在线三区| 久久偷偷色综合蜜桃| 白丝AV网站| 香蕉热人人精品| 亚洲天堂五月天国产| 91亚洲欧洲| 97超碰色情| 欧美黑人日韩少妇色情| 91成人国产综合久久精品蜜月| 日韩有码一区三区| 久久91视频| 翔田千里爆乳巨臀无码| 91亚洲在线| 天美精品一区二区三区四区在线观看| 超碰三级秋霞| 欧美日韩操操操| 欧美天天综合在线| 96超碰网| 噜噜噜亚洲精品| 九九九九九用不成了| 狠狠亚洲| 狠狠爱夜夜干| 高清不卡国产| 大香蕉 222| 台湾佬中文娱乐自偷自拍| 成人激情无码在线视频| 国产人伦a片信息免费片| 日韩欧美中文| 中文字幕一区二区日韩网| 亚洲AV麻豆Aⅴ无码电影一| 亚洲欧洲成人在线电影| 午夜精品久久久久久久久久久久久| 亚州综| 国产精品久久| 任我爽视频在线观看| 亚洲成人精品久久久| 综合天天网| 婷婷另类小说| 91天美传媒在线观看| 丝袜综合| 超碰人妻中文在线| 2026国产精品视频| yazhouzaixian| 91A欧美电影网站| 97免费在线观看| 新久久AV| 精品一国2| 精品九九淫乱男| 极品少妇久久久久| 99re视频在线播放青草| 中文区中文字幕免费看| 999熟女精品| 2017天天操天天日| 91丝袜| 久久精品国产亚洲AV清纯| 欧美成熟性爱精品| J?P?NESEHD熟女熟妇伦| 久久精品久久九九精品| 色噜噜精品一区二区三| 欧美三级中文字幕hd| 色婷婷激情| 成人色女网| 欧美色图自拍| 亚洲男人天堂AV| 天天插夜夜操| 伊人婷婷五月天| 亚洲熟妇图片| 加勒比av官网在线| 亚州综合网| 欧美日韩黄片精品在线|