久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

ThinkPHP+FastAdmin+uni-app上門(mén)預(yù)約系統(tǒng)源碼拆解與二次開(kāi)發(fā) 簡(jiǎn)介一套基于ThinkPHPMySQLuniappFastAdmin后臺(tái)開(kāi)發(fā)的上門(mén)家政按摩H5小程序與預(yù)約系統(tǒng)源碼面向需要快速落地同城O2O上門(mén)服務(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í)同城上門(mén)預(yù)約類項(xiàng)目的實(shí)用參考。1. 上門(mén)預(yù)約系統(tǒng)到底解決了什么問(wèn)題一套三端代碼的本地生活服務(wù)樣板做本地生活服務(wù)的人應(yīng)該都有同感用戶端想要小程序順手還能分享H5管理端要能派單、能結(jié)算、能調(diào)整服務(wù)價(jià)格兩頭都不能少。這套基于 thinkphp mysql uniapp 組合的上門(mén)預(yù)約系統(tǒng)把幾個(gè)端一次性湊齊了——前臺(tái)用 uni-app 生成微信小程序和 H5后臺(tái)用 fastadmin 搭好了管理界面服務(wù)端用 ThinkPHP 寫(xiě)接口MySQL 負(fù)責(zé)訂單、技師、用戶、地址這些核心數(shù)據(jù)。對(duì)想快速上線上門(mén)家政、按摩、保潔這類業(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ì)上門(mén)預(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、地址、期望上門(mén)時(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ì)專門(mén)講這個(gè)改造。3.3 附近技師查詢一段基于經(jīng)緯度的派單 SQL派單是整個(gè)上門(mén)預(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)派單仍然正常。兩條路徑都通改造才算完成。拆這類源碼最值錢(qián)的地方其實(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)澛?。希望這份拆解和改造思路對(duì)你也有用。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲色啪| 国产精品无码av| 亚洲精品国产AV天美传媒| 午夜久久无码1000合集| 国产精品不卡高清在线观看| 女人18精品一区二区三区| 久久精品老司| 青娱乐 成人娱乐在线| 久久精品国产亚洲AV无码电影| 色婷婷国产精品一区在线观看| 夜夜精品视频一区二区| 中文字幕人乱码中文字的预防方法| 日本高清电影欧美色图| 国产精品国产拍高清AV| 日本肉体xxxx裸交| 国产偷拍自拍在线视频| 日韩AV熟女乱伦| 狠狠色噜噜狠狠狠狠2018| 亚州性色| 欧美色图99| 伊人国产成人av网站| 69超碰综合| 999岛国大片| 亚洲一级性爱视频免费看| 日韩肏逼视频| 校园春色综合网| 精品人妻一区二区三区四区| 亚洲黑丝在线| 日本道久久综合色色| 岛国大片在线观看网站入口| 色乱二区| 国产精品久久久久亚洲av| 人妻夜夜爽天天爽三区麻豆AV网站| 久超碰这里只有精品| 日韩天天本| 97爱爱影院| 91逼逼女人91| 丰满人妻一区二区三区四| 超碰AV在线| 操逼逼无码| 伊人五月天激情| 天天做日日做| 成人激情无码在线视频| 国产91乱伦| 性爱综合一区二区| 无色无码| 國產尤物AV尤物在線觀看 | 国产不卡片| 天天日天天爽| 久久黄色网址| 91丝袜美腿网站| 夜夜嗨一区二区| 嗯嗯啊啊视频在线看| 国产13区| 综合亚洲网| 99久久9| 久久一二三四五六七八九区区| 亚洲熟妇丝袜在线观看| 日夜久久久九九九久| 国产性刺激| 一及黄久一点| 色婷婷婷五月天激情四射| 欧美超碰96| 欧美一区二区日韩传媒搭讪精品| 久草色悠悠在线视频| 激情欧美97| 亚洲黄色影视| 五月天综合| 一本久道久久综合狠狠爱| 五月天精品| 婷婷丁香六月天| 日韩啪啪啪啪啪| 920日本午夜免费| 9九九九九视频在线观看| 蜜臀久久99精品久久久老,,| 搡老女人老妇女老妇老熟女怎么读| 美女尤物福利视频| 色噜噜国产在线| 求求你操操我| 亚洲怡春院| 97在线/亚洲| 国产精品熟女一区二区三区| 欧美经典一区二区三区| 色婷婷久久| 亚洲欧美精品一区天堂久久 | 亚洲色婷婷久久91| 色在线亚洲视频www| 手机在线中文字幕国产| 超碰人人超在线观看| av中文在线| 日本在线不卡123| 久久男人网| 在线免费试看60秒| 97碰碰色| 成人午夜高潮av猛片| 久久综合亚洲色1080p| 日韩欧美午夜视频在线| 久久人妻视频网| 久久九九一区二区三区成人| 四虎影视永久在线观看精品免费网站 | 国产专区第一页| 亚洲中文字幕精品久久久久久直播| 亚洲成人在线播放| 91中文精品日韩欧美在线| 少妇色综合| AV有码在线| 无码人妻精品酒店| 日韩乱伦影音先锋| 亚欧精品久久久久久久久久久| 亚洲综合在线高清| 欧美丰满少妇交换91欧美精品| 97在线免费视频观看| 天天爽夜夜爽夜夜爽精| 99爱视频| 91强在线播放| 欧美色性情| 啪啪资源网| 亚洲人妻一区二区三区| 伊人亚洲综合| 欧美综合自拍| 黄色大香焦1级‘′‘| 丁香六月天| 97久久久精品| 妇女一区二区三区| 国产专区第一页| 成片免费播放| 黑人精品久久97| 精品久久97| 亚洲伊人a线观看视频| 色墦五月丁香| 伊人久久亚洲中文字幕不卡| 好吊色综合| 91碰超| 麻豆天美国美国产AV| 天天天天天天天天综合| 91亚洲电影| 免费在线观看国内色片网站网址| 亚洲精品一二三四区| 天天影视之亚洲综合网| 人人玩人人添人人澡免费| 狠狠爱综合| 成人天天看站长推荐| 日本欧美不卡| 欧美很很操视频| 91天美传媒精品| JuliaAnn丝袜熟女系列| 国产aⅴ无码片毛片一级网站| 久久99操天天日| 新视频sss国产| 精品无码欧美三级| 国产精品一二三区福利| 亚洲色图第一页| 三男一女不戴套的A片| 久综合网| 亚洲中亚日激情视频| 超清福利精品视频在线| 久久精品人体| 久久夜夜| 激情99| 日日干夜夜欢| 日韩免费看在线黄色片| 中文字幕在在线观看网站| 日本 情色 1区| 色网在线视频观看免费| 久久夜嗨| 久久欲| 久久久久成人蜜桃精品| 欧美性爱一区二区三区| 免费人成?大片在线播放| 亚洲日本加勒比在线| 亚洲欧美中文一区二区三| 国产动漫操逼视频| 日日日大屁股骚女人精品| 亚洲97在线观看| 99色色网| 美女91网| 国产极品美女高潮无套在线观看| 亚洲城人男人的天堂| 特色a在线上| 色综合色色| 91AV国产精品| 黄aaaaaaaaaaaaaaaaaa色网站| 无码视频一区二区| 2020中文在线一区二区三区| 欧美白嫩在线放| A级国产欧美激情在线| 最新加勒比丝袜在线| 男女国产精品| 亚欧精品久久久久久久久久久| 一本色道久久综合狠狠操| 成人网站 免费观看| 久久久性爱视频| 国产传媒午夜理伦精品| 91成人国产综合久久精品蜜月| 国产精品午夜福利亚洲综合网| 亚洲精品丝袜| 正在播放国产精品一区| 爱妻综合网| blacked精品一区国产| 久偷拍欧美日韩三区| 九月丁香婷婷色| 91激情综合| 黄片免费久久久久久久| 2020天天色综合| 色婷婷久久| 色图四区| 欧美最婬乱婬爆婬性视频 | a天堂视频| 亚洲综合校园春色| 91精品无码人妻系列| 大干人妻| 99色热| 青娱乐黄色录像| 97干日韩| 日日操丁香五月天| 91熟女视频网| 97久久精品亚洲| 蜜臀一区二区三区在线| 精品97精品97| 国产综合网站在线播放| 欧美 亚洲精品首页| 偷拍欧美综合| 俄罗斯一区二区视频在线观看| 亚洲资源网| 中文字幕狠狠玩| 久热这里只有精品9| 久久女人一区二区三区| 男女性无套 免费九一| 蜜臀AV成人精品蜜臀| 中国一区二区亚洲人妻| 欧美激情在线观看视频| 久久超碰、| 亚洲成a人在线观看久| 天天综合网视频91| 级做a爱无码性色永久免费| 最新av在线| 亚洲AV成人无码一区二区三区在线观看 | 97久精品| 国产精品久久久久久照片| 欧美熟女逼久久久久久| 大香蕉免费中文| 成人一道本免费视频| 四虎在线观看网站| 少妇无码太爽| 国产色呦呦| 亚洲丝袜综合| 97视频www| 九九热精品视频在线观看| AⅤ片水多多| 久久人体一区二区| 日韩99神马视频播放片在线播放| ..日韩av毛片精品久久久| 中文字幕第7页| 亚洲 图片 欧美 色图| 福利色色| 91大神精品长腿在线观看网站| 亚洲日韩少妇一道本视频| 中文字幕 码精品视频网站| 色视频蜜乳| 五月天人妻综合| 婷婷伊人一区| 午夜精品久久久久久久99蜜桃一| 天天看夜夜看日日干| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 精品99999久久久久久| 久久综合亚洲色1080p| 婷婷激情四射| 国产性爱欧美性爱在线| 操狠狠| 国产中文精品一区二区在线观看| 清纯唯美亚洲综合| 肉丝中文无码高清| 超碰性爱97| 夜色五月天| 99性爱在线观看| yiqicaoav| 欧美成人精品一区二区男人蜜臀 | 麻豆天美传媒毛片| 久久久月天| 午夜欧美神马久久久久| 插入综合网| 影音先锋中文字幕日本好一区二区| 亚洲欧美999| 人人天天欧洲| 一起草精品人妻| 国产欧美精选自拍一区| 大肥女高潮bbwbbwhd视频| 亚欧美色图| 躁躁日曰躁2020| 日韩在线女优天天干| 另类专区在线观看| 国产97视频免费观看| 强奸乱伦免费网站| 亚洲中文字幕在现观看| 熟妇女伦乱视频| 欧美亚洲韩国视频十五区| 97超级欧美| 丝袜熟女2P| 美日韩成人| 人人摸人人添人人操| 国产精品福利资源在线尤物| 国产97视频| 麻豆一区二区三区在线看 | 欧美亚州手机在线| 这里都是精品在线观看| 亚欧性爱ab| 在线欧美69V免费观看视频| а√天堂资源官网在线资源| 四虎精品永久在线播放| 97欧美综合| 亚洲中文字幕av| 日日干夜夜骑| 韩日精品福利视频一区不卡在线免| 少妇一区二区三区在线观看| 免费看污网站| 人人爽夜夜操| 第四色亚洲色图| 国产精品久久发布| 日韩欧美麻豆大片| 在线女人91| 欧洲天天在线| 日韩欧美亚洲国产日韩| 亚洲91少妇| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 99这里有精品| 色99在线| 东京日日夜夜| 中文字幕在线观看丝袜| 香蕉在线一区二区三区| 旡码电影特区| 国产精品 午夜福利| 欧美第38页| 人妻天天爽夜夜爽精品2| 久久9亚洲| 美女露胸露奶头| 亚洲熟女国产综合另类| 午夜久久一区二区无码中出| 综合 青草 伊久久 影院 综合| 日韩一级二级在线| 欧美 日韩 另类 亚洲| 精品人妻一区二区乱码一区二区| 一区,二区,三区视频| 久久99精品九九久久久婷婷| 色九九综合AV| 天堂av最新电影网| 国产成人五月天丁香花| 超碰在线一区二区三区| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 亚洲丝袜B诱惑| 国产AV天美| 日本啊啊啊啊啊视频| 一本一首道人妻少妇免费久久| 亚州高清色综合| 懂色av中文字幕一区二区三区天美 | 日韩性爱啪啪视频| 熟女乱伦A| 天天看,天天做| 天天干美少妇一区| 自拍盗摄一区| 欧美,亚洲,日韩,v,天堂,手机在线观看| 久肏视频字幕| 亚洲超碰97| 欧美激情性久久久久久| 亚洲砖码砖专无区2023| 成人短视频在线观看| 久久久艹艹艹| 久久夜夜夜| 欧美日韩国产精品久久色婷婷| 蜜臀久久久99久久久久 | 亚洲国产日韩欧美熟妇在线| 超碰亚洲欧美日韩无| 欧美老妇综合网| 岛国不卡超碰护士AV在线播放| 日韩天天综合| 20cm女自慰在线日韩欧美| 精品中文字幕第一页| 久久久久国产精品片区无码直播 | av天堂天堂av日韩| 色欲天天综合网| 大香蕉 222| 91强在线播放| 美女高潮国产高清| 国产精品美女久久久久AⅤ国产馆| 久久高清欧美国产| 精品久久久久,69国产成人精| 婷婷另类小说| 操死我了啊啊啊| 干B网| 性videos欧美熟妇hdx| 91艹B视频| 亚洲成人av色网| 麻豆伊人网| 日产精品久久久一区二区| 免费家庭乱伦视频| 丁香色色网| 欧美丝袜激情| 97美日韩视频| 一本一道波多野毛片中文在线| 超碰av在线| 日韩三级在线观看mp4| av草草在线电影| 熟女乱3伦999| 激情五月综合| 伊人在线大香蕉视频久久| 91欧洲国产成人久久精品网站| 久久久亚洲欧美综合| baisiav| 亚洲久久东京热一二三四五区视频| 欧美综合亚洲综合| 日韩欧美字幕亚洲一区二区| 久久AV无码1区2区3区| 加勒比综合在线| 欧美一级特黄淫片在线观看| 色97| 欧美综合色| 国内毛片国产欧美拍| 人妻AV在线| 小骚逼被操的爽不爽| 久久久97| 五月丁香激情综合网| ai欧美亚洲小说| 久久久999| 丁香五月性| 国产第二页| 天天做天天爱夜夜爽毛片试看| 操逼日韩无码 | 97超碰精品成| 强奸乱伦AV网址| 天美国产三级传媒| 亚洲情色 自拍| 岛国片国产成人亚洲播放| 天天综合网91入口| 亚洲欧美综合| 女优免费一区二区永久| 久久禁| 性爱Av免费| 黑丝少妇麻豆| 一区二区三区四区理论片| 亚洲Av无码成人精品国产| 97视频7| 探花视频免费观看国产专区| 长长久久88视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产18精品亚洲精品| 足交视频老司机| 日韩欧美午夜一区二区| 亚洲日本男人天堂网| 夜色综合| 嗯嗯啊在线视频| 久久久免费高清中文视频| 91人妻素女| 都市激情人妻一区二区青青操视频| 88xx成人精品视频| 国产精品熟女AV中文字幕在线播放| 日本三级精品| 香蕉久久国产AV一区二区| 人妻少妇久久| 日本欧美亚洲高清在线看| 99久热精品99re6热| 亚洲 小说 欧美 激情 另类| 中文字幕版| 20cm女自慰在线日韩欧美| 亚洲一卡二卡在线免费| 天天操天天射青青草| 日韩97| 欧美日韩国产传媒在线精品| 国产400孕妇孕交群| 色五月婷婷网| 好爽免费视频| 91人妻视频在线| 男女无套 免费网站| 99热色这里只有精品| 精品99999| 亚洲不卡不卡中文字幕不卡| 欧美成熟性爱精品| 91夜夜蜜桃臀1区2区3区| 岛国黄片网站| 日韩精品人妻中文字幕久久久| 操操逼视频| 欧美 亚洲 另类 综合| 亚洲成人免费中文字幕| 美女骚尻视频| 99久久九九| 精品欧美乱码久| http://qxhbdz.com| 久久久新亚洲AV| 久久超碰亚洲人| 免费人成在线观看网站品爱网| 青女在线| 强奸乱伦大香蕉网| 欧美啪啪天堂| 亚洲 欧美 中文 日韩超碰 | 国产精品久久久亚洲一区| 国产精品精品系列在线观看| 91麻豆天美传媒HD| 男人高清无码一区二区| 亚洲欧美天| 男人天堂一区二区| 欧美岛国精品在线观看| 精品国产国产AV| 久草网站免费在线观看| 另类欧美综合| 中文字幕av久久爽Av| 日韩性爱毛片操骚逼| 97久久国产亚洲精品超碰热| 久久综合婷婷| 日韩av性爱在线播放| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 色姑娘综合网| 天天射夜夜| 99九九精品| 免费观看日本操逼视频| 久久久九九九九| 十八禁啪啦拍视频无遮挡| 嗯嗯啊啊啊好爽| 极品粉嫩一区二区| 欧亚乱色熟女一区二区| 欧美加勒比| 综合天天网| 欧美精品999| 日韩性爱小视频| 亚洲高清在线se| 亚洲天堂综合AV| 国产日韩色综合| 欧美综合色| 色呦呦、国产精品| 96久久精品一二三区色欲| 伊人加勒比| 999 久久久| 亚洲天堂,男人| 男人天堂黄片| 日逼97| 日韩精品操少妇| 国产99 中文字幕日韩小视频| 日韩精品在线视频,日韩精品……| 亚洲男人综合网| 欧美色五月| 日韩精品一区二区日韩| 91精品91久久久中77777| 日韩,欧美,中文在线| 91bbb| 亚洲s色图| 亚洲美乱| 天天干天天狼在线视频| 成人小说另类在线| 情色大香蕉| 亚洲和欧美裸体美女双飞视频| 99热官网| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 丁香九月激情| 国产精品视频麻豆入口| 亚洲色图亚洲| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲黄色网址视频| 黄色成人网久久久久久| 97久久久久| 九九av| 久久夜色一区二区| 婷婷五月影院| 丝袜熟女一区二区三区| 国产一区二区在线播放量| 狠狠躁伊人中文字幕| 四虎在线免费视频| 久久中出在线| 精品夜夜澡人妻无码| av国产无码| 中日亚韩免费视频| 日韩字幕一区| 天天射夜夜操| 久一区久久蜜桃| 天天情欲宗合网| 日韩情色AV| 国产四虎在线| 欧美亚洲综合色| 伊人色综合网电影| 欧美性爱三区二区| 成人一级性爱| 欧美人人操人人插| av三级电影在线播放| 久久久久99精品成人片蜜臀| 好爽要喷了| 偷拍片久久| 久久久网一区| 青青草五月天| 亚欧中文字幕在线视频| 视频在线观看一二三区| 色色色色色色色色色色色色色色综合 | 色悠久| 无码人妻一区二区三区四区老鸭窝| 欧洲精品欧洲精品| 欧美91网站| 自拍二页| 日韩人妻无码精品系列| 亚洲色图a| 日本不卡码黄色| 久久久久久久久久久97| 婷婷色一区| 懂色AV一区二区三区| 95人妻爽爽人人做人人澡| 久久久久9| 色婷婷导航| 人妻熟女av国产网站| 精品一二三区久久AAA片| 大香网站| 亚洲Av无码成人精品国产| 久草网站免费在线观看| 中国女人内射6XXXXX| 青娱乐国产精品| 欧美肥臀在线| 国产熟女自拍| 91M一社| 97伊人超碰| 成人区人妻精品一| 91亚洲情色| 97国产超碰| 免费精品无码一级毛片牛牛影视| 精品无码久久久久久久杏吧| 国产精品点击进入在线影院高清| 亚洲日韩av专区无码| 亚洲黄片免费在线播放| 久久综合国产精品国产| 久久一区二区高清免费| 国产成人精品日本亚洲语言| 五月婷婷性爱| 丰满欧美少妇| 禁十八久久| 欧美aⅴ99久久黑人专区| 激情五月天校园春色网| 欧美日韩国产色五月综合在线| 日本在线15p| 精品传媒在线一区| 偷拍 欧美 日韩| 岛国片在线播放| 美中日韩无码| 天天综合精品| 韩日男人的天堂| 91美女色视频亚洲| 亚洲交换| 久久69| 国产在线能看的你懂的| 超碰在线香蕉| 亚洲综合九九| 青青草日逼视频| 99色骚| 青青青草原| 久一区久久蜜桃| 日韩字幕一区| 手机在线看片免费人成视频| 日本大片日本一区二区免费高清| 啊啊啊好湿国产一二| 搞中出视频在线观看| 日日玩天天干| 国产捆绑一区| 家庭乱伦网站国产| 男人的天堂2019AV| 99啪啪| 91n.欧美| 亚洲国产精品成人久久蜜臀| 免费精品中文字幕| 欧美日韩91| 中文字幕av久久爽Av| 国产热av| 中文字幕一区二区视频在线观看 | 超碰97色色| 国产熟码AV| 大象AV在线| 欧美日韩性爱无码| 亚码激情| 日本久久999| 国产精品夜夜| 久久久久亚洲AV无码专区少妇| 色婷婷色99国产综合精品| 在线人妻熟女一区二区三区四区五区| 黄色一区三区| 亚洲欧美日韩免费观看| 爱av免费| 91色噜噜狠狠| 超碰97极品9| 狠狠色噜噜狠狠狠狠2018| 一级免费啪啪片| 久久精品一区| www欧美91| 久久久久久电影| 志村玲子视频一区二区| SUV一区二区在线看| 亚洲高清自拍| 无码视频黄色网战| 刺激精品视频| 天天爽天天操啊啊啊| 淫荡熟女乱伦网| 成 人 影视 一区 二区 三区 四区| 曰韩少妇无码| 操屄日韩| 精品人妻伦一二三区久久| 久久国模av| 亚洲国产97| www色日本| 超碰97最新人妻| 欧美午夜色妇色鬼| 成人三级片一区二区三区视频| 色欲无码人妻日韩欧美精品| 日韩99神马视频播放片在线播放| 无码精品啪啪啪一区二区三区三州| 999久久久免费精品国产牛牛| 国产亚洲综合欧美一区| 亚洲天天影视色综合| 婷婷伊人五月| 日日日日日| 九九九只有精品| 国产绿奴视频在线观看| 欧洲中文字幕| v91av| 操婷婷逼| 久久久免费懂色| 欧美中文字幕日韩在线| 99re9在线| 日韩精品三级| 午夜黄色免费在线观看| 欧日韩在线观看| 免费国产电影一区二区| 91N欧美| 久久东京热成人| 欧美日本国产日韩激情视频| 日本东京热大香蕉a片| 日韩性爱一级片| 韩国久久97| 亚洲成成熟女人综合一区二区| 美国一区二区免费视频| 日韩欧美偷拍美女视频| 亚洲天天做日日做天天谢日日 | 91爱啪| 玖玖婷婷五月天| 97国产综合欧美| 亚洲精品无码成人久久久99| 欧洲一区二区三区免费| 天天射天天操天天干天天吃2018| 口爆综合网| 天天干人人乐| 九月丁香婷婷| 久久久久久人体| 三级片网站在线播放| 97亚洲国产| 国产第25页在线观看| av72网| 日韩卡一卡二卡三在线| 欧美日韩国产电影| 国产三级在线现体验区| 欧美亚洲影视| 五月天久久综合网| 日日A∨| 粉嫩av久久一区二区三区| 午夜成人福利影视| 少妇熟女1区2区3区| 日韩AV中文字幕电影| 国产免费黄色一级大片| 刺激性视频黄页| 日本黄大片在线观看视频| 亚州成人A√| 日韩三级在线观看网站| 欲色影视综合吧| A级毛片在线看免费| 日韩ab网 | AND人妻系列| 人妻偷拍一区二区三区| 久久綜合很很很| 亚洲国产尤物yw在线观看| 我中文字幕6区| 夜间福利片1000无码| 日韩丨制服丨中文|在线| 人妻99p| 日韩成人小视频| 午夜丁香| 欧美一二三| 99热这里只有精| 男女猛烈无遮掩视频免费软件| 久久精品国产99国产精品亚洲| 高清无码一区二区三区| 伊人久久亚洲色欲综合网站 | 亚洲网站一区二区在线| 欧美 综合| 国产91精品福利在线| 色九九九九九九| 天天爱天天韩国日本牛牛牛牛| 无码天堂| 一区二区不卡| 成人性爱全视频观看| 欧美色图另类图片| 色穴精品| 国产操逼视频在线观看| 中国的操老妇女| 五月丁香影院| 97香蕉网| 精品乱码久久久久| 成人免费在线网站| 久热热| 四季AV综合网址| 日韩免费大片一级播放| 亚洲中文字幕av| 一牛影视久久久一区二区三区| 日韩综合成人免费视频| 色综合1991| 玖玖人人爱| 久操com| 超碰 欧美| 欧美第一页性| 国产精品久久久久久无码红治院| 亚洲做性| 另类亚洲图色| 丁香六月东京热| 日韩大香蕉| 久久久久大香青草精品综合| 婷婷91| 日本αv| 日韩丨制服丨中文|在线| 超碰97起碰| 亚洲 自拍偷拍 欧美| 亚91网| 黄网站黄视频网站进入口| 自拍偷拍 日韩无码| 九九热九九| 老熟妇一区二区三区啪啪| 激情久久久| ji熟女.com| 亚洲欧美碰碰| 青青欧洲黑| 乱精品一区字幕二区| 精品国产91av一区二区三区| 超碰97伊人| 久久久∴| 女优免费一区二区永久| 亚洲一区二区久久久久| 天天干18禁| 亚洲综合一| 久久手机视直播| 3p国产欧美99热| 自拍偷拍第26| 91综合无码| 99精品人人爽| 美女露胸露屁股| 簧片免费看视频| 日韩无码精品综合久久| 蜜臀99久久国产| 精品九九淫乱男| 91老司机在线视频免费观看| 国产情侣自拍在线播放| 国内精品久久人妻性色av| 无码粉嫩白虎一线天b区| 97在线青| 欧美日韩国第一区| 日本黄 R色 成 人网站| 国产又黄又爽又刺激久久久久久| 麻豆成人影音在线| 久操av在线| 日本啊啊啊啊啊视频| 成人欧美一区二区三区黑人一| 99精品欧美一区二区三区桃色| 欧美激情久操网| 欧美性色欧美| 色偷偷超碰亚洲| 欧美另类自拍 | 日日噜噜夜夜狠狠视频无| dy888午夜老子影视达达兔| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 亚洲AV无码成人精品久久| 日韩簧片免费看| 丁香七月婷婷| 亚洲高清91| 精品无码一区二区三区| 蜜屁Av| 狠插 制服 自拍| 色噜噜综合在线| 久久婷婷伊人| ?亚洲伊人伊成久久人综合网| 久久五十路熟女人妻| 美国日韩黄片| 麻豆精品一区二区三区四区免费观看| 看看日B真人视频| 久久久九九九九| 欧美曰韩国产精品| 日韩精品三区四区| 97人肏| 蜜臀国产AV中文字幕| 极品色www影院| 性做久久久久久久| 性爱边摸边日免费AV| 国产精品蜜臀久久久久无码AV| 欧美在线91| 欧美高清第一页| 国产精品久久久久久久久久久久久久吹| 亚洲美腿丝袜香蕉影视欧美成人| 日韩中文9| 无码人妻系列少妇| 国产女人9999| 激情综合网一盗摄| 国产第11页| 久久精品中文| 一二三四视频在线社区中文字幕| 国产成人主播| 午夜后入| 熟女高潮合集-永久久久-成人AV| 天天看人人操屄犊摸阴| 狠狠搞 亚洲91| 熟妇艹鸡八| 好吊色一区| 97青娱乐超碰久久| 综合天天网| 久久久久9999精品九九九| 黑人精品久久97| 日韩一级二级三级免费看完整版国语版 | 丰满少妇高潮无码| 激情文学欧美| 男生女生啊啊啊啊| 亚州春色| 91久久久久久久| 欧美最大综合网| 麻豆区久久久久亚| 亚洲图片视频小说| 国产激情在线| 精品传媒在线一区| 97在线视频免费观看| 黄片www视频免费| 亚洲一区中文精品| 一本精品日本在线视频精品| 无码丰满熟妇一区二区浪潮AV| 人人操人人操人人操人人操人人操人人人11.CM| 亚洲欧美在线观看无码| 国产专区第一页| 爱av免费| 99热9| 欧美1727免费观看视频| 97免费在线视频在线观看| 日韩精品人妻系列无码天堂| 欧美久久婷婷| 日韩精品影视| 国语精品对白| 日本一道在线播放高清| 国产精品ⅴ无码大片在线看.| 2018天天干在线视频| 综合久久97| 国产1727欧美| 我要去看2个日本美女.com曹逼| 夫妻天天操岛国视频| 日韩成人高清一区二区| 少妇一区二区三区精选| 人人插人人摸人人| 久久久久婷婷| 亚洲熟妇图片| 美美91成人国产精品欧美精品久久久久久久| 欧美91网站| 欧美黑人与女人91| 国产一国产一级毛片古装| 久久欲| 天堂中文日本在线观看| 这里都是精品在线观看| 国产精品女同| 亚洲Av噜噜一区二区三区妖精| 曰本特级特黄特色黄色A级网站高清在线免费看| 日本道人妻久久久在线不卡色视频| 亚洲激情视频| 熟女这里只有精品6| 91小视频| 天美国产三级传媒| 91精品丝袜久久久久久无码人妻| 色踪合AV| 亚洲国产97| 欧美中文字幕日韩在线| 日本性爱少妇| 91大胆欧美| 在线观看视频91| 亚洲欧美激情小说| 精品性爱| 国产尤物AV尤物在线观看不卡| 狠狠干综合| 大香蕉99热| 九九九九精品在线| 久96热在线观看视频| 无码精品一区二区三区潘金莲| 婷婷五月天成人| 欧美日韩大陆黑人少妇99| 极品出轨视频网站| 91P0RNY大屁股人妻| 国产精品一区二区 尿失禁| 亚洲图片欧美日韩| 天美传媒av在线| 亚洲国产综合图区中文字幕| 国产精品干干干| 人妻啊啊人妻啊| 久久草视频污视频| 亚洲91色| 亚洲图片欧洲图片aⅴ| 999在线电影香蕉| 久久综合av| 亚洲色图一区二区三区| 综合久久六月久久婷婷| 无码91| 热久久无毒不卡| 亚洲麻豆av一区二区| 日韩一级欧美一级在线观看| 男人的天堂2018.| 青青草综合在线| 嫩呦国产一区二区三区AV| 无码又爽又硬又激情免费视频| 欧洲小说色图视频另类| 中文久久久| 人妻精品一区二区在线| 美女久久久久久久| 东京太热男人的天堂久久久| 国内亚洲精彩视频在线| 日韩亚洲美女一区久久| 大但人体久久久久| 欧美十八禁视频| 激情婷婷丁香| 91少妇通奸网站| 亚洲影院无码在线| 五月婷丁香| 久欲AV| 久久精品国产AV一区二区三区| 婷婷久久综合| 99日免费视频中文字幕| 成人av性爱电影在线观看| 五月丁香激情啪啪| 超碰97首页| 精品久久久久久AV无码| 又黄又爽在线观看视频| 精久久久| 乱伦a片视频| 国产怡红院| 欧美 亚洲| 国产AV久久久蜜爱影集| 欧美精品三区| 日韩免费看在线黄色片| 少妇毛片久久| 日韩欧美加勒比| 99热超碰| 欧美亚洲清纯| 日本免费人成视频播放120秒| 亚射在线| 一区二区三区国产在线播放 | 色综合av男人天堂| 国产精品视频播放| 国产无马在线| 天堂av2019| 欧美色图 色综合图| 欧美日韩999| 蜜臀va69| 亚洲精品精品一区二区| 日日妻色网| 亚洲精品无码成人久久久99| 69精品人人人人| 欧美日韩国产成人高清| 亚洲一区二区三区久久 亚洲一区二区| 国产又粗又长视频| 日韩精品一区的| 少妇熟女视频一二三区| 玖玖玖玖精品国产剧情| 9 9无尺码天堂网| 在线看的av| 97欧美色资源| 91丨九色丨国产丨人妻在线 | 伊人国产视频| 成人97人人超碰人人| 超碰天天久久79| 国产精品久久久无码aV去| 亚洲综合影视| 国产乱伦亚洲色图高清无码| 青青草视频在线观看一区二区| 国语对白露脸XXXXXX| 图色综合网| 欧美18 在线观看| 岛国人妻少妇av在线观看| 国产在线视频二区| 天天日天天操VV| 亚洲精品国产熟女久久久久久| 老熟妇一区二区三区啪啪| 亚洲无吗在线视频| 国产欧洲精品亚洲午夜拍精品| 91足交| 淫穴高潮色图| 国产 丝袜 欧美中文 另类| 夜夜无码| 激情六月婷婷| 91爱| 欧美三级一级| 久久久久久99AV无码免费网站| 久久偷拍人| 草草影院最新网址| 色情婷婷久久五月天| 亚洲免费人妻在| 国产999精品久久久| 男人的天堂在线有码| 中国AAAAAA黄色片| 樱花草社区www中国| 欧美一区二区三区另类精品| 五月婷婷青青草娱乐伊人| 免费看日本操逼视频| 亚洲情色 欧美| 欧美综合97www| 九九精品99| 久久精品高清无码一区| 六月激情婷婷| 久久久久九九九| 久久神马影院| 国产亚洲精品玖玖玖在线观看| 四虎精品亚洲| 91麻豆天美国产欧美日| 高清国产无码av| 无码抄逼网| 75大香蕉| 综合操逼| 久操电影网| 欧插网站| 秋霞成人一级在线观看| 人妻天天爽| 婷婷99| 毛片久久| 老女人碰碰在线碰碰视频| 国产三级电影免费观看| 精品九区| 色婷婷婷五月天激情四射| jizzjizz欧美| 亚洲一区二区av| 亚洲一区二区三区麻豆传媒| 超97在线精品视频| 老司机香蕉久久久久| 99re不伦| 天天做日日爱夜夜爽| 99re这里只有| 久久视网78| 一起草精品人妻| 国产精品久久久 | 九九热免费在线国产视频伊人五月| 激情五月综合开心五月| 韩日自拍| 欧美色婷婷| 污色区网站| 国产外初女出血视频| 日韩欧美亚洲国产日韩| www.黄色在线| 超碰久超碰久| 日韩精品99久久久久久中文字幕| 天堂8在线新版官网| 污色区网站| 自拍欧美| 亚洲97久久精品亚洲| 亚洲深夜福利| 夜夜嗷嗷一区二区| 久久艹逼视频| 中欧人妻丝袜中文字幕| 操b网站亚洲无码| 亚洲色欲天天人妻无码系列专区| 91狠狠综合| 91精品国产乱码| 少妇二级| 13小男生GAY自慰脱裤子| 亚洲一区二区三区欧美日韩| 亚洲牲交| 好爽要喷了| 欧美日韩222| 亚洲免费人妻在| 一个色导综合|