亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

SpringBoot+Vue3汽車租賃管理系統(tǒng):時間沖突檢測與狀態(tài)機(jī)設(shè)計(jì)實(shí)戰(zhàn)

SpringBoot+Vue3汽車租賃管理系統(tǒng):時間沖突檢測與狀態(tài)機(jī)設(shè)計(jì)實(shí)戰(zhàn) 我去年完整做了一套汽車租賃管理系統(tǒng)技術(shù)棧就是標(biāo)題里那套SpringBoot Vue3 MyBatis MySQL前后端分離。做之前以為就是一個普通的業(yè)務(wù)管理系統(tǒng)做順了才發(fā)現(xiàn)租賃類業(yè)務(wù)和常規(guī)CRUD完全是兩碼事——它有一個繞不開的核心約束同一輛車在同一時間段只能被一個訂單占用。這個時間窗口的沖突檢測加上訂單從下單到還車的全生命周期狀態(tài)流轉(zhuǎn)才是這套系統(tǒng)真正有含金量的地方。這篇文章把我從頭到尾的設(shè)計(jì)思路、表結(jié)構(gòu)設(shè)計(jì)、核心接口邏輯、前端交互方案以及實(shí)測中踩過的坑完整復(fù)盤一遍。不管你是正在準(zhǔn)備Java全棧項(xiàng)目、想充實(shí)簡歷的應(yīng)屆生還是公司要快速落地一套租賃類業(yè)務(wù)后臺這套設(shè)計(jì)都能直接參考。1. 技術(shù)棧選型為什么是SpringBootVue3MyBatis而不是別家組合1.1 四個組件各自解決什么問題這套技術(shù)棧放到今天已經(jīng)不算新潮但它依舊是Java企業(yè)級項(xiàng)目里最穩(wěn)的組合。SpringBoot負(fù)責(zé)把后端的集成工作簡化到極致嵌入式Tomcat、自動配置、starter機(jī)制省去大量XML配置MyBatis負(fù)責(zé)SQL的可控性租賃系統(tǒng)里查詢條件特別多車型、價格區(qū)間、狀態(tài)、租期組合查詢一多動態(tài)SQL的價值就體現(xiàn)出來了Vue3配合Vite和Element Plus做后臺管理界面和用戶端頁面都很順手MySQL負(fù)責(zé)數(shù)據(jù)持久化輕量、穩(wěn)定、資料多作為中小型業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫完全夠用。有人會問現(xiàn)在MyBatis-Plus這么流行為什么不用兩個原因。第一這個項(xiàng)目體量不大原生MyBatis完全能把SQL控制住不會出現(xiàn)幾百行動態(tài)SQL的極端場景第二MyBatis的動態(tài)SQL和XML映射是Java面試??键c(diǎn)用原生方式把這塊吃透對面試幫助更大。實(shí)際開發(fā)中團(tuán)隊(duì)用MP還是原生那是團(tuán)隊(duì)習(xí)慣問題但對于個人項(xiàng)目我建議至少要能獨(dú)立寫出XML里的動態(tài)SQL。1.2 項(xiàng)目邊界這個系統(tǒng)到底做什么做一個系統(tǒng)之前先把邊界劃清楚否則容易越做越失控。我的設(shè)計(jì)是兩類角色、兩條主線。普通用戶能做的事注冊登錄、瀏覽車輛、選擇租期下單、在線支付押金和租金、查看個人訂單、還車結(jié)算。管理員能做的事車輛增刪改查、車輛上架下架、訂單審核、確認(rèn)取車、確認(rèn)還車、訂單結(jié)算。這個邊界劃好后前后端的功能范圍就定了接口數(shù)量也能數(shù)得出來。全系統(tǒng)核心接口大概二十來個后端分用戶模塊、車輛模塊、訂單模塊前端分用戶端和管理端兩個獨(dú)立視圖。邊界清晰的好處是開發(fā)過程中不會出現(xiàn)“要不要加個站內(nèi)信”、“要不要做積分系統(tǒng)”這種沒完沒了的需求蔓延。1.3 前后端分離的關(guān)鍵收益前后端分離不是趕時髦對這個項(xiàng)目來說有幾個實(shí)際收益。第一開發(fā)過程中后端不需要關(guān)心頁面長什么樣只返回JSON前端也不需要關(guān)心SQL怎么查只負(fù)責(zé)渲染和交互我可以并行推進(jìn)第二部署上后端是一個jar包前端是一堆靜態(tài)文件可以單獨(dú)發(fā)布前端改樣式不用重新打包后端第三將來如果要做小程序端或者App端后端接口可以直接復(fù)用不用重寫。代價也有就是聯(lián)調(diào)成本變高了。前端需要知道后端接口返回的數(shù)據(jù)結(jié)構(gòu)后端需要知道前端需要什么字段。我的辦法是后端統(tǒng)一返回結(jié)構(gòu)所有數(shù)據(jù)都包在Result對象里前端拿到后按約定解析。這個統(tǒng)一約定后面專門有一節(jié)說。2. 數(shù)據(jù)庫模型車輛、訂單、用戶三張核心表的設(shè)計(jì)邏輯2.1 核心表結(jié)構(gòu)與建表SQL數(shù)據(jù)庫設(shè)計(jì)是這套系統(tǒng)的地基。我用的核心表就三張用戶表、車輛表、訂單表。不要加太多冗余表更不要用物理外鍵業(yè)務(wù)關(guān)系靠代碼邏輯維護(hù)索引來保證查詢性能。用戶表id、用戶名、密碼、手機(jī)號、身份證號、角色、狀態(tài)、創(chuàng)建時間。密碼我用了BCrypt加密存儲明文存密碼在真實(shí)項(xiàng)目里是絕對紅線。數(shù)據(jù)庫字段類型金額用decimal時間用datetime狀態(tài)用tinyint。車輛表這里信息量比較大我貼一下實(shí)際的建表SQLCREATE TABLE car ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 車輛ID, brand VARCHAR(50) NOT NULL COMMENT 品牌, model VARCHAR(50) NOT NULL COMMENT 車型, plate_number VARCHAR(20) NOT NULL UNIQUE COMMENT 車牌號, category TINYINT NOT NULL DEFAULT 0 COMMENT 車型分類 0-經(jīng)濟(jì)型 1-SUV 2-商務(wù)型 3-豪華型, daily_price DECIMAL(10,2) NOT NULL COMMENT 日租金, deposit DECIMAL(10,2) NOT NULL COMMENT 押金, status TINYINT NOT NULL DEFAULT 0 COMMENT 狀態(tài) 0-可租 1-已租出 2-維修中 3-已下架, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 創(chuàng)建時間 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT車輛表; CREATE TABLE orders ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 訂單ID, order_no VARCHAR(32) NOT NULL UNIQUE COMMENT 訂單編號, user_id BIGINT NOT NULL COMMENT 用戶ID, car_id BIGINT NOT NULL COMMENT 車輛ID, start_time DATETIME NOT NULL COMMENT 取車時間, end_time DATETIME NOT NULL COMMENT 還車時間, daily_price DECIMAL(10,2) NOT NULL COMMENT 下單時日租金快照, total_days INT NOT NULL COMMENT 租期天數(shù), amount DECIMAL(10,2) NOT NULL COMMENT 租金金額, deposit DECIMAL(10,2) NOT NULL COMMENT 押金金額, status TINYINT NOT NULL DEFAULT 0 COMMENT 狀態(tài) 0-待支付 1-已支付待取車 2-租賃中 3-已完成 4-已取消, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 下單時間, pay_time DATETIME NULL COMMENT 支付時間, finish_time DATETIME NULL COMMENT 完成時間, INDEX idx_user_id (user_id), INDEX idx_car_id (car_id), INDEX idx_start_time (start_time) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT訂單表;有幾個字段容易被忽略我單獨(dú)說。orders表里的daily_price字段是“下單時日租金快照”這個很重要。車輛日常價格會變比如節(jié)假日調(diào)價訂單一旦創(chuàng)建租金就得按下單那一刻的價格算不能在結(jié)算時又去讀車輛表的最新價格否則用戶會投訴。這是一個很典型的訂單設(shè)計(jì)原則金額類信息必須做快照不做實(shí)時關(guān)聯(lián)。訂單編號我用的是當(dāng)前時間加隨機(jī)數(shù)生成格式類似yyyyMMddHHmmss 4位隨機(jī)數(shù)保證同一秒內(nèi)并發(fā)也不會重復(fù)。生產(chǎn)環(huán)境可以用雪花ID或者Redis自增個人項(xiàng)目這個簡化方案完全夠。2.2 車輛和訂單的狀態(tài)機(jī)設(shè)計(jì)狀態(tài)字段我全部用tinyint從0開始遞增。為什么不用字符串三個原因省空間、查詢快、代碼里定義常量類后可讀性也不差。真正要注意的是別把魔法數(shù)字寫死在代碼里我在后端建了一個枚舉類把所有狀態(tài)做成枚舉前端再用映射字典把數(shù)字翻譯成中文標(biāo)簽。訂單狀態(tài)流轉(zhuǎn)是最核心的業(yè)務(wù)規(guī)則。從用戶角度看是這個鏈路待支付 - 已支付待取車 - 租賃中 - 已完成任意狀態(tài)下取消則進(jìn)入已取消。從管理員角度看這里面有兩次人工確認(rèn)動作確認(rèn)取車和確認(rèn)還車。為什么要人工確認(rèn)因?yàn)榫€下要驗(yàn)車車況沒問題才交接這個動作必須由管理員觸發(fā)不能全自動。狀態(tài)流轉(zhuǎn)用表格表示當(dāng)前狀態(tài)觸發(fā)動作下一狀態(tài)誰觸發(fā)0 待支付支付成功1 已支付待取車用戶0 待支付取消訂單4 已取消用戶1 已支付待取車管理員確認(rèn)取車2 租賃中管理員2 租賃中管理員確認(rèn)還車3 已完成管理員1 已支付待取車超時未取車4 已取消系統(tǒng)/管理員這套狀態(tài)機(jī)定義清晰后代碼里每個狀態(tài)下的按鈕、接口邏輯、車輛狀態(tài)配合都變得非常明確不需要在每個接口里臨時判斷一堆if。2.3 時間沖突檢測租賃系統(tǒng)最核心的業(yè)務(wù)校驗(yàn)這是整套系統(tǒng)最有含金量的地方。車輛表里有status字段標(biāo)記是否在租但只有這個還不夠——一個訂單還沒創(chuàng)建時車是“可租”的可一旦有人在某個時間段已經(jīng)預(yù)定了又沒到取車時間車已經(jīng)處于被占用的窗口期。這個時候需要靠訂單表來判斷。判斷邏輯可以歸結(jié)為一句話新訂單的租期 [newStart, newEnd] 與某個已占用訂單的租期 [oldStart, oldEnd] 是否存在重疊區(qū)間。SQL寫法是這樣的SELECT COUNT(*) FROM orders WHERE car_id #{carId} AND status IN (1, 2) AND start_time #{newEndTime} AND end_time #{newStartTime}這里status IN (1, 2)排除了已取消和已完成的訂單。這個區(qū)間重疊判斷覆蓋了四種情況新訂單完全包含舊訂單、新訂單被舊訂單包含、新訂單左端與舊訂單右端重疊、新訂單右端與舊訂單左端重疊。凡是這四種情況里任意一種count都大于0就不能下單。邊界情況要注意處理有人會問前一個訂單還車時間是9:00新訂單取車時間也是9:00算不算沖突嚴(yán)格說這取決于業(yè)務(wù)規(guī)則。我的規(guī)則是不允許邊界緊貼所以SQL里用的是和不是和。如果業(yè)務(wù)上允許9點(diǎn)整還車9點(diǎn)整租出那要用和處理。這個細(xì)節(jié)最好和業(yè)務(wù)方確認(rèn)清楚再定。3. 后端實(shí)現(xiàn)里容易翻車的三個點(diǎn)金額、狀態(tài)、動態(tài)SQL3.1 金額計(jì)算與BigDecimal的精度陷阱租金計(jì)算看起來簡單日租金 × 天數(shù) 押金但實(shí)操里有兩個坑。第一個坑是數(shù)據(jù)類型金額一律用BigDecimal計(jì)算數(shù)據(jù)庫里用decimal(10,2)絕不能用float或double。0.1 0.2 在double里的結(jié)果是0.30000000000000004這個精度錯誤在金額上會造成分賬差錯測試時還不容易發(fā)現(xiàn)。第二個坑是租期天數(shù)的計(jì)算邏輯兩個datetime之間做差得到毫秒數(shù)再除以一天的毫秒數(shù)這里牽扯時區(qū)問題取整規(guī)則也要定好。我這里的使用者是按整天租賃的所以天數(shù)計(jì)算采用向上取整當(dāng)天取當(dāng)晚還也算一天。代碼很簡單long diffMs endTime.getTime() - startTime.getTime(); int totalDays (int) Math.ceil(diffMs / (1000.0 * 3600 * 24)); BigDecimal amount dailyPrice.multiply(BigDecimal.valueOf(totalDays));這個計(jì)算邏輯后端寫好后前端也必須要寫一模一樣的預(yù)估價邏輯。我的做法是在前端展示預(yù)估費(fèi)用但最終費(fèi)用以后端訂單詳情里的金額為準(zhǔn)。如果兩邊口徑不一致用戶看到預(yù)估100元下單后變成120元體驗(yàn)非常差。3.2 防止“搶車”條件更新比先查再改可靠租賃系統(tǒng)并發(fā)場景下容易出現(xiàn)一個bug兩個用戶同時看中同一輛車同時提交訂單結(jié)果兩個訂單都創(chuàng)建成功。解決辦法是兩層防護(hù)。第一層創(chuàng)建訂單前執(zhí)行上面那個沖突檢測SQLcount為0才允許創(chuàng)建第二層創(chuàng)建訂單時會同步把車輛狀態(tài)改為已租出這個更新操作必須加條件UPDATE car SET status 1 WHERE id #{carId} AND status 0注意這里的關(guān)鍵點(diǎn)update語句里帶了AND status 0這個條件。如果車輛已經(jīng)被其他訂單改成了已租出這條update受影響的行數(shù)就是0通過Java代碼判斷affectedRows如果為0就拋出異常讓當(dāng)前事務(wù)回滾這樣即使兩個用戶同時提交也只有一個能成功。這個設(shè)計(jì)比“先SELECT再UPDATE”的常規(guī)寫法更可靠因?yàn)樵诟卟l(fā)環(huán)境下select之后、update之前的那段時間里車輛狀態(tài)可能已經(jīng)被別人改了。條件更新本質(zhì)上是一種樂觀鎖思路用狀態(tài)本身做版本校驗(yàn)。3.3 MyBatis動態(tài)SQL和事務(wù)邊界MyBatis的動態(tài)SQL是查詢條件不確定時的核心武器。比如車輛列表頁用戶可以按品牌模糊查、按車型分類查、按價格區(qū)段查、按狀態(tài)查這些條件任意組合。用XML的 標(biāo)簽加 標(biāo)簽就能輕松搞定select idlistCars resultTypecom.example.entity.Car SELECT * FROM car where if testbrand ! null and brand ! AND brand LIKE CONCAT(%, #{brand}, %) /if if testcategory ! null AND category #{category} /if if teststatus ! null AND status #{status} /if /where ORDER BY create_time DESC /select標(biāo)簽的好處是如果所有條件都不滿足它不會生成WHERE關(guān)鍵字如果第一個條件成立它會自動去掉多出來的AND。這里要注意 里的判空不僅要判null還要判空字符串尤其前端傳空字符串的時候brand ! null攔不住。事務(wù)邊界是另一個容易翻車的地方。創(chuàng)建訂單這個操作涉及三件事插入訂單記錄、更新車輛狀態(tài)為已租出、記錄支付流水。這三個操作必須在一個事務(wù)里任何一個失敗都要全部回滾否則會出現(xiàn)訂單存在但車輛狀態(tài)沒改的臟數(shù)據(jù)。實(shí)現(xiàn)方式就是在service方法上添加Transactional注解。但要注意一個Spring事務(wù)自調(diào)用失效的問題同一個類里方法A調(diào)用方法BB上面有Transactional是無效的事務(wù)不會開啟。事務(wù)方法是代理對象調(diào)用才生效所以事務(wù)邏輯要設(shè)計(jì)在獨(dú)立的service類里別在controller里寫業(yè)務(wù)事務(wù)也別在一個類內(nèi)部調(diào)來調(diào)去。4. Vue3前端用戶端和管理端分開設(shè)計(jì)4.1 前端工程結(jié)構(gòu)和路由設(shè)計(jì)前端我用Vite初始化Vue3項(xiàng)目用TypeScript還是JavaScript這個項(xiàng)目我用的是JavaScript團(tuán)隊(duì)項(xiàng)目用TS另說個人項(xiàng)目里JS改起來更快。UI庫用Element Plus狀態(tài)管理用PiniaHTTP請求用Axios。目錄結(jié)構(gòu)比較常規(guī)src/ api/ 接口請求定義 store/ Pinia狀態(tài)管理存token和用戶信息 router/ 路由配置 views/user/ 用戶端頁面 views/admin/ 管理端頁面 utils/ axios實(shí)例和工具函數(shù)路由這塊用前端路由守衛(wèi)配合后端鑒權(quán)雙層控制。前端路由分為用戶端和管理端兩組管理員登錄后才顯示管理端菜單普通用戶訪問管理端路由直接跳首頁。后端的攔截器還要再校驗(yàn)一次兩層的權(quán)限攔截不能互相替代。4.2 用戶端選車、下單、支付的交互鏈路用戶端的核心交互是四個步驟瀏覽車輛 - 查看詳情 - 選時間下單 - 支付。車輛列表頁用卡片展示每輛車顯示名稱、分類標(biāo)簽、日租金、押金、當(dāng)前狀態(tài)。狀態(tài)為“可租”的車輛才可以點(diǎn)擊查看詳情其他狀態(tài)置灰。這個細(xì)節(jié)很重要用戶看到一輛在租的車點(diǎn)進(jìn)去發(fā)現(xiàn)下不了單體驗(yàn)很差。車輛詳情頁是交互最關(guān)鍵的地方。頁面里放了兩個日期選擇器分別是取車時間和還車時間默認(rèn)取車時間是明天還車時間是后天。用戶一選完時間前端立刻計(jì)算預(yù)估費(fèi)用并展示出來。計(jì)算公式和后端完全一致const diffMs new Date(endTime).getTime() - new Date(startTime).getTime() const days Math.ceil(diffMs / (1000 * 3600 * 24)) const estimate dailyPrice * days deposit用戶點(diǎn)擊下單前端把carId、startTime、endTime提交到后端。后端返回訂單ID和應(yīng)付金額前端彈一個支付確認(rèn)框上面顯示明細(xì)租金多少、押金多少、合計(jì)多少。本項(xiàng)目用模擬支付點(diǎn)確認(rèn)就調(diào)用支付接口把訂單狀態(tài)從待支付改成已支付待取車。真實(shí)項(xiàng)目中這一步要對接微信或支付寶邏輯上只是把模擬支付的接口換成真正的支付回調(diào)。4.3 管理端用狀態(tài)驅(qū)動按鈕顯隱管理端訂單管理頁是最能體現(xiàn)狀態(tài)機(jī)設(shè)計(jì)價值的地方。頁面用表格展示所有訂單每一行根據(jù)訂單狀態(tài)顯示不同的操作按鈕訂單狀態(tài)顯示的操作按鈕0 待支付查看詳情、取消1 已支付待取車確認(rèn)取車2 租賃中確認(rèn)還車3 已完成查看詳情4 已取消查看詳情Element Plus的el-table里可以通過條件渲染動態(tài)控制按鈕是否顯示操作列根據(jù)狀態(tài)對象里的屬性來判斷。這樣做的好處是代碼邏輯非常簡單不會出現(xiàn)一堆亂七八糟的v-if每個狀態(tài)對應(yīng)什么操作是固定的數(shù)據(jù)驅(qū)動的思路。車輛管理頁相對簡單表格展示車輛列表新增和編輯用彈窗表單。這里容易被忽略的是車輛分類和日租金的表單校驗(yàn)分類用一個下拉框取值范圍要和后端枚舉對齊。還有“上架/下架”操作下架的車不允許再下單這個操作本質(zhì)就是更新車輛status字段為3。4.4 前端狀態(tài)管理和權(quán)限控制用戶登錄后的token、用戶基本信息、角色信息我都放在Pinia里。Axios的請求攔截器統(tǒng)一從store里取token加到Authorization請求頭響應(yīng)攔截器判斷后端返回code如果不是200就彈出錯誤提示如果是401表示token過期清除本地登錄狀態(tài)跳轉(zhuǎn)登錄頁。這個模式幾乎是Vue3前后端分離項(xiàng)目里固定套路但值得注意的一點(diǎn)是響應(yīng)攔截器的錯誤提示不能太生硬要區(qū)分是網(wǎng)絡(luò)錯誤還是業(yè)務(wù)錯誤業(yè)務(wù)錯誤比如庫存不足要用后端的message內(nèi)容提示網(wǎng)絡(luò)錯誤則統(tǒng)一提示“網(wǎng)絡(luò)異常請稍后重試”。5. 前后端聯(lián)調(diào)的關(guān)鍵細(xì)節(jié)統(tǒng)一返回結(jié)構(gòu)、JWT鑒權(quán)、跨域5.1 統(tǒng)一接口返回結(jié)構(gòu)前后端分離的項(xiàng)目最忌諱各寫各的后端返回原生對象字段名一個叫createTime前端需要的卻是createdAt聯(lián)調(diào)時改來改去。我從一開始就定了統(tǒng)一的返回結(jié)構(gòu){ code: 200, message: success, data: {} }code為200表示成功非200表示業(yè)務(wù)異常message里放給用戶看的提示信息data里放業(yè)務(wù)數(shù)據(jù)。后端所有接口都返回這個Result對象泛型保證data的類型安全。這么做的好處是前端的響應(yīng)攔截器可以全局統(tǒng)一處理code為200時直接返回data非200時統(tǒng)一彈message。前端每個請求都不用重復(fù)寫錯誤處理代碼。5.2 JWT登錄態(tài)設(shè)計(jì)前后端分離后服務(wù)端不再維護(hù)Session登錄態(tài)用什么方案我用的是JWT。流程是登錄接口校驗(yàn)用戶名密碼成功后后端生成一個token返回給前端前端存到localStorage里之后每次請求都在Authorization頭帶上這個token后端攔截器解析token獲取用戶信息。生成token我用的是jjwt庫token里可以放userId和role過期時間設(shè)24小時。后端寫一個攔截器在HandlerInterceptor的preHandle里解析token解析成功就放行失敗就返回401。要注意的是攔截器放行的白名單要放好登錄、注冊、車輛列表查詢這些接口是不需要登錄就能訪問的不能攔截但下單、支付、管理端所有接口必須登錄后才能訪問。管理員的接口校驗(yàn)要加角色判斷普通用戶拿自己的token調(diào)管理員接口也必須拒絕。5.3 開發(fā)環(huán)境和生產(chǎn)環(huán)境的跨域處理開發(fā)階段前后端分離前端跑在5173端口后端跑在8080端口跨域問題避免不了。我的方案是開發(fā)環(huán)境用Vite的proxy代理把前端的/api請求轉(zhuǎn)發(fā)到后端// vite.config.js server: { proxy: { /api: { target: http://localhost:8080, changeOrigin: true } } }生產(chǎn)環(huán)境則用Nginx反向代理讓前端靜態(tài)頁面和后端接口在同一個域名下徹底避免跨域問題。Nginx配置里把/api路徑轉(zhuǎn)發(fā)到后端服務(wù)其他路徑返回前端dist目錄的靜態(tài)文件。我在部署時會加上try_files配置后面踩坑記錄里會詳細(xì)說。6. 打包部署與實(shí)測踩坑記錄6.1 前后端打包流程后端打包用Maven命令很簡單mvn clean package -DskipTests生成的jar在target目錄直接java -jar跑起來。前端打包用Vitenpm run build生成dist目錄。生產(chǎn)部署我是把后端jar和前端dist都放到同一臺服務(wù)器上后端跑SpringBoot服務(wù)監(jiān)聽8080端口前端dist目錄由Nginx托管。6.2 我在實(shí)測中遇到的真坑第一個坑是MySQL時區(qū)導(dǎo)致的日期錯亂。系統(tǒng)上線后發(fā)現(xiàn)訂單的創(chuàng)建時間比本地時間晚了8個小時原因是JDBC連接串里沒配時區(qū)。解決方法是連接串加上參數(shù)jdbc:mysql://localhost:3306/car_rental?serverTimezoneAsia/ShanghaicharacterEncodingutf8useSSLfalse這個坑在本地開發(fā)時可能不出現(xiàn)因?yàn)楸镜豈ySQL時區(qū)恰好和系統(tǒng)一致部署到云服務(wù)器或者用Docker跑MySQL時就會暴露。遇到時間相關(guān)的問題第一反應(yīng)就是查時區(qū)配置。第二個坑是Linux下MySQL表名大小寫敏感。本地Windows開發(fā)時一切正常部署到Linux服務(wù)器后程序報(bào)“Table car_rental.CAR doesnt exist”因?yàn)槲业腟QL里寫的是大寫表名Windows下MySQL默認(rèn)不區(qū)分大小寫Linux下區(qū)分。解決方法兩種要么所有SQL統(tǒng)一小寫表名要么在MySQL配置里加lower_case_table_names1。個人項(xiàng)目改SQL統(tǒng)一比較穩(wěn)妥。第三個坑是Vue打包部署后刷新頁面出現(xiàn)404。原因很簡單前端路由用的是history模式Nginx默認(rèn)配置下刷新 /orders/123 這樣的路徑時Nginx去磁盤上找這個路徑對應(yīng)的文件找不到就404。要在Nginx配置里加上location / { try_files $uri $uri/ /index.html; }這個配置的意思是如果請求的路徑不存在就回退到index.html讓前端路由自己解析。第四個坑是業(yè)務(wù)層面的訂單取消或還車后車輛狀態(tài)要記得恢復(fù)。這個看起來理所當(dāng)然但我在開發(fā)時漏過用戶下單后取消訂單訂單狀態(tài)改成已取消但車輛狀態(tài)還是已租出這輛車就永遠(yuǎn)租不出去了。后來在service方法里嚴(yán)格按狀態(tài)機(jī)流轉(zhuǎn)訂單取消的同時把車輛狀態(tài)改回可租并且放在同一個事務(wù)里才算徹底解決。6.3 這個項(xiàng)目的后續(xù)擴(kuò)展空間系統(tǒng)做完了功能上是完整的但還有幾個方向可以繼續(xù)擴(kuò)展。第一個是把前端預(yù)估費(fèi)用的邏輯抽出來獨(dú)立成一個費(fèi)用計(jì)算工具后續(xù)如果支持半天租、按時租前后端只改這個工具就行。第二個是給車輛加價格日歷節(jié)假日和旺季可以動態(tài)調(diào)整日租金這個功能在真正的租車公司里幾乎必備。第三個是增加一些統(tǒng)計(jì)報(bào)表比如車輛出租率、訂單收入趨勢、熱門車型排行管理端用ECharts畫幾個圖表項(xiàng)目看起來也更完整。第四個是把管理端的角色再細(xì)分比如操作員和超級管理員操作員只能處理訂單超級管理員才能改車輛配置。說回到這套系統(tǒng)本身我個人實(shí)測下來最大的體會是租賃類業(yè)務(wù)系統(tǒng)的難度不在增刪改查而在業(yè)務(wù)約束的完整性。一輛車的狀態(tài)從可租到被租再到還車背后牽扯的是時間段沖突檢測、事務(wù)邊界、狀態(tài)流轉(zhuǎn)的異?;謴?fù)這些邏輯捋清楚了代碼寫起來會非常順。這套設(shè)計(jì)不止適用于汽車租賃共享單車、酒店房間預(yù)約、機(jī)械設(shè)備租借核心模型都可以直接平移過去。如果你正在找項(xiàng)目練手我建議在跑通基礎(chǔ)功能后真實(shí)地給自己設(shè)計(jì)幾個并發(fā)場景去壓一壓比如同時搶同一輛車、訂單取消的瞬間又有新用戶下單把這些場景都處理干凈這個項(xiàng)目就算真正吃透了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲色图91欧美日韩| 欧美狠狠弄| 午夜精品久久99蜜桃的功能章节| 色综合 加勒比| 亚洲高潮少妇| 看一级黄色视频| 中文字幕国产| 你懂的在线观看区国产 | 丝袜美腿操av| 超碰98综合网| 操逼999| 久艹伊人精品综合在线| 人妻激情偷乱视频一区二区三区| 人看人人摸人人操| 乱伦AVxx| 久久国产热视频97电影| 亚洲色系另类精品国产| 老司机深夜18禁污污网站| 极品少妇久久久| 操淫穴亚洲五月丁香| 麻豆久久久久久久久丝袜| 亚欧精品久久久久久久久久久| 免费看欧美美女黄色大片 | 久久久久9999妇女| 人妻社区男人天堂| 曰本熟女视频| 女同性恋一区二区三区精品视频| 色女99一级片在线观看| 中文字幕版| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 大学生口爆吞精| 日本一级真人黄色性爱视频| 中国一级操逼视频| 日韩欧美经典在线观看| 一级黄色性爱A级片| 试看日韩黄片| 人人妻人人爽| 天天综合-91入口| 亚洲资源站| 男人天堂无码| 91中出视频| 少妇精品| 久久久久久网址| 曰韩中文人妻视频| 欧美一级特黄淫片在线观看| 狠狠干狠狠干| 日本东京热大香蕉a片| 亚洲吊色| 91老司机精品| 久久性爱精品一区| 美女自卫慰黄网站免费| 日本三级中国三级99人妇网站| 性爱视频久久| 亚州再线| 黄色视频高清无码网站| 九色精品视频导航1| 天天射天天操天天干天天吃2018| 欧美一二三级精品在线| 国产偷拍网站| 丰满少妇乱子伦精品无| 麻豆天美国美国产| 人人摸人人舔一区二区| 亚洲欧洲成人在线电影| 中文字幕亚洲热播人妻| 九九色热| 热G综合热G中文| 色吧 综合| 国内偷自视频区视频综合 | 操少妞在线视频| 99草精| 好吊色综合| 26uuu国产日韩综合在线观看| 亚洲日本韩国在线| 日本中文字幕熟妇| 国产精品免费久久久久久久久久| 国产 日韩 另类 视频一区爱| 国产懂色精品国产av| 口爆吞精在线观看| 爱干爱射网啊啊啊| 亚洲色图日韩丝袜制服一区二区五月在线| 青春草莓视频在线观看网址| 狠狠色综合网| 狠狠躁天天躁日日躁97| 成人免费毛片| 色情综合网| 精品无码一二三四区| 无码二级三级| 丁香五月激情啪啪| 精品人妻视频一区二区在线播放| 7777奇米影视久久| 美女黄页| 欧美天堂在线| 色牛牛AV| 97天天摸天天爽| 先锋色眉乱伦资源| 99999精品成人| 欧美碰碰综合色| 午夜福利免费精品视频| 日本 情色 1区2区3区| 色吧5亚洲| 一起草精品人妻| 久久精品视| 亚洲精品人妻在线| 97精品视频网站| 免费观看日本操逼视频| 欧美日不卡| 偷拍欧美亚洲| 亚洲欧美中文日韩视频中国语| 精品无吗久久| 干日本人少妇午夜寂寞影院| 91伊人久久在线| 黄色一级视| 91人妻久久久久久久久久久久久| 亚洲精品中文字幕一区在线视频| 大香蕉琪琪日本女优不卡| 51国产午夜精品视频| 色嘟嘟人妻天堂网| 能在线播放的国产三级| 欧美一级专区免费大片| 欧美人妻精品一区二区| 亚洲 欧美 日韩另类 麻豆| α√在线| 亚洲se91| 97久精品| 999精品国产高清一区二区| www.高清无码诱惑一区.com | 农村女一级毛卡片| 久久熟妇五十路一区| 久久国产AⅤ| 97人亚洲综合字幕| 亚洲精品人妻在线| 天天爽入口| 99热这里只有精品8| 国产又粗又长的视频| JULIA一区二区三区在线播放| 97就爱干| 日本高清电影欧美色图| 国产乱伦性爱区| 亚州 综合 色图| 丰满人妻无码一区二区三区| 中文字幕丝袜| aaa淫乱视频| 久久久久久一日韩字幕无码| 色777999综合| 欧美性天天影视| 日韩偷拍一区二区三区| 日韩成人人妻网站| 91人人看| 操逼操网| 91丝袜在线观看| 久久久久久久久久黄色网| JIZZJIZZ国产精品喷水| 74成人在线| 日韩亚洲97| 国产精品免费视频不卡| 看免费一级在线播放毛片| 久久久久9| 欧美男人一区| 自拍视频一区在线观看| 婷婷爽人人婷婷爽视频| 人人搡人人肉久久精品| 嗯嗯嗯啊啊啊在线免费观看| 99性爱在线观看| 97Ai亚洲| 91痴汉| 91精品成人| 大香蕉乱伦视频网| 中文字幕在线观看永久| 欧亚日韩中文在线| 2003天天干夜夜操| 久久久精品,3| 精品美女人人干| 天天弄欧美| 婷婷久久大香蕉| 久操操AV电影| 国产偷人伦激情在线观看| 亚洲国产亚洲天堂| 精品乱子一区二区三区99| 欧美99| 一区二区三区免费岛国片| 免费观看一区| 久久久无码视频| 亚州欧美综合| 91国产丝袜美女| 99啪啪视频| 亚殴在线| 男人的天堂.com| 激情第四色| 不卡啪啪视频| 在线中文字幕极品av| 精品久久无码午夜福利| 又大又长又粗又爽又黄| 一级@啪啪视频| 大学生美女口爆| 欧美亚洲首页| 蜜臀AV一区二区三区| 亚洲精品1区| 精品福利视频| 一区二区三区日韩欧美| 大香蕉十区| 伊人影院在线理论播放| 狠狠躁AV| 91 丝袜在线| 美女诱惑在线一区| 超碰欧美在线欧美| 高潮9999外国| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 中文字幕一区二区在线日韩精品| 亚欧毛片基地国产毛片基地| 91c色| 国产极品美女高潮无套在线观看| 三级特黄60分钟播放| 亚洲色图尤物视频| 岛国大片在线观看网站入口| 人妻日日干| 操逼操网| 色性欧美| 久久偷拍人| silk lablo在线观看一区二区| 久久鲁夜| 成人情色综合网| 性高潮久久久久久久久久久| A级片一区| 日本一区视频在线观看| 国产高清精品福利| 德国一二三不卡| 内射黑人| 大象AV在线| 国产精品4p在线观看| 99久久久久久亚洲精品不卡| 亚洲蜜乳av| 久久婷婷综合国际产色怕| 91精品国产麻豆国产自产在| 欧美熟妇乱码在线一区| 亚洲在线观看| 91亚洲色图| 精品人妻1区| 国产一区二区三区影片| 大稥蕉免费视频这里只有精品| 欧美大香蕉97| 综合网亚洲1| 欧美性爱超碰97| 人人操人人干xxx| 再深点灬舒服灬太大了添视频 | 四虎影视国产精品| 国产精品人妻无码久久久老鸭窝| av网页一区二区三区| 国产福利影视| 久久日本熟妇熟色高清| 日韩十八禁| 少妇人妻太紧太深av| 99无码视频| 一区麻豆 高清中文字幕| 在线小视频| 久久精品| 六月激情婷婷| 视频黄站| 最新亚洲人成网站在线影院| 激情一区二区三区在线观看| 亚洲色性| 国产日韩欧美中文在线播放| 色综合一区二区三巨| 久久久99999久网站| 亚洲 欧美 第一页| 久久久久成人亚洲国产| 少妇极品熟妇人妻无码| 一级乱伦网站| 超碰色中文| 啊啊啊好大好深| 欧美成人午夜免费福利785| 最新亚洲风情电影| 亚洲中文字幕在线视频一区二区| 日韩无码专区| 骚货操死你| 啪啪啪精品视频| 玖玖爱综合| 青草精品视频日本久久久久网站在线| 国产小u女在线观看| 91色五月俺来也| 欲香欲色综合天天伊人| 手机在线人成免费视频| 啊啊啊好舒服视频在线观看| 人人操人人插 - 百度 - 百度| 成人看片网站| 色欲av国内精品久久久久久| 色情成人五月天| 91久久国产精品| 精品超碰国产| 亚洲熟妇AV日韩熟妇在线| 不卡一区二区日本视频| 国产偷人妻精品一区二区在线| AV麻豆免费一区| AV天堂男人的天堂| 欧美一区二区一级岛国大片| 麻豆精品A片免费观看| 欧美v日韩v亚洲v最新在线| 五月婷婷色色| 啊啊啊在线观看| 啊啊啊啊啊啊啊国| 欧美日韩国产黄色片| 在线观看视频91| 日韩高清黄片| 欧洲精品网| 凹凸久久人人| 国产精品另类一区大香蕉| 操逼日韩无码| 97综合在线| 日产国产精品中文久久婷婷| 波多野结衣先锋影音| 亚洲日本天堂| 深爱五月婷婷| 香港澳门日本三级网站| 免费网色网站| 六十路日本| 日本Suv精品一区二区| 另类综合另类| 日韩综合无码色欲vv| 物业黑人 AV一区| 久操精品网| 午夜美女福利视频| 中文字幕欧美日本乱码一线二线 | 九九热av| 伊人国产视频| WWW黄片COM| 91性感在线| 亚洲av热热色| 亚洲一区中文字幕一区| 在线视频亚洲无码| 色哟哟精品1精品2| 婷婷激情一区二区三区俺也去| 一区操逼日比视频| 97极品无码| 久久99精品九九久久久婷婷| 日本不卡一区| 激情婷婷丁香| 精品久久久久久中文字幕视频免费| 国产黄a三级三级三级av在线看| 91成人高清在线观看| 黄页网站成人免费| 亚洲综合网图| 亚洲AV无码乱码在线观看性色| 色噜噜国产精品视频一区二区| 97人人中文网| 九九热免费国产视频婷婷伊人五月 | 男人综合网| juliaann丝袜大战黑鬼| 天堂av2019| 久久精品国产72国产精品福利| 国产老太乱伦一区| 大香蕉综合网| 久久精品综合| 老司机免费视频在线91| 欧美有码亚洲中文字幕一区二区三区四区| 日韩激情啪啪| 丰满岳乱妇一区二区三区| 色臀AV| 91男女| 久草草一二三四区久久| 中美日韩毛片| 91大神电影天堂| 久久婷综合| 日逼国产| 精品一区二区成人| 国产精品99精品视频网站| 97欧美日韩| 精品少妇一区二区| 欧美黑人168页欧美黑人167| 四虎在线免费视频| 欧美高潮| 久久熟女嫩草成人片免费 | 美女极品一区二区三区| 欧美亚洲一级在线观看| 亚洲无码成人精品| 91看黄片| 中文字幕中文字幕一区二区| 亚洲第一免费视频| 探花一区二区三| 一本久道在线综合视频| 国产av强奸美女| 欧美中文字幕日韩在线| 国产 热久久久久国产精品| 国产成人无码啪| 国产精品毛片?v一区二区三区| 思思热在线视频在线| 久操电影| 桃花色综合影院| 13小男生GAY自慰脱裤子| 秋霞久久亚洲精品成人| 九九久久一区二区伦理| 国语av最新自产拍在线观看| 十八禁视频网站| 成片免费播放| 亚洲精品久| 青青草十区九区爱夜| 91电影色诱| 中文字幕神马久久| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 色操逼网| 粉嫩绯色AV一区二区在线| 人妻精品视频一区二区| 丁香五月激情综合| 裸体1区| 在线电影亚洲色图| 97国产超碰| 国产二区三区免费视频| 国产精品久久久久久片| 大香樵伊人网| 亚洲欧美日韩国产丝袜自拍中文| 97日韩欧美亚洲| 九九九九久久久久| 2018天天干在线视频| 亚洲二区精品在线观看 | 亚洲色宗合| 中文字幕一区二区日韩网| 粉嫩绯色AV一区二区在线| 日本免费中文一区二区三区四区| 久久一二三四五六七八九区区| 物业黑人 AV一区| 天美传媒麻豆一区二区三区国产精| 亚洲欧美高清| 岛国艾薇凹凸视频天堂| 国产天天骚| 中文无线日韩一区| 丁香婷婷五月| 色情五月婷婷| 超碰98综合网| 欧美第二页| 人妻 中文 日韩| 91久久久久免| 中文一区二区| 国产精品露脸在线观看| 男人天堂2019亚洲| 亚洲图片偷拍欧美| 色婷婷六月丁香七月婷婷| 国产在线视视频有精品| 新视频sss国产| 91香蕉国产尤物视频| 国产精品爽爽va在线观看98| 天天综合网在线| 欧美日本不卡在线| 日本性爱不卡视频| 人人妻人人色| 国产精品久久久久无码Av网曝门| 性爱综合网| 黄久在线| 日本操逼二区| 91成人在线| 国产97亚洲| 在线性黄高清免费视频| 一直超碰| 国产操伦| 无码视频一区二区| 欧美十八禁视频| 偷窥自拍亚洲色图| 97视频在线| 大香蕉97久久| 亚洲熟女综合一区二区| 婷婷激情五月综合| 啊啊啊慢点| 天天肏夜夜肏| 日韩有码中文字幕女同性恋 | 国产97/欧美| 日日操丁香五月天| 成人欧美日超碰| 无码免费在线观看黄色片| 日韩天堂av电影在线观看| 免费视频97| 口爆综合网| 成人性交午夜免费片| 综合婷婷| 久久久999| 综精品久久久aaaa| 先锋影音av先锋一区| 97硬碰| 亚洲激情在线观看一区| av天天在线| 伊人网综合在线视频| 老司机午夜福利视频一区二区| a一区二区三区乱码在线| 和协影院中文字幕三区| 狠狠色噜噜狠狠狠狠狠色综合久久| 无码操逼天堂| 久久性视频| 久久久久久久9999| 欧美天天综| 国产91啪| 欧洲一区二区| 蜜桃色色网站视频三区| 加勒比在线观看一区二区| 四虎在线播放| 色色五月婷婷| 亚洲黄色视频在线观看视频| 超碰97欧美日韩| 免费综合亚洲中文| 久久久999| 精品免费国产二区三区 | 日韩欧美麻豆| 天堂日本亚洲欧美| 国产福利小视频高清在线观看| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 99热色这里只有精品| 国产精品直播在线观看直播| 欧美色图在线视频少妇| 偷窥自拍亚洲色图| 国产中文精品一区二区在线观看| 凌辱美少妇久久aV| 久久久久久中文版| 在线黄页看毛片| 国产精品区在线12p| 黄色交缠性感爆操91国产精品免费一区二区三区| 屌逼麻豆| 秋霞蝌科网日本一区| 清纯唯美亚洲综合| 日本三级韩国三级美三级91| 偷窥自拍亚洲色图| 无码抄逼网| 乱抡国产91| 91 偷| 人妻 制服 日韩 中文 在线| 一区二区三区精品黑丝白丝酒店对鸡 | 欧美性高潮| 青青草视频导航官网| 99久久综合网| 91在线视频免费播放| 国产精品视屏| 情色大香蕉| 色色综合97| 日韩美脚一区二区网站| 亚洲九九夜夜| 国产精品久久伊人| 精品一区二区成人| 午夜a成v人电影| 97超碰9| 亚州高清AV| 97国产伦理| 91夜夜蜜桃臀1区2区3区| 一区二区偷拍拍视频| 亚洲色图亚洲无码强奸乱伦| 多毛小伙内射老太婆 | 啊啊啊啊啊啊啊网址在线观看| 国产自产91区13区| 亚洲天堂另类美腿| 激情综合97| 丁香五月偷拍| 9 9精品一区二区三区| 国产av美女被艹的乱叫| 可以在线观看AV的网站| 日韩精品 视频一区二区| 熟女这里只有精品6| 日本在线观看网址| 国产一区二区三区高清视频| 超碰97人妻| 91久久青青草原精品| 囯产精品久久久久久久久久二区三区 | 人人 操人人 操人人| 九九视频黄色片| 超碰免费人妻人人| 国产多人在线观看视频| 欧美特大AA级黄片| 欧美αv.com| 亚洲成人免费中文字幕| 日本视频在线观看污污污| 午夜寂寞欧美| av凤凰久久久| 久久人妻办公室视频| 啊啊啊不要好疼视频| 懂色AV一区二区三区| 欧美日韩99精品麻豆传媒| 蜜色网色哟哟| 91美女视频在线免费观看| 色综合20p| 久久超碰天天| 美女久久久| 欧美日韩大黄片| 青青久久手机线视频| 黄色一级视| 中文字幕一区av| 国产久久一区二区三区野外在线| 91AV天堂| 欧美96在线|欧| V A在线| 丰满人妻一区二区三区四区| 久久艹逼视频| 熟妇人妻一区二区| 久久久久婷婷精品av电影| 91精品国产91熟女| 被男人吃奶很爽的毛片| av日韩在线观看电影| 六月丁香网| 天天综合欧美综合| 骚妻少妇精品性色无码四色A V| 色香综合| 中日韩久久久| 欧美熟爽综合| 午夜精品久久久久久久| 丁香色狠狠色综合久久小说| 国产亲戚伦亲在线| 色一射色一射| 天天情欲宗合网| 亚洲情色欧美| 在线国产一区二区av| 亚洲熟妇丝袜在线观看| 久久风骚城市| 大香蕉乱级| 久久xx| 97就爱干| 亚洲国产精品成人综合| 丁香五月婷婷五月| 蜜桃臀一区二区aV| 亚洲av综合伊人久久| 日本三级中国三级99人妇网站| 啊啊啊啊二区好大| 好色综合| 五月婷婷色| 精品少妇人妻| 一本色道久久天天射天天干| 尻女朋友一夜| 欧美性爱一区二区三区| 秋霞蝌科网日本一区| 日本一二三高清| 诱惑网综合| 欧美成人性爱视频大全| 免费超碰97久久| 69av一区二区三区| 91九久| 亚洲久9| 色婷婷av在线观看| 久久精品综合| 日韩激情中文字幕有码| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 26uuu久久| 操人妻少妇中文| 欧美色图欧美| 任你草| 日本布卡一区二三区| 日韩中文字幕视频在线观看| 国产一区二区三区,在线观看观看| A级在线视频| 欧美精品成人亚洲| AAAA级日本片免费视频| 精品91摸| 91一区二区三区蜜桃| 男人天堂.AB| 日韩亚洲欧美中文字幕| 欧美AB在线观看| 亚洲色图欧美色图另类图片| 艳美熟妇先锋一二三区| 色吧 综合| 欧美色图私拍91| 国内精品久久人妻性色av| 清清草影| 国产AV激情无码久久无码| 久久久久久久久久久久欧美日| 色噜噜精品一区二区三| 欧亚日本情色| 亚洲激情在线| 欧美激情综合| 亚洲精品 超碰| 精品人妻一区二区视频| 午夜福利一区二区三区四区五区色婷婷| 亚洲精品一区二区三区在线播放| 国产三级中文字幕粉嫩| 99热综合| 久久精品午夜国产亚洲AV无码| 精品亚洲俞拍视频一区| 国产第25页在线观看| 97国产中文| 91视频国品一二三区| 国产精品不卡高清在线观看| 日本人妻天堂网站在线播放| 91天堂色男人的天堂| 老司机香蕉久久久久| 九九玖玖精品| 91在线视频免费播放| 久久久久久99999国产精品| 五月婷婷丁香| 亚洲精品乱码线路中文字幕| 综合色久欲| 97中文天堂| 精品国产丝袜一区二区三区乱码| 凹凸 69堂 在线播放| 夜夜操天| 最新亚洲人成网站在线影院| 欧美亚洲清纯| 啊啊啊啊视频免费| 大色综合网| 日韩无码人妻| 色天天野狼综合社区| 免费看污网站| 久久性爱免费送| 91视频精品| 成人AV在线网站| 久久欧洲| 丰满人妻-区二区三区免费| 日韩簧片免费看| 欧美激情精品| 内射中国少妇高清视频免费视频 | 97啪啪| 精品少妇一区二区三区| 国产a级精品| 欧美99热| 天堂中文日本在线观看| 婷婷操视频| 欧美另类丝袜熟女| 校园春色宗合网| 射丝袜高跟鞋99| 九月丁香| 亚洲欧美国产其他二区| 午夜操逼不卡| 国产精品内射婷婷一级二| 激情另类激情| 麻豆人妻偷人精品无码视频| 麻豆影音天美视频| 欧美性天天影视| 色五月婷婷中文字幕| 中文字幕精品日韩中文字幕| 国产亚洲深夜激情| 国产老太乱伦一区| 无码78| 欧美 色 亚洲| 亚洲日本大香蕉1| 中文字幕伊人| 91色色综合| 九九热精彩视频| 九九成人精品| 中文字幕加勒比海高清无码免费视频| 激情五月天综合网| 亚洲色综合| 国产热RE99久久6国产精品首| 日本一级二级三级网站| 天天视频黄网站| 亚洲欧美在线观看免费| 强奸乱伦大香蕉| 亚洲国产欧美另类自拍| 天天弄天天操| ..日韩av毛片精品久久久| 97蜜桃综合| 国产青一二三| 97视频在线观看播放与子乱对白在线……| 伊人91| 99这里都是精品| 91黑丝露脚| 色色色色色色色色色色色色色色综合| 屌色在线97视频| 91欧美高清| 久草视频制服诱惑| 青青草日本中文字幕| 级品肉射| 欧美在线|亚洲| 97精品一区二区视频在线观看| 91女日逼| 国产又黄又爽| 黄色激情电影在线观看| 18禁的网站在线| 免费看欧美美女黄色大片| 色色色网站| 久久综合乱子伦国产免费| 有码色中文字幕在线观看| 亚洲欧美在线综合| 一级AAA片一区二区三区| 欧美少妇人妻| 最新国内自拍av免费| 综合操逼| 人妻激情偷乱视频一区二区三区| 国产夜夜艹| 日韩精品三级片长长久久| 蜜桃网熟妇| 狠狠爱综合网| 91艹B视频| 久久婷婷五月天| 日本999精品视频| 91劲爆| 青草综合| 国产真实野战在线视频| 日本三级久| 欧美日韩国产人人| 国产精品视频在线观看| 国产欧美精选激情视频| 丁香五月综合| 伦理弟一页| 97综合国产| 日韩精品一区二区日韩| www.色婷婷| 91nbbbbbb| 国产精品第一页国产大屁股视频免费区| 久综合国内精品自在自线| 天天插天天操| 99热导航| 久久免费少妇| 成人av动漫在线观看| 人人操天天爽| 欧美激情在线观看视频| 97精品熟女少妇一区| 天天干人人乐| 黑人狂躁日本妞一区二区三区| 一二三区在线| 日韩毛片9| 欧美黄色大片在线观看| 啊啊啊啊啊啊啊国| 啊啊啊水好多| 成人免费在线网站| 天天插夜夜爽| 99人妻碰碰碰久久久久禁片| 韩国黄色片精品久久久 | 久久精品中文字幕观看| 香蕉99秘 精品一区丁香| 午夜九九| 无色无码| 亚洲精品不卡一二三区| 嫩草美女久久| 色月天AV导航| 美女诱惑一区| 91一区二区| 久久青娱乐| 在线强奷到舒服的无码视频 | 99久久精品欧美国产| 91oumei| 91亚洲网站| 亚洲欧美国产日本一区二区三区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 2010男人的天堂| 加勒比无码毛片| 欧美劲爆视频一区二区| 久湿久久| 色色香蕉| 亚洲精品黑丝| 国产剧情AV不卡在线观看| 97一区二区三区视频| 无码 黑人一区二区三区| 久久国产精品,久久国产| 国产在线播放成人免费| 亚州宗合另类| 天天综合97| 亚殴在线| 免费观看成人www精品视频| 夜夜高潮夜夜爽高清视频一| 色色毛片| 久久99手机免费视频| 先锋影音av先锋一区| 成人五月天色网| 一本精品日本在线视频精品| 欧美激情久| 日操粉逼逼| 中文字幕免费在线观看| 丁香六月激情综合| 啊v在线观看视频| 天堂蜜桃无码视频一区二区| 久久久少妇| 男人天堂日日夜夜| 日韩欧美成人性爱在线| 91操人| 美女上床网站| 五月天激情国产综合婷婷婷| 九九九久久久| 97超碰久| 综合天天网| 亚洲欧美自拍偷拍| 四虎精品一区| www久久国产精品| 激情四射五月天| 欧美se亚洲| 麻豆2区1区天美| 综合啪啪| 综合欧美日本三级| 成人八戒网站| 色五天伊人| 少妇厨房愉情理伦片bd在线观看| 丰满少妇一区二区三区免费看| 久9久9久9久9久9久9| 国产后入内射| www.男人天堂| 老女人老91妇女老热女| 日韩ab网| 媚薬在线视频麻豆| 91成人在线| 超碰97男人| 有码免费观看| 香一区二区三区| 色女女女导航| 97免费在线视频在线观看| 在线黄页看毛片| 亚洲精品丝袜-不卡成人免费……| 日韩人妻无码专区| 91九色精品熟女内射| 色婷网| 99热自拍| 激情婷婷五月天| 思思热在线| 欧州色图区| 97精品国产97久久久久久户外免费| 99在线免费视频| 一区二区三区精品黑丝白丝酒店对鸡 | 日本欧美国内在线| 五月激情视频| 激情小说五月天| 天天影视网综合少妇| 久久精彩视频9| 冬京热男人的天堂| 91久久久视| 香蕉免费一区二区三区不读| 欧美激情亚洲情色| 欧美,日韩,中文,另类| 婷婷激情丁香| 久久超碰网| 操B视频日韩无码| 欧美日韩激情无码专区| 国产精品岛国片在线观看| 中文字幕一区日韩精| 在线黄页看毛片| 秋霞男人网| 色在线69堂| 午夜美女诱惑电源网| 久久久96| 国产毛片久久久久久久| 国产成人无码久久精品| 2011国产精品| 欧美少妇性乱| 极品少妇久久久久| 超碰成人人人爽人人爽| 免费又黄又裸乳的视频| 激情综合婷婷| 蜜臀亚洲中文| 任我爽在线视频免费观看 | 九九九九97| 96久久久久| 岛国在线免费视频| 国产高清无码一区二区三区四区皇冠| 中文字幕在线播放2中文字幕在线观看2| 丝袜制服字幕在线| 尤物视频偷拍免费| 91骚熟女| 免费作爱一级视频| 久久熟女人| 久久成人午夜狠狠| 2019天天干| 亚洲97久久精品亚洲| 久久精品一区二区三区不卡| 蜜臀久久久国产| 91亚洲欧美激情| 秋霞网—男女啪啪亚洲免费体验区 | 91成人18| 蜜乳AV一区二区三区四| 人妻夜夜爽天天爽麻豆三区网站 | 试看日韩黄片| 97摸视频| 97 国产一区| 少妇激情一区二区三区视频| 午夜AV人气不卡| 婷婷五月天补不补| 偷拍片久久| 在线播放成人高清免费视频| 97人人模人人爽人人| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲色天堂九9| 久久久国产av美女私房| 五月天色综合| 亚洲色图第一页| 内射小黄片| 亚欧精品久久久久久久久久久| 欧美 综合 亚洲| 插入逼91| 激情一区二区三区在线观看| 黄久久| 亚洲国产精品无码AV在线| 一区久久久二区| 9久久精品| 你懂得91| 伊人久久亚洲色欲综合网站 | 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 狼天天狼天天大香蕉| 另类图片五月天| 操逼操逼逼操操逼91 | 天天欧美色| 欧美日韩欧美| 久久久九九网站| 破处bbq| 亚洲av综合色区无码一| 99热导航| 亚洲成人在线高清| 亚洲AV资源| 男女啪啪网站免费视频| 日韩精品.久久精品.AV女优.天美传媒 | 又黄又爽在线观看视频| 综合亚洲欧美| 99re在线观看| 亚洲精品黄码久久久久| 丁香五月天激情网站| 四虎免费视频| 97摸视频| 日日AAvv| 9久精品| 中文有码9| 97人人草| 久久啊啊啊| 97超碰国产亚洲精品资源| 9丨久久九九九 | 激情五月天社区| 夜夜嗨一区二区三区三州加勒比| 国产激情在线| 国产蜜臀精品一区二区尤物| 九九久久精品| 97亚洲在线| 69精品在线| 欧美夜夜草视频| 久久欧洲| 成人性爱视频在线看| 日本加勒比无码专区一二三| 乱伦熟女区| 啪啪啪综合| 久久这里都是精品| 无码久久国产| www.AV有限公司一区| 91成人久久 | 中文字幕乱偷人妻久久艾草网| 艹少妇网站| 99re99在线视频| 国产少妇肉丝在线观看| 亚洲熟妇一,二,三期| 加勒比日本在线| 国产视频不卡在线观看| 欧美日韩狠狠爱| 射丝袜高跟鞋99| 国产黄片精品在线| 97亚洲国产| 日本超碰在线国产一区| 欧美 精品国产制服第一页| 熟妇国产免费一区| 五月婷婷啪啪| 男女日B国产| 蜜桃精品视频一区二区三区| 99热免费| 黄色人人| 高颜值美女口爆高潮浪叫| 宅男91视频在线播放| 国产精品久久99日日| 中文字幕一区二区无码成人| 天天享受天天看| 久久香蕉国产线看观看猫咪av| 加勒比海色香蕉婷婷| 九九九九九九九九九五码| 2024人人操人人摸| 欧美熟妇成人一区二区| 蜜桃臀久久| 天天摸夜夜摸| 亚洲国产一区二区三区四区国产| 91性色| 色欧美色交综合| 欧美熟妇人体| 91一起操| 8x福利精品第一福利视频导航| 欧美性色欧美| 亚洲揄拍网| 亚洲欧洲偷拍一区| 3P乱轮视频| 国产毛片片精品天天看视频| 在线 欧美 亚洲| 99热精品国产| 色欧美天天| 亚洲一区二区性爱电影| 国产日韩无码一区二区三区久久区| 国产精品一区在线播放| 欧美夜色| 国产精品一区二区在钱播放| 深田咏美亚洲精品福利社| 男女猛烈无遮掩视频免费软件| 中文三一区| 91美女国产在线| 嫩草伊人久久精品| 97精品国产97久久久| 人、人、摸,人、人、草| 日小BB小视频| 探花精品 一区二区| 欧洲亚洲人妻无码高清久久三区四区| 99re99视频在线免费观看| 艳美熟妇先锋一二三区| 影音先锋国产精品| 岛国在线一区二区三区| 人妻偷拍一区二区三区| 久久久久久精| 久久久久久加勒比| 大香蕉日亚洲日本亚大| 福利一级版子| 伊人国产av| 91精品成人www| 五月天伊人| 日韩成人综合网| 日韩不卡a级视频专区| www.av在线视频| 精品国产91内射久久| 国内毛片欧美香蕉精品| 天天躁日日躁狠狠躁| 丝袜亚洲综合| 精品78| 蜜臀久久99精品久久久久久无删减| 東南亚性呦成人伦理资源在线视频| 蜜桃狠狠色伊人亚洲综合| 啊啊啊要高潮了| 天天摸天天舔天天操| 亚洲色丰满少妇高潮| 国产午夜视频| 久日91在线| 亚州中文字幕超碰97| 天天日天天操VV| 99精品人人爽| 久久噜| 呻吟 欧美 日本 中出| 日韩成人性爱AV| 91色色综合| 亚洲天堂日本| 是还免费视频1727我| 欧美在线 亚洲| 免费超碰97久久| 无码九九| 美女黄色91| 91色插| 天天综合网91| 中国AAAAAA黄色片| 欧美性生活男人的天堂| 久热影视| 日韩丰满熟妇| 免费毛片在线播放| 五月丁香综合网| 91N欧美| 亚洲AV资源| 1024手机看片欧美日韩| 97热视频在线观看| 99热在线只有精品| 伊人久久AV诱惑悠悠| 日本孕妇一区二区视频操逼免费看 | 婷婷色一区| 91欧美偷拍| 大香蕉琪琪日本女优不卡| 亚洲色棕合| 中文字幕在线免费观看| 日语五十路和六十路亚洲国产精品| 女人与公拘交酡2020视频| www.av在线视频| 一区在线观看中文字幕| 嗯嗯啊中文字幕| 大香伊人在线一区| 91精品免费| 97免费视频在线| 国产欧美日本亚洲精品 | 国产亚洲精品久久久久小| 女人喷水视频在线观看| 婷婷六月天| 97天天综合网| 啊啊啊男女| 熟妇乱伦一区二区| 911av网站免费观看| 色婷婷电影网| 少妇一区二区三区在线观看| 天天天操天天天爱| 亚洲乱妇p22| 国产大学生口爆吞精合集| 激情五月婷婷| 青青操在线亚洲视频观看欧美在线| 九九九九九九免费视频| 91亚洲色图| 艹比视频国产精品|