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

ARTICLE DETAIL

資訊詳情

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

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

基于SpringBoot的航旅APP核心鏈路:航班查詢、庫(kù)存控制與訂單狀態(tài)機(jī)設(shè)計(jì) 1. 選題需求拆解三個(gè)標(biāo)題其實(shí)指向同一套系統(tǒng)1.1 從標(biāo)題關(guān)鍵詞反推系統(tǒng)邊界先說(shuō)你拿到的這類題目。仔細(xì)看云上航空、云端飛航、航旅隨心這三個(gè)詞剝掉包裝的外殼底子完全一樣一個(gè)基于 SpringBoot 的航旅APP及配套管理后臺(tái)。這類畢設(shè)標(biāo)題在學(xué)校里非常常見(jiàn)或者說(shuō)很多老師出題就是給一個(gè)業(yè)務(wù)場(chǎng)景再配上基于SpringBoot的XX平臺(tái)剩下的系統(tǒng)邊界要靠你自己去定義。我輔導(dǎo)過(guò)不少做這類題目的同學(xué)發(fā)現(xiàn)最常犯的錯(cuò)不是代碼寫(xiě)不出來(lái)而是在動(dòng)手前沒(méi)有把系統(tǒng)到底要做什么想清楚結(jié)果做到一半發(fā)現(xiàn)功能太多畢業(yè)設(shè)計(jì)根本收不了尾。拿到這個(gè)題第一件事是拆出核心業(yè)務(wù)實(shí)體。航旅平臺(tái)繞不開(kāi)四樣?xùn)|西用戶、航班、艙位庫(kù)存、訂單。圍繞這四個(gè)實(shí)體展開(kāi)的就是用戶注冊(cè)登錄、航班查詢、航班預(yù)訂、訂單支付、行程管理這幾條線。APP端負(fù)責(zé)給乘客用管理端負(fù)責(zé)維護(hù)航班和艙位數(shù)據(jù)二者通過(guò)接口聯(lián)動(dòng)。有個(gè)容易忽略的點(diǎn)APP在畢設(shè)里的形態(tài)。你可以做 Android 原生Java/Kotlin、微信小程序也可以做 H5 套殼或者干脆用 Vue 寫(xiě)移動(dòng)端網(wǎng)頁(yè)然后通過(guò) WebView 打包成 APP。學(xué)校驗(yàn)收時(shí)候只看是不是一個(gè)能跑的移動(dòng)端應(yīng)用所以完全沒(méi)必要在客戶端上追求復(fù)雜技術(shù)把精力留給后端業(yè)務(wù)邏輯才是穩(wěn)妥路線。1.2 用戶端與管理端的功能清單與優(yōu)先級(jí)劃分把功能范圍控制住是畢設(shè)活下去的前提。我建議按下面這個(gè)表格來(lái)規(guī)劃模塊端模塊具體功能優(yōu)先級(jí)復(fù)雜度用戶端APP賬號(hào)體系注冊(cè)、登錄、修改密碼、個(gè)人信息P0中用戶端APP航班查詢按起降城市、日期查詢航班列表支持艙位篩選P0中用戶端APP在線預(yù)訂選擇航班艙位、填寫(xiě)乘機(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à)、余票庫(kù)存調(diào)整P0中管理后臺(tái)訂單管理訂單查詢、改簽/退票審核、狀態(tài)干預(yù)P1中管理后臺(tái)數(shù)據(jù)統(tǒng)計(jì)訂單量、銷售額簡(jiǎn)單圖表P2中P0 是核心鏈路缺一個(gè)系統(tǒng)就跑不通P1 是亮點(diǎn)模塊用來(lái)豐富功能描述P2 如果時(shí)間不夠可以砍掉或者只做最簡(jiǎn)單的統(tǒng)計(jì)接口前端用柱狀圖糊一下。說(shuō)實(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 和第三方庫(kù)的版本兼容頭疼引入spring-boot-starter-web就自帶 Tomcat 和 Spring MVC自動(dòng)裝配則通過(guò)EnableAutoConfiguration幫你在引入依賴后自動(dòng)配置好相應(yīng)的 Bean比如引入 Redis 依賴后RedisTemplate就能直接注入使用。這種約定優(yōu)于配置的思路完美契合畢設(shè)場(chǎng)景——你的核心目標(biāo)是快速實(shí)現(xiàn)業(yè)務(wù)功能而不是花三周調(diào)各種 XML 配置。相比十幾年前 SSHStrutsSpringHibernate時(shí)代那種面對(duì)一坨配置文件無(wú)從下手的狀態(tài)SpringBoot 幾乎把搭建項(xiàng)目的門(mén)檻降到了零。而且答辯的時(shí)候我使用 SpringBoot 簡(jiǎn)化了項(xiàng)目初始化流程通過(guò)自動(dòng)裝配減少了大量樣板配置這句話本身就是個(gè)加分點(diǎn)老師愛(ài)聽(tīng)。2. 技術(shù)棧選型與數(shù)據(jù)庫(kù)設(shè)計(jì)先把地基打穩(wěn)2.1 一套不容易翻車的技術(shù)組合直接給結(jié)論這套組合我用過(guò)很多次穩(wěn)定性很高層級(jí)選型版本建議備注后端框架SpringBoot2.7.18不要用 3.x見(jiàn)下方說(shuō)明ORMMyBatis-Plus3.5.x內(nèi)置分頁(yè)插件、條件構(gòu)造器數(shù)據(jù)庫(kù)MySQL8.05.7 也行但 8.0 更省心緩存Redis6.x/7.x做航班查詢緩存、Token 存儲(chǔ)鑒權(quán)JWTjjwt 0.9.x無(wú)狀態(tài)適合 APP 場(chǎng)景接口文檔knife4j4.3.0方便自測(cè)和答辯演示前端APPAndroid 原生 或 Vue3H5—按個(gè)人熟悉程度選管理后臺(tái)Vue3 Element Plus—或者直接用 Thymeleaf這里特別想提一句 SpringBoot 版本的問(wèn)題。很多同學(xué)一上手就去創(chuàng)建最新版項(xiàng)目結(jié)果 SpringBoot 3.x 要求 JDK 17而部分同學(xué)的筆記本上裝的是 JDK 8還有 MyBatis-Plus、druid 這些常用庫(kù)對(duì) 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ì)思路與建表語(yǔ)句數(shù)據(jù)庫(kù)設(shè)計(jì)是整個(gè)項(xiàng)目的地基我的建議是不要照搬網(wǎng)上那種幾十張表的完整設(shè)計(jì)按業(yè)務(wù)需要來(lái)。核心四張表用戶表、航班表、艙位表、訂單表。用戶表不多說(shuō)就是id, username, password, phone, real_name, id_card, create_time。密碼記得用 MD5 加鹽或者 BCrypt 加密別明文存儲(chǔ)這個(gè)細(xì)節(jié)答辯時(shí)經(jīng)常被問(wèn)到。航班表是重點(diǎn)它和真實(shí)的航班排期還不一樣。真實(shí)系統(tǒng)里航班有班期概念比如每天一班、每周一三五飛但畢設(shè)可以簡(jiǎn)化成每個(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ī)場(chǎng), arrive_airport VARCHAR(50) NOT NULL COMMENT 到達(dá)機(jī)場(chǎng), 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ǔ)。艙位表用來(lái)存每種艙位的價(jià)格和庫(kù)存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í)說(shuō)出去老師會(huì)覺(jué)得你考慮到了真實(shí)業(yè)務(wù)場(chǎng)景瞬間拉開(kāi)和普通同學(xué)的距離。2.3 接口統(tǒng)一規(guī)范與 Token 鑒權(quán)接口設(shè)計(jì)直接決定前后端聯(lián)調(diào)效率。我見(jiàn)過(guò)最痛苦的項(xiàng)目是每個(gè)接口返回格式都不一樣前端解析字段快瘋了。所以一開(kāi)始就統(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è)帶過(guò)期時(shí)間的 Token 返回APP 把 Token 存在本地之后每次請(qǐng)求在請(qǐng)求頭里帶上Authorization: Bearer token后端用一個(gè)攔截器HandlerInterceptor校驗(yàn) Token校驗(yàn)通過(guò)就把用戶信息放進(jìn) ThreadLocal方便 Controller 直接取。為什么不用 Session因?yàn)?APP 不是瀏覽器Session 依賴 Cookie跨端體驗(yàn)不好而且分布式部署時(shí) Session 還要額外做共享。JWT 天然無(wú)狀態(tài)擴(kuò)展性更強(qiáng)這個(gè)選型邏輯在答辯時(shí)能講出一套完整的理由。再說(shuō)一個(gè)熱搜詞里出現(xiàn)過(guò)的點(diǎn)全局過(guò)濾器處理上傳 PDF 時(shí)的 XSS 攻擊。這類安全問(wèn)題放在畢設(shè)里其實(shí)是加分項(xiàng)。你可以在application.yml里配置一個(gè)過(guò)濾器對(duì)所有請(qǐng)求參數(shù)做script、onerror等關(guān)鍵字符的轉(zhuǎn)義XSS 過(guò)濾器不需要很復(fù)雜用 OncePerRequestFilter 包裝一層 HttpServletRequestWrapper 重寫(xiě)getParameter即可。雖然航旅系統(tǒng)里大多數(shù)情況不會(huì)有人惡意攻擊你但答辯時(shí)能主動(dòng)說(shuō)出我做了 XSS 過(guò)濾說(shuō)明你網(wǎng)絡(luò)安全意識(shí)到位。3. 航班查詢與預(yù)訂訂單業(yè)務(wù)里最考驗(yàn)細(xì)節(jié)的一環(huán)3.1 多條件航班查詢與 Redis 緩存加速航班查詢是用戶打開(kāi) APP 后做的第一件事也是接口設(shè)計(jì)里最需要關(guān)注的性能點(diǎn)。查詢條件一般是出發(fā)城市、到達(dá)城市、日期可選艙位等級(jí)和航空公司。對(duì)應(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ù)庫(kù)再寫(xiě)緩存返回結(jié)果。有一點(diǎn)必須提醒管理后臺(tái)修改了航班價(jià)格或取消航班后對(duì)應(yīng)緩存要主動(dòng)刪除否則用戶永遠(yuǎn)查到的是舊數(shù)據(jù)。用 Spring 的CacheEvict注解或者手動(dòng)redisTemplate.delete(key)都行這個(gè)問(wèn)題就是典型的緩存一致性問(wèn)題答辯常問(wèn)。3.2 預(yù)訂事務(wù)與庫(kù)存扣減優(yōu)雅地防止超賣預(yù)訂是整個(gè)項(xiàng)目里業(yè)務(wù)邏輯最重的接口流程是這樣的用戶提交訂單 - 校驗(yàn)航班和艙位 - 扣減庫(kù)存 - 創(chuàng)建訂單記錄狀態(tài)待支付- 返回訂單號(hào)。這里有兩個(gè)問(wèn)題必須解決一是扣庫(kù)存和建訂單要放在同一個(gè)事務(wù)里任何一步失敗都要回滾二是并發(fā)場(chǎng)景下不能超賣也就是同一個(gè)艙位剩余 3 張票5 個(gè)人同時(shí)下單最后只能有 3 個(gè)人成功。用代碼實(shí)現(xiàn)的思路有兩條路悲觀鎖和樂(lè)觀鎖。悲觀鎖就是查庫(kù)存的時(shí)候直接SELECT ... FOR UPDATE鎖住這行其他人只能等鎖釋放。實(shí)現(xiàn)最簡(jiǎn)單但性能差點(diǎn)適合畢設(shè)場(chǎng)景。推薦代碼示例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. 扣庫(kù)存 cabin.setStock(cabin.getStock() - 1); cabinMapper.updateById(cabin); // 3. 生成訂單... }selectByIdForUpdate是 MyBatis-Plus 里自定義 SQL配合Transactional確保整個(gè)操作原子性。樂(lè)觀鎖則是在cabin表加一個(gè)version字段更新時(shí)帶上version條件UPDATE cabin SET stock stock - 1, version version 1 WHERE id #{cabinId} AND stock 0 AND version #{oldVersion}如果更新返回 0 行說(shuō)明被別人搶了重新嘗試即可。在答辯時(shí)把這兩種方案都講出來(lái)再說(shuō)一句考慮到畢設(shè)并發(fā)量不大我最終選了悲觀鎖方案代碼更直觀如果做高并發(fā)優(yōu)化會(huì)采用樂(lè)觀鎖既展示了知識(shí)面又體現(xiàn)了務(wù)實(shí)性。還要留個(gè)心眼處理接口冪等的問(wèn)題。用戶手快了點(diǎn)擊兩次提交訂單結(jié)果下了兩單這就是重復(fù)提交。最穩(wěn)的辦法是在訂單表加一個(gè)order_no唯一索引用UUID去掉橫線生成訂單號(hào)插入時(shí)報(bào)主鍵沖突就說(shuō)明重復(fù)下單另外前端也要做按鈕置灰。這兩層一疊加基本就防住了。3.3 艙位價(jià)格計(jì)算與訂單快照設(shè)計(jì)價(jià)格這塊別想復(fù)雜真實(shí)航空的動(dòng)態(tài)定價(jià)是個(gè)大數(shù)據(jù)系統(tǒng)但畢設(shè)只要做好多艙位多價(jià)格就夠了。簡(jiǎn)單策略就是每個(gè)航班下掛 N 個(gè)艙位經(jīng)濟(jì)艙/公務(wù)艙/頭等艙各自有基礎(chǔ)價(jià)和折扣率展示價(jià)格 基礎(chǔ)價(jià) x 折扣率。折扣率可以隨時(shí)間變化比如提前 15 天訂是 0.6 折臨近起飛是 0.9 折邏輯寫(xiě)死在一個(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à)跟你沒(méi)關(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)枚舉來(lá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ī) -飛行日期已過(guò)- 已完成已出票/已值機(jī) -申請(qǐng)退票- 已退票在代碼層面不要在 Service 里寫(xiě)一堆散落的 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í)你可以說(shuō)這是借鑒了狀態(tài)機(jī)設(shè)計(jì)模式保證了訂單狀態(tài)的安全性這一句話就能撐起一個(gè)加分點(diǎn)。4.2 行程按時(shí)間軸展示與倒計(jì)時(shí)計(jì)算行程管理在 APP 端呈現(xiàn)出來(lái)的樣子應(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è)坑千萬(wàn)不要在后端算了倒計(jì)時(shí)的字符串返回給前端因?yàn)榍岸隧?yè)面停留期間時(shí)間一直在走如果后端只返回靜態(tài)字符串倒計(jì)時(shí)不動(dòng)用戶會(huì)覺(jué)得系統(tǒng)壞掉了。正確的做法是后端只返回時(shí)間戳前端通過(guò) JS 定時(shí)器每秒刷新一次倒計(jì)時(shí)。行程詳情的頁(yè)面可以展示一個(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)里有兩類場(chǎng)景天然適合定時(shí)任務(wù)處理一是用戶下單后一直不支付訂單一直占著庫(kù)存二是航班狀態(tài)發(fā)生變化需要通知相關(guān)用戶。第一類場(chǎng)景的處理邏輯不復(fù)雜。Spring 自帶的Scheduled注解就能搞定假設(shè)設(shè)定 15 分鐘未支付自動(dòng)取消那么寫(xiě)一個(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í)行完還要把對(duì)應(yīng)的艙位庫(kù)存加回去因?yàn)橹暗目蹨p操作要還回來(lái)。邏輯就是查出所有被取消的超時(shí)訂單循環(huán)釋放每個(gè)訂單對(duì)應(yīng)的艙位庫(kù)存。注意這里也涉及事務(wù)一個(gè)訂單釋放失敗不能影響其他訂單。在闡述方案的時(shí)候你可以補(bǔ)充一句如果要做到更精準(zhǔn)的延遲觸發(fā)應(yīng)該用 RocketMQ 的延遲消息或者 Redis 過(guò)期鍵監(jiān)聽(tīng)但畢設(shè)用定時(shí)掃描已經(jīng)足夠這能體現(xiàn)你對(duì)方案邊界有認(rèn)知。第二類場(chǎng)景航班取消或者延誤后要給已購(gòu)票用戶發(fā)通知。畢設(shè)實(shí)現(xiàn)最簡(jiǎn)單的方案不是上消息隊(duì)列而是在消息中心表里插一條記錄同時(shí)往用戶的消息列表里寫(xiě)數(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. 從開(kāi)發(fā)到答辯項(xiàng)目演示與高頻追問(wèn)整理5.1 開(kāi)發(fā)環(huán)境的一致性問(wèn)題做畢設(shè)期間我見(jiàn)過(guò)太多本地能跑一換電腦就報(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)目文檔里寫(xiě)清楚。關(guān)于項(xiàng)目構(gòu)建工具很多同學(xué)糾結(jié) Maven 還是 Gradle。我的建議是無(wú)腦選 Maven原因有兩個(gè)一是 Maven 的依賴傳遞更直觀出問(wèn)題看報(bào)錯(cuò)更容易定位二是網(wǎng)上 SpringBoot 相關(guān)教程和 pom 配置幾乎全是 Maven 的整合 MyBatis-Plus 時(shí)搜答案方便。熱搜詞里有人搜2020年 gradle 構(gòu)建的 springboot 項(xiàng)目配置文件大概率是接手了早期模板項(xiàng)目然后踩了一堆 Gradle 和 SpringBoot 插件版本不兼容的坑這類問(wèn)題完全可以從選型上規(guī)避。打包部署的問(wèn)題也要提前想好。開(kāi)發(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ì)缺前端頁(yè)面。5.2 演示環(huán)境與部署建議畢設(shè)演示最尷尬的場(chǎng)面是什么u 盤(pán)里的代碼在講臺(tái)上打不開(kāi)或者演示到一半 Redis 沒(méi)啟動(dòng)直接白屏。我的建議是準(zhǔn)備兩套方案首選是本機(jī)演示。提前把所有服務(wù)啟動(dòng)好MySQL 服務(wù)、Redis 服務(wù)、后端 jar、APP 前端模擬器或真機(jī)。這里有個(gè)細(xì)節(jié)如果你用的電腦是公司或機(jī)房電腦MySQL 和 Redis 可能沒(méi)裝可以在答辯前一天把綠色版 MySQL 和 Redis 解壓包準(zhǔn)備在 u 盤(pán)里免安裝啟動(dòng)的命令要自己先演練兩遍比如 Redis 的redis-server.exe雙擊啟動(dòng)MySQL 的mysqld --initialize-insecure初始化流程。備選方案是 Docker 部署。如果你對(duì) Docker 熟悉可以寫(xiě)一個(gè)簡(jiǎn)單的 docker-compose把 MySQL、Redis、后端三個(gè)容器編排起來(lái)。這里給一個(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 而把簡(jiǎn)單事搞復(fù)雜如果自己對(duì) Docker 不熟老老實(shí)實(shí)用本機(jī)方案即可畢竟演示翻車比沒(méi)有 Docker 更減分。5.3 答辯現(xiàn)場(chǎng)的高頻問(wèn)題與回答思路答辯環(huán)節(jié)老師大概率圍繞技術(shù)選型和項(xiàng)目難點(diǎn)提問(wèn)。我把出現(xiàn)頻率最高的六個(gè)問(wèn)題整理成回答思路你可以提前準(zhǔn)備問(wè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)配置類的全限定名然后通過(guò)Conditional系注解判斷當(dāng)前環(huán)境是否滿足條件比如 Classpath 里有沒(méi)有對(duì)應(yīng)類滿足才加載配置。這就是引入依賴即自動(dòng)配置的原理。問(wèn)題二為什么用 JWT 而不用 Session回答思路APP 不是瀏覽器Session 依賴 Cookie 不適用JWT 無(wú)狀態(tài)、可跨端、易于擴(kuò)展配合 Redis 做 Token 黑名單可以實(shí)現(xiàn)主動(dòng)失效。但要主動(dòng)提到JWT 無(wú)法在服務(wù)端主動(dòng)銷毀這是它的局限顯得你的思考是辯證的。問(wèn)題三你是怎么防止庫(kù)存超賣的按照前面講的悲觀鎖/樂(lè)觀鎖邏輯回答然后加一句我在訂單號(hào)上加了唯一約束來(lái)保證冪等防止重復(fù)下單。老師基本就會(huì)點(diǎn)頭。問(wèn)題四Redis 緩存和數(shù)據(jù)庫(kù)數(shù)據(jù)不一致怎么辦回答思路修改數(shù)據(jù)庫(kù)后主動(dòng)刪除/更新緩存緩存設(shè)置 TTL 過(guò)期兜底對(duì)一致性要求高的數(shù)據(jù)不緩存如支付結(jié)果。整個(gè)思路是最終一致性而非強(qiáng)一致性。問(wèn)題五數(shù)據(jù)庫(kù)表是怎么設(shè)計(jì)的為什么訂單表要冗余航班信息把快照思路講一遍強(qiáng)調(diào)保護(hù)歷史訂單不受后續(xù)數(shù)據(jù)變更影響。這是最容易展現(xiàn)設(shè)計(jì)水平的回答。問(wèn)題六項(xiàng)目里最大的難點(diǎn)是什么不要回答沒(méi)有難點(diǎn)也不要只回答登錄。最好的答案是航班預(yù)訂場(chǎng)景下的并發(fā)庫(kù)存控制和訂單狀態(tài)一致性。把事務(wù)邊界、庫(kù)存扣減、狀態(tài)機(jī)流轉(zhuǎn)完整講一遍展示你確實(shí)動(dòng)手深入過(guò)。最后再分享一個(gè)我自己反復(fù)強(qiáng)調(diào)的技巧答辯演示前把測(cè)試環(huán)境的航班庫(kù)存故意改成只有 1 張然后現(xiàn)場(chǎng)演示兩個(gè)用戶同時(shí)搶票展示只有一個(gè)能成功。這個(gè)操作視覺(jué)沖擊力極強(qiáng)比你說(shuō)一百句我處理了并發(fā)都管用。平時(shí)把這個(gè)場(chǎng)景錄個(gè)視頻放手機(jī)里萬(wàn)一現(xiàn)場(chǎng)網(wǎng)絡(luò)出問(wèn)題你還能兜底展示不至于冷場(chǎng)。做畢設(shè)這件事從頭到尾最重要的能力不是堆新技術(shù)而是把一條核心業(yè)務(wù)鏈路想明白、做扎實(shí)、講清楚這才是老師真正想看到的東西。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色色网五月激情| 五月丁香六月激情综合| 69精品人人人人| 五月丁香大香蕉| 中文字幕性爱丰满| 超碰99在线| 性天天中文网| 人人人操| 夜夜爱爱亚洲| 五月天丁香婷婷久久九| 99久热这里只有精品| 天天舔天天插天天干| 色婷婷综合综合网| 日本熟女啪啪| 天天揷综合网| 国产激情综合五月久久| 欧美精产国品一二三区| 丁香五月激情在线| 婷婷五月天在线看| 综合一区二区三区| wwww.色婷婷| AAA久久| 性生活久久人妻| 99久在线精品| 99久久玖玖| 色色99| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 91精品国产色猫| 99久久久| 伊人久久大香线蕉av最新| 人人摸人人射| 久久久er热| 日韩在线99| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 婷色五月天| 电影91久久久| 激情色播| 久热这里| 五月丁香六月激情| 能看的AV| 中文字幕无码人妻少妇免费视频| 日日夜夜天天综合| 婷婷五月色| 五月久久婷婷成人网| 五月丁香久久呀| 丁香婷婷久久 | 五月丁香五月婷婷| 99精品亚洲| 六月丁香开心婷婷欧美| 婷婷黄色网| 丁香五月成人| 97在线观视频免费观看| www.91av.com| 精品一区二区三区三区| 日韩国产在线免费观看| 97五月久久丁香婷婷| 伊人九九九久| 艹天天射| 丁香六月啪啪啪| 色丁香五月天婷婷| 激情久久四色| 激情婷婷综合| 夜夜撸天天日| 国产色色色色| 精品人妻伦一二三区久| 国产成人亚洲综合A∨婷婷| 天天婷婷操| 天天日日夜夜爽| 色综合久久综合中文综合网| 操操操操操操婷婷五月天| 99视频35精品视频在线观看| 六月婷婷色综合| 99操中文视频| 国产一级视频a| 婷婷五月天基地| av狠狠操| 丁香婷婷狠狠97| 久久艹 五月天| 亚洲成人无码专区| 色婷婷综合电影| 婷婷5月久久综合网站| 99视频在线观看地址| 99久久户外勾搭| 欧美情色一区| 台湾无码A片一区二区| 色综合香蕉| 超碰资源在线| 99热热九九| 热的国产,热的综合,热的有码| 色五月婷婷天天干| 日韩在线五月天婷婷| 精品人妻久久久| 在线观看玖玖资源免费观看| 五月激情六月丁香| www.婷婷五月天.com| 五月天色五月| 日本三级片片| 深情六月婷婷综合久久| 五月天综合视频| 亚洲美女网Va| 色99色| WWW.国产| 9精品视频在线观看| 色丁香五月天| 婷婷开心综合人妻小说网址| 久久精品系列| 99国产精品久久久久久久久久久| 久久婷婷色综合老司机| 五月激情婷婷图片基地| 丁香婷婷深情五月亚洲| 色五月五月婷婷| 五月天开心激情综合网| 九九99九九精品视频| 欧美啪啪9| 91精品电影18T| 99精品22| 色婷婷电影网| 亚洲欧洲国产精品| 国产精品婷婷午夜在线观看| 久久五月视频| 欧美久久久久久久久中文字幕| 97人人做| 婷婷五月情天| 99精品视频在线观看| 91日精品| 丁香五月第四色88| 国产成人网站在线观看| 婷婷丁香宗合888| 婷婷六月网| 亚洲激情婷婷| 久草婷婷网 | 亚洲激情五月丁香久久久久| 99热这里只有精品首页| 一起草av在线观看| 五月天婷婷青青草| 免费做A爰片77777| 99色婷婷| 我去色色网五雨天| 丁J香六月首页| 五月天三级久久| 婷婷深爱五月天在线| 色婷婷久久| 五月天大香蕉| 香蕉综合在线| www.日韩国产| 大香婷婷| 九九热视频思思| 亚洲无码播放| 色色色综合色| 色老久久| 欧美高潮9| 五月天丁香啪啪综合| 色五月丁香五月天| 新激情五月天| 狠狠999| 另类A片| 中文不卡av| 天天玩夜夜操天天爽| 激情五月天com| 欧美大片| 日韩成人精品一区久久久久| 操碰97| 久久久久激情| 激情九月综合| 五月丁香久久网| 噜噜精品| 国产免费av在线| www.夜夜騎夜夜狠| 日韩AV在线免费| 婷婷五月天影视| 五月丁香六月婷综合成人综合 | 六月婷婷色宗合| 婷婷午夜| 婷婷五六月丁香| 色色色999| 1区2区视频| 五月天亚洲色| 亚卅毛片| 婷婷五月色激情欧美激情| 五月丁香婷婷激情图片| 五月天 另类图片| 久久婷婷五月天大香蕉| 亚洲激情免费视频| 久久婷婷综合拍| 色99热| 激情五月四色| 青草少妇激情| 日韩肏屄网| 热久久99热欧美国产亚洲| 成人 在线观看国产| 情五月亚洲婷婷| 婷婷五月天成人网| 天天色综合色| 婷婷五月丁香四射| 丁香五月六月婷婷综合| 色婷网| 91精品丝袜久久久久久| 激情六月丁香综合| 91碰碰视频在线观看| 五月丁香婷婷激激激综合网色播| 91性人人| 这里只有精品视频99| 99热99成人| 天天干,夜夜爽| 狠狠狠人妻| 99日热在线视频| 亚洲综合激情五月| 色噜噜婷婷| 97人人超| 开心婷婷五月天激情网| 91九色在线| 99热免费| 五月亚洲| 激情色色| 色吧网91| 99re8这里只有精品99re8热视频| 国产av基地| 99热精品在线播放| 久久96热| 亚洲av成人在线| 玖玖婷婷五月天| 久久伊人日日夜夜| 中文字幕日韩成人| 91 欧美| 99热这里只有精品免费观看| 色五月首页| A久久| 丁香五月天啪啪激情综合网| 久艹大香蕉| 色五月av| 99精品小视频| 九九视频这里是精品五月| 亚洲黄网在线| 强伦轩人妻一区二区电影| 六月综和久久| 91色逼| 婷婷五月天基地| 婷婷激情五月天小说校园| www,色婷婷| 91色婷婷综合久久中文字幕二区| 婷婷丁香五月综合网上 | 婷婷五月天激情综合深爱激情| 婷婷六月色情| 精品一二三区久久AAA片| 婷婷网五月天| 爱的综合网| 国产精品色婷婷久久久精品| 丁香五月天大香蕉啪啪| 久久综合五月天| 色色色.COM| 色婷五月| 激情综合网色五月| 亚洲精品第一国产综合亚AV | 武汉美女啪啪视频免费一级片| 97人妻碰碰碰久久| 夜夜嗨一区二区三区直播内容 | 五月天综合久久| 操操操操操操婷婷五月天| 婷婷六月丁香五月图区| 91精品丝袜久久久久久| 久久婷婷综合基地| 激情五月婷婷综合| 丁香婷婷色情社区成人小说| 爱射综合| 日本色久| 99欧美三级视频| 亚洲AV成人在线| www.五月丁香| 婷婷五月天少妇| 五月婷婷偷拍| 婷婷性爱视频在线| 五月天啪啪网| 亚洲狠狠爱婷婷| 丁香五月天激情| 深爱激情网五月天| 天天擼久久擼在线| 五月丁香六月停停| 四虎婷婷五月天| 丁香五月婷婷啪| 91av无码| 九色视频入口91| 五月天另类综合网| 久久黄色免费视频| 激情丁香婷婷六月天| 9操在线| 激情av网| 高清国产一级婬片a免费| 美日韩成人| 天天色宗合| 日韩操逼大片| 最新av在线观看| 丁香五月激情五月| 99热这里只有免费| 久久这里只有国产视频| 色五狠狠| 日韩av大全| 丁香香五月激情免费视频| 99色干| 大香蕉狼人久久| 色婷婷综合在线| 久热精彩视频98| 99久久婷婷国产综合精品| 天天插天天干| 夜夜嗨一区二区三区直播内容 | 国产又黄又爽又激情不遮挡视频在线观看| 天天爱天天日| 插插干干干色| 69激情小说| 逼逼AV| 人人舔人人色人人高潮| 开心色播色五月婷婷| 天天 日综合| 99热久久这里只有精品| er99免费视频在线| 91精品久久久久久综合五月天| 婷婷五月天综合色| 99热99久久| 日韩亚洲视频| 亚洲网站观看视频| 久久婷婷综合国产| 《战争与艾拉》完整版| 超碰1999| 99免费视频| 9久久久久| 91超碰人人操| 无码激情AAAAA片-区区| 色综合中文综合网| 激情五月婷| 91人人操人人| 六月丁香激情最新更新| 色婷婷AⅤ| 激情婷婷五月丁香啪啪啪| 亚洲午夜在线视频| 激情丁香五月AV| 久久精品综合色| 人人操AV| 五月婷婷香蕉| 婷婷丁香五月婷婷| 欧美色五月| 韩国真做片在线观看| 婷婷狠狠综合网入口| 色色五月丁香婷婷综合| 99精品视频在线观看免费| 欧美激情五月天婷婷| 婷婷另类开心| 大陆肏屄视频| 香蕉婷婷| 亚洲成人网址在线观看| 亚洲激情婷婷| 欧洲亚洲欧洲99久久| 狠狠xx| 五月丁香综合激情网| 九九热这里| 婷婷五月天免费99| 丁香五月首页| 五月丁香六月婷婷,婷| 伊人五月网| 五月婷婷AV| 26uuu最新地址| 五月丁香婷久久| www.粉嫩av.com| 五月天激情啪啪| 激情五月天视频| 超碰色人妾| 玖玖99福利| 天天舔天天爽| 日本三级第一页| 五月天激情国产综合婷婷婷就去爱| AV天堂婷婷五月天| 日本天天色| 九九大香蕉黄色影院| 99热精品一区| av九九| 成人综合视频在线| 黄色激情五月天| 婷婷久久综合久| 插逼综合网| 99热99re6国产在线播放| 天天做天天爱| 久热久| 99热66| 久久婷婷五月综合色欧美| 丁香五月天啪啪| 婷婷丁香五月网| 色五天综合| 婷婷五月中文在线| wwwss在线观看| 久婷首页| 色五月综合资源推荐| 久久中文网| 婷婷五月天成人娱乐| 亚洲在线综合| 激情AV在线| 久久久这里有精品| 99热在线网站| 五月婷婷,六月丁香| αv中文字幕在线观| 欧洲永久精品| 99热婷婷| 天天综合天天做天天综合| VA色婷婷| 99精品久久久久久久婷婷| AV性爱在线| 9l久久久视频| www.婷婷五月| WWW99视频| www,天天干| 日本婷婷色| 激情综合色婷婷啪啪六月天| 国内精品免费一区二区2009| 成人超碰Av| 超碰免费成人网站| 国色天香伊人狠狠色| 婷婷丁香红五月91C| 国产精品色色色色| 免费在线观看av网站| 五月综合六月婷婷| 青青草五月天| 这里只有精品久久| 色色色五月婷婷| 天天日天天爽夜夜爽| 99精品在线观看| 直接看的av| 国产精品色色666| 伊人综合网站| 五月婷婷激情四月| 69精品人妻不卡视频| 精品人妻一区二区三区四区不卡在| 丁香色五月AV在线| 日韩久久视频| 青青草a在线| 激情五月天网站| yazhouzonghesese| 五月色激情综合网| 大香蕉久久久久| 99自拍网| 男女啪啪做爰高潮无遮挡 | 婷婷激情人妻| 九九热最新| 五月人妻婷婷| 大香婷婷| 天天操婷婷| 四虎婷婷五月天| 亚洲中文字幕翔田千里| 九九色播五月丁香| 这里只有精品热| 成人做爰高潮A片免费视频| 天天操,天天插| 91综合视频在线| 婷婷色五月激情强奸四射| 丁香六月啪| 性爱综合网| 五月丁香另类网| 婷婷五月综合色中文字幕| 国産精品| 色久激情在线| 97九色| 丰满少妇猛烈A片免费看观看| 亚洲色综合性| 久久综合五月天| 极品人妻VIDEOSSS人妻| 婷婷欧美| se99在线| 玖玖婷婷婷丁香五月| 99这里有精品| 五月天成人网在线观看| 亚洲成人色五月婷婷综合| 色综合激情图区| 激情久久久久久久久久| 呦呦AV| 色情婷婷。| 超碰v| 九九热精品在线| 丁香五月天导航| 婷色综合| 国产精品人成A片一区二区| 欧美草久久五月天91| 国产操碰| 无码一级片| 天天干天天干天天干| 亚洲色婷婷| 五月天婷婷网站| 人人性久久| 色香蕉精品五夜婷| 久久综合五月| 欧美色五月| aaaaaa片| 天天上天天爽| 9191avse| 久草婷婷视频| 婷婷激情综合色五月久久91| 激情五月天婷婷图| 久久综合影院| 青青草五月天| 久久机热这里只有精品| a网站免费观看| 欧美色图天堂网色| 夜夜夜夜撸夜夜操| 婷婷丁香无码专区| 天天成人综合| 99熟女| 日韩人妻在线观看| 51国精产品自偷自偷综合| A短视频免费在线观看| 99热超碰| 亚洲啪啪啪啪| 97人人操| 色色狼人综合| 熟女啪啪视频| 丁香六月五月天| 韩国中文字幕91| 色五月丁香五月五月婷婷| 五月婷婷AV| 五月丁香六月婷婷久久| 夜夜干天天操| 五月丁香亭亭AV女优| 中文字幕久久一区二区三区 | 婷婷亚洲激情在线观看视频| 欧美色五月| 色婷婷综合视频| 狠狠操综合| 变态另类色图 | 爽极品色| www.久久久.com| 婷婷九月丁香天堂丁香天堂| 丁香五月天论坛| 超级碰碰碰久久网站| 思思久久思思| 日韩青青| 亚洲亚洲亚洲AAAAAA| 激情AV综合| 夜夜天天天天天干天天爽| 99久久国产宗和精品1上映| WWW五月婷婷| 99精品视频在线观看| 精品久热| 婷婷伊人綜合中文字幕| 国内婷婷丁香社区在线播放| 大地9中文在线观看免费高清| 精品一二三区视频立| 亚洲色久| 思思热性操| 日韩黄色影院| 婷婷五月丁香综合人妻| 欧美日本97| 噜噜狠狠色综无码久久合欧美| 丁香色影院| 激情五月天com| 亚洲成人九九九| 婷丁香五月天| 九九色精品| 操一操干一干| 久久五月网| 五月停停大香蕉| 夜夜操,天天撸| 久久女人九九| 婷婷五月天激情小说| 五夜婷婷| 99国产精品久久久久久久久久久 | 天天噜天天插| 最近免费中文字幕大全高清大全1 免费看欧美成人A片无码 | 另类激情首页| 九九精品综合| 成人看片网站| 操一操插一插| 涩涩婷婷五月| 五月婷在线观看| 四色 爱 婷婷 精品 亚洲 五月天| 五月婷婷色在线| 99热在线这里| 九九久久99精品免费观看www| 六月婷婷五月天| 丁香六月高清视频| 久xxxx| 丁香啪啪| 高清无码中文字幕aVDV| 丁香婷婷性久久| 久操操| 五月综合亚洲| 午夜丁香 婷婷| 久久激情视频| 欧美成人网婷婷综合在线| 新男人天堂人妻| 丁香蜜臀黄色婷婷五月天| 日韩草草草草草草草草草草草草| 日逼影音先锋AV男人资源站| 九九碰九九爱97超碰| 天天成人五月天| 91久久国产综合久久| 亚洲色啪| 久久精品视频9| 黄色五月婷婷| 超PEN精品在线| 五月天激情国产综合婷婷婷| 777.色色| 欧美激情中文字幕| 成人国产欧美大片一区| 色色com| 久久婷婷成人视频| 98热精品| AA片在线观看视频在线播放| 激情九九六月激情免费视频| 五月婷婷和六月| 开心五月婷婷综合在线精品素人| 丁香五月偷拍| 六月激情久久| 丁香激情合作五月| 色婷婷综合亚洲| 97caop| 婷婷精品在线| 婷婷开心激情五月激情网| 超碰chaompinm| 日韩久久日| 激情五月天社区| 狠狠色综合精品视频在线| 丁香五月婷婷无码AV| 91九色成人原创视频| 午夜天堂啪啪| 五月丁香婷婷深深爱| 夜夜爽日日躁| 日本老女人黄页在线播放| 97超碰色| 无码激情AAAAA片-区区| 欧美日韩一区二区三区四区| 噜噜狠狠色综无码久久合欧美| caobi四区| 丁香婷婷九月| 一级黄色操B| 97精品人人A片免费看| 97人人搞| 第四色五月天| 色丁香五月婷婷在线| 五月婷六月综合在线观看| 999久久久国产精品| 婷婷五月久久| WWW.国产| 色综合五月天| 婷婷色丁香五月| 夜夜骑天天操| 亚洲丁香五月| 婷婷开心综合人妻小说网址| 99爱这里只有精品| 九九久久99| 婷婷六月激情| 婷婷99视频精品| 99这里只有| 99久久精品网| 狠狠色狠狠鲁| 国产色婷婷亚洲| 亚洲视频a| 中文字幕av在线| 在线视频99| 欧美色色日韩| 日韩啪图| 超碰人人妻| 99热 日韩| 久久AAAA片一区二区| 久久激情网| 九月丁香婷婷| 丁香五月Av| 丁香六月啪啪| 99热精品中文字幕| 深爱激情综合网| 99色在线视频| 第五色婷婷| 国产 码在线成人网站| 久久六月天| 久久婷婷婷| 97精品在线| 免费播放片大片| 九色无码| 色色色色色色色色五月先| 99热e| 伊人久久婷| 亚洲av成人在线| 97操视频| 玖玖在线视频| 另类天堂| 性做爰A片免费视频A片直播| 91色呦哟| 国产精品黑丝| 丁香六月综合激| 久久婷中文字幕| 玖玖婷婷五月| 五月丁香狠狠爱| 五月天激情综合网站| 精品一区二区三区四区五区六区介绍 | 久久五月天网| 天堂资源欧日浪女在线播放| 婷婷中文字幕| 狠狠另类视频| 天天操天天草天天草天天| 激情婷婷啪啪| 九九热99免费视频| 九九热这里只有精品6| 色播丁香| 99久操视频| 91久久国产综合久久| 啪啪夜久久| 亚洲激情在线| 狠狠擼综合| 17.c黄色| 欧美色色色色色色色色色色| 99精品在线观看视频| 日本欧美成人片AAAA| 色综合视频在线| 99热在线爱| 在线婷婷| 思思99re这里只有| 亚洲激情婷婷| 色色操| 日韩免费视频| 婷婷色基地在线看| 啪啪91| 亚洲 无码 中文字幕 中出| WWW五月| 91操熟女| 香蕉AV777XXX色综合一区| av人人操| 婷婷月五天在线在线看| www.狠狠干com| 开心激情站| 婷婷久久五月天| 影音先锋五月婷婷| 婷婷射图五月天| 色色网站在线免费观看视频| 六月合五月婷| 99色网站| 91精品久| 五月婷婷在线视频免费观看| 五月天色婷婷网| 色综合色五月| www.lchjjc.com| 一区视频网站| 色五月婷婷啪啪五月| 成人AV中文字幕| 少妇做爰免费视看片| 亚洲成人中文字幕| 国产日韩欧美性生活| 五月婷激情| 丁香五月天婷婷激情| 激情五月最新网址| 欧美色婷婷| 狠狠五月激情丁香六月| 五月婷婷啪啪| 欧美操综合| 五月天激情小说电影| 色五月成人| 欧美性猛交99久久久久99按摩| 国产AV不卡福利| 天天摸天天舔天天爽| 婷婷爱五月| 欧洲MV日韩MV国产| 婷婷色网站| 99性爱视频网站| 激情五月激情综合网| 婷色视频| 99福利视频| 久久精品性爱| 黄久久久| 99热99热99热99热| 高清无码网址| 婷婷午夜激情| 天天干夜夜谢| 亚洲午夜成人av电影网| 激情综合网五月在线播放| 天天操婷婷| 99超超碰| 華人性愛AV在線| 狠狠爱婷婷丁香| www激情婷婷com| 激情六月婷婷| 久久综合丁香| 婷婷丁香十月| 婷婷色五月大香蕉在线| 五月丁香网av| 91viP在线看| 丁香五月大香蕉AV| 五月丁香激情婷婷综合| 天天爽天天爽| 亚洲婷婷视频| 色婷婷五月色| 丁香五月电影院在线观看| 五月天激情婷婷丁香| 婷婷五月天丁香花| 99热欧美| 人人操日| 我去色色网五雨天| 五月激情婷婷在线| 校园春色亚洲色| 婷婷五月天深爱| 激情五月丁香五月| 思思热天天看| 久操大香蕉| 99久久玖玖| 99精品免费视频| 婷婷综合玖玖五月| 激情九九这里只有精品| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 久久99精品久久久久子伦| 天天做好综合色| 91九色PORNY大屁股| 亚洲XX日本| 免费视频WWW在线观看网站| 欧美婷婷六月丁香综合色连续高潮抽搐| 超碰操网| 色色免费网站| 四虎成人精品永久免费AV九九| 激情中文在线| 六月婷婷久久| 五月 成人 婷婷| 99riAv1国产在线观看| 第四色五月婷婷| 色五月av| 丝袜激情网| 色噜噜狠狠色综合网| 五月久久婷婷天堂视频| 色噜噜狠狠色综无码久久合欧美| www综合久久| 看片视频在线免费日产在线看| 超碰在线观看caop| 99视频在线观看网址| 久久影视婷婷五月| 婷婷久久精品| 91色五月| 久久人人妻| 色情·com| 八戒青柠影视剧在线观看| 人妻内射麻豆视频| 亚洲中文字幕在线观看| 呦呦视频无码播放| 日韩aⅴ视频| 精品久久久人妻| 色婷久| AV在线免费网站| 五月天大香蕉| 六月丁香婷| 伊人综合网4| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 日日夜夜小色哥| 开心久久网婷婷| 国产午夜精品一区二区| 五月婷婷三级| 涩涩五月天| 少妇婷婷五月天| 久久婷婷五月丁香蜜桃网| 婷婷五月亚洲一本在线丁香| 国产视频福利| 在线综合网| 婷婷瑟五月天久久综合| 超碰免费观看| 久久99久久99精品免观看粉嫩| 99热欧美| 精品亚洲国产成AV人片传媒| 五月婷视屏在线观看| 亚洲 视频 导航 一区| www婷婷| 婷婷天天综合| 九热视频精品| 五月婷av| 99热只有精品在线观看| 九九99在线视频| 99久热| 丁香五月天婷婷中文| 99ri视频在线观看| 91人人网| www.伊人天堂偷偷婷婷| 丁香花操逼| 99九九视频| 婷婷五月天天aV| av在线播放网址| 久久九九99| 五月丁香中文字幕| 99热综合| 日日夜夜九九| 国产欧美第五十五页| 夜夜爽日日躁| 中文字幕丰满人妻无码专区| 一起草av| 天天色噜| 婷婷激情五月天在线视频| 久久婷婷色综合老司机| 99热这里只有精品1| 一本伊人色婷| 99人妻碰碰碰久久久久禁片| 婷婷丁香激情五月天色色色| 色情久久久| xxx日本东京热| 九九大香蕉黄色影院| 成人国产欧美大片一区| 日韩啊啊啊| 婷婷免费成人视频| 日亚二欧美| 天堂成人A片永久免费网站| 色偷偷综合| 天天婷婷操| 色天堂A| 伊人香大香蕉视频| 天天色宗合| 色综合激情| 99热久只有| 婷婷午夜综合| 婷婷中文字幕欧美| 五月婷婷激情久久| 丁香五月天成人网站| 五月丁香视频在线观看| 婷婷操久久| 玖玖九九超碰| 操操碰| 97超碰在线免费观看| VA婷婷亚洲| 亚洲小视频免费观看| 99久久.www| 播丁香五月婷婷欧美| 婷婷五月天激情文学| 丁香五月婷婷日本| 婷婷五月天com| 婷婷丁香社区网| 国产免费av在线| 五月婷婷很很色| 久久婷婷影院| www.91操| 婷婷六月激情| 久热中文字幕在线线观看 | 任你草| 天天色天天日| 66精品成人免费网站在线观看| 综合亚洲五月天| 久久婷婷网站| 九九热婷婷| 国产原创视频91九色| 国产成人精品一区二三区熟女在线| 秋霞成人毛片一级A片| 91人人爽久久涩噜噜噜| 99热这里只有精品69| 天天综合亚洲综合网天天αⅴ| 久久久五月五丁香| 九九九九九九综合| 97色碰碰公开视频| 久久久久久五月天| 亚洲国产无线乱码在线观看| 五月色亚洲| 99热日韩| 五月丁香 啪啪| 激情第四色| 天天爽天天爽视频| WWW.99热| 午夜婷婷五月天在线| 五月婷婷丁香五月亚洲色| 婷婷五月在线免费| 六月激情婷婷| 五月丁香福利| 91丨九色丨白浆| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 婷婷五月丁香综合网| 国外亚洲成AV人片在线观看| 性爱综合网| 亚洲九区| 色情五月丁香| 色狠狠色| 久久综合九九| 久热久| 色九月| 99精品无码| 天天日天天插| 欧美性生交XXXXX无码小说| 婷婷丁香六月| 五月丁香网站| 国产肥白大熟妇BBBB视频| 欧美丰满熟妇BBB久久久| 五月丁香综合| 亚洲妇女熟BBW| 国产精品日本一区二区在线播放| 国产又粗又大又爽又黄| 女人高潮内射99精品| 日本猛少妇色XXXXX猛叫| 色婷婷在线视频| 少妇大叫太大太粗太爽了A片| 日韩免费视频| www.9操| 人操综合| 色婷婷无吗| www,色综合| 蜜桃婷婷狠狠久久| 婷婷精品在线| 99视频这里只有免费精品| 五月天激日本色情在线| www婷婷亚洲| 开心五月婷婷99| 日日噜狠狠色| 丁香六月婷婷综合缴| 婷婷五月天网址| 婷婷五月丁香综合| 天天日天天干天天操| 日日夜夜天天| www.金莲av| 青青草Avb在线| 亚洲情色一区| 亚洲激情亚洲激情| 激情纯色婷婷五月天在线不卡视频| 婷婷五月丁香伊人网| 色女伊人| 久久3p| 婷婷五月激情五月激情| 色色五月婷| 久久您您综合网| 亚洲激情| 天堂A∨在线| 激情网 五月天| 99爱无码| 伊人五月婷婷| 97久久视频| 超极99精品| 超碰在线中文字幕| 色噜噜狠狠色综| 九九久久99| 夜夜操夜夜操| 丁香婷婷色五月| 亚洲视频在线观看| 国产第99页| 色99视频| www激情网| 五月天天天天天天天天天天天天天天天婷婷婷| Av九九| 激情内射人妻1区2区3区| 婷婷五月激情视频网| 五月婷婷黄色| 79成人网| 另类 在线| 人人操AV| 激情婷婷丁香色五月| 久久伊人大香蕉| 五月婷婷激清网| 99碰网站| 亚洲亚洲人成综合网络| 超碰在线网站| 色七色九九| 五月丁香六月情| 五月丁香啪啪| 五月天另类小说久久小说网| 97资源碰碰| SS丁香五月婷婷| 五月婷婷久久久| 色五月婷婷在线观看第一页舔| 婷婷五月天Av| 五月婷婷婷婷婷婷艺术| 久久婷婷五月天激情四射| 青草青草视频2免费观看| 日韩肏屄网| 97色五月天| 婷婷激情六月综合| 国产午夜成人免费看片无遮挡| 婷婷99狠狠躁天天躁中文| 久久视频婷婷视频| 久婷婷色| chaopengdaxiangjiao| 色狠狠999综合| 婷婷五月天首页| 五月丁香婷婷成人网| 97亚洲精品| 97五月天婷婷午夜| 99免费在线视频| www.色五月| 成人在线精品| 天天爽免费视频| 99免费视频| 久久婷婷综合基地| 丁香婷婷激情网站| 超碰在线99| 六月撸婷婷| 九九无码视屏| 丁香六月婷婷久久综合| 亚洲成人超碰| 婷婷五月天天aV| 在线99热| 色色色综合色| 婷婷亚洲欧美丁香五月| 九九热精品| 玖玖爱伊人| 婷婷 月 丁香| 少妇高潮呻吟A片免费看软件| 久久综合丁香| 国产性爱亚洲是图| 69超碰在线| 婷婷五月天最新综合你懂的 | 99rewww| 五月丁香婷婷在线| 男人天堂 久久| 色情久久久| 激情色播| 五月丁香六月婷| 色婷五月天| 97干在线免费| 婷婷激情五月天亚洲综合| 久久激情网| 日本一级| 色五月五月天色婷婷色五月| 99玖玖免费视频| 在线成人国产| 九九热在线视频,| 婷婷伊人綜合中文字幕| 激情性爱五月天| 一月婷婷色色| 久久婷婷五月激情综合| 天天天天色天天天天天干| 人妻丰满精品一区二区A片| 久久网站免费亚洲| 久久色婷婷| 91人操| 天天日天天操心| 亚洲国产另类av| 婷婷五月天免费视频在线观看| 色狠狠色噜噜AV天堂五区| 五月丁香怕啪啪| 伊人五月天在线| 婷婷色影院| 日本三级中国三级99| 国产精品国产| 五月天综合| 9热久久| 91午夜激情| 色五月开心久久网| 日韩在线aaa| 91在线精品一区二区| 伊人久久五月天| 俺来也狠狠| 欧美日本一区二区三区| 国产婷伊人| 玖玖精品资源| 婷婷五月久久| 丁香婷婷色五月天| 欧洲综合一区| 狠狠操性爱av| 69人人操人人爽| 怡红院视频| 亚州激情九月| 亚洲激情五月天| 色色九区| 久久久婷婷五月亚洲97号色| 精品热九九| 久久99网| 丁香五月另类小说| 91精品综合久久久久久五月天| 26UUU欧美| 97在线/日本| 中文字幕成人影视| 九九色欲网| 九九色综合九九色| 激情六月丁香综合| 久草热8精品视频在线观看| 婷婷五月永远18免费久久久| 丰满少妇猛烈A片免费看观看| 色婷婷六月开心中文字| 91a片爽| 99精品福利视频| www.9797国产| 婷婷综合色色| 五月天色婷婷激情综合| 国产亚洲精品久久久久久郑州| 丁香五月婷婷精品视频| 91九色白丝| 极品人妻VideOssS人妻| 99色视频在线观看最新| 欧美成人精品A片免费一区99| 激情q青青草在线婷婷| 中文字幕丰满孑伦无码专区| 五月丁香AV在线| 综合亚洲AV| 丁香激情久久| 五月天六月丁香| 亚洲成人在线观看av| 色五月女| av国产精品偷| 色色色999| 婷婷六月天激情影院| 99免费青青蜜臀| 婷婷久久五月| 五月天无码视屏播放| 97碰碰九九视频| www五月| 欧美熟女99| 欧美精品中文字幕亚洲专区| 五月丁香淫淫婷婷婷| 综合久久五月天| 久久久中文| 五月婷婷狠狠干| 婷婷久久性爱| 激情久久久| www,av好吊操| 六月婷婷激情图片| 中文字幕在线免费看线人| 狠狠干综合网| 97久久超碰| 激情五月婷婷老师| 婷婷五月色惰| 99久久a线观| 五月婷久草| 五月天狠狠| 色综合色色色色色| 五月玖玖| 精品9197碰| 欧美色五月| 99re这里只有精品国产99| 91热在线观看视频| 激情四射五月天| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 色欲天天综合网| 五月色丁香婷婷中文字幕| 超碰9在| 国产99热| 99热在线看| 五月六月丁香婷婷在线观看| 丁香五月天堂网AV| 99久久综合网| 裸体美女丁香五月天。| 狠狠狠婷婷五月综合| 一区二区传媒视频| 狠狠操狠狠| 日韩五月丁香| 欧美色色色色色色色色色色影视| 超碰97色| 99综合视频一体| 九九视频在线| 婷婷 激情 五月| 综合色影院| 精品少妇人妻AV无码专区偷人 | 亚洲久久婷婷丁香五月天| 99a级片| 伊人久久婷婷五月综合97色| 亚洲精品影视| 99热只有精| 五月婷婷 欧美| 久久嘟嘟丁香| 日日操夜夜擼| 99热这里只有精品22| 丁香五月婷婷在线观看| 色五月久久成人婷婷| 97人妻碰碰碰久久香蕉| 婷婷在线日韩综合| 五月天婷婷激情小说电影| 五月婷婷中文字幕| 午夜九九电影| 色婷婷基地| 欧美亚洲成人在线| 亚洲电影在线观看| 六月 丁香 视频| 天天玩夜夜操| 六月婷婷激情小说网| 丁香六月婷婷激情综合| 天堂色色色| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 午夜微拍福利| 亚洲乱码精品久久久久.. | 99热在线观看| 久8色色| 亚洲激情高潮| www.丁香五月| 91凹凸在线| 亚洲另类AV| 九九九九九九热| 国外亚洲成AV人片在线观看| 五月婷婷激情久久| 99啪99| 开心激情综合| 伊人五月成人| 亚洲成人乱码av网站|