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

ARTICLE DETAIL

資訊詳情

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

微信小程序駕校預(yù)約管理系統(tǒng):并發(fā)控庫與核銷閉環(huán)實(shí)戰(zhàn)

微信小程序駕校預(yù)約管理系統(tǒng):并發(fā)控庫與核銷閉環(huán)實(shí)戰(zhàn) 簡介面向微信小程序開發(fā)學(xué)習(xí)者與Java全棧初學(xué)者這是一份駕校預(yù)約管理系統(tǒng)的完整源碼包。項(xiàng)目基于微信開發(fā)者工具后端采用SSM框架與MySQL數(shù)據(jù)庫B/S架構(gòu)分為學(xué)員、教練、管理員三類角色包含首頁、個(gè)人中心、學(xué)員管理、教練管理、駕校信息管理、駕校車輛管理、教練預(yù)約管理、考試信息管理、預(yù)約考試管理、系統(tǒng)管理等模塊游客無需登錄也可瀏覽公開信息。壓縮包共1209個(gè)文件以png、js、vue、java、json等類型為主涵蓋前端圖標(biāo)、小程序頁面、Vue后臺(tái)組件、Java接口與項(xiàng)目配置總大小12.28MB。目前已有463人下載學(xué)習(xí)。配套說明文檔與一鍵安裝、運(yùn)行、構(gòu)建腳本便于快速啟動(dòng)項(xiàng)目資源目錄劃分清晰適合課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)以及想理解小程序預(yù)約類系統(tǒng)完整實(shí)現(xiàn)流程的讀者參考。1. 駕校預(yù)約管理系統(tǒng)不是“做幾個(gè)頁面”是讓教練、時(shí)段、庫存和核銷轉(zhuǎn)成一條閉環(huán)駕校預(yù)約管理系統(tǒng)聽起來像是“選個(gè)教練、挑個(gè)時(shí)間、存一條記錄”但真拿去給駕校用你會(huì)發(fā)現(xiàn)最核心的需求是學(xué)員能自助約課、改期、取消教練能看到自己一天什么時(shí)候被約了前臺(tái)要能核銷、統(tǒng)計(jì)、處理爽約。這個(gè)標(biāo)題里的小程序項(xiàng)目就是把這一整套流程壓縮到微信里學(xué)員不裝 App、教練不拿紙質(zhì)表打開小程序就能操作。對(duì)剛接觸小程序開發(fā)的人來說它是一個(gè)比“電商練手”更貼近真實(shí)業(yè)務(wù)的樣本對(duì)正在接駕校、培訓(xùn)機(jī)構(gòu)私活的人來說它直接對(duì)得上驗(yàn)收清單。真正讓這類項(xiàng)目翻車的往往不是頁面難看而是“同一個(gè)時(shí)段被兩個(gè)人同時(shí)約上”這種并發(fā)問題以及預(yù)約狀態(tài)一亂、核銷對(duì)不上賬的連鎖反應(yīng)。下面按我自己的落地習(xí)慣把這套系統(tǒng)的選型、表結(jié)構(gòu)、前端實(shí)現(xiàn)和排錯(cuò)順序拆開講。2. 技術(shù)棧選型原生微信小程序還是 uni-app駕校預(yù)約為什么不能一上來就寫頁面2.1 原生微信小程序與 uni-app 的真實(shí)差異拿到“微信小程序項(xiàng)目之駕校預(yù)約管理系統(tǒng)”這種源碼包第一件事不是打開開發(fā)工具而是確定這套前端是用原生微信小程序?qū)懙倪€是 uni-app 轉(zhuǎn)出來的。兩者在工程結(jié)構(gòu)上差別很大原生工程里你會(huì)看到pages、app.js、app.json直接導(dǎo)入微信開發(fā)者工具就能跑uni-app 工程則是src/pages加uni_modules需要先npm install、再用 HBuilderX 或 CLI 打包成微信小程序產(chǎn)物目錄才是開發(fā)者工具能認(rèn)的。從落地角度說駕校預(yù)約這種業(yè)務(wù)基本只發(fā)生在微信生態(tài)里學(xué)員掃駕校的碼就進(jìn)小程序不存在“同一個(gè)人還要在支付寶里再約一次”的強(qiáng)需求。所以我一般建議除非你一早確定要同時(shí)發(fā)抖音、支付寶、微信三端否則不要為了“多端”硬上 uni-app。uni-app 確實(shí)能把一套 Vue 語法編譯到多端但代價(jià)是每次改完都要走一次“打包”流程遇到自定義組件、分包加載、原生插件時(shí)調(diào)試鏈路比原生長一截。很多新手在 uniapp 微信小程序打包時(shí)踩到source size 2612kb exceed max limit 2mb就是因?yàn)闆]有意識(shí)到小程序主包有 2MB 硬限制把圖片、SDK、公共庫全塞進(jìn)了一個(gè)包里。反過來說如果這個(gè)駕校預(yù)約項(xiàng)目是課程設(shè)計(jì)要求里面有“管理后臺(tái) 小程序 數(shù)據(jù)庫設(shè)計(jì)文檔”那 uni-app 也不是不能用因?yàn)楹笈_(tái)界面可以復(fù)用同一套 Vue 代碼做成 H5省得再寫一套。但你要接受一個(gè)事實(shí)出問題的人多數(shù)不在業(yè)務(wù)邏輯而在“打包出的包太大”或“原生組件不兼容”。所以我的選擇順序是單純做微信端、工期緊、想少踩坑用原生要交作業(yè)展示多端能力、后臺(tái)也要復(fù)用才考慮 uni-app并且從第一天就做分包。2.2 后端選型PHP / Java / Node 在預(yù)約場(chǎng)景里的取舍前端只是入口預(yù)約管理系統(tǒng)真正的體力活在接口層。常見的源碼包里后端出現(xiàn)頻率最高的是 PHP 和 Java Spring Boot也有 Node 寫的。駕駛培訓(xùn)行業(yè)的小型駕校通常已經(jīng)是 PHP 或 Java 的存量系統(tǒng)小程序只是新加一個(gè) C 端入口這時(shí)后端語言沒得選要順著老系統(tǒng)來。如果是從零開始我的建議是按你的維護(hù)能力選而不是按“哪個(gè)熱門”選。PHP 的優(yōu)勢(shì)是部署門檻低隨便一臺(tái)虛擬主機(jī)就能跑很多源碼包的說明文檔也是以 PHP MySQL 為主線適合課程設(shè)計(jì)或者小駕校自用。Java Spring Boot 適合要接大量并發(fā)、要寫復(fù)雜報(bào)表、要把預(yù)約和財(cái)務(wù)對(duì)賬打通的情況但環(huán)境要求高M(jìn)aven 依賴一堆新手第一次跑起來容易耗一小時(shí)在配置上。Node 適合本來就會(huì) JavaScript 的人寫接口快但線上部署和進(jìn)程守護(hù)要自己多留心。需要強(qiáng)調(diào)的是預(yù)約系統(tǒng)對(duì)后端的要求不只是“能存數(shù)據(jù)”而是“并發(fā)下不超賣”這一點(diǎn)跟語言無關(guān)跟事務(wù)和鎖的寫法有關(guān)。所以我會(huì)先把后端能力當(dāng)成“黑匣子”測(cè)試用并發(fā)請(qǐng)求打它而不是看它用了什么框架。2.3 拿到“源碼說明”包后先做三件事看文檔、倒數(shù)據(jù)庫、對(duì)接口約定標(biāo)題里帶著“(源碼說明)”說明包里應(yīng)該有配套文檔。我拿到這類項(xiàng)目包的習(xí)慣是先翻說明再看數(shù)據(jù)庫腳本最后才導(dǎo)入代碼。很多人的誤區(qū)是先把小程序跑起來結(jié)果白屏了才想起去看接口地址浪費(fèi)半小時(shí)。說明文檔里通常會(huì)寫清楚三件事數(shù)據(jù)庫初始化腳本在哪、后臺(tái)賬號(hào)密碼是什么、小程序需要改哪些配置項(xiàng)。這些信息不全時(shí)我會(huì)先按目錄猜常見結(jié)構(gòu)是server放后端、sql放建表語句、docs放設(shè)計(jì)文檔。數(shù)據(jù)庫腳本導(dǎo)入后我會(huì)重點(diǎn)核對(duì)幾張表用戶表、教練表、課時(shí)表、預(yù)約表。駕校預(yù)約的核心資源不是學(xué)員而是“教練 車 時(shí)段”的組合。如果表里沒有記錄“每個(gè)時(shí)段最多可預(yù)約人數(shù)”的字段那這個(gè)源碼包的預(yù)約邏輯大概率是閹割版——先查再插入并發(fā)一高就會(huì)重復(fù)預(yù)約。這一步確認(rèn)清楚后面所有頁面開發(fā)才會(huì)踏實(shí)。小程序端要改的無非是app.js里的request域名、登錄密鑰以及每個(gè)接口的url前綴。記住源碼包能不能落地不在代碼多高級(jí)而在接口約定和數(shù)據(jù)字典能不能對(duì)上。3. 數(shù)據(jù)模型與預(yù)約狀態(tài)機(jī)先把“庫存”算清楚再寫接口3.1 駕校預(yù)約管理系統(tǒng)的表結(jié)構(gòu)設(shè)計(jì)預(yù)約系統(tǒng)最怕“看起來像論壇約個(gè)課就是插一條記錄”。如果約課只是往appointment表里 insert那同一時(shí)間教練就會(huì)被兩個(gè)人同時(shí)約走因?yàn)檎l都沒有檢查“這個(gè)時(shí)段還剩幾個(gè)名額”。所以第一步是設(shè)計(jì)出能反映資源庫存的表結(jié)構(gòu)。駕校的核心資源是教練和教練車一個(gè)教練一天可以分多個(gè)時(shí)段每個(gè)時(shí)段理論上只能服務(wù)固定數(shù)量學(xué)員通常是一對(duì)一。我常用的建表語句如下CREATE TABLE coach ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, phone VARCHAR(20), status TINYINT DEFAULT 1 COMMENT 1可用 0停用 ); CREATE TABLE course_schedule ( id INT PRIMARY KEY AUTO_INCREMENT, coach_id INT NOT NULL, course_date DATE NOT NULL, slot_id INT NOT NULL COMMENT 時(shí)段編號(hào) 1上午 2下午 3晚上, capacity INT DEFAULT 1 COMMENT 該時(shí)段可約人數(shù), booked INT DEFAULT 0 COMMENT 已約人數(shù), version INT DEFAULT 0 COMMENT 樂觀鎖版本號(hào), UNIQUE KEY uk_date_slot (coach_id, course_date, slot_id) ); CREATE TABLE appointment ( id INT PRIMARY KEY AUTO_INCREMENT, student_id INT NOT NULL, schedule_id INT NOT NULL, status TINYINT DEFAULT 1 COMMENT 1已預(yù)約 2已取消 3已完成 4爽約, cancel_reason VARCHAR(255), create_time DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uk_student_schedule (student_id, schedule_id) );這套結(jié)構(gòu)強(qiáng)調(diào)三件事。第一course_schedule是庫存表capacity和booked分別代表總量和已約量每次預(yù)約都要保證booked capacity。第二教練、日期、時(shí)段三個(gè)字段組成唯一索引防止同一批數(shù)據(jù)里出現(xiàn)重復(fù)排課。第三appointment表里不直接存教練和時(shí)段而是存schedule_id這樣改排課表的時(shí)候預(yù)約記錄不用跟著動(dòng)。version字段先留著后面做樂觀鎖要用。實(shí)際項(xiàng)目里我還會(huì)加一個(gè)cancel_log表記錄取消操作因?yàn)轳{校經(jīng)常需要知道“誰頻繁爽約、哪個(gè)時(shí)段的取消率最高”。這不算過度設(shè)計(jì)是運(yùn)營必須的數(shù)據(jù)。你要是嫌表多起碼也要把a(bǔ)ppointment里的狀態(tài)字段留出來否則后面做核銷的時(shí)候會(huì)發(fā)現(xiàn)根本沒有狀態(tài)可流轉(zhuǎn)。3.2 防止重復(fù)預(yù)約的原子扣減與狀態(tài)流轉(zhuǎn)預(yù)約接口寫得好不好直接在并發(fā)下見分曉。最常見的錯(cuò)誤寫法是先SELECT booked FROM course_schedule WHERE id ?判斷小于 capacity再INSERT INTO appointment最后UPDATE course_schedule SET booked booked 1。這一步看代碼沒毛病但兩個(gè)學(xué)員同時(shí)請(qǐng)求時(shí)兩個(gè)請(qǐng)求都讀到booked0然后都插入預(yù)約記錄最后都執(zhí)行加一結(jié)果這里約滿了兩個(gè)人實(shí)際上超賣了。正確做法是把“檢查庫存 扣減”放在一個(gè)原子操作里用數(shù)據(jù)庫的行鎖保證同一時(shí)刻只有一個(gè)請(qǐng)求能成功扣減UPDATE course_schedule SET booked booked 1 WHERE id ? AND booked capacity;這條 UPDATE 影響行數(shù)為 1說明扣減成功才允許繼續(xù)插入預(yù)約記錄影響行數(shù)為 0說明時(shí)段已滿直接返回“該時(shí)段已約滿”??弁陰齑嬖俨迦腩A(yù)約并且這兩個(gè)動(dòng)作要在同一個(gè)事務(wù)里任何一步失敗都要回滾讓booked恢復(fù)原樣。后端代碼里大概是這個(gè)形態(tài)// 以 Node 為例使用 mysql2 驅(qū)動(dòng) const conn await pool.getConnection(); try { await conn.beginTransaction(); const [result] await conn.execute( UPDATE course_schedule SET booked booked 1 WHERE id ? AND booked capacity, [scheduleId] ); // affectedRows 1 才代表搶到了名額 if (result.affectedRows 0) { await conn.rollback(); return { code: 1, message: 該時(shí)段已約滿請(qǐng)換一個(gè)時(shí)段 }; } await conn.execute( INSERT INTO appointment (student_id, schedule_id, status) VALUES (?, ?, 1), [studentId, scheduleId] ); await conn.commit(); return { code: 0, message: 預(yù)約成功 }; } catch (err) { await conn.rollback(); throw err; } finally { conn.release(); }參數(shù)說明affectedRows是 MySQL 執(zhí)行 UPDATE 后返回的受影響行數(shù)它能告訴你這個(gè) UPDATE 是不是真正改到了數(shù)據(jù)。這里的scheduleId是預(yù)約接口傳入的排課記錄 IDstudentId是登錄后服務(wù)端解析出來的用戶 ID不能拿前端傳的 userId 直接用不然學(xué)員可以把別人的 ID 塞進(jìn)來替別人約課。事務(wù)的beginTransaction和commit保證“扣庫存”和“建預(yù)約”要么同時(shí)成功要么同時(shí)失敗。3.3 取消預(yù)約與時(shí)段過期庫存回滾和違約標(biāo)記怎么處理有預(yù)約就必然有取消取消邏輯看起來只是把a(bǔ)ppointment的狀態(tài)改成“已取消”但別忘了把庫存還回去。這一步同樣要放在事務(wù)里先改預(yù)約狀態(tài)再booked booked - 1。順序別反不然出現(xiàn)“狀態(tài)已取消但庫存沒恢復(fù)”的半截?cái)?shù)據(jù)后面統(tǒng)計(jì)約滿率全錯(cuò)。駕校場(chǎng)景比較特殊的是“爽約”的處理。學(xué)員約了早上八點(diǎn)的課教練把車和人都空出來了學(xué)員沒來這個(gè)時(shí)段已經(jīng)不可能再補(bǔ)給別人所以不能簡單地取消并回滾庫存而是要標(biāo)記為“爽約”系統(tǒng)可以記一次違約累計(jì)多次限制預(yù)約。實(shí)現(xiàn)上我一般會(huì)根據(jù)當(dāng)前時(shí)間判斷距離預(yù)約時(shí)段開始還有足夠時(shí)間比如 4 小時(shí)允許正常取消并回滾庫存如果已進(jìn)入倒計(jì)時(shí)或者已經(jīng)過了開始時(shí)間就只能由管理員手動(dòng)取消學(xué)員端只能看到“已過期”狀態(tài)。這種規(guī)則不寫死在 SQL 里而是由后端在取消接口里判斷前端只負(fù)責(zé)引導(dǎo)用戶確認(rèn)。狀態(tài)流轉(zhuǎn)的完整鏈條是已預(yù)約 → 已取消 / 已完成 / 爽約。核銷動(dòng)作只允許把已預(yù)約變成已完成取消動(dòng)作只允許把已預(yù)約變成已取消。如果表里出現(xiàn)“已取消”直接跳到“已完成”的記錄基本可以判定接口邏輯里少了狀態(tài)校驗(yàn)。調(diào)試的時(shí)候可以在后端加一個(gè)狀態(tài)機(jī)的校驗(yàn)函數(shù)每次更新狀態(tài)時(shí)檢查“當(dāng)前狀態(tài)是否允許跳到目標(biāo)狀態(tài)”不滿足就報(bào)錯(cuò)。這一步能擋住大多數(shù)臟數(shù)據(jù)。4. 小程序端從登錄到核銷手寫核心頁面與請(qǐng)求邏輯4.1 微信小程序登錄獲取手機(jī)號(hào)兩種方式怎么選駕校預(yù)約一定要拿到學(xué)員手機(jī)號(hào)因?yàn)轭A(yù)約成功要發(fā)通知、教練要聯(lián)系學(xué)員確認(rèn)上車點(diǎn)。微信小程序登錄獲取手機(jī)號(hào)有兩種常見方式選錯(cuò)會(huì)直接影響審核和上線。第一種是傳統(tǒng)方式用wx.login拿到臨時(shí)code發(fā)給后端后端調(diào)用微信接口換openid然后讓學(xué)員在小程序里手填手機(jī)號(hào)后端發(fā)驗(yàn)證碼。這種方式實(shí)現(xiàn)簡單、不用企業(yè)認(rèn)證也能測(cè)通但用戶體驗(yàn)多了一步并且驗(yàn)證碼短信有成本。第二種是使用微信提供的手機(jī)號(hào)快速驗(yàn)證組件學(xué)員點(diǎn)一下授權(quán)按鈕微信直接把手機(jī)號(hào)傳給后端體驗(yàn)最好但要求小程序必須完成認(rèn)證且該能力對(duì)個(gè)人主體小程序不開放。很多個(gè)人開發(fā)者在這里會(huì)被卡住審核時(shí)發(fā)現(xiàn)沒有權(quán)限只能退回手填手機(jī)號(hào)。我這里建議如果是公司主體的駕校項(xiàng)目優(yōu)先用手機(jī)號(hào)快速驗(yàn)證組件如果是個(gè)人項(xiàng)目或畢設(shè)就老老實(shí)實(shí)走“登錄 手填手機(jī)號(hào) 短信驗(yàn)證”。核心代碼大致是// 前端手機(jī)號(hào)快速驗(yàn)證組件 button open-typegetPhoneNumber bindgetphonenumberonGetPhone 獲取手機(jī)號(hào) /button// 前端拿到加密數(shù)據(jù)后交給后端解析 Page({ async onGetPhone(e) { if (e.detail.errMsg ! getPhoneNumber:ok) { wx.showToast({ title: 需要授權(quán)手機(jī)號(hào), icon: none }); return; } const res await wx.cloud.callFunction({ name: decodePhone, data: { code: e.detail.code } }); // res.result.phone 就是手機(jī)號(hào) } });參數(shù)說明e.detail.code是微信返回的動(dòng)態(tài)令牌只能在后端配合 session_key 換取手機(jī)號(hào)不能在前端直接讀出手機(jī)明文。如果是普通 HTTP 后端前端只能把code原樣 POST 給服務(wù)端服務(wù)端再按文檔調(diào)接口。這里最容易踩的坑是把openid和手機(jī)號(hào)混為一談OpenID 只能標(biāo)識(shí)“這是哪個(gè)微信用戶”不能當(dāng)手機(jī)號(hào)用。4.2 選教練、選時(shí)段、提交預(yù)約的核心代碼預(yù)約頁面的交互主線是選日期 → 選教練 → 選時(shí)段 → 提交。提交前要把日期、教練、時(shí)段拼成可校驗(yàn)的三個(gè)參數(shù)傳給后端后端再拿著教練 ID 和日期去查排課表。前端代碼不復(fù)雜但“重復(fù)提交”這個(gè)坑必須防用戶手快點(diǎn)兩次按鈕就可能發(fā)出兩個(gè)相同請(qǐng)求即使后端有庫存扣減兜底也會(huì)產(chǎn)生兩條預(yù)約記錄。所以提交按鈕要在請(qǐng)求發(fā)出后立即禁用成功或失敗后再恢復(fù)。!-- wxml 片段 -- view classslot-list view wx:for{{slots}} wx:keyslotId classslot-item {{item.disabled ? disabled : }} >Page({ data: { date: , coachId: , slotId: , submitting: false }, onSelectSlot(e) { this.setData({ slotId: e.currentTarget.dataset.id }); }, async onSubmit() { const { date, coachId, slotId, submitting } this.data; if (submitting) return; // 重復(fù)提交攔截 if (!date || !coachId || !slotId) { wx.showToast({ title: 請(qǐng)選擇完整, icon: none }); return; } this.setData({ submitting: true }); try { const res await wx.request({ url: https://api.example.com/appointment/create, method: POST, data: { date, coachId, slotId } }); if (res.data.code 0) { wx.showToast({ title: 預(yù)約成功, icon: success }); // 跳轉(zhuǎn)到預(yù)約記錄頁 } else { wx.showToast({ title: res.data.message, icon: none }); } } finally { this.setData({ submitting: false }); } } });這里的date是形如2025-06-15的日期字符串slotId是排課表里具體的時(shí)段 ID而不是“上午”“下午”這種前端自己翻譯出來的值。后端必須用slotId coachId作為唯一鍵去查course_schedule不要用日期加中文時(shí)段名去拼否則數(shù)據(jù)庫里存什么你會(huì)徹底失控。wx.request的url必須是https且在微信公眾平臺(tái)配過合法域名開發(fā)時(shí)可以在開發(fā)者工具里關(guān)掉域名校驗(yàn)但真機(jī)預(yù)覽就一定要配好。4.3 自定義導(dǎo)航欄與頁面?zhèn)鲄㈨敳繉?dǎo)航欄高度怎么適配預(yù)約系統(tǒng)里“本周日期橫滑選擇器”很常見這種頁面通常想用自定義導(dǎo)航欄才能把標(biāo)題欄和選擇器做成一體。自定義導(dǎo)航欄不是把navigationStyle改成custom就完事真正麻煩的是狀態(tài)欄高度和膠囊按鈕位置在不同的手機(jī)上都不同適配不好就會(huì)出現(xiàn)標(biāo)題頂?shù)綌z像頭、按鈕錯(cuò)位的情況。微信沒有直接暴露狀態(tài)欄高度一般用wx.getMenuButtonBoundingClientRect()拿膠囊按鈕的位置再結(jié)合wx.getSystemInfoSync()里的statusBarHeight算導(dǎo)航欄總高度。常見做法是const rect wx.getMenuButtonBoundingClientRect(); const system wx.getSystemInfoSync(); const navHeight rect.bottom (rect.top - system.statusBarHeight) * 2;這段代碼里navHeight是自定義導(dǎo)航欄的推薦高度單位是 px。rect.top是膠囊到屏幕頂部的距離system.statusBarHeight是系統(tǒng)狀態(tài)欄高度兩者的差值就是膠囊上方的留白乘以 2 再加膠囊底部的留白基本能得到一個(gè)視覺協(xié)調(diào)的導(dǎo)航欄高度。拿到這個(gè)值后設(shè)置成外層容器的padding-top整個(gè)頁面內(nèi)容就不會(huì)被劉海屏吞掉。很多參考項(xiàng)目里寫死44px在全面屏上就會(huì)顯得局促這是微信小程序頂部導(dǎo)航欄高度這個(gè)熱搜詞背后最常被問的問題。字段傳參方面從列表頁跳到詳情頁參數(shù)復(fù)雜時(shí)要用encodeURIComponent包一層防止特殊字符截?cái)唷?. 預(yù)約系統(tǒng)的常見坑與排錯(cuò)從白屏到重復(fù)預(yù)約5.1 現(xiàn)象真機(jī)預(yù)覽白屏模擬器正常模擬器里能正常打開真機(jī)預(yù)覽卻是白屏第一反應(yīng)不應(yīng)該是查代碼而是查“請(qǐng)求域名”。微信開發(fā)者工具默認(rèn)勾選了“不校驗(yàn)合法域名”所以工具里請(qǐng)求任何 HTTP 接口都能通甚至localhost也行。真機(jī)上這個(gè)校驗(yàn)是強(qiáng)制生效的未配置的域名直接請(qǐng)求失敗頁面拿不到數(shù)據(jù)就白在那里。解決方法是登錄微信公眾平臺(tái)在“開發(fā)管理 → 服務(wù)器域名”里把后端接口的 HTTPS 域名加到request合法域名列表而且域名必須是備案過的不能是 IP。如果你只是臨時(shí)演示也可以打開開發(fā)者工具的真機(jī)調(diào)試并在“項(xiàng)目設(shè)置”里勾選“不校驗(yàn)合法域名”但這樣只能給你自己看發(fā)給別人一樣白屏。這個(gè)坑在校驗(yàn)域名前后最容易讓人誤判成“代碼寫錯(cuò)了”其實(shí)后端日志里全是 CORS 或證書報(bào)錯(cuò)。5.2 現(xiàn)象兩個(gè)學(xué)員“同時(shí)”約到了同一個(gè)時(shí)段約同一個(gè)時(shí)段兩個(gè)人都收到“預(yù)約成功”這是并發(fā)問題最典型的形態(tài)。原因基本可以鎖定為后端先 SELECT 再 INSERT沒有把“檢查名額”和“扣減名額”做成原子操作。兩條請(qǐng)求同時(shí)讀到booked0都認(rèn)為自己還有名額于是都插入成功。解決辦法就是把 3.2 里的原子 UPDATE 用起來配合事務(wù)。如果業(yè)務(wù)太復(fù)雜一條 SQL 解決不了也可以給course_schedule表加樂觀鎖UPDATE 時(shí)帶version當(dāng)前版本更新成功后version1失敗就重試。但原子 UPDATE 已經(jīng)足夠覆蓋駕校預(yù)約這種量級(jí)。修復(fù)后一定要用并發(fā)工具跑一次復(fù)測(cè)見 6.1。5.3 現(xiàn)象日期選完列表不刷新約到的還是前一天時(shí)段列表沒跟著日期變多半是頁面把第一次加載的數(shù)據(jù)緩存住了或者change事件里用的日期格式不對(duì)。常見原因有兩個(gè)一是日期組件返回的是new Date()對(duì)象直接setData后變成了字符串接口收到后解析出“昨天”二是小程序頁面棧的上一頁沒有在onShow里重新拉取數(shù)據(jù)導(dǎo)致返回時(shí)列表還是舊的。解決方法是前端先把日期格式化成YYYY-MM-DD再傳給后端預(yù)約記錄頁在onShow里重新調(diào)用列表接口而不是依賴onLoad只加載一次。如果后端返回的日期比前端少了 8 小時(shí)那就是時(shí)區(qū)問題統(tǒng)一在接口層約定按YYYY-MM-DD的字符串傳參不要傳“相對(duì)當(dāng)前時(shí)間”的時(shí)間戳。5.4 現(xiàn)象體驗(yàn)版登錄不上后端一直報(bào) code 無效wx.login返回的code是有時(shí)效且只能用一次的。如果你后端的登錄解密邏輯把同一個(gè)code連續(xù)拿去換openid第二次就會(huì)報(bào)“code 無效”。還有一個(gè)很隱蔽的問題開發(fā)者工具里的appid和體驗(yàn)版所屬的appid不一致前端拿到的是 A 項(xiàng)目的 code后端用了 B 項(xiàng)目的密鑰去解必然失敗。解決方法是先核對(duì)小程序后臺(tái)的 appid 和后端配置的 appid 是否一致再檢查登錄接口是否對(duì)同一個(gè) code 做了緩存。最容易忽略的是一鍵登錄按鈕被用戶點(diǎn)了兩遍前端每點(diǎn)一次就調(diào)一次wx.login但用戶心態(tài)是“手機(jī)號(hào)沒出來就再點(diǎn)一下”導(dǎo)致舊 code 被重復(fù)使用。前端要做防重復(fù)點(diǎn)擊后端要做 code 消費(fèi)失敗時(shí)的友好報(bào)錯(cuò)。5.5 現(xiàn)象uniapp 打包后主包超過 2MB 上限如果你用的是 uni-app編譯成微信小程序時(shí)經(jīng)??吹絪ource size 2612kb exceed max limit 2mb。這不代表你的業(yè)務(wù)有多龐大而是很多依賴被打進(jìn)了主包。最常見的是把完整的uview、colorui這類 UI 庫全量引入或者把后端 SDK、加密庫都塞進(jìn)main.js再或者圖片直接 base64 進(jìn)代碼里。解決思路是分包、抽組件、圖片走 CDN。微信小程序主包只放頁面骨架和公共依賴教練詳情、預(yù)約記錄、用戶中心這些低頻頁面全部放到subpackages里從頁面名到資源路徑都要對(duì)應(yīng)調(diào)整。UI 庫改成按需引入如果只是用幾個(gè)組件復(fù)制對(duì)應(yīng)文件過來反而比全量引入更小。這里的取舍是主包大小決定首屏加載速度分包越干凈真機(jī)體驗(yàn)越順調(diào)試時(shí)也不至于為 2MB 邊界反復(fù)重構(gòu)。6. 讓預(yù)約系統(tǒng)經(jīng)得起真車流量壓測(cè)、訂閱消息與核銷閉環(huán)6.1 用最簡單的方式給預(yù)約接口做并發(fā)壓測(cè)??荚囶A(yù)約、寒暑假約車高峰期流量會(huì)突然漲起來。不要等到上線當(dāng)天才發(fā)現(xiàn)接口扛不住用wrk或者一段帶Promise.all的 Node 腳本就能模擬并發(fā)。重點(diǎn)壓兩個(gè)接口創(chuàng)建預(yù)約和取消預(yù)約。壓測(cè)時(shí)關(guān)注三件事有沒有超賣、響應(yīng)時(shí)間是否穩(wěn)定、數(shù)據(jù)庫連接池有沒有爆。命令行跑法如下wrk -t4 -c50 -d10s -s create-appointment.lua http://api.example.com/appointment/create壓測(cè)腳本會(huì)帶不同studentId并發(fā)發(fā)起預(yù)約。跑完不要只盯著 QPS 數(shù)字而是對(duì)數(shù)據(jù)庫查一遍course_schedule的booked是否等于appointment表里狀態(tài)為“已預(yù)約”的記錄數(shù)。對(duì)不上就是邏輯有洞對(duì)得上并且響應(yīng)時(shí)間控制在幾百毫秒內(nèi)才算過基本門檻。這個(gè)測(cè)試要留著每次都跑比改完代碼拍胸脯有用得多。6.2 訂閱消息預(yù)約成功提醒的正確觸發(fā)方式駕校預(yù)約成功后學(xué)員需要收到“預(yù)約成功”“明日練車提醒”之類的通知。微信官方現(xiàn)在把模板消息換成了訂閱消息關(guān)鍵限制是小程序必須在用戶點(diǎn)擊按鈕時(shí)調(diào)wx.requestSubscribeMessage不能在接口返回成功后再偷偷彈窗。也就是說提交預(yù)約的按鈕事件里應(yīng)該先讓用戶確認(rèn)訂閱授權(quán)再發(fā)預(yù)約請(qǐng)求。async onSubmit() { await wx.requestSubscribeMessage({ tmplIds: [預(yù)約成功通知模板ID] }); // 用戶選“總是保持以上選擇”或點(diǎn)允許后再走預(yù)約接口 this.doCreateAppointment(); }注意這個(gè)授權(quán)結(jié)果只代表“下一次消息可以發(fā)”不能存下來長期發(fā)。如果用戶拒絕預(yù)約流程也要繼續(xù)只是不發(fā)通知。所以這里不要因?yàn)橛脩魶]點(diǎn)允許就中斷預(yù)約而是把它做成一個(gè)增強(qiáng)體驗(yàn)。真正的重要信息比如“教練臨時(shí)請(qǐng)假”還需要在后端做二次確認(rèn)機(jī)制不能只依賴訂閱消息。6.3 二維碼核銷與取消預(yù)約的回滾順序教練端“掃一掃核銷”是這個(gè)系統(tǒng)的最后一環(huán)。學(xué)員預(yù)約成功后后端生成一個(gè)帶預(yù)約號(hào)或簽名字符串的二維碼教練用小程序的掃一掃功能讀取再調(diào)核銷接口。核銷接口必須冪等同一個(gè)二維碼掃第二次后端要返回“該預(yù)約已完成”而不是報(bào)錯(cuò)或再次核銷成功。實(shí)現(xiàn)上預(yù)約號(hào)用隨機(jī)串生成數(shù)據(jù)庫里加唯一索引核銷時(shí)先查狀態(tài)再原子更新UPDATE appointment SET status 3 WHERE id ? AND status 1;這條 SQL 只有狀態(tài)為“已預(yù)約”的記錄會(huì)被更新成“已完成”影響行數(shù)為 0 就說明狀態(tài)已變化直接給前端返回“不可重復(fù)核銷”。至于取消預(yù)約的回滾順序一定是先改預(yù)約狀態(tài)為“已取消”再讓course_schedule的booked減一。如果先減庫存再改狀態(tài)中間出現(xiàn)異常就會(huì)出現(xiàn)“約了課的人沒記錄、名額卻空出來”的永久性臟數(shù)據(jù)。把這兩個(gè)操作放進(jìn)同一個(gè)事務(wù)讓 MySQL 替你保證要么都成功、要么都失敗。我做第一個(gè)預(yù)約項(xiàng)目時(shí)就吃過這個(gè)虧取消了三條記錄后庫存全部對(duì)不上只能手動(dòng)寫腳本清洗那感覺比改代碼痛苦得多。這些邊界問題都處理完這套駕校預(yù)約管理系統(tǒng)才算真正能交付而不是只能在模擬器里點(diǎn)兩下。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成人精品一区二区91毛片不卡| 精品久久艹| 五月激情视频| 少妇久久久久久| 久久婷婷亚洲| 黑人综合网| 日韩9区| 欧美性性性| 91精品人妻一区二区三区蜜桃| 伊人久大| 夜夜欢天天干| 日日夜夜天天| 超碰亚洲欧美日韩无| 亚洲精品中文字幕一区在线视频| 久久久久久国产无码精品| 欧美黄片欧美黄片xxx| 加勒比海色香蕉婷婷| 亚洲性综合9| 丰满欧美放荡少妇在线| 日本欧美m v精品网站加| 99re69| 中文字幕一区二区免费在线| 在线 制服丝袜中出 人妻| 加勒比人妻综合| 国产女同在线观看视频| 国产乱伦视频污| 刺激精品视频| 五月天婷婷色色| 久久久99久9| 波多野结衣一级视频| 欧美高清在线| 人妻人人澡人人爽人人| 色色色综合| 最新亚洲黄色免费电影 | 国产后入式在线观看| 熟妇人妻一区二区 | 欧美亚洲尤物久久| 国产在线综合网| 亚洲精品97p| 欧美日韩淫加| 大香蕉在线视频15| 狠狠综合网| 91强热人妻| 以及麻豆国产入口在线观看免费| 小情侣高清国产在线视频| 91社区伊人| 超碰碰97资源站| 日韩有码回春沙龙第一页| 五月丁香婷婷综合网| 国产特级毛片AAAAAA高潮流水| 日韩小电影| 狠狠爱夜夜| 99热这里只有精品1| 涩涩久久精品| 国产AV人人夜夜澡人人爽麻豆| 青青操在线亚洲视频观看欧美在线| 97天天摸天天碰| 日日干日日| 很很干很很操| 爱干爱射网啊啊啊| 美女操逼A A| 久久精品国产亚洲AV先锋| 一本色道综合久久欧美日韩精品| 黄页av| 国产精品美女视频诱惑| 日本αv| 岛国在线免费视频| 亚洲精品aa久久伊人| 黄片在线免费在线观看| 清柠毛片| 搞中出视频在线观看| 国外91| 亚洲 欧美 日本 国内 首页| 精品视频久久| 18禁中文字幕| 久操婷婷| 欧美狠狠鲁| 黄色在线网站| 欧美亚洲日韩人妻在线观看| 中文字幕片| 熟妇国产免费一区| 亚洲精品九九九| 影音先锋日本一区二区| 日本久久网| 夜夜嗨av午夜成人| 夜夜嗨一区二区三区三州加勒比| 青青草毛片| 性色生活片久久毛片婬片免费放女人一级毛片| 激情综合久久| 老熟妇一区二区三区啪啪| 国产91丝袜 在线播放| 亚洲?V无码专区在线电影| 亚洲国产麻豆一区二区三区| 男人天堂.AB| 亚洲av淫乱| 啊啊啊好爽快点啊啊啊嗯嗯| 天堂精品| 午夜啪啪片| 九色97| 99热| 丁香五月激情婷婷| 天天综合网日韩7799| 97免费视频在线观看视频| а√天堂资源官网在线资源| 亚洲一卡2卡3卡4卡乱码网站 | 国产真实野战在线视频| 先锋女优在线观看视频| 91AV天堂| 搡老女人老妇女老妇老熟女怎么读| 日韩性爱1级片视频| 欧美综合1性辶| 2017,超碰| 亚洲污一污二| 91 亚洲情侣偷拍 久久| 国产亚洲色婷婷99精品91| 国产成自自拍在线观看| 熟女露脸激情自拍视频| 中文字幕视频在线观看| 日本精品中文字幕视频| 国产一级不卡在线观看| 97内射偷拍| 91爱欧美| 第四色奇米影视777| 色色色五月婷婷| 久久久av爱| 亚洲成成熟女人综合一区二区| 亚洲自拍偷拍视频在线| 97超碰人人模人人拍人人| 久久亚州大香蕉| 中国黑人三级片网站上区| 91性网| 狂操嫩妻视频一区二区三区| 国产成人午夜视频网址| 东北熟女91| 免费超碰97久久| 亚州宗合另类| 国产小u女在线观看| 成人午夜高潮av猛片| 无毛精品| 日韩精品电影| 欧美视频第二页| 亚洲综合另类| 五月激情视频| 日韩国产中文字幕| 青娱乐亚洲自拍| 色呦呦国产精品免费看| 久久久久成人网| 久日综合网| 欧美日韩理论一区| 美女超碰978| 欧美一级做a爰片免费视频| 日韩欧美操逼xxx| 国产丝袜一区二区三区| 亚洲AV无码久久精品蜜桃小说| 噜噜噜狠狠色综合| 日韩精品黄片免费观看| 性爱网站一区二区| 操一区| 欧美精品丝袜久久久中文字幕| 久久嫩草国产成人一区| 午夜后入| 97超碰精品成| 国产精品色哟哟| 欧美亚洲20p| 欧美日韩国第一区| 国产乱婷婷精品二区三区| 人妻啊啊人妻啊| 熟女色图在线| 欧美性高潮在线| 啊啊啊好湿久久| 天天干人妇| 亚洲色婷婷久久91| 啊啊啊啊啊啊啊在线| 国产精品麻豆成人AV艾秋| 天天色天天干天天爱| 少妇久久久久| 清纯唯美综合亚洲| 国产亚洲性生活视频播放| 91老熟女老女人国产老太| 爱射综合| 国产久久一区二区三区野外在线| 91久青| 日韩国产十八禁| 日韩一级二级在线| 一区中文字幕二区日韩| 91色堂| 色色97爱| 国产高清成人mv在线观看| 久久香蕉网| 久久久久久9999| 92一区二区| 偷拍亚洲熟女视频播放| 无码免费一区二区三区啪啪| 亚洲伊人久久精品狠狠在线| 人妻少妇色综合| 天堂综合网| 草草草视频在线免费看| 97精品| 精品人妻少妇| 午夜精品久久久久久久| 亚洲精品视频在线播放| 夜夜狠狠躁日日躁色视频| 九九九精品一区二区无码| 亚洲人综合19| 天天日天天干天天整| 女优视频第10页| 一牛一区二区三区久久| 日本精品五区| 大伊香蕉在线视频免费| 色综合99999| 亚洲色图欧美色图另类图片| 婷婷久久五月| 国产精品在线一区二区| 亚洲日韩在线a不卡99精品| 亚洲AV无码久久久国产精品| 啊啊啊啊好疼视频| 一个人免费视频观看在线WWW| 日韩操人| 欲香欲色综合天天伊人| 爱av免费| 久久精品人妻一区二区| 国产精品一区二区校花| 色呦呦、国产精品| 69天堂| 91精品久久久久久77777| 亚洲宗合网| 亚洲日本激情| 国产一级久久久| 国产老女人久久毛| 黑操B| 日韩精品资源| 曰韩成人免费视频| 欧美人妻熟女在线| 乱伦av.com| 九草在线大香蕉| 日本操色导航| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 日韩人妻操B| 青青青草原| av一区二区三区 中文| 亚洲伊人久久精品影院| 久久精品中文字幕观看| 欧美高清在线| 爱av免费| 亚洲欧美国产精品久久久久久久| 亚洲一区二区中文字幕| 另类专区加勒比| 亚洲成a人在线观看久| 亚洲熟久久| 18禁美女裸体无遮挡啪啪| 99在线视频播放| 呦呦影院| 啊啊啊啊啊啊啊在线| 最新三级网址| 日本熟妇人妻一区二区三区| 亚洲综合春色| 九九视频黄色片| 美骚妇av高清在线| 1024人妻熟女一区二区三区| 尤物视频新赏网鲜网色诱网| 日韩久久三区| AA特级绝黄| 97欧美色| 大香樵伊人网| 欧美成人性爱视频在线播放| 狠综合网| 国产精品探花视频| 激情婷婷黑人91| 五月婷色| 襙一襙| 精品中文日韩字幕视频| 无遮挡猛进视频免费无限观看| 国产精品久久久午夜夜伦鲁鲁| 国产精品熟女乱伦| 中文字幕丰满人妻日本| 午夜福利在线合集| 曰韩av中文字幕专区| 色噜噜国产精品视频一区二区| 91原创在线观看| 九九九久久久| 另类老少妇| 天天摸,夜夜摸| 思思热在线视频免费| 亚洲熟女乱熟乱熟妇综合网二区| 1024人妻熟女一区二区三区| 日韩图色| 天堂射| 狠狠色婷婷777| 国产精品96| 夜夜操天天肏| 天天添天天干电影| 亚洲系列第一页| 蜜臀99精品国产高清在线观看| 后入 亚洲 美女 射| 人人摸人人摸人人干| 久久久日本电影| 97干色天堂| 国产精品一级特黄aaa大片在线观看| 日韩无码服务区| 一级黄碟在线观看| 91麻豆天美国产欧美| WWW啪啪的com| 人妻三级在线中文字幕| 大香蕉92| 亚洲色资源| 久青草影院| 欧美国产欧美在线观看| 超碰色综合| 亚洲骚男同com| 男女打扑克高清网站| 黄aaaaaaaaaaaaaaaaaa色网站| 久久国产成人精品国产成人亚洲| 激情久久日韩精品中文字幕麻豆| 亚洲图片欧美制度| 五月天久久久| 成人片在线播放| 青青免费在线视频一区| 国产日韩怡红院| 牛牛久久国产精品视频一二三| 亚洲色色色| 国产精品探花视频| 久久中文字幕一区不卡| 91性情| 东京热AV男人的天堂| 天天欧美色| 另类视频在线| 国产在线视视频有精品| 一,爱啪啪,在线免费视频| 91综合色噜噜| 中文字幕国产在线天堂| 欧美色图91| 偷窥自拍亚洲| 劲爆欧美人妖三区91| 婷婷五月天av| 日本三级久| 99热在线播放| 中文字幕一区日韩精| 综合在线导航一区| 欧美强奸乱能| 性在久久久久久| 久久久久久亚洲Av无码| 欧美成人一级麻豆| 亚洲天堂精品日韩电影| 亚洲加勒比| 91熟女在线| 67914在线兔费成人视频| 青青草日韩免费观看高清在线| 操死我干死我| 麻豆AV96熟妇人妻| 大香蕉伊人色偷偷在线| 日韩一区二区精品视频| 97色色网| 美女露胸露屁股| 日本人体九九九九九九| 91久久18禁| 99操| 人人噜夜夜操| 青青草无码视频| 天天躁夜夜躁狠狠躁AV| 久热99999| 久久久精品九| 黄页av| 思思热在线视频在线| 国产精品人妻一区二区| 免费少妇一区二区| 久久精品国产亚洲AV片多多| 极品美女福利在线观看| 久久久激情| 久久国产精品一级二级三级| 五月激情在线| 久久亚洲天天做| 老女人老91妇女老热女| 91女优在线观看 | 99精品高潮| 久草精品一区| 欧美日韩系列| 国产精品96| 一个色导综合| 国产亚洲色婷婷久久99精品91葵花宝典| 粉嫩av在线一区二区| 国产免费一区在线观看| 韩日精品四区| 婷婷丁香一区二区三区| 亚91网| 欧美性爱日韩高清| 日韩乱中文| 免费观看啪视频| 日本在线一二| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 精品国产乱码久久久久久网站入口| 屁股久久久久久久久久| 成 人片 黄色大片| 日本色婷婷| 在线97在线| 国产在线激情| 久久久久久久伊人精品| 激情久久久| 欧美综合加勒比在线| 综合激情一一91| 97国产精品一区| 国产精品久久久久亚洲av| 亚洲国产欧美中日韩成人综合视频| 殴美牲| 欧美亚洲成人在线一区二区三区| 国产精品一区二区密臀| 亚洲图片激情综合另类| 色官网在线| 日少妇亚洲版| 国产精品爽爽v| 亚洲精品第一| 中文字幕在线观看第二页| 四虎在线免费视频| 大屁股人妻女教师撅着屁股| 九九色婷婷| 日韩在线人妻网站| 啊啊啊无码| 婷婷丁香五月天综合东京热| 啊啊啊好湿国产一二| 天天碰久久入| 超碰在线香蕉| 综合国产97| 爱丝福利| 欧美黄片免费在线观看视频| 2001天天操| 久久久久久中文| 草莓精品视频在线免费观看| 午夜天天碰综合视频| 超碰偷拍| 日日摸夜夜夜夜爽| 污污污8888| 超碰97人妻在线| 殴美大黄片| 亚州综合AⅤ| 日韩啊V| 涩五月婷婷| 天堂网 主播 亚洲| 国产精品久久久久久 百度| 黄网站黄视频网站进入口| 嗯嗯不要视频| 中文字幕 国产区| 韩日精品福利视频一区不卡在线免| 欧美97色| 激情综合五月| 殴美色网| 丁香五月天激情网站| 操曰本熟女| 欧美亚洲一级在线观看| 色天使大香蕉| 在线观看一级α片刺激高潮视频| 一区久久久二区| 久久9精品| 丁香五月AV| 中出20p| 日韩性爱高清免费视频| 超碰综合97在线| 激情久久久| 97视频新免费| 久久高清欧美国产| 精品制服美女中文一区二区三区| 国模艳艳啪啪一区| 锕锕好爽 死我在线观看| 天天操人人操狠狠插| 天天干天天中出av| 51一区二区三区| 精品美女久久一二三| 欧美 综合 亚洲| 欧美性爱日韩性爱| 蜜桃一区二区三区| 特级丰满少妇一级AAAA爱毛片| 狠狠躁日日躁夜夜躁A| 2019久久久久久久久福利| 中文久久96| 极品尤物自安慰| k频道色撸撸| 秋霞成人一级在线观看| 亚州,欧美在线| 国产精品一区二区黄片| 超碰久超碰久| 美女超碰978| 久久久999| 欧美天天谢综合网| 乱伦熟妇一区二区| 2017天天透天天通天天擦| 在线无码操| 日韩内| 中文字暮97| 国产区日韩区在线观看| 99精品丰满人妻| 欧美视频在线视频免费va| 蜜臀Av一区二区三区| 久久男人的天堂国产| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 精品国产国产AV| 国产白嫩漂亮KTV在线| 校园春色AV天堂| 九一亚洲国产免费| 青娱乐亚洲自拍| 国语精品av| 亚洲AV乱码专区国产噜噜亚洲| 亚洲小电影免费涩涩成人在线高清| 国产AV人人夜夜澡人人爽麻豆| 香蕉综合网| 色欲天天综合久久久无码网中文| 国产青青美女玩逼视频| 日韩不卡av一二三| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 中文字幕一区 二 区 三 四 五 区日 日 骚| 久热在线精品免费观看| 久久九九精品一区二区 | 97综合在线观看| 久久东京伊人一本到鬼色| JuliaAnn丝袜熟女系列| 狠色婷婷久久一区二区三区_| 国产女人成人精品视频| 欧美人人操人人插| 国产视频97| 亚洲城人男人的天堂| 日本午夜久久电影| 一区操逼| 日韩欧美传媒一区国产| 欧美亚州综合图片| 精品久久青青草| 日本一区二区成人在线| 97超碰站| 97国产精选| 国产AV天美| 色噜噜狠狠色综无码久久合欧美| 亚洲?V无码专区在线电影| 91精品国产91熟女| 夜夜操中文字幕| 无码一区二区三区四区五区六区七区八区九区十区视频 | 97亚洲一区| 韩国一级做A片免费的| 少妇一区二区三区在线观看| 激情五月婷婷综合| 成人性爱视频在线看| 91综合在线| 欧洲精品二区| 91美女国产在线| 精品一区二区麻豆| 日韩精品.久久精品.AV女优.天美传媒| 国产91精品福利在线| 国产精品视频内谢女人| 91在线一起| 欧美极品色| 97亚洲欧美日韩| 中文一区二区婷婷视频| 国产欧美日韩在线观看麻豆传媒公司 | 丁香九月激情啪| 欧美精品99久久久**| 51久久夜色精品国产麻豆| 亚洲天堂男人的天堂| 在线观看啊啊啊啊啊| 久久一二三四不卡 | 亚洲欧美综合| 啊啊啊啊啊好多水| 国产9熟妇视频网站| 人妻激情在线视频| 国产精品毛片| 97欧美色综合| 久草草一二三四区久久| 97视频www| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 婷婷综合激情| 亚洲日韩精品在线播放| 思思热免费在线视频| 亚洲色图综合网| 91久久久久免| 亚洲无码成人精品| 中文字幕在线观看视频www| 久久后入制服| 日本精品第一视频在'| 亚洲日韩欧美一区二区| 伦伦成年午夜免费视频| 欧美性爱网97| 日本激情免费大片| 国产精品久久久久久夜夜夜夜| 中文字幕一二区二三区人妻专区| 日日A∨| 日韩欧美操逼xxx| 97超碰天天| 日韩综合无码色欲vv| 区二区亚洲婷| 波多野结衣先锋影音| 久久久一区二区| 免费在线观看AV无码网站| 综合大香蕉美。| 国产成人网站在线观看| 深夜视频| AV天堂电影网| 欧美十八禁视频| 加勒比AV网| 91看黄片| 色眯眯av| 免费一级毛片在线视频观看| 九久久精| 中文字幕日韩专区精品系列| 精品乱子一区二区三区99| 日本十八禁免费看污网站| 天天看高清麻豆| 亚洲天堂7777| 国产精品伦理| 蜜臀av在线播放一区二区三区| 国产精品诱惑| 97色涩| 一区三区啪啪| 伊人久久AV诱惑悠悠| 精品.99999| 久久性爱精品一区| 狠色婷婷久久一区二区三区_| av在线免费一区二区| 青青草AV色| 国产又粗又又黄又猛| 东北少妇高潮zzzz| 精品国产久久乱码| 久久免费精彩视频| 久久性爱视频99| 亚洲日韩久久精品一区| 九九黄色网| 99精品国产户外露出| 欧美亚洲日韩16色| 偷看洗澡一二三区美女| 九九碰九九爱97超| 330dv亚洲成年视频网| 国产 丝袜 欧美中文 另类| 综合欧美亚洲| 欧美综合 站| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 九九久久久九九| 国产精品无码在线| 操国产高清| 香蕉免费一区二区三区不读| 五月激情啪啪| 国产精品网址| 亚洲天在线| 97视频620| 九九人人操| 2019精品国产无码成人| 色亚洲欧美| 蜜臀人妻少妇久久在线观看| 超碰碰碰碰| 秋霞网—男女啪啪亚洲免费体验区 | 亚洲欧美日韩综合在线尤物 | 欧美顶级黄片AAAAA在线免费看| 亚洲丝袜少妇在线| 熟女AV一区| 防屏蔽在线视频| 超碰在线观看av不卡| 大香蕉狠狠爱| 精品视频久久区| 久久久av爱| 大香蕉婷婷| 中文字幕一区二区在线日韩精品| 1240青青草一区二区三区视频天爱| 和协影院中文字幕三区| 91丝袜美腿网站| 亚洲精品成人| 国产人伦a片信息免费片| 蜜臀久久99精品久久久久久无删减 | 啊啊啊啊视频免费| 99自拍视频在线| 色狠狠 - 百度| 国产精品人妻免费精品| 67914在线兔费成人视频| 亚州色图欧美| 国产精品老熟女一区二区| 少妇高潮特黄A片| 东北少妇高潮zzzz| 欧美综合第一页| 97在线观看免费| 97久久久久久久精| 中文字幕 码 自拍 视频 区| 亚洲乱码国产乱码精网站| 国产AAAAAABBBBB| 91天天综合日韩欧美| 破处bbq| 综合激情一一91| 超碰性爱97| 伊人久久青青草| 色色国产| 熟女突然公开看18禁影片| AV天堂国产| 久久久性| 激情小说亚洲| 久久久久久九九九九| 欧美综合1性辶| 91少妇高潮| 热热色综合网| 夜夜夜夜爽| 亚洲色入欧美| 精品久久大胆人体| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 六月丁丁香| 妺妺跟我一起洗澡没忍住| 伊人激情五月天一区二区| 激情国产乱伦Av| 国产毛片久久久久久久| 国产亚洲精品久久久久小| 男女啪啪啪18禁网站| 我要色综合网| 免费男人的天堂| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 97高清啪啪| 嗯嗯啊啊亚欧精品| 高清不卡视频| 亚洲、日韩、综合、另类| http://qxhbdz.com| 夜夜嗨AV一区天天| 中文字幕在线免费观看视频| 欧美日韩999| 精品人妻伦一二三区久久| 婷婷久久网| 激情五月激情综合网| 超碰91在线| 99综合| 欧美在线视频99| 成人婷婷丁香| 亚洲aV性爱| 六月丁香啪啪啪| 婷婷五月天补不补| 日韩精品人妻中文字幕有码午| 一区二区三区四区五区高清无码永久视频 | 日本男人插女人的逼黄色| 亚洲美女 晚间男人天堂| 麻豆一区二区三区精品| 亚州熟妇精品| 午夜毛片高清免费不卡| 青青久久久| 欧美碰碰综合色| 亚洲国产精品成人久久蜜臀| 婷婷色色五月天福利| WWW.操逼.COM| 久久性爱精品一区| 免费观看国产小粉嫩喷水精品午| 免费中文在线| AA丁香综合激情| 久久久久久久九九九九九九| 神马午夜久久久| 五月天久久婷婷亚洲| 九九热午夜欧亚国产视频| 综合亚洲欧美| 在线视频免费观看午夜| 97在线精品观看视频| 精品久久久久久中文| 中文字幕永久在线| 日韩紧密久久| 劲爆欧美人妖三区91| 99热精品在线观看| 日韩欧美日韩| 精品无码不卡视频| 午夜男人一级A片7777| 亚洲无套久久嗯嗯| 熟妇精品juliaannAV| 日韩精品影视| 九九九网站| 91人妻最真实刺激绿帽| 亚洲最大无码中文字幕网站| 97爱免费插| 97超碰总站| 久久啊啊啊| 精品国产一区二区三区香蕉欧美| 日韩免费看黄片| 2001天天操| 欧美91色| 一二三区操逼国产91| 成人三一级一片aaa| 亚洲天堂,男人| 中文字幕日韩人妻视频一区二区三区交换夫妻| 传媒在线观看一区二区三区| 超碰在线人妻中文字幕| 无码抄逼网| 亚洲成人一二三区| 欧美日韩青操| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 色色色色色色色色色色色色色色综合| 黑丝日韩av丝袜av| 精品日日人妻| 涩综合导航| 五月天婷婷基地| 骚女高跟AV在线| 欧美在线天堂| 精品国产乱码久久久久久口爆网站| 内射中出日韩在线观看视频| 欧美精品亚洲精品日韩传电影| 91免费看一区二区三区| 国产精选三级在线观看| 超碰碰97| 久久78| 美女被艹尤物视频| 有码色中文字幕在线观看| 人妻91少妇| 亚洲国产欧美另类自拍| 素人播放一区| 欧美后入式| 大香蕉一区二区在线观看.| 五月婷婷六月丁香| 精品丰满熟妇人妻一区| 免费啪啪av| 久久婷婷色综合一区二区三区| 免费国产| 欧美一级美片在线观看免费| 志村玲子视频一区二区| 在线五区| 久久精品中文字幕观看| 91 丝袜在线| 日夜伊人网| 无遮挡猛进视频免费无限观看| 97日视频| 国产黄色剧情影片麻豆免费播放| 裸体美女免费看网站青草| 土豪酒店各种姿势玩弄极品幼稚| 五月丁香黄色网| 天堂蜜桃无码视频一区二区| 综合网亚洲在线| 免费中文在线| 香蕉av一区二区三区| 国产亚洲精品精AV.| 大香蕉伊利av| 综合久久2017| 免费看日本操逼视频| 97视频在线视频| 一区二区三区在线美女| 亚洲天堂综合AV| 国色综合天| 大香蕉丝袜一级片| 一区二区三区四区在线不卡| 精品人妻一区二区视频| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 蜜臀一区二区三区在线| 国产激情久久| 日韩有码中文字幕女同性恋 | 亚洲欧美国产日本一区二区三区| 一区二区三区成人| 2019久久久久久久久福利| 国产25页| 亚欧视频在线| 无码男人天堂| 欧美性巨大╳╳╳╳╳高跟鞋| 情色五月天网| 黄色av片三级三级三级免费看| 精品成人女人久久| 制度丝袜99| 熟妇国产免费一区| 人人妻人人爽 97人人看碰人免费公开视频| 97爱欧美| 人人摸.人人色| 91美女在线看| 亚洲第一免费视频| 天天日美女的B| 欧美色性爱| 97操综合| 色狠狠综合| 欧美综合网在线| 99啪| 国产精品不卡一区二区三区av| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 日本操逼二区| 99热国产| 日本三级精品| 人妻久久久久久久久久久久久久久| 可免费观看的av毛片中日美韩| 国产白嫩精品久久| 欧美精品23| 激情黄色五月天| 欧美熟女操屄| 大香蕉草草| 精品久久青青草| 欧亚日韩中文在线| 免费农村成人少妇人妻Aa一区二区视频| 欧美偷拍区| 插入粉嫩少妇视频| 性做久久久久久免费观看软件| 久久香蕉国产线看观看亚洲女人 | 久久中文字幕一区不卡| 日日日大屁股骚女人精品| 高跟丝袜AV专区国产| 久久久久久十| 中文字日本乱码| 日韩美女操b| 美女上床网站| 欧美日韩m| 国产精品嫩草影院免费| 国产自偷| 久久9 9 9精品| 人人操人人摸人人看人人干| 南澳成人一级片在线播放| 日韩亚洲美女一区久久| 91深夜夜| 超碰吊日色| 亚洲色图欧美色图制服丝袜| 约操熟妇| 亚欧成人一级片在线播放| 色九月综合| 国模少妇一区二区三区 | 成人亚欧免费视频| 日韩射精| 77国产精品| 一起草av| 日本成人免费一区二区三区| av日韩中文字幕| 天天欧美色| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 91女人的网站| 国产精品一级特黄aaa大片在线观看| 99精品九九九九九九| 丝袜综合| 天天插天天操| 亚洲国产精品成人综合| 97网站在线观看| 玖玖蜜臀资源网| 91久久久久久| 大香蕉一区二区在线观看.| 玖玖爱视频网站| 天天综合欧美综合| 成人婷婷丁香| 亚洲精品xxx| 欧美不在线| 98福利在线视频| 97激情97激情| 九热视频| 曰韩操B| 97香蕉网| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 日韩亚洲国产视频| 超碰95| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 97在线精品观看视频| 91亚洲欧美激情| 玖玖草久草99蜜月一区二区三区| 九九久久久九九| 极品极品色影院| 日韩在线性爱免费视频| 欧美色图20p| 91蜜臀人妻中文字幕在线| 蜜臀久久在线视频| 偷拍欧美综合| 亚洲AV无码成人精品久久| 日韩熟女乱伦中出| 九九久久玖玖| 91模特在线观看| 欧美色图 人妻| 日本一二三高清| 久久99热这里只频精品6学生| 特级毛片特黄久久免费看| 日韩成年人性爱视频| 600国产精品视频| 久久风骚城市| 久久夜精品一区二区三区| 亚洲熟妇乱女区二区三区| 天天插天天干| 国产小u女在线观看| 日韩欧美成人性爱在线| 91亚洲人| 不卡视频一区蜜桃视频| 国产黑白丝在线| 亚洲色图综合网| 97香蕉人人乳| 国产精品91一样| 丁香五月成人| 国模精品娜娜一二三区| 日韩欧美国产高清视频| 日本操逼视频导航| 综合影院永久入口国产| 亚洲国产97| 国产精品日日摸夜夜添骚逼| 欧美同性恋 的搜索结果 - 91n| 麻豆传媒一区二区在线观看| 超碰碰激情97+久| 久操 高清| 亚洲自拍另类丝袜综合| 高清不卡国产| 丁香六月婷婷久久综合| 色婷婷久久| 久草视频在线视频在线视频在线观看| 日本三级A片网站com| 日韩欧美大片免费高清啪啪| 日韩一卡二卡三卡| 全国男人天堂网| 色综合 加勒比| 少妇精品久久久八区九区| 安微少妇操BBB| 久久人妻一区二区三区高清 | 性吧在线视频| 九九在线精品| 蜜臀久久99精品久久综合| 精品国产一区二区三区av在线资源| 亚洲图片偷拍视频区| 婷婷色播婷婷| 丁香六月婷婷综合| 婷婷五月天福利| 亚洲日韩精品在线播放| 日日爽夜夜爽| 久久香蕉国产传媒一区剧情天美| 91精品91久久久中77777| 久久久久免费少妇| 亚洲 91 在线| 四虎影库国产精品免费| 九久9热| 少妇内射www在线观看视频| 欧美国产成人在线| 久久宗合亚洲| 综合自拍| 色香欲综合| 日韩中文字墓| 亚洲中文字幕熟女| 操人人| 狠狠色狠狠色狠狠五月| 一级特级aaaa毛片免费观看| 欧美日韩性爱精品| 久久一二三四五六七八九区区区| 草草影院在线视频| 日日干夜夜操视频h| 亚洲欧美日产国产91毛片| 91九九九吃| 亚洲欧美91√| 99rre在线精品99re8| 综合网 欧美| 婷婷爽人人婷婷爽视频| 免费家庭乱伦视频| 操逼国产免费| **一级毛片国产| 91亚洲不卡一区| 淫骚熟女一区二区三区| 尤物视频偷拍免费| 亚洲色图亚洲| 国产日韩手机视频在线| 国产大学生口爆吞精合集| 九九在线精品| 中文字幕丝袜人妻| 欧美激情久久久久| 人妻美腿丝袜日韩| 亚洲超碰97| 欧美日产国产在线成人第一区| 国产成人无码高清| 亚洲精品97在线| 日韩欧美偷拍美女视频| 亚洲精品乱码久久久久久蜜桃麻豆| 九九九久久久| 日韩无码黄色片| 成人情色一区二区| 曰本91情色| 香港久久久| 超碰在线欧美性爱激情| 亚洲AV永久无码一区仙野| 欧美男女午夜啪啪| 夜夜综合| 亚州综合色| 99国产精品视频尤物| 久久婷婷伊人| 日日骚 av| 99热在线只有精品| www久久国产精品| 亚洲成人综合在线| 日韩精品人妻中文字幕有码午| 91 国产丝袜在线播放-百度| 久久久亚洲精品中文字幕人妻| 久久欲| 久久HD| 加勒比综合九九99视频在线播放| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 粉嫩av一区二区三区天美传媒| 人人操我人人干| 国产一级片| 欧美色天堂网在线视频| 天天日天天插| 中文字幕交换人妻| 丝袜美腿诱惑亚洲欧美视频在线观看| 日韩激情视频| 男女香蕉一区二区| 日韩中文字幕视频| av中文在线| 好舒服视频| www久久国产精品| 色婷五月| 国产嫩草精品A88AV在线| 欧美激情内射| 亚洲少妇综合在线播放| 日本青青草在线| 久久黄人人爽视频| 亚洲暴力强奸AV| 亚洲 欧美 另类 综合 偷拍| 大香蕉伊人75| 最新中文字幕在线亚洲| 嫩草 人人网精品| 超碰97 线线 在现| 熟妇操花| 老熟妇综合| 日本一区二区亚洲综合| 六月激情婷婷| 超碰1997| 国产日韩在线播放av| 天天操av懂色| 麻豆一区二区AV天美| 国产懂色精品国产av| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 色99久草| 欧美精品二区视频在线| 亚洲成人av色网| 日韩无码服务区| 26uuu最新| 国产欧美精品日韩区二区麻豆天美| 超碰社区97| A 在线网址| 九热大香蕉| 午夜小电影在线插入淫高潮| 亚洲制服欧美另类内射| 欧美日韩天堂| 一二三四视频中文字幕在线看| 久久人妻视频网| 亚洲图片91| 99ri视频| 色悠久久久av| 99精品久久久久久久婷婷| 青娱乐大香蕉| 少妇久久| 久久人妻四季| 亚洲91网| 欧美另类色图片| 春色91| 性爱av在线免费观看| 91模特在线观看| 在线观看黄色电话| 丝袜狂射91| 亚洲av无线观看| 韩国嫰模上门援交视频| 国产精品一级片在线看| 久久人妻无码毛片A片麻豆| 福利社区午夜一区二区| 熟妇熟女一区二三区| 91精品无码久久久久久久| 97干com| 日日夜夜免费| 蜜臀av一区二区三区免费观看| 欧洲精品二区| 亚 欧 美 综合| 久久久亚洲熟妇熟女| 久久久久精| 日本熟女不卡视频| 天天日日本| 天堂v无码免费视频| 欧美爆操91| 欧美Aⅴ| 少妇内射视频| 国产树林里野战在线看| 激情文学小说一区二区| 日本九九九九| 欧成人精品一区二区三区| 翔田千里av一区二区三区| 黄页av| 中文字幕91综合| 欧美日日操| 在线中文AV| 亚洲精品久久久久久久蜜桃臀| 熟妇人妻精品一区二区| 日韩国语字幕| 国产熟女精品一区二区| 狠狠搞 亚洲91| WWW啪啪的com| 人人澡人人澡人人| 激情久久久|