欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

Spring Boot體育場(chǎng)館預(yù)約系統(tǒng):從數(shù)據(jù)庫(kù)設(shè)計(jì)到并發(fā)控制實(shí)戰(zhàn)

Spring Boot體育場(chǎng)館預(yù)約系統(tǒng):從數(shù)據(jù)庫(kù)設(shè)計(jì)到并發(fā)控制實(shí)戰(zhàn) 1. 為什么每年都有人做預(yù)約系統(tǒng)但這個(gè)題其實(shí)并不簡(jiǎn)單Spring Boot配體育場(chǎng)館設(shè)施預(yù)約系統(tǒng)這個(gè)搭配我在畢業(yè)設(shè)計(jì)的選題名單里看了好幾年可以說(shuō)年年有但絕大多數(shù)人第一反應(yīng)都是“不就是增刪改查嗎”。真到開(kāi)題答辯、中期檢查、最后演示的時(shí)候同一個(gè)題能分出明顯差距有人只演示了頁(yè)面上點(diǎn)擊預(yù)約成功評(píng)委一問(wèn)“兩個(gè)人同時(shí)約同一塊場(chǎng)地怎么辦”就卡殼有人卻能把并發(fā)控制、狀態(tài)機(jī)、超時(shí)釋放、支付冪等全部講清楚答辯變成加分現(xiàn)場(chǎng)。先說(shuō)結(jié)論預(yù)約類(lèi)系統(tǒng)非常適合做畢設(shè)因?yàn)閺?fù)雜度剛好卡在“入門(mén)之上、工程之下”的位置。你說(shuō)它難它沒(méi)有高深的算法你說(shuō)它容易它又牽扯并發(fā)、狀態(tài)流轉(zhuǎn)、資源競(jìng)爭(zhēng)和業(yè)務(wù)規(guī)則稍微處理不好就是臟數(shù)據(jù)。這篇文章我打算把做這類(lèi)系統(tǒng)的完整思路寫(xiě)一遍從選題定調(diào)、功能邊界、數(shù)據(jù)庫(kù)設(shè)計(jì)、訂單狀態(tài)機(jī)到真實(shí)開(kāi)發(fā)中反復(fù)踩過(guò)的坑再到答辯如何講出含金量逐個(gè)拆開(kāi)講透。正在準(zhǔn)備畢設(shè)的同學(xué)應(yīng)該知道預(yù)約系統(tǒng)的套路一旦吃透圖書(shū)館座位預(yù)約、會(huì)議室預(yù)約、健身房課程預(yù)約本質(zhì)都是同一套邏輯換個(gè)業(yè)務(wù)名詞就能復(fù)用。1.1 畢設(shè)選型的“性價(jià)比”判斷復(fù)雜度適中、就業(yè)導(dǎo)向明確為什么推薦這個(gè)題目三個(gè)原因。第一技術(shù)棧主流且成熟。Spring Boot是這兩年企業(yè)開(kāi)發(fā)的事實(shí)標(biāo)準(zhǔn)配上MySQL、MyBatis或Spring Data JPA網(wǎng)上資料一抓一大把遇到問(wèn)題搜得到答案不至于卡死在某個(gè)冷門(mén)技術(shù)上。第二業(yè)務(wù)模型清晰但又不失深度。場(chǎng)館、場(chǎng)地、時(shí)間片、訂單、支付、狀態(tài)流轉(zhuǎn)一層層拆下來(lái)既有常規(guī)CRUD也有真正需要?jiǎng)幽X的并發(fā)與狀態(tài)設(shè)計(jì)工作量適合一個(gè)學(xué)期的周期。第三演示效果好。做出來(lái)的東西能看、能操作、能講用戶端加管理端界面和功能都直觀比某些純算法題更容易讓答辯老師快速理解你做了什么。但這里要提醒一句正因?yàn)轭}目經(jīng)典答辯老師也見(jiàn)多了這個(gè)題所以“能跑”只是及格線。如果你只做到了“用戶能預(yù)約、管理員能看訂單”那大概率就是及格分。拉開(kāi)差距的點(diǎn)在于你有沒(méi)有想清楚資源沖突怎么防止、訂單狀態(tài)怎么流轉(zhuǎn)、超時(shí)訂單怎么處理。這些內(nèi)容不是頁(yè)面堆砌出來(lái)的而是設(shè)計(jì)層面的東西必須在動(dòng)手寫(xiě)代碼之前就定下來(lái)。1.2 先把三個(gè)設(shè)計(jì)抉擇定下來(lái)后面才不會(huì)返工我做這個(gè)類(lèi)型的系統(tǒng)有一個(gè)強(qiáng)烈的體會(huì)返工九成不是代碼寫(xiě)錯(cuò)而是業(yè)務(wù)模型沒(méi)定清楚就開(kāi)始建表。下面三個(gè)問(wèn)題建議在動(dòng)手前先回答。第一個(gè)問(wèn)題預(yù)約的粒度是什么按“場(chǎng)地”還是按“場(chǎng)次”場(chǎng)地維度指的是用戶選擇某塊場(chǎng)地比如羽毛球3號(hào)場(chǎng)的某個(gè)時(shí)間段進(jìn)行預(yù)約適合散客自由約球場(chǎng)次維度指的是管理員預(yù)先排好某些固定時(shí)段比如19:00-20:00羽毛球小班課用戶搶的是這個(gè)場(chǎng)次的名額。體育場(chǎng)館實(shí)際業(yè)務(wù)中兩種都存在但畢設(shè)沒(méi)必要一上來(lái)就做混合模式。我建議以“場(chǎng)地時(shí)間段”作為核心模型時(shí)間片表作為連接場(chǎng)地和訂單的樞紐這樣最貼近真實(shí)場(chǎng)館運(yùn)營(yíng)也最容易把并發(fā)的點(diǎn)設(shè)計(jì)清楚。第二個(gè)問(wèn)題時(shí)間片是固定排好的還是下單時(shí)動(dòng)態(tài)計(jì)算有一個(gè)省事的做法是不建時(shí)間片表用戶下單時(shí)傳“開(kāi)始時(shí)間結(jié)束時(shí)間”服務(wù)端去訂單表里掃一遍有沒(méi)有沖突。這種方案在小數(shù)據(jù)量下確實(shí)能跑但問(wèn)題很明顯一是熱門(mén)時(shí)段用戶同時(shí)搶的時(shí)候沖突檢測(cè)會(huì)非常頻繁二是“判斷是否沖突”的邏輯散落在多個(gè)接口里很容易寫(xiě)漏。我的建議是引入時(shí)間片表讓管理員按場(chǎng)館開(kāi)放時(shí)間和場(chǎng)地類(lèi)型批量生成未來(lái)N天的時(shí)間片用戶只能從空閑時(shí)間片里選。這樣做的一個(gè)隱藏好處是時(shí)間沖突校驗(yàn)被前置到了排期生成階段下單接口只需要關(guān)心“時(shí)間片是否空閑”復(fù)雜度一下就降下來(lái)了。第三個(gè)問(wèn)題單場(chǎng)館還是多場(chǎng)館從表結(jié)構(gòu)設(shè)計(jì)角度我建議從一開(kāi)始就支持“多場(chǎng)館—多場(chǎng)地”的層級(jí)關(guān)系。哪怕你演示的時(shí)候只放一個(gè)體育館的數(shù)據(jù)表結(jié)構(gòu)上也把場(chǎng)館表、場(chǎng)地表分開(kāi)。這樣寫(xiě)論文時(shí)可以說(shuō)“系統(tǒng)支持多場(chǎng)館擴(kuò)展”答辯時(shí)也能應(yīng)對(duì)“如果學(xué)校有好幾個(gè)館怎么處理”的追問(wèn)。2. 功能邊界與業(yè)務(wù)規(guī)則先想清楚“預(yù)約什么”再動(dòng)手功能列表看似簡(jiǎn)單但很多同學(xué)列出十幾個(gè)模塊最后做不完就是因?yàn)闆](méi)有分清“核心鏈路”和“包裝功能”。我通常把功能分成用戶端、管理端和三條業(yè)務(wù)規(guī)則先定邊界再寫(xiě)代碼。2.1 用戶端和管理端到底要做哪些事用戶端核心功能可以控制在六項(xiàng)左右注冊(cè)登錄、瀏覽場(chǎng)館和場(chǎng)地、按日期查詢可約時(shí)間片、提交預(yù)約訂單、模擬支付、取消訂單。再加一個(gè)歷史訂單列表用于查看預(yù)約狀態(tài)。至于收藏、評(píng)論、積分、會(huì)員等級(jí)這些如果時(shí)間和精力允許可以錦上添花但不建議在核心鏈路還沒(méi)跑通之前碰它們。管理端包括場(chǎng)館管理、場(chǎng)地管理、時(shí)間片排期管理、訂單管理、用戶管理。時(shí)間片排期是管理端最重要也最容易忽略的功能它決定了系統(tǒng)能不能真正運(yùn)轉(zhuǎn)起來(lái)。如果時(shí)間片都是手動(dòng)一條條插入數(shù)據(jù)庫(kù)演示時(shí)既難看又容易出錯(cuò)所以一定要做一個(gè)“按日期范圍場(chǎng)地批量生成時(shí)間片”的功能這是管理端的一個(gè)小亮點(diǎn)也是后面很多設(shè)計(jì)的基礎(chǔ)。2.2 三條業(yè)務(wù)規(guī)則提前量、訂單數(shù)上限、最晚取消時(shí)間功能定了之后要寫(xiě)明白的是業(yè)務(wù)規(guī)則這些規(guī)則會(huì)直接影響接口校驗(yàn)邏輯。我見(jiàn)過(guò)不少同學(xué)建完表直接寫(xiě)接口寫(xiě)到一半發(fā)現(xiàn)“這個(gè)狀態(tài)什么時(shí)候能取消”“一個(gè)人能不能同時(shí)占幾塊場(chǎng)地”這些問(wèn)題根本沒(méi)定義代碼越寫(xiě)越別扭。建議先定三條規(guī)則。第一可提前預(yù)約的天數(shù)。比如只能預(yù)約未來(lái)7天內(nèi)的場(chǎng)地避免排期過(guò)遠(yuǎn)導(dǎo)致運(yùn)營(yíng)變動(dòng)后數(shù)據(jù)對(duì)不上。第二單個(gè)用戶同時(shí)有效的預(yù)約單數(shù)量。比如最多同時(shí)有3個(gè)“待支付已支付”狀態(tài)下的訂單防止有人把黃金時(shí)段全部占住。這個(gè)規(guī)則看起來(lái)簡(jiǎn)單但它是防止惡意占位的第一道防線。第三最晚取消時(shí)間。比如開(kāi)球時(shí)間前2小時(shí)可以免費(fèi)取消超過(guò)這個(gè)時(shí)間就不能在用戶端取消了避免場(chǎng)地資源被臨時(shí)放鴿子。這三條規(guī)則在寫(xiě)代碼前用文字列出來(lái)數(shù)據(jù)庫(kù)校驗(yàn)、接口邏輯、前端提示都有了依據(jù)。還有一條容易被忽略的邊界場(chǎng)館的開(kāi)放時(shí)間。比如體育館營(yíng)業(yè)時(shí)間是8:00到22:00那時(shí)間片生成、訂單校驗(yàn)、前端可選項(xiàng)都必須遵循這個(gè)范圍否則就會(huì)出現(xiàn)凌晨三點(diǎn)有人預(yù)約羽毛球場(chǎng)的詭異數(shù)據(jù)。3. 數(shù)據(jù)庫(kù)表結(jié)構(gòu)七張核心表和一條并發(fā)“鐵律”數(shù)據(jù)庫(kù)設(shè)計(jì)是這種系統(tǒng)最關(guān)鍵的部分沒(méi)有之一。因?yàn)轭A(yù)約系統(tǒng)的根問(wèn)題是“數(shù)據(jù)別打架”而數(shù)據(jù)打架的問(wèn)題最好在設(shè)計(jì)表的時(shí)候就徹底封死而不是靠代碼小心翼翼地繞。3.1 七張核心表的職責(zé)劃分拋開(kāi)擴(kuò)展表不談核心表我建議按下面這個(gè)清單設(shè)計(jì)每張表解決一類(lèi)問(wèn)題。表名核心職責(zé)關(guān)鍵字段說(shuō)明user用戶與管理員身份username唯一、password_hash、role(USER/ADMIN)、phonevenue場(chǎng)館name、location、open_time、close_time、statuscourt場(chǎng)地掛在場(chǎng)館下venue_id、name、type(羽毛球/籃球/游泳等)、base_price、statusschedule時(shí)間片連接場(chǎng)地與訂單court_id、date、start_time、end_time、price、status(OPEN/BOOKED/LOCKED)booking_order預(yù)約訂單order_no唯一、user_id、schedule_id、court_id、date、start_time、end_time、total_price、statuspayment_record支付流水order_id、pay_no、amount、status、paid_atadmin_config業(yè)務(wù)規(guī)則配置rule_key、rule_value用于存可預(yù)約天數(shù)、訂單上限等這些表之間的關(guān)系并不復(fù)雜場(chǎng)館1對(duì)多場(chǎng)地場(chǎng)地1對(duì)多時(shí)間片時(shí)間片1對(duì)1訂單訂單1對(duì)1支付流水。真正需要用心設(shè)計(jì)的不是關(guān)系而是字段層面的約束。3.2 并發(fā)鐵律把“同一時(shí)間片只可被預(yù)約一次”壓進(jìn)數(shù)據(jù)庫(kù)這是整篇內(nèi)容里我認(rèn)為最重要的一段。做預(yù)約系統(tǒng)最核心的技術(shù)問(wèn)題就是同一塊場(chǎng)地、同一個(gè)時(shí)間段絕不能出現(xiàn)兩個(gè)有效訂單。很多同學(xué)的做法是下單時(shí)先查詢一下這個(gè)時(shí)間段有沒(méi)有訂單沒(méi)有就插入。這在單用戶操作時(shí)沒(méi)有任何問(wèn)題但一遇到并發(fā)就露餡兩個(gè)請(qǐng)求同時(shí)查到“空閑”然后同時(shí)插入訂單超賣(mài)就發(fā)生了。正確的做法是在數(shù)據(jù)庫(kù)層面把它“焊死”。具體有兩道防線。第一道防線是唯一索引。schedule表上應(yīng)該加上(court_id, date, start_time)的唯一約束意思是同一塊場(chǎng)地同一天同一個(gè)開(kāi)始時(shí)間只能存在一個(gè)時(shí)間片記錄。這是從源頭上保證時(shí)間片本身不重復(fù)。第二道防線是下單時(shí)的原子占位。用一條帶狀態(tài)條件的UPDATE語(yǔ)句搶占時(shí)間片UPDATE schedule SET status BOOKED WHERE id #{scheduleId} AND status OPEN;如果影響行數(shù)為1說(shuō)明這塊場(chǎng)地被你占住了可以繼續(xù)創(chuàng)建訂單如果影響行數(shù)為0說(shuō)明別人已經(jīng)搶先一步直接提示“該時(shí)段已被預(yù)約”。這個(gè)方案依賴(lài)數(shù)據(jù)庫(kù)行鎖避免了先查詢?cè)俨迦氲臅r(shí)間窗口是最直接也最好向評(píng)委解釋的方案。如果你用的是JPA等ORM框架也可以走樂(lè)觀鎖路線在schedule表上加一個(gè)version字段更新時(shí)帶上版本號(hào)條件更新失敗就重試或提示。兩種方案選一種即可但建議在論文中把兩種都寫(xiě)清楚這本身就是很好的答辯素材。3.3 字段細(xì)節(jié)與三個(gè)隱藏約定除了核心字段還有幾個(gè)必須注意的細(xì)節(jié)。第一訂單表要冗余場(chǎng)地名、場(chǎng)館名、時(shí)間段、價(jià)格等信息而不是只存外鍵。為什么因?yàn)槿绻芾韱T后續(xù)調(diào)整了場(chǎng)地名稱(chēng)或者價(jià)格歷史訂單不能被影響而且列表頁(yè)展示時(shí)不需要反復(fù)聯(lián)表查詢。第二業(yè)務(wù)訂單號(hào)order_no要認(rèn)真生成比如用日期加隨機(jī)序列并加上唯一索引。它不只是為了好看也是后續(xù)模擬支付、對(duì)賬時(shí)的標(biāo)識(shí)。第三所有時(shí)間字段建議統(tǒng)一用datetime類(lèi)型Java側(cè)用LocalDateTime避免各種時(shí)區(qū)換算帶來(lái)的詭異問(wèn)題這一點(diǎn)后面第五部分會(huì)詳細(xì)展開(kāi)。還有一個(gè)容易被忽視的點(diǎn)schedule表的price雖然是冗余字段但它的值應(yīng)該從court表的base_price復(fù)制過(guò)來(lái)而不是下單時(shí)臨時(shí)算。因?yàn)閳?chǎng)館調(diào)價(jià)后已經(jīng)生成的時(shí)間片價(jià)格不應(yīng)該跟著飄。這種“快照”思想在訂單系統(tǒng)里很常見(jiàn)寫(xiě)論文時(shí)值得單獨(dú)講一講。4. 核心流程與六個(gè)狀態(tài)一個(gè)預(yù)約訂單的一生下單不是簡(jiǎn)單insert一條記錄而是一系列狀態(tài)流轉(zhuǎn)。我建議把訂單的生命周期單獨(dú)作為一個(gè)設(shè)計(jì)重點(diǎn)因?yàn)樵诖疝q中狀態(tài)機(jī)是比CRUD高級(jí)得多的表達(dá)。4.1 從查詢到入場(chǎng)的五個(gè)步驟一次完整預(yù)約流程可以分為五步查詢可約時(shí)間片、創(chuàng)建預(yù)約訂單、支付、核銷(xiāo)入場(chǎng)、完成。查詢階段只展示狀態(tài)為OPEN的時(shí)間片創(chuàng)建訂單時(shí)通過(guò)上面說(shuō)的原子占位把schedule改成BOOKED同時(shí)生成狀態(tài)為“待支付”的訂單支付成功后把訂單改為“已支付”用戶到場(chǎng)后由管理員核銷(xiāo)或掃碼確認(rèn)訂單變?yōu)椤耙淹瓿伞薄_@里有一個(gè)設(shè)計(jì)上的關(guān)鍵點(diǎn)創(chuàng)建訂單和鎖定時(shí)間片必須在同一個(gè)事務(wù)里完成否則會(huì)出現(xiàn)訂單創(chuàng)建失敗但時(shí)間片被鎖住的情況。實(shí)現(xiàn)上可以這樣組織先執(zhí)行UPDATE占位再insert訂單如果訂單插入失敗則拋異?;貪L讓UPDATE也回滾時(shí)間片自然恢復(fù)為OPEN。4.2 訂單狀態(tài)機(jī)六個(gè)狀態(tài)怎么流轉(zhuǎn)我建議訂單表用整數(shù)來(lái)表示狀態(tài)配合一張狀態(tài)說(shuō)明表方便查詢和展示。六個(gè)狀態(tài)如下?tīng)顟B(tài)值狀態(tài)名含義可流轉(zhuǎn)去向0待支付已鎖定時(shí)間片但未付款已支付、已取消、超時(shí)關(guān)閉1已支付用戶已付款等待入場(chǎng)已完成、已取消2已完成已被核銷(xiāo)行程結(jié)束終態(tài)3已取消用戶主動(dòng)取消終態(tài)4超時(shí)關(guān)閉系統(tǒng)自動(dòng)關(guān)閉未支付訂單終態(tài)5已退款已支付訂單取消后退款終態(tài)狀態(tài)機(jī)的核心原則是任何狀態(tài)之間的跳轉(zhuǎn)都必須有明確的觸發(fā)條件和操作入口不能讓一條訂單同時(shí)處于兩個(gè)狀態(tài)。比如用戶取消時(shí)只有“待支付”和“已支付”狀態(tài)能走取消流程取消成功后如果之前已支付就再進(jìn)入“已退款”。超時(shí)關(guān)閉只針對(duì)“待支付”狀態(tài)已支付的訂單不能被定時(shí)任務(wù)直接關(guān)閉否則會(huì)引發(fā)支付和訂單狀態(tài)不一致。4.3 三個(gè)核心接口與超時(shí)釋放預(yù)約系統(tǒng)的接口不必很多但三個(gè)核心接口的邏輯要足夠健壯。創(chuàng)建預(yù)約接口的核心是原子占位加事務(wù)支付接口的核心是冪等無(wú)論用戶點(diǎn)擊多少次支付按鈕或者模擬支付回調(diào)重復(fù)通知都不能產(chǎn)生多筆有效流水取消接口的核心是釋放資源不管訂單狀態(tài)改成了什么最終必須把對(duì)應(yīng)schedule的狀態(tài)改回OPEN讓其他用戶能繼續(xù)約。還有一個(gè)業(yè)務(wù)上很現(xiàn)實(shí)的問(wèn)題用戶下單后不付款場(chǎng)地被一直鎖著怎么辦。我在實(shí)際設(shè)計(jì)里用了“定時(shí)任務(wù)掃描用戶主動(dòng)取消”雙通道。定時(shí)任務(wù)每隔幾分鐘掃一次把超過(guò)15分鐘仍未支付的待支付訂單改成超時(shí)關(guān)閉并釋放對(duì)應(yīng)時(shí)間片。同時(shí)在用戶端允許用戶主動(dòng)取消待支付訂單取消時(shí)同樣釋放時(shí)間片。兩個(gè)通道都做是因?yàn)槿魏螁我粰C(jī)制都可能因?yàn)橛脩敉岁P(guān)頁(yè)面而導(dǎo)致座位被無(wú)效占用。5. 我在開(kāi)發(fā)中反復(fù)踩過(guò)的六個(gè)坑這一部分是我最想寫(xiě)的。網(wǎng)上教程只會(huì)告訴你“應(yīng)該怎么做”但實(shí)際開(kāi)發(fā)中真正讓人崩潰的往往是那些看起來(lái)不起眼、卻能把整個(gè)邏輯帶偏的細(xì)節(jié)。下面六個(gè)問(wèn)題都是我在做類(lèi)似系統(tǒng)時(shí)真實(shí)遇到過(guò)、也幫人排查過(guò)的。5.1 并發(fā)下單時(shí)場(chǎng)地“超賣(mài)”了前面提到了countinsert方式的隱患這里用更實(shí)際的場(chǎng)景描述一遍。我最初做第一版時(shí)創(chuàng)建預(yù)約的代碼是先查schedule狀態(tài)再判斷是否為空然后插入訂單。用Postman模擬兩個(gè)請(qǐng)求同時(shí)打同一個(gè)時(shí)間片接口時(shí)兩個(gè)請(qǐng)求都打印了“當(dāng)前狀態(tài)為空閑”然后都成功創(chuàng)建了訂單。那一刻我才意識(shí)到應(yīng)用層的“先查后寫(xiě)”永遠(yuǎn)存在競(jìng)態(tài)窗口解決問(wèn)題必須靠數(shù)據(jù)庫(kù)的原子操作。后來(lái)改成UPDATE ... WHERE statusOPEN之后再并發(fā)測(cè)試就穩(wěn)定了。這里給一個(gè)排查建議凡是涉及資源搶占的邏輯不要相信“我在代碼里加了if判斷”直接用數(shù)據(jù)庫(kù)的原子更新或唯一的數(shù)據(jù)庫(kù)約束驗(yàn)證然后用并發(fā)請(qǐng)求實(shí)測(cè)別只靠點(diǎn)頁(yè)面測(cè)。5.2 內(nèi)部自調(diào)用讓Transactional形同虛設(shè)這是一個(gè)很經(jīng)典的Spring Boot陷阱。我在取消訂單時(shí)寫(xiě)了這樣一個(gè)結(jié)構(gòu)訂單Service里有一個(gè)cancel方法內(nèi)部調(diào)用了同類(lèi)里的releaseSchedule方法而releaseSchedule上加了Transactional注解。測(cè)試時(shí)發(fā)現(xiàn)如果cancel方法本身在事務(wù)里調(diào)用releaseSchedule的事務(wù)還能沾點(diǎn)光但當(dāng)我單獨(dú)調(diào)用releaseSchedule時(shí)事務(wù)根本不生效。原因很簡(jiǎn)單同類(lèi)內(nèi)部方法調(diào)用不會(huì)經(jīng)過(guò)Spring的代理對(duì)象注解自然就不起作用。解決辦法也很直接把釋放場(chǎng)地的邏輯放到另一個(gè)Service比如ScheduleService里讓訂單Service調(diào)用ScheduleService的方法。這樣事務(wù)邊界既清晰又有效。這個(gè)坑在寫(xiě)論文時(shí)其實(shí)可以當(dāng)作一個(gè)“踩坑記錄”寫(xiě)進(jìn)去反而顯得真實(shí)。5.3 時(shí)間重疊判斷的邊界條件如果哪天你決定不按時(shí)間片結(jié)構(gòu)做而是下單時(shí)動(dòng)態(tài)校驗(yàn)時(shí)間段那么“判斷時(shí)間段是否重疊”就是一個(gè)躲不開(kāi)的邏輯。很多人在這里栽過(guò)跟頭。正確判斷兩組時(shí)間區(qū)間[aStart, aEnd)和[bStart, bEnd)是否重疊的條件是aStart bEnd bStart aEnd。用Java代碼寫(xiě)就是public boolean isOverlap(LocalDateTime aStart, LocalDateTime aEnd, LocalDateTime bStart, LocalDateTime bEnd) { return aStart.isBefore(bEnd) bStart.isBefore(aEnd); }重點(diǎn)在于使用半開(kāi)區(qū)間也就是開(kāi)始時(shí)間包含、結(jié)束時(shí)間不包含。這樣14:00-16:00和16:00-18:00兩個(gè)相鄰時(shí)間片會(huì)返回false不會(huì)誤判成沖突。很多同學(xué)用閉區(qū)間思維把條件寫(xiě)成aStart bEnd bStart aEnd結(jié)果兩個(gè)緊挨著的預(yù)約被當(dāng)成沖突調(diào)試半天不知道原因。5.4 待支付訂單把黃金時(shí)段“焊死”這個(gè)問(wèn)題我在聯(lián)調(diào)時(shí)才意識(shí)到有多惡心。當(dāng)時(shí)為了測(cè)試我連續(xù)創(chuàng)建了好幾個(gè)待支付訂單把晚高峰的幾個(gè)時(shí)間片全鎖住了然后關(guān)閉頁(yè)面不再操作這些時(shí)間片就永久處于BOOKED狀態(tài)其他用戶根本約不了。如果不做超時(shí)釋放整個(gè)場(chǎng)館的可約資源會(huì)慢慢被垃圾訂單占滿。解決方案就是前面說(shuō)的定時(shí)任務(wù)加主動(dòng)取消雙通道。實(shí)現(xiàn)上我有一個(gè)心得定時(shí)任務(wù)不要掃描所有訂單而是只查“狀態(tài)為待支付且創(chuàng)建時(shí)間早于當(dāng)前時(shí)間15分鐘”的訂單這樣即使訂單量大了也不會(huì)太慢。釋放時(shí)間片和關(guān)閉訂單這兩個(gè)操作同樣要在事務(wù)里完成。5.5 懶加載異常在聯(lián)調(diào)時(shí)才暴露如果用Spring Data JPA做關(guān)聯(lián)查詢訂單表里的court、venue這些關(guān)聯(lián)對(duì)象默認(rèn)是懶加載的。在Service層開(kāi)啟事務(wù)時(shí)沒(méi)問(wèn)題一旦把實(shí)體直接返回給ControllerJackson序列化時(shí)訪問(wèn)關(guān)聯(lián)屬性就會(huì)拋LazyInitializationException。這個(gè)問(wèn)題屬于典型的“單測(cè)測(cè)不出來(lái)、聯(lián)調(diào)必現(xiàn)”的坑。解決方式有幾個(gè)我個(gè)人推薦在Service層就把實(shí)體轉(zhuǎn)換成DTO或VO不要在Controller里直接返回實(shí)體。這樣既避免懶加載問(wèn)題也防止實(shí)體內(nèi)部結(jié)構(gòu)暴露給前端還方便在DTO里組裝展示字段。養(yǎng)成這個(gè)習(xí)慣之后答辯時(shí)也能順帶聊聊分層設(shè)計(jì)比單純講CRUD強(qiáng)得多。5.6 前后相差8小時(shí)的詭異預(yù)約時(shí)間這是一個(gè)看著玄學(xué)、查了半小時(shí)才發(fā)現(xiàn)的坑。用戶在頁(yè)面上選的18:00存進(jìn)數(shù)據(jù)庫(kù)變成了10:00或者反過(guò)來(lái)查詢時(shí)全部偏了8小時(shí)。問(wèn)題根源在時(shí)區(qū)MySQL連接串沒(méi)有指定serverTimezoneJVM時(shí)區(qū)和數(shù)據(jù)庫(kù)時(shí)區(qū)不一致Timestamp類(lèi)型在轉(zhuǎn)換時(shí)被自動(dòng)調(diào)整了。我的解決方式是統(tǒng)一三處約定數(shù)據(jù)庫(kù)連接串顯式帶上serverTimezoneAsia/ShanghaiJava側(cè)全部使用LocalDateTime而不是Date數(shù)據(jù)庫(kù)表字段統(tǒng)一用datetime而不是timestamp。這里不建議用timestamp是因?yàn)樗鼉?nèi)部轉(zhuǎn)換邏輯太容易受時(shí)區(qū)影響對(duì)預(yù)約系統(tǒng)這種需要精確時(shí)間段的場(chǎng)景不太友好。6. 答辯怎么講從“系統(tǒng)”到“并發(fā)場(chǎng)景下的資源預(yù)定引擎”最后這部分很實(shí)在因?yàn)榇a寫(xiě)得再好答辯講不出來(lái)也白搭。我見(jiàn)過(guò)不少同學(xué)功能都做完了但匯報(bào)時(shí)只會(huì)打開(kāi)頁(yè)面一個(gè)個(gè)點(diǎn)評(píng)委看到的只是“這個(gè)按鈕能跳轉(zhuǎn)”自然覺(jué)得是普通管理系統(tǒng)。你得換一種講法。6.1 答辯展示的三層敘事建議按三層來(lái)講。第一層講數(shù)據(jù)庫(kù)設(shè)計(jì)重點(diǎn)講為什么引入時(shí)間片表、為什么把沖突校驗(yàn)前置到排期生成階段而不是下單時(shí)去掃訂單表。第二層講并發(fā)控制把“兩人同時(shí)約同一塊場(chǎng)地”這個(gè)問(wèn)題拋出來(lái)然后展示唯一索引加原子占位更新的解決方案。第三層講訂單狀態(tài)機(jī)從待支付到超時(shí)關(guān)閉、已支付到已完成把六個(gè)狀態(tài)的流轉(zhuǎn)圖畫(huà)清楚同時(shí)說(shuō)明超時(shí)釋放的雙通道設(shè)計(jì)。演示時(shí)也可以準(zhǔn)備兩個(gè)對(duì)比場(chǎng)景第一次演示正常下單第二次用并發(fā)工具模擬兩個(gè)請(qǐng)求同時(shí)搶同一個(gè)時(shí)間片展示只有一個(gè)能成功。這個(gè)演示比任何PPT文字都更有說(shuō)服力。切記在論文里寫(xiě)了Redis、消息隊(duì)列、分布式鎖這類(lèi)技術(shù)點(diǎn)就一定要自己動(dòng)手實(shí)現(xiàn)過(guò)否則評(píng)委追問(wèn)一個(gè)細(xì)節(jié)就可能露餡。如果只在數(shù)據(jù)庫(kù)層面做了并發(fā)控制那就誠(chéng)實(shí)地講數(shù)據(jù)庫(kù)方案這已經(jīng)很扎實(shí)了。6.2 七周開(kāi)發(fā)節(jié)奏與優(yōu)先級(jí)建議我建議拿七周左右的完整周期來(lái)做這個(gè)題每周有明確產(chǎn)出避免前松后緊。大致節(jié)奏如下周次任務(wù)關(guān)鍵產(chǎn)出第1周需求分析 數(shù)據(jù)庫(kù)設(shè)計(jì) 頁(yè)面草圖文檔、ER圖、表結(jié)構(gòu)第2周Spring Boot工程搭建 用戶場(chǎng)館基礎(chǔ)CRUD可用工程、完成登錄第3周時(shí)間片生成 預(yù)約下單主鏈路從選時(shí)間到生成訂單第4周訂單狀態(tài)機(jī) 模擬支付 超時(shí)任務(wù)狀態(tài)流轉(zhuǎn)完整第5周管理端頁(yè)面 前端聯(lián)調(diào)前后端跑通第6周并發(fā)測(cè)試 邊界修復(fù)并發(fā)過(guò)測(cè)、修復(fù)八小時(shí)時(shí)區(qū)等問(wèn)題第7周寫(xiě)論文 準(zhǔn)備演示 模擬答辯管理端展示不花哨核心鏈路流暢優(yōu)先級(jí)上先打通“選時(shí)間片—下單—支付—核銷(xiāo)”這條主干道再做取消、超時(shí)、退款這些分支邏輯最后還有時(shí)間才做統(tǒng)計(jì)報(bào)表和頁(yè)面美化。很多同學(xué)一開(kāi)始就折騰前端動(dòng)畫(huà)、UI特效最后發(fā)現(xiàn)核心流程還沒(méi)走通這是最可惜的。最后說(shuō)一點(diǎn)個(gè)人體會(huì)這種系統(tǒng)最怕的不是不會(huì)寫(xiě)代碼而是拿到題目就悶頭建表寫(xiě)Controller。我見(jiàn)過(guò)不少同學(xué)把所有表建完才開(kāi)始想業(yè)務(wù)規(guī)則結(jié)果狀態(tài)沒(méi)定義清楚改了三遍代碼。如果你看完這篇還是不知道從哪里下手我的建議是先打開(kāi)一個(gè)文檔把“用戶能做什么、管理員能做什么、訂單有幾個(gè)狀態(tài)、同一個(gè)時(shí)間片被搶怎么辦”這四個(gè)問(wèn)題各寫(xiě)一段話寫(xiě)明白了再動(dòng)手。抓住并發(fā)和狀態(tài)這兩條主線這套系統(tǒng)就會(huì)走得穩(wěn)答辯時(shí)也有話可講。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久99久久99精品免视看婷| 国产成人AV| 91免费啪视频| 日韩AV大全| 国产成人网站在线观看| 99er6| 九九热中文| 另类综合婷婷五月天欧美视频| 国产日韩欧美性爱| 99五月丁香丁| 国产FREESEXVIDEOS性中国| 久久色五月天| 狠狠色色色| 夜夜爽日日躁| 99久久综合| 欧美色色色色色色色色色色影视| 亚洲欧美在线观看| 五月天激情社区| 国产亚洲精品久久久久久豆腐| 高潮毛片遮挡费高一百度| 婷婷香五月天| 五月天婷婷乱| 超碰中文字幕在线| 丁香五月电影| 亚洲亚洲激情| 综合五月激情| 月婷婷婷婷五月| se婷97| 丁香五月色综合色播五月| 极品少妇XXXX精品少妇偷拍| 五月婷婷香| 五月婷婷很很色| 久久思思热视频| 97碰碰人人视频| 无码动漫av| 久久婷婷色色| 欧洲电影在线观看免费版英语版 | 婷婷激情六月综合| 亚洲无码影片| 九九亚洲| 亚洲综合九九| 综合AV网| 五月丁香啪啪啪| 91色在线/日韩| 99热97| WWW丁香五月| 男同91 | 99久久99九九99九九九| 久久9久| 天天做天天爱天天日| 久热一区| 久久五月婷婷丁香| 天天插轮理| 激情五月天.色网| 丁香激情网| 性爱五月丁香| 亚洲蜜桃精久久久久久久久久久久 | 丁香五月婷综合网| 99久re热视频精品98| 青青青在线视频国产| 五月婷婷综合潮喷| 久久综合26p| www.十八禁不禁AV.com| 日韩xx在线| 久久久网站| 亚洲天天免费| 婷婷六月综合| 香蕉97碰碰碰欧美| 婷婷香蕉| 婷婷五月激情五月激情| 蜜桃婷婷五月| 天堂在线婷婷| www.夜夜| 思思久久精品| 五月丁香婷中文字幕| 五月丁香婷婷狠狠操| 91AV婷婷| 婷婷五月中文在线视频| 日本色婷婷久久99精品91| 成人午夜天| site:ornaments52.com| 九九热视频精品2| 91av无码| AV大香蕉| 日本久热| 视频这里只有精品| 97色久| 777精品久无码人妻蜜桃| 国产午夜一区二区三区| 另类激情五月| 人妻中文在线| 激情五月色综合网| 婷婷五月激情基地| 亚洲乱码日产精品BD| 五月丁香婷婷婷激情爱爱| 五月天色五月天| 九九人人精品| 91聚色综合网| www狠狠| 婷婷五月天BBw| 丁香五月婷婷激情小说| 五月色丁香婷婷综合| 婷婷伊人网| 亚洲国产精品VA在线看黑人| 99爱免费在线观看| 五月丁香激情怕怕| www,超碰| 婷婷五月在线| 婷婷五月丁香激情图片| 色域五月丁香| 99ri网站在线观看| 成AV人片一区二区三区久久| 99热久| 狠狠色婷婷777| 激情婷婷久久| 91操在线视频| 91色在线/日韩| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 日本视频99| 1024成人免费看| 亚洲精品色| 色五月婷婷啪啪五月| 激情美女五月天| 97色综合视频| www综合久久| av操B网站| 国产肥白大熟妇BBBB视频| 国产性爱一级| AV在线免费网站| 五月丁香天堂网| 五月天激情视频五月天| 综合五月天婷婷色| 婷婷五月天欧美图片在线播放电驴| 天天做天天爱天天爽在| 色婷婷影院| 成人丁香色| 碰碰操91| 丁香九月激情久久| 任你搞在线观看视频| 97超碰,人人舔,人人操,人人摸| 成人看片网站| 久综合4| 日本eVa一区=区视频| 日日夜夜噜噜爽爽| 色永久| 五月香六月婷| 天天摸天天做天天爱天天爽| 日本人人xxx| 天天色天天色天天色天天色天天色| 婷婷五月四狠狠| 激情五月深爱五月观看| 婷婷伊在线| 亚洲色色图片| 人人舔天天| 5月丁香六月婷婷| 久热这里只有精品6官网亚洲| 玖玖国产视频一区| 春色激情第四色| 婷婷5月天av| 五月婷婷六月丁香综合视频在线| 色五月婷激情| 秋霞网在线观看理论91| 亚洲综合网激情五月天| www夜夜操wwwcon| 99成人精品| 99热在线里有精品| 五月激情网站| 影音先锋天天日| 大香蕉久热| 色综合九九| 久草五月天| 特级西西4444www无码| 亚洲 无码 中文字幕 中出 | www.henhenl| 婷婷激情五月天在线| 天天爽,夜夜爽| 久久久久亚洲AV无码网影音先锋| 久久综合五月天| 日日做A爰片久久毛片A片英语| 国产性av| 91碰操| 99热综合色图| 26uuu欧美亚洲日韩| 久久九精品| 玖玖九九99| 亚洲99热| 成人做爰A片免费看网站找不到了| 欧美群妇大交乱婬网| 丁香五月综合激情久久潮喷| 五月激激激情综合网| 色情五月天丁香社区| 久久久久人妻| 免费一区二区三区| 精品99在线看| 婷婷六月中文字幕| 久久婷婷五月丁香网| 色综合久久88色综合天天99| 久久久天堂国产精品女人| 丁香五月天社区婷婷| 97干免费视频| 丁香婷婷色五月天| 九色91国产| 无码99| 五月激情网站| 欧美色性色好| 五月丁香婷婷综合| 久久五月天婷婷| 丁香五月 性爱| 九九青草热| 电影蜘蛛女| 五月丁香六月婷婷综合伊人| www99热| 九九色情网站| 婷婷成人网五月天| 天天操狠狠操| 国产69久久久欧美黑人A片 | 婷婷色网站| 天天干天天干天天干天天干天天干天天| 日日操日日撸| www,婷婷,com| 夜夜资源站| 婷婷开心综合人妻小说网址| 欧美性色视频| 人妻熟人中文字幕一区二区| 日本久久超碰| 天天色,天天操,天天射| 五月婷婷啪| 国产精产国品一二三在观看| 色色色99| 99re在线视频| 夫妻超碰在线| 亚洲天堂AAA| 婷婷综合色| 免费看欧美成人A片无码| 97在线观视频免费观看| 9久热在线视频| 亚洲黄色操逼| 色色日韩| 午夜色婷婷| 色爽干| 91大神操美女| 色婷婷成人| 丁香五月电影| 色综合网址| 丁香五月色情| 4399成人黄A片| 久久 无毛。| 五月综合婷婷久久在线| 午夜天堂一区人妻| 深爱五月激情| 国产老熟妇亲子乱对白| www.狠狠狠.com| 色五月丁香在线| www激情| 欧美成人AAA片一区国产精品 | 丁香熟女乱| 我爱宗和色| www.99热| 白度黄视频| 色丁香在线视频| 亚洲成人婷婷| 久久99精品久久久久久青青AR| 五月丁香六月在线欧美| 天天爽综合| 天天干天天日天天操| 色婷大香蕉| www.热99热| 7EzOBIhNq85TO| 大功率国产在线| 五月丁香另类图片| 天久久久久| 偷拍五月丁香| 日本情色一区二区| 99热这里是精品| 久久五月情| 可以免费看AV网站| 蜜桃婷婷狠狠久久综合| 激情五月天天狠狠久久| 狠狠综合区| 99热这里只有精品69| 九九婷婷网五月天| 中文字幕AV在线| 国产成人av在线播放| 婷婷丁香成人五月天| 国产色五月| 五月天丁香色色| 思思热再线视频| 亚洲三A| 婷婷五月天美女| 97影院一级片| 久热这里只有国产| 中文字幕日本最新乱码视频| 丁香婷婷十月| 婷婷狠狠97| 狠狠999| 国产精品久久久爽爽爽麻豆色哟哟| 九九碰九九爱97超碰| 欧美猛片| 91日综合欧美| 另类视频五月天| 少妇性按摩无码中文A片| 色婷婷4| 激情婷婷丁香五月| 99er精品视频| 丁香五月日韩| 亚洲无AV在线中文字幕| 久久网思思| EEUSS鲁片一区二区三区| www天天干| 色婷婷成人色网| 婷婷五月天成人在线视频| 丁香六月婷婷久久综合| 婷婷丁香六月| 激情五月综合婷婷| 天天操天天日天天操| 91久久国产综合久久| 婷婷五月天免费视频| 天天综合五月天| 婷婷五月天综合网| 成人网站av免费网站推荐| 婷婷五月综合社区| 五月丁香拍拍激情综合| av国产精品| 丁香五月激情啪| 91精品久久久久久| 国语精品探花| 成人一级片| 久久999久久999久久999久久| 亚洲婷婷五月| 色九月婷婷综合| 激情另类综合| 欧美操我| 五月色综合| 久久久人人操A V| 激情五月婷婷综合色播小说| 爱操人妻| 五月天大香蕉| aaaaaa片| 亚洲最大视频网站| 婷婷涩涩五月天| 六月婷婷激情| 青青久在线视频免费观看| 五月婷婷网站| 久久99久久久久久久噜噜| 激情五月婷婷五月| 日本成人噜噜噜| 久久五月天合网| 色网五月婷婷| 成人免费va| www.99热在线观看| 久久91久久精品久久| 五月婷婷欧美激情| 97碰人人操| 大香蕉五月天婷婷| 色噜噜五月天| 色婷婷久久综合丁香五月| 九九精品99| 亚洲九九99精品视频在线播放| 日日操人人操| 五月激情啪啪啪| 亚洲视频综合网| 无套内射极品大美女| 亚洲精品欧洲精品| 99综合成人视频在线观看| 中文字幕在线观看视频www| 色在线视频网2025| 99re热在线视频| 日本偷拍九九九| 五月天激情四射网站| 五月丁香网中文字幕| www.婷婷六月天| 五月丁香久久激情综合| 丁香激情网| 人人爱人人摸人人澡| 大香蕉99| 伊人超碰在线| 婷婷五月花| 五月婷婷成人| 99re思思热在线视频| 日本 色综合| 色激情五月| 国产欧美va| 亚州视频九九99| 色很久综合| 91爱操| 日日.c| 密黄站| 五月婷婷偷拍| 激情四射婷婷色色色| 99热国品| 操99| 色七七九九| 涩涩涩.com| 成人五月天在线视频在线观看| 欧美六月| 色五月天丁香婷婷色| 欧美黑人巨大性生话| 一本综合丁香日日狠狠色| 99热精品网| 色情综合网| 97人人做| 精品爆操| 久操福利| 五月丁香六月婷婷免费| 五月色综合| 亚洲成人无码片| 五月激情四射网站| 色综合五月天| 色色亚洲| 密着浓厚中出乚交尾GvG935| 婷婷五月天电影网| 99久久久久| 91视频一起草| 天天爽人人综合免费7799| 大香蕉五月丁香| 亚洲中文字幕在线观看| 免费无码毛片一区二区A片| 色婷婷基地| 囯产精品久久欠久久久久久九大| 五月婷婷综合久久| 久久性爱视频网站| 五月婷婷 激情五月| 天天做天天干天天综合网| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 六月婷久久| 亚州精品成人片| 久久99免费视屏| 五月天丁香久久综合 | 高潮毛片遮挡费高一百度| 最新日韩久热免费视频看看| 超碰免费大香蕉| 91人人爽狠狠狠| 青青操成人福利| WWW、日本色丁香、co m| 综合久久六月| 97自拍99| 超碰93在线观看| 亚洲xx网| 精a品a视a频| 婷婷色五月亚洲| 丁香激情六月天婷婷| 亚洲丁香网| 第四色五月天| 97干97色| 激情碰碰碰| 丁香五月天天久久综合小说| 婷婷色一二三区波多野结衣| 极品九九九九九九| 日韩精品一品二区三区的使用体验| 日本久久九| 开心五月色婷婷综合开心网| 色九九九综合| av在线免费播放| 99热欧美精品| 天天狠狠婷婷在线| RenRenSe在线视频网站| 色色色综合色| 狠狠狠五月婷婷六月丁香| 欧美色播综合在线观看| 色综合天天天天做夜夜| 婷婷五月天啪啪| 婷婷久久综| 玖玖无码中文| 国产69久久久欧美黑人A片| 国产99久9在线+|+传媒| 超碰精品在线| 五月丁香六月激情综合网| 26UUU欧美激情一区二区| 欧美VA在线| 大香蕉五月丁香| 大香蕉婷婷| 人人色人人弄人人操| 玖玖@三月天天丁香婷婷| 91色在线| 色青青视频| 婷婷五月激情视频| 久久婷婷影院| 久热精品在看| 婷婷五月免费观看| 婷婷激情六月综合| 久久婷婷七月丁香| 99啪99| 欧洲S级在线观看| 亚洲Va成人| 五月婷婷网五月在线| 久久天堂| 国产精品色情AAAAA片软件| 色婷大香蕉| 五月天亚洲图片婷婷| 五月天六月婷婷电影| 亚洲色五月| 亚洲视频在线网| 五月天无码| 色婷婷成人| 亚洲操操| 色射影院| 婷婷五月丁香五月综合网| 99欧美| 最新AV在线观看| 高清无码 一区 二区 三区| 亚洲无码99| 97热这里只有精品| 99ri精品在线观看| 日韩高清成人| 久久66精品| 在线中文字幕av| 九月停停| 一区二区三区四区牛| 99色综合网| 色狠狠色狠狠| 九九这里有精品| 色欲AVV| 五月天婷基地| 五月婷婷片| 99热在线观看| 九九色中文| 婷婷丁香五月亚洲免费| 99色综合| 久久综合干| 五月天色丁香| 中文字幕成人网站| www.婷婷五月天,com| 色婷婷精品视频| 婷婷激情六月中文| 久久99这里只有精品视频| 午夜天堂啪啪| 91精品无码久久久久久五月天| 这里只有精品视频国产| 色99视频| 99九九精品| 91干在线| 久热91精品| 丁香五月激情婷婷激情| 日本色色图| 人妻在线观看视频| 激情婷婷丁香色情五月天| 婷婷 伊人 久久| 色婷婷另类| 丁香婷婷中文字幕| 人人妖人人97| 99在线视频在线观看| 日本三级日本三级99| 色狠狠综合| 五月婷婷在线播放| 9色免费网| 成人网丁香五月| 亚洲无AV在线中文字幕| 99色五月| www夜夜操| 69天堂99| 91婷婷五月天综合视频| 黄色国久久| 色婷婷内射| 婷婷五月天网| 日韩a热| 日本久久99| 干亚洲天堂| 色五月综合激情| 超碰大香蕉网| 色婷婷色99国产综合精品| 九九AV| 天天做夜夜爽| 人人爱干人人爱草| 色伦专区97中文字幕| 人妻videos人妻高清| 五月综合色| 婷婷亚洲五| 丁香六月激情综合| 99久久网站| 五月天色影院| 人妻系列久久久久久久久久久| www.久久99| 婷婷色色五月| 无码色| 九九免费精品在线视频| 天天爽天天爽| 久色网五月| 久久婷婷九月国产精品| 女高怪谈在线观看| 久久伦乱| 99色在线视频| 综合激情五月丁香| 99啪视频在线观看| 婷婷午夜丁香| 99热 免费| 婷婷色色亚洲| 天天色天天操天天射| 五月婷婷色影院| 色色com| 精品无码av丁香五月激情| 一起草AV入口| 操一操干一干| 丁香六月开心| 伊人久久丁香狠狠婷婷综合香蕉| 这里只有精品免费视频| 国产在线黄色| 国产成人精品一区二三区熟女在线| 成人小说 五月天 婷婷| 国产三级在线播放| 色色五月天激情| 很很操很很操| 欧美 日韩 成人| 天天精品视频免费观看| 日日日影院| 99九九视频| 五月香婷婷| 婷婷五月丁香综合人妻| www.久久久久久久| 99色视频| 激情五婷网| 噜噜噜狠狠色综| 99精品偷自拍| 无码99| 日日日,com| 91/九色黑人| 另类A片| 五月天婷婷色小说| 五月丁香 狠狠爱| 伊人99热| 九九爱激情| 亭亭色色五月天| 天天日天天爽| 99免费视频网| 五月丁香 六月婷婷a| 亚洲99热| 人妻久久久久久久 | 婷婷五月天奸女| 无码一区精品一区视频| 五月丁香无码| 久热精品视频| 国产亚洲色婷婷99精品| av网站免费在线| 97精品综合久久| 日日操天天| 久久五月天激情美女| www久久久久久久| 色99在线视频| 丁香五月在线播放| 最新精品视频99| 大香蕉五月婷婷| 丁香六月成人| 91中文在线| 婷婷的色色五月天| 99热这里只有精品最新| 国产99精品免费视频| 99精品国产在热久久婷婷| 人妻久久久| 99r这里| 婷婷五月天播| 久久女人天堂| 丁香色影院| 草草夜夜操| 日本视频99| 五月丁香五月婷婷在线观看| 五月丁香网中文字幕| 中文字幕婷婷| 五月天婷综合| 婷婷五月乱交换| 免费精品99| 99热这里只有精品3| 婷婷色婷婷亚洲成人| 丁香五月婷婷99| 国产FREESEXVIDEOS性中国| www.五月天社区| 色婷婷综合视频| 婷婷五月天AV在线| 婷婷丁香综合| 91亚洲免费片| 二区成人视频| 亚洲传媒在线观看| AV成人在线网站| 人妻AV在线| 夜夜干夜夜操| 婷婷夜夜操| 久久这里只有精品视频26| 综合亚洲五月天| 97色婷| 亚洲六月婷婷| 丁香五月综合激情久久潮喷| 天堂美国久久| CHINESE熟女老女人HD视频| 99热国产精品| 婷婷五月香蕉| 久久色五月天| 久久宗合影| 免费成片在线观看| 9久操| 中文字幕高清av| 日日操夜夜操不卡| 亚洲AV成人一区二区在线观看| 无遮挡国产高潮视频免费观看 | 天天综合久久| 久久婷婷啪啪视频| AAA久久| 色色五月丁香婷婷| www久久久| AV中文在线| 成人中文字幕在线| 殴美激情综合网| 色域五月婷婷丁香| WWW免费视频碰碰碰碰| 五月丁香婷婷综合| 国产69久久久欧美黑人A片| 丁香六月色婷婷| 九九婷婷网五月天| www.日日夜夜.com| 99精品热| 国产亚洲精品久久久久久郑州| 亚洲国产精品SUV| 疯狂做受XXXX高潮A片动画| 国产古装妇女野外A片| 色五月综合网| 亚洲成人人人操| 六月综合婷婷开心伊人| 婷婷狠狠操| 99热这里只有精品1| 婷婷激情六月中文| 久久激情五月天| 五月丁香激情婷婷综合| 丁香五月激情在线| 啪啪99| 涩综合婷婷| 亚洲中文字幕在线观看| 亚洲综合视频八| 日韩肏屄网| 五月天丁香网| 五月婷婷久久内射| 五月婷婷五月天激情网| 五月天色丁香| 91一起操| 国产婷婷色综合AV蜜臀AV | 久久九九99字幕| 久久人妻高清中文| 五月天伊人久久久久| 另类视频一区| 少妇出轨做爰高潮A片| 国产成人精品亚洲线观看| 丁香五月亚洲综合| 天天日P天天射P| 婷婷五月大香蕉| 欧美激情五月综合| 欧美日韩AAA| 人妻激情在线| 免费看欧美成人A片无码| 碰久久精品w| 久久五月网| 丁香五月激情六月| 五月丁香影院| 中国丰满熟女A片免费观| 在线亚洲综合网| www.99热这里精品| 色五月婷婷婷婷婷婷婷婷婷婷| 丁香五月婷婷狠狠色| 就爱射中文字幕资源网| 91精品无码| 天天日中文| 97热这里精品在线视频| 天天撸夜夜爽| 久久婷婷网站| 狠狠ri| 97狠狠色| 思思热99在线视频| 精品色| av不卡网站| 色综合色色| 婷婷五月天另类网站| 婷婷久久网| www.韩日视频| 国产VA播放| 亚洲婷婷五月天激情| 啪啪综合网| 婷婷色色欧美| 天天舔天天| 9l视频自拍九色9l视频自拍九色9l社区| 亚洲精品一区中文字幕乱码| 伊人狠狠色婷婷综合丁香一区| 开心激情色婷婷五月天| 99丁香五月婷| 亚洲成AV人片在线观看| 99视频超级精品| 色五月婷婷小说亚洲中文字幕组| 91超级碰| 亚洲亚洲人成综合网络| 五月丁香另类图片| 99视频在线精品免费观看2| 婷婷五月天av| 猫咪伊人久久| 色在线视频网2025| 国产性爱在线| 99这里有精品视频3| 亚洲婷婷欧美婷婷| 日韩有码一区| 六月婷婷私欲| 九九aV| 庭庭久久内射| 五月婷婷免费在线观看视频| 亚洲欧洲中文日韩久久AV乱码| 色综合色五月| 欧美狠狠色| 九九爱精品网站| 国产欧美婷婷五月| 狠狠干无码| 超碰99热精品| 国产精品热搜丁香五月婷婷| 丁香五月花| VA婷婷| 五月婷婷影院| 九九精彩久久| 成人色五婷婷| 91九色偷拍| 五月丁香直播| 五月天伊人| 99这里只有精品视频免费| 婷婷伊人综合中文字幕| 亚洲精品成人片在线播| 99色最新在线视频网站| 密着浓厚中出乚交尾GvG935| 免费99情趣网视频| 色五月亚洲| 综合婷婷| 免费AV播放| 久久婷婷五月天蜜桃| 五月天激情婷婷| 96精品国产综合久久久久久| 婷婷五月色综合| 国产日产亚洲系列最新| 亚洲熟妇AV综合网五月丁香伊人| 日本婷婷| 久久婷婷青草五月天| www色色色com| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 五月婷婷人人人操| 人妻久久婷婷| 婷色五月天| 99爽视频| www.狠狠| 九九热精品视频| 色播五月丁香| AV中文在线| 欧美美女国产日韩一区二区久| 色99视频| 91狠狠色色丁香婷婷综合久久| 五月婷婷丁香| 97色永久免费视频| 91人人爽狠狠狠| 色婷婷在线影院| 婷婷八月丁香激情综合| 热99精品视频| 色五月色五天色情网| 丁香五月自拍| 一本色道久久综合狠狠躁小说| 国在线激情网| 99色在线视频| 黄网免费观看| 久机视频这只有精品| 91蜜桃婷婷狠狠久久综合9色| 人人97碰| 狠狠色噜噜狠狠狠狠综合| 这里只有精品视频99| 天天射夜夜爽| 婷婷五月花| 久热精品视频| 五月婷婷六月丁香玖玖玫瑰91| 激情综合国产| 超碰在线91| 日本久久99| 丁香婷婷射| 激情玖玖综合网| 五月婷婷五月天在线 | 十月丁香婷婷| 九九婷婷热| 五月天综合视频| 色婷婷久久综合久色综| 99只有精品| 五月丁香婷中文字幕| 日本玖玖在线| 亚洲天天操| 日本一道久久| 色婷婷成人做爰A片免费看网站| 色噜综| 91久久色| 五月婷婷激情网| 五月中旬婷婷丁香六| 97艹| 棕合影院色色| 怡红院99| 五月丁香A片| 特级西西4444www无码| 97久久久久| 欧美丰满熟妇BBB久久久| 夜夜操天天爽| 影视av久久久噜噜噜噜噜三级| 久热伊人| 久久偷拍综合五月天| 97久久人人操| 五月天丁香婷婷网| 婷婷五月天亚洲| 99色视频| 思思热99er| 狠狠操狠狠插| 狠狠草天天草| 99热在线网站| 婷婷五月天社区| 99成人免费热视频| 亚洲AV成人精品日韩在线播放| 国产成人网| 亚洲综合激情五月久久| 色VA| 中文字幕第四色.999| 亚洲婷婷五月天| 开心五月天激情网站| 色丁香五月天| 丁香六月天婷婷色| 亚洲无码播放| 久久亚洲婷婷| 久久五月激情综合| 激情综合丁香六| 成人丁香| 五月五丁香婷婷| 亚洲综合草草| 91呦呦呦| 五月婷婷在线免费观看| 99re鈥哸鈥唙| 五五月丁香花激情综合网| 国产成人在线不卡AV| 久久久中文| 99网99热| 五月天婷婷开心| 国产 亚洲 在线| 五月婷婷黄网站大全| 另类激情综合| 色五月激情网| 国产精品色一哟哟| 97se视频在线| 最新无码专区| 激情综合一| 激情五月天偷拍综合网| 五月丁香好婷婷A片网| 丁香五月婷婷色情综合| 丁香五月婷婷激情蜜桃| 极品少妇高潮啪啪AV无码| 亚洲天堂aaaa| 热成人网| 热99热| 久草天堂| 日韩在线一级| 西西4r午夜剧场| 日本天天色| 亚洲网视屏| 99久久九九| 天天综合天天玩夜夜玩天天玩夜夜玩| 九月激情综合| 婷婷色色宗合网| 国产无遮挡又黄又爽免费网站| 99综合免费视频| 99热免费观看| 99热这里只有在线| 亚洲激情五月丁香久久久久| 日日天天天| 婷婷色丁香五月| 日本99视频精品免费播放| 五月色婷婷夜色| 香蕉婷婷五月| 内射人妻视频国内| 婷婷五月丁香五月| 99色热视频在线| 丁香色五月天| 色五月亚洲开心网| 六月色五月天天婷婷| 婷婷色五月综合丁香| www色色com| 91色噜噜狠狠狠狠色综合| 日本毛片内射| 日日干四虎| 欧亚成人A片一区二区| 99久久精品国产色欲| 五月婷婷婷婷| 婷婷五月情天| 久久婷婷五月综合伊人| 2w在线视频| 丁香五月天婷婷久久综合| 爱爱色五月天| 人人爽人人射-美女久久久久久久久久-成人AV| 猫咪伊人久久| 久久精品99久久久久久| 丁香婷婷婷| 丁香五月停停av| 99热免费精品| 99视频久久| 综合AV在线| 丁香五月婷婷亚洲综合精品| 伊人久久大香线蕉av一区| www.henhengan| 婷婷色丁香六月| 天天爱夜夜爽| 五月天色社区| 99热官网精品在线| 婷婷婷婷色| 婷婷基地爱| 色色射| 天天做天天爱天天爽| 狠狠色成人影片| 五月婷婷色影院| 91人人爽狠狠狠| 91日韩在线| 99性爱视频| 欧洲色色| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 五月天激情四射| 91碰碰碰| 五月婷婷影院| 欧美激情综合| 五月丁香六月婷综合成人综合| www.婷婷| 午夜丁香| 午夜不卡久久精品无码免费| 伊人婷婷99热精品| 久久蜜臀婷婷| av成人在线播放| 五月天色综合| 99热99在线| 国产精品色色666| 六月丁香婷婷尤物| 九九精品视频在线观看| 五月综合在线| 狠狠色色| 丁香网站| 香蕉AV777XXX色综合一区| 久久免费高| www,超碰| 大香蕉啪啪网| 一本道综合网| 五月天色婷婷伊人网| 五月婷婷激情综合| 色99色| 色五月丁香A欧美com| 婷婷性爱视频在线| 日本超碰在线| 桃色激情婷婷伊人网| 99热这里只有精品最新网址| 久久精品夜色噜噜亚洲a∨| 91AV婷婷| 玖玖婷婷色五月| 99久久婷| 超碰精品在线| 青草网在线观看| 狠狠干在线视频| 99er在线观看| 深爱婷婷网| 国产片色| 九九热99免费视频| 婷婷五月丁香五月| 91VIP在线观看| 4399在线日本A片| 久久五月激情网| 婷婷激情5月| 色色免费网站| 欧美三级巜人妻互换| 亚州色综合| 永久的网站AAAA | 五月天综合激情网| 成人网址在线观看| 97性视频| 五月久久婷婷成人网| 很操日本7| 九九激情网| www.99久| 激情综合久久| 99re免费在线视频| 播丁香五月婷婷欧美| 九久久九精品视频| 免费观看全黄做爰的视频| 日韩大片艹艹| 天天爱天天做综合| www.五月天| 成人av在线网| 久久婷婷综| www久热com| 色色色色色色色色综合网| 婷婷六月丁综合| 天天弄天天爽| 丁香激情网| 野战J办公桌椅H| 九月激情综合婷婷| 99视频精品8| 婷婷六月综合激情| 色婷婷综合在线| 天天综合色综合| 色爱综合网| 午夜色丁香| 六月丁香深深爱| 欧美人妻一区二区| 婷婷五月天性爱视频| 五月天激情小说电影| 欧美久久网| 亚洲成人在线观看网址| 五月丁香成人日| 97干免费视频| 在线视频九色97| 9久精品视频| 免费观看大片视频 丁香婷婷 六月欧美| 白人荫道BBWBBB大荫道| 大香av| 国精产品一区二区三区| 激情综合五月婷婷| 人妻激情综合| 免费观看的婷婷五月视频在线| 免费看欧美成人A片无码| 婷婷六月啪啪| 久久综合人妻| 九九九九操逼| 欧美丁香婷婷天天操| 丁香五月婷婷基地| 91日在线视频| 激情综合网五月天天| www.色婷婷| 久久丁香婷婷色情综合| 成人五月天在线视频在线观看| 亚洲旡码| 青青操丝袜美腿| 噜噜久| 久九男女天堂| 激情 五月 婷婷 丁香| 玖玖爱资源站| 97超级操操| 色五月婷婷在线观看| 久久婷婷丁香花综合网| 激情六月五月婷婷综合网| 色情五月综合婷婷| 婷婷丁香午夜综合影视| 99热免费精品| 日韩五月婷婷| 色婷婷综合网站| 精品欧美一区二区三区久久久| 色综合婷婷| 国产免费一区二区三区三州老师F1F1.CC | 五月丁香综合精品| 激情性爱五月| 人人操操| 色色色99| 欧美毛卡| 五月天开心激情综合网| 婷婷自拍| AAAA网站| 江苏少妇性BBB搡BBB爽爽爽| 六月婷婷视频| 五月激情综合网| 丁香桃色综合网| 丁香六月综合激情| 狠狠操天天操| 91久热| 99久久99九九九99九他书对| 色99日韩| 久久婷婷五月综合伊人| 九色91视频| 99大香蕉| 五月天成人综合| 国产免费一区二区在线A片视频| 婷婷六月久久综合导航| 伊人超碰在线| 丁香婷婷噜噜| 97干在线看| 91九色中文| 六月久久婷婷| 亚洲成人AV在线观看| 日本3级片偷拍网站| 丁香六月久久| 色久播播| 天天插天天插| 黄涩毛片| 久久桃花网色婷婷| 久色资源网| 婷婷欧美激情| 内射综合网| 天天日天天做天天舔| 九九在线视频| 另类视在线| 大香蕉手机视频| 色丁香五月婷婷婷| 亚洲日韩乱码一区二区三区四区| 色婷婷丁香特级性爱视频| 96丁香婷婷九月蜜桃综合久久| 91色综合| 婷婷视频网| 色婷婷色久综| 天天操天天插天天射| 色色色在线观看| 久久女婷| 粉嫩AV久久一区二区三区| 人人做人人看人人摸| 五月九九综合| 丁香婷婷九月| 超碰在线看| 极品人妻VIDEOSSS人妻| 五月四色婷婷| 年轻的妺妺伦理HD中文| 夜夜骑福利资源| 丁香婷婷婷五月综合色情| 亚洲不卡| 五月在线婷色| 婷婷五月综合性爱| 另类激情五月在线视频欧美| 国产99久久久| 国产精品扒开腿做爽爽爽A片唱戏| A A色色| 91日韩美女被插视频| 直接看的AV| 婷婷色五月色妇| 国产亚洲av片| 91中文在线| 丁香五月婷婷亚洲另类| 日本三级网址| 色色五月丁香婷婷| 狠狠操在线视频| 久久久久久久8| 五月丁香影院| 丁香久久久| 精品乱码视频| 综合色七七| 欧美综合五月丁香六月婷| 涩五月婷婷| 丁香花综合永久入口| 超碰在线人人| 色青青视频| 超碰av天堂| 亚洲第一成人无码A片| 亚洲色五月天| 这里只有精品视频在线观看免费| 九九综合网| 大香蕉520| 直接看的AV| 天天搞夜夜爽夜夜爽| 五月 婷 久| 91色色色| 色欲一区二区三区精品A片| 日本精品在线噜噜噜| 久久激情四射| 婷婷五月天激情网| 精品久久久人妻| www久久五月com| 啪啪东京热| 久久激情中文| 色色丁香婷婷| 思思久日精品视频| 狼友超碰| 色五月婷婷丁香凹凸| 婷婷深爱五月| 思思热AV| 1024日韩| 五月天婷婷情色| 日日干日日| 五月丁香综合精品| 亚洲色情久久| 五月婷婷丁香五月| 九九亚洲| 噜噜精品| 美女主播野战视步页| 天天摸天天肏| 亚洲人成网站999综合| 粉嫩AV久久一区二区三区| 五月婷婷色播| 久久这里只有精品1| 丁香五月天偷拍| 亚洲熟女色| 五月天色欧美| 屁股翘好撅高迎合跪趴|