免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

基于SpringBoot的遙感影像共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

基于SpringBoot的遙感影像共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 1. 項(xiàng)目概述與核心需求解析1.1 這個(gè)系統(tǒng)到底要解決什么問題每年到了畢業(yè)設(shè)計(jì)選題季總有不少同學(xué)來找我聊——說學(xué)校給的選題清單里躺著一個(gè)“遙感影像共享系統(tǒng)”看上去跟普通的圖書管理、商品管理系統(tǒng)差不多但真打開參考文獻(xiàn)一看又是柵格數(shù)據(jù)、又是金字塔切片、又是空間索引直接被嚇退。這個(gè)基于SpringBoot的遙感影像共享系統(tǒng)從編號(hào)后綴來看就是很典型的Java畢業(yè)設(shè)計(jì)項(xiàng)目但“共享”這兩個(gè)字意味著它不只是做簡單的文件上傳下載更需要圍繞遙感影像的元數(shù)據(jù)管理、可視化預(yù)覽、權(quán)限控制等方面去設(shè)計(jì)這也是它區(qū)別于一般CRUD系統(tǒng)的關(guān)鍵所在。我說說我的理解。遙感影像這個(gè)東西本質(zhì)上是帶有地理空間屬性的大文件一張高分辨率影像動(dòng)輒幾百M(fèi)B甚至幾個(gè)GB直接扔到數(shù)據(jù)庫里肯定不合適也不可能像普通圖片一樣用img標(biāo)簽直接預(yù)覽。所以這個(gè)系統(tǒng)最核心的問題可以拆成三個(gè)第一影像文件怎么存、怎么管理既要控制存儲(chǔ)成本又要保證訪問效率第二影像的元數(shù)據(jù)拍攝時(shí)間、傳感器類型、覆蓋區(qū)域、分辨率、坐標(biāo)系等怎么結(jié)構(gòu)化存儲(chǔ)讓用戶能精準(zhǔn)檢索第三普通用戶能不能在線預(yù)覽大影像而不需要先把整個(gè)文件下載下來。如果把這三個(gè)問題想清楚了后面所有的編碼工作其實(shí)都是在圍繞它們做具體的方案落地。這個(gè)系統(tǒng)的目標(biāo)群體也很明確一類是產(chǎn)生數(shù)據(jù)的遙感數(shù)據(jù)生產(chǎn)部門比如某地理信息中心、某測繪實(shí)驗(yàn)室另一類是需要在科研或項(xiàng)目中用這些數(shù)據(jù)的高校師生、研究機(jī)構(gòu)。系統(tǒng)價(jià)值在于打通“影像數(shù)據(jù)入庫—元數(shù)據(jù)編目—在線檢索—權(quán)限化下載/預(yù)覽”的完整鏈路而不是讓數(shù)據(jù)躺在硬盤里成為孤島。1.2 關(guān)鍵詞拆解與邊界劃定我先把這個(gè)項(xiàng)目可能涉及的關(guān)鍵詞和技術(shù)邊界梳理一下方便后面每個(gè)章節(jié)按圖索驥關(guān)鍵詞對應(yīng)模塊說明遙感影像數(shù)據(jù)管理核心支持TIFF、GeoTIFF、IMG等常見柵格格式共享共享與權(quán)限包括登錄認(rèn)證、角色授權(quán)、影像公開/私有/指定共享SpringBoot后端技術(shù)基座負(fù)責(zé)接口層、業(yè)務(wù)層、持久層的整體架構(gòu)元數(shù)據(jù)檢索與管理拍攝日期、傳感器、云量、坐標(biāo)范圍等結(jié)構(gòu)化字段在線預(yù)覽可視化模塊提供影像縮略圖、瓦片加載、基礎(chǔ)地圖交互特別提醒一點(diǎn)畢業(yè)設(shè)計(jì)里做遙感相關(guān)系統(tǒng)的同學(xué)很容易被“空間分析”這個(gè)方向帶偏非要在系統(tǒng)里塞一堆GIS算法進(jìn)去比如NDVI植被指數(shù)計(jì)算、影像分類、圖形疊加分析。我見過好幾個(gè)項(xiàng)目做到最后論文寫得像算法研究系統(tǒng)本身連最基本的影像上傳和檢索都卡頓答辯時(shí)被老師一問數(shù)據(jù)流就答不上來。這個(gè)項(xiàng)目名稱里“共享系統(tǒng)”四個(gè)字已經(jīng)劃定了邊界——核心是管理與共享不是算法分析。空間分析可以做但只應(yīng)該作為附屬的小亮點(diǎn)絕不能搶了主線。2. 整體框架設(shè)計(jì)與技術(shù)選型思路2.1 為什么SpringBoot是畢業(yè)設(shè)計(jì)的最佳選擇先聊框架選型?,F(xiàn)在后端技術(shù)五花八門有人用Python的Django、Flask還有人用Go的Gin但Java生態(tài)的SpringBoot依然是這個(gè)項(xiàng)目最穩(wěn)妥的主選。原因有三點(diǎn)一是市場驗(yàn)證充分。在各類企業(yè)級(jí)應(yīng)用里SpringBoot占據(jù)了相當(dāng)大的市場份額這意味著你遇到任何問題基本上都能在社區(qū)里找到解決方案而不是自己一個(gè)人對著報(bào)錯(cuò)發(fā)呆。對畢設(shè)來說“可完成”比“最先進(jìn)”重要得多。二是與前端、數(shù)據(jù)庫的集成成本低。SpringBoot自帶的Spring Data JPA或MyBatis-Plus能極大簡化數(shù)據(jù)庫操作Spring Security能快速搭建認(rèn)證授權(quán)體系內(nèi)置Tomcat讓部署也變得簡單這些都是畢設(shè)項(xiàng)目能按時(shí)交付的保障。三是后續(xù)可擴(kuò)展性好。等真正工作了你會(huì)發(fā)現(xiàn)大多數(shù)Java后端項(xiàng)目都是SpringBoot生態(tài)提前把SSM到SpringBoot的思維轉(zhuǎn)過來對以后的職業(yè)發(fā)展也是加分項(xiàng)。2.2 分層架構(gòu)單體應(yīng)用的邊界感我見過很多畢業(yè)設(shè)計(jì)項(xiàng)目一開始就想著微服務(wù)把系統(tǒng)拆成文件服務(wù)、用戶服務(wù)、檢索服務(wù)好幾個(gè)模塊結(jié)果開發(fā)一周之后發(fā)現(xiàn)光服務(wù)間調(diào)用和配置就能把人逼瘋。這個(gè)遙感影像共享系統(tǒng)用標(biāo)準(zhǔn)的單體分層架構(gòu)就夠了重點(diǎn)是在模塊內(nèi)部做好邊界分隔。我推薦的分層方式是這樣的Controller層只負(fù)責(zé)接收請求、參數(shù)校驗(yàn)、返回結(jié)果不寫任何業(yè)務(wù)邏輯Service層承擔(dān)核心業(yè)務(wù)邏輯比如影像元數(shù)據(jù)的組裝、權(quán)限校驗(yàn)策略、文件存儲(chǔ)的調(diào)度Mapper/Repository層只做數(shù)據(jù)持久化操作不關(guān)心上層業(yè)務(wù)DTO/VO層用于接口數(shù)據(jù)的傳輸和展示避免直接把數(shù)據(jù)庫實(shí)體暴露給前端工具類與配置層封裝文件處理、坐標(biāo)解析、JWT工具等橫切邏輯。這樣做的好處是答辯時(shí)思路非常清晰。老師問你“權(quán)限控制怎么設(shè)計(jì)的”你能直接說出是在Service層做了攔截校驗(yàn)還是用Spring Security過濾器實(shí)現(xiàn)的問你“文件存儲(chǔ)怎么解耦的”你能講清楚是通過策略模式在本地存儲(chǔ)和OSS存儲(chǔ)之間切換。這種“能講清楚”的能力很多時(shí)候比代碼本身更能體現(xiàn)你真正做了設(shè)計(jì)。2.3 技術(shù)棧全景圖我列一份參考技術(shù)棧清單供你選型時(shí)對照層次技術(shù)選型選型理由前端Vue 3 Element Plus LeafletVue 生態(tài)上手快Leaflet 輕量且支持影像瓦片展示后端SpringBoot 2.7.x穩(wěn)定版本兼容性好社區(qū)資源豐富ORMMyBatis-Plus代碼生成方便單表CRUD幾乎零SQL數(shù)據(jù)庫MySQL 8.x開源成熟InnoDB對事務(wù)和并發(fā)支持良好緩存Redis存儲(chǔ)影像縮略圖索引、登錄會(huì)話、熱數(shù)據(jù)緩存文件存儲(chǔ)本地磁盤 / MinIO畢設(shè)階段用本地即可預(yù)留MinIO切換接口權(quán)限認(rèn)證Sa-Token / JWT輕量級(jí)比Spring Security學(xué)習(xí)成本低很多影像處理GDAL / JTS / ImageIO讀取GeoTIFF頭文件信息、生成縮略圖給一個(gè)實(shí)操建議如果你對文件存儲(chǔ)到底用本地還是OSS猶豫不決就先用本地磁盤但一定把OSS的切換接口設(shè)計(jì)好。定義一個(gè)StorageService接口本地實(shí)現(xiàn)和OSS實(shí)現(xiàn)各寫一個(gè)類通過配置文件切換。這招在論文里寫“存儲(chǔ)策略的可擴(kuò)展設(shè)計(jì)”非常加分實(shí)際做起來卻很簡單。3. 數(shù)據(jù)庫設(shè)計(jì)與核心數(shù)據(jù)模型3.1 表結(jié)構(gòu)規(guī)劃影像元數(shù)據(jù)與其他業(yè)務(wù)表的關(guān)系數(shù)據(jù)庫設(shè)計(jì)是這種管理系統(tǒng)最見功底的地方也是答辯時(shí)老師最愛問的部分。我建議把核心表拆成以下幾種第一張是user用戶表字段包括id、username、password、nickname、avatar、role_type區(qū)分管理員/普通用戶/審核員、status、create_time。密碼一定要用BCrypt加密存儲(chǔ)千萬別明文。第二張是image_info影像信息表這是系統(tǒng)的主表承載遙感影像的核心元數(shù)據(jù)id主鍵original_name原始文件名file_path存儲(chǔ)路徑thumbnail_path縮略圖路徑sensor_type傳感器類型比如GF-1、Landsat8、Sentinel-2capture_date拍攝日期cloud_cover云量百分比resolution空間分辨率單位米coord_min_lon、coord_min_lat、coord_max_lon、coord_max_lat影像覆蓋范圍外包矩形坐標(biāo)coordinate_system坐標(biāo)系描述比如WGS84 / CGCS2000file_size文件大小band_count波段數(shù)量upload_user_id上傳用戶status審核狀態(tài)待審核/已發(fā)布/已下架view_count、download_count統(tǒng)計(jì)字段description備注說明。第三張是share_record共享記錄表。如果要做精細(xì)化的權(quán)限管理共享范圍不能只有公開和私有兩種要有“指定用戶共享”的中間態(tài)。字段包括id、image_id、share_user_id被共享人、share_permission預(yù)覽/下載、expire_time。第四張是download_log下載記錄表記錄哪個(gè)人在什么時(shí)間下載了哪張影像方便做數(shù)據(jù)溯源。第五張是operation_log操作日志表記錄登錄、上傳、審核、刪除等關(guān)鍵操作。這里有一個(gè)特別容易踩的坑不要把影像文件路徑直接暴露給前端數(shù)據(jù)庫只存相對路徑前端拼接完整URL時(shí)要通過后端接口做鑒權(quán)校驗(yàn)。否則沒有登錄的人只要猜到URL就能直接下載原圖共享系統(tǒng)的權(quán)限控制就形同虛設(shè)了。3.2 數(shù)據(jù)索引與空間檢索的取舍影像檢索是這個(gè)系統(tǒng)區(qū)別于一般文件管理系統(tǒng)的核心功能。在畢業(yè)設(shè)計(jì)這個(gè)體量下我建議做兩種檢索方式來組合屬性檢索按傳感器類型、拍攝日期范圍、云量、分辨率等元數(shù)據(jù)字段進(jìn)行組合條件篩選用SQL的where拼接即可空間范圍檢索用戶在Leaflet地圖上畫一個(gè)矩形框返回所有外包矩形與該矩形相交的影像數(shù)據(jù)。如果你的數(shù)據(jù)庫使用了MySQL空間范圍檢索可以直接用ST_Intersects等空間函數(shù)實(shí)現(xiàn)配合空間索引效果就很好了。如果你不想引入復(fù)雜的空間SQL也可以退一步用最小經(jīng)度小于框最大經(jīng)度、最小緯度小于框最大緯度之類的四條件相交判斷雖然不那么“專業(yè)”但實(shí)現(xiàn)簡單、運(yùn)行可靠畢業(yè)答辯完全夠用。我實(shí)際做過測試在百萬級(jí)影像元數(shù)據(jù)量的規(guī)模下加不加空間索引的查詢耗時(shí)差距能有幾十倍所以coord_min_lon這些字段上務(wù)必建聯(lián)合索引。4. 核心功能模塊與技術(shù)實(shí)現(xiàn)細(xì)節(jié)4.1 大文件分片上傳與秒傳機(jī)制遙感影像文件動(dòng)輒幾百M(fèi)B傳統(tǒng)的一次性multipart文件上傳方式基本不可行。一是后端內(nèi)存壓力大二是網(wǎng)絡(luò)稍有波動(dòng)就得重新傳。實(shí)際項(xiàng)目里我強(qiáng)烈建議直接上分片上傳斷點(diǎn)續(xù)傳。分片上傳的思路是這樣的前端把文件用File.slice按固定大小比如10MB切成多個(gè)分片每個(gè)分片單獨(dú)發(fā)送一個(gè)上傳請求攜帶fileMd5、chunkIndex、chunkCount等參數(shù)后端接收分片并暫存到臨時(shí)目錄當(dāng)所有分片上傳完成后前端發(fā)起合并請求后端按分片序號(hào)將二進(jìn)制內(nèi)容合并成完整文件并計(jì)算整體文件的MD5如果合并之前發(fā)現(xiàn)同一MD5的文件已經(jīng)存在就直接返回已存在的路徑完成“秒傳”。上面提到的MD5我做一下解釋它是一個(gè)類似“文件指紋”的唯一字符串內(nèi)容不同指紋就不同用來判斷兩個(gè)文件是否完全一樣。這不是高深技術(shù)但做好交互體驗(yàn)的細(xì)節(jié)能做到很流暢比如記住上次傳到了哪個(gè)分片、失敗自動(dòng)重試。這個(gè)模塊在論文里可以重點(diǎn)寫因?yàn)樗峭ㄓ玫墓こ棠芰Χ皇呛唵握{(diào)用后才有的功能。這里有一個(gè)關(guān)鍵點(diǎn)合并文件時(shí)建議用RandomAccessFile的seek方法按分片序號(hào)寫入正確位置不要循環(huán)讀然后寫到一個(gè)輸出流里否則分片亂序覆蓋會(huì)導(dǎo)致整個(gè)文件損壞。另外合并完一定要校驗(yàn)總文件大小和分片數(shù)是否吻合并刪除臨時(shí)分片不然臨時(shí)目錄就變成垃圾堆了。4.2 遙感影像元數(shù)據(jù)解析用GDAL還是自己寫解析器影像上傳后如果讓用戶手動(dòng)填寫傳感器類型、坐標(biāo)系、覆蓋范圍這些信息不僅體驗(yàn)差還容易出錯(cuò)。正確的做法是從影像文件本身讀取元數(shù)據(jù)。常用的方案是GDALGeospatial Data Abstraction Library它能解析絕大多數(shù)柵格格式也支持處理地理空間數(shù)據(jù)。主要做法是在Java中通過JNI調(diào)用GDAL需要引入gdal.jar和本地動(dòng)態(tài)庫或者用tifffile之類的庫做輕量級(jí)解析。但GDAL的本地依賴在Windows和Linux下的配置都比較麻煩——你要下載對應(yīng)版本的庫文件配好環(huán)境變量一不留神就版本沖突。我建議分兩步走第一步對于GeoTIFF文件用Java自帶的ImageIO讀取文件頭可以拿到寬、高、波段數(shù)、位深等基礎(chǔ)信息第二步如果需要讀取坐標(biāo)系、仿射變換參數(shù)等更專業(yè)的元數(shù)據(jù)再接入GDAL的解析命令。比如用gdalinfo命令行輸出XML格式的元數(shù)據(jù)然后Java程序解析XML這樣能繞開直接的本地庫調(diào)用配置更省心。在元數(shù)據(jù)解析這塊我踩過的最經(jīng)典的一個(gè)坑是GeoTIFF的坐標(biāo)系信息里有一個(gè)GeoKeyDirectoryTag很多文件在寫這個(gè)Tag時(shí)格式并不完全符合規(guī)范導(dǎo)致部分庫解析直接報(bào)錯(cuò)或返回空值。所以解析代碼一定要做空值兜底解析不到就提示用戶手動(dòng)補(bǔ)充。千萬不要讓一個(gè)元數(shù)據(jù)解析失敗阻斷整個(gè)上傳流程。4.3 在線預(yù)覽與瓦片化處理在線預(yù)覽是體現(xiàn)系統(tǒng)“共享”價(jià)值的重要一環(huán)。你把一張遙感影像上傳上去用戶在列表頁點(diǎn)一下如果前端直接彈出一個(gè)下載鏈接那體驗(yàn)完全不合格——人家要的是“像Google Earth一樣能拖動(dòng)、縮放、看細(xì)節(jié)”的影像瀏覽體驗(yàn)。實(shí)現(xiàn)思路是瓦片化將原始大影像按規(guī)則切成若干小圖塊比如256x256像素按縮放級(jí)別建立目錄層級(jí)0/0/0.png表示第0級(jí)第0行0列1/0/1.png表示第1級(jí)第0行1列前端用Leaflet加載瓦片URL模板就可以實(shí)現(xiàn)平滑縮放與平移。畢業(yè)設(shè)計(jì)階段如果影像數(shù)量可控可以做一個(gè)簡化的方案在上傳時(shí)用GDAL生成一個(gè)金字塔縮略圖大圖導(dǎo)出為若干級(jí)分辨率縮略圖前端根據(jù)縮放級(jí)別展示對應(yīng)的縮略圖更多級(jí)的交互用Leaflet插件離線支撐。我先說明一下“瓦片”這個(gè)概念就是把一整張大地圖切成小方塊網(wǎng)格每一級(jí)縮放進(jìn)一副更粗略的圖瀏覽器只需要加載視野內(nèi)的小方塊就行了而不必一次加載整幅巨圖這也是在線地圖能流暢瀏覽的原因。還需要注意瓦片化處理是CPU密集型任務(wù)大批量上傳時(shí)會(huì)產(chǎn)生較高的后臺(tái)壓力。我給個(gè)建議用生產(chǎn)-消費(fèi)模式處理瓦片化任務(wù)上傳接口把影像ID放進(jìn)Redis隊(duì)列或數(shù)據(jù)庫任務(wù)表后臺(tái)固定線程池去消費(fèi)并異步生成瓦片避免上傳請求被長時(shí)間占用。4.4 權(quán)限控制共享系統(tǒng)的生命線“共享”兩個(gè)字意味著數(shù)據(jù)要在一定范圍內(nèi)流動(dòng)但如果誰都能下載全部影像那就不叫共享叫裸奔。我建議權(quán)限模型至少分三層第一層是角色管理員可以審核、下架、管理所有影像普通用戶可以上傳、管理自己的影像游客只能瀏覽公開影像。第二層是數(shù)據(jù)權(quán)屬每張影像都有一個(gè)歸屬用戶只有上傳者和管理員能編輯、刪除。通過upload_user_id關(guān)聯(lián)在Service層做歸屬校驗(yàn)。第三層是共享策略公開——所有人可見可下載私密——僅上傳者可見指定共享——被加入共享記錄的用戶可以預(yù)覽或下載。這里的控制可以在查詢列表時(shí)動(dòng)態(tài)拼接SQL也可以用Spring Security的PreAuthorize注解做方法級(jí)控制。我實(shí)際項(xiàng)目里的做法是寫一個(gè)ImageAccessService它對外提供checkViewPermission()和checkDownloadPermission()兩個(gè)核心方法。所有涉及影像詳情的接口入口處必須調(diào)用校驗(yàn)邏輯然后用統(tǒng)一異常處理器捕獲AccessDeniedException返回403。千萬不要把權(quán)限判斷分散寫在各個(gè)Controller里否則遺漏一個(gè)入口就是安全漏洞。5. 實(shí)操過程與核心環(huán)節(jié)實(shí)現(xiàn)5.1 創(chuàng)建SpringBoot工程并集成基礎(chǔ)依賴我用一個(gè)標(biāo)準(zhǔn)步驟來說明怎么起步。這一步不難但依賴版本之間容易出兼容問題。第一步在pom.xml里引入核心starter。我建議這樣規(guī)劃!-- Web 支持 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- 持久層 -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.3/version /dependency !-- 數(shù)據(jù)庫 -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.33/version /dependency !-- JWT 認(rèn)證 -- dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-api/artifactId version0.11.5/version /dependency第二步在application.yml里配置數(shù)據(jù)源、MyBatis-Plus、Redis連接、文件存儲(chǔ)路徑server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/remote_sensing?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver servlet: multipart: max-file-size: 20MB max-request-size: 500MB redis: host: localhost port: 6379 mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl storage: local: root-path: D:/rs-data/ type: local第三步編寫一個(gè)簡單的RestController測試接口確認(rèn)工程能正常啟動(dòng)并連接數(shù)據(jù)庫。這一步不要跳過我就見過不少人上來就寫一堆業(yè)務(wù)代碼結(jié)果最終連啟動(dòng)都報(bào)錯(cuò)排查了一周發(fā)現(xiàn)是依賴版本沖突。5.2 實(shí)現(xiàn)分片上傳的后端接收邏輯分片上傳的后端核心代碼看起來不復(fù)雜但有幾個(gè)邊界條件必須處理好。RestController RequestMapping(/api/upload) public class ChunkUploadController { private final StorageService storageService; private final ImageInfoService imageInfoService; PostMapping(/chunk) public Result uploadChunk(RequestParam(file) MultipartFile file, RequestParam(fileMd5) String fileMd5, RequestParam(chunkIndex) Integer chunkIndex, RequestParam(chunkCount) Integer chunkCount) { // 1. 保存分片到臨時(shí)目錄 String tempDir storageService.getTempPath(fileMd5); File chunkFile new File(tempDir, String.valueOf(chunkIndex)); file.transferTo(chunkFile); // 2. 如果這是最后一個(gè)分片觸發(fā)合并 if (chunkIndex.equals(chunkCount - 1)) { boolean complete storageService.mergeChunks(fileMd5, chunkCount); if (complete) { // 3. 合并完成后解析元數(shù)據(jù)、生成縮略圖、創(chuàng)建影像記錄 File mergedFile storageService.getMergedFile(fileMd5); ImageMeta meta ImageMetadataParser.parse(mergedFile); ImageInfo imageInfo ImageInfoAssembler.from(meta, mergedFile); imageInfoService.save(imageInfo); return Result.success(上傳完成, imageInfo.getId()); } } return Result.success(分片已接收); } PostMapping(/check) public Result checkUpload(RequestParam(fileMd5) String fileMd5, RequestParam(fileSize) Long fileSize) { // 秒傳校驗(yàn)如果存在相同MD5且文件大小一致則直接返回已有影像ID ImageInfo existing imageInfoService.lambdaQuery() .eq(ImageInfo::getFileMd5, fileMd5) .eq(ImageInfo::getFileSize, fileSize) .one(); if (existing ! null) { return Result.success(秒傳成功, existing.getId()); } return Result.success(需要上傳); } }這里的合并邏輯我再補(bǔ)充一個(gè)底層細(xì)節(jié)為了保證大文件的分片合并不會(huì)內(nèi)存溢出合并時(shí)應(yīng)使用通道Channel或者緩沖流分批寫入而不是Files.readAllBytes()一把梭把幾百M(fèi)B一次性加載進(jìn)內(nèi)存。5.3 影像列表與空間范圍檢索的前后端聯(lián)調(diào)列表頁是用戶接觸最多的頁面交互體驗(yàn)直接影響答辯效果。后端接口的設(shè)計(jì)邏輯是GetMapping(/images) public Result pageList(RequestParam(defaultValue 1) Integer page, RequestParam(defaultValue 12) Integer size, RequestParam(required false) String sensorType, RequestParam(required false) String startDate, RequestParam(required false) String endDate, RequestParam(required false) Double minLon, RequestParam(required false) Double minLat, RequestParam(required false) Double maxLon, RequestParam(required false) Double maxLat) { LambdaQueryWrapperImageInfo wrapper new LambdaQueryWrapper(); // 屬性條件 wrapper.eq(StringUtils.hasText(sensorType), ImageInfo::getSensorType, sensorType); wrapper.between(StringUtils.hasText(startDate), ImageInfo::getCaptureDate, startDate, endDate); // 空間范圍條件 if (minLon ! null maxLon ! null) { wrapper.apply(coord_min_lon {0} AND coord_max_lon {1}, maxLon, minLon) .apply(coord_min_lat {0} AND coord_max_lat {1}, maxLat, minLat); } // 權(quán)限過濾只能看到公開的或自己上傳的或被共享的 wrapper.and(w - w.eq(ImageInfo::getStatus, published) .or().eq(ImageInfo::getUploadUserId, currentUserId()) .or().inSql(ImageInfo::getId, getSharedImageIdsSql(currentUserId()))); // 分頁 PageImageInfo pageResult imageInfoService.page(new Page(page, size), wrapper); return Result.success(pageResult); }前端Leaflet部分的關(guān)鍵代碼我貼一個(gè)示意const map L.map(map).setView([35.0, 105.0], 5) L.tileLayer(https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png).addTo(map) // 矩形框選擇 let bounds null L.rectangle(bounds, { color: #ff7800, weight: 1 }).addTo(map) map.on(boxzoomend, (e) { const b e.boxZoomBounds const query { minLon: b.getWest(), maxLon: b.getEast(), minLat: b.getSouth(), maxLat: b.getNorth() } loadImages(query) })需要注意空間范圍檢索一定要使用索引并且把經(jīng)度緯度的比較條件合拼在同一個(gè)apply的SQL片段里避免MyBatis-Plus生成多個(gè)OR條件導(dǎo)致索引失效。5.4 縮略圖生成與瓦片簡易處理的代碼示例生成縮略圖這一步我用的是ImageIO加Graphics2D縮放的方式先說明這個(gè)是相對簡化的方案如果你做的是GeoTIFF大圖建議結(jié)合GDAL命令完成。我做一種輕量實(shí)現(xiàn)的示范public String generateThumbnail(File source, String outputDir, int targetWidth) throws IOException { BufferedImage image ImageIO.read(source); // 計(jì)算等比縮放高度 int targetHeight (int) Math.round(image.getHeight() * (targetWidth * 1.0 / image.getWidth())); BufferedImage thumbnail new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB); Graphics2D g2d thumbnail.createGraphics(); g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g2d.drawImage(image, 0, 0, targetWidth, targetHeight, null); g2d.dispose(); String thumbPath outputDir File.separator thumb_ System.currentTimeMillis() .jpg; ImageIO.write(thumbnail, jpg, new File(thumbPath)); return thumbPath; }這段代碼運(yùn)行在小文件場景下沒問題但我要說實(shí)話如果影像尺寸特別大ImageIO.read()會(huì)把整幅圖讀進(jìn)內(nèi)存極容易觸發(fā)OutOfMemoryError。正規(guī)做法是用ImageIO的ImageReader按需解碼縮略圖設(shè)置ImageReadParam的setSourceRegion或者直接調(diào)用GDAL生成金字塔。這是很多畢設(shè)項(xiàng)目的隱藏雷區(qū)如果你提前規(guī)避掉答辯時(shí)能講出這套原理面試官和老師都會(huì)高看你一眼。6. 常見問題與排查技巧實(shí)錄6.1 啟動(dòng)報(bào)錯(cuò)與依賴沖突速查表我整理了開發(fā)過程中最高頻的五類啟動(dòng)期問題直接對照排查報(bào)錯(cuò)現(xiàn)象常見原因解決思路Failed to configure a DataSource未配置數(shù)據(jù)源或YAML縮進(jìn)錯(cuò)誤檢查application.yml的spring.datasource配置及MySQL服務(wù)是否啟動(dòng)Consider defining a bean of type XXXMapperMapper接口沒加Mapper注解啟動(dòng)類加MapperScan或在每個(gè)Mapper接口上標(biāo)注端口被占用8080被其他服務(wù)占用netstat -ano定位進(jìn)程并關(guān)閉或修改端口MyBatis-Plus分頁失效缺少分頁插件配置配置MybatisPlusInterceptor并注冊PaginationInnerInterceptor文件上傳提示超過大小限制spring.servlet.multipart.max-file-size不匹配修改配置遠(yuǎn)程影像大文件多走分片接口6.2 上傳成功但列表不顯示問題出在哪里這是一個(gè)很經(jīng)典的綜合問題場景文件本身傳到服務(wù)器了臨時(shí)目錄里的分片也合并成了完整文件但列表頁就是查不到新數(shù)據(jù)。我經(jīng)歷過一次最后排查出兩個(gè)問題第一個(gè)是元數(shù)據(jù)解析失敗導(dǎo)致事務(wù)回滾。影像文件雖然上傳到了磁盤但由于格式比較特殊ImageMetadataParser拋出了NullPointerException導(dǎo)致事務(wù)回滾數(shù)據(jù)庫里沒有生成image_info記錄而磁盤上的文件卻“殘留”了。解決方式是在元數(shù)據(jù)解析失敗后捕獲異常仍然保存一條狀態(tài)為“元數(shù)據(jù)待補(bǔ)充”的數(shù)據(jù)同時(shí)清理異常文件。第二個(gè)是查詢條件限制了可見范圍。列表接口有權(quán)限過濾默認(rèn)只能看到已發(fā)布的公開影像。新上傳的影像狀態(tài)是“待審核”上傳者自己理論上能看到但如果你用了管理員賬號(hào)去測試而管理員沒有歸屬該影像就必然看不到。所以要區(qū)分兩個(gè)場景管理端看全部數(shù)據(jù)普通用戶端看可見數(shù)據(jù)。6.3 在線預(yù)覽失敗瓦片加載不出來怎么排查這個(gè)問題的排查路徑很固定先從后端日志看瓦片請求有沒有到達(dá)接口。沒到——檢查前端請求URL拼接是否正確尤其是{z}/{x}/{y}的層級(jí)順序。到了——檢查后端返回的瓦片文件是否存在。若確認(rèn)文件存在但前端渲染模糊或花屏多半是瓦片坐標(biāo)系不統(tǒng)一前后端對影像范圍的經(jīng)緯度計(jì)算方式不一致。我給一個(gè)實(shí)操心得瓦片調(diào)試階段先用瀏覽器的開發(fā)者工具直接訪問瓦片地址看返回的Content-Type是否為image/png或image/jpeg。如果返回了JSON錯(cuò)誤說明URL路由或者權(quán)限校驗(yàn)有問題優(yōu)先排查這兩處。這樣才能快速定位是鏈路問題還是渲染問題。6.4 數(shù)據(jù)庫表導(dǎo)入亂碼與時(shí)空坐標(biāo)數(shù)據(jù)異常MySQL連接字符串一定要帶characterEncodingutf8否則在Windows下導(dǎo)入中文字段會(huì)出現(xiàn)亂碼。還有一個(gè)容易忽略的是serverTimezone不配置的話在8.x版本啟動(dòng)階段會(huì)拋出時(shí)區(qū)異常。對于坐標(biāo)數(shù)據(jù)異常我遇到過經(jīng)緯度解析出NaN的情況原因根子在于GeoTIFF里GeoTags的仿射變換參數(shù)讀取失敗。解決辦法就是做校驗(yàn)入庫前判斷四個(gè)坐標(biāo)值是否是有限數(shù)值并且經(jīng)度范圍是否在[-180,180]之間、緯度是否在[-90,90]之間。如果有異常就把該影像標(biāo)記為“待修復(fù)”而不是直接拒絕整個(gè)文件。7. 項(xiàng)目打磨建議與答辯亮點(diǎn)7.1 三個(gè)低成本高回報(bào)的加分功能如果核心功能都做完了還有余力我建議優(yōu)先考慮下面三個(gè)功能。它們每個(gè)工作量都不大但對系統(tǒng)觀感的提升非常明顯第一個(gè)是操作日志與數(shù)據(jù)統(tǒng)計(jì)后臺(tái)。管理員能看到每日上傳量、下載量、活躍用戶數(shù)前端用ECharts畫幾張趨勢圖。這不難但能讓老師直觀感受到系統(tǒng)的“管理閉環(huán)”已經(jīng)建起來了。第二個(gè)是影像對比模式。在預(yù)覽模塊中支持同時(shí)加載兩期影像比如同區(qū)域不同月份的數(shù)據(jù)通過透明度滑桿進(jìn)行對比。Leaflet里有現(xiàn)成的插件可以做圖層透明度控制實(shí)現(xiàn)難度不高但能直接呼應(yīng)“遙感影像”的業(yè)務(wù)特色效果比千篇一律的CRUD列表頁亮眼得多。第三個(gè)是數(shù)據(jù)批量導(dǎo)入。支持用戶上傳一個(gè)ZIP壓縮包后端解壓后逐張解析并導(dǎo)入影像元數(shù)據(jù)。很多真實(shí)場景下遙感生產(chǎn)部門都是批量出數(shù)據(jù)的這個(gè)功能會(huì)讓系統(tǒng)顯得更有工程意識(shí)。7.2 答辯時(shí)技術(shù)亮點(diǎn)怎么講不心虛答辯官最反感的就是“代碼全是復(fù)制粘貼”的痕跡。但反過來如果你能把系統(tǒng)里的幾個(gè)設(shè)計(jì)決策講出前因后果即使代碼本身沒那么完美也完全能通過。我給你列三個(gè)角度角度一存儲(chǔ)抽象層為什么要做。你可以說“文件存儲(chǔ)我抽取了一個(gè)StorageService接口本地實(shí)現(xiàn)和對象存儲(chǔ)實(shí)現(xiàn)可以自由切換。當(dāng)前畢設(shè)環(huán)境用的是本地磁盤如果部署到云環(huán)境只需要增加一個(gè)實(shí)現(xiàn)類不需要改任何業(yè)務(wù)代碼?!边@是實(shí)際做過的設(shè)計(jì)不是編的。角度二分片上傳為什么選擇10MB作為分片大小。你可以說“分片太小會(huì)產(chǎn)生太多HTTP請求增大網(wǎng)絡(luò)開銷分片太大在網(wǎng)速不穩(wěn)時(shí)容易超時(shí)重傳。實(shí)測下來10MB在校園網(wǎng)帶寬下是一個(gè)平衡點(diǎn)?!苯嵌热龣?quán)限校驗(yàn)為什么放在Service層而不是Controller層。你可以說“Controller是HTTP入口但Service層是業(yè)務(wù)復(fù)用邊界。如果只做Controller校驗(yàn)內(nèi)部調(diào)用、定時(shí)任務(wù)這些非HTTP入口就會(huì)繞過權(quán)限造成數(shù)據(jù)越權(quán)?!?.3 從畢設(shè)到真實(shí)項(xiàng)目的演進(jìn)路徑做完這個(gè)系統(tǒng)如果還想往深走我按實(shí)際工作中的演進(jìn)路徑給你指個(gè)方向。畢設(shè)階段用MySQL存元數(shù)據(jù)、本地存文件是夠的但真實(shí)遙感共享平臺(tái)遲早要面對海量文件和在線計(jì)算的需求。第一步是引入對象存儲(chǔ)。把分散的本地文件統(tǒng)一收編到MinIO或云對象存儲(chǔ)里存儲(chǔ)路徑仍然存在MySQL但接口走SDK訪問用預(yù)簽名URL。好處是文件不用再擔(dān)心磁盤爆掉也方便做CDN加速。第二步是數(shù)據(jù)湖與元數(shù)據(jù)目錄服務(wù)。當(dāng)影像數(shù)量達(dá)到百萬級(jí)MySQL的元數(shù)據(jù)檢索會(huì)變得吃力。這時(shí)可以考慮引入Elasticsearch或?qū)iT的元數(shù)據(jù)目錄方案實(shí)現(xiàn)更靈活的全文檢索、多字段聚合分析甚至按業(yè)務(wù)標(biāo)簽做智能推薦。第三步是矢量柵格一體化。遙感平臺(tái)如果只管理柵格影像是不夠的往往還需要管理矢量邊界比如行政區(qū)劃、地塊信息。這時(shí)候就要考慮引入空間數(shù)據(jù)庫把矢量數(shù)據(jù)與柵格數(shù)據(jù)統(tǒng)一管理起來平臺(tái)才能支持更復(fù)雜的空間分析業(yè)務(wù)。這些路徑并不是讓你現(xiàn)在就去實(shí)現(xiàn)但答辯時(shí)老師一旦問“系統(tǒng)的下一步規(guī)劃”你能說出這套有層次的演進(jìn)方向比空談“性能優(yōu)化”要有說服力得多。8. 寫在最后我的實(shí)操體會(huì)這個(gè)遙感影像共享系統(tǒng)做下來我個(gè)人最大的體會(huì)是畢業(yè)設(shè)計(jì)的難點(diǎn)從來不在于某項(xiàng)技術(shù)多高深而在于能不能用一個(gè)完整的業(yè)務(wù)邏輯把各種技術(shù)串聯(lián)起來。文件上傳、列表檢索、權(quán)限控制、空間預(yù)覽每個(gè)單點(diǎn)技術(shù)你可能都見過但真正把它們“焊接”成一個(gè)能跑通的系統(tǒng)中間會(huì)遇到無數(shù)個(gè)以為很簡單、實(shí)際上卻很消磨耐心的小問題——合并文件時(shí)路徑誰負(fù)責(zé)清理、預(yù)覽瓦片請求被攔截器卡住、云量字段是String還是Double、前端畫框和后端判斷相交用的坐標(biāo)系是不是同一個(gè)。我給正在做或準(zhǔn)備做這個(gè)題目的同學(xué)一個(gè)非常具體的建議前期設(shè)計(jì)階段拿一張紙從管理員、普通用戶、游客三種角色視角把系統(tǒng)的核心操作流程完整走一遍所有涉及狀態(tài)的流轉(zhuǎn)都寫下來再動(dòng)手寫代碼。這個(gè)動(dòng)作花不了半天但能幫你省出后面兩周的返工時(shí)間。最后再分享一個(gè)小技巧論文“測試結(jié)果”章節(jié)不要只寫“運(yùn)行成功、頁面正常”一定要準(zhǔn)備幾個(gè)有說服力的數(shù)據(jù)。比如上傳一張真實(shí)的多光譜遙感影像記錄上傳耗時(shí)、元數(shù)據(jù)解析出來的波段數(shù)和坐標(biāo)范圍在列表中用傳感器類型加拍攝日期做組合查詢截圖展示查詢條件和結(jié)果數(shù)量。這些實(shí)證數(shù)據(jù)會(huì)讓你的論文厚度立刻提升一個(gè)檔次。希望這個(gè)選題能成為你技術(shù)成長路上扎實(shí)的一步。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰免费人人| 六月丁香天堂| 久久九九@| 东京热伊人| 亚洲九九夜夜| 丁香五月婷中字幕| 同性gv国产精品一区二区| 大香蕉 婷婷| 六月激情综合| 丁香六月天色婷婷| 久久五月天色婷婷| 五月色婷婷夜色| 久久激情五月天| 久久五月婷婷开心网| 日韩三十六页| 99热网精品| 99热精品在线观看| 天天干夜夜想| 天天橾夜夜爽| 五月丁香在线偷拍视频| 玖月婷婷爱丁香| 亚洲 成人 电影av在线观看| 午夜不卡久久精品无码免费| 天天肏高清在线| 欧美综合婷婷欧美综| 九九 激情 网| www久久艹| 五月天激情网图片 - 百度| ww超碰在线| 婷婷丁香五月天激情| 99热精品中文字幕| 免费观看欧美成人AA片爱我多深| 亚洲女婷婷五月基地综合久久久 | 激情深爱五月天| 色五月影视| 日本婷婷丁香五月| 婷婷六月综合在线| 五月婷网| 成人一级片| 久草婷| 丁香午夜天| 五月色婷婷在线观看| 99热久97| 五月天激情四射网站| 久99久视频精品| 色啪网| EEUSS鲁片一区二区三区| 丁香六月婷婷综合麻豆| 久久久色婷婷五月天| 亭亭色网| 色婷婷丁香五月| 开心五月婷婷婷美女| 婷婷五月天成人影片| 久天综合| 97碰久久| 激情网战码亚洲A| 91男人操女人视频| 在线观看国产高清视频免费网站| 亚洲人妻av伦理| 久久99网站| 天天做天天爱天天高潮| 九九aV| 婷婷丁香六月| 六月久久婷婷| 69精品人人人人| 99热日韩| 这里只有精品视频在线| 99热这里只有精| 久久性爱视频| 国产欧美熟妇另类久久久| 做爰丰满少妇1313| 99re6在线视频精品免费| 婷婷丁香亚洲色综合91| 九九综合精品| 亚洲成人AV高清字幕| 免费看欧美成人A片无码| 99婷婷| 丁香五月情| 色色色在线观看| 先锋男人91资源| 色 噜噜 九月 婷婷| 婷婷影院欧美| 婷婷久热| 亚洲人妻一区二区| 五月丁香婷婷综合| 狠狠草在线观看| 婷婷激情五月| 久久婷婷艹| 北京熟妇搡BBBB搡BBBB| 99婷婷狠狠成为人免费视频| 久久丁香婷婷五月| 丁香六月婷婷综情欧美| 婷婷综合五月色播| 91久久| 五月婷婷,六月丁香| 色情综合网| 岛国在线观看91| 十区AV| 婷婷五月天久久久| 99热的无码| h在线看免费版在线看| 9久久精品| 国产精品爽爽久久久久久| 97婷婷狠狠| 久久激情五月| 五月婷婷97| 亚洲国产成人在线| 天天xxxxxx天天日| 99热97| 色婷婷8| 正宗黄色毛片| 色 五月俺去也| 五月丁香六月情| 另类图片色五月| 成人午夜天| 欧美婷婷丁香社区在线播放| 亚洲免费电影2| 亚洲成人综合在线| 日韩视频99| 91凹凸在线| 婷婷六月色| www.夜夜騎夜夜狠| 九九99久久| 99ri精品在线观看| 激情网 五月天| 开心婷婷中文字幕| 丁香五月婷婷欧美性爱| 九色综合五月天婷五月| 99热这是里只有精品| 99无码视频| 色色综合无码| 五月色色色| 大伊香蕉精品视频在线| 91狠狠综合久久久久久| 午夜婷婷久久| 婷综合六月| 五月天激情小说婷婷| 九九视频这里只有精彩| 六月婷婷五月天| 色婷婷影视99| 五月天婷婷丁香视频| 色99热| www.丁香黄色五月天人与| 综合久久五月天| 丁香五月自拍| 五月天激情国产综合婷婷婷| 久久久91| 久久视这里只有精品| 五月天婷婷中文字幕在线播放| 中文字幕不卡+婷婷五月| 丁香五月婷婷激情97| 丁香五月婷婷99| www.五月天。com| 超碰99在线观看| 青青草网武则天| 亭亭色天香| 日屌日日操日日色| 无码少妇高潮喷水A片免费| AAA久久久AAA久久久AAA| 久久视频九九视频| 色婷婷影院| 99啪啪骑| 国产色99| 秋霞网在线免费基地五月婷婷丁香| 色婷丁香五月| 五月丁香影视| 色色成人網| 婷婷五月天色色| 亚洲天堂色| 深爱激情AV| 丁香五月五月婷婷| 丁香五月婷婷深爱综合激情| 五月婷婷六月丁香| 五月天婷综合| 91碰碰视频| 五月天AV大香蕉| 五月天开心婷婷久久| 999热这里只有精品| 色五月激情综合网站| 九九婷婷五月天影视| 思思热在线| 丁香五月婷婷狠狠色| aaa久久| 黄网在线观看免费| 成人天天爽| 成人丁香五月| 大香蕉久久| 伊人碰碰婷婷| 狠狠色丁香| 五月色网| 国产婷婷色综合AV蜜臀AV| 99无码视频| 欧美人妻一区二区| 99 频99热国里只有精品| www.夜夜| 欧美激情-区二区三区| αv中文字幕在线观| 天天爱天天做天天爽| 777米奇影视第四色| 久99久视频| 午夜九九九九九九九九九九九九九| 日本人妻久久| 成人 在线 日韩| 亚洲午夜AV| 亚洲色99| 婷婷娱乐丁香综合网| 久久久噜噜噜操操操| 亚洲欧美999| 97超碰在线观看免费| 五月天开心网| 四色综合网| 91久久久久久| 淫荡工a| 亚州第一A片| 五月丁香婷婷爱| 日本在线视频播放91| 91啪啪| 欧美色骚婷婷五月天 | 夫妻超碰在线| 丁香五月色网| 人人干天天操五月丁香| 九热视频免费观看| 狠狠色婷婷777| 天天操夜夜玩!| 五月天婷婷成人网| 千人斩操逼| 91精选国| 五月丁香在线| 综合狠狠伊人| 播丁香五月婷婷欧美| 激情婷婷六月| 99热只有精品综合| 人人草碰| 国产69久久久欧美黑人A片| 久久九精品| 97久久久免费福利网址| 国外亚洲成AV人片在线观看| 春色激情第四色| 久久sp免费视频| 97精品综合久久| 六月婷婷七月丁香| 99爱视频精品在线观看| 超碰天堂网| 五月丁香六月成人| www.六月丁香看AV| 色色精品色| WWW色色色COM| 婷婷综合久久| 国产成人av在线| 欧美丁香五月天| 九九热10| 五月天婷婷影院| 婷婷丁香色无五月 | 色色色综合| 狠狠看狠狠| 人妻少妇色综合| 91超级碰碰| 国产看真人毛片爱做A片| 五月激情综合网| 婷婷亚洲五月丁香综合在线| 九九色图| 久久 无毛。| 成人午夜视频精品一区| 丁香婷婷色五月| 久久性刺激| 色五月婷婷五月| 色色色色五月| www.丁香五月| 婷婷六月激情丁香| 六月婷婷天天操夜夜爽视频| 国产成人在线精品| 色色五月天丁香婷婷| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 开心五月综合激情网| 噜噜噜噜在线| 99热这里只有精品手机在线观看| 婷婷九九| 人妻激情综合| 91丨九色丨熟女丰满| 99干免费视频| 97啪在线观看视频| 成人中文网| 五月激情在线| 337p大胆噜噜噜噜噜91Av| 五月丁香综合激情| 99色网站| 亚洲综合视频网| 国产乱妇无乱码大黄AA片| 97色啪| 五月天色婷婷激情| 五月天婷婷综合免费| 人人做天天爱| 综合婷婷五月丁香在线观看| 天天摸天天舔天天爽| 久久久性爱视频| 9 9热这里有精品| 国产精品激情AV久久久青桔| 人妻体体内射精一区二区| 五月天婷婷激情| 这里只有精品在线看| 激情婷婷丁香色五月综合| 如何安全看伊人婷婷| 91Chinese在线| 91久久五月天| 亚洲色色色色色色色色色| 久9热在线视频| 狠狠爱夜夜| 色婷婷综合电影| 五月天堂六月丁香亚州中文字幕久久| 天天色五月婷婷91久久久久久久| 91九色在线观看免费| 国产三级在线播放| 免费黄色AV| 久久色五月| 婷婷丁香综合网| 婷婷综合性爱网| 99精品丁香五月| 婷婷色五月综合| 久久人妻高清中文| 丁香丝袜五月| 亚洲精品大片| 色综合色五月| 性色五月天| 五月丁香网站| 丁香花五月天| 色99在线观看| 综合AV在线| 丁香婷婷色五月| 丁香五月天综合| 综合激情站| 97干在线| 久久久久久久久18久久| 综合色网站| 色情婷婷。| 久久色区| 小视频一区 | 字母不卡码人逼| 色吊丝av中文字幕| 99黄色性生活| 婷婷五月天手机版视频| 天天干一干| 欧美日韩91| 日本九九九九| 永久热91| 79精品在线视频| 狠狠狠狠狠草| 新97人人上人人| 婷婷色网| 桃色五月婷婷| 五月丁香欧美综合| 九九视频精品这里只有| 激情影院丁香五月| 麻豆AV一区二区三区| 天天爱天天操| av五月丁香婷婷网| 激情五月综合视频| 综合五月天| 五月色丁香| 超碰亚洲欧美| 桃色五月婷婷| 国产精品国产| 99精品视频免费观看近期发布| 伊人碰碰婷婷| 久噜久噜| 国产成人+综合亚洲+天堂| 九色99视频| 99在线视频喷水| 99爱视频精品在线观看| 丁香五月婷婷六月丁香| 九九九九精品精| 狼人婷婷综合| 九九热经典视频在线观看| 99免费视频| 国产精品18久久久| 人妻人人操| 色狠狠综合| 五月婷婷六月丁香色| 深爱激情五月网| www.9色色色| 色吊丝中文字幕| 婷婷五月天亚洲综合| 九九99在线观看视频| 日韩精品无码99| 久久综合丁香激情五月| 欧美毛卡| 丁香婷婷激情网站| 俺也去五月婷婷丁| 亚洲啪啪视频| 婷婷五月天成人网| 字母不卡码人逼| 成人婷婷色五月天| 能看的AV| 大香蕉九九操| 婷婷五月激情在线视频| 爆乳熟妇一区二区三区四区| 九九热10| 天天日夜夜爽| 久久丁香五月综合六月激情红杏视频| 97碰碰在线看视频免费| 日本婷婷激情四射中文字幕在线观看| 在线观看996精品| 国产激情在线| 99性色| 婷婷在线中文字幕| 日日撸天天干| 激情爱爱网站| 色婷婷五月天成人网| 蜜桃婷婷丁香五月天狠狠久久综合| 九九热av| 久久婷婷激情四射五月天| 热99re| 国产国产乱老熟女视频网站97| 激情久久综合| 天天日天天操心| 日韩啪啪自拍| 婷婷瑟瑟五月天| 啪啪啪大香蕉| 欧美va国产va| 大香蕉99热| 黄网在线免费| 五月天无码视屏播放| 女人天堂AV| 婷婷香蕉| 国产成人AV在线| 综合久久婷婷99| 婷婷五月天成人影片| 国产熟妇乱子伦hd| 久久精品亚洲热| 69热91天堂| 国际国外精品欧洲南美洲专区无码不卡| 色色五月天婷婷| 狠狠五月激情在线| 国产成人精品亚洲线观看| 99re热| 亚洲成av人影院| 婷婷性爱无码视频| 91日婷婷在线| 久久激情五月天| 亚洲有码在线视频| 大香蕉五月天婷婷| 精品国产va久久久久久久| 第九色区av天堂| 久艹大香蕉| 91精品久久久久久久| 大香婷婷| 久久XX| 色五月婷婷激情基地| 99视频网址| 99热青青草| 五月婷婷激情综合网| 国产精品色婷婷久久久精品| 婷婷金品综合视频| 色色丁香五月婷婷| 色五月97| 九九精品免费| 婷婷色成人| 97成人在线视频精品| 亚洲在线操| 播五月婷婷开心| 色婷婷丁香花五月天| 五月婷婷综合久久| 五月丁香婷婷色色| 久久六月综合| 亚洲精品五月| 久久性刺激| 超碰在线看| 午夜国产精品AV在线播放| 中文字幕无码人妻少妇免费视频| 人人爱国产| 97狠狠色| 99热10在线高清播放| 天天日狠狠| 综合网网欲色| 在线播放成人网站| 国产精品成人av在线观看春天| 激情五月婷婷综合秋霞| 日本色99| 啪啪激情网站| 日本久久视频| seuuu婷婷| 久机视频这只有精品| 91精品视频男人的天堂| 久热久| 国产另类综合| 六月丁香婷婷视频综合在线观看| av婷婷丁香| 亚洲天堂热| site:jszngf.com| 超级97碰碰| 亚洲色五月婷婷| 日日噜狠狠色综| Av在线不卡一区| 色九月| 国产色色色色| caopeng97日韩| 97久人人| 一区操| 亚洲操B| 六月五月久久丁香| 亚洲成人网在线观看| 182tv992tv人之初午夜免费观看| 99精品热| 日韩在线视频网站| er99免费视频在线| 久久婷婷五月综合97色一本| 日韩AV中文字幕在线| 天天爽天天操| 色一情一乱一乱一区91Av| 五月婷婷啪啪啪啪| 这里只有精品视频看看| 亚洲va日| 日本人妻A片成人免费看片| 青青草99re| 久久一热| 婷婷月综合| 五月 婷婷 成人| www色色com| 在线看黄色| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 六月婷婷亚洲| 超碰免费在线| 久久久大香蕉| 色色五月婷婷久久| 97精品综合久久内射| 99热99艹在线观看| 五月天开心网| 久久大香蕉| 综合网色| 久草五月| 五月激情六月综合| 六月丁香婷| 免费啪啪亚州视频| Www.激情| 五月丁香六月婷婷综合网站| 婷婷激情五月天视频在线| 99日逼视频| 影音 五月 婷婷 久久| 婷婷激情五月综合| 六月婷婷综合| 久久婷婷丁香| 亚洲无码成人| 久月婷婷| 激情深爱五月天| 久久综合人妻| 99热最新| 丁香五月日韩| 五月天社区| 开心激情网在线| 亚洲色五月| 人人摸人人搞| 97福利视频| 99精品久久| 无码人妻电影| 操一区| 九九色精品| 久久婷婷六月综合| 久9视频| 五月婷婷激情综合| 99亚洲精品| 激情五月天丁香| 无码AV免费精品一区二区三区 | 婷婷五月69| www久久久久| 久久色吧| 六月婷久久| 五月丁香激情综合网| 日木狠狠干| 乱女乱妇熟女熟妇综合网站| 人人爽人人爽人人爽人人爽| 激情五月综合网最新 | 一本久久婷婷| 先锋资源婷婷| 另类精品视频在线观看| 入口五月婷婷六月香| 五月天操逼网| AV在线观看网站| 五月天停婷基地| 亚洲九九夜夜| 99久久精品网| 综合狠狠干| 久久婷婷成人综合色怡春院| 国产SUV精品一区二区883| 极品少妇XXXX精品少妇偷拍| 婷婷情色五月| 91精品无码| 婷婷五月激情综合啪啪| 激情av| 成人色五月天| 激情第四色| 91视频综合网| 精品亚洲国产成AV人片传媒| 98色丁香五月婷婷综合网| 日本91在线| 桔色成人官方网站| 另类 在线| 色情成人五月天| 六月丁香啪| 性爱视频久久| 五月丁香啪啪网| 久久丁香五月天| 九九热9| 狠狠第四色| 5月婷婷6月丁香aV| 日韩在线观看亚洲| 亚洲精品V天堂中文字幕| 青青草网武则天| 一起草av| 婷婷亚洲五月| 国产成人精品一区二三区熟女在线| 久久五月婷综合网| 色色亚洲无码| 五月天激情四射网站| 熟女少妇内射日韩亚洲| 亚洲综合在线播放| 久久奄也去色色网站| AV五月婷婷露脸| 99热精品在线观看| 久久香视频| 人人97碰| 丁香五月天在线观看| 狠狠色综合网| 99热亚洲| 九九九九这里只有精品| 中文字幕日产A片在线看| 色九月婷婷丁香| 亚洲激情区| 久久久久人妻网址| 99热欧美偷拍| 五月天天天综合| 天天干 夜夜爽| 五月婷婷五月天| 亚洲AV日韩在线观看| 五月丁香色婷婷婷基地| 玖玖爱资源站| 综合亚洲AV| 激情小说之五月| 久久久久网站| 26uuu在线观看| 久久偷拍综合五月天| 色婷婷丁香A片区毛片区女人区| 99碰网站| 这里只有精彩视频| 丁香婷婷五月天成人| 91干| 可以直接看的av| 婷婷五月在线观看| 婷婷黄色| 婷婷五月激情图片| 五月丁香色婷基地综合久久| 激情伊人五月天| 99热人人艹| 熟女五月天久久综合| 六月婷婷激情| 九九综合伊人| www激情| 啪啪视频99| 99热这里只有精品69| 婷婷婷久久久| 26.uuu丁香五月婷婷| 五月天成人网在线观看| 99在线一区| AV五月婷婷露脸| 色99久草在线| 婷婷五月激情在线视频| 亚洲爆乳无码精品AAA片蜜桃| 激情色色| 亚洲国产精品VA在线看黑人| 激情五月天色| 亚洲天堂热| 色婷婷综合电影| 噜噜视频| 婷婷五月综合色小姐小说| 99在线视频资源| 天天干天天 亚洲| 操操操B| 亚洲AAA| 成人免费黄色短视频| 四色女婷婷| 六月婷婷色色网| 一區四區歐美日韓| 伊久大香蕉| 天插天啪天啪天啪| 全部老头和老太XXXXX| 激情五月天开心网丁香无码| 99久久九九视频| 国产精品久久久丁香五月八戒视频| 天天色2017| 青青草婷婷久久| 激情五月婷婷丁香| 婷婷情色五月天| 91精品综合久久久久久五月丁香| 激情网五夜婷婷| 爱射综合| www.狠狠狠狠| 色婷婷色综合| 久久婷.com| 99热综合在线| 中文字幕精品无码一区二区| 伊人啪啪网| 99热精品在线播放| 亚洲激情网站| 东京热人妻一区二区三区在线| 色狠久| 色婷婷激情| 婷婷五月天影院| 五月天婷a| 特级操b片| 六月天婷婷| 六月狠狠综合| 日本偷拍九九九| 91超碰在线播放| 婷婷五月色播网| 综合色色网| 日本a片网址| 丁香激情综合| 色情五月综合婷婷| 丁香综合伊人| 综合99在线| 婷婷五月av| 欧亚洲在线高清视频| 婷婷五月激情欧美大胆视频| 天天天操天天天日| 9人人操人人看| 午夜天堂一区人妻| www.91有码.com| 日亚二欧美| 激情亭亭五月| 99热这里只有精品23| enecarbon-materials.com污K127封锁请涟系@wip1688 | 九月丁香八月婷婷加勒比| 久久9热| 中文AV网站| 五月丁香婷婷导航视频| 久久在这里有精品| 91fuliwang| 日日操,天天操| 色综合久久综合| 夜精品无码A片一区二区蜜桃| 欧美这里只有精品| 天天日夜夜草进麻麻的子宫| 久操综合| 开心五月深爱五月| 五月婷婷视频在线观看| 婷婷色系婷色| 综合激情sV| 欧美S码亚洲码精品M码| 婷婷色色丁香五月天| 精品视频99看在线视频| 97影院一级片| 色色色1网址| 五月开心网| 五月天色婷婷视频| 99精品久久| 2022人人操人人看| 婷婷久久色五月婷婷久久久| 九九这里只有精品| 天天色综合图片| 丁香婷婷六月天| 国产女生爱爱AA| 91久久五月天| 99re8在这里只有精品| 五月丁香免费视频| 99热精品99| 少妇2做爰HD韩国电影| 66成人网| 九九这里都是精品| 狠狠另类视频| 九九视频网| 日良久久| 日韩欧美成人片| 激情五月婷婷| 狠狠色丁香| 97人人干| 久热只有精品| 第五色色色婷婷| 丁香六月亭亭久久综合| 久久久99精品| tingtingzonghewang| 在线99精品| 9热在线视频精品| 九九伦子片| 色香蕉婷婷| www久久久久久久久久久| 久热9| 色噜噜狠狠色综合日日| 婷婷五月精品中文字幕| 五月天综合在线| 操一操干一干| 另类激情中文| 四月婷婷丁香| 超碰AAAAAAV| 婷婷久久久| 五月丁香婷婷色| 丁香六月激情综合| 影音先锋按摩| 色八月婷婷| 亚洲激情校园| 超碰在线观看9| 六月五月天婷婷涩播在线| 六月天婷婷| 香蕉久久国产AV一区二区| 五月天婷婷久久| 亚洲综合在线视频| 五月婷婷激情| 狠狠操狠狠爱| 香蕉AV777XXX色综合一区| 亚洲深喉aV| 色播jjjj| 激情五月天综合网| 五月丁香六月| 久9热| 欧美成人猛片AAAAAAA| seav天堂| 91精品久久久久久久久久 | 成人做爰黄A片免费看直播室男男| www色五月| 老司机伊人| 99精品综合视频| 伊人综合网站| 刘玥精品一区| 91碰碰碰久久久久| 亚洲激情综| 色五月激情综合| 五月丁香 啪啪| 激情久久久久久久久久久| 久久久婷婷婷| 亚洲经典三级| 国产SUV精品一区二区6| 九月丁香很很色| 丁香五月综合久久| 99啪啪| 九九AV| 玖玖精品资源| 亚洲激情综合五月婷婷啪啪| 久久免片| 五月婷婷激情综合网| 99国产精品久久久久久久久久久 | 成人美女网| 一区二区乱视频码| 99燥99日| 久久综合五月情| 久久五月天丁香| 97久久人人操| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 视频一区二区在线| 激情综合在线观看| 丁香5月综合啪啪| 天天摸天天高潮天天爽| 久久久久人妻精选| 直接看的av| 六月婷婷在线| www.henhenl| 无码人妻激情| 91九色在线视频| 99久久99久久综合| 97精品人人A片免费看| 1024亚洲| 久久色五月天| 久久激情综合| 色婷婷丁香AV综合| 久色网址| www.婷婷五月| 99在线资源视频| www。五月,com| 亚洲天堂有码| 激情五月深爱五月| 五月婷网| 996er热| 极品人妻VideOssS人妻| 久久99精品久| 五月婷婷色播视频| 99精品视频免费观看| www.99热| 日韩有码一区| 99r久久这里只有精品| 成人va视频| 欧美日本免费一道免费视频| 丁香五月另类色婷婷麻豆| 婷婷综合网站| 婷婷欧美| 91婷婷丁香五月| 天天色天天色天天色天天色天天色| 97干在线| 亚洲婷婷激情综合激情999精品| 精品婷婷| 人人爱人人草| 少妇高潮呻吟A片免费看软件| 亚洲无码成人| av操一操| 99爱精品| OYIWbGcPu8H| 99人妻碰碰碰久久久久禁片| 色婷婷五月天小说| 欧美成人精品三区综合A片| 亚洲成人AV一区在线观看| 98毛片| 91天天操天天干天天射| 丁香五月天AV在线| AV堂狠狠干| 日韩av在线免费观看| 无语停婷丁香网| 26uuu激情五月天| 丁香五月婷婷基地| 久久久久久久97| 另类激情五月在线视频欧美| 日本熟妇乱妇熟色A片蜜桃| 另类综合激情| 99九九在线视频| 久久久九九九 99| se婷97| 五月婷婷免费视频| 五月天激情网图片| 五月丁香六月在线欧美| 婷婷丁香宗合888| 激情久久丁香| 婷婷五月天综合小说网| 97超碰免费超级在线观看| 色色丁香婷婷综合| 激情婷婷久久| 九九热re99re6在线精品| 六月丁香激情网| 影音先锋五月天婷婷丁香在线观看| 亚洲久久婷婷丁香五月天| 天天日天天操心| 欧美操人| 亚洲五月婷婷| 丁香午月AV中文字幕| www.婷婷五月天.com| www.狠狠| 26uuu亚洲| 综合天天综合| 超碰人人在线| 婷婷五月天无码熟女| 最近中文字幕2019视频1| 6月丁香婷婷激情| 中文字幕精品无码一区二区| 五月丁香激情综合欧美| 青青久在线视频免费观看| 呦呦v线| 99免费超碰在线| 99久久99热| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | www.夜夜夜| 99精品国产在热久久| 丁香五月婷婷婷婷欧美综合| 夜夜操狠狠操| 99热精品一区| 色婷婷色丁香色欲av| 五月开心婷婷| 色婷婷久久9.com| 综合激情视频| 五月婷婷久久大香蕉| 色啪网| 99视频久久| 亚洲精品视频在线播放| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | Av九九| 丁香九月综合激情| 九九久久99| 五月婷婷六月色| 婷婷五月综合中文字幕| 第五色婷婷| 嫩草视频在线观看| 内射干少妇亚洲69XXX| 射久久丁香五月| 天堂亚洲 在线| 五月婷婷六月天| 久久亚洲网| 色综合99色| 97碰碰在线看视频免费| 综合激情五月综合激情五月激情1| 666555。COm毛片| 激情五月天 婷婷| 九九色人| av一级棒av| 色五月激情五月开心五月| 殴美日韩成人| 亚洲乱码日产精品BD| 亚洲成人黄色网| 51成人| 亚洲A片成人无码久久精品青桔| 五月成人天| 大香蕉五月天婷婷| 九九黄色网| 婷婷综合激情| 桃色Av色哟哟| 丁香五月天日韩无码| 久久九九网| 狠狠狠狠操| 久碰久操| 九九久久久综合| a网站免费观看| ss视频xx91| 九九热99视频| 日韩野外 无套| 九九RE视频在线精品| 天天干天天日日| 狼人婷婷综合| 少妇高潮呻吟A片免费看软件| 丁香五月天论坛| 激情五月第四色| 色五月97| 久久久亚洲精品一区二区三区浴池| 在线综合网| 亚洲婷婷丁香五月天激情小说| 久久精品婷婷五月丁香| 天堂伊人干| 91九色视频| 日本 @ va 免费| 久久视频66| 午夜成人在线免费视频| 色吧婷婷五月亚洲| www.婷婷| 九九热精品视频| 婷婷五月开心中文字幕色| 成人网在线视频| 99精品丁香五月| 成人丁香五月| 五月天丁香久久| 影音先锋人妻出差| 久久er这里只有精品| 日韩一级网站| 久久五月婷| 欧美婷婷丁香五月社区| 欧美成人网99网| www.五月天性.com| 久热9| 天堂五月婷婷| 日本欧美成人片AAAA| 97操碰视频| 99热精品中文字幕| 狠狠色狠狠色综合日日91| 五月份婷婷| 原琪琪色影院| 色99综合色88| 三十熟女| 五月婷婷免费| 丁香五月AV综合| 久久永久视频| se99热久久一本| 色久一| 欧美天堂婷婷日韩| 亚洲V国产V欧美V久久久久久| 婷婷亚洲色| 五月天丁香成人| 欧美日本另类| 色五月婷婷五月| 九一99| 精品皮股午夜AV| 米奇激情婷婷| 婷婷九月激情| 色久婷婷网| 精品一区二区三区四区五区六区介绍 | 五月婷婷九九热| www.97干视频| 99男人天堂| 不卡影院午夜理论片| 日韩成人中文| 丁香婷婷五月色成人网站| AV国产有码| 天天网站天天爽| 综合五月草| 天天五月香欧美| 丁香五月婷婷久久久| 蜜臀AV在线成人| 九九九热精品| 久久婷婷亚洲| 五月丁香香蕉| 久碰视频| 久久婷婷六月| 99re这里只有精品99| 五月天色图| 色99在线| 深爱五月月天| 五月色婷婷亚洲| 婷婷五月天六月综合| 5月婷婷激情6月| 超碰国产AV| 视频久久9| 自拍偷窥99热| 开心婷婷五月天综合| 开心五月天私房婷婷| 思思99精品视频在线观看| 天天干天天日日| 激情小说五月天中文字幕| 青草热视频这里只有精品| 国产色五月婷婷| 日韩在线五月天婷婷| 九九这里都是精品| 国产裸舞表演WWWW| 丁香六月婷婷五月婷婷| 亚洲综合激情五月久久| 五月婷婷综合在线| 五月丁香激情婷婷| 色狠狠综合网| 思思热在线观看| 国产精产国品一二三在观看| 欧美情色电影一区二区| 超碰无码老师| 丝袜激情网| 久久女婷| 狠狠狠人妻| 99热在线免费| 区美毛片子| 五月天婷婷成人网| 鲁鲁色五月| 中文字幕av网站| 月丁香久久久| 狠狠色丁香| 丁香五月激情月| 五月婷婷激情久久| 亚洲综合视频在线| 深爱激情五月婷婷| 欧美性生交XXXXX无码小说| 玖玖九九9999在线观看视频精品| 婷婷影院欧美| 色婷婷久久综合中文久久一本| 丁香五月婷婷天激情| 青青操丝袜美腿| 大香蕉精品视频| 婷婷久久六月天| 天天舔日日肏夜夜爽| 五月丁香婷婷久久| 国产欧美性成人精品午夜| 日韩精品VIP| 99色色网| 性色99| 亚洲人成色A777777在线观看| 夜夜撸天天操| 丁香五月婷婷图片综合| 99操网站| 就要去操亚洲成人精品五月天丁香婷婷| 色色丁香五月婷婷| 99热这里有精品| 久热这里| 久久免费丁香| 深爱激情四射| 五月婷婷六月丁香| 天天综合在线网| 色婷婷小视频| caop在线视频| 色五月婷婷天天操夜夜操| 色婷婷亚洲| 99热8在线| 婷婷五月天久久| 久久96热| 亚洲六月婷婷| 国产欧美大香蕉一区| 精品久久99| 这里只有精品网| 99热免费| 五月天久久激情| 婷婷5月天激情综合| 色欲婷婷五月天丁香| 亚洲蜜桃精久久久久久久久久久久| 99热观看| 色情激情五月| 五月天综合视频| 殴美日韩成人| 草操AV在线| 大香蕉综合| 久久国产AV| 97色色色色色色色色色色色色色| 亚洲六月婷婷| 任你搞在线观看视频| 狠狠 久久| CHINESE熟女老女人HD视频| 99碰在线视频| 久久这里99| 涩五月婷婷| 色九月婷婷综合| 久久这里只| 国产99久久久国产精品免费看| 亚洲操逼网| 91九色国产熟女| 99热97美女| 婷婷性爱无码视频| 激情五月天婷婷五月天| 99热这里只有精品1025| rr天天操| 大香蕉福利导航| 欧美综合婷婷欧美综| 殴美日比视频| 伊人九九热| 亚洲色在线观看| 婷婷在线中文字幕| 热久久这里只有精品20| 日本九九九九| 色综合99| 人妻av在线| 九九RE视频在线精品| 久久婷婷亚洲| 色婷婷色五月综合| 丁香五月乱中文字幕| 色网站9| 天堂婷婷丁香六月网| 欧美日韩中文国产一区发布| 天天日天天舔天天摸| 狠狠搞狠狠操| 日本色道视频网站| 情色五月天网站| 另类视在线| 色综合色五月| 九色91视频| 亚洲性爱电影| 色综合色色色色色色综合| 五月婷婷香| 99re免费视频| 狠狠激情五月天| 国内自拍1区| 婷婷五月色综合| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 在线免费观看激情视频| 丁香婷婷视频| 操比激情五月| 色综合久久88色综合天天99| 丁香六月激情国产| 亚洲va欧美va国产综合久久久| 丁香五月婷婷综合啪啪| 在线A色| 99九九精品视频推荐| 亚洲99视频| 激情涩播| 久久九九视频| 伊人五月天久久| 伊人网碰碰| 丁香五月性| 99视频只有精品| 久久婷婷色色| 激情五月婷| 思思热精品免费视频| 久操乱| 丁香婷婷五月综合影院| 九色综合五月天婷五月| 久久机热/这里只有精品| 五月丁香婷婷婷激情爱爱| 五月综合色| 天天日夜夜高潮| 国产成人精品一区二三区熟女在线| 欧洲激情网站| 曰本久久女| 另类激情首页| caop在线| 人人播| 91婷婷五月天综合视频| 久久3级片| 天堂综合久| 综合五月丁香久久| 激情98色婷婷五| 5月婷婷6月六月丁香| 97人人草| 97很鲁在线视频| 久久激情五月婷婷| 五月丁香六月婷婷的女人| 99热这里只有精品3| 色天天久婷婷| 五月丁香综合网| 狠狠爱五月婷婷| 婷婷激情五月| 色青青电影色五月| 99无码| 激情五月综合色婷婷| 密视AV综合在线| 永久精品| 丁香五月成人社区| 亚洲激情综合|