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

ARTICLE DETAIL

資訊詳情

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

SpringBoot+Vue+MyBatis高校實(shí)習(xí)管理系統(tǒng)源碼解析與部署實(shí)戰(zhàn)

SpringBoot+Vue+MyBatis高校實(shí)習(xí)管理系統(tǒng)源碼解析與部署實(shí)戰(zhàn) 接手這類高校實(shí)習(xí)管理系統(tǒng)源碼項(xiàng)目對(duì)我來說算是一個(gè)挺熟悉的場(chǎng)景。SpringBootVueMyBatisMySQL這套組合幾乎是國(guó)內(nèi)高校信息管理系統(tǒng)里最常見的“標(biāo)準(zhǔn)答案”但越常見的組合越容易在細(xì)節(jié)上翻車。這篇就把我從拿到這套源碼、拆解業(yè)務(wù)、跑通流程到部署上線的完整過程捋一遍把那些文檔里不會(huì)寫清楚的坑和實(shí)際處理方案一并分享出來給準(zhǔn)備做類似系統(tǒng)或者正在看這份源碼的朋友一些參考。這套系統(tǒng)解決的是高校實(shí)習(xí)業(yè)務(wù)的全流程管理學(xué)生報(bào)崗、教師審批、企業(yè)評(píng)價(jià)、材料提交、成績(jī)?cè)u(píng)定、統(tǒng)計(jì)報(bào)表這些環(huán)節(jié)全塞進(jìn)一個(gè)前后端分離的Web系統(tǒng)里。它的核心價(jià)值在于把原本靠紙質(zhì)表單、Excel匯總、微信群通知才能跑通的實(shí)習(xí)過程落成一條清晰的數(shù)據(jù)流。適合誰參考一個(gè)是正在做畢業(yè)設(shè)計(jì)或者課程項(xiàng)目的本科生、研究生另一個(gè)是高校信息中心或二級(jí)學(xué)院想搭建實(shí)習(xí)管理平臺(tái)的開發(fā)人員再就是打算做“通用業(yè)務(wù)管理系統(tǒng)”練手、想看看成熟項(xiàng)目結(jié)構(gòu)的人。1. 項(xiàng)目全貌與技術(shù)選型思路解構(gòu)1.1 從業(yè)務(wù)痛點(diǎn)反推的系統(tǒng)設(shè)計(jì)高校實(shí)習(xí)管理這件事實(shí)際跑起來遠(yuǎn)比想象中瑣碎。學(xué)生要選實(shí)習(xí)單位、提交申請(qǐng)指導(dǎo)老師要審核崗位是否合規(guī)教學(xué)秘書要匯總學(xué)生是否落實(shí)實(shí)習(xí)企業(yè)導(dǎo)師要給學(xué)生打分最終所有數(shù)據(jù)還要匯成成績(jī)和統(tǒng)計(jì)報(bào)表。沒有系統(tǒng)之前這些數(shù)據(jù)分散在紙質(zhì)表格、聊天記錄、個(gè)人電腦的Excel里一旦涉及轉(zhuǎn)專業(yè)、休學(xué)、實(shí)習(xí)單位變更數(shù)據(jù)追溯極其痛苦。所以這套系統(tǒng)在業(yè)務(wù)設(shè)計(jì)上天生就是“多角色、多狀態(tài)、強(qiáng)流程”的形態(tài)。它不是一個(gè)簡(jiǎn)單的CRUD應(yīng)用而是圍繞“實(shí)習(xí)前—實(shí)習(xí)中—實(shí)習(xí)后”三個(gè)階段構(gòu)建的完整閉環(huán)。實(shí)習(xí)前解決崗位申報(bào)與審批實(shí)習(xí)中解決過程記錄與材料上傳實(shí)習(xí)后解決成績(jī)?cè)u(píng)定與數(shù)據(jù)歸檔。每個(gè)階段都有嚴(yán)格的狀態(tài)流轉(zhuǎn)比如崗位申請(qǐng)必須走“學(xué)生提交—教師審核—通過后生效”的路徑材料提交必須綁定到具體的實(shí)習(xí)項(xiàng)目上成績(jī)?cè)u(píng)定必須引用過程數(shù)據(jù)和最終報(bào)告。這樣一個(gè)系統(tǒng)如果從零開始設(shè)計(jì)最忌諱的就是一上來就寫代碼。正確順序應(yīng)該是反過來的先把業(yè)務(wù)角色、狀態(tài)機(jī)、數(shù)據(jù)結(jié)構(gòu)定義清楚再對(duì)照業(yè)務(wù)流去搭接口和頁面。這套源碼的整體結(jié)構(gòu)恰恰是這種“業(yè)務(wù)驅(qū)動(dòng)”的產(chǎn)物。拿到源碼后第一件事情不是急著啟動(dòng)項(xiàng)目而是打開數(shù)據(jù)庫(kù)腳本和實(shí)體類順著表結(jié)構(gòu)把業(yè)務(wù)邏輯反推一遍這一步能省下后面大量調(diào)試時(shí)間。1.2 為什么是SpringBootVueMyBatisMySQL這套組合選這套技術(shù)棧不是因?yàn)樗唷跋冗M(jìn)”而是因?yàn)樗鼧O其“穩(wěn)”。SpringBoot負(fù)責(zé)后端接口與業(yè)務(wù)邏輯是Java生態(tài)里上手成本和維護(hù)成本最平衡的框架Vue負(fù)責(zé)前端頁面與交互配合Element UI這類組件庫(kù)能在很短時(shí)間里搭出管理后臺(tái)風(fēng)格的界面MyBatis負(fù)責(zé)SQL持久層它的優(yōu)勢(shì)是SQL可控、性能調(diào)優(yōu)直接適合業(yè)務(wù)規(guī)則復(fù)雜、查詢條件多變的系統(tǒng)MySQL負(fù)責(zé)數(shù)據(jù)存儲(chǔ)學(xué)校里部署環(huán)境最普遍的就是它幾乎沒有額外的部署成本。很多人會(huì)問為什么不直接用Spring Data JPA或者換成MyBatis-Plus再或者前端用React我的看法是JPA雖然開發(fā)省事但自定義復(fù)雜查詢和SQL調(diào)優(yōu)很別扭MyBatis-Plus確實(shí)在單表CRUD上更快但如果這套源碼為了保證學(xué)習(xí)者看懂動(dòng)態(tài)SQL和多表關(guān)聯(lián)而保留原生MyBatis寫法那控制力更強(qiáng)React生態(tài)確實(shí)繁榮但Vue在國(guó)內(nèi)高校開發(fā)者和學(xué)生群體中使用基數(shù)更大遇到問題更容易找到現(xiàn)成答案。整套技術(shù)選型說明一個(gè)問題做業(yè)務(wù)系統(tǒng)技術(shù)棧的“團(tuán)隊(duì)熟悉度”優(yōu)先于“技術(shù)先進(jìn)性”。如果團(tuán)隊(duì)里大部分人只熟悉這套組合那它就是最優(yōu)解。這套源碼的價(jià)值也在這里——它用最常見的組合實(shí)現(xiàn)了完整業(yè)務(wù)流程代碼結(jié)構(gòu)天然適合當(dāng)作學(xué)習(xí)模板。1.3 源碼結(jié)構(gòu)與模塊劃分速覽拿到源碼包之后第一感受是目錄結(jié)構(gòu)規(guī)整。后端是標(biāo)準(zhǔn)的Maven工程分為controller、service、mapper、entity、config幾個(gè)包職責(zé)邊界清楚。前端是Vue CLI工程views目錄下按角色劃分頁面比如student、teacher、admin、enterprise四個(gè)子目錄這種劃分方式對(duì)應(yīng)了系統(tǒng)的四類使用角色。前端還有一套獨(dú)立的router配置用路由守衛(wèi)做登錄態(tài)校驗(yàn)。這一點(diǎn)對(duì)實(shí)際項(xiàng)目很重要后端接口有token鑒權(quán)前端路由也要同步攔截否則用戶可以通過改URL直接跳轉(zhuǎn)到未授權(quán)頁面雖然接口會(huì)403但頁面閃爍和報(bào)錯(cuò)體驗(yàn)很糟糕。源碼里已經(jīng)把頂欄、側(cè)邊欄、面包屑這些框架級(jí)組件抽出來了二次開發(fā)時(shí)改起來很方便。2. 架構(gòu)設(shè)計(jì)與核心業(yè)務(wù)模塊拆解2.1 前后端分離與分層設(shè)計(jì)詳解系統(tǒng)采用前后端完全分離的方式前端通過HTTP請(qǐng)求調(diào)用后端Restful API數(shù)據(jù)交互統(tǒng)一使用JSON格式。前端的構(gòu)建產(chǎn)物dist目錄可以后部署在Nginx上后端以SpringBoot內(nèi)嵌Tomcat方式啟動(dòng)跑在獨(dú)立端口。這里的核心好處是前后端可以獨(dú)立開發(fā)、獨(dú)立部署、獨(dú)立擴(kuò)容符合現(xiàn)代Web開發(fā)的通用實(shí)踐也避免了傳統(tǒng)JSP項(xiàng)目前后端耦合導(dǎo)致后期維護(hù)困難的問題。后端按Controller—Service—Mapper三層組織。Controller層只做參數(shù)接收、調(diào)用Service、返回結(jié)果這三件事不允許出現(xiàn)業(yè)務(wù)邏輯代碼。Service層承載核心業(yè)務(wù)規(guī)則比如審核流程的狀態(tài)判斷、成績(jī)計(jì)算的邏輯。Mapper層對(duì)應(yīng)MyBatis接口SQL寫在XML文件中多表關(guān)聯(lián)查詢、條件查詢都在這里實(shí)現(xiàn)。這種分層有一個(gè)明顯的調(diào)試優(yōu)勢(shì)當(dāng)接口返回異常時(shí)只需要定位到對(duì)應(yīng)層即可。比如查詢結(jié)果不符預(yù)期問題大概率在Mapper的SQL中如果是狀態(tài)流轉(zhuǎn)異常問題在Service層的if判斷中如果是參數(shù)格式不對(duì)問題在Controller的校驗(yàn)注解里。很多同學(xué)調(diào)試代碼時(shí)習(xí)慣打一堆斷點(diǎn)從頭跟到尾其實(shí)效率很低。利用分層定位先看接口入口、再看Service斷點(diǎn)、最后看SQL日志三步就能鎖定大部分問題。2.2 四端協(xié)同學(xué)生、教師、企業(yè)、管理員這套系統(tǒng)最大的亮點(diǎn)之一是完整覆蓋了實(shí)習(xí)業(yè)務(wù)中的四類角色而不是像很多簡(jiǎn)化版系統(tǒng)那樣只做學(xué)生端和教師端。先看學(xué)生端。學(xué)生登錄后可以看到可申報(bào)的實(shí)習(xí)崗位列表提交申請(qǐng)時(shí)填寫意向說明、實(shí)習(xí)周期、是否服從調(diào)劑等信息。實(shí)習(xí)開始后學(xué)生還需要按周提交實(shí)習(xí)周記周期結(jié)束后上傳實(shí)習(xí)報(bào)告和實(shí)習(xí)鑒定表。這里有一個(gè)細(xì)節(jié)實(shí)習(xí)周記必須是按周填寫的后端接口做了日期校驗(yàn)防止學(xué)生一次把幾周的內(nèi)容全部提交這是實(shí)際管理中一個(gè)很硬的需求。教師端主要做兩類事情一是審核學(xué)生提交的崗位申請(qǐng)判斷崗位是否與專業(yè)對(duì)口、實(shí)習(xí)單位是否合規(guī)二是查看學(xué)生提交的周記和報(bào)告給出過程評(píng)分。很多系統(tǒng)的教師端只停留在“審批”層面這套系統(tǒng)把過程管理也嵌進(jìn)去了教師在時(shí)間線上可以看到自己名下所有學(xué)生的實(shí)習(xí)進(jìn)度有學(xué)生兩周沒提交周記系統(tǒng)列表里會(huì)高亮標(biāo)記這種細(xì)節(jié)在答辯和實(shí)際演示中很加分。企業(yè)端是很多同類系統(tǒng)缺失的一環(huán)但這家源碼特意加上了。企業(yè)用戶可以注冊(cè)、維護(hù)企業(yè)信息、發(fā)布實(shí)習(xí)崗位并在實(shí)習(xí)結(jié)束后對(duì)學(xué)生的表現(xiàn)打分。崗位和學(xué)生的匹配邏輯是企業(yè)發(fā)布崗位后系統(tǒng)管理員審核通過崗位才出現(xiàn)在學(xué)生端的申報(bào)列表中企業(yè)評(píng)分提交后系統(tǒng)中合計(jì)最終成績(jī)時(shí)企業(yè)評(píng)分和教師評(píng)分按比例加權(quán)合成。這個(gè)“企業(yè)參與”的設(shè)計(jì)讓整個(gè)實(shí)習(xí)鏈條真正閉環(huán)了。管理員端則是全局管理。用戶管理、角色分配、數(shù)據(jù)字典、菜單權(quán)限、實(shí)習(xí)項(xiàng)目創(chuàng)建、統(tǒng)計(jì)報(bào)表全部在這里完成。說白了學(xué)生、教師、企業(yè)都是在“用”系統(tǒng)只有管理員在“管”系統(tǒng)。源碼里采用了基于角色的訪問控制模型用戶和角色關(guān)聯(lián)角色和菜單權(quán)限關(guān)聯(lián)權(quán)限控制粒度到按鈕級(jí)別。2.3 三條核心業(yè)務(wù)流程的狀態(tài)流轉(zhuǎn)實(shí)習(xí)管理系統(tǒng)的復(fù)雜度很大程度體現(xiàn)在流程狀態(tài)機(jī)上。我梳理出三條最關(guān)鍵的業(yè)務(wù)線。第一條是“崗位申報(bào)審核流”。流程是學(xué)生提交崗位申請(qǐng)狀態(tài)為待審核—教師審核通過狀態(tài)為通過實(shí)習(xí)生效—教師審核駁回狀態(tài)為駁回學(xué)生可修改后重新提交。這里有兩個(gè)后端校驗(yàn)必須寫一個(gè)是通過審核時(shí)檢查學(xué)生是否已有生效中的實(shí)習(xí)申請(qǐng)防止一個(gè)學(xué)生同時(shí)綁定多個(gè)崗位另一個(gè)是駁回時(shí)必須填寫駁回原因保證業(yè)務(wù)可追溯。第二條是“實(shí)習(xí)材料提交流”。流程是學(xué)生上傳周記/報(bào)告—指導(dǎo)教師查看并打分—學(xué)生確認(rèn)得分。這里涉及一個(gè)關(guān)鍵設(shè)計(jì)材料上傳后的“確認(rèn)提交”操作是不可逆的用戶確認(rèn)后PDF文件都不允許刪除。這是為了避免學(xué)生反復(fù)修改導(dǎo)致教師在審核時(shí)看到的內(nèi)容發(fā)生變化。如果有特殊修改需求必須走教師退回流程。第三條是“成績(jī)合成流”。流程是期末成績(jī)過程成績(jī)30%企業(yè)評(píng)分30%報(bào)告成績(jī)40%。這個(gè)權(quán)重是典型的實(shí)習(xí)業(yè)務(wù)配置項(xiàng)如果換一個(gè)學(xué)校權(quán)重可能完全不同所以正確做法是做一個(gè)成績(jī)權(quán)重配置表存數(shù)據(jù)庫(kù)而不是寫死在代碼里。源碼在這方面用了配置文件賦默認(rèn)值小規(guī)模使用沒問題但真要推廣部署我建議還是抽成數(shù)據(jù)庫(kù)配置表。3. 數(shù)據(jù)庫(kù)設(shè)計(jì)與核心表結(jié)構(gòu)解析3.1 關(guān)系模型設(shè)計(jì)通過外鍵串起來的實(shí)習(xí)生命周期這套系統(tǒng)的數(shù)據(jù)庫(kù)有一個(gè)很顯著的特點(diǎn)以“實(shí)習(xí)項(xiàng)目”為主軸所有業(yè)務(wù)表都圍繞它來組織。用戶表是最基礎(chǔ)的包含學(xué)生、教師、企業(yè)三類用戶的共性字段用角色字段區(qū)分身份。學(xué)生信息擴(kuò)展表存放學(xué)號(hào)、學(xué)院、班級(jí)、年級(jí)企業(yè)信息擴(kuò)展表存放單位名稱、統(tǒng)一社會(huì)信用代碼、企業(yè)規(guī)模。實(shí)習(xí)項(xiàng)目表是整個(gè)系統(tǒng)的核心它記錄一屆實(shí)習(xí)活動(dòng)的基本信息。學(xué)生申報(bào)表通過用戶ID和項(xiàng)目ID關(guān)聯(lián)到具體的學(xué)生和具體的實(shí)習(xí)項(xiàng)目崗位表與實(shí)習(xí)單位關(guān)聯(lián)。材料表通過實(shí)習(xí)記錄ID關(guān)聯(lián)到學(xué)生的一次實(shí)習(xí)過程成績(jī)表則引用學(xué)生、項(xiàng)目、材料等多個(gè)維度。這樣的關(guān)系設(shè)計(jì)帶來的好處是查詢某學(xué)生的完整實(shí)習(xí)履歷時(shí)不需要在代碼里做大量的內(nèi)存關(guān)聯(lián)幾條SQL就可以把項(xiàng)目、崗位、材料、成績(jī)?nèi)看鰜?。壞處是表的?shù)量比普通管理系統(tǒng)多不少初次接觸的人容易被表關(guān)系圖嚇住。我的辦法是拿到數(shù)據(jù)庫(kù)腳本后不要著急看每張表的字段先畫出表之間的關(guān)系理清“哪張表是主軸的延伸哪張表是業(yè)務(wù)的結(jié)果表”整體一下就清晰了。3.2 核心表結(jié)構(gòu)詳解用戶表的設(shè)計(jì)要點(diǎn)是賬號(hào)、密碼BCrypt加密存儲(chǔ)、真實(shí)姓名、角色1學(xué)生/2教師/3企業(yè)/4管理員、狀態(tài)0禁用/1正常。企業(yè)用戶需要額外綁定一個(gè)企業(yè)ID教師用戶不需要。這張表是所有查詢權(quán)限判斷的根本所以索引要建好特別是在賬號(hào)和角色這兩個(gè)字段上建立聯(lián)合索引。實(shí)習(xí)項(xiàng)目表重要的是“時(shí)間邊界”字段報(bào)名開始時(shí)間、報(bào)名結(jié)束時(shí)間、實(shí)習(xí)開始時(shí)間、實(shí)習(xí)結(jié)束時(shí)間。源碼的Service層用LocalDateTime直接比較時(shí)間所有時(shí)間都用數(shù)據(jù)庫(kù)時(shí)間而非前端傳入時(shí)間這個(gè)設(shè)計(jì)值得學(xué)習(xí)——如果用前端傳入時(shí)間客戶端改一下本地時(shí)間就能繞過報(bào)名限制。學(xué)生崗位申請(qǐng)記錄表的狀態(tài)字段是核心0待審核、1審核通過、2審核駁回、3已撤銷。這張表記錄了學(xué)生每一次申請(qǐng)的動(dòng)作和審核的結(jié)論也保留了教師填寫審核意見的字段。實(shí)習(xí)材料表的設(shè)計(jì)細(xì)節(jié)體現(xiàn)在“材料類型”字段上1周記/2月度總結(jié)/3鑒定表/4最終報(bào)告“周記材料”還要額外關(guān)聯(lián)一個(gè)周序號(hào)字段用于判斷是否連環(huán)提交。這張表大字段存的是文件存儲(chǔ)路徑而不是文件二進(jìn)制內(nèi)容本身。成績(jī)表設(shè)計(jì)相對(duì)簡(jiǎn)單學(xué)生ID、項(xiàng)目ID、企業(yè)評(píng)分、教師評(píng)分、報(bào)告評(píng)分、加權(quán)總分、評(píng)定等級(jí)。但源碼里做了一件挺好的事——每次更新成績(jī)都會(huì)保留一份快照記錄防止成績(jī)被誤改后無法追溯。3.3 字段設(shè)計(jì)上的坑與優(yōu)化建議設(shè)計(jì)數(shù)據(jù)表時(shí)最容易翻車的是“字符集”、“時(shí)間類型”和“唯一約束”。字符集方面建表語句中的字符集必須統(tǒng)一。學(xué)生姓名和企業(yè)名稱里很可能出現(xiàn)生僻字所以建議所有字符串字段統(tǒng)一使用utf8mb4字符集排序規(guī)則用utf8mb4_general_ci。不能用utf8因?yàn)閡tf8在MySQL里實(shí)際上最多存3個(gè)字節(jié)部分生僻字和特殊符號(hào)存儲(chǔ)時(shí)會(huì)報(bào)錯(cuò)或亂碼。時(shí)間類型方面不要用字符串存時(shí)間。我看到過不少老舊系統(tǒng)把時(shí)間字段設(shè)計(jì)成varchar查詢排序全亂套。用datetime類型存儲(chǔ)日期比較交給MySQL計(jì)算代碼里用LocalDateTime接收數(shù)據(jù)這是最省心的組合。唯一約束方面一個(gè)學(xué)生同一時(shí)間只能存在一條生效中的崗位申請(qǐng)這個(gè)約束除了在Service層校驗(yàn)建議直接在表上建唯一索引用“學(xué)生ID項(xiàng)目狀態(tài)”的聯(lián)合索引來控制并發(fā)寫入。否則兩個(gè)管理員同時(shí)在后臺(tái)操作時(shí)代碼層面的校驗(yàn)是防不住的只有唯一索引才能兜底。4. 關(guān)鍵功能實(shí)現(xiàn)與代碼級(jí)拆解4.1 基于JWT的登錄認(rèn)證與權(quán)限控制系統(tǒng)的登錄認(rèn)證采用JWT方案。用戶輸入賬號(hào)密碼后后端先通過BCrypt校驗(yàn)密碼校驗(yàn)通過后生成一個(gè)包含用戶ID、角色、過期時(shí)間的Token返回給前端。前端把Token存到sessionStorage里后續(xù)每一個(gè)請(qǐng)求都在Header中帶上這個(gè)Token。后端使用攔截器統(tǒng)一校驗(yàn)Token的有效性。這里有幾個(gè)細(xì)節(jié)攔截器要放行登錄接口、驗(yàn)證碼接口等公開路徑其余路徑全部校驗(yàn)Token。校驗(yàn)通過后還需要判斷該用戶是否有訪問當(dāng)前接口的權(quán)限源碼里用AOP結(jié)合自定義注解的方式做權(quán)限檢查在Controller方法上標(biāo)注RequirePermission(student:add)沒有權(quán)限時(shí)會(huì)拋出異常并由全局異常處理器統(tǒng)一返回403。實(shí)際使用中我強(qiáng)烈建議為Token設(shè)置一個(gè)合適的過期時(shí)間。太短導(dǎo)致用戶頻繁重新登錄體感很差太長(zhǎng)導(dǎo)致token泄露后風(fēng)險(xiǎn)過高。這個(gè)項(xiàng)目默認(rèn)是2小時(shí)屬于可以接受的折中方案。4.2 實(shí)習(xí)申報(bào)與審批流程的代碼實(shí)現(xiàn)學(xué)生申報(bào)崗位的接口核心邏輯代碼如下public Result submitApply(ApplyDTO dto) { // 1. 校驗(yàn)項(xiàng)目當(dāng)前是否在申報(bào)期內(nèi) LocalDateTime now LocalDateTime.now(); if (now.isBefore(project.getApplyStart()) || now.isAfter(project.getApplyEnd())) { return Result.error(當(dāng)前不在申報(bào)時(shí)間內(nèi)); } // 2. 校驗(yàn)學(xué)生是否已有生效申請(qǐng) int activeCount applyMapper.selectActiveCount(dto.getStudentId()); if (activeCount 0) { return Result.error(您已有生效中的實(shí)習(xí)申請(qǐng)); } // 3. 插入申請(qǐng)記錄狀態(tài)為待審核 ApplyRecord record new ApplyRecord(); record.setStudentId(dto.getStudentId()); record.setProjectId(project.getId()); record.setStatus(0); applyMapper.insert(record); return Result.success(); }這三步的順序很重要先校驗(yàn)時(shí)間窗口再查重最后插入。如果把查重放在時(shí)間校驗(yàn)前面一個(gè)過期項(xiàng)目的申請(qǐng)就可能被卡在第二步但用戶得到的提示是“已有生效申請(qǐng)”會(huì)誤導(dǎo)排查方向。我校這個(gè)項(xiàng)目時(shí)也走過彎路后來把校驗(yàn)順序調(diào)整成“先時(shí)間、后業(yè)務(wù)、再寫入”體驗(yàn)才正常。審批接口的邏輯類似教師審核時(shí)先判斷記錄狀態(tài)是否為待審核不是就直接拒絕操作。通過審核后將狀態(tài)改為1同時(shí)做一次學(xué)生“名下生效崗位數(shù)量”的Redis緩存清理保證下一次查重能讀到最新數(shù)據(jù)。4.3 文件上傳與材料審核實(shí)現(xiàn)實(shí)習(xí)周期里最大的數(shù)據(jù)量來自學(xué)生上傳的周記和報(bào)告。這些文件的大小和格式都要在入口處做限制。源碼里用Spring的MultipartFile接收文件服務(wù)層校驗(yàn)擴(kuò)展名和文件大小上傳成功后將文件存儲(chǔ)在服務(wù)器本地的uploads目錄并返回相對(duì)路徑給前端。這里我強(qiáng)烈建議把文件存儲(chǔ)的根路徑配置成可配置的。當(dāng)前系統(tǒng)默認(rèn)把文件存在項(xiàng)目的相對(duì)路徑下這在開發(fā)環(huán)境很舒服但一旦用Nginx部署了前端再做后端升級(jí)時(shí)相對(duì)路徑的目錄很容易被清空或者錯(cuò)亂。部署時(shí)我會(huì)把上傳目錄配置為服務(wù)器上的獨(dú)立數(shù)據(jù)盤路徑并在Nginx中增加一個(gè)靜態(tài)文件映射將/uploads/路徑指向這個(gè)目錄從而讓前端可以直接通過URL預(yù)覽上傳的文檔。文件審核的流程是教師點(diǎn)開材料列表系統(tǒng)調(diào)接口返回文件URL和材料信息教師在線預(yù)覽后填寫評(píng)分提交。材料審核接口必須綁定材料ID和審核教師ID防止一個(gè)教師修改非自己管轄學(xué)生的材料。4.4 成績(jī)?cè)u(píng)定與統(tǒng)計(jì)報(bào)表的實(shí)現(xiàn)成績(jī)合成邏輯放在Service層核心代碼思路如下public Result calculateScore(Long recordId) { ScoreRecord scoreRecord scoreMapper.selectByRecordId(recordId); BigDecimal finalScore scoreRecord.getProcessScore().multiply(processWeight) .add(scoreRecord.getCompanyScore().multiply(companyWeight)) .add(scoreRecord.getReportScore().multiply(reportWeight)) .setScale(2, RoundingMode.HALF_UP); scoreRecord.setFinalScore(finalScore); scoreMapper.update(scoreRecord); }權(quán)重的來源是配置表在管理端頁面可以調(diào)整這樣不同學(xué)院不同專業(yè)設(shè)置的規(guī)則就分開了。統(tǒng)計(jì)報(bào)表模塊則是從實(shí)習(xí)項(xiàng)目維度匯總數(shù)據(jù)比如各專業(yè)實(shí)習(xí)落實(shí)率、企業(yè)評(píng)價(jià)平均分、未提交材料學(xué)生名單等。報(bào)表查詢SQL里用到了group by和多個(gè)條件動(dòng)態(tài)拼接MyBatis的動(dòng)態(tài)SQL此時(shí)就能發(fā)揮作用了。5. 部署上線與常見問題排查5.1 本地啟動(dòng)到服務(wù)部署的完整步驟我拿到這套源碼后的啟動(dòng)路徑是這樣的。先在本地準(zhǔn)備好MySQL 8.0創(chuàng)建數(shù)據(jù)庫(kù)并執(zhí)行SQL腳本腳本里有建庫(kù)建表語句和初始數(shù)據(jù)。后端項(xiàng)目修改application.yml里的數(shù)據(jù)庫(kù)連接信息啟動(dòng)后默認(rèn)端口是8080。前端項(xiàng)目進(jìn)入目錄執(zhí)行npm install安裝依賴然后執(zhí)行npm run serve啟動(dòng)開發(fā)服務(wù)器默認(rèn)端口9528同時(shí)把vite.config.js里的代理路徑指向后端8080解決開發(fā)環(huán)境跨域問題。正式部署時(shí)前端執(zhí)行npm run build生成dist目錄將其交給Nginx托管后端用mvn clean package打包成JAR用systemd服務(wù)管理啟動(dòng)。Nginx配置里除靜態(tài)資源映射外還要做/api的代理轉(zhuǎn)發(fā)把前端請(qǐng)求轉(zhuǎn)發(fā)到后端的8080端口。這里有一個(gè)需要注意的點(diǎn)Nginx配置的client_max_body_size要根據(jù)實(shí)際情況調(diào)大否則學(xué)生上傳大文件時(shí)會(huì)得到413錯(cuò)誤。5.2 高頻問題排查手冊(cè)第一類問題是數(shù)據(jù)庫(kù)連接失敗典型報(bào)錯(cuò)是Access denied for user或Communications link failure。前者說明賬號(hào)密碼或授權(quán)有問題后者說明服務(wù)沒起來或者端口被防火墻擋住。建議先在本機(jī)用命令行客戶端實(shí)測(cè)一遍連接能連上再排查應(yīng)用配置。第二類問題是前端請(qǐng)求跨域。開發(fā)環(huán)境看瀏覽器控制臺(tái)的CORS報(bào)錯(cuò)解決方式是開啟Vue腳手架自帶的代理生產(chǎn)環(huán)境發(fā)的是Nginx報(bào)錯(cuò)解決方式是配置代理轉(zhuǎn)發(fā)。很多人會(huì)想省事在后端加CrossOrigin注解但這治標(biāo)不治本而且會(huì)把接口暴露給所有域名調(diào)用不建議這么干。第三類問題是文件上傳成功但訪問404。原因通常是存儲(chǔ)路徑和訪問映射不一致。需要記住一個(gè)原則前端訪問的URL路徑和后端實(shí)際存儲(chǔ)的磁盤路徑是兩碼事需要把二者通過配置關(guān)聯(lián)起來。第四個(gè)高頻問題是中文亂碼。從MySQL連接URL的編碼參數(shù)、到前端頁面charset、再到文件存儲(chǔ)名稱的編碼轉(zhuǎn)換必須全程統(tǒng)一UTF-8。任何一個(gè)環(huán)節(jié)斷了數(shù)據(jù)就會(huì)出現(xiàn)問號(hào)或者亂碼。6. 實(shí)戰(zhàn)心得與后續(xù)擴(kuò)展建議做完整套系統(tǒng)的二次開發(fā)我的感受是這個(gè)項(xiàng)目最大的價(jià)值不在于它的代碼量多而在于它的業(yè)務(wù)完整度。從角色劃分、流程控制、文件處理到統(tǒng)計(jì)報(bào)表幾乎覆蓋了高校實(shí)習(xí)管理的全部核心環(huán)節(jié)而且代碼風(fēng)格一致命名規(guī)范非常適合在此基礎(chǔ)上做二次擴(kuò)展。我想額外再說一個(gè)很多人容易忽略的點(diǎn)就是系統(tǒng)運(yùn)行的性能問題。高校實(shí)習(xí)管理系統(tǒng)的并發(fā)量通常不高但如果上傳的資料文件很多數(shù)據(jù)庫(kù)里的材料記錄表會(huì)迅速膨脹。建議定期做歷史數(shù)據(jù)的歸檔比如把畢業(yè)學(xué)生的實(shí)習(xí)數(shù)據(jù)遷移到歸檔表保留快速查詢的數(shù)據(jù)控制在兩年以內(nèi)。后續(xù)如果要擴(kuò)展我個(gè)人覺得有兩個(gè)方向最實(shí)用。第一個(gè)是消息通知模塊當(dāng)前系統(tǒng)只在業(yè)務(wù)狀態(tài)變化時(shí)記錄日志沒有主動(dòng)通知能力。接入郵件或微信消息模板把審核結(jié)果、材料駁回、實(shí)習(xí)截止時(shí)間推送給相關(guān)用戶整個(gè)系統(tǒng)的體驗(yàn)感會(huì)大幅提升。第二個(gè)是移動(dòng)端適配學(xué)生提交周記、看審批結(jié)果這些高頻操作其實(shí)更適合在手機(jī)上完成。可以保留現(xiàn)有的Vue2管理端單獨(dú)開發(fā)一個(gè)小程序端或H5端復(fù)用后端接口成本并不高。最后再分享一個(gè)小技巧如果你打算把這套源碼作為畢業(yè)設(shè)計(jì)或者實(shí)訓(xùn)項(xiàng)目提交建議在項(xiàng)目文檔里增加一份完整的數(shù)據(jù)字典說明把每一張表的業(yè)務(wù)含義、狀態(tài)字段取值說明都寫清楚。評(píng)審老師對(duì)這種“底層數(shù)據(jù)設(shè)計(jì)意識(shí)”非常認(rèn)可這也是開發(fā)人員從“寫代碼”走向“做設(shè)計(jì)”的分水嶺。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久精品高清无码一区| 黄污污污污| 91爱欧美| 欧美十八禁视频| 天天干夜夜一操| 超碰人妻中文在线| 老熟女搡BBBB搡BBBB视频| 久久99国产综合精品女同| 婷婷六月色开| 成人AV素股で擦久久| 99热精品青草在线| 偷拍在线观看视频| 亚洲好色人妻| 欧美一区二区男人天堂| AV一起草在线| 国产福利影视| 歐美一級亂黃99在綫精品| 欧美亚洲高清不卡| 精品午夜福利| 99色热国产视频精品| www.色操逼| 国产农村妇女精品一| 亚洲涩图欧美| 18禁看网站一区| 免费视频a级毛片免费视频| 人妻日日夜夜精品| 无套后入双马尾| 先锋影音av先锋一区| aaa一级黄片| 91色伦综合| 丝袜美腿av女优在线| 亚洲无码一二三区| 97精品久久久久久久| 亚洲性天堂| 精品.99999| 欧美视频边做饭边橾| 999国产精品999| 69人妻精品丰满熟女区| 黑人免费福利视频| 国内精品久久久久影院亚洲| 自拍偷拍2025在线观看| 性爱av在线免费观看| japan日本高清乱xxxx| 搡老女人老91妇女老熟女| 亚洲黄色网址视频| 91在线视频免费中出| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 操操啪| 96国产污污污丝袜| 十八禁一区二区无码观看| 精品久久99| 岛国在线免费视频| 91美女国产在线| 天天澡天天爽日日AV| 粘花网06av视频| 嫩呦国产一区二区三区AV| 好涩综合| 久久风骚城市| 亚洲天堂日本| 91五月天| 人妻密肉在线观看| 色黄污美女啪啪啪免费网站| 97干在线看| 国内三级自拍小视频在线观看| av东京热男人的天堂| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 婷婷五月天色色| 日韩欧美经典在线观看| 97欧美色综合| 天天噜| 亚欧毛片基地国产毛片基地| 日本新免费二区三区| 天天躁日日躁AAA片李宗瑞| 国产suv精品一区二区四| 先锋音影AV| 久久老子无码午夜伦不卡| 六月丁香五月婷婷| 四虎精品亚洲| 台湾成人无码AV| 久久xxxx| 色悠久久久av| 国产精品久久久久久久无码AV| 日本操大逼| 99久久婷婷| 一区二区三区四区五区高清无码永久视频| 色97国产69香蕉| 超碰97护士| 综合操逼| 日韩欧美中文字| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 五月天婷婷色色| 日日黄色三级网站| 久久男人天堂| 成人av免费观看| 99999精品成人| 夜夜爽夜夜摸夜夜操免费视频| 亚洲毛片基地专区| 水澄无码AV| 精品国产国产AV| 亚洲性爱成人| 丝袜性亚洲| 99热欧美| 欧美性爱另类综合| 9精品久久| 大学生口爆吞精| 人妻熟女一区二区| 国产久久免费精品视频| 91新在线欧美| 91色狼| AV综合中文字幕干| 欧美色交| 亚洲男人天堂2019| v91av| 国产97视频免费观看| 97 超碰 人人做 人人爱| 91老女人| 久热伊人99re| 人妻一区二区三区四区视频| 国产精品一二三区福利| 精品国产Av无码久久久伦古装| 欧美劲爆视频一区二区| 国产精品乱码久久久、久久| 睡产熟女乱伦| 青娱乐黄色录像| 婷婷亚洲五月***久久| 一本久久精品中文字| 日日夜夜精品| 综合亚洲欧美| 在线观看AV不卡| 欧美 亚洲精品首页| 亚洲成人av色网| 97欧美| 欧美三级不卡| 久久av色| 欧美日韩222| 国产精品久久久久久久久久久久| 蜜桃成人1区2区3区| 成人精品久久| 亚洲 欧美 天天| 欲香欲色| 天天干夜夜肏| www成人啪啪18秘 免费| 舔足天天操天天射| 操一区| 国产不卡免费在线视频| 亚洲天堂资源在线| 天天综和| 男人的天堂一区三区| 亚洲成人AB| 亚洲欧美精品一区天堂久久 | 日本123区操B视频| 亚洲在线欧美| 麻豆天美在线喷水AV| 国产又操| 91啦人妻| 久久伊人东京热| 日韩成人色图| 约操熟妇| 日韩精品-原创伙伴| 好淫网一二三视区| 免费久久精品麻豆一区二区av| 日逼97| 久久仑合| 天天影视网综合少妇| 国产AV色黄看到爽| 综合久久久久久久综合网| 亚洲文学偷乱拍啪啪啪啪| 香蕉久久国产AV一区二区| 超碰在线人妻中文字幕| 成人资源中文字幕在线观看| 韩日精品福利视频一区不卡在线免| 美女被艹尤物视频| 福利操逼| 张柏芝国产一区在线观看| 色天堂在线观看| 男人的天堂不卡一区二区 | 人人摸人人干| 天天日日夜夜| 中文字幕精品区先锋资源| 探花视频免费观看国产专区| 亚州精品人妻一二三区| 97欧美色资源| 亚州成人a∨| 久久久中文| 国产精品熟女九色九色蜜臀| 欧美巨大性舒爽顶到了| 东京热,男人的天堂| 看黑丝美女操逼青青网站| 九九九九九九视频免费| 色婷婷国产精品一区在线观看| 色九九九九久| 亚洲激情网一二三四区| 涩五月婷婷| 国产成人精品无码久久| 翔田千里Av在线| 久久久无码精品人妻二区| 老女人老91妇女老热女| 富二代亚洲精品99| 91逼逼女人91| 情侣操 逼视频99| 亚洲。日韩。欧美| 18一区二区三区| 色色色色综合网| 日韩乱伦视频| 日本 欧美 国产一区| 亚洲最新av无码成人精品区| 中文字幕美女91| 老熟女乱伦片| 中文字幕精品一区二| 久久婷婷电影网| 日日爱99| 国产精品国产自产高清AV| 国内精品嫩模A∨私拍小视频| 亚洲熟妇A V黑人| 亚洲人久久久久日| 免费AV中文网在线观看| 中文字幕一二区二三区人妻专区| 18禁中文字幕| 国产又色又爽又舒服的三级视频| 激情色色| 亚洲AV无码| 99xav| 欧亚久久偷拍视频| 人伦四五区| 青青草原成人| 2019天天干| TS人妖另类精品视频系列 | 性爱AV天堂| 婷婷精品国产一区二区三区日韩| 欧美一品道| 高颜值美女口爆高潮浪叫| 欧美亚洲系列| 乱性AV| 成在线人在线观看视频| aaaa少妇高潮大片| 偷窥自拍亚洲色图| 91成人久久| 亚洲极品| 久草尤物| 日日夜夜干| 色鬼在线综合| 78m啪啪啪| 久久日韩精品一区二区| 国产人妻天天干精品| 亚洲另类在线观看| 久久精品天美| 有码专区最新中文字幕有码| 久草免费福利在线播放| 五月综合激情网| 女人一区| 欧美天天综合网| 亚洲黄色视频在线观看视频| 操逼网免费无码视频| 久久男人的天堂国产| 东北女人操比视频| 永久免费观看的毛片的网站| 国产区性爱在线视频秋霞豆 | 综合九九| 国产精品又黄又猛又粗| 亚洲AV成人无码久久精品播放| 国产欧美美女免费观看视频| 伊人午夜福利视频| 国产操逼视频在线观看| 91粉芽高清在线一区二区| 96免费视频在线| 亚州男人天堂| 亚洲国产欧美中文永久| 日日摸日日碰| 国产av强奸美女| 高潮内射在线| 校园春色AV天堂| 日韩视频啪啪| 啊啊啊在线观看免费视频| 国产9熟妇视频网站| 久久久精品中文字幕爱豆| 五月天成人综合| 美国三级日本三级久久99| 欧美高清无码免费视频高清版| 午夜丁香| 男人天堂网址| 啊啊啊com| 春色综合网| 黄网色一区二区三区四区精品| 69综合网| 亚洲 欧美 日韩 国产一区二区| 91精品大奶人妻| 四虎影视国产精品| 综合自拍| 加勒比色99999| 日韩ab网| 色欲Av人妻精品一区二| 天天干天天日天天射黄色| 人妻欧美| 人妻在线臀日韩| 成·人免费午夜在线观看| AV九九| 色婷婷日韩精品一区二区三区| 性在久久久久久| 天天日美女的B| 久久受www免费人成| 亚洲射综合网| 日韩人妻播放| 久久精品男人的天堂| 欧美日韩国产中文精品字幕自在自线| 日韩毛片9| 六月婷婷综合| AAAA级日本片免费视频| 精品一区96| 久96热在线观看视频| 久久国产精品91| 免费在线看黄片av| 中文久久一区| 在线一道啪| 97精品视频在线播放| 激情接吻视频久久久久久| 午夜久久久| 九九亚洲视频| 豆花视频操逼网址| 加勒比av网| 九九热免费视频| 97在线免费观看| 天天亚洲综合| 欧美日韩成人在线| 久久在线观看免费视频| 骚货操死你| 亚洲另类色图片| 亚洲精品一二区| 91日日夜夜| 九九成人| 亚洲一区二区三区不卡国产欧美| 熟妇人妻一二三区免费| 色呦呦、国产精品| 日本熟妇人妻中出视频| 四虎午夜影院| 欧美在线第五页| 久久9精品视频| 亚洲一本色道中文无码aV天美| 老司机香蕉| 高树玛利亚无码流出| 日本欧美一区二区三区免费| 久久精品黄色| 男人天堂网手机版婷婷| 人人澡人人爽人人精品| 天天插天天操| 精品久久久久久中文字幕三区| 超碰精品97| 自拍视频大全亚洲专媒视频/一区二区三区 | 日本十八禁免费看污网站| 亚洲男人天堂视频| 久久神马影院| AV天天综合| 顶级丝袜熟女一区二区三区| 日韩特级毛片免费观看全集| 精品人妻久久久久一区二区三区| 伊人久久AV诱惑悠悠| 日本99一区二区| 超碰人人色| 久久riav中文精品| 久久只有精品| 啊啊啊免费| 国产嫩草精品A88AV| 日日夜夜国产综合| 久久久9品一区二区三区| 在线观看综合精品亚洲| 人人摸人人摸人人干| 久久精品午夜国产亚洲AV无码| 久久久亚洲熟妇资源| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 人妻中文字幕日韩电影| 波多野42部无码喷潮在线观看| 人妻少妇精品视频一区二区三区| 好爽要喷了| 亚洲男人的天堂网| 91强在线播放| 超碰在97| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 伊人丝袜美腿高跟在线观看高清| 精品国产乱码久久久久久影片| 久久精品国产亚洲AV成人直播| 国产欧美精选激情视频| 成人性爱av.com| 大学生口爆吞精| 极品销魂美女一区二区| 久久色网| 美女裸体无遮挡永久免费观看网站| 99re6国产精品99re| 欧美亚洲厕所精品偷拍91| 啊啊啊好湿久久| 伊人久久国产免费观看视频| 丝袜狠狠草尤物人妻av91| 美女黄页| 大香蕉综合| 美女久久久久久久| 久久视频,这里只有精品| 久久久专区| 久久视频,这里只有精品 | 久区视频| 国产精品扒开腿做爽爽爽视频| www.久久超碰| 91网站18禁| 日本成a人v网站在线观看| 欧美精品三级黄片| 久久久久人妻二区精品叶可怜| 免费一级精品啪啪视频| 免费看A片毛毛片在线播| 无色无码| 婷婷五月天综合网| 啊啊啊啊啊操我视频| 久草色悠悠在线视频| 久久综合av| 96超碰网| 免费观看网黄| 新版天堂中文资源8在线| 99∨VTV| 亚洲、日韩、综合、另类| 色五月天AV| 91视频综合在线| 亚洲丝袜在线观看| 久久久久亚洲三级电影| 久99| 91爱做| 亚洲一区二区av| 久久丁香久草综合网| 91人妻做a观看视频| 亚洲欧美国产日本一区二区三区| 97操97色| 九t超碰| 国产午夜精品理论片一二三区区| 久久久久久久国产| 中出20p| 精品蜜乳AV免费观看| JIZZJIZZ国产精品喷水| 色婷婷成人综合| 久久久久幕乱码| 日本午夜久久电影| 另类欧美| www.色综合| 亚洲国产一区二区三区四区国产| 欧美综合骚| 91影视亚洲| 伊人加勒比| 婷婷视频在线免费观看| 欧美日韩婷婷中文| 蜜臀久久99精品久久久久| 国产成人亚洲精品无码古代早漏男| 丁香五月激情啪啪| 欧美影音在线| 一个国产在线综合网站| 95精品在线| 999熟女精品| 日韩无码视频黄色| 混色激情av| 久久线上视频免费看| 日韩图区 偷拍| 后入内射蜜桃臀| JuliaAnn丝袜熟女系列| 国内自拍 日韩激情 99| 任我爽在线视频免费观看| 人人看黄色视频| 99亚亚热| 男女啊啊啊| 日本性爱少妇| 茄子社区国产精品| 日本色色的视频| 九九国产| 欧美性爱三区二区| 97超碰精品成| 久久久久久久国产视频| 9精品久久| 久操网无码在线| 9久久美女首页| 亚洲成人黄色在线观看| 久久亚洲不卡一区二区三区| 国语对白露脸XXXXXX| 亚洲最大黄网| 国产精品一区av在线| 中文字幕88av在线| 亚洲综合另类小说色区亚洲成av人片在www | 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 亚洲国产成人7777| 亚洲美女30b| 2017人人操,人人摸| 一区| 韩国黄片aaaa| 欧美日韩妖精91com| oumeisetupian| 自拍偷拍 日韩欧美| 蜜臀AV成人精品蜜臀AV久久| 精品人妻一区二区视频| 欧美极品色| 久久激情五月| 亚欧无码线免费观看视频| 久久超碰、| 曰韩操B| 中文字幕日韩情色| 久久午夜伦| 波多野结衣AV无码一区| 亚洲诱惑天堂| 亚洲欲色9532548967一区| 精品无码一区二区三区| 97超碰国产亚洲精品| 天天日天天舔天天喷天天射| 国产一区二区在线播放量| 伊人网在线视频| 国产免费永久精品无码| 亚洲视频中文一区| 人妻 欧美亚洲| 97精品国产97久久久久久免费| 99这里只有精品国产| 骚日日av| 亚洲综合小视频小说在线观看 | 蜜臀在线网站| 久久色一区| 深夜激情无码| 翔田千里A片一区二区| 东京热不卡视频| 中文色综合| 色爱三区| 日韩有码 一区二区三区| 操曰本熟女| 91亚·色| www激情| 中文字幕在线观看永久| 亚洲欧美另类图片| 青草影院内射高潮| 曰本精品久久久| 天美麻花大全视频| 99久国产精品午夜性色福利| 久久久啊啊啊| 国产AB视频| 亚洲美女30b| 欧苏综合色综合| 怡红院一区二区熟女人妻| 国产精品久久久吖| 91天堂| 精品白丝一区| 性交一区二区在线播放| 欧美高潮在线| 日韩pv中文| 丁香久久| 九九色图| 成人av动漫在线观看| 精品高清一区二区三区三州| 无码免费在线观看黄色片| 福利视频网站| 中文字幕激情小说| 99操逼| 性色高清..……| 中文字幕人乱码中文字的预防方法 | 国产一二三福利视频网| 一本一道久久综合久久| 日韩黄色小说| 69久久| 91久热| 麻豆色99999| 日本黄色天堂| 99色在线| 九九热只有精品| 亚洲图片视频小说| 午夜福利 成人 91| 天天操天天干美女网址导航| 人妻夜爽夜夜爽| 美女t无毒不卡不卡| 中出在线视频| 久久精品成人| 国产女人与拘做受视频免费| 青娱乐国产精品| 国产区性爱在线视频秋霞豆| 美女被艹尤物视频| av九九| 怡红院视频在线| 偷窥自拍亚洲色图| 在线视频一区二区传媒| 伦在线97| 亚洲性刺激| 亚洲Av诱惑| 国产v亚洲v日韩v欧美v片另类| yw尤物av无码点击进入麻豆| 少妇一级婬片免费放一级a性色.| 乱伦av麻豆| 综合激情婷婷| 一区二区三区男女操逼黄色小电影| 10000部十八禁看电影| 国产女人9999| 啊v在线观看视频| 中国AAAAAA黄色片| 26uuu国产成人综合| 99re在线观看| 一区二区三区四区姦女| 日本加勒比无码专区一二三| 丰满人妻-区二区三区| 大香蕉乱级| 国产精品视频白浆免费| 91无码中出人妻视频| 熟妇亚洲一区二区三区| 另类专区加勒比| 96久久久久| 做爱A级亚欧| 五月天激情网站| 97碰碰日本乱偷人妻中文的| 黄页| 男女激情黄色网址| 国产精品久久9| 精品一区99999| 99无码狠狠久久| 五月天婷精品激情| 在线天堂999| 深爱伊人影院| 美女极品一区二区三区| 久久久影院| 九九九国产精品| 国产第12页| 男人天堂一区二区| 91碰碰| 强奸乱伦AV一天堂网| 欧美 亚洲 偷拍自拍| 日本 免费 一区二区三区 久久香蕉| 久久久久久久久9| 夜夜操青青草| 黄色小说亚洲| 久操免费观看| 午夜精品视频777| 免费看污网址| 亚洲欧美国产中文视频| 国产精品交换一区二区| 欧美色吧综合| 亚洲五码一区二区三区| 绑缚麻绳人妻寝取完整版| 亚洲色欧美| 欧美躁死她一区二区| 欧美综合传媒| 日本一区二区成人在线| 神马久久69| 亚洲 欧美 制服 另类 自拍| 欧美日韩人人精品| av网站免费看| 天美av在线观看| 超碰97国产欧美| 天天躁日日躁AAAXX| 果冻传媒A片一二三区 | 国模久久在线| 黄色性爱网网| 大色网久久| 国产免费一区在线观看| 九热超碰| 亚洲国产成人高清在线| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 久久婷婷国产一区二区色| 久草网站免费在线观看| 国产免费久久精品99re韩国| 天堂а√在线最新版在线| 亚洲视频小说| 日本东京热加勒比久久| 91国内外在线| 九九无码视频| 久久女人| 18一区二区三区| 69XX一中文字幕人妻91| 日韩激情视频| japan日本高清乱xxxx| Aa东京男人的天堂| 久久亚洲av成人无码国产| 久草看看看| 精品妇女一区二区三区| 日韩三级在线观看网站| 97bbn| 欧美一级A片在线看视频性色| 精品丰满熟妇人妻一区| 精品国产乱码久久久久久久久1| 一区二区中文| 亚洲色悠悠久久88| 国模精品一区二区三区苹果色戒 | 日本99视频| 欧美v日韩v亚洲v最新在线| 麻豆久久久久久久久丝袜| 日韩在线一区二区| 超碰导航97| 99re这里只有精品3| 国产乱伦亚洲| 操久久久久| 人妻出轨一区二区三区| 久草网站免费在线观看| 久久高潮妇女视频| 75大香蕉| 六月丁香啪啪| 日本一区二区三区免费观看| 综合天天。| 久久久工口| 97人人操人人摸人人爱| 啊啊啊啊好爽好舒服一区二区易域| 中文字幕精品丝袜| 韩日无码在线观看| 美国日韩黄片| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 天天色黄色影院天天操| 殴美色网| 高清肉丝中文无码| 91麻豆天美国产欧美日| 美女操逼福利视频| 人妻精品视频一区二区三区| 色香综合天天影视综合| 日韩熟女精品无码专区一区二区| 8050无码八戒| 青娱乐欧美激情一区二区| 日韩十八禁| 91美女視頻| 91九九九逼| 91啪啪| 亚洲中文日韩欧美大香蕉视频| 日韩欧美日韩| 欧洲亚洲人妻无码高清久久三区四区| 天天舔九色婷婷| 口爆综合网| 7777欧美成是人在线观看| 人妻无一区二区三区| 啊啊啊啊免费视频| 久久久国产护士丝袜美腿一| 欧美72网页| 亚洲s在线观看| 天天爽夜夜操| 九月婷婷久久| 国产视频不卡在线观看| 操逼国产免费| av强奸乱轮| 国产成人拍国产亚洲精品| 超碰欧美97| 97网色| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 9久综合网| 综合久久婷婷| 久久伊人大香蕉| 精品国产www久久| 操逼1区| 日韩美女操b| 欧美日本中字另类在线| 午夜.DJ高清在线观看免费7 | 丝袜喷水在线| 免費人妻夜夜爽天天爽爽一区| 五月天社区| 欧美一区91大爱| 97人人草| 亚洲天天艹| 青青草在线成人视频| 天天肏美女| 日韩AV噜噜噜一区二区三区四区| 91天美传媒在线观看| 丝袜狠狠草尤物人妻av91| www.狠狠干.coom| 操www| 色欧美在线| 五月天久久人妻| 72av视频| 亚洲情欲| 91大神精品长腿在线观看网站| 精品视频一区二区| 亚洲性爱成人| 精品人体无圣光凹凸| 日本视频在线观看污污污| 最新日韩黄片| 国内91熟女人妻丝袜天天精品视频在线 | 日韩精品字幕| 日韩Va亚洲va欧美Ⅴa久久| 人妻乱仑一区二区三区| 99超级碰免费视频| 丰满少妇一区二区三区专区| 丝袜综合| 久草毛片| 午夜成人爽爽爽爽A片李冰冰| 最新无码国产| 国产精品婬乱一级毛片彝族| 久久久久9| 老女人日韩美91| 欧美国产有色电影| 99久久久| 久久精品午夜国产亚洲AV无码| 青娱乐亚洲自拍| 99热在线观看| 九九九九日本| 久久精品一区一起草| 欧美色宗合| 操逼片中文| 密桃99999| 亚洲日产专区婷婷| 激情欧美97| 日韩性爱毛片操骚逼| 欧美日韩成人在线| A男人的天堂| 9久精品| 亚洲超碰AV| a男人的天堂| 另类老少妇| 日韩熟女操逼| 97在线视频观看| 裸体美女久久久| 淫荡网址| 久久久国产成人一区二区三区在线| 亚洲情色1区| 99久久久| 中国一区二区亚洲人妻| 中文字幕天天天天天| 天天天肏屄肏屄肏屄欧美欧美| 亚川综合视频| 亚洲国产精品乱码在线观看| 男人的天堂三级| 中文字幕日韩电影人妻| 色综合一区二区三巨| 韩日自拍| 久久青青草原免费视频| ′ !γ}丶。。久久精品欧美一区二区三区| 午夜无码熟妇丰满人妻| 少妇一级无码精品| renqi久久久久久久久久久久| 国产女人9999| 成人av影院在线观看| 97久精品| 亚洲天堂资源在线| 妺妺跟我一起洗澡没忍住| 一本一首道人妻少妇免费久久| 97欧美精品| 色九区| 久久久性少妇| 日美免费黄片| 久久久成人精品| 亚洲,日韩,欧美,成人播放| 操人妻丝袜高跟| 亚洲有码视频二区| a网站免费观看| 精品十八在线观看| 影音先锋国产精品| 精品人妻视频一区二区在线播放 | 麻豆天美在线喷水AV| 超碰国产精品久| 区二区亚洲婷| 一级人妻性爱视频| 天天综合香 ld视频| 日本黄大片在线观看视频| 男人的天堂2018东京热啪啪啪| 欧美 色 亚洲| 精品一区二区啪啪啪| 夜夜精品视频| 无码heyzo高清一区| 亚洲欧美成人网站AAA| 亚洲另类久操网| 婷婷操视频| 一区 欧美 日韩 麻豆| 国产多人在线观看视频| 大香网伊人久久综合网eew| 亚洲?V无码专区在线电影| 最新av在线| 人人干人人操人人..com| 人人澡人人澡人人| 青青草中文-久久青草精品一区二区三| 欧美草草高清日韩视频| 色婷婷在线视频| 啊啊啊好想要| 国产女同性恋视频| 亚洲AV无码黄色强奸| 欧美色图片欧美色图| AV九九| 2024黄色视频| 97在线无精品| 乱色视频中文字幕| 色汉综合| 97爱b| 操逼网站视频漫画国产| 男人天堂2030| 日韩在线97| 亚洲色诱惑| 秋霞午夜成人福利片片| 中文幕97| 日韩婷婷| 久久久久久亚洲Av无码精| 亚州欧美总和| 96精品在线| 一本大道不卡一二三区| 九九热只有精品| 日本一二区免费| 色狠狠 - 百度| 超碰99re| 91久久国外网| 亚洲欧美校园另类春色| 大香蕉在线视频15| 黄页视频网站野外| 操逼操逼操| 97久久国产亚洲精品超碰热| 国产在线76页| 少妇xx精品| 综合网天天| 国产AV天美传媒一区二区三区 | 骚熟女吞| 欧美精品四区| 久久精品国产亚洲AV片多多 | 国产67194| 91精品亚洲内射孕妇| 97精品全部| 亚洲揄拍网| 人妻激情偷乱视频一区二区三区| 伦伦成年午夜免费视频| 色网色网色网色网色网色| 久操影视| 国产美女口爆吞精| 超碰久久性爱| 亚洲中文字幕av| 3028国产精品| 17c在线成人免费A片观看| 福利视频网站| 亚洲综合色图欧美| 大香蕉92| 男人的天堂在线| 欧美狠狠弄| 日韩美脚一区二区网站| 日韩性爱播放| 日韩av不卡在线观看| 丁香六月激情| 人妻一区二区三区视频| 九九九热| 91国模| 午夜噜噜噜| 男人的天堂三级| 欧美国产操逼| 午夜后入| 歐美性天天| 色爱综合网欧美| 久久国色天香香蕉| 久草久热| 国产女上位好爽在线| 夂久色| 99精品在线播放| 9999免费精彩视频| 全球成人中文在线| 自拍大香蕉乱插| Blackedraw视频一区二区| 无码天天操| 亚洲天堂人妻熟妇视频| 午夜男人av| AV网站高清无码在线观看| 欧美日韩不卡传媒| 午夜精品久久久久久久男人的天堂 | 久热影视| 骚女高跟AV在线| 久热无码| 免费1级a做爰片观看| 9九九国产| 品亲网欧美品亲网| 极品一区二区三区免费| 人人色人人操在线| 青草一区二区| 试看60秒 爽| 激情综合网亚洲| 立川理惠被中出无码| 大二网站亚洲| 午夜亚洲国产理论秋霞| 性久久| 人人摸人人摸人人干| 蜜臀AV网站| 久久九九99| 亚洲一区二区麻豆影院| 亚洲AV乱码专区国产噜噜亚洲 | 外站AV在线| 婷婷超| 免费福利视频中文字幕| 99精品成人免费看| 日本天天操| 日本精品人妻少妇一区二区| 人妻在线大香蕉| 亚洲AV人人澡人人爱| 欧色网址| 无码高清操逼网址| 婷婷五月天激情网| 99色综合| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚洲色人妻综合| 色五月第四色| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 五十路二区在线 | 激情五月综合| 综合久欧洲| 久久久一区二区| 天天综合网~91| 天天做日日做| 久草成人福利导航| 91欧美综合在线| 搡老女人老91二区| 911av网站免费观看| 久操大香蕉手机视频在线看| 亚洲天堂人人妻| 国产免费内射视频| 爽极品影院| 99久久这里只有精品| 欧美性天天影院| 欧美一区二区三区不卡高清视频| 国产黄色 A 片免费看| 欧美日韩国产传媒在线精品| 日韩亚洲97| 午夜性生活av免费在线看| 久久久久国产精品片区无码直播| 九九精品美女高溯喷水| 91美女视频。| 欧洲成人性爱视频| 极品粉嫩一区二区| 亚洲 欧美 日本 国内 首页| 熟女乱伦二区| 我中文字幕6区| 国产白丝精品在线观看| 操逼网站地址| 天天综合网AV91| 亚洲超碰97| 日韩精品一区的| 精品人妻一区二区视频| 17c在线成人免费A片观看| 四虎影视国产精品| 亚洲欧美不卡线| 亚洲五码一区二区三区| 亚洲 91 在线| 久久超碰天天| 人人看欧美性爱| 国产日韩精品一区二区三区| 精品日日人妻| 亚欧高清v| 久草精品一区| 成人av影院在线观看| 91狠婷| 午夜经典| 色色婷婷丁香| 91网站18+| 日本高清有码网址视频| 国产熟女二区| 中国国产精品一区视频| 伊人丝袜美腿高跟在线观看高清| 成人怡红院| 久久久久成人蜜桃精品| 干B网| 91黑丝在线播放| 精品国产乱子伦一区二区三区,精品一| 一区二区三区精品视频| 九九亚洲色在线观看| 操逼视频亚洲| 色偷偷人人玩人人舔人人操人人摸人人爽 | 色吧91| 天天影视色香色欲| 久久国产乱子伦精品免费女,网站| 激情五月婷婷综合| 欧美日韩久久精品爱爱| 色丁香五月婷婷| 东京热大香蕉| 日韩伦理久 久久 清纯| 久久久久久久免费A片国产成a人亚洲精∨品无码| 天天干,夜夜爽| 亚洲资源站| 亚洲精品一区二区三区新线路| 日韩三级伊人| 无码人妻丰满熟妇奶水区毛片| 亚洲成人黄色在线观看| 久久超碰98| 国产精品激情久久久久久久| 国产精品3| 日本片日本片祼观看网站在线看中文版网页在线看| 天天综合欧美黑人| 色五月婷婷麻豆在| 欧美性爱精品七区| 欧美日韩婷婷中文| 国产亚洲日本精品在线| 亚洲资源一区| 欧美超碰96| 强奸乱伦av电影| 中文字幕视频在线观看| 9久久9综合| 黄片com.| 久久久91| 丝袜综合色图| 亚洲欧美在线观看2021| 超碰99在线| 人人综合| 国产又操| 亚洲无码偷拍| 亚洲中亚日激情视频| 色97| 黄页视频网站野外| 蜜臀久久99精品久久久久久-DVD| 女人一区| av国产无码| 日韩一级性爱无码| 中文字幕免费在线观看| 欧洲Au麻豆| 日韩女模中文造逼| 国产无马在线| 亚洲人精品久久久| 亚洲精品天天影视综合网| ?亚洲伊人伊成久久人综合网| 国产视频第二页| 日韩无码AB| 男人的天堂2018东京热啪啪啪| 欧美一区二区三区入口| 欧美亚洲丝袜人妻制服中文99| 美女诱惑在线一区| 伊人网av| 色婷婷九月天天综合| 99久久精品国产系列| 97超碰欧美手机在线| 美女淫穴| 男人夜色天堂ss| 亚洲天堂7777| 欧美传媒| 凹凸精品熟女在线观看| 中文字幕午夜精品久久久| 日韩三级在线观看mp4| 麻豆久久久一区二区| 激情综合二| 秋霞免费无码视频日韩A片| 国产一线二线三线av| 中文一区二区| 久久99手机免费视频| 深夜操逼网| aaa一级黄片| 日韩Va亚洲va欧美Ⅴa久久| 国产精品999aaa| 东京热91| 色97国产69香蕉| 小草av不卡亚洲二区| 激情露脸爱| 日本天天吊| 亚洲国产精品久久久久久久久久| 日韩一区二区三区四区五区| 亚洲欧美在线观看无码| 家庭乱伦麻豆| 97在线免费观看视频| 亚洲图片欧美偷拍| 色原狠狠天天天| 一区超碰一区| 97在线日韩中文字幕| AV色图| 男人的天堂日本东京热| 国产二区三区粉嫩在线| 韩国三级三级BD在线| 肥臀熟女福利视频一区二区| 欧美成人贴图| 国产精品久久久久久无码红治院| 黄色无码高清黄色无码网站| 精品黄色电影| 国产在线播放成人免费| 欧美色就是色| 78久久| 国内外内射高清视频| 亚洲情色欧美| 久久久999| 欧美日韩国产成人高清| 日韩国产精品人妻无码久久久| 呦呦一区| 精品日韩人妻视频| 亚洲成人黄色在线观看| 无码久久亚洲高清,| 人人操人人摸人人看人人插| 韩国手机不卡无码三级视频| 青青免费在线视频一区| 伊人丁香五月婷婷| 日va操| 超碰91在线| 日韩在线视频1234| 午夜天堂精品久久| 99精品高潮|