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

ARTICLE DETAIL

資訊詳情

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

基于SpringBoot+JWT+Redis的反詐普法學(xué)習(xí)與舉報(bào)平臺(tái)設(shè)計(jì)

基于SpringBoot+JWT+Redis的反詐普法學(xué)習(xí)與舉報(bào)平臺(tái)設(shè)計(jì) 1. 項(xiàng)目概述與選題價(jià)值1.1 為什么選反詐普法這個(gè)方向這兩年電信詐騙的花樣不斷翻新從冒充客服退款到“殺豬盤”從刷單返利到虛假征信幾乎每個(gè)月都能在社交平臺(tái)上看到新的騙術(shù)。與之形成鮮明對(duì)比的是大部分人的防騙知識(shí)還停留在“不轉(zhuǎn)賬、不匯款”這種籠統(tǒng)層面真正遇到精心設(shè)計(jì)的騙局時(shí)照樣中招。我見過(guò)太多人上當(dāng)之后才想起去查法律條文可惜錢已經(jīng)轉(zhuǎn)出去了。所以當(dāng)我看到“反詐普法平臺(tái)”這個(gè)題目時(shí)第一反應(yīng)就是這題有真實(shí)的業(yè)務(wù)價(jià)值。它不是那種純?yōu)榱藴惍厴I(yè)設(shè)計(jì)而生的“學(xué)生管理系統(tǒng)”“圖書管理系統(tǒng)”而是切切實(shí)實(shí)踩中了社會(huì)需求。從技術(shù)角度看這個(gè)項(xiàng)目需要覆蓋用戶注冊(cè)登錄、內(nèi)容管理、在線學(xué)習(xí)、考試測(cè)評(píng)、舉報(bào)受理、后臺(tái)審核等多個(gè)業(yè)務(wù)閉環(huán)復(fù)雜度適中——比單純的CRUD系統(tǒng)有深度但又不會(huì)難到?jīng)]法在幾個(gè)月內(nèi)完成非常適合作為畢業(yè)設(shè)計(jì)選題。1.2 這個(gè)系統(tǒng)到底做什么一句話概括這是一個(gè)面向全民的防騙知識(shí)學(xué)習(xí)與舉報(bào)一體化平臺(tái)核心解決三件事。第一把零散的反詐知識(shí)系統(tǒng)化通過(guò)文章、視頻、案例庫(kù)的形式呈現(xiàn)給用戶第二用學(xué)習(xí)打卡、在線測(cè)試、積分激勵(lì)的機(jī)制讓用戶真正把防騙知識(shí)學(xué)進(jìn)去而不是像傳統(tǒng)普法網(wǎng)站那樣掛幾篇文章就完事第三提供便捷的舉報(bào)入口用戶遇到可疑電話、短信、鏈接可以直接提交舉報(bào)后臺(tái)審核后形成案例警示其他人。這里我特別想強(qiáng)調(diào)一下“一體化”這三個(gè)字。很多畢設(shè)系統(tǒng)功能堆得不少但模塊之間是孤立的——用戶登錄歸登錄文章瀏覽歸文章瀏覽舉報(bào)歸舉報(bào)各跑各的沒(méi)有任何聯(lián)動(dòng)。而這個(gè)系統(tǒng)的核心設(shè)計(jì)思路是讓所有功能圍繞“用戶”這條主線串起來(lái)用戶學(xué)習(xí)文章會(huì)產(chǎn)生學(xué)習(xí)記錄學(xué)習(xí)記錄關(guān)聯(lián)考試資格考試成績(jī)換算成積分高積分用戶舉報(bào)時(shí)優(yōu)先處理舉報(bào)案例反過(guò)來(lái)成為新的學(xué)習(xí)素材。這個(gè)閉環(huán)設(shè)計(jì)是整篇畢業(yè)設(shè)計(jì)論文最出彩的地方也是答辯時(shí)最能和評(píng)委老師深入聊的點(diǎn)。1.3 誰(shuí)適合參考這個(gè)項(xiàng)目如果你正在準(zhǔn)備Java方向的畢業(yè)設(shè)計(jì)有一定SpringBoot基礎(chǔ)但對(duì)“怎么把零散功能整合成一個(gè)完整系統(tǒng)”還拿不準(zhǔn)那這個(gè)項(xiàng)目非常適合你參考。它覆蓋了基于SpringBoot的RESTful API開發(fā)MyBatis Plus逆向工程與數(shù)據(jù)訪問(wèn)層編寫Spring Security JWT實(shí)現(xiàn)無(wú)狀態(tài)登錄認(rèn)證文件上傳與靜態(tài)資源映射舉報(bào)證據(jù)圖片定時(shí)任務(wù)與狀態(tài)機(jī)流轉(zhuǎn)舉報(bào)處理流程Vue Element UI管理后臺(tái)搭建Redis緩存熱點(diǎn)文章數(shù)據(jù)可以說(shuō)這個(gè)項(xiàng)目把Java Web開發(fā)中高頻用到的技術(shù)棧完整串了一遍而且每一項(xiàng)都有明確的業(yè)務(wù)場(chǎng)景在支撐不是為用而用。做完這個(gè)項(xiàng)目你對(duì)SpringBoot生態(tài)的理解會(huì)從“會(huì)寫接口”上升到“能設(shè)計(jì)一套完整業(yè)務(wù)系統(tǒng)”的層面。2. 項(xiàng)目架構(gòu)設(shè)計(jì)與技術(shù)選型思路2.1 為什么用SpringBoot不用SSH或SSM這個(gè)問(wèn)題幾乎每次答辯都會(huì)被問(wèn)到前置準(zhǔn)備一定要做足。我推薦SpringBoot的核心理由有三個(gè)自動(dòng)化配置、生態(tài)成熟、招人市場(chǎng)認(rèn)可度高。SSH框架時(shí)代要寫一大堆XML配置SSM也免不了各種手動(dòng)裝配而SpringBoot通過(guò)starter機(jī)制把常用場(chǎng)景的配置都封裝好了一個(gè)注解就能跑起Web項(xiàng)目這大大降低了學(xué)習(xí)成本。但這里要說(shuō)實(shí)話SpringBoot更像是一個(gè)“集成的結(jié)果”而不是“革命的起點(diǎn)”。底層還是Spring IoC容器那一套還是Spring MVC處理請(qǐng)求分發(fā)還是MyBatis在做ORM映射。所以你在論文里寫技術(shù)選型時(shí)不要只寫“SpringBoot簡(jiǎn)單易用”這種大白話要寫出更深層的理由SpringBoot簡(jiǎn)化了Spring應(yīng)用的初始搭建與開發(fā)過(guò)程其自動(dòng)配置機(jī)制能在引入相關(guān)依賴時(shí)自動(dòng)注冊(cè)對(duì)應(yīng)Bean使得開發(fā)者可以專注于業(yè)務(wù)邏輯實(shí)現(xiàn)同時(shí)它遵循約定優(yōu)于配置的理念使項(xiàng)目結(jié)構(gòu)標(biāo)準(zhǔn)化便于后期維護(hù)與團(tuán)隊(duì)協(xié)作。這種寫法才能體現(xiàn)你對(duì)技術(shù)選型有真正的思考。我見過(guò)很多同學(xué)的論文在技術(shù)選型章節(jié)就是簡(jiǎn)單羅列“我們選用了SpringBoot、MyBatis、MySQL”完全沒(méi)有解釋為什么是這個(gè)組合、它解決了什么問(wèn)題、跟其他方案相比有什么優(yōu)劣一眼就能看出是拼湊的。2.2 整體技術(shù)棧清單層級(jí)技術(shù)選型說(shuō)明后端框架SpringBoot 2.6.x核心開發(fā)框架提供自動(dòng)配置、起步依賴持久層MyBatis Plus 3.5.x基于MyBatis增強(qiáng)內(nèi)置CRUD方法支持分頁(yè)插件數(shù)據(jù)庫(kù)MySQL 8.0關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)業(yè)務(wù)數(shù)據(jù)安全認(rèn)證Spring Security JWT無(wú)狀態(tài)認(rèn)證方案適合前后端分離場(chǎng)景緩存Redis 5.x緩存熱點(diǎn)文章、維護(hù)Token黑名單前端框架Vue 2.x Element UI后臺(tái)管理界面開發(fā)接口文檔Knife4jSwagger增強(qiáng)版自動(dòng)生成在線接口文檔工具庫(kù)Hutool驗(yàn)證碼生成、加密工具、日期工具等前后端分離是我明確推薦的方案理由有兩點(diǎn)。第一現(xiàn)在企業(yè)主流開發(fā)模式就是前后端分離你在畢設(shè)里就提前適應(yīng)這個(gè)模式答辯時(shí)也能加分第二前后端分離之后你甚至可以單獨(dú)用Postman或Apifox測(cè)試后端接口前端頁(yè)面可以一邊開發(fā)一邊調(diào)用真實(shí)接口調(diào)試效率比傳統(tǒng)JSP模式高很多。2.3 核心架構(gòu)分層設(shè)計(jì)整個(gè)系統(tǒng)按照經(jīng)典的四層架構(gòu)進(jìn)行組織表現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)層、基礎(chǔ)設(shè)施層。表現(xiàn)層就是Controller層負(fù)責(zé)接收HTTP請(qǐng)求、參數(shù)校驗(yàn)、調(diào)用業(yè)務(wù)服務(wù)、返回統(tǒng)一結(jié)果封裝。這一層要做的事情很純粹不要塞業(yè)務(wù)邏輯。業(yè)務(wù)層就是Service層這是整個(gè)系統(tǒng)的核心承載了權(quán)限校驗(yàn)、業(yè)務(wù)規(guī)則判斷、事務(wù)管理等核心邏輯。數(shù)據(jù)層就是Mapper層負(fù)責(zé)與數(shù)據(jù)庫(kù)交互MyBatis Plus提供了大量?jī)?nèi)置方法大幅減少了編寫SQL的工作量。基礎(chǔ)設(shè)施層則包括Redis緩存服務(wù)、文件存儲(chǔ)服務(wù)、定時(shí)任務(wù)調(diào)度等為上層業(yè)務(wù)提供通用能力。這里有一個(gè)學(xué)生項(xiàng)目里非常常見的壞味道——業(yè)務(wù)邏輯寫在Controller里。我曾經(jīng)看到有人把舉報(bào)處理的所有業(yè)務(wù)規(guī)則都塞進(jìn)了一個(gè)Controller方法里五百多行的代碼業(yè)務(wù)層完全是空的這在大廠代碼評(píng)審里是直接被拒的。正確的做法是Controller只做參數(shù)接收和結(jié)果返回哪怕只是一個(gè)簡(jiǎn)單的查詢也要走Service。這個(gè)習(xí)慣養(yǎng)成后你在答辯時(shí)被問(wèn)到“你的項(xiàng)目分層怎么設(shè)計(jì)的”時(shí)才能答得理直氣壯。3. 核心功能模塊拆解與業(yè)務(wù)邏輯設(shè)計(jì)3.1 用戶中心模塊用戶是這個(gè)平臺(tái)的核心主體用戶中心模塊的設(shè)計(jì)質(zhì)量直接決定了整個(gè)系統(tǒng)的體驗(yàn)。這里的用戶分兩個(gè)角色普通用戶和系統(tǒng)管理員。普通用戶通過(guò)注冊(cè)頁(yè)面創(chuàng)建賬號(hào)填寫手機(jī)號(hào)、密碼、昵稱等信息系統(tǒng)管理員由開發(fā)者通過(guò)數(shù)據(jù)庫(kù)直接初始化的方式創(chuàng)建不走注冊(cè)接口。注冊(cè)流程中需要特別關(guān)注手機(jī)號(hào)的唯一性校驗(yàn)和密碼加密存儲(chǔ)。密碼不能明文存庫(kù)我使用的是BCrypt加密算法它是Spring Security自帶的加密工具特點(diǎn)是對(duì)同一個(gè)密碼每次加密產(chǎn)生的密文都不同但校驗(yàn)時(shí)能通過(guò)算法對(duì)比出是否匹配。這種加鹽哈希的機(jī)制能有效防止彩虹表攻擊。在實(shí)際編碼時(shí)我封裝了一個(gè)PasswordUtil工具類統(tǒng)一處理加密與校驗(yàn)不讓加密邏輯散落在業(yè)務(wù)代碼里。3.2 普法文章與分類管理這是反詐知識(shí)共享的核心承載模塊管理員在后臺(tái)發(fā)布文章設(shè)置文章標(biāo)題、封面圖、所屬分類、正文內(nèi)容可以標(biāo)記是否為置頂、是否加精。用戶在PC端可以按分類瀏覽文章搜索關(guān)鍵詞查看熱門文章排行。這里有一個(gè)很容易被忽視的細(xì)節(jié)——文章瀏覽量統(tǒng)計(jì)。常規(guī)做法是用戶每次點(diǎn)擊文章詳情時(shí)執(zhí)行一次UPDATE操作把瀏覽量加一。這個(gè)方案在低并發(fā)下沒(méi)問(wèn)題但在畢設(shè)答辯時(shí)容易被追問(wèn)“如果同一篇文章被大量用戶同時(shí)訪問(wèn)你的瀏覽量計(jì)數(shù)會(huì)不會(huì)成為數(shù)據(jù)庫(kù)瓶頸”。所以我實(shí)際采用的是Redis方案用戶點(diǎn)擊文章時(shí)Redis執(zhí)行INCR操作將瀏覽量累加在內(nèi)存中系統(tǒng)每5分鐘通過(guò)定時(shí)任務(wù)將累計(jì)數(shù)據(jù)批量同步到MySQL。這樣既保證了計(jì)數(shù)實(shí)時(shí)性又減輕了數(shù)據(jù)庫(kù)寫入壓力。這個(gè)優(yōu)化點(diǎn)寫進(jìn)論文里相當(dāng)加分它體現(xiàn)的不只是“會(huì)用Redis”更是“理解Redis的典型應(yīng)用場(chǎng)景”。類似的場(chǎng)景我還用Redis處理了文章熱榜排行基于ZSet數(shù)據(jù)結(jié)構(gòu)按瀏覽量排序前端直接讀取Top10數(shù)據(jù)。3.3 在線學(xué)習(xí)與考試測(cè)評(píng)模塊這個(gè)模塊是系統(tǒng)的亮點(diǎn)特色完全針對(duì)“讓用戶真正學(xué)進(jìn)去”這個(gè)目標(biāo)來(lái)設(shè)計(jì)。管理員在后臺(tái)錄入防騙相關(guān)的視頻課程每個(gè)課程關(guān)聯(lián)學(xué)習(xí)資料和對(duì)應(yīng)考卷。用戶觀看視頻時(shí)前端會(huì)定時(shí)向后端上報(bào)學(xué)習(xí)進(jìn)度后端記錄學(xué)習(xí)時(shí)長(zhǎng)和學(xué)習(xí)百分比。當(dāng)用戶的學(xué)習(xí)進(jìn)度達(dá)到100%后系統(tǒng)自動(dòng)解鎖對(duì)應(yīng)的考試測(cè)評(píng)試卷。試卷包含單選、多選、判斷三種題型用戶在限定時(shí)間內(nèi)答題交卷后系統(tǒng)自動(dòng)判分。這里我用到了Spring Boot的Transactional事務(wù)注解判分邏輯涉及創(chuàng)建考試記錄、寫入答題明細(xì)、累計(jì)得分、更新用戶積分多項(xiàng)操作必須保證事務(wù)的一致性。有一次我在調(diào)試時(shí)就遇到過(guò)一個(gè)問(wèn)題考試成績(jī)記錄已經(jīng)插入成功但積分累加時(shí)因?yàn)橛脩舴e分表主鍵沖突導(dǎo)致整體事務(wù)回滾結(jié)果前端已經(jīng)刷新到了成績(jī)頁(yè)面后臺(tái)數(shù)據(jù)卻沒(méi)有落庫(kù)排查了半天才定位到是事務(wù)邊界沒(méi)控制好??荚嚺c學(xué)習(xí)的聯(lián)動(dòng)關(guān)系我用一張表來(lái)沉淀這種關(guān)聯(lián)課程-試卷關(guān)聯(lián)表。每門課程對(duì)應(yīng)一張?jiān)嚲碇挥袑W(xué)完課程才能參加考試考試得分自動(dòng)計(jì)算到該課程的學(xué)習(xí)卡片上。這種“學(xué)-練-考”閉環(huán)的設(shè)計(jì)思路在業(yè)務(wù)邏輯上形成了一個(gè)完整的學(xué)習(xí)動(dòng)線比單純推薦文章的學(xué)習(xí)平臺(tái)更有粘性。3.4 在線舉報(bào)模塊舉報(bào)是這個(gè)平臺(tái)最有社會(huì)價(jià)值的功能模塊也是業(yè)務(wù)邏輯最為復(fù)雜的模塊。用戶提交舉報(bào)時(shí)需要選擇舉報(bào)類型包括虛假投資理財(cái)、刷單返利、冒充客服、殺豬盤等常見電信詐騙類型填寫詐騙方信息電話、微信、QQ、網(wǎng)址等描述被騙經(jīng)過(guò)上傳聊天記錄、轉(zhuǎn)賬憑證等證據(jù)圖片然后提交。舉報(bào)信息提交后進(jìn)入待審核狀態(tài)管理員在后臺(tái)可以看到所有待處理的舉報(bào)記錄核驗(yàn)證據(jù)材料的真實(shí)性與完整性后將舉報(bào)狀態(tài)更新為“已受理”或“已駁回”。若已受理可以進(jìn)一步將舉報(bào)內(nèi)容標(biāo)記為“典型案例”系統(tǒng)會(huì)自動(dòng)將這條案例脫敏處理后發(fā)布到案例警示欄目供其他用戶學(xué)習(xí)參考。舉報(bào)狀態(tài)流轉(zhuǎn)是這里最值得細(xì)說(shuō)的地方。我設(shè)計(jì)了五個(gè)狀態(tài)待審核、已受理、已處理、已駁回、已刪除。狀態(tài)機(jī)是單向流轉(zhuǎn)的待審核可以指向已受理或已駁回已受理可以指向已處理而已處理是終態(tài)。狀態(tài)變更采用集中式的狀態(tài)機(jī)管理類來(lái)處理不允許在Service層任意地方直接修改狀態(tài)值這樣保證了業(yè)務(wù)規(guī)則的集中控制也方便后續(xù)擴(kuò)展新的狀態(tài)。3.5 后臺(tái)管理模塊后臺(tái)管理模塊是給管理員用的管理端采用Vue Element UI開發(fā)與用戶端呈現(xiàn)完全不同的界面風(fēng)格。功能覆蓋文章管理、課程管理、試卷管理、舉報(bào)管理、用戶管理、數(shù)據(jù)統(tǒng)計(jì)六個(gè)板塊。其中數(shù)據(jù)統(tǒng)計(jì)板塊用了ECharts圖表庫(kù)以折線圖展示每日舉報(bào)數(shù)量趨勢(shì)用餅圖展示詐騙類型分布情況。整個(gè)后臺(tái)與后端接口的交互采用JWTToken認(rèn)證方式管理員登錄后獲取Token前端在每次請(qǐng)求時(shí)通過(guò)攔截器自動(dòng)將Token添加到請(qǐng)求頭中。后端在網(wǎng)關(guān)和攔截器層面統(tǒng)一校驗(yàn)Token合法性非法請(qǐng)求直接返回401狀態(tài)碼。Vue Router還配置了前置守衛(wèi)用戶未登錄時(shí)禁止訪問(wèn)管理端路由強(qiáng)制跳轉(zhuǎn)到登錄頁(yè)。4. 數(shù)據(jù)庫(kù)設(shè)計(jì)與核心表結(jié)構(gòu)實(shí)現(xiàn)4.1 數(shù)據(jù)表整體規(guī)劃這個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)我總共設(shè)計(jì)了10張核心表按業(yè)務(wù)域劃分為用戶域、內(nèi)容域、學(xué)習(xí)域、舉報(bào)域四大類表名業(yè)務(wù)域核心字段說(shuō)明user用戶域id, username, password, phone, avatar, role, status用戶基本信息article內(nèi)容域id, category_id, title, cover, content, view_count, status普法文章article_category內(nèi)容域id, category_name, sort文章分類course內(nèi)容域id, course_name, cover, video_url, description, status視頻課程study_record學(xué)習(xí)域id, user_id, course_id, progress, study_duration, status學(xué)習(xí)進(jìn)度記錄exam_paper學(xué)習(xí)域id, course_id, paper_name, total_score, duration, status考試試卷信息exam_question學(xué)習(xí)域id, paper_id, question_type, question_content, options, answer, score題目信息exam_record學(xué)習(xí)域id, user_id, paper_id, score, status用戶考試記錄report舉報(bào)域id, user_id, report_type, contact_info, description, images, status, result舉報(bào)信息report_feedback舉報(bào)域id, report_id, operator_id, opinion, create_time舉報(bào)處理意見4.2 學(xué)習(xí)記錄表的設(shè)計(jì)要點(diǎn)學(xué)習(xí)記錄表是整個(gè)學(xué)習(xí)模塊的核心關(guān)聯(lián)表重點(diǎn)關(guān)注用戶與課程的映射關(guān)系以及學(xué)習(xí)進(jìn)度字段。這里要說(shuō)明一個(gè)關(guān)鍵決策學(xué)習(xí)進(jìn)度字段我使用的是int類型存儲(chǔ)的是0到100的百分比整數(shù)而不是數(shù)據(jù)庫(kù)浮點(diǎn)數(shù)。原因有兩點(diǎn)——前端Vue播放器回傳的進(jìn)度值本身就是百分比整數(shù)用int類型不會(huì)產(chǎn)生誤差其次算分的邏輯里需要拿進(jìn)度值和考試資格判斷做比較整數(shù)比較效率更高可讀性也更強(qiáng)。這張表還承擔(dān)了學(xué)習(xí)行為審計(jì)的作用用戶在什么時(shí)間開始學(xué)習(xí)、累計(jì)學(xué)習(xí)了多長(zhǎng)時(shí)間、最后學(xué)習(xí)到哪個(gè)位置都通過(guò)這張表記錄下來(lái)。雖然畢設(shè)階段不會(huì)真的去做行為分析但表結(jié)構(gòu)有這種意識(shí)答辯的時(shí)候就能有理有據(jù)地講“這張表的設(shè)計(jì)不僅滿足當(dāng)前功能需求也為后續(xù)擴(kuò)展用戶學(xué)習(xí)行為分析提供了數(shù)據(jù)支撐。”4.3 舉報(bào)表的狀態(tài)字段設(shè)計(jì)舉報(bào)表的設(shè)計(jì)里我最想強(qiáng)調(diào)的是狀態(tài)字段的類型選擇。很多初學(xué)者喜歡用int類型去存狀態(tài)值0表示待審核1表示已受理2表示已處理然后在代碼里用魔法數(shù)字去判斷。這種方式寫起來(lái)快但問(wèn)題很大——代碼里到處都是“if (state 1)”誰(shuí)知道1到底什么意思過(guò)兩周自己看都費(fèi)勁。我在這個(gè)項(xiàng)目中采用的是varchar類型存狀態(tài)碼枚舉值比如PENDING代表待審核ACCEPTED代表已受理PROCESSED代表已處理REJECTED代表已駁回。Java側(cè)定義對(duì)應(yīng)的枚舉類通過(guò)枚舉和字符串的互轉(zhuǎn)保證數(shù)據(jù)層的可讀性。雖然數(shù)據(jù)量大了以后varchar索引空間會(huì)比int多一些但在畢設(shè)這個(gè)量級(jí)完全不是問(wèn)題換來(lái)的是代碼可讀性和維護(hù)性的大幅提升。4.4 數(shù)據(jù)庫(kù)索引優(yōu)化實(shí)踐在數(shù)據(jù)量不大但查詢場(chǎng)景明確的場(chǎng)景下我對(duì)四張核心表做了針對(duì)性索引設(shè)計(jì)。用戶表對(duì)phone字段建立唯一索引這是注冊(cè)時(shí)的高頻查詢條件唯一索引既能保證手機(jī)號(hào)唯一性又能加速查詢文章表對(duì)category_id和status建立聯(lián)合索引支撐按分類展示、只展示已發(fā)布內(nèi)容的前端需求學(xué)習(xí)記錄表對(duì)user_id和course_id建立聯(lián)合索引并添加唯一約束確保同一用戶學(xué)習(xí)同一課程只有一條記錄避免重復(fù)數(shù)據(jù)舉報(bào)表對(duì)狀態(tài)字段建立普通索引支撐后臺(tái)按狀態(tài)篩選舉報(bào)列表的場(chǎng)景。這里我踩過(guò)一個(gè)實(shí)際的小坑最初學(xué)習(xí)記錄表我沒(méi)有加唯一約束測(cè)試人員在同一門課程下反復(fù)點(diǎn)擊學(xué)習(xí)每次都生成一條新記錄最后一個(gè)人的學(xué)習(xí)卡片下面掛了十幾條進(jìn)度記錄頁(yè)面已經(jīng)沒(méi)法看了。加了user_id, course_id聯(lián)合唯一索引后通過(guò)INSERT ... ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)對(duì)已存在記錄的冪等更新問(wèn)題才徹底根治。這個(gè)事情后來(lái)寫進(jìn)了我的論文問(wèn)題與措施章節(jié)是一個(gè)很典型的數(shù)據(jù)庫(kù)設(shè)計(jì)復(fù)習(xí)案例。5. 實(shí)操過(guò)程與核心模塊編碼實(shí)現(xiàn)5.1 項(xiàng)目初始化和基礎(chǔ)依賴配置項(xiàng)目初始化我選擇通過(guò)Spring Initializr快速搭骨架Java版本用的8因?yàn)榇蟛糠謱W(xué)校的畢業(yè)設(shè)計(jì)服務(wù)器環(huán)境還停留在JDK8版本太新反而容易出兼容問(wèn)題。核心依賴包括spring-boot-starter-web、spring-boot-starter-security、mybatis-plus-boot-starter、mysql-connector-java、jjwt、hutool-all、redis-starter等。關(guān)鍵配置文件application.yml中有幾個(gè)細(xì)節(jié)值得提一下。數(shù)據(jù)庫(kù)連接池我沒(méi)有用默認(rèn)的HikariCP參數(shù)而是顯式配置了最大連接數(shù)20最小空閑連接數(shù)5。文件上傳方面需要配置spring.servlet.multipart.max-file-size和max-request-size分別設(shè)置單文件最大10MB單次請(qǐng)求最大20MB防止用戶上傳超大圖片導(dǎo)致請(qǐng)求超時(shí)或內(nèi)存溢出。Redis配置則需要注意database的隔離策略我用的是db1作為業(yè)務(wù)緩存庫(kù)避免與項(xiàng)目依賴的其他Redis數(shù)據(jù)混存。5.2 登錄注冊(cè)模塊的實(shí)現(xiàn)難點(diǎn)先看登錄流程的核心代碼邏輯public LoginResult login(LoginDTO dto) { // 1. 查詢用戶是否存在 User user userMapper.selectByUsername(dto.getUsername()); if (user null) { throw new BusinessException(用戶名或密碼錯(cuò)誤); } // 2. 校驗(yàn)密碼 if (!passwordEncoder.matches(dto.getPassword(), user.getPassword())) { throw new BusinessException(用戶名或密碼錯(cuò)誤); } // 3. 校驗(yàn)用戶狀態(tài) if (user.getStatus() ! 1) { throw new BusinessException(賬號(hào)已被禁用請(qǐng)聯(lián)系管理員); } // 4. 生成JWT String token jwtUtil.createToken(user.getId(), user.getUsername(), user.getRole()); // 5. 將Token存入Redis設(shè)置過(guò)期時(shí)間 redisUtil.set(RedisKeyConstant.LOGIN_TOKEN_KEY user.getId(), token, jwtUtil.getExpireDate(), TimeUnit.MILLISECONDS); return new LoginResult(token, user.getUsername(), user.getRole()); }這里有兩個(gè)關(guān)鍵設(shè)計(jì)值得解釋。第一為什么校驗(yàn)密碼失敗返回的是“用戶名或密碼錯(cuò)誤”而不是“密碼錯(cuò)誤”因?yàn)榉珠_提示等于告訴攻擊者這個(gè)用戶名存在方便了撞庫(kù)。統(tǒng)一提示是最基本的安全防御策略。第二用戶成功登錄后為什么要把Token再存一份到Redis因?yàn)镴WT是無(wú)狀態(tài)的服務(wù)端無(wú)法主動(dòng)讓用戶的Token失效這就會(huì)導(dǎo)致一個(gè)問(wèn)題——用戶修改密碼或賬號(hào)被管理員封禁時(shí)舊Token依然有效。通過(guò)將Token存儲(chǔ)到Redis并在攔截器中對(duì)比請(qǐng)求Token與Redis中的Token是否一致就能實(shí)現(xiàn)服務(wù)端主動(dòng)踢人下線的能力彌補(bǔ)了JWT無(wú)狀態(tài)認(rèn)證的短板。還有一個(gè)細(xì)節(jié)得專門說(shuō)一下就是登錄接口的防暴力破解。最開始我的實(shí)現(xiàn)是純用戶名密碼比對(duì)沒(méi)有限制錯(cuò)誤次數(shù)。后來(lái)模擬攻擊測(cè)試發(fā)現(xiàn)用腳本循環(huán)請(qǐng)求完全可以無(wú)限嘗試密碼。修復(fù)方案是用Redis對(duì)登錄失敗次數(shù)進(jìn)行計(jì)數(shù)同一IP連續(xù)失敗5次就鎖定15分鐘鎖定期內(nèi)直接拒絕登錄請(qǐng)求。這個(gè)功能雖然只用了幾行代碼但在答辯演示時(shí)能立刻抓住評(píng)委的眼球?qū)儆谕度氘a(chǎn)出比極高的功能點(diǎn)。5.3 學(xué)習(xí)進(jìn)度上報(bào)接口的冪等性設(shè)計(jì)學(xué)習(xí)進(jìn)度上報(bào)是容易被低估的接口但如果處理不當(dāng)會(huì)引發(fā)一系列臟數(shù)據(jù)問(wèn)題。先看一下進(jìn)度上報(bào)的控制器邏輯PostMapping(/study/progress) public Result updateProgress(RequestBody StudyProgressDTO dto) { // 參數(shù)校驗(yàn) if (dto.getProgress() 0 || dto.getProgress() 100) { return Result.fail(進(jìn)度值不合法); } studyRecordService.updateProgress(dto); return Result.ok(); }Service層實(shí)現(xiàn)中我首先判斷當(dāng)前用戶是否已存在該課程的學(xué)習(xí)記錄若有則直接更新進(jìn)度同時(shí)將學(xué)習(xí)狀態(tài)從“學(xué)習(xí)中”更新為“已完成”無(wú)則創(chuàng)建一條新學(xué)習(xí)記錄。用聯(lián)合唯一索引配合INSERT ... ON DUPLICATE KEY UPDATE來(lái)實(shí)現(xiàn)本質(zhì)上是一種數(shù)據(jù)庫(kù)層面的冪等方案無(wú)論前端重復(fù)請(qǐng)求多少次最終都只會(huì)保留一條學(xué)習(xí)記錄且進(jìn)度值收斂于最后一次上報(bào)值。前端播放器上報(bào)進(jìn)度的頻率我建議設(shè)計(jì)為每15秒一次而不是每1秒一次。15秒上報(bào)一次不僅已經(jīng)足夠精確記錄用戶的學(xué)習(xí)行為而且能夠大幅減少無(wú)效請(qǐng)求對(duì)服務(wù)器的壓力。真正需要精細(xì)化控制的是用戶暫?;蛲顺鲰?yè)面時(shí)的主動(dòng)上報(bào)這個(gè)時(shí)機(jī)上報(bào)一次能夠確保用戶已經(jīng)學(xué)到的最新進(jìn)度被及時(shí)持久化。5.4 舉報(bào)功能的后端實(shí)現(xiàn)和文件上傳處理舉報(bào)接口是典型的涉及多數(shù)據(jù)操作的業(yè)務(wù)場(chǎng)景舉報(bào)主表插入記錄、舉報(bào)編號(hào)生成、圖片文件存儲(chǔ)、可能觸發(fā)通知?jiǎng)幼?。這里我用事務(wù)確保主表和附件表的數(shù)據(jù)一致性事務(wù)邊界就是整個(gè)舉報(bào)提交方法。需要特別注意的是文件上傳處理應(yīng)該放在事務(wù)邊界之外先執(zhí)行等文件確實(shí)寫到磁盤上了再開啟事務(wù)進(jìn)行數(shù)據(jù)落庫(kù)操作。如果你先把數(shù)據(jù)庫(kù)記錄寫進(jìn)去了再去保存文件文件保存失敗就會(huì)導(dǎo)致數(shù)據(jù)庫(kù)里有記錄但實(shí)際看不到圖片的臟數(shù)據(jù)這種問(wèn)題排查起來(lái)非常隱蔽。Transactional(rollbackFor Exception.class) public Long submitReport(ReportDTO dto, MultipartFile[] images) { // 不推薦事務(wù)中包含文件寫入 // 推薦先保存文件后開啟事務(wù)保存數(shù)據(jù)庫(kù)記錄 // 1. 保存文件到本地磁盤 ListString fileUrls fileStorageService.saveImages(images); // 2. 生成舉報(bào)編號(hào) String reportNo RP System.currentTimeMillis() RandomUtil.randomNumbers(4); // 3. 保存舉報(bào)主表記錄 Report report new Report(); report.setReportNo(reportNo); report.setUserId(SecurityUtil.getCurrentUserId()); report.setReportType(dto.getReportType()); report.setContactInfo(dto.getContactInfo()); report.setDescription(dto.getDescription()); report.setImages(String.join(,, fileUrls)); report.setStatus(ReportStatusEnum.PENDING.getCode()); reportMapper.insert(report); return report.getId(); }5.5 后臺(tái)前端與接口聯(lián)調(diào)中的幾個(gè)小坑后臺(tái)管理端我用的Vue Element UI開發(fā)過(guò)程中印象最深的不是組件用法而是一些容易被忽略的聯(lián)調(diào)細(xì)節(jié)。第一個(gè)是跨域問(wèn)題。前端項(xiàng)目運(yùn)行在Vite開發(fā)的9528端口后端接口運(yùn)行在8080端口前后端端口不一致必然產(chǎn)生跨域請(qǐng)求。我在后端定義了一個(gè)全局CorsConfiguration類在SpringBoot里配置允許跨域訪問(wèn)的路徑、請(qǐng)求頭和請(qǐng)求方法這樣才能讓前端調(diào)試過(guò)程中不報(bào)跨域錯(cuò)誤。第二個(gè)是后端接口統(tǒng)一返回值結(jié)構(gòu)問(wèn)題。前端需要拿到一個(gè)固定格式的響應(yīng)體才能做統(tǒng)一處理。我定義了一個(gè)Result類包含code、message、data三個(gè)字段所有接口返回Result對(duì)象。前端封裝了request.js配合Axios攔截器統(tǒng)一處理成功和失敗分支并在HTTP狀態(tài)碼為401時(shí)自動(dòng)跳轉(zhuǎn)登錄頁(yè)。這個(gè)統(tǒng)一封裝在聯(lián)調(diào)階段起到了非常大的作用使前后端接口聯(lián)調(diào)問(wèn)題定位快了很多。第三個(gè)是Element UI里日期選擇器的數(shù)據(jù)格式問(wèn)題。后端接受的是標(biāo)準(zhǔn)的時(shí)間字符串而Element UI的date-picker默認(rèn)輸出的是Date對(duì)象在序列化時(shí)如果不做格式轉(zhuǎn)換會(huì)出現(xiàn)各種時(shí)間格式錯(cuò)亂。統(tǒng)一處理方案是在Vue端通過(guò)value-format屬性把輸出格式限定為yyyy-MM-dd HH:mm:ss字符串前端先行兜底后端從前端拿到的就已經(jīng)是標(biāo)準(zhǔn)時(shí)間格式。6. 常見問(wèn)題與排查技巧實(shí)錄6.1 開發(fā)過(guò)程中的高頻異常及異常處理方案下面是我實(shí)際開發(fā)過(guò)程中遇到并解決的高頻異常問(wèn)題很多問(wèn)題在其他項(xiàng)目里也會(huì)同樣出現(xiàn)值得整理成一張速查表方便對(duì)照參考異?,F(xiàn)象產(chǎn)生原因排查思路與解決方案啟動(dòng)報(bào)Failed to configure a DataSource未配置數(shù)據(jù)源或配置有誤檢查application.yml中的數(shù)據(jù)庫(kù)連接配置確認(rèn)url、username、password是否正確依賴是否引入完整啟動(dòng)報(bào)Invalid bound statement (not found)Mapper接口與XML映射文件不對(duì)應(yīng)檢查MyBatis Mapper掃描路徑配置確認(rèn)MapperScan注解路徑正確且XML文件在resource目錄的對(duì)應(yīng)位置訪問(wèn)接口報(bào)404控制器路徑或請(qǐng)求方法不匹配檢查Controller類上的RequestMapping、GetMapping、PostMapping注解前后端請(qǐng)求的Method是否一致登錄接口報(bào)403Spring Security未放行登錄接口在SecurityConfig的WebSecurityCustomizer中配置放行/login、/register等匿名訪問(wèn)路徑圖片上傳成功但訪問(wèn)404靜態(tài)資源映射未配置需要在SpringBoot中配置靜態(tài)資源映射將本地上傳目錄映射到虛擬路徑比如registry.addResourceHandler(/upload/**).addResourceLocations(file:D:/upload/)前端訪問(wèn)接口跨域報(bào)錯(cuò)未配置后端跨域支持配置全局CorsConfiguration注意allowedOriginPatterns不能只設(shè)置“*”要結(jié)合實(shí)際前端地址進(jìn)行配置舉報(bào)列表數(shù)據(jù)重復(fù)分頁(yè)查詢未正確使用MyBatis Plus分頁(yè)插件確認(rèn)配置了MybatisPlusInterceptor并添加PaginationInnerInterceptor這是分頁(yè)插件生效的前提事務(wù)不生效類內(nèi)部方法調(diào)用導(dǎo)致AOP代理失效Spring事務(wù)基于AOP代理實(shí)現(xiàn)同類中另一個(gè)方法調(diào)用是內(nèi)部調(diào)用代理不會(huì)生效需要注入自身或拆到不同類中6.2 一個(gè)真實(shí)的排查過(guò)程記錄這里分享一個(gè)我在開發(fā)舉報(bào)模塊時(shí)處理的比較有代表性的問(wèn)題。當(dāng)時(shí)后臺(tái)管理員審核一條舉報(bào)記錄后前端頁(yè)面一直顯示“審核中”導(dǎo)致審核狀態(tài)一直得不到更新而數(shù)據(jù)庫(kù)里舉報(bào)表那條記錄的狀態(tài)字段其實(shí)已經(jīng)改了。排查問(wèn)題的時(shí)候我先確認(rèn)了后端接口和數(shù)據(jù)庫(kù)層面通通沒(méi)有問(wèn)題數(shù)據(jù)落庫(kù)確實(shí)生效了。接著我開始懷疑是不是前端頁(yè)面緩存的問(wèn)題但檢查后也排除了。隨后我從業(yè)務(wù)邏輯鏈路一環(huán)一環(huán)排查過(guò)去終于發(fā)現(xiàn)原來(lái)在審核舉報(bào)的Controller層有一步返回給前端的Result對(duì)象里嵌套的舉報(bào)信息數(shù)據(jù)是在事務(wù)提交之前從數(shù)據(jù)庫(kù)中取出來(lái)的那個(gè)時(shí)候數(shù)據(jù)庫(kù)里存的狀態(tài)確實(shí)還是舊的。事務(wù)提交之后數(shù)據(jù)庫(kù)里的值已經(jīng)更新了但前端展示的數(shù)據(jù)引用的還是舊值。找到根因之后問(wèn)題解決起來(lái)就簡(jiǎn)單了。我把“查詢最新舉報(bào)信息返回給前端展示”的邏輯挪到事務(wù)提交之后執(zhí)行即針對(duì)這類操作統(tǒng)一在Controller層先調(diào)用Service層的審核更新事務(wù)再調(diào)用另一個(gè)查詢方法去拉最新的數(shù)據(jù)保證前端拿到的永遠(yuǎn)是提交后的最終數(shù)據(jù)。這個(gè)問(wèn)題解決后我還舉一反三地檢查了后臺(tái)所有類似的“更新后返回詳情”的接口統(tǒng)一遵循這個(gè)順序原則。6.3 自測(cè)驗(yàn)收時(shí)踩過(guò)的隱藏小坑除了上面這些顯性問(wèn)題還有一些屬于自測(cè)階段才會(huì)暴露的“隱藏小坑”列出來(lái)給大家提個(gè)醒時(shí)間字段的時(shí)區(qū)問(wèn)題。MySQL連接串里如果不加serverTimezoneAsia/Shanghai參數(shù)插入數(shù)據(jù)庫(kù)的時(shí)間會(huì)比北京時(shí)間少8個(gè)小時(shí)。最初沒(méi)注意直到后臺(tái)管理界面出現(xiàn)“發(fā)布于1970年”這種離譜數(shù)據(jù)才反應(yīng)過(guò)來(lái)這是非常經(jīng)典的基礎(chǔ)坑。對(duì)話文案中的時(shí)間顯示問(wèn)題。前端直接用默認(rèn)的Date對(duì)象格式展示時(shí)間顯示效果是一長(zhǎng)串帶T的ISO格式字符串非常不友好。統(tǒng)一處理方案是在前端封裝一層時(shí)間格式化過(guò)濾器在后端給前端的VO字段上使用JsonFormat注解保證接口返回的時(shí)間格式已經(jīng)是格式化好的、方便直接展示的。大段文本中的特殊字符問(wèn)題。舉報(bào)描述或文章正文里有英文單引號(hào)時(shí)如果SQL語(yǔ)句是手動(dòng)拼接字符串單引號(hào)會(huì)直接截?cái)郤QL導(dǎo)致報(bào)錯(cuò)。雖然用了MyBatis預(yù)編譯之后這個(gè)風(fēng)險(xiǎn)理論上解除了但如果你在存儲(chǔ)過(guò)程中也有字符串拼接場(chǎng)景仍然需要注意對(duì)單引號(hào)做轉(zhuǎn)義處理。7. 項(xiàng)目亮點(diǎn)提煉與答辯準(zhǔn)備建議7.1 三個(gè)能夠精準(zhǔn)打動(dòng)評(píng)審老師的核心亮點(diǎn)整個(gè)項(xiàng)目做完后如果需要你在答辯現(xiàn)場(chǎng)用最短時(shí)間講清楚項(xiàng)目的過(guò)人之處以下三個(gè)亮點(diǎn)是最值得展開的第一個(gè)亮點(diǎn)是業(yè)務(wù)閉環(huán)設(shè)計(jì)。用戶從學(xué)習(xí)課程、到參加考試、再到舉報(bào)案件整個(gè)核心鏈路是完整的每個(gè)模塊都不是孤島模塊之間存在業(yè)務(wù)上的關(guān)聯(lián)與推動(dòng)關(guān)系。當(dāng)前端完成了“學(xué)完課程自動(dòng)解鎖考試、考試合格贈(zèng)送積分、高積分用戶舉報(bào)優(yōu)先審核”這一連串規(guī)則后整個(gè)項(xiàng)目就不只是信息發(fā)布平臺(tái)而是一套有激勵(lì)導(dǎo)向的全民反詐教育引擎。第二個(gè)亮點(diǎn)是JWT Redis的雙重認(rèn)證機(jī)制。純JWT認(rèn)證存在服務(wù)端無(wú)法主動(dòng)注銷用戶的短板通過(guò)引入Redis存儲(chǔ)Token并做強(qiáng)制校驗(yàn)補(bǔ)上了服務(wù)端主動(dòng)踢人和登錄態(tài)統(tǒng)一管理的能力等于把無(wú)狀態(tài)認(rèn)證和有狀態(tài)控制的優(yōu)點(diǎn)結(jié)合了這個(gè)方案在業(yè)界也被越來(lái)越廣泛認(rèn)可你的答辯官一聽就能明白你不是死記硬背的。第三個(gè)亮點(diǎn)是數(shù)據(jù)庫(kù)層面的實(shí)戰(zhàn)細(xì)節(jié)。從聯(lián)合唯一索引保證學(xué)習(xí)記錄的冪等性到狀態(tài)字段采用可讀性更強(qiáng)的枚舉字符串而不是意義不明的數(shù)字這些都體現(xiàn)了一名后端開發(fā)對(duì)數(shù)據(jù)一致性和可維護(hù)性應(yīng)有的敏感度。這些細(xì)節(jié)如果不說(shuō)出來(lái)看似普通的表結(jié)構(gòu)里其實(shí)有很多看不到的思考。7.2 答辯時(shí)容易被追問(wèn)的問(wèn)題清單根據(jù)我做畢業(yè)設(shè)計(jì)指導(dǎo)和模擬答辯的經(jīng)驗(yàn)這個(gè)項(xiàng)目特別容易被提問(wèn)的方向至少有以下幾個(gè)提前準(zhǔn)備好回答思路為什么選擇JWT而不是Session認(rèn)證方式核心區(qū)別在于服務(wù)端是否需要存儲(chǔ)會(huì)話狀態(tài)JWT適合前后端分離、水平擴(kuò)展需要無(wú)狀態(tài)服務(wù)的場(chǎng)景。Spring Security的過(guò)濾器鏈原理是什么了解OncePerRequestFilter這類核心過(guò)濾器的執(zhí)行順序以及如何插入自定義認(rèn)證過(guò)濾器。Redis緩存的數(shù)據(jù)和數(shù)據(jù)庫(kù)的一致性怎么保證可以從緩存更新策略入手展示更新數(shù)據(jù)庫(kù)后主動(dòng)刪除緩存下次查詢時(shí)再回填的思路。舉報(bào)圖片是怎么存儲(chǔ)的如果把圖片存到云上你會(huì)怎么設(shè)計(jì)展示你對(duì)文件存儲(chǔ)的邏輯分層和替換擴(kuò)展能力的理解。分頁(yè)插件實(shí)現(xiàn)原理MyBatis Plus的分頁(yè)插件是基于MyBatis的Interceptor機(jī)制在SQL執(zhí)行前攔截并改寫為分頁(yè)語(yǔ)句。系統(tǒng)目前有哪些安全隱患如果沒(méi)有安全方面的思考可以說(shuō)“當(dāng)前系統(tǒng)只是畢設(shè)級(jí)別很多安全措施沒(méi)有完整覆蓋例如缺少接口防重放攻擊、缺少全局XSS過(guò)濾等我認(rèn)識(shí)到了這個(gè)問(wèn)題”。7.3 論文寫作上的個(gè)人建議論文結(jié)構(gòu)上我強(qiáng)烈建議把“系統(tǒng)設(shè)計(jì)”這一章寫細(xì)畫出功能結(jié)構(gòu)圖、系統(tǒng)架構(gòu)圖、業(yè)務(wù)流程圖不是那種網(wǎng)上抄來(lái)的看不懂的圖而是每一張圖都對(duì)應(yīng)到你自己代碼里的真實(shí)模塊和真實(shí)流程。數(shù)據(jù)庫(kù)設(shè)計(jì)章節(jié)把ER圖和表結(jié)構(gòu)說(shuō)明寫到每一個(gè)字段的注釋級(jí)別讓評(píng)委能單看論文就對(duì)你的代碼結(jié)構(gòu)有清晰的預(yù)期。特別要強(qiáng)調(diào)的一點(diǎn)是論文里不要回避遇到的困難。我個(gè)人的經(jīng)驗(yàn)是在“系統(tǒng)實(shí)現(xiàn)”和“系統(tǒng)測(cè)試”章節(jié)中主動(dòng)詳寫兩三個(gè)自己踩過(guò)的坑和排查過(guò)程比如之前提到的舉報(bào)審核狀態(tài)顯示未更新的問(wèn)題、學(xué)習(xí)記錄重復(fù)數(shù)據(jù)的問(wèn)題反而會(huì)讓論文顯得真實(shí)且扎實(shí)。評(píng)閱老師看了太多從頭到尾“一路順暢”的學(xué)生論文那種論文通常也是抄襲或者流水賬創(chuàng)作的結(jié)果。真實(shí)記錄問(wèn)題的解決過(guò)程反而更容易給評(píng)委留下獨(dú)立思考、動(dòng)手能力強(qiáng)的正面印象。8. 最后說(shuō)幾句做這類項(xiàng)目的真實(shí)感受整個(gè)項(xiàng)目做下來(lái)最大的感受可以用一句話概括畢業(yè)設(shè)計(jì)真正鍛煉人的不是寫代碼本身而是從需求分析、表結(jié)構(gòu)設(shè)計(jì)、功能實(shí)現(xiàn)到測(cè)試聯(lián)調(diào)這一整套工程流程的思維訓(xùn)練。關(guān)于時(shí)間投入我的經(jīng)驗(yàn)值是分模塊估算——用戶中心加JWT認(rèn)證約一周文章和課程模塊約一周學(xué)習(xí)記錄與考試測(cè)評(píng)約兩周舉報(bào)與后臺(tái)管理約兩周前端頁(yè)面打磨和接口聯(lián)調(diào)再一周最后留兩周做測(cè)試和論文撰寫整體大概兩個(gè)月的業(yè)余時(shí)間可以穩(wěn)定拿下。如果時(shí)間緊張可以先砍掉考試測(cè)評(píng)模塊做成純學(xué)習(xí)功能系統(tǒng)依然可用但業(yè)務(wù)閉環(huán)就沒(méi)有那么完整了。最后再分享一個(gè)實(shí)用小技巧答辯演示前一定要準(zhǔn)備一個(gè)干凈的演示數(shù)據(jù)庫(kù)里面預(yù)留好足夠數(shù)量的測(cè)試賬號(hào)、舉報(bào)記錄、學(xué)習(xí)數(shù)據(jù)所有演示路徑自己完整走兩遍以上。我見過(guò)太多人答辯現(xiàn)場(chǎng)臨時(shí)錄入數(shù)據(jù)結(jié)果圖片上傳失敗或者測(cè)試賬號(hào)密碼記錯(cuò)導(dǎo)致反復(fù)登錄失敗場(chǎng)面非常尷尬。提前把演示流程演練到閉著眼睛能走通的程度這個(gè)畢設(shè)才能真正畫上一個(gè)圓滿的句號(hào)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产AV天美传媒一区二区三区 | 免费视频a级毛片免费视频| 国偷自 一区二区| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 精品国产无码中文| 人妻久久久| 色欧美天天| 日本九九久久99| 国产精品蜜乳AV| 久久精品亚洲婷婷| 婷婷爽人人婷婷爽视频| 操逼片中文| 国产精品内射婷婷一级二| 色香网| 午夜激情成人在线观看| 97在线观看免费视频l| 美日韩男女操屄视频| 久久爽爽精品| 人妻出轨一区二区三区| 97碰久久| 青青草中日韩在线| 黄色av一区二区在线| 日曰骚久久精品| 九九英色视频| 日本九九九九| 大香网站| 人干人人人操人人摸| 97综合国产| 性做久久久久久免费观看软件| 伊人久久88国产女| 九九伊人网| 二色av| 国产美女91视频| 99热 按摩 日韩| 天美传媒AV在线| A片 AV一级在线播放观看免费| 亚洲成a人片在线观看中文!!!| 一本道综合色图| 热久久无毒不卡| 欧美性爱一区二区三区| 三级片大波波| 欧美色图91| 久久亚洲国产成人| 日本超碰在线国产一区| 99AV| 亚洲天堂区| 91青青在线| 欧美日韩999| 男人的天堂kva| 美女人妻色网站| 东京热毛片调教| 成人小说视频在线精品欧美| 蜜臀精品1区2区| 欧美激情久久久久| 0755午夜福利视频| 丁香五月社区| 色在线69堂| 亚洲不卡三级手机播放| 操我无码| 男人的天堂成人的社区| 国产精品爆乳懂色蜜乳| 无遮挡猛进视频免费无限观看| 亚洲熟久久| a在线视频免费观看| 欧美天天干| 久久国产视频专区一二三 | 人人操超碰在线| 日韩欧美经典在线观看| 91bbb| 亚洲欧美综合| 亚洲限制级| 人人妻人人澡人人爽久久av| 老熟女乱伦片| 成人羞羞视频国产| 欧美日韩国产三级黄色| 黄人人操人人操| 国产日韩在线播放| 国产欧美美女免费观看视频| 超碰在97| 亚洲无992tv| 亚洲中文日韩精品| 色眯眯射| 伦理弟一页| 久久禁| 日韩av情韩国爱禁区av一区二区| 久久久久白虎| 国产麻豆91欧美一区二区久久婷婷国产精品 | 第四色色综合91| 五月天亚洲网| 翔田千里无码中出中文字幕| 国产超碰AV在线精品| 国产美女mm131爽爽爽爽| 中文高清一区二区的| 97人妻色| 国产sv美女内射| 一级做a爰片久久毛片图片| 色情五月综合婷婷| 98福利在线视频| 久久人妻熟女一区二区| 国产99久久99热这里只有精品15 | 亚洲综合20p| 欧美探花网| 天无日色综合| 人妻人妻天天碰| 久操精品| 天堂8在线新版官网| 久久98| 91AV天美在线视频| 欧美视频在线视频免费va| 丁香婷婷激情五月天无毒不卡 | 日韩无码AB| 亚洲国产成人精品女人久久久| 中文字幕亚韩| 日韩图色| 狠狠色丁香| 美国三级日本三级久久99| 囯戸精品高潮呻吟旡码| 色五月69夫妻| 偷拍偷窥与盗摄视频专区| 天天日日夜夜| 粉嫩av在线| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 久久产精品一区二区三区电影| 人人考人人摸人人干| 男人天堂综合| 黄片免费看黄片免费看| 欧美美逼| 在线观看岛国有码| 亚洲精品久久久久久| 国产剧情AV不卡在线观看| 久久精品视| 久草视频在线视频在线视频在线观看| 啊啊啊啊啊啊啊网址在线观看| 欧美日韩制服| 精品国产乱码久久久久久口爆网站| 青青草国产盗摄一二三区| 人妻啪| 免费网站观看www在线观| 久草看看看| 91大学精品激情戏| 襙一襙| 亚洲黄日韩无码专区| 亚洲春色欧美激情自拍| 亚洲综合九| 淫荡熟女乱伦网| 亚洲不卡一| 成人片在线播放| 国产诱惑| 五月激情影院| 国产兽交视频在线播放| 加勒比综合在线| 99无码| 国产在线视频午夜精华在| 麻豆AV短剧| 久久久久成人亚洲国产| 国产精品久久久久久久久久久久久久吹 | 白嫩嫩一区| 日日操免费视频| 色爽——AV| 操91| 人妻中文字幕精品无码| 精品美女少妇一区二区三区| 日韩欧美字幕亚洲一区二区 | 日韩人妻有码免费视频| 色香天天| 亚洲999综合| 99亚亚热| 色翁荡息又大又硬又粗又爽| 国产精品福利视频| 亚洲伊人久久精品影院| 嗯嗯嗯啊啊啊操的我好爽 | 97免费免费视频网| 欧美亚洲丝袜人妻制服99| 看日韩黄片| 国产av色网| 伊人97色天使| 六月丁香五月婷婷| 国产无套粉嫩白浆在| 明星性猛交ⅹxxx乱大交| 小骚逼被操的爽不爽| 欧美99热| 五月天黄色激情视频| 亚洲加勒比久久日本道| 中文字幕人妻色偷偷久久皮| 亚洲高潮少妇| 五月丁香综合啪啪| 东亚亚洲无码高清| 日韩性爱电影一区| 精品久久久久久中文| 成年无码动漫av片无尽在线| 亚洲图片另类| 韩国三级色呦呦| 大香蕉一人| 天堂综合| 亚洲色图综合网| 久久精品国产99国产精品亚洲| 香蕉综合网| 无码 有码 国产18p| 亚洲天天做日日做天天谢日日| 天天欧美| 欧美天天干| 久久粉色| 免费视频在线一区二区不卡| 国产二区三区免费视频| 91国产丝袜白虎| 久久久专区| 97超碰天天| 精品一区96| 操逼天美3区| 一二三四视频中文字幕在线看| 男女啪啪啪18禁网站| 九九九九九九视频免费| 操东北女人| 亚洲在线欧美| 国产精品成人AV片免费看网站 | 色色色色色色色色色色色色色色综合| 欧美视频在线视频免费va| 九九色婷婷| 日本99视频| 婷婷五月天小说| 久久久久久国产精品| 日韩无码专区| 嗯嗯嗯嗯啊啊啊好紧好大| 逼逼逼逼操操操操操操操操操午夜剧场| 亚洲欧洲综合av在线| 最近2018中文字幕在线高清第一页| 久久精品六区| 亚洲欧美综合图片| 亚洲av青草久久一区二区| 亚洲激情视频| 人妻一区二区三区视频| 午夜AV人气不卡| 男女一进一出视频久久| 亚洲国产av中文字幕久久 | 国产精品亚洲色婷婷久久久| 激情干在线| 无码日韩人妻av一| 亚洲国产欧美中日韩成人综合视频| 久久国内| 先锋精品av色鲁| 91大胆欧美| 图色综合网| 男生女生啊啊啊啊| 亚洲,欧美,综合网| 人人操人人摸人人骑| 丁香五六月啪啪| 亚洲av综合色区图片亚洲| 日本欧美一区二区三区免费| 青青草日韩免费观看高清在线| 性色高清..……| 日韩精品人妻| 日本性爱少妇| 欧美色图片91| 久久久日本电影| 台湾一区国产高清在线| 国产做?爰片久久毛片?片美国| 婷婷在线视频| 97超碰亚洲| 日韩欧美~中文字| 人妻少妇久久中文字幕一区二区 麻豆| 偷拍 欧美 日韩| 殴美大黄片| 旡码电影特区| 亚洲97在线观看| 91人妻尻屄视频| 青青青国产| 四虎免费在线播放| 久久久久亚洲AV无码专区少妇| 乱老女人一区二区视频| 操曰本熟女| 国产操逼网站亚洲一级黄色| 人妻熟女午夜精品在线| 久久久91福利姬| 91人妻人人澡人人爽人人精品| 蜜乳av首页| 久久中日麻豆| 樱花蜜乳av| 欧美最婬乱婬爆婬性视频 | 亚洲av影院在线观看| 国产天天骚| 东京热,男人的天堂| 亚洲小电影免费涩涩成人在线高清| 天天操天天插| 久久久555| 女人被添高潮免费视频| 日本三级韩国三级美三级91| 伊人久久大香线蕉无码| 无码国产Av| 日韩97视频!在线| 91综合熟女| 91国产精品在线看| 蜜臀99久久精品久久久懂爱| 亚洲天堂综合AV| 天天夜夜rb| 九九99久久| 欧姜老司机| 天天天天操| 麻豆 美女 丝袜 人妻 中文| 久久熟女人| 少妇无码999| 男女一级A片大黄,一进一出| 国产综合久久久麻桃个| 99热这里是精品| 日本幼女18+| 麻豆国产免费影片| 五月天亚洲色图| 国产高清1234区| 精品视频在线观看精品| 69久久久久久久久久久久久| av在线免费一区二区| 在线观看午夜婷婷久久久久清性观看| 蜜桃av综合网发布| 美女黄站| 91爰爱欧美| 极品美女福利在线观看| 日日摸日日弄日日拍| 国产在线精品偷| 一本色道熟妇| 久久嫩草国产成人一区| 精品少妇人妻av久久免费| 蜜臀一二三| 国产精品自产拍在线观看社区| 久久久久幕乱码| 超碰狠狠操| 午夜性生活av免费在线看| 大香蕉色网| 亚洲九月丁香| 欧美第一页| 97超碰久久色| 欧美超碰9798| 亚洲国产成人精品久久久国产成人一区二区三.| 97亚洲国产| 婷婷五月丁香五月| 国产精品蜜乳AV| 九七色图| 日产成人久久| 国产有码一区| 日韩婷婷| 99国产精品视频尤物| 婷婷五月天色网| 免费看污网站| 无套内射性感少妇视频| 国产亚洲精品农村妇女| 久久久久久久唑| 国产美女精品| 一个人在线看的黄色电影网站| 强奸乱伦亚洲第一页| 大逼色网站| 91在线丝袜视频| 五月丁香久久| 欧美性巨大╳╳╳╳╳高跟鞋| 久久αⅴ| 久久风骚城市| 日韩不卡一二三四| 粉嫩AV一区夜夜嗨| 国产日韩精品一区二区三区| 91丨九色丨大屁股| 亚洲精品xxx| 伊人操| 99re6在线视频精品免费完整版安卓版| 又黑又大又粗| 亚洲综合在线视频| 天美麻花大全视频| 欧美日韩性爱操大逼| 伊人五月天婷婷| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 上床不卡网站| 久插综合| 欧美白嫩在线放| 国产在线不卡导航| 宅男91视频在线播放| www.色综合| 亚洲一本大道中文字幕无码在线| 粉嫩不卡一区二区性爱| 蜜桃视频成a人v在线| 中国农村熟妇毛片视频| 男人女人18禁片免费看网站| 东京热一区二区中文字幕| 日日骚网站| 久久久一区二区三区麻豆| 丝袜色综合| 国产精品久久久久久久久久久久久久久久| 好屌色综合| 亚洲污一污二| 99re这里| 四虎免费视频| 欧美情色亚洲| 91丨人妻丨国产丨丝袜| 国产品精品自在在线午夜免费| 亚洲无码一区成人免费午夜| 欧美性性性| 亚洲色图A| 日日骚中文字幕| 超碰色老头| 蜜臀久久99精品久久久久| 97精| 综合亚洲欧美精品日韩?v| 欧美成人免费在线观看| 日本欧美中文字幕| 大香焦A片| 看黄片视频免费| 日韩欧美一级特黄大片| 伊人色综合网电影| 亚洲AV免费在线观看| 亚洲第一页欧美| 美女大乳久久久久久久女人18| 91色爽欧美| 国产白丝在线| 91美女视频。| 白丝被操91| 亚洲第一狼人丝袜美女另类 | 亚洲精品一二三四区| 最新精品久久蜜桃| 久久有码视频| 日韩av不卡在线看| 九九热超碰| 欧美高清性猛交| 亚洲区限制级 99| 在线天堂资源亚洲| 色y情视频免费看| 久精品无码av一区二免费国产在线观看| 五月婷婷爱六月丁香色| 日韩成人午夜精品久久高潮| 亚欧美色图| 日本精品五区| a级成人毛片免费视频高清| 婷婷亚洲天堂| 欧美人人天天网| 天天肏天天干| 日韩精品亚洲专区在线影视| 熟女在线视频| 欧美色97| 日本性爱网址| 尤物av网站| 天天搞欧美| 少妇厨房愉情理伦片bd在线观看| 亚洲夜夜欢无码一区二区| 国内精品不卡无毒99999| 中字一区| 午夜国产成人精品视频| 九九色婷婷| 亚州色国| 最近2018中文字幕在线高清第一页| 在线观看国产黄色| 久久久久久中文版| 老熟女乱伦片| av大香蕉网站| 91肉丝| 五月天激情小说| 99re热| 免费日韩黄片| 人妻一区二区三区| 91丝袜在线观看| 欧美成人午夜免费福利785| 一级黄碟在线观看| 夜夜草我| 亚洲一二三精品久久网| 91天天综合日韩欧美| 岛园激情| 国产精品乱码久久久、久久| 高清国产成人无码| 中文字幕女同在线| 三级AV入口| 亚洲精品国产AV天美传媒| 久久欧美激情| www.婷婷| 99999精品| 92福利社视频| 亚洲九九九| 91人妻人人妻| 日韩精品资源专区二区| 国产性感在线观看| 99视频这有这里有精品| 国产超碰在线一区| 欧美精品日韩久久久九| 欧美高潮| www99热| 夜夜嗨一区二区三区直播内容| 免费综合亚洲中文| 欧美在线电影| 水澄无码AV| 国产视频人人网| 伊人久久国产免费观看视频| 日本一区二区三区免费观看| 久久夜色一区二区| 久操网线| 奶水 人妻 哺乳 在线| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 天堂九九九九九九九九九| 99av| 久久超碰亚洲人| 欧美国产欧美在线观看| 清纯唯美综合亚洲| 中文啪啪视频| 熟女乱伦A| 久热精品在线| 亚洲熟妇乱女区二区三区| 日本性交操一区二区不卡系列| 99色婷婷中文字幕乱色| 亚洲性爱无码乱伦av| 一区二区视频在看| 亚洲区限制级| 久草五月| 中文字幕久热视频在线| 欧美亚洲手机在线| 韩国女主播青草在线| 欧美操逼熟女| 久久97| 日韩美女,国产传媒,视频一区| 1禁看欧美黄片免费看| 九九热精品视频六| 91麻豆天美传媒HD| 国产日本久久免费精品| 新亚洲无码| 日本黄页视频在线观看| 射 色综合| 国产成人亚洲精品无码古代早漏男| 亚洲交性| 9精品久久| 91N欧美| 国产男人又猛又粗又爽| yw尤物av无码点击进入麻豆| 天天影视之亚洲综合网| 熟妇亚洲一区二区三区| 婷婷丁香成人| 国产91啪| 精品久久久久久AV无码| 男人综合网| 加勒比av官网在线| 嗯阿好爽好紧| 日本熟妇一区二区三区| 国内毛片无码一级毛片| 国产精品婬乱一级毛片彝族| 国产拍偷精品网站| 99热这里只有精品18| 91处女在线视频| 老师充足的奶水小说| 日本三级韩国三级99| 亚洲最新a在线观看| 国产美女口爆吞精视频| 美女久久久久久久久久久| 伊人少妇久久久| 性爱AV天堂| 色999偷自拍拍| 人妻久热在线| 99久久这里只有精品| 99热精品在线观看| 日本 欧美 国产一区| 亚欧无码在线| 黄片色区软件| 国产成人手机视频激情| 国产高清免费不卡av| 91AV入口| 91P0RNY大屁股人妻| 婷婷丁香激情| 天天日天天干天天操| 啊啊啊久久| 999久久久九九九九| 欧美伊人电影| 欧洲视频在线| 日本综合色图| 2024年最新色情网站在线观看| 丰满人妻一区二区三区免费| 人妻欧美| 日韩欧美性吧婷婷乱伦大香蕉 | 91精品人妻一区二区三区蜜桃臀| 99re这里只有精品3| 91色综合激情| 亚洲欧美精品久| 97精品国产精品免费观看| 性爱AV天堂| 91视频综合在线| 一本一道久久综合久久| 老熟女综合网| 看日韩黄片| 欧美性爱日韩高清| 国产高清成人mv在线观看| 亚欧成人中文字幕一区| 桃花色涩综合影院| 加勒比无码一区二区三区| 成 人 影视 一区 二区 三区 四区 | 中文字幕伊人| 欧美激情精品| 操逼逼一区视频| 自拍偷拍 日韩无码| 九九aV| 久久大香蕉手机高清视频| 久久有碼| 四虎精品亚洲| 久9re热视频这里只有精品| 欧美 日韩 亚洲 春色| 无码视频黄色网战| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 久久精品国产96精品亚洲拳交| 色婷久久| 国产美女激情| 欧美日韩亚洲天堂| 日韩精品碰碰| 无码99| 亚洲宗合网| 久久久9999| 一牛影视成人片免费| 婷婷五月在线视频| 新视频sss国产| 好属操| 久久久免费的精品| 欧美在线色图| 欧美色图第一页| 久久久久久久国产视频| 熟妇熟女亚洲天堂网| 劲爆欧美人妖三区91| 久久久久97| 国产欧美一区激情交| 99热aaa| 97网色| 在线观看综合精品亚洲| 亚洲 se图 欧美电影| 91亚洲网站| h无码动漫在线观看| 夜夜操老骚逼视频网站| 国产sv美女内射| 唐山老熟妇露脸啪啪叫| 91l欧美在线| 精品人妻一区二区三区在| 久久美女福利是上海美女| 欧美色日本| 襙一襙| 夜夜嗨一区二区| 青青草原成人| 少妇高潮对白在线观看| 高潮综合网| 国产 亚洲 一二三四| 99亚亚热| 欧美精品97| 久久久婷婷| 国产丁香精品露脸视频| 久久精品国产72国产精品福利| 99色婷婷中文字幕乱色| 日本高清免费一本视频在线观看| 在线观看AV不卡| 久久9精品| 9 9精品一区二区三区| 久久老熟女| AV电影在线播放| 国产精品一区在线播放| 久久婷婷伊人| 亚洲 欧美 第一页| 吻戏激情性巴克| 91美女小视频| 精品无码一区二区| 国产精品内射婷婷一级二| 大香蕉伊人一区在线观看| 丰满人妻一区二区三区色-百度| 亚洲天堂电影精品一区| 夜夜爽夜夜爽| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 国产天天骚| 久9re热视频这里只有精品| 伊人色综合超碰| 最新国内自拍av免费| 亚洲综合小视频小说在线观看| 国模私拍一区二区三区神乳| 金典av| WWW黄片COM| 日本大香蕉综合网| 久久久久久性爱片| 新久久AV| 国产三级中文字幕粉嫩 | 欧美情色亚洲| 亚洲人精品久久久喷水| 99久国产精品午夜性色福利| 91色色综合| 影音先锋国产精品| 欧美性爱第1 页| 国产 大胆 对白| 97综合在线| 亚洲麻豆av一区二区| 色天堂综合| 综合色99| 日韩性爱免费观看视频| 日韩欧美蜜桃精品久久中文字幕久久 | 97久精品| 在线无码操| 97天堂| 日韩精品人妻中文字有码在线| 国产亚洲精品自在线亚洲情侣| 毛片一区二区| 久久久久人| 大香蕉伊人一区在线观看| 美女尤物人人操| 一本精品日本在线视频精品| 国产精品一区午夜福利| 草草草视频在线免费看| 亚洲免费人妻在| 久久久久久夜夜夜夜夜| av橘色网站| 亚洲乱码国产乱码精网站| 中文字幕加勒比海高清无码免费视频 | 97欧美性爱| 亚洲综合情色| 欧美亚洲色图另类国产| 97欧美色资源| 人妻在线视频| 久久久久久少妇| 1禁看欧美黄片免费看| 亚洲天堂资源| 五月激情视频| 天天网综合| A啊啊在线观看| 无码天天操| 亚洲校园激情| 欧美第一页性| 国产精品无套内谢| 美女91网| 1204av韩国| 99精品成人免费看| 欧美综合加勒比在线| 日本九九九九| 校园春色欧美色图| 男人天堂2019| 婷婷丁香久久| 日本熟女不卡视频| 国产精品久久久九九九| 婷婷五月综合在线| 成人小说视频在线精品欧美| 毛片麻豆91糖心精品毛情片| 国产又粗又又黄又猛| 第四色奇米影视777| 亚洲人妻久久久| 麻豆黄色五月天| 99ri精品| 精品无码不卡视频| 日本操逼视频免费| 999久久久久久久久| 96免费视频在线| 亚洲 欧美 中文 日韩超碰| jizzjizz欧美| 一级做a爰片久久毛片图片| 亚州性9| 四虎av在线| 中文熟女五十乱码在线| 色网在线| 97超碰免费人人性爱| 搡老女人老妇女老妇老熟女怎么读| 深夜国产一区二区三区在线看| 精品无码秘 人妻一区二区| 亚洲风情在线观看| 33044男人的天堂深夜备| 91爱看| 蜜臀一二三| 超碰一区二区| chaopen97久久| 精品少妇高潮久久| 亚洲一区中文字幕| 好爽视频在线观看视频| 午夜精品久久久久久久久久久久久 | x97av| 97色欧洲| 综合色91| 国内精品久久人妻性色av| 最近2018中文字幕在线高清第一页| 91麻豆天美| 青青操综合网| 六月丁香啪啪| 久久国产精品一级二级三级| 成人影 天天操 亚洲| 亚洲精品天天影视综合网 | 91伊人久| 91精品啪在线观看国产城中村| 日韩一级片在线看| 夜夜肏2021| 伊人精品国产| 久草这里只有精品| 你想操日本小逼吗| 在线视频资源| 中文字幕 一区二区 亚洲无码| 久久天堂| 国产成人无码a| 91无码西班牙视频在线| 亚洲色系另类精品国产| 探花精品视频| 午夜毛片高清免费不卡| 婷婷爽人人婷婷爽视频| 美女写真| 日韩丝袜高跟制服在线观看| 亚洲欧美骚| 日本在线视频导航| 国产熟妇一区二区| 天天上日日上日韩精品| 91久久久久久| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 91无码人妻| 天天日天天搞天天干| 夜夜肏2021| 精品视频一二三中文| 欧美中出1| 亚洲中文sv| av国产无码| 亚洲中文sv| av在线资源| 特污精品女优骚货黄色视频在线免费观看| 亚洲天堂人妻熟妇视频| 亚洲色图 欧美| 亚洲欧美另类激情小说 | 天美传媒av 在线| aV中文麻| 久久人妻四季| 日本性感人妻91| 上床不卡网站| 亚欧日韩成人| 中国少妇啪啪视频| 七久久久| 国产最新小视频在线播放下载| 中文字幕少妇色| 免费亚洲黄色视频在线观看| 加勒比海成人视频网| 操我无码| 国产内射爽爽大片| 欧美亚洲AN| 亚洲成人综合在线| 超碰97人妻| 97超色| 999久久久久久久精| 少妇高潮流水av免费| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 国产午夜精品在线观看| 久神马| 亚洲欧美一区二区三区在钱蜜桃| 麻豆国产精品午夜视频| 91插B网站| 一区二区 日韩 欧美 国产 传媒| 最新中文字幕在线亚洲| 99热在线播放| 欧美97av| 青草影院内射高潮| 色哟哟国产精品免费网址| 男人的天堂一区三区| www网站黄| 97超碰色屌| 欧美在线啊啊啊| 97免费视频在线观看| 女人的天堂大香蕉网| 麻豆久久视频在线地址| AV网站高清无码在线观看| 蜜臀久久99精品久久久电影| 国产熟码AV| 蜜桃臀AV在线| 亚洲宗合网| 91五月天| 96国产污污污丝袜| 艳美熟妇先锋一二三区| 午夜操逼不卡| 18禁免费视频| 精品一区二区三区蜜桃| 夜夜高潮夜夜爽高清视频一 | 乱伦a片视频| 亚洲中字幕日本一区二区三区| 超碰97综合| 久久永久无码人妻视频| 看免费一级在线播放毛片| 午夜舔阴达高潮视频免费看| 免费AV中文网在线观看| 国产精品麻豆成人av| 很黄很色的视频在线观看| 国产精品第一区第一页| .精品人妻一区二区三| 岛国网址国产 | 日日夜夜免费| 男女一进一出视频久久| 国产91精品在线免费| 翔田千里爆乳巨臀无码| 岛国激情视频在线观看| 欧美成人性爱视频免费观看| 高清国产av无码| 91原创在线观看| 性交一区二区在线播放| 啪啪啪综合| 肏逼福利网站| 黄aaaaaaaaaaaaaaaaaa色网站| 欧美精品日韩一区二区| 中文字幕乱碼在线| 97色操| 免费啪啪一级视频| 精品99999久久久久久| 国产风韵犹存熟妇三区| A级片一区| www.超碰| 91操人| 一级黄色视频网| 久久久久精| 插插综合网天天影视网| 密乳AV免费观看| 混色激情av| 亚洲小说视频| 欧美在线播放aaaa| 男人的天堂日韩| 亚洲成人在线高清| 亚洲五区熟女| 深夜国产一区二区三区在线看| 任你艹| 亚洲天天综合| 97国产色综合| 国产中出内射一区二区| 大香蕉碰碰| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 亚洲男人的天堂va亚洲男人社| 色偷偷超碰亚洲| 久久双插| 亚欧高清在线| 久久同城AV| 国产理论视频在线播放| a片亚洲一本通视频| 手机在线视频国内精品| 道久久五香丁月婷婷激情综合| 操逼www.| 欧美日综合| 电影69乱码96| 国产日产精品久久快鸭的功能介绍| 白丝少妇一区二区| 国产 亚洲 丝袜 制服| 国产嫩草精品A88AV| 99成人| 成人一级性爱| 国产精品白丝AV| 国产久久日韩网站导航| 亚洲精品aa久久伊人| 97天天操| 黑人干亚洲| 97久精品| 国模吧 一区二区三区| 精品人妻一二三| 久久r精品| 日日干夜夜操视频h| 国产伦乱91| 少妇啪啪自拍| 五十路一区无码| 欧美女同在线| 91欧美美女日韩国产婷婷| 亚洲av无码成人精品国产| 91丨九色丨国产丨人妻在线| 天天干夜夜操一区二区| 亚洲日韩东京热一区| 国产女上位好爽在线| 久久久婷| 午夜男女爽爽爽在线视频| 国产成人自拍视频视频| 国产熟女精品一区二区| 97这里有精品| 色欲久久99精品久久| 欧美性综合| 欧美少妇高潮久久91| 99xav| 日韩av色图综合| 超碰97最新人妻| 亚洲www91| 成人在线永久| 好舒服视频| 精品久久艹| 国产99999久久精品| 9久9久9久9久视频网站| 少妇高潮九九九九九九九| 91高清日| 97超碰美女| 国产精品蜜臀久久久久无码AV| 大香蕉一级黄色片久久| Sekablack无码一区| 国产精品久久久久久久久久梁医生| 精品国产av一区二区三区四区入口| 国产女大学生AV| 日本欧美一区二区三区视频麻豆| 3P乱轮视频| 99热网站| 鸥美插入视频| 亚洲人精品久久久| 国产1024在线播放| 国产精品呦一区二区三区| 日韩999| 亚洲免费97免费| 伊人久日| 亚瑟国产精品久久无码| 人人扣人人操| 色综合久久夜色精品国产天堂| 97精品一区| 日韩熟女乱伦中出| 人妻激情另类| 99re99在线视频| 370p日韩欧美亚洲精品| 日韩AV一区二区三区四四| 欧美亚洲成人在线一区二区三区| 久久久78| 欧美特大黄一级片片免费| 精彩视频日韩| 日本精品一区二区三区四区的功能| 日本激情免费大片| 91高跟美女在线播放| 成人性交免费视频| 69AV女优男人的天堂| 国产乱人伦AVA麻豆软件.| 婷婷五月天激情网| 国产精品suv一区| 精品少妇999| 嗯啊抽插大香蕉网页| 伊人成人情色综合| 91狠狠| 日本人妻一区二区| 中文久久| 你草精品在线视频| 国产精品一区二区亚洲人成毛片| 日韩三级久久久| 国产女同在线观看视频| 九九久久九九久久| 欧美亚洲激情| 人妻天天爽夜夜爽精品2| 成 人 A V免费视频在线观看| 婷婷香蕉欧美在线一区二区三区| 三久久久四久久久久| 亚洲国产一区二区三区在线| 激情黄色片在线观看| 国产成自自拍在线观看| 国产精品无码av在线 | 久久人妻97久久久久久久| 自拍偷拍第26| 天天综合站| 久久久久久午夜男人的天堂| 色综合一本| 91男人天堂网| 天天插天天插| 超碰在线观看av不卡| 国产97在线播放| 中文字幕亚洲欧美在线不卡| 日本三级一区二区 在线| 久久久啊啊啊| 1二区9| 黄页大片在线观看| 福利伊人玖玖国产| 黑人免费福利视频| 国内精品久9| 最新av在线| 天综合网| 99爱在线视频| AA特级绝黄| 天天操天天射天天日| 天天网综合| 亚洲日本大香蕉1| 色阁阁AV综合网| 超碰天天久久79| 日本综合色图| 99久久久久| 色一色综合网| 男女真人网18| 国产亚洲精品av一区| 熟女这里只有精品6| 日本操逼视频免费| 97国产精品一区二区传媒公司| 啊啊啊啊啊啊啊网址在线观看| 东北女人的毛片| 日韩激情视频| 欧美久久久| 综合视频91| 亚洲欧美啪啪| 天天操天天干美女网址导航| 99久久9| 精品免费囯产一区二区三区| 青草伊人久久| 亚洲色图欧美色18直播在线| 天天干夜夜操一区二区| 精品十八在线观看| 国产精品农村妇女| 精品黄色电影| 国产精品成人无码a v毛片| 超碰免费人妻人人| 亚洲欧美国产成人综合不卡| 亚洲国产高清福利视频| 欧美激情综合色综合啪啪五月| 啊啊啊啊一区| 欧洲精品网| 97资源站国产精品| 老熟女91| 免费在线黄片视频| 国产伊人自拍| 嗯~啊~快点 死我视频免费看网站| 性色高清..……| 3PAV乱伦视频| 中文字幕精品资源在线| 91人妻人人妻| 国产蜜臀在线| 91人妻精华帖| 亚洲人妻一区二区三区| 香蕉免费一区二区三区不读| 综合少妇网| 国产激情av女片自拍| 啊啊啊啊啊操我视频| 超碰天天去日穴| 大香焦A片| 91中文精品日韩欧美在线| 天天天肏屄肏屄肏屄欧美欧美| 强奸乱伦AV一天堂网| 96AV精品| 欧美性爱一区二区三区| av网页一区二区三区| 日本少妇va7777| 天美传媒AV在线播放| 蜜乳av首页| 午夜福利 成人 91| 久久久久成人亚洲国产| 亚洲性少妇| 亚洲色系另类精品国产| 夜夜嗨av午夜成人| AVE乱伦| 亚洲最大成人a毛毛片| 性色一线| 九九九九精品视频| 日本在线激情一区二区三区| 大稥蕉免费视频这里只有精品| 国产怡红院| 亚洲天堂久久久久久粉红视频| 九九碰九九爱97| 日韩三级一区 | 91爱做| yellow网站免费观看日韩高清无码| 91色图片| 懂色AV蜜臀无码精品APP| 九九免费影片| 超碰社区97| 久久视频少妇美女| 嗯啊啊啊轻点视频 | 影音先锋乱伦资源| 亚洲熟女诱惑| 国产日产欧产美韩系列麻豆免费| 夜夜嗷嗷一区二区| 欧亚乱色熟一区二区三四区| 亚洲日韩一区电影| 综合色图区| 色噜噜人妻丝袜a∨先锋影| 中文字幕人成乱码熟女香港| 操一操摸一摸| 亚洲国产熟妇综合色专区| 偷拍视频青青草在线视频| 欧美BT 亚洲色图| 97在线/亚洲| 操一对老熟妇爽上天视频| 男人的天堂kva| 亚洲图片欧美偷拍| 91丰满| 亚欧美综合网| 中文字幕精品码亚洲| 91美女小视频| 91综合网| 成全动漫视频观看免费下载| 熟女乱3伦999| 欧美激情视频在线一区| 麻豆国产视频精品观看| 都市久久精品激情亚洲| 亚洲精品人妻在线| 成人 日本A片无码8888| 成人性爱电影一区二区| 狠狠操综合| 操久久久久久| 久久9 9 9精品| surenchaopeng|