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

ARTICLE DETAIL

資訊詳情

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

基于SpringBoot的航旅APP核心鏈路:航班查詢、庫存控制與訂單狀態(tài)機(jī)設(shè)計(jì)

基于SpringBoot的航旅APP核心鏈路:航班查詢、庫存控制與訂單狀態(tài)機(jī)設(shè)計(jì) 1. 選題需求拆解三個(gè)標(biāo)題其實(shí)指向同一套系統(tǒng)1.1 從標(biāo)題關(guān)鍵詞反推系統(tǒng)邊界先說你拿到的這類題目。仔細(xì)看云上航空、云端飛航、航旅隨心這三個(gè)詞剝掉包裝的外殼底子完全一樣一個(gè)基于 SpringBoot 的航旅APP及配套管理后臺(tái)。這類畢設(shè)標(biāo)題在學(xué)校里非常常見或者說很多老師出題就是給一個(gè)業(yè)務(wù)場景再配上基于SpringBoot的XX平臺(tái)剩下的系統(tǒng)邊界要靠你自己去定義。我輔導(dǎo)過不少做這類題目的同學(xué)發(fā)現(xiàn)最常犯的錯(cuò)不是代碼寫不出來而是在動(dòng)手前沒有把系統(tǒng)到底要做什么想清楚結(jié)果做到一半發(fā)現(xiàn)功能太多畢業(yè)設(shè)計(jì)根本收不了尾。拿到這個(gè)題第一件事是拆出核心業(yè)務(wù)實(shí)體。航旅平臺(tái)繞不開四樣?xùn)|西用戶、航班、艙位庫存、訂單。圍繞這四個(gè)實(shí)體展開的就是用戶注冊登錄、航班查詢、航班預(yù)訂、訂單支付、行程管理這幾條線。APP端負(fù)責(zé)給乘客用管理端負(fù)責(zé)維護(hù)航班和艙位數(shù)據(jù)二者通過接口聯(lián)動(dòng)。有個(gè)容易忽略的點(diǎn)APP在畢設(shè)里的形態(tài)。你可以做 Android 原生Java/Kotlin、微信小程序也可以做 H5 套殼或者干脆用 Vue 寫移動(dòng)端網(wǎng)頁然后通過 WebView 打包成 APP。學(xué)校驗(yàn)收時(shí)候只看是不是一個(gè)能跑的移動(dòng)端應(yīng)用所以完全沒必要在客戶端上追求復(fù)雜技術(shù)把精力留給后端業(yè)務(wù)邏輯才是穩(wěn)妥路線。1.2 用戶端與管理端的功能清單與優(yōu)先級(jí)劃分把功能范圍控制住是畢設(shè)活下去的前提。我建議按下面這個(gè)表格來規(guī)劃模塊端模塊具體功能優(yōu)先級(jí)復(fù)雜度用戶端APP賬號(hào)體系注冊、登錄、修改密碼、個(gè)人信息P0中用戶端APP航班查詢按起降城市、日期查詢航班列表支持艙位篩選P0中用戶端APP在線預(yù)訂選擇航班艙位、填寫乘機(jī)人、提交訂單P0高用戶端APP訂單管理待支付訂單、查看訂單詳情、模擬支付、取消訂單P0高用戶端APP行程管理按時(shí)間線展示出行計(jì)劃、倒計(jì)時(shí)、歷史行程P1中用戶端APP消息中心航班變動(dòng)通知、訂單狀態(tài)通知P1低管理后臺(tái)航班管理航班錄入、班期規(guī)則、起降時(shí)間維護(hù)P0中管理后臺(tái)艙位管理各艙位等級(jí)定價(jià)、余票庫存調(diào)整P0中管理后臺(tái)訂單管理訂單查詢、改簽/退票審核、狀態(tài)干預(yù)P1中管理后臺(tái)數(shù)據(jù)統(tǒng)計(jì)訂單量、銷售額簡單圖表P2中P0 是核心鏈路缺一個(gè)系統(tǒng)就跑不通P1 是亮點(diǎn)模塊用來豐富功能描述P2 如果時(shí)間不夠可以砍掉或者只做最簡單的統(tǒng)計(jì)接口前端用柱狀圖糊一下。說實(shí)話評(píng)委老師更在意核心鏈路能不能講清楚而不是你做了多少個(gè)花哨功能。1.3 為什么 SpringBoot 是這個(gè)題目的最優(yōu)解很多同學(xué)會(huì)糾結(jié)要不要用 Spring Cloud、要不要上微服務(wù)。我的回答很直接畢設(shè)里面用 SpringBoot 單應(yīng)用就夠了微服務(wù)屬于給自己挖坑。SpringBoot 的核心價(jià)值在于兩點(diǎn)起步依賴和自動(dòng)裝配。起步依賴讓你不用再為 Spring 和第三方庫的版本兼容頭疼引入spring-boot-starter-web就自帶 Tomcat 和 Spring MVC自動(dòng)裝配則通過EnableAutoConfiguration幫你在引入依賴后自動(dòng)配置好相應(yīng)的 Bean比如引入 Redis 依賴后RedisTemplate就能直接注入使用。這種約定優(yōu)于配置的思路完美契合畢設(shè)場景——你的核心目標(biāo)是快速實(shí)現(xiàn)業(yè)務(wù)功能而不是花三周調(diào)各種 XML 配置。相比十幾年前 SSHStrutsSpringHibernate時(shí)代那種面對一坨配置文件無從下手的狀態(tài)SpringBoot 幾乎把搭建項(xiàng)目的門檻降到了零。而且答辯的時(shí)候我使用 SpringBoot 簡化了項(xiàng)目初始化流程通過自動(dòng)裝配減少了大量樣板配置這句話本身就是個(gè)加分點(diǎn)老師愛聽。2. 技術(shù)棧選型與數(shù)據(jù)庫設(shè)計(jì)先把地基打穩(wěn)2.1 一套不容易翻車的技術(shù)組合直接給結(jié)論這套組合我用過很多次穩(wěn)定性很高層級(jí)選型版本建議備注后端框架SpringBoot2.7.18不要用 3.x見下方說明ORMMyBatis-Plus3.5.x內(nèi)置分頁插件、條件構(gòu)造器數(shù)據(jù)庫MySQL8.05.7 也行但 8.0 更省心緩存Redis6.x/7.x做航班查詢緩存、Token 存儲(chǔ)鑒權(quán)JWTjjwt 0.9.x無狀態(tài)適合 APP 場景接口文檔knife4j4.3.0方便自測和答辯演示前端APPAndroid 原生 或 Vue3H5—按個(gè)人熟悉程度選管理后臺(tái)Vue3 Element Plus—或者直接用 Thymeleaf這里特別想提一句 SpringBoot 版本的問題。很多同學(xué)一上手就去創(chuàng)建最新版項(xiàng)目結(jié)果 SpringBoot 3.x 要求 JDK 17而部分同學(xué)的筆記本上裝的是 JDK 8還有 MyBatis-Plus、druid 這些常用庫對 SpringBoot 3 的兼容也各有各的坑。熱搜詞里springboot版本太高這個(gè)搜索詞我猜就有一堆人踩了。穩(wěn)一點(diǎn)的做法是直接用SpringBoot 2.7.18它是 2.x 系列的終點(diǎn)版本穩(wěn)定、教程多、幾乎不報(bào)錯(cuò)配合 JDK 8 完美運(yùn)行答辯時(shí)完全夠用。2.2 四張核心表的設(shè)計(jì)思路與建表語句數(shù)據(jù)庫設(shè)計(jì)是整個(gè)項(xiàng)目的地基我的建議是不要照搬網(wǎng)上那種幾十張表的完整設(shè)計(jì)按業(yè)務(wù)需要來。核心四張表用戶表、航班表、艙位表、訂單表。用戶表不多說就是id, username, password, phone, real_name, id_card, create_time。密碼記得用 MD5 加鹽或者 BCrypt 加密別明文存儲(chǔ)這個(gè)細(xì)節(jié)答辯時(shí)經(jīng)常被問到。航班表是重點(diǎn)它和真實(shí)的航班排期還不一樣。真實(shí)系統(tǒng)里航班有班期概念比如每天一班、每周一三五飛但畢設(shè)可以簡化成每個(gè)日期一條航班記錄也就是flight表里存的是具體某一天某一班飛機(jī)CREATE TABLE flight ( id BIGINT AUTO_INCREMENT PRIMARY KEY, flight_no VARCHAR(10) NOT NULL COMMENT 航班號(hào)如 CA1234, airline VARCHAR(20) NOT NULL COMMENT 航空公司, depart_city VARCHAR(20) NOT NULL COMMENT 出發(fā)城市, arrive_city VARCHAR(20) NOT NULL COMMENT 到達(dá)城市, depart_airport VARCHAR(50) NOT NULL COMMENT 出發(fā)機(jī)場, arrive_airport VARCHAR(50) NOT NULL COMMENT 到達(dá)機(jī)場, depart_time DATETIME NOT NULL COMMENT 起飛時(shí)間, arrive_time DATETIME NOT NULL COMMENT 到達(dá)時(shí)間, flight_date DATE NOT NULL COMMENT 飛行日期, status TINYINT DEFAULT 1 COMMENT 1正常 0取消, UNIQUE KEY uk_flight_no_date (flight_no, flight_date) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;唯一索引(flight_no, flight_date)保證同一天同一航班號(hào)只有一條記錄這是后面防重復(fù)預(yù)訂的基礎(chǔ)。艙位表用來存每種艙位的價(jià)格和庫存CREATE TABLE cabin ( id BIGINT AUTO_INCREMENT PRIMARY KEY, flight_id BIGINT NOT NULL COMMENT 關(guān)聯(lián)航班, cabin_class VARCHAR(10) NOT NULL COMMENT Y經(jīng)濟(jì)艙 F頭等艙 C公務(wù)艙, price DECIMAL(10,2) NOT NULL COMMENT 票價(jià), discount_rate DECIMAL(3,2) DEFAULT 1.00 COMMENT 折扣率, stock INT NOT NULL COMMENT 余票數(shù), total_stock INT NOT NULL COMMENT 總座位數(shù), UNIQUE KEY uk_flight_cabin (flight_id, cabin_class) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;訂單表在基本字段之外我強(qiáng)烈建議加一個(gè)快照設(shè)計(jì)。什么叫快照就是你下單時(shí)把航班號(hào)、起降時(shí)間、艙位等級(jí)、乘機(jī)人姓名身份證這些信息原樣冗余一份存到訂單里。這樣之后航班改時(shí)間了、價(jià)格變動(dòng)了都不影響已經(jīng)出的訂單也不影響你打印行程單。這個(gè)設(shè)計(jì)思路在答辯時(shí)說出去老師會(huì)覺得你考慮到了真實(shí)業(yè)務(wù)場景瞬間拉開和普通同學(xué)的距離。2.3 接口統(tǒng)一規(guī)范與 Token 鑒權(quán)接口設(shè)計(jì)直接決定前后端聯(lián)調(diào)效率。我見過最痛苦的項(xiàng)目是每個(gè)接口返回格式都不一樣前端解析字段快瘋了。所以一開始就統(tǒng)一返回結(jié)構(gòu)Data public class ResultT { private Integer code; // 200成功500失敗401未認(rèn)證 private String msg; private T data; public static T ResultT ok(T data) { ResultT r new Result(); r.setCode(200); r.setMsg(success); r.setData(data); return r; } public static T ResultT fail(String msg) { ResultT r new Result(); r.setCode(500); r.setMsg(msg); return r; } }APP 端的鑒權(quán)我推薦直接上 JWT。它的邏輯并不復(fù)雜用戶登錄成功后后端用密鑰生成一個(gè)帶過期時(shí)間的 Token 返回APP 把 Token 存在本地之后每次請求在請求頭里帶上Authorization: Bearer token后端用一個(gè)攔截器HandlerInterceptor校驗(yàn) Token校驗(yàn)通過就把用戶信息放進(jìn) ThreadLocal方便 Controller 直接取。為什么不用 Session因?yàn)?APP 不是瀏覽器Session 依賴 Cookie跨端體驗(yàn)不好而且分布式部署時(shí) Session 還要額外做共享。JWT 天然無狀態(tài)擴(kuò)展性更強(qiáng)這個(gè)選型邏輯在答辯時(shí)能講出一套完整的理由。再說一個(gè)熱搜詞里出現(xiàn)過的點(diǎn)全局過濾器處理上傳 PDF 時(shí)的 XSS 攻擊。這類安全問題放在畢設(shè)里其實(shí)是加分項(xiàng)。你可以在application.yml里配置一個(gè)過濾器對所有請求參數(shù)做script、onerror等關(guān)鍵字符的轉(zhuǎn)義XSS 過濾器不需要很復(fù)雜用 OncePerRequestFilter 包裝一層 HttpServletRequestWrapper 重寫getParameter即可。雖然航旅系統(tǒng)里大多數(shù)情況不會(huì)有人惡意攻擊你但答辯時(shí)能主動(dòng)說出我做了 XSS 過濾說明你網(wǎng)絡(luò)安全意識(shí)到位。3. 航班查詢與預(yù)訂訂單業(yè)務(wù)里最考驗(yàn)細(xì)節(jié)的一環(huán)3.1 多條件航班查詢與 Redis 緩存加速航班查詢是用戶打開 APP 后做的第一件事也是接口設(shè)計(jì)里最需要關(guān)注的性能點(diǎn)。查詢條件一般是出發(fā)城市、到達(dá)城市、日期可選艙位等級(jí)和航空公司。對應(yīng)的 SQL 不難但要注意索引SELECT f.id, f.flight_no, f.airline, f.depart_time, f.arrive_time, f.depart_airport, f.arrive_airport, c.cabin_class, c.price, c.discount_rate, c.stock FROM flight f LEFT JOIN cabin c ON c.flight_id f.id WHERE f.depart_city #{fromCity} AND f.arrive_city #{toCity} AND f.flight_date #{date} AND f.status 1 AND (c.cabin_class #{cabinClass} OR #{cabinClass} IS NULL) ORDER BY f.depart_time;注意depart_city、arrive_city、flight_date這三列是高頻查詢條件要建聯(lián)合索引。另外時(shí)間字段的存儲(chǔ)我強(qiáng)烈建議存DATETIME而不是字符串這樣前端拿到手直接格式化還能避免時(shí)區(qū)換算的一堆麻煩比如起始日期當(dāng)天 0 點(diǎn) 5 分的航班被字符串比較搞錯(cuò)位。既然用到了 Redis查詢接口就可以加一層緩存。緩存 key 設(shè)計(jì)成flight:query:{from}:{to}:{date}:{cabinClass}value 存查詢結(jié)果的 JSONTTL 設(shè)置 5 分鐘即可。為什么要 5 分鐘因?yàn)楹桨鄶?shù)據(jù)不是頻繁變動(dòng)的數(shù)據(jù)5 分鐘的延遲用戶根本感知不到而 Redis 緩存能扛住瞬時(shí)高并發(fā)也讓你的項(xiàng)目在技術(shù)方案上有緩存這個(gè)層次。代碼邏輯就三步先查緩存命中直接返回未命中查數(shù)據(jù)庫再寫緩存返回結(jié)果。有一點(diǎn)必須提醒管理后臺(tái)修改了航班價(jià)格或取消航班后對應(yīng)緩存要主動(dòng)刪除否則用戶永遠(yuǎn)查到的是舊數(shù)據(jù)。用 Spring 的CacheEvict注解或者手動(dòng)redisTemplate.delete(key)都行這個(gè)問題就是典型的緩存一致性問題答辯常問。3.2 預(yù)訂事務(wù)與庫存扣減優(yōu)雅地防止超賣預(yù)訂是整個(gè)項(xiàng)目里業(yè)務(wù)邏輯最重的接口流程是這樣的用戶提交訂單 - 校驗(yàn)航班和艙位 - 扣減庫存 - 創(chuàng)建訂單記錄狀態(tài)待支付- 返回訂單號(hào)。這里有兩個(gè)問題必須解決一是扣庫存和建訂單要放在同一個(gè)事務(wù)里任何一步失敗都要回滾二是并發(fā)場景下不能超賣也就是同一個(gè)艙位剩余 3 張票5 個(gè)人同時(shí)下單最后只能有 3 個(gè)人成功。用代碼實(shí)現(xiàn)的思路有兩條路悲觀鎖和樂觀鎖。悲觀鎖就是查庫存的時(shí)候直接SELECT ... FOR UPDATE鎖住這行其他人只能等鎖釋放。實(shí)現(xiàn)最簡單但性能差點(diǎn)適合畢設(shè)場景。推薦代碼示例Transactional public Order createOrder(Long userId, Long flightId, Long cabinId, ListPassenger passengers) { // 1. 悲觀鎖查詢艙位 Cabin cabin cabinMapper.selectByIdForUpdate(cabinId); if (cabin.getStock() 1) { throw new BizException(該艙位已售罄); } // 2. 扣庫存 cabin.setStock(cabin.getStock() - 1); cabinMapper.updateById(cabin); // 3. 生成訂單... }selectByIdForUpdate是 MyBatis-Plus 里自定義 SQL配合Transactional確保整個(gè)操作原子性。樂觀鎖則是在cabin表加一個(gè)version字段更新時(shí)帶上version條件UPDATE cabin SET stock stock - 1, version version 1 WHERE id #{cabinId} AND stock 0 AND version #{oldVersion}如果更新返回 0 行說明被別人搶了重新嘗試即可。在答辯時(shí)把這兩種方案都講出來再說一句考慮到畢設(shè)并發(fā)量不大我最終選了悲觀鎖方案代碼更直觀如果做高并發(fā)優(yōu)化會(huì)采用樂觀鎖既展示了知識(shí)面又體現(xiàn)了務(wù)實(shí)性。還要留個(gè)心眼處理接口冪等的問題。用戶手快了點(diǎn)擊兩次提交訂單結(jié)果下了兩單這就是重復(fù)提交。最穩(wěn)的辦法是在訂單表加一個(gè)order_no唯一索引用UUID去掉橫線生成訂單號(hào)插入時(shí)報(bào)主鍵沖突就說明重復(fù)下單另外前端也要做按鈕置灰。這兩層一疊加基本就防住了。3.3 艙位價(jià)格計(jì)算與訂單快照設(shè)計(jì)價(jià)格這塊別想復(fù)雜真實(shí)航空的動(dòng)態(tài)定價(jià)是個(gè)大數(shù)據(jù)系統(tǒng)但畢設(shè)只要做好多艙位多價(jià)格就夠了。簡單策略就是每個(gè)航班下掛 N 個(gè)艙位經(jīng)濟(jì)艙/公務(wù)艙/頭等艙各自有基礎(chǔ)價(jià)和折扣率展示價(jià)格 基礎(chǔ)價(jià) x 折扣率。折扣率可以隨時(shí)間變化比如提前 15 天訂是 0.6 折臨近起飛是 0.9 折邏輯寫死在一個(gè)PriceService里方便答辯時(shí)講解。下單時(shí)把價(jià)格算好存入訂單表這里就引出快照表的價(jià)值了。訂單表里冗余一份flight_snapshot字段JSON 類型存的是航班號(hào)、起降時(shí)間、艙位等級(jí)、單價(jià)、乘機(jī)人等信息的拼接串。用戶查訂單詳情時(shí)直接讀快照不需要實(shí)時(shí)去 join 航班表。這個(gè)設(shè)計(jì)的好處是訂單的歷史數(shù)據(jù)是凍結(jié)的哪怕航班改了時(shí)間用戶看到的訂單信息依然是下單那一刻的事實(shí)。用大白話講就像你租房時(shí)簽的合同房東之后漲價(jià)跟你沒關(guān)系。乘機(jī)人信息錄入時(shí)身份證號(hào)碼要校驗(yàn)格式18 位正則手機(jī)號(hào)校驗(yàn) 11 位這是成本極低但體驗(yàn)提升明顯的小細(xì)節(jié)。建議在 APP 端做一個(gè)常用乘機(jī)人管理用戶把家人信息先錄入下單時(shí)勾選即可既省事又顯得功能完整。4. 行程管理從訂單狀態(tài)機(jī)到定時(shí)任務(wù)4.1 訂單狀態(tài)的定義與流轉(zhuǎn)規(guī)則行程管理模塊本質(zhì)上是訂單狀態(tài)時(shí)間的展示。所以第一步把訂單狀態(tài)定義清楚。我用一個(gè)狀態(tài)枚舉來管理public enum OrderStatus { PENDING_PAYMENT(0, 待支付), PAID(1, 已支付), ISSUED(2, 已出票), CHECKED_IN(3, 已值機(jī)), COMPLETED(4, 已完成), CANCELLED(5, 已取消), REFUNDED(6, 已退票); private final int code; private final String desc; // getter... }狀態(tài)流轉(zhuǎn)規(guī)則要十分明確不能出現(xiàn)從已完成突然變成已取消這種詭異情況。合法的流轉(zhuǎn)路徑是待支付 -用戶主動(dòng)取消- 已取消待支付 -超時(shí)未支付定時(shí)任務(wù)取消- 已取消待支付 -模擬支付成功- 已支付/已出票已出票 -模擬值機(jī)- 已值機(jī)已值機(jī) -飛行日期已過- 已完成已出票/已值機(jī) -申請退票- 已退票在代碼層面不要在 Service 里寫一堆散落的 if else 判斷狀態(tài)而是封裝一個(gè)orderStateMachine或者直接在枚舉里加一個(gè)canTransitTo(target)方法統(tǒng)一校驗(yàn)。例如枚舉里維護(hù)一個(gè) Mapprivate static final MapOrderStatus, ListOrderStatus TRANSITIONS new HashMap(); static { TRANSITIONS.put(PENDING_PAYMENT, Arrays.asList(PAID, CANCELLED)); TRANSITIONS.put(PAID, Arrays.asList(ISSUED, REFUNDED)); // ... }每次狀態(tài)變更走統(tǒng)一入口非法流轉(zhuǎn)直接拋異常。答辯時(shí)你可以說這是借鑒了狀態(tài)機(jī)設(shè)計(jì)模式保證了訂單狀態(tài)的安全性這一句話就能撐起一個(gè)加分點(diǎn)。4.2 行程按時(shí)間軸展示與倒計(jì)時(shí)計(jì)算行程管理在 APP 端呈現(xiàn)出來的樣子應(yīng)該是最近要飛的行程排在最前面每個(gè)行程卡片上有倒計(jì)時(shí)。后端接口設(shè)計(jì)上我建議提供兩個(gè)接口查詢待出發(fā)行程訂單狀態(tài)為已出票或已值機(jī)且起飛時(shí)間大于當(dāng)前時(shí)間查詢歷史行程已完成、已取消、已退票待出發(fā)行程按起飛時(shí)間升序排列返回給前端時(shí)帶上departTime時(shí)間戳。前端拿到后用本地時(shí)間計(jì)算倒計(jì)時(shí)格式可以做成距起飛還有 2 天 5 小時(shí) 30 分。這里有個(gè)坑千萬不要在后端算了倒計(jì)時(shí)的字符串返回給前端因?yàn)榍岸隧撁嫱A羝陂g時(shí)間一直在走如果后端只返回靜態(tài)字符串倒計(jì)時(shí)不動(dòng)用戶會(huì)覺得系統(tǒng)壞掉了。正確的做法是后端只返回時(shí)間戳前端通過 JS 定時(shí)器每秒刷新一次倒計(jì)時(shí)。行程詳情的頁面可以展示一個(gè)時(shí)間軸從預(yù)訂成功到支付完成到出票成功再到值機(jī)成功按時(shí)間順序縱向排列。后端只需在訂單狀態(tài)變更時(shí)記錄一條order_timeline表order_id, status, operate_time, note查詢時(shí)按時(shí)間升序返回即可實(shí)現(xiàn)非常輕量。有了這個(gè)表訂單詳情的操作履歷也順便解決了一舉兩得。4.3 定時(shí)任務(wù)清理超時(shí)訂單與航班變動(dòng)提醒系統(tǒng)里有兩類場景天然適合定時(shí)任務(wù)處理一是用戶下單后一直不支付訂單一直占著庫存二是航班狀態(tài)發(fā)生變化需要通知相關(guān)用戶。第一類場景的處理邏輯不復(fù)雜。Spring 自帶的Scheduled注解就能搞定假設(shè)設(shè)定 15 分鐘未支付自動(dòng)取消那么寫一個(gè)定時(shí)任務(wù)每 5 分鐘掃描一次訂單表UPDATE orders SET status 5, cancel_time NOW() WHERE status 0 AND create_time DATE_SUB(NOW(), INTERVAL 15 MINUTE);這個(gè) SQL 執(zhí)行完還要把對應(yīng)的艙位庫存加回去因?yàn)橹暗目蹨p操作要還回來。邏輯就是查出所有被取消的超時(shí)訂單循環(huán)釋放每個(gè)訂單對應(yīng)的艙位庫存。注意這里也涉及事務(wù)一個(gè)訂單釋放失敗不能影響其他訂單。在闡述方案的時(shí)候你可以補(bǔ)充一句如果要做到更精準(zhǔn)的延遲觸發(fā)應(yīng)該用 RocketMQ 的延遲消息或者 Redis 過期鍵監(jiān)聽但畢設(shè)用定時(shí)掃描已經(jīng)足夠這能體現(xiàn)你對方案邊界有認(rèn)知。第二類場景航班取消或者延誤后要給已購票用戶發(fā)通知。畢設(shè)實(shí)現(xiàn)最簡單的方案不是上消息隊(duì)列而是在消息中心表里插一條記錄同時(shí)往用戶的消息列表里寫數(shù)據(jù)??梢宰龀晒芾砗笈_(tái)修改航班狀態(tài)時(shí)調(diào)用notifyService.flightChanged(flightId)這個(gè) Service 查出所有關(guān)聯(lián)該航班的未出行訂單給每個(gè)用戶生成一條站內(nèi)消息。APP 端的消息中心拉取未讀數(shù)量有紅點(diǎn)提示即可。整體工作量很小但功能完成度高演示的時(shí)候效果很好。5. 從開發(fā)到答辯項(xiàng)目演示與高頻追問整理5.1 開發(fā)環(huán)境的一致性問題做畢設(shè)期間我見過太多本地能跑一換電腦就報(bào)廢的案例。環(huán)境統(tǒng)一是減少痛苦的唯一辦法。我這里給一個(gè)完整的參考組合JDK 8 Maven 3.6.3用 IDE 內(nèi)置也行 SpringBoot 2.7.18 MySQL 8.0 Redis 6.x Node 16前端。每個(gè)組件版本都要在項(xiàng)目文檔里寫清楚。關(guān)于項(xiàng)目構(gòu)建工具很多同學(xué)糾結(jié) Maven 還是 Gradle。我的建議是無腦選 Maven原因有兩個(gè)一是 Maven 的依賴傳遞更直觀出問題看報(bào)錯(cuò)更容易定位二是網(wǎng)上 SpringBoot 相關(guān)教程和 pom 配置幾乎全是 Maven 的整合 MyBatis-Plus 時(shí)搜答案方便。熱搜詞里有人搜2020年 gradle 構(gòu)建的 springboot 項(xiàng)目配置文件大概率是接手了早期模板項(xiàng)目然后踩了一堆 Gradle 和 SpringBoot 插件版本不兼容的坑這類問題完全可以從選型上規(guī)避。打包部署的問題也要提前想好。開發(fā)期你 IDE 里直接 Run 就行但演示前的打包必須跑通。在pom.xml里確保配置了 SpringBoot 的maven-plugin執(zhí)行mvn clean package會(huì)打出一個(gè)可執(zhí)行 jar。注意一個(gè)小坑如果項(xiàng)目里有前端靜態(tài)資源比如管理后臺(tái)的 dist打包順序要先用npm run build構(gòu)建前端再執(zhí)行 Maven 打包把 dist 拷入src/main/resources/static這一步順序亂了打包產(chǎn)物就會(huì)缺前端頁面。5.2 演示環(huán)境與部署建議畢設(shè)演示最尷尬的場面是什么u 盤里的代碼在講臺(tái)上打不開或者演示到一半 Redis 沒啟動(dòng)直接白屏。我的建議是準(zhǔn)備兩套方案首選是本機(jī)演示。提前把所有服務(wù)啟動(dòng)好MySQL 服務(wù)、Redis 服務(wù)、后端 jar、APP 前端模擬器或真機(jī)。這里有個(gè)細(xì)節(jié)如果你用的電腦是公司或機(jī)房電腦MySQL 和 Redis 可能沒裝可以在答辯前一天把綠色版 MySQL 和 Redis 解壓包準(zhǔn)備在 u 盤里免安裝啟動(dòng)的命令要自己先演練兩遍比如 Redis 的redis-server.exe雙擊啟動(dòng)MySQL 的mysqld --initialize-insecure初始化流程。備選方案是 Docker 部署。如果你對 Docker 熟悉可以寫一個(gè)簡單的 docker-compose把 MySQL、Redis、后端三個(gè)容器編排起來。這里給一個(gè)參考 DockerfileFROM openjdk:8-jre WORKDIR /app COPY target/cloud-air-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT [java, -jar, app.jar, --spring.profiles.activeprod]Docker 方案的好處是換任何一臺(tái)有 Docker 的電腦都能秒級(jí)復(fù)現(xiàn)環(huán)境答辯時(shí)非常加分。但要注意不要為了演示 Docker 而把簡單事搞復(fù)雜如果自己對 Docker 不熟老老實(shí)實(shí)用本機(jī)方案即可畢竟演示翻車比沒有 Docker 更減分。5.3 答辯現(xiàn)場的高頻問題與回答思路答辯環(huán)節(jié)老師大概率圍繞技術(shù)選型和項(xiàng)目難點(diǎn)提問。我把出現(xiàn)頻率最高的六個(gè)問題整理成回答思路你可以提前準(zhǔn)備問題一SpringBoot 的自動(dòng)裝配原理是什么回答思路SpringBootApplication是組合注解核心是EnableAutoConfiguration。它在啟動(dòng)時(shí)掃描META-INF/spring.factories2.7 之前或者M(jìn)ETA-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports2.7文件拿到所有自動(dòng)配置類的全限定名然后通過Conditional系注解判斷當(dāng)前環(huán)境是否滿足條件比如 Classpath 里有沒有對應(yīng)類滿足才加載配置。這就是引入依賴即自動(dòng)配置的原理。問題二為什么用 JWT 而不用 Session回答思路APP 不是瀏覽器Session 依賴 Cookie 不適用JWT 無狀態(tài)、可跨端、易于擴(kuò)展配合 Redis 做 Token 黑名單可以實(shí)現(xiàn)主動(dòng)失效。但要主動(dòng)提到JWT 無法在服務(wù)端主動(dòng)銷毀這是它的局限顯得你的思考是辯證的。問題三你是怎么防止庫存超賣的按照前面講的悲觀鎖/樂觀鎖邏輯回答然后加一句我在訂單號(hào)上加了唯一約束來保證冪等防止重復(fù)下單。老師基本就會(huì)點(diǎn)頭。問題四Redis 緩存和數(shù)據(jù)庫數(shù)據(jù)不一致怎么辦回答思路修改數(shù)據(jù)庫后主動(dòng)刪除/更新緩存緩存設(shè)置 TTL 過期兜底對一致性要求高的數(shù)據(jù)不緩存如支付結(jié)果。整個(gè)思路是最終一致性而非強(qiáng)一致性。問題五數(shù)據(jù)庫表是怎么設(shè)計(jì)的為什么訂單表要冗余航班信息把快照思路講一遍強(qiáng)調(diào)保護(hù)歷史訂單不受后續(xù)數(shù)據(jù)變更影響。這是最容易展現(xiàn)設(shè)計(jì)水平的回答。問題六項(xiàng)目里最大的難點(diǎn)是什么不要回答沒有難點(diǎn)也不要只回答登錄。最好的答案是航班預(yù)訂場景下的并發(fā)庫存控制和訂單狀態(tài)一致性。把事務(wù)邊界、庫存扣減、狀態(tài)機(jī)流轉(zhuǎn)完整講一遍展示你確實(shí)動(dòng)手深入過。最后再分享一個(gè)我自己反復(fù)強(qiáng)調(diào)的技巧答辯演示前把測試環(huán)境的航班庫存故意改成只有 1 張然后現(xiàn)場演示兩個(gè)用戶同時(shí)搶票展示只有一個(gè)能成功。這個(gè)操作視覺沖擊力極強(qiáng)比你說一百句我處理了并發(fā)都管用。平時(shí)把這個(gè)場景錄個(gè)視頻放手機(jī)里萬一現(xiàn)場網(wǎng)絡(luò)出問題你還能兜底展示不至于冷場。做畢設(shè)這件事從頭到尾最重要的能力不是堆新技術(shù)而是把一條核心業(yè)務(wù)鏈路想明白、做扎實(shí)、講清楚這才是老師真正想看到的東西。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人人爱人人操人人性| 91亚洲情色| 99久久久无码国产精品性男| 诱惑网综合| 国产美女精品| 射 色综合| 无码WWW免费视频网站| 啊啊啊男女| 熟妇一区二区三区| 99在线精品视频| 亚洲日韩成人性爱视频| 九九无码视频| 偷窥自拍A片| w w w.久久精品| 中文幕97| 日日夜夜国产综合| 精品丰满人妻一区二区三区免费观| 中国一级操逼视频| 人人操人人操人人人操| 精品无码欧美三级| 国产精品一区二区a| 男人天堂东京热| 国产精品对白自产拍| 歐美性天天| 国产成人主播| 99操99| 永久免费av无码网站国产app| 亚州春色| 色999人与兽| 秋霞蝌科网日本一区| 欧美日韩国产一区二区小黄片大全| 啊啊啊啊嗯嗯在线久久久| 日韩八十路老熟女| 天天拍天| 少好三P| 欧美天堂亚洲电影院一区在线播放| 97se综合网| 成人AV素股で擦久久| 青青国产精品在线| 日韩欧美成人大香蕉| 另类图片五月| 99精品伊人| 人妻无码久久一区二区三区免费| 美女裸体麻豆天美蜜桃91| 一区二区三区日韩欧美 | 黄片aaaaa一区| 国产黄色影片在线观看| 思思热免费在线视频| 亚洲av国产av综合av卡| 午夜男人一级A片7777| 国产精品久久久久久片| 久久婷婷国产一区二区色| 久久超碰久| 人夜夜精品网站香蕉嫩草| 96精品在线| 97色97好| 人妻精品一区一区三区蜜桃91| 安微少妇操BBB| 国产精品久久久 | 99热在线观看| 欧美日韩国产电影| 骚货操死你| 老熟女网站| 91伊人久| 麻豆这里只有精品| 色 婷97| 青木玲在线不卡| 成人情色综合网| 熟妇人妻丰满久久久久久久无码 | 久久婷婷伊人| 在线洲亚线| 91春色| 国产精品亚洲一级av第二区| 国产女人91精品嗷嗷嗷嗷| 99自拍视频在线| 亚洲棕合电彰| 婷婷激情四射| 日韩av在线免费网站| 亚州精品一区二区三区香中文字幕在线| 国产老熟女| 锕锕好爽 死我在线观看| 亚洲人天堂| 日韩亚洲中文有码视频| 日韩免费人妻色情网站| 激情四射熟女丝袜| 日本一级真人黄色性爱视频| 欧美成人一区二区三区在线播放| 91女网站| 精品一区二区三区蜜桃| 国产亚州高清国产拍精| 91扒丝袜综合在线| 国产三级在线现体验区| 人妻少妇一区二区| 深夜视频| 女人高潮抽搐喷水视频网站| 午夜精品久久久久久久| 国产欧美成人第一页在线观看| 日本久久精品| 99精品综合久久久久五月天| 亚洲97久久精品亚洲| 丝袜熟女2P| 中文字幕免费看| 人人人摸人人| 亚洲国产精品久久久久婷婷青年| 亚洲色人| 天天综合色| 亚洲天天影视色综合| 色婷婷国产精品一区在线观看| 97综合在线| 久9久9精品| 亚洲国产另类在线中文| 青久操| 欧美少妇色图| 伊人久久88国产女| 国产精品播放| 伊人操操| 天天操天天舔| 人妻另类| 色婷婷丁香五月| 葡萄牙性视频一二区| 99热这里是精品| 夜夜做夜夜爽精品视频| 国产又爽又黄| 2017天天插| 中文字幕啊啊啊在线观看视频| 日韩人人精品| 亚洲天堂区| 不卡二三区人妻少妇| 8050午夜少妇无码| 亚洲欧美天| 足交视频老司机| 久久99久久99精品天美传媒棢·纸:.| 爱逼综合| 日本性爰一道本| av日韩在线观看电影| 2020国产精品| 久久亚州高清| 韩国毛片一区二区三区| 91精品人妻一区二区三区蜜桃| 91夜色| 91露脸熟女专区| 亚洲欧综合另类无码一区| 乱伦日本色图AⅤ| www激情| 国产精品一区二区在钱播放| 69久久久久久久久久久久久| 人妻另类| 日本成人A片网站| 人人扣人人操| 高清肉丝中文无码| 成人怡红院| 人人操我人人干| 欧美色91| 一类无码操逼视频| 亚洲狼狼干综合1| 超碰欧美97资源| 91综合在线| 妺妺跟我一起洗澡没忍住| 欧美日韩色图片| 国产成人主播| 色在线综合| av东京热男人的天堂| 波多野结衣被操50分钟免费视频| 亚洲精品97久久中文字幕| 95精品在线| 在线国产福利网址导航| 亚洲在饯| 奶水 人妻 哺乳 在线| 鸥美插入视频| 日韩情色视频| 日韩黄色成人性爱| 一级性爱啪啪视频| 熟妇熟女一区二区三区| 日韩欧美女求操每天更新| 天天综合网91入口| 67914亚洲精品| 操逼逼福利视频| 国产91av在线播放| 超清福利精品视频在线| 亚洲成人妻日韩在线| 久久久月天| 天天操夜夜操狠很操| 欧洲综合视频| 日本久久女同性恋视频| 人妻激情偷乱视频一区二区三区 | GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 日韩av电影网站| 天天看精品动漫视频一区| 日本午夜久久电影| 夫妻AV网站| 操逼操逼逼操操逼91 | 亚洲射综合网| 97超碰欧美| 伊人成人中文字幕久久网| 亚洲人精品久久久| www.色婷婷| 国内一级精品| 色色色色色色色色色色色色色色综合 | 伊欧美综合视频| av网站国产主播在线| 美女尤物福利视频| 欧美日韩在线视频网站| 97色爱| 思思热在线视频免费| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 大象AV在线| 国产一区二区久久| 99re热| 伊人久久亚洲中文字幕不卡| 久久精品国产精品| 高清视频一区| 97精品在线视频| 91制服丝袜| 蜜臀AV一区二区三区| 综合97亚洲| 亚洲无码国产探花在线观看| 狠狠躁日日躁夜夜躁A| 91成人久久 | 久久久久久加勒比| 久久国产视频专区一二三| 乱伦日本中文自拍| 91精品久久久久久77777| 性爱边摸边日免费AV| 中字一区| 这里只有精品视频在线| 七月丁香婷婷| 少妇99| 久久98| 78久久| 久久综合精品一区二区三区| 色综合久久av| 蜜桃香蕉久草精品在线| 一区,二区,三区视频| 亚洲无码?第一页| 久热这里只有精品9| 亚洲瓯美色图| 五月天婷婷久久| 日本羞羞的视频在线播放| 亚洲视频二区 | 国产亚洲色婷婷久久99精品91 - 百度| 粉嫩少妇自慰在线| 九九久久精品| 日本狂喷奶水在线播放212| 啊啊啊好疼| 日韩免费人妻色情网站| 日本人人操人人操| 国产在线综合网| WWW美腿丝袜香蕉中文| 中亚av| 国产精品国产自产高清AV| 久久精品人妻一区二区三区| 欧美日本天堂| 色女女女导航| 国产AV超爽| 91性高朝久久久久久久久| 美女91色黄18| 色狠人在线99| 97人肏| 影音先锋国产精品| 天天干天天燥| 97超碰中文在线| 一本色道久久综合狠狠操| 蜜臀在线免费观看在线免费观看| 色婷婷在线视频| 久久久久免费看少妇A片特黄| 精品久久久久久久| 综合网亚洲1| 九九夜精品九九在线| 性吧在线视频| 日本女人操逼| aⅴ日韩成人电影av在线免费看av大全| 99久久99久久免费精品蜜臀| 五月天色色网站| 国产日韩色综合| 精品少妇999| 亚洲精品蜜桃久久久| 久久久性爱视频| 天天综合日韩网| 狼人久草| 丁香五月婷婷基地| 九九热视频在线观看| 艹少妇网站| 免费观看国产小粉嫩喷水精品午| 久久国产AⅤ| 91操操操操| 麻豆成人影音在线| 啊啊啊好想要| 欧美图片校园春色| 欧美精品99久久久**| 一区二区精品更新提醒| 亚洲精品性爱片| 久久亚洲不卡一区二区三区| 国产高清午夜成人在线观看| 97资源超碰| 五十路一区无码| 亚洲高潮少妇| 大屁股人妻女教师撅着屁股| ′ !γ}丶。。久久精品欧美一区二区三区 | 91熟女少妇| 东京热男人的天堂精品| av东京热男人的天堂| 免费?级毛片无码?∨蜜芽试看| 亚洲一区二区三区麻豆传媒| 永久免费发布性爱网| 加勒比东京热五月天天堂网| 91c色| 亚洲色综网| 五月丁香啪| 偷拍盗拍亚洲色图图片| 欧美一区二区在线资源| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 日韩精品9999| 国产第25页在线观看| 91少妇香蕉久久精品| 欧美丝袜制服久久| 午夜福利合集| 黄页大片在线观看| 亚洲色色探花| 欧美九九九| 神马久久久久眼| 亚洲国产av中文字幕久久| 天天激色| 99精品热| 午夜a成v人电影| 综合天天。| 午夜天堂精品久久久久91| 国产偷人伦激情在线观看| 撸撸成人在线视频| 99热精品在线| 啪啪AV导航| 九九热只有精品| 亚洲欧美一区二区三区在钱蜜桃 | 97爱爱影院| 免费综合亚洲中文| 色牛aV| 学生妹天天看| 97爱爱爱综合| 日韩Va亚洲va欧美Ⅴa久久| 超碰在线日韩一区| av操操不卡| 亚欧韩av| HEYZO高无码国产精品227| juliaann丝袜| 亚洲999综合| 久久精品一区二区三区不卡| 国产探花精品在线| 午夜性生活av免费在线看| 九九九草| 日韩欧美偷拍美女视频| 欧美色三级片91| 黄色大香焦1级‘′‘| 日韩在线电影| 热久久无毒不卡| 狠肏骚人妻| 婷婷精品视频| 国产高清成人mv在线观看| 97超碰美女| 青青草女人天天干| 一直超碰| 国产地址二三| 久久久专区| 欧美性,色九九| 婷婷五月天激情网| 熟女视频久久| 国产精品色片一区二区| 午夜AV人气不卡| 婷婷久久五月综合激情| 在线不欧美| 天天色综合影视网| 蜜臀久久99'精品久久久| 蜜臀AV成人精品蜜臀AV久久| 乱精品一区字幕二区| 亚洲欧美成人在线| 日韩免费性爱视频在线观看| 国产女人和拘做爰视频 | 久久久爆乳翘臀一线天伦理视频| 欧美操人| 大香交伊人网| 五月天激情综合网| 亚洲色吧网| AV 少妇 人妻 偷拍| 国产激情在线观看| 精品国产精品一区二区| 日本片日本片祼观看网站在线看中文版网页在线看 | 亚洲精品性爱片| 人人做天天爱| 秋霞久久亚洲精品成人| 口爆吞精在线观看| 91精品国产麻豆国产自产在| h在线看免费版在线看| 国精综合一二三区影视| 久久久久久亚洲精品不卡人乳| 国产深夜福利| 亚州综合网| 亚洲91网| 欧美日韩不卡a片| 欧美强奸乱能| 激情久久久| 五月丁香亭亭| 久久久久久大| 九一综合网| 黑人粗大V S日韩女优视频| 男人天堂无码| 九九九九精| 大香蕉一级黄色片久久| 日韩黄片影院| 亞洲久久直播| 国产av尤物| 97在线欧洲| 九九国产| 欧美色图电影| 国产乱色国产精品免费视| www.大香| 人妻嗯啊啊在线播放| 天天日B狠狠操| 二级久久网| 日本免费二区三区| 中文字幕人妻资源在线| 色999;丁香五月| 成 人 影视 一区 二区 三区 四区| 99re在线观看| 葡萄牙性视频一二区| 欧美的性爱网站免费| 日韩欧美亚洲一区二区三区影院| 欧州色图区| 中文字幕女同在线| 少妇蹲下露出大唇5| 国内毛片国产欧美拍| 日韩一级成人毛片免费观看| 欧美极品女人的天堂| 国产熟妇一区二区| 日夜伊人网| 把腿张开老子CAO烂你| 天堂岛av| 欧美黑人168页欧美黑人167| 国产 日韩,欧美 自拍| 91天堂色男人的天堂| 九九久久九九久久| 玖玖无码超碰| 最新中文字幕精品在线| 中国黑人三级片网站上区| 国产丝袜高跟美女av免费观看| 日韩精品人妻| 成片免费播放| 偷拍片久久| 亚洲视频中文一区| 人人色97| 日韩十八禁| 亚洲国产一级精品毛一级精品看免费视频| 人妻出轨一区二区三区| 欧美日韩中文字幕不卡| 日韩中文字幕在线视频观看| 一区二区视频你懂的| 永久免费观看的毛片的网站| 亚洲天堂区| 精品国产乱码久久久久久久久久毛片 | 亚洲91色| 天天爽爽爽爽| 噜噜噜噜久久久精品免费| 高跟丝袜AV专区国产| 欧美综合在线91| 69XX一中文字幕人妻91| 精品大久久| 日韩无码一区二区三区| 99这里有精品视频| 欧美激情内射| 成人夜夜爽| 伊人网高清| 91一起操| 男人综合网| 五月天成人综合| 无码二级三级| 天天干天天干天天| 欧美色网络| 狠狠久久亚洲欧美专区| 97啪啪| 美女啊啊啊啊pc| 亚洲色婷婷久久91| 欧美暴力猛交| 熟女人妻一区二区三区| 黑丝制服中文字幕| 97亚洲综合电影| 91视频精品| 中文字幕乱码人妻一区二区三区,99精品| 丰满熟女一区二区三区在线播放| 久久国产精品91| 神马久久久久久久| 熟妇高潮一区二| 男女激情黄色网址| 日韩精品亚洲一二三| 五月综合久久| 中文字幕第9页萱萱影音先锋| 精品一区96| 久久无码成人| 欧美日韩一二三| 九色 人妻 大香蕉| 中文字幕一二区二三区人妻专区| 任我爽在线视频免费观看| 久久精品色欧美aⅴ一区二区| 久草电影网| 亚洲情色91| 少妇一区二区三区高速| 亚洲自拍青操视频| 美女黄页| 思思热影视| 亚洲熟女综合网| 青青操在线亚洲视频观看欧美在线 | 欧美日韩国产电影| 柠檬AV导航| 三男一女不戴套的A片| 99精品久久久久久| AV 少妇 人妻 偷拍| 成人av在线播放| 精品少妇一区二区| caopeng97人妻| 99热这里只有精品地址| 一区二区三区免费视频入口| 伊人性在线视频| 麻豆久久久久久久久丝袜 | 天天弄天天操| 麻豆天美传媒毛片| 欧美日韩97在线| 成人综合网 欧美| www色色com| 天天操天天干一区二区| aa片毛片| 亚洲欧美在线丝袜| 国产熟女高潮一区二区三区| 中文字幕片| 91美女中出| 爆操无码| 亚洲人妻中文高清| 亚洲啪啪视频免费| 女人综合网| 综合欧美色图| 91天堂丝袜美腿| 91成人社区| 白丝AV网站| 日本久操视频| 人妻熟女一区在| 大香蕉丝袜一级片| 天天躁日日躁XXXXYY| 天天夜躁日日躁狠狠2002| 亚州欧美色图| 中文字幕三四五区| 青女偷拍网| 蜜臀99久久精品久久久久久| 欧美性综合| 日日夜夜青青草母狗| 丝袜夫妻自拍| 人妻加勒比东京热| 碰碰在线视频| 韩日精品四区| 狠狠久久四虎| 1区2区3区在线视频| 91人妻爽爽人人做人人澡| 亚洲操人| 一本道综合色图| 五月天激情国产综合婷婷婷| 狠狠色丁香| 亚洲综合五月天| 丁香五月婷婷基地| 天天综合91在线| 水澄无码AV| 91狠婷| 色狠狠综合噜一二三区| 有码人妻系列| 久草精品一区| 亚洲日精品| 超碰在线91| 亚洲欧洲激情卡通另类文学四射小说网站| 国产女大学生AV| 亚洲啪啪视频免费| caoni国产亚洲av| 国产精品无码AV网站| 日韩无码专区| 久久久久久久久久久久久9999| 国产精品久久久久绯色| 男人久久精品| 欧美在线|亚洲| 91色婷婷综合久久中文字幕二区| 超碰成人人人爽人人爽| 国产毛片在线| 色一情一乱一乱一区91Av| 色嘟嘟人妻天堂网| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 九九黄色视频在线观看| 亚洲精品丝袜-不卡成人免费……| 操少妇很爽av| 日韩综合97P| 熟妇女伦乱视频| 天天视频网站黄| JIZZJIZZ国产精品喷水| 中文字幕五区| 美女干逼2| 欧洲精品二区| 免费1级a做爰片观看| 色综合色欲色综合色综合色综合| caopeng97| 色臀aV| 日本人妻最新在线中| 金莲网址| 四虎影库国产精品免费| 中文欧丝袜诱惑| 久久久久久久久999| 干日本人少妇午夜寂寞影院| 国模一区二区三区| 欧美性视频二区三区| 91综合中文字幕| 成人性爱美曰韩| 久久亚洲骚逼综合| 综合亚洲网| 免费啪啪av| 欧美极品少妇交| 熟妇一区,二区,三区。| 免费视频在线一区二区不卡| 97人人草| 玖日综合网| 国产黄色影片在线观看| 九色 人妻 大香蕉| 国产一区二区在线看| 精品成人亚洲午夜电影| 欧美亚综合色图| 夜夜欢天天干| 色婷婷五月综合激情中文字幕| 青青色综合| 超碰欧美| 日韩精品一二三四| 91N综合网| 久久久久成人亚洲国产| 一区二区蜜臀| 色欲三区| 99re只有精品| 日本性交操一区二区不卡系列| 丁香五月激情综合| 亚洲猛交| 99九九久久| 嗯嗯不要 视频| 亚洲高清无码在线桃色| 亚洲诱惑| 久操凹凸视频| 欧美伦乱爱| 日本性爰一道本| 色999偷自拍拍| 成人26uuu| 校园春色综合色| 熟妇综合一区二区三区| 97欧美精品综合| 人人模人人看| 97超碰逼| 特级毛片特黄久久免费看| 极品久久久久久久久久久久久久| 狠狠色噜噜狠狠狠狠2018| 日本女厕偷拍| 国产日韩欧美操逼视频| 91久久久老司机| 操逼逼福利视频| 在线 欧美 亚洲| 国产超碰人人操| 97国产精品一区| 久操99| 国产家庭乱伦性爱视频| 亚洲资源网| 免費黃色視頻觀看一| 色老大| 女人的久久久| 丰满美女一级毛片在线播放| 操死我了嗯嗯嗯| 欧美劲爆视频一区二区| 欧美性爱一区二区三区| 亚洲中文制服诱惑| 啪啪视频亚洲第一| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 少妇高潮喷水无套久久久久久| 精品国产一级久久| 天天综合中文字幕 91| 夜夜爽妓女| 人妻 丝袜美腿 中文字幕| 96精品久久久| 亚洲天堂另类美腿| 亚洲国产婷婷在线播放| 日日97| 密臀在线免费观看| 日韩不卡毛片Av免费高清| 九久久九九久视频| 欧美色66| 国产精品久久久鸭无码的功能| 精品午夜福利| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 亚洲免费97免费| 第一高清av中文字幕| 婷婷超| 啊啊啊啊好疼视频| 91丝袜美腿网站| 探花一区在线| 亚洲码在线中文在线观看| 久久是精品| 日韩精品人妻中文字幕有码午| aaaa少妇高潮大片| 亚洲欧美日韩制服另类| 久久大香蕉97| 欧美亚洲高清不卡| 性色一线| 99热欧美| 最新日产中文在线麻豆| 日本羞羞的视频在线播放| 九九九只有精品| 国产中文福利| 精品福利视频| 猛交交| 岛国片在线观看视频亚洲| 黄色免费网| 蜜臀AV午夜精品久| 嫩草 我啊~嗯~在线| 久久久久久久久九九久孕交| 啪啪啪综合网| 在线观看国产黄色| 精品欧美А∨无码黑人大荫蒂| 69一区二区三区| 亚洲清纯综合| 91劲爆| 久久视频少妇美女| 神马午夜久久久| 国产人伦精品一区二区三区 | 欧美色涩| 伊人网高清| 99999国产| 97欧美色| 亚洲中文字幕一区| 91美女国产在线| 久久99草| 欧美97视频| 和协影院中文字幕三区| 在线97在线| 亚洲视频,小说| 另类av天堂| 欧洲乱码一区二区| 日本女厕偷拍| 久久久99久9| 欧美色图天堂网m| 操我啊啊啊啊啊| 亚洲欧美爆| 午夜呻吟欧美| 久草精品国产蜜臀 | 天天操夜夜操狠很操| 色就色综合| av天堂精品久久| 少妇3P性爱自拍| 操逼操逼逼操操逼91 | 色制服丝袜夫妻av一区| 久神马| 校园春色欧美| 亚洲双插| 91天堂网| 粉嫩av平台| 熟妇的味道HD中文字幕| 国产精品一区午夜福利| 欧美性爱一级操| 色婷婷久久| 按摩中文字幕| 亚洲诱惑| 死我十八禁| 天久久久噜噜噜久久国产精品爽爽| 加勒比中文av| 国产精品不卡高清在线观看| 人妻一二三区| 国内精品久久久久影院亚洲| 欧亚洲精品有视频| 久热精品色情| 久久是精品| 亚洲91在线| 波多野结衣一级视频| 欧美性爱一级操| 女优免费一区二区永久| 日韩在线人妻网站| 久久风骚城市| 人妻夜夜爽天天爽三区麻豆AV网站| 黄视频免费| 久操大香蕉| 免费人人搞97| 少妇熟女视频一区二区三区| 中文字幕熟女人妻丝袜| 色就色综合| 五月婷视频| 久插综合| henhen91| 国产女人和拘做爰视频 | 欧洲色综合| 欧美中文字幕日韩在线| 日本肉体xxxx裸交| 抽插爽| 狠狠爱夜夜| av在线观看不卡网站| 免费看毛片操穴| 好舒服视频| 男人在线天堂| 亚洲偷拍自拍在线视频| 少妇与黑人高潮在线| 久久9久久| 黄片aaaaa一区| 强上我不卡卡| 玖玖久久久| 一级啊性爱在线视频| 人人污日韩一区二区| 99re视频在线播放青草| 国产精品激情久久久久久久| 青青草在线视频人人想人人上| 91日韩网站| 狠狠操夜夜| 欧美中文字幕一区| 97亚洲中文| 在线性黄高清免费视频| 性性久久| 色综合国产在线观看| 亚州国产精品乱| 亚洲素人综合| 中文字幕亚洲热播人妻| 成人精品视频一区二区| 91综合在线| 麻豆国产尤物AV| 9精品久久久久| 国产综合网站在线播放| 亚洲情色在线| 精品日韩人妻视频| 久久理论字幕视频| 91狠狠综合网| 亚 欧 美 综合| 国产成人五月天丁香花| 九九久久综合| 日韩成人小视频| 在线观看综合精品亚洲| 夜夜嗨一区二区三区三州加勒比| av无码av无码专区| 亚洲熟久久| 岛国视频一二三区| 91老熟女老女人国产老太| 免费日韩黄片| 大肉棒导航| 91c色| 亚洲素人综合| 精品少妇一区二区三区在线视频| 精品久操| 婷婷五月天色| 黄骗免费网站| 人人澡人人爽人人精品| 国产资源中文字幕在线| sss视频华人在线| 手机午夜电影神马久久| 天堂精品小草| 国产免a费看黄片在线| 久久久99999久网站| 九月丁香综合网| 亚洲97网站| 五月综合激情| 尤物视频视频官网| 亚洲大色堂| 欧美精品日韩久久久九| 精品二区三四区五电影 | 色爱综合网| av网站国产主播在线| 国产乱人妻精品入口| 亚洲一本色道中文无码aV天美| 国产视频97| 黄色大片一区二区密桃丝袜| 成人一道本免费视频| 91青青在线视频| 欧美有码激情视频一区二区三区| 日韩在线欧美精品一区二区| 天天色踪合| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 台湾一区国产高清在线| 免费97视频| 婷婷尹人大香蕉免费| 国产成人亚洲精品无码最新在线| 好屌色综合| 久久伊人五月天| 午夜视频黄| 超碰97人人乐| 国内黄色精品| 探花激情视频| 国产婷婷综合在线观看| 欧美天天综合站| 日韩欧美视频青青| 中文字幕精品日韩中文字幕| 变态综合色| 亚洲色图欧美另类在线| 色优久久| 东北丰满熟女国产一区| 国产97视频| 欧美亚洲厕所精品偷拍91| 狠狠操狠狠| 精品国产丝袜一区二区三区乱码| 加勒比99999| 老司机免费视频在线91| 亚洲日产专区| 牛牛aV| 欧美A片中文字幕| 97精品一区二区三区免费| 亚州综合图片| 人妻久热在线| 亚洲激情网| 亚洲精品国产专区在线观看| 久久久新亚洲AV| 国产精品一二三| 久久久久78| 国产怡红院| 天天日天天爽| 三级三级三级a级全黄三| 欧美一区二区男人天堂| 天堂网亚洲区手机版| 激情小说亚洲图片| 麻豆天美传媒在线视频天堂| 九九热精品| 日本在线视频导航| 国产综合网站在线播放 | 精品女同一区| 九九九九九精品十六| 在线 亚洲 网爆 自拍| 天天日天天插| 丁香五月天堂网| 久久99亚洲精品久久99果| 国产精品欧美日韩久久| 中文字幕日韩人妻视频| 91网九色蝌蚪操熟女| 亚洲成人贴图| 97免费在线观看| 91性情| 男人的天堂视频精品乱在线| 欧美成人精品一区二区男人蜜臀| 九九九九精品一区| 九九九九欧美| 久久99草| 天天躁狠狠躁av| av东京热男人的天堂| 最新精品久久蜜桃| 欧洲与亚洲欧美精品中文字幕| 天天舔九色婷婷| 久久99999| 国产av热热色| AV色五月天| 伊人精品国产| 超碰 国产熟女精品一区| 少好三P| 日本免费二区三区| 天天综合色图| 97超碰久久| 日本成a人v网站在线观看| 亚洲欧美国产va在线播放频| 9色国产精品一区粉嫩| 老司机午夜精品视频| 午夜视频黄| 在线无码视频| HEYZO高无码国产精品227| 操逼逼无码| 97在线/亚洲| 日本精品中文字幕视频| 色婷婷六月| 91麻豆天美| 麻豆久久精品亚洲精品88| 日产操逼| 成人一级性爱| 国产精品呦一区二区三区| 日韩乱伦影音先锋| 六月丁香久久| 99超碰色| 操b网站亚洲无码| 青青伊人这里只有精品| 欧美日日人人天天| 超碰人妻久久| 伊人丁香五月婷婷| 国产成人精品亚洲日本| 猛交交| 大香蕉 222| 日产123区精品免费观看| 久久久女人| 国产欧美日本亚洲精品 | 亚州欧美综合| 欧美熟妇精品黑人巨大91| 97爱爱| 日韩一区二区高清在线观看的| 五月婷婷久久综合| 欧美熟妇乱码在线一区| 天天摸天天舔天天操| 日日骚一区二区三区| 高清无码久操视频| 色官网在线| 青青青操| 久久精品无码熟妇一区二区三区视频导航 | 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 欧美午夜视频| 三及片网站| 亚洲熟女性高潮久久久| 桃色五月天| 狠狠亚洲| 91情色| 色综合尤物| 啊啊啊啊啊啊啊好爽不要| 91亚洲黄色网| 九九干| 无码99| 久肏视频字幕| 在线A日本| 天天综合网国产| 亚洲欧美激情小说| 天天操人人操狠狠插| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 蜜臀99久久精品| 偷拍三区| 日本人妻一区二区| 精品久久97| 亚洲精品亚洲人成在线麻豆| 欧美久久毛片基地| 丝袜足交视频| 欧美日韩91| 欧美91久久久久| 亚洲A曰本VA欧美VA视频| 色色热| 国产精品伦理| 国产精选三级在线观看| 亚洲色资源| 亚洲成人精品在线一区| 97超碰国产精品| 久久久久白虎| 丁香五月天堂网| 欧美淫乱视频| 人妻精品一区二区在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 中日韩熟女| 超碰98综合网| 91影库| 亚洲Av噜噜一区二区三区妖精| 黄片视频观看| 精品人妻一区二区免费蜜桃| 欧美性爱第1 页| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 99RE在线视频精品,这里只有精品| 欧美在线91| 国产九九久久久精品| 久艹日日日| 97日本超碰综合| dy888午夜老子影视达达兔| 清柠毛片| 91色图| 色老汉色| 免费啪啪av| 91路www| 牛牛aV| 久久香蕉国产线看观看亚洲女人| 日本综合久久| 午夜精品久久99蜜桃的功能章节| 人妻久久久久久久久久久久久久久| 无马一区二区| 99热超碰| 国产精品嫩草影院午夜两性| 亚洲 欧美 另类 日韩 人妻一区| 99国产在线 精品 视频| 欲女人妻性色av| www.超碰在线| 久久9久| 国产精品 午夜福利| 国产人妖的免费的视频| 亚洲综合骚逼| 女人爽到高潮潮喷18禁网站| 成人三级片一区二区三区视频| 五月婷婷激情综合| 日本人妻丰满熟妇久久久久久| 日本加靬比网站发布页| 国产精品爽爽v| 亚洲综人网| 花野真衣| A 在线网址| 亚洲综人网| 高凊专区人人操| 欧亚性爱在线视频| av天堂加勒比| 日本中文字幕高跟| aaaa黄片| 婷婷综合伊人一区| 亚洲色图国产另类| 久久久久婷婷| 成人av毛片在线观看| 91AV天美在线视频| www久久久| 无码精品久久| 超碰97人妻自拍| 久久九七| 九热视频| 91碰超| 91丝袜| 欧洲自拍色图gif在线| 涩涩五月天| 蜜乳AV一区| 欧美亚洲激情| 另类专区加勒比| 嗯嗯啊啊视频在线看| 日本成人A片免费看| 天堂成人网| 熟妇激情| 大香蕉十区| 亚洲丁香花色| αⅴ天堂| 日韩欧无码一区二区三区免费不卡| 97热视频在线观看| 伊人青青一区成人视频在线观看区| 91丨熟女丨丰满熟女| 极品欧美一区二区三区| 清纯唯美综合| 啊啊啊啊啊好舒服视频| 亚洲AV乱码专区国产噜噜亚洲 | 欧美日韩精品青青| 欧美一区二区日韩传媒搭讪精品| 欧美日韩99| 成人5码视频| 在线观看一级α片刺激高潮视频| 91天美免费| 97国产精品久久久久| 久草资源在线视频官方总站日韩丝袜美腿| 婷婷天堂站| 1禁看欧美黄片免费看| 成人97人人超碰人人| 欧美色女人| 91精品导航| 99精品丰满人妻无码| 亚洲中文字幕日产无码久久| 精品少妇后入一区二区三区四区人妻巨乳| 人妻中文字幕日韩电影| 成人av在线播放| 懂色Av| 久久久久久久97| 一区二区视频在看| 精品无人区麻豆乱码1区2区图片| 国产性爱欧美性爱在线| 欧洲乱码视频| 抽查国产福利主播| 激情四射婷婷四五月天| 综合色图区| 99热这里只有精品99| 99视频自拍| 亚洲黄色影视| 国产精选三级在线观看| 亚洲操逼无码| 日韩成人大片在线观看| 精品v日韩欧美国产| 天天干天天操天天干天天操| 91视频在线观看18| 欧美色图99| 国产精品农村妇女精品| 超碰色美女| 五月天婷婷社区| 国产精品久久久亚洲第一牛牛_在线观看 | 精品超碰中文在线| 女优视频第10页| 一道本久久棕合爱| 炮色五月| 91美女视频在线| 蜜臀亚洲综合一二三四区| 极品色电影院| 五月天AV资源| 777超碰| 探花视频免费观看国产专区|