国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

微信小程序校園失物招領系統(tǒng)實戰(zhàn):云開發(fā)與云函數(shù)核心設計

微信小程序校園失物招領系統(tǒng)實戰(zhàn):云開發(fā)與云函數(shù)核心設計 簡介面向正在準備微信小程序畢業(yè)設計或課程設計的學生這份資源提供了一套完整的校園失物招領系統(tǒng)項目包含可直接閱讀的源碼工程、說明文檔和演示視頻。項目圍繞“設計與實現(xiàn)”展開覆蓋了從系統(tǒng)總體設計、數(shù)據(jù)庫設計到前端功能模塊落地的全過程具體涉及失物招領信息展示、論壇交流、公告管理、失物發(fā)布等核心頁面并配有系統(tǒng)測試的目的與測試方法說明有助于讀者理解小程序前后端交互及常規(guī)開發(fā)規(guī)范。目錄層次清晰可借鑒其中的界面布局與數(shù)據(jù)庫表設計思路。資料打包為rar格式大小約38.82MB內(nèi)含項目源碼、Word版設計文檔以及操作演示視頻方便對照文檔查看代碼結(jié)構(gòu)或按視頻復現(xiàn)運行效果。目前已有120人學習適合需要完整項目參考、快速梳理畢業(yè)設計框架的開發(fā)者。1. 基于微信小程序的校園失物招領系統(tǒng)比想象中更值得做的實戰(zhàn)項目校園失物招領這個場景絕大多數(shù)人的第一反應是“太簡單了”。但真去接手一個基于微信小程序的校園失物招領系統(tǒng)你會發(fā)現(xiàn)它并不是「發(fā)布信息 展示列表」兩件事就能糊弄過去的。我見過太多人把精力花在頁面好不好看上結(jié)果栽在圖片上傳、狀態(tài)流轉(zhuǎn)、重復認領這些看不見的環(huán)節(jié)上。這個項目真正的價值在于它把小程序端、云開發(fā)后端、數(shù)據(jù)庫權(quán)限、審核流程串成了一條完整鏈路是一個能講清楚“數(shù)據(jù)怎么流動”的練手項目。這個系統(tǒng)適合兩類人一類是正在做課程設計或畢業(yè)設計需要源碼和說明文檔來支撐答辯的學生另一類是剛接觸小程序開發(fā)想用業(yè)務閉環(huán)來驗證自己能力的從業(yè)者。它不追求高并發(fā)、不涉及復雜算法但云函數(shù)怎么寫、表結(jié)構(gòu)怎么拆、狀態(tài)機怎么設計這些經(jīng)驗和寫大項目是相通的。標題里提到的源碼、說明文檔、演示視頻恰恰是把這個項目從“能跑”推向“能交付”的三件套缺一不可。2. 從需求到表結(jié)構(gòu)先把失物招領的業(yè)務閉環(huán)畫清楚2.1 業(yè)務閉環(huán)發(fā)布—匹配—認領—核銷四個狀態(tài)缺一不可很多人做失物招領系統(tǒng)第一版只做兩張表一張存失物一張存招領用戶自己刷列表碰運氣。這樣做不是不能跑但離“系統(tǒng)”兩個字差得很遠。真實的校園場景里丟東西的人希望快速找到撿到東西的人希望盡快脫手管理員希望減少無效溝通。這三方的訴求疊加起來業(yè)務至少要包含四個環(huán)節(jié)發(fā)布、匹配、認領、核銷。發(fā)布環(huán)節(jié)要區(qū)分「尋物啟事」和「失物招領」兩種類型它們的瀏覽邏輯不同、認領邏輯也不同。尋物啟事是失主主動描述物品特征等撿到的人聯(lián)系失物招領是拾主上傳物品照片等失主來認領。匹配環(huán)節(jié)不能只靠人肉刷新至少要有按關(guān)鍵詞搜索和按分類篩選的能力。認領環(huán)節(jié)是防冒領的關(guān)鍵不能誰點一下“我要認領”就把東西拿走必須加一層描述核對或管理員審核。核銷環(huán)節(jié)則是把物品狀態(tài)從“待認領”改成“已完成”同時記錄操作時間方便日后追溯。這四個環(huán)節(jié)落實在系統(tǒng)里就是一張狀態(tài)流轉(zhuǎn)圖發(fā)布1→ 匹配2→ 認領3→ 核銷4。狀態(tài)不能只在代碼里用 if 判斷必須在數(shù)據(jù)庫里落一個字段比如status用整數(shù)表示0 為待處理、1 為已認領待審核、2 為已核銷、3 為已下架。這樣后續(xù)做列表過濾、管理員統(tǒng)計、演示視頻里的流程展示都只需要查這一個字段。2.2 數(shù)據(jù)庫設計用戶表、物品表、認領表、審核日志表的具體字段如果把系統(tǒng)做成微信云開發(fā)方案數(shù)據(jù)庫直接用云開發(fā)自帶的 JSON 文檔數(shù)據(jù)庫不需要自己搭 MySQL。這個選擇對畢設和課設尤其友好不用買服務器、不用配域名備案、天然支持微信登錄。但你依然需要像設計關(guān)系型數(shù)據(jù)庫一樣提前把集合表和字段定清楚否則寫到一半改數(shù)據(jù)結(jié)構(gòu)云函數(shù)里的查詢邏輯會跟著返工。我一般會拆四張核心集合。第一個是用戶集合users字段包括openid用戶唯一標識云開發(fā)下建議直接用云函數(shù)獲取、nickName、avatarUrl、studentId學號選填、phone選填用于認領聯(lián)系、createTime。注意openid不要暴露在小程序端直接寫入而是在云函數(shù)里用cloud.getWXContext().OPENID獲取這樣能防止用戶偽造身份。第二個是物品集合items也就是系統(tǒng)的核心數(shù)據(jù)。字段設計如下itemId我用_id自動生成、type1 尋物 / 2 招領、title物品名稱、category分類比如校園卡、錢包、耳機、書籍、description詳細描述這里要引導用戶寫特征為認領核對做準備、images數(shù)組存云存儲 fileID 列表、location丟失或拾得地點、time丟失或拾得時間、status狀態(tài)0 待處理 / 1 待審核 / 2 已完成 / 3 已下架、openid發(fā)布者、contact聯(lián)系方式、createTime。這里有一個容易被忽略的點time這個字段名在云開發(fā)里做排序時和前端傳入格式容易出歧義建議直接用happenTime表示丟失或拾得時間避免和createTime混淆。第三張是認領集合claims記錄每一次認領申請。字段有itemId、claimOpenid、description認領者填寫的物品特征描述、status0 待審核 / 1 通過 / 2 拒絕、createTime、reviewTime。第四張是審核日志集合reviews記錄管理員的每一次操作字段包括itemId、actionpass / reject / finish、reviewerOpenid、remark、createTime。日志集合看起來多余但寫說明文檔時它是亮點答辯時也是交代“系統(tǒng)可追溯性”的抓手。如果你選擇自建后端路線用 MySQL 的話四張表對應關(guān)系不變只是把集合名換成表名把 JSON 字段換成 SQL 字段。下面給一份 MySQL 版的核心建表腳本便于對照CREATE TABLE items ( id INT PRIMARY KEY AUTO_INCREMENT, type TINYINT NOT NULL COMMENT 1招領 2尋物, title VARCHAR(100) NOT NULL, category VARCHAR(50) DEFAULT , description TEXT, images JSON COMMENT 圖片URL數(shù)組, location VARCHAR(100), happen_time DATETIME, status TINYINT DEFAULT 0 COMMENT 0待處理 1待審核 2已完成 3已下架, openid VARCHAR(64) NOT NULL, contact VARCHAR(100), create_time DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; CREATE TABLE claims ( id INT PRIMARY KEY AUTO_INCREMENT, item_id INT NOT NULL, openid VARCHAR(64) NOT NULL, description TEXT, status TINYINT DEFAULT 0 COMMENT 0待審核 1通過 2拒絕, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, review_time DATETIME DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;images字段用 JSON 類型存儲能省掉一張附件表這是多數(shù)人實踐后的常見做法。用 utf8mb4 是為了兼容用戶輸入的生僻字和 Emoji微信昵稱里常有特殊字符這個坑在聯(lián)調(diào)時才會暴露。建表后記得給items.status和items.openid加索引列表查詢和我的發(fā)布頁都用得到。2.3 圖片存儲選型為什么優(yōu)先用微信云存儲而不是自建文件服務器校園失物招領系統(tǒng)的圖片存儲是很多初學者第一道坎。有人圖省事把圖片轉(zhuǎn)成 base64 直接存數(shù)據(jù)庫結(jié)果列表頁渲染卡到懷疑人生有人堅持自建 Nginx FastDFS折騰兩天還沒把上傳接口調(diào)通。對這個項目體量來說微信云開發(fā)的云存儲是最務實的方案。云存儲的優(yōu)點在于第一和云函數(shù)、云數(shù)據(jù)庫同屬一套環(huán)境前端直接調(diào)用wx.cloud.uploadFile就能把圖片傳上去返回一個 fileID第二fileID 可以直接在小程序端用image組件的src屬性渲染不需要額外做鑒權(quán)云開發(fā)會自動處理第三不用考慮圖片服務器的帶寬和磁盤擴容問題。你唯一要做的是在云開發(fā)控制臺里給云存儲設置一個合理的權(quán)限。默認權(quán)限建議改成「僅創(chuàng)建者可讀寫」因為失物招領的圖片會包含個人物品信息如果允許所有人讀數(shù)據(jù)庫里存了 fileID 就等于所有人能看圖片不合適。自建文件服務器倒也不是不行但你要額外處理跨域CORS、防盜鏈、HTTPS 證書、圖片壓縮這四件事每一件都能消耗兩三天而且和微信小程序的對接還得走業(yè)務域名配置。標題給的定位是「源碼 說明文檔 演示視頻」說明這是一個以交付為導向的項目云存儲能把交付周期從三周壓到一周。核心權(quán)衡點在表里對比維度微信云存儲自建 Nginx / FastDFS部署成本零部署開通即用需要服務器配 Nginx 和上傳接口權(quán)限控制控制臺配置按 openid 粒度需要自己寫鑒權(quán)邏輯小程序鑒權(quán)fileID 直接渲染需配域名 HTTPS處理防盜鏈適合場景畢設、課設、原型驗證有現(xiàn)成服務器和運維能力的場景3. 小程序端三個必寫頁面發(fā)布頁、列表頁、詳情認領頁3.1 發(fā)布頁圖片上傳的坑與 wx.chooseMedia 參數(shù)配置發(fā)布頁是用戶接觸系統(tǒng)的第一個入口也是代碼里最容易出問題的頁面。核心功能就兩個填物品信息、上傳圖片。圖片上傳的官方接口是wx.chooseMedia它替代了舊版的wx.chooseImage。很多人寫到這里只配了count和mediaType就完事結(jié)果真機上一選相冊就白屏原因多半是sourceType或sizeType沒配對。// pages/publish/publish.js Page({ data: { imageList: [], type: 1, // 默認選擇失物招領1招領 2尋物 title: , description: }, // 選擇圖片 chooseImages() { wx.chooseMedia({ count: 3 - this.data.imageList.length, // 最多3張減去已選數(shù)量 mediaType: [image], sourceType: [album, camera], sizeType: [compressed], // 強制壓縮避免原圖過大上傳失敗 success: (res) { const selected res.tempFiles.map(file file.tempFilePath); this.setData({ imageList: this.data.imageList.concat(selected) }); } }); }, // 上傳圖片到云存儲返回 fileID 數(shù)組 async uploadImages() { const promises this.data.imageList.map((filePath, index) { const cloudPath lost/${Date.now()}-${index}-${Math.random().toString(36).slice(-6)}.jpg; return wx.cloud.uploadFile({ cloudPath, filePath }).then(res res.fileID); }); return Promise.all(promises); } });這段代碼里的sizeType: [compressed]是關(guān)鍵。校園用戶用手機拍失物照片原圖可能是 3MB 以上的大圖直接上傳到云存儲會慢、偶爾還會超時失敗。壓縮后一般 200KB 以內(nèi)上傳速度可以接受列表頁渲染也更流暢。cloudPath里拼了時間戳和隨機字符串是為了避免同一用戶反復上傳時文件名沖突——云存儲的cloudPath如果重復后傳的文件會覆蓋先傳的這個坑我就踩過。上傳后的 fileID 不要直接放到items集合里要先調(diào)用云函數(shù)寫入數(shù)據(jù)庫。這樣做的原因是前端直接把數(shù)據(jù)寫到數(shù)據(jù)庫繞過了云函數(shù)的權(quán)限校驗用戶可以把status改成任意值等于給自己開了后門。正確姿勢是前端收集表單數(shù)據(jù)后調(diào)wx.cloud.callFunction({ name: publishItem, data: {...} })由云函數(shù)統(tǒng)一校驗入?yún)⒉懭霐?shù)據(jù)庫。版權(quán)聲明可以不放但代碼里一定要保留入?yún)⑿r灪蚾penid獲取的邏輯。3.2 列表頁下拉刷新與觸底分頁的經(jīng)典寫法列表頁是失物招領系統(tǒng)的門面它的表現(xiàn)直接決定用戶留不留。技術(shù)上要處理的就兩件事分頁加載和下拉刷新。很多人第一次寫云開發(fā)數(shù)據(jù)庫查詢習慣直接db.collection(items).get()一把梭結(jié)果數(shù)據(jù)量過了幾百條就變慢。云開發(fā)的默認限制是一次最多返回 20 條不是 100 條導致后面數(shù)據(jù)永遠加載不出來。正確做法是配合skip和limit實現(xiàn)分頁再利用小程序原生的onPullDownRefresh和onReachBottom兩個生命周期處理刷新和加載更多。// pages/index/index.js Page({ data: { items: [], page: 0, pageSize: 10, hasMore: true, keyword: }, async loadItems(reset false) { if (reset) { this.setData({ page: 0, items: [], hasMore: true }); } if (!this.data.hasMore) return; const db wx.cloud.database(); const { page, pageSize, keyword } this.data; // 關(guān)鍵詞搜索正則模糊匹配標題 const where { status: db.command.neq(3) // 排除已下架 }; if (keyword) { where.title db.RegExp({ regexp: keyword, options: i }); } const res await db.collection(items) .where(where) .orderBy(createTime, desc) .skip(page * pageSize) .limit(pageSize) .get(); const newItems reset ? res.data : this.data.items.concat(res.data); this.setData({ items: newItems, page: page 1, hasMore: res.data.length pageSize }); }, onPullDownRefresh() { this.loadItems(true).then(() wx.stopPullDownRefresh()); }, onReachBottom() { this.loadItems(); } });注意page的自增時機是在拿到數(shù)據(jù)之后不是請求之前否則失敗重試時會跳過一頁導致數(shù)據(jù)漏掉。db.RegExp是云開發(fā)端提供的正則查詢方式做標題模糊搜索夠用但不要用它做description字段的匹配——正則查詢不支持索引數(shù)據(jù)量大時會有性能問題。status: db.command.neq(3)這個寫法只在items集合上生效如果你用的是 MySQL 后端等價寫法是SELECT ... WHERE status ! 3。這里能看出來云開發(fā)數(shù)據(jù)庫的查詢 API 學習成本不高但一些邊界條件比如neq是db.command下的方法容易記混。下拉刷新還有一個容易被忽略的點app.json里要開啟enablePullDownRefresh: true并且建議在window配置里設backgroundTextStyle: dark否則 iOS 下拉刷新的轉(zhuǎn)圈是白色的白底上看不見用戶會以為刷新功能壞了。3.3 詳情頁與認領流程用狀態(tài)機驅(qū)動按鈕渲染詳情頁是認領流程的核心載體。一張物品卡片上有發(fā)布者信息、物品描述、圖片、聯(lián)系方式和操作按鈕。按鈕怎么渲染不能寫死得根據(jù)當前用戶和物品狀態(tài)動態(tài)計算。比如物品是自己的顯示“刪除”和“標記已完成”物品是別人的且狀態(tài)為待處理顯示“申請認領”已經(jīng)提交過認領申請顯示“審核中”。這種多分支渲染最清晰的做法是先梳理狀態(tài)矩陣再寫wx:if。// pages/detail/detail.js Page({ data: { item: null, claimStatus: -1, // -1 未申請0 待審核1 已通過2 已拒絕 isOwner: false }, // 計算按鈕狀態(tài) buildActions() { const { item, claimStatus, isOwner } this.data; const actions []; if (isOwner) { if (item.status 0 || item.status 1) { actions.push({ key: finish, text: 標記已完成 }); } if (item.status ! 2) { actions.push({ key: remove, text: 下架物品 }); } } else if (item.status 0) { if (claimStatus -1) { actions.push({ key: claim, text: 申請認領 }); } else if (claimStatus 0) { actions.push({ key: pending, text: 審核中, disabled: true }); } else if (claimStatus 1) { actions.push({ key: contact, text: 聯(lián)系發(fā)布者 }); } else { actions.push({ key: claim, text: 重新申請 }); } } this.setData({ actions }); } });claimStatus是查claims集合得到的當前用戶對這個物品的申請狀態(tài)。這里有一個先后順序問題必須等item和claimStatus都拿到后再渲染按鈕否則用戶會看到按鈕閃爍一下體驗很糟。常見的做法是在onLoad里并行發(fā)起兩個請求用Promise.all聚合后再調(diào)buildActions()。認領申請的動作要在云函數(shù)里完成前端不能直接寫claims集合。云函數(shù)至少要做三件事檢查物品狀態(tài)是否為 0防止已完成的物品被重復申請檢查該用戶是否已申請過防止重復提交寫入認領記錄并將物品狀態(tài)改為 1待審核。這三步在云函數(shù)里按順序執(zhí)行即使前端被用戶反復點擊也能通過數(shù)據(jù)庫的狀態(tài)約束擋住。4. 后端接口與核心邏輯云函數(shù)怎么寫才不返工4.1 云函數(shù)和自建后端的取舍數(shù)據(jù)權(quán)限與調(diào)用成本微信云開發(fā)模式下后端邏輯主要寫在云函數(shù)里。一個云函數(shù)對應一個exports.main入口相當于一個 HTTP 接口。和傳統(tǒng)自建后端比云函數(shù)最大的特點是不需要關(guān)心服務器但代價是冷啟動延遲和調(diào)用次數(shù)限制。對失物招領這種低頻業(yè)務冷啟動幾乎無感免費額度也足夠。真正影響選型的是數(shù)據(jù)權(quán)限。云開發(fā)數(shù)據(jù)庫有三種權(quán)限設置僅創(chuàng)建者可讀寫、所有用戶可讀僅創(chuàng)建者可寫、所有用戶可讀寫。失物招領系統(tǒng)里items集合建議用「所有用戶可讀僅創(chuàng)建者可寫」。因為列表頁和詳情頁的查詢是高頻操作如果都走云函數(shù)每次都調(diào)用一次云函數(shù)不僅慢還會消耗云函數(shù)調(diào)用次數(shù)。但claims集合必須收緊權(quán)限認領記錄屬于敏感數(shù)據(jù)不能讓所有用戶讀。你需要保證“讀公開數(shù)據(jù)走數(shù)據(jù)庫直連寫數(shù)據(jù)走云函數(shù)校驗”。這是一個混合策略也是大多數(shù)線上小程序的實際寫法。自建后端則是把所有讀寫都收口到自己的接口。優(yōu)點是邏輯看得見摸得著調(diào)試手段更豐富缺點是要處理登錄態(tài)校驗、用戶身份識別。微信小程序要自建后端通常流程是wx.login拿 code后端用 code 換 openid然后簽發(fā)自定義 token。這套流程在畢業(yè)設計里也能做但涉及 HTTPS 證書、code2session 接口調(diào)用工作量直接翻倍。如果不是為了練習 Java 或 Node 后端云函數(shù)是更劃算的選擇。4.2 關(guān)鍵詞匹配與模糊查找讓用戶快速找到物品的查詢寫法失物招領信息一多光靠列表滾動沒法用必須做搜索。搜索的核心是關(guān)鍵詞匹配用戶輸入的物品名稱。微信云開發(fā)數(shù)據(jù)庫支持db.RegExp可以用正則表達式做模糊匹配。但要注意正則匹配在數(shù)據(jù)量超過幾千條后性能會明顯下降所以搜索條件里要配合其他篩選條件一起用比如加上status過濾和category分類。下面這個云函數(shù)實現(xiàn)了掃碼式搜索接收keyword先按標題模糊匹配標題匹配不到再用description做全文匹配。兩個查詢并行發(fā)起結(jié)果合并去重后返回。去重邏輯用itemId做 map 的鍵一勞永逸避免重復。// cloudfunctions/searchItems/index.js const cloud require(wx-server-sdk); cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); const db cloud.database(); const _ db.command; exports.main async (event) { const { keyword , category , page 0, pageSize 10 } event; const reg db.RegExp({ regexp: keyword, options: i }); try { // 并行查標題和描述減少響應時間 const [titleRes, descRes] await Promise.all([ db.collection(items) .where({ title: reg, status: _.neq(3), ...(category ? { category } : {}) }) .limit(pageSize) .get(), db.collection(items) .where({ description: reg, status: _.neq(3), ...(category ? { category } : {}) }) .limit(pageSize) .get() ]); // 合并去重 const map new Map(); [...titleRes.data, ...descRes.data].forEach(item { if (!map.has(item._id)) { map.set(item._id, { ...item, matchField: item.title.match(reg) ? title : description }); } }); return { ok: true, data: Array.from(map.values()).slice(0, pageSize), count: map.size }; } catch (err) { return { ok: false, message: err.message }; } };Promise.all在這里的意義不是炫技而是把兩次串行查詢變成并行省一半時間。matchField字段用于前端展示時高亮匹配位置雖然高亮不是必須的但說明文檔里寫清楚“搜索結(jié)果可識別匹配字段”答辯時能體現(xiàn)設計的完整性。db.RegExp的對象不能直接展開到擴展運算符里必須嵌套在where條件內(nèi)否則查詢不會生效。這一點卡過不少人。4.3 認領核銷與防冒領用狀態(tài)流轉(zhuǎn)和操作日志兜底認領流程是失物招領系統(tǒng)的核心也是最容易被簡化處理的部分。簡化版的實現(xiàn)是用戶在詳情頁點“認領”把items.status改成 2已完成然后完事。這個流程在演示視頻里看起來很流暢但實際使用時任何人都能點一下就把別人的東西“領走”冒領問題無法避免。我在實際項目中用的方案是“描述核對 管理員審核”雙保險。用戶在詳情頁填一段描述說明物品的特征細節(jié)比如校園卡上的姓名拼音、錢包的顏色和品牌。云函數(shù)收到后把這條記錄寫入claims集合同時把items.status改為 1待審核。發(fā)布者在“我的發(fā)布”里看到待審核狀態(tài)后能查看認領者填寫的描述對照自己的物品特征決定通過或拒絕。如果發(fā)布者沒空處理管理員也能在管理端介入。這套流程用云函數(shù)實現(xiàn)時關(guān)鍵在于對并發(fā)提交的防護。用戶連續(xù)點擊兩次“申請認領”可能產(chǎn)生兩條認領記錄導致物品狀態(tài)錯亂。解決方法是云函數(shù)內(nèi)部用事務。云開發(fā)支持db.runTransaction是處理分布式事務的推薦方式能在并發(fā)場景下保證數(shù)據(jù)一致性。下面是我常用的原子化認領寫法// cloudfunctions/claimItem/index.js const cloud require(wx-server-sdk); cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); const db cloud.database(); exports.main async (event) { const { OPENID } cloud.getWXContext(); const { itemId, description } event; try { return await db.runTransaction(async transaction { const item await transaction.collection(items).doc(itemId).get(); // 雙重校驗物品必須存在且狀態(tài)為 0 if (!item.data || item.data.status ! 0) { return { ok: false, message: 物品不存在或已被認領 }; } // 校驗用戶是否重復申請 const claim await transaction.collection(claims) .where({ itemId, openid: OPENID, status: _.neq(2) }) .get(); if (claim.data.length 0) { return { ok: false, message: 請勿重復申請 }; } // 寫入認領記錄并更新物品狀態(tài) await transaction.collection(claims).add({ data: { itemId, openid: OPENID, description: description || , status: 0, createTime: db.serverDate() } }); await transaction.collection(items).doc(itemId).update({ data: { status: 1 } }); return { ok: true, message: 認領申請?zhí)峤怀晒?}; }); } catch (err) { return { ok: false, message: err.message }; } };runTransaction的寫法和普通云函數(shù)明顯不同它把所有操作放在transaction對象上執(zhí)行。如果中途任一步出錯事務會自動回滾不會出現(xiàn)“認領記錄寫入了但物品狀態(tài)還是待認領”這種臟數(shù)據(jù)。事務內(nèi)的get是讀取當前版本的數(shù)據(jù)能避免兩個人同時提交時都通過了status ! 0的判斷。這段代碼是說明文檔里最好的素材也是答辯時“系統(tǒng)設計考慮了并發(fā)安全”的有力證據(jù)。5. 避坑合集圖片、緩存、狀態(tài)不同步的五個經(jīng)典踩坑記錄5.1 圖片上傳失敗錯誤碼卻是 success現(xiàn)象wx.chooseMedia回調(diào)顯示成功uploadFile也返回了fileID但詳情頁圖片加載不出來控制臺報 404。這個問題的隱蔽之處在于失敗不是上傳環(huán)節(jié)而是cloudPath包含了中文或特殊字符。某些版本的云存儲對中文路徑處理不友好會靜默失敗或返回一個無法訪問的 fileID。解決cloudPath只用字母、數(shù)字、橫杠和點。我建議用time random ext的格式擴展名從filePath里取不要寫死.jpg因為用戶可能拍的是 png 或 heic 格式。另外注意wx.uploadFile一次只能傳一個文件如果選擇多圖必須用Promise.all并發(fā)上傳但并發(fā)數(shù)不要超過 3。超過 3 個文件同時上傳部分手機在弱網(wǎng)環(huán)境下會超時表現(xiàn)是“上傳了但列表里少圖”。處理辦法是失敗重試重試次數(shù)控制在 2 次以內(nèi)同時給用戶提示“圖片上傳失敗請檢查網(wǎng)絡”。5.2 列表頁滑動快了會跳數(shù)據(jù)現(xiàn)象快速下拉或連續(xù)觸底時頁面出現(xiàn)重復的卡片或者幾個列表項消失。原因分頁用的是page計數(shù)但每次觸底時page的遞增發(fā)生在異步請求返回之后用戶快速滾動時會發(fā)出多次請求多個請求的skip參數(shù)相同自然返回同一批數(shù)據(jù)。解決在data里加一個isLoading鎖請求開始時置為true請求結(jié)束后置為falseonReachBottom里先判斷鎖鎖開著就直接return。這是列表分頁的常備武器任何小程序項目都適用。5.3 認領狀態(tài)前端一直不刷新現(xiàn)象用戶在詳情頁提交認領返回后再次進入詳情頁按鈕還是“申請認領”沒有變成“審核中”。原因詳情頁的onLoad只會在頁面首次加載時執(zhí)行從詳情頁返回列表頁再進入頁面實例被緩存onLoad不再觸發(fā)。這是小程序經(jīng)典的“頁面棧緩存”問題。解決把狀態(tài)查詢邏輯從onLoad挪到onShow中這樣每次頁面顯示時都會重新拉取claimStatus。代價是多一次請求但對低頻的詳情頁來說完全可以接受。5.4 演示視頻里最容易翻車的初始化數(shù)據(jù)太隨意現(xiàn)象演示視頻錄到一半發(fā)現(xiàn)列表頁沒有數(shù)據(jù)或者在“認領”環(huán)節(jié)查不到已經(jīng)發(fā)布的物品。這個翻車多數(shù)不是程序 bug而是演示前沒有準備演示數(shù)據(jù)。數(shù)據(jù)庫里空蕩蕩功能再完整也顯得空洞。解決寫一個初始化云函數(shù)一次性插入 1015 條模擬數(shù)據(jù)覆蓋不同狀態(tài)待處理、待審核、已完成和不同分類。模擬數(shù)據(jù)的createTime要錯開比如最近一小時幾條、最近一天幾條、最近一周幾條這樣列表頁下拉刷新和分頁都有內(nèi)容可展示。視頻錄制前先跑一遍初始化腳本比現(xiàn)場造數(shù)據(jù)穩(wěn)妥得多。5.5 管理員審核并發(fā)點擊狀態(tài)記錄錯亂現(xiàn)象管理端同時打開多個詳情頁對同一條物品的認領申請連續(xù)做“通過”操作最后物品狀態(tài)變成了“已完成”但認領記錄卻有兩條通過。原因管理端的審核邏輯如果寫在頁面里直接調(diào)數(shù)據(jù)庫就沒有事務保護的。并發(fā)環(huán)境下兩個請求都讀到了“待審核”狀態(tài)都執(zhí)行了通過操作。解決參考 4.3 的事務寫法把審核動作也收口到云函數(shù)。審核云函數(shù)里用transaction讀取認領記錄和物品狀態(tài)先判斷claim.status 0再更新從根上杜絕重復審核。管理后臺的代碼量不大但這一步不能省。6. 演示視頻與說明文檔的落地技巧讓交付物真正為你加分源碼、說明文檔、演示視頻三件套里演示視頻是最容易被忽視的。很多人臨近答辯才拿手機對著屏幕隨手一錄開頭卡頓、中間翻車、結(jié)尾黑屏功能再全也抵不過觀感差。我的習慣是先寫視頻腳本再錄內(nèi)容最后做剪輯。腳本按功能模塊劃分每個模塊控制在 3045 秒全片不超過 5 分鐘。開場 10 秒展示小程序首頁列表和下拉刷新接著演示發(fā)布流程上傳圖片和填寫表單然后是搜索功能輸入一個關(guān)鍵詞看結(jié)果高亮第三段演示認領閉環(huán)——提交申請、管理員審核、狀態(tài)變?yōu)橐淹瓿?。每一段前加一個字幕條說明當前演示的功能點觀看者不用猜你在干什么。錄制時注意三個階段的數(shù)據(jù)準備第一階段列表有 5 條未處理的信息第二階段新增一條尋物圖片清晰第三階段用兩個微信號配合一個發(fā)招領另一個申請認領模擬真實用戶互動。如果只有一個微信號就通過云開發(fā)控制臺直接修改數(shù)據(jù)庫里claims的status字段來展示審核效果管理員審核頁面的操作仍然走真實界面。這個“半真半假”的錄法在演示視頻里是常見做法功能是真的只是狀態(tài)靠后臺配合。說明文檔的重點放在系統(tǒng)架構(gòu)圖、數(shù)據(jù)庫設計、核心流程時序圖這三塊不用追求大而全的八股文。架構(gòu)圖里把小程序端、云函數(shù)、云數(shù)據(jù)庫、云存儲四層畫清楚標注每個請求的路徑前端通過wx.cloud.callFunction調(diào)用云函數(shù)云函數(shù)操作數(shù)據(jù)庫和存儲。數(shù)據(jù)庫設計部分放表格列出每張集合的字段、類型、含義。核心流程時序圖畫“發(fā)布→搜索→認領→審核→核銷”的完整鏈路一個圖頂過千字描述。文檔寫完以后把 3.3 的狀態(tài)矩陣和 4.3 的事務代碼單獨摘出來放在附錄里這兩個細節(jié)能給文檔的深度拉高一個檔次。開源或交付源碼時記得清理app.js里你的env環(huán)境 ID替換成占位符your-env-id并告訴接收者在哪里配置。很多源碼交付出去跑不起來九成是環(huán)境 ID 還是原作者的用戶自己的云環(huán)境根本沒有那個 ID 對應的集合。把初始化腳本、云函數(shù)目錄結(jié)構(gòu)、環(huán)境配置三步寫進 README 的第一屏比寫什么“項目介紹”都實用。這也是我交付過幾套源碼后的血淚經(jīng)驗代碼能不能跑往往不取決于代碼本身而取決于接收者能否在五分鐘內(nèi)完成環(huán)境配置。希望這些經(jīng)驗能幫你在交付和答辯時少走彎路祝你順利跑通整套流程。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品人妻一区二区三区-国产| 青青草原人妻| 97日韩欧美| 亚洲精品97在线| 日本午夜操逼| 18禁看网站一区| 伊人国产视频| 色综合加勒比四四季| 国产色产精品在线观看 | 久久东京热成人| 七久久久| 久久精品国产亚洲AV片多多| 国产日韩精品人妻久久久久色欲网站 | 日韩在线观看AV| 欧美性暴力猛交XXXX | 91网站18在线| 高清不卡国产| 一区二区三区四区色图| 91香蕉视频在线观看免费| 97超碰影音| 熟女一区二区三区| 人妻熟女一区二区| 在线视频一区二区传媒| 久久侵犯人妻爽爽爽| 国产自产自拍| 国产极品精品美女视频| 夜色91| 少妇蹲下买菜露大唇0| 中日无幕一二三四区| 啪啪资源网| 51国产午夜精品视频| 91殴美大片| 久久午夜伦| 日韩成人大片一区二区| 丝袜熟女一区二区三区| av绯色| 69XX一中文字幕人妻91| 亚洲一区二区在线观看91| 成人AV在线网站| 中文字幕一区二区三四五区日日骚| www.婷婷六月天| 国产成人bd在线观看| 欧美激情另类一区二区| 免费人成毛片乱码| 性色aV一区二区三区噜噜| 亚洲在钱| 蜜臀99久久精品久久久久久| 国产AV线| 超碰色美女| 97天天插| 男人天堂2019| 91丨人妻丨国产丨丝袜| 精品无码久久久久久国产浪潮| 东京热一区二区中文字幕| 另类欧美色| 色与欲影视天天看综合网| 天天日天天操VV| 大香蕉手机视频| 日本一区二区成人在线| 久久激情亚洲精品无码?V| 久久首页| 操屄不卡视频| 99久久9| 97干在线| 久久精品欧美一区蜜桃| 欧美亚洲影视| 91精品国久久久久久无码| 天天操天天日天天干| 国产精品毛片| 久9精品| 美女啊啊啊啊啊| 亚洲爽图| 涩五月婷婷| 超AV色女| 神马久久免费电影观看| 视频不卡中文字幕| 亚川综合视频| 99这里有精品| 玖玖爱综合| av线电影| 1240青青草一区二区三区视频天爱| 麻豆91熟妇人妻中文字幕茄子| 妇女一区二区三区| 国产精品久久天天干| 韩日性爱av| 大香网伊人久久综合| julia高潮后不停追击中出| 日韩精品人妻系列无码天堂| 久久久精品久久| 欧天美中出| 亚州,欧美在线| 91肉片| 成年人黄色小视频网站| 91 刺激在线| 又摸又舔在线观看网站| 日日骚网站| 成人熟女视频一区二区三区| 亚码激情| 无码人妻一区二区三区色欲aⅴ| 操逼A∨| 波多野42部无码喷潮在线观看| 欧美性爱伊人| 无码视频一区二区| 久久久久99999| 日韩簧片免费看| 黄片不用下载在线观看| 91伊人大香蕉| 日本黄色精品专区网站| 岛国小电影| 人妻精品一区一区三区蜜桃91| 欧美中文字幕精品人妻| 久久性爱大全| 1204av韩国| 久久老熟女| 操婢日韩| 久久一二区四| 淫荡网址| 欧美人妻二区三区| 久久男人的天堂| hd成人一区二区在线| 热天堂一区二区| 午夜爽爽爽| 抽插无码高清一区| 亚洲蜜臀视频精品久久| 日本人妻中文字幕精品| 麻豆区99999| 玖玖爱影院| 99色热| 伊人96在线| 黑人白女精品一区| 99re这里| 韩国黄片aaaa| 欧美激情亚洲情色| 午夜男女爽爽爽在线视频| 一区二区视频你懂的| 一区AV| 日韩在线视频1234| 少妇久久久久久| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 凹凸精品熟女在线观看| 五月天婷婷欧美三区| 精品十八在线观看| 久久ww| 亚州欧美另类| 大奶啊啊好爽| 日韩性爱小视频| 伊人综合色网| yiqicaoav| 色五月天AV| 三级激情网站| 久久精品老司| 嗯啊抽插大香蕉网页| 亚洲色图 图片| 国产一级αv免费看片| 久久噜| 乱论91| 加勒比海成人视频网 | 一区二区乱码福利| 丰满人妻一区二区中文| 亚洲色图亚洲无码强奸乱伦| 91精片| 日韩天堂av电影在线观看| 狠狠操使劲操| 熟女一区二区三区| 色色色色网站| 97国产人人| 天天摸夜夜摸| 精品国产丝袜一区二区三区乱码| 自拍第一页| 99色在线| 欧美老妇曰批的视频| 99999re| 手机不卡视频不卡在线一二三区| 精品九九国产无码| 婷婷五月天激情四射| 熟妇视频一区二区三区在线观看| 国产精品视频自拍在线| 97天堂| 久久久久ab| 亚洲精品a人片在线观看视| 台湾佬大香蕉| 抽插爽| 欧美成va视频网站| AV乱伦国产| 亚洲se电影| 日韩三级久久久| 日va操| 96久久久久| 999 久久久| 色哟哟的毛片| 久久 国产精品 一区| 免费国产电影一区二区| 后入人妻无码| 天天天做天天天爱天天天爽| 91美乳| 人妻少妇蜜桃视频欧美一区| 欧美日韩性爱无码| 欧美gv在线观看| 国产搭汕a级片| 五月天久久婷婷亚洲| 久久久久久人妻| 欧美日韩另类在线| ..日韩av毛片精品久久久| sewuyueav| 国产精品一级二级在线| 伊人991| 粘花网06av视频| 日韩人妻无码专区| 天天日B夜夜干B时时操B| 明星性猛交ⅹxxx乱大交| 人妻美腿丝袜日韩| 欧美色图在线视频少妇| 久久超碰98| 97色97好| 日本三级人妻a人妻一在线| 欧美性生活综合| 久久亚洲AV无码专区国产精品| 在线视频亚洲无码| 九九九久久久| 激情综合网亚洲| 中文字幕一区二区视频在线观看| 免费国产视频| 亚洲国产另类在线中文| 日本幼女18+| 欧美另类天堂| 久久久精品一区二区| 中文字幕人妻色偷偷久久皮| 乱老熟女一区二区三区| 欧美韩日精品资源| 91在线丝袜| 天美传媒av在线| 亚洲人综合| 熟妇人妻精品一区二区| 精品对白久久不卡| 亚洲国产精品久久AV| 超碰吊日色| 俺去也婷婷| 激情五月天婷婷| 亚洲精品中文字幕一区在线视频| 99re视频在线观看这里只有精品| 97人人干| 久久久18禁| 亚洲91网站| 日本黄页视频在线观看| 91精品久久久久久| 亚洲中文字幕在现观看| 精品毛片av一区二区 | 亚洲瓯美色图| 97视频在线视频| 久久是精品| 欧美色91| 国产精品点击进入在线影院| 99精品久久久久久久婷婷蜜桃| 五月丁香色综合| 久久五月份| 看黑丝美女操逼青青网站| 1000午夜黄色| 亚洲综人网| 久久中文字幕女同性恋一区| 久久久久幕乱码| 麻豆天美一区二区| 超碰成人公开| 四月丁香婷婷| 噜噜噜噜天天狠狠| 日韩熟女乱伦中出| 欧美久久草熟女| 91九色丨国产丨爆乳| 德国一二三不卡| 天天综合欧美黑人| 国产三级资源在线观看| 久久99综合| 国产成人AV麻豆| 97综合激情| 97在线精品观看视频| 亚洲综合一区二区| 高跟伊人julia ann| 亚洲熟女一区二区| 亚洲国产成人精品久久久国产成人一区二区三.| 欧美性爱另类综合| 亚洲资源网| 热热色91| 婷婷综合久久| 九九九九免费高| 抽插亚洲无码| 欧美99热| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 日韩精品人妻中文字有码在线| 亚洲欧美日韩中文播放| 欧美色图私拍91| 99热| 人妻丝袜日本| 欧美国产伊人久久久久| 亚州综合AⅤ| 97AV在线观看| 日本伦理一区二区| 成人a v在线播放免费| 99这里有精品| 亚洲影院成人| 哈哈操电影AV| 久久社区一区二区三区| 好爽要喷了| 国产九九九九九九九九| 国产精品禁久久久精品| www成人啪啪18秘 免费| 国产精品对白自产拍| www.色婷婷色综合| 极品肉射| 欧美亚洲20p| 中文字幕一区二区日韩网| 1204av韩国| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 狠狠操官网| 精品999日本| 无码人妻丰满热妇又大又粗| 91亚洲欧美激情| 91亚洲人电影| 亚洲国产一区二区入口| 殴美性天天| 青青草视频爽一爽| 国产中文大片资源中文字幕 | 日韩无码a片| 东京热伊久| 67914亚洲精品| 97综合久久| 欧美日韩亚洲高清不卡一区二区三区| 日韩免费看在线黄色片| 91美女国产在线| julia高潮后不停追击中出| 亚洲图片另类| 色拍偷亚洲| 色婷五月| 国产精品久久久久无码A√| 亚洲图片欧美另类综合免费视频大大香| 无遮挡猛进视频免费无限观看| 欧美精品一二三| 欧美五区| 精品久久99| 欧美18 在线观看| 加勒比综合a∨| 久操大香蕉手机视频在线看 | 男女激情中文字幕| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久黄片国产一区二区| 91综合天天| 91色综合激情| 日韩欧美女优电影| 国产成人bd在线观看| 亚洲爽图| 中文字幕一区二区三区人妻不卡 | 欧美日韩插逼视频| 亚洲美女精品九九视频| 亚洲成人AB| 久久爽爽精品| 精品小视频在线| 另类图片五月天| 黄色一区二区秘书性感| 精品国产一区探花在线观看| 91精品导航| 99re在线视频国产| 天操老女人| 欧美在线伊人色| 志村玲子视频一区二区| 强奸乱亚洲| 国产女人高潮嗷嗷嗷叫小说| 日本国产欧美一区三区二区| 男女啊啊啊| 亚州精品人妻一二三区| 青草园大香蕉| 男人的天堂在线| 亚洲AV乱码专区国产噜噜亚洲| 精品-91人妻子系列| 国产理论视频在线播放| 岛国黄| 蜜乳成人AV| 人人妻碰人人免费| 亚洲av噜噜噜噜噜噜| 超碰色老头| 久久久久久久久久久久97| 99国产精品自在自在| 新精精品久久精品| 丝袜狂射91| 亚欧洲一区二区视频| 亚洲人91| 96久久久精品| 人人爽夜夜玩视频| 乳欲人妻办公室奶水| 日本国产亚洲一区在线观看| 日韩性爱一级片| 天天视频黄| 综合久久久久久久久91| 亚洲三区视频| 亚洲综合中文字幕有码| 久久曰曰| 亚洲 图片 欧美 色图| 欧美大香蕉97| 9长久久精品| 97超色| 色九九九九九九| 国产精品农村妇女精品| 亚洲高清欧美总合| 久久精品国产亚洲AV先锋| 91天天综合| 欧美高清18A片| 欧美日韩大黄片| 一起草日韩| 亚洲欧美一区二区三区一猛片| 熟女六十路| 97人人超| 97se综合网| 九9热伊人| 97伦综合| 国产亚洲色停停久久99精品91| 国产高清视频无码在线| 久久精品国产亚洲AV片多多 | 妇女乱色二区| 99国产精品| 樱花蜜乳av| 精品-91人妻子系列| 亚洲天堂,男人| 啊啊啊啊啊啊好湿好爽视频| 免费男人的天堂| 啊啊啊在线观看| 亚洲少妇综合在线播放| 99re9在线| 久久6热精品99视频| 春色综合网| 国产精品女生av| 久久久婷| 蜜臀99久久精品| www.99色| 91在线页| 亚洲第一页综合在线| 91内射| 色yeye成人免费视频| 国产熟女少妇一区| 日日日日做夜夜夜夜做无码97| 国产一级高清免费观看| 午夜男女爽爽爽在线视频| 天天综合香 ld视频| 亚洲人妻色图| 乱论91| 日韩超碰精品综合| 日韩97P| 婷婷色播婷婷| 久草老司机| 国产精品一区二区亚洲人成毛片| 蜜臀国产AV中文字幕| 精品国产久久乱码| 国产成人精品必看| 一区二区三区国产精产| 人人操人人摸超碰| 国产精品久久久鸭无码的功能| 久久伊人网视频一区二区三区| 超碰97日韩| 欧美视频中文字幕区| 日韩免费a级毛片无码a∨| 激情五月天色色网| 尤物视频新赏网鲜网色诱网| 日韩一区二区高清在线观看的| 中文有码第五页| 不卡日本一区二区| 亚洲 欧美 天天| 亚洲天天自拍| 99只有精品| 一本色道熟妇| 97资源制服丝袜| 青青草久草| 天天舔天天| 777超碰| 久久久久成人蜜桃精品| 91性情| 三级三级三级日本99| 熟妇人妻精品一区二区| 人妻少妇色综合| 欧美碰碰综合色| 麻豆60秒| 日欧操屄| 欧美一级专区免费大片 | 日韩三级性| 全免费a敌肛交毛片免费| 大但人体久久久久| 五月婷婷六月丁香| 欧美视频一| 久久神马影院| 自拍大香蕉乱插| 欧美性高潮在线| 野狼激情网| 欧美日韩国产高清在线一二三区| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 91在线色| 黄片com.| 亚洲风情在线观看| 很黄很污的免费网站| 亚欧性爱无码| 加勒比av网| 红杏大香蕉| 综合激情二| 亚洲自拍一区夜夜操| 岛国AB视频| 2017,超碰| 殴美日韩m| 亚洲激情在线一区二区| 亚洲欧美电影| 亚洲天堂美臀在线| 99在线精品视频| 尹人免费观看视频在线| 91色射| 东北黄色电影| 国产精品成人蜜臀AV在线| 亚洲欧美洲综合| 美欧老女人97| 亚洲精品色| 少妇一级婬片免费放一级a性色.| 校园春色美腿丝袜 | 色综合一本| 久久华人网| 久久一区,青青青青草视频在线播放| 91在线视频观看国产| 九九热精品视频六| 亚熟hd视频在线| 一区二区三区在线资源| 最好看的中文字幕在线2018| 欧美激情一区| 久久精品国产亚洲av水密被窝| 欧美白嫩女HD| 黑丝少妇麻豆| 九九色综合| 国产一级作爱毛片| 欧美爱三级日韩久久| 亚洲资源一区| 日日嗷| 欧美日韩亚洲高清不卡一区二区三区| 中日高清无码操逼视频| 秋霞蝌科网日本一区| 欧美精品三级黄片| 搡老女人老熟女91老熟女综合网| 少妇精品久久久八区九区| 欧美老妇女内射网址| Julia在线播放亚洲久久| 多乙久久久久久| 日本高清视频xxxx| 99久久久久久亚洲精品不卡| 中文字幕99999| 男人的天堂VA| 亚洲欧美91| 黑人精品欧美一区二区蜜桃| 日日干夜夜欢| jiujiujiujingpin| 91精产一区二区三区| 99re8免费高清在线| 四虎影视在线| www老逼91| 99丝袜福利在线播放| 免费在线观看国内色片网站网址| 国产一区二区a毛片| 中文字幕一二区二三区人妻专区| 又黄又爽在线观看视频| 色情成人五月天| 综合欧美日本三级| 久色网| 五月丁香色综合| 美女刺激久久国产欧美| 大香蕉在线视频15| 久久久久久久久九九久孕交| 97国产天堂岛| 智利AV在线网| 在线天堂资源亚洲| 国产精品香蕉| a一区二区三区乱码在线| 免费黄色片。| 天堂8在线新版官网| 色婷婷导航| 日韩精品99999| 视频在线观看一二三区| 欧美在线l亚洲| 国产精品久久久久久9999| 精品大全99999| 日本二三四区| 国模私拍一区二区三区神乳| 密乳无码| 国产激情久久久| 99自拍B亚洲| 欧洲精品网| 亚洲玖玖爱| 久操精品| 日韩精品免费高清视频在线| 色综合久久久久| 色哟哟-国产专区| 超碰久在线天天做| 成人性生活高清视频在线播放| 丰满人妻一区二区三区色-百度| 国产精品白丝在线播放| 国产成人无码高清| 精品免费1| 蜜桃狠狠色伊人亚洲综合 | 日韩免费簧片| 亚洲乱码国产乱码精网站| www.婷婷六月天| 男人的天堂色偷偷青青草视频婷婷网| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 亚洲色交| 岛国视频一二三区| 色综合91| 亚洲精品黑丝| 无码137片内射在线影院| 国产 丝袜 欧美中文 另类| 91久热这里只有精品| 精品一区二区久久| 综合国产影视三级| 青青草视频久久| 伊人视频| 岛国激情视频软件| 中日无幕一二三四区| 91模特在线观看| av无线看| 精爱久久| 好属操| 久久性爱城| 免费成人在线熟妇网| 综合网天天| 激情五月婷| 97操综合| 国产精品一二三在线看| 国产又大又粗又长视频在线| 东北熟女91| 2024人人操人人摸| 欧美手机在线综合| 乱伦av麻豆| 美女AV一区二区| 国产精品久久久久久高清无码免费看| 草草影院在线视频| 熟女精品日韩一区二区三区| 精品久久久亚洲AV成人网站| 久久久精品一区二区| 亚洲自拍天堂| 裸体1区| {男男暴菊gay无套网站| 啊啊啊好湿久久| 国产精品色约约| 国产精品久久久久中文字幕| 91日产欧美| 高清无码在线播放网站| 91艹逼精品| 欧美Aⅴ| 97久久久精品| 琪琪精品免费一区二区三区 | 岛国在线免费视频| 97超碰天天爱天天爱| 无码一区免费在线不卡| 欧美性爱一内片一区二区三区| 久久久久九九九| 狠狠躁AV| 欧美日韩另类在线| 亚洲色图 综合| 偷窥自拍A片| 国产又大又粗又长视频在线| 欧美黄色大片在线观看 | 亚洲欧美清纯| 久久久久精| 另类亚洲一区二区三区| 一牛一区二区三区久久| 人妻乱仑一区二区三区| 亚洲色婷婷综合久久久久中文| 激情五月激情综合网| 五月婷亚洲精品天堂| 成人老鸭窝人人在线视频| 日韩欧美午夜一区二区| 色欧洲97| 天天插天天插| 亚欧毛片基地国产毛片基地| 亚洲黄色网址| 色婷婷亚洲婷婷| 欧美片第一页| 熟妇的味道HD中文字幕| 日韩大香蕉精品在线视频| 日本欧美国内在线| 99久久国产精品免费高潮| 高潮综合网| 久久老子无码午夜伦不卡| 亚洲激情片| 超碰欧美在线欧美| 欧美性天天影视| 色官网色综合| 亚洲欧美天堂| 物业黑人 AV一区| 国产亚洲一黄| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 男同专区一区二区三区在线| 欧美有码亚洲中文字幕一区二区三区四区| 岛国网址国产| 美女诱惑久久| 亚洲日韩XXX| 亚洲天堂人妻一区二区| 国产高清免费不卡av| 啪啪自拍九九综合| 日本不卡一区二区三区| 九九热九九热| 黄色片大香蕉| 7777奇米影视久久| 五十路熟女人妻一区二区三区四区五| 小草av不卡亚洲二区 | 日韩无码视频黄色| 成人性交午夜免费片| 久久久久久久久久久999| 大香蕉免费中文| 黄色免费网页无码| AⅤ片水多多| 欧美成人精品欧美一级乱黄一区二…| 好屌色综合| 日本免费不卡二区| 九九热精品视频在线观看| 亚一综合久久久久久久久久| 一级做受视频免费是看美女| 91在线观看,天天综合| 日本最新免费韩国1区2区视频播放| 久久久久久久人妻| 国产超碰人人操| 日韩成人精品视频自拍| 人人干黄色| 蜜臀在线视频| 亚州男人天堂| 亚洲天天自拍| 少妇高潮九九九九九九九| 骚女高跟AV在线| 中文字幕久久精品一区| 神马久久中文字幕| 国产性刺激| 天天淫人人妻日日色| 青青草日韩无码| 婷婷五月天基地| 亚洲精品视频在线| 97人人模人人爽人人| 天天干夜夜一操| 天天做日日做天天欢。| 久久91精品国产9丨久久分亭 | 精品少妇人妻| 曰韩少妇无码| 亚洲好色人妻| 91中文字幕在线观看| 国产乱不卡| 青青操日韩| 91美女精品| 久久久人妻| 亚洲学生妹高清av| 国产精品直播在线观看直播| 国产无码三级视频在线观看| 激情黄色片在线观看| 99re免费视频精品全部| 人人操我人人干| 2019久久久久久久久福利| 操高情无码| 日本在线视频导航| 成人欧美一区二区三区黑人一| 久久久久人妻| 伦在线97| 久久久久久久久久久精| 怡春院久久| 国产色产精品在线观看| 综合av社区| 国产精品久久99日日| 欧美日韩中文亚洲v在线综合| 亚欧国产无码精品在线| 高清无码网址| 欧美爆操91| 亚洲欧美一区二区不卡视频播放| 大干人妻| 久热一区二区| 人人操肉肉| AAA久久| 亚洲s在线观看| 是还免费视频1727我| 欧美色91| 国产成人精品必看| 久久激情视频| 操学生天天| 天天影视综合色| yw尤物av无码点击进入麻豆| 亚洲成人一区二区精品| 精品一区二区啪啪啪| 蜜臀99999| 蜜臀久久99精品久久久久电影| 欧美v日韩v亚洲v最新在线| 日韩性爱1级片视频| 丁香五月婷婷啪啪| 欧洲乱码视频| 国产精品一区二区三| 高清国产性猛交xxxx乱大交| 99碰碰| 超碰97久久观看| 天天网综合| 日本性爱不卡视频| 国产亚卅97| 亚洲欧美97√| 91人妻素女| 日韩成人午夜精品久久高潮| 99re欧美| 激情干在线| 另类av天堂| 97手机日韩| 亚洲 欧美 手机在线观看| 蜜臀久久99精品久久久久| 无码逼| 麻豆久久久一区二区| 精品人妻伦一区二区三区久久| 久久久97| 亚洲丝袜二区| 99久久免费看精品国产一区| 少妇无码av专区线| 99啪啪视频| 91色香| 国产成人网| 天天综合欧美黑人| 精品亚洲国产成人精品| 欧美一区二区三区大综合| 啊啊啊啊啊好多水| 涩五月婷婷| 国产深喉| 日韩AV熟女乱伦| 国产精品在线一区二区| 人妻 丝袜美腿 中文字幕| 搡老女人老妇女老妇老熟女怎么读| 欧美男人的天堂| 亚洲黄网在哪免费看| 天天激色| 特级毛片特黄久久免费看| 97久久免费| 熟女这里只有精品6| 97网址www| 午夜精品久久一区二区| 操人妻丝袜高跟| 亚洲av成人精品一区| ′ !γ}丶。。久久精品欧美一区二区三区| 亚州欧美在线| www色色com| 天天综合网~91| 美女自卫慰黄网站免费| 亚欧操逼片在线观看 | 国人欧美精品一区二区| 一区二区三区四区在线不卡| 久久99午夜精品一区人妻| 国产AB视频| 欧美一区二区亚洲天堂| 麻豆熟妇乱妇熟色A片在线看| 婷婷色五月激情| 色欲久久99国产精品久久久久久| 婷婷五月在线视频| 男人的天堂 在线一区| 嗯嗯啊啊用力视频免费| 成人av在线播放| 制服中出中文人人精品| 国产小u女在线观看| 精品玖九九久| 欧美另类色| 日韩激情毛片一级久久久| 加勒比海成人视频网 | 97精品在线| 亚洲色啪| 免费AV中文网在线观看| 热久日综合| 国产强奸超碰AV| 亚洲 在线| 中文字幕88av在线| 把腿张开老子CAO烂你| 久久精品国产97欧美精品亚洲 | 超碰成人人人爽人人爽| 天天日天天舔东京热| 欧美亚洲另类在线蜜桃| 九九操久久国产免费视频| 国产人妻精品久久久一区二区三区 | 丰满人妻被猛烈进入中| 久久久久国产| 日本超碰在线国产一区| 91丨九色丨国产丨人妻在线| 人妻喷水| 曰本精品久久久| 五月天丁香婷婷综合网站| 色淫网站优优视频| 久久久久78| 天天干天天做| 亚洲一区二区久久久久| 91熟女丨91老女人| 综合97亚洲| 男人亚洲91首页在线| 午夜男人av| 香蕉人欧美综合| 久久久精品一区二区| 天天肏美女| 中文字幕精品资源在线| 亚洲97成人在线观看| 91美女视频直播| 和协影院中文字幕三区| www.狠狠干.coom| 久久久久久精品免费看A级| 国产午夜精品在线观看| 免费男人的天堂| 蜜臀99999| 超碰三级秋霞| 久久久久久AV无码免费网站| 精品无码一区二区三区| 夜夜欧美| 91在线丝袜| juliaann丝袜大战黑鬼| 综合影院亚洲| 高清无码国产亚洲| 影音先锋视频在线| 国产综合色精品在线观看| 小电影欧美91| 99热国产| 欧美日韩亚洲电影| 精品九九九九九九九| 亚洲天天艹| 色玖玖| 色婷亚洲五月在线观看| 婷婷丁香五月天亚洲天堂网| 在线综合 亚洲 欧美中文字幕| 精品午夜福利| 嗯嗯不要视频| 人妻娇喘 激情视频| 欧美爱国产综合、| 欧美在线中M| 330dv亚洲成年视频网| 高树玛利亚无码流出| 欧美乱色| 欧美嗯啊……在线观看视频免费| 91丨九色丨东北熟女| 9999免费精彩视频| 黑人精品成人一区二区三区| 国产操逼逼网| 国产欧美一级在线观看| 岛国网址国产| 日韩一级特黄av毛片| 中国国产精品一区视频| 欧美黄色片在线播放| 成人免费毛片| 中国一级操逼视频| 日本性爱欧美性爱| 草草影院最新网址| 欧美日韩亚洲一区二区在线观看| 欧美偷拍区| 免费的很黄很污的全部视频 | 中文字幕欧洲有码| 欧美韩日精品99综合| 亚洲中字慕不卡| 91国产丝袜白虎| 欧美精品一二三| 七月婷婷综合| 黄色操人| 国产性爱乱伦AV| 日韩不卡av一二三| 婷婷伊人| 国产免费大片| 日韩啪啪啪视频| 大香蕉色欲AV| 91无码人妻精品一区二区三区蜜桃| 我要色综合网站| 亚州91| 亚洲性爱电影| 欧美亚洲日本激情在线| 天天做天天爱天天高潮| 无码一区二区三区四区五区六区七区八区九区十区视频 | 欧美92| 国产精品人妻无码久久久老鸭窝| 澳门黄片一香蕉视频| 亚洲色色探花| 亚洲第一综合| 久久中日麻豆| 精品国产乱码久久久久久久久久毛片| 97AV在线观看| 中日亚韩免费视频| 婷婷综合激情| 欧美少妇第一页| 国产熟女自拍| 粉嫩av在线| 亚洲精品影视老司机| 五月婷婷色| 久久伊人青青草| 超碰色大香蕉| 91人妻最真实刺激绿帽| 99久视频| 亚洲少妇色图自慰直播| 高颜值美女口爆高潮浪叫| 女性喷水高潮在线观看| 日本人人操人人操| 不卡九肏| 我要色综合网站| 午夜乱轮操逼视频免费看| 色欲久久综合| 91爱做| 国产精品96| 亚洲一区二区性爱电影| 欧美综合第一| 91成人精品| 人人看欧美性爱| 久久精品亚洲婷婷| KK色在线影院| 秋霞一级A片黄色视频| 五月婷婷综合网| 91性| 亚洲欧洲自拍图片专区满春格| 日本精品成人无码| 黄日韩| 91久久久亚洲| 久久婷五月| 99爱爱| 69少妇一区二区| 91丨国产丨白浆| 天天综合网~91| 成人性爱美曰韩| 97视频620| TS人妖另类精品视频系列| 色情综合| 亚洲影视第一页| 性久久| 久草资源欧美在线视频| 99re免费| 国产999精品久久久久久| 熟妇无码视频三区| 国产91精品福利在线| 午夜欧美神马久久久久| jazzjazz国产精品麻豆| 日韩素人无码一区二区三区三州| 五月天九九日国产精品一区二区三区| 国产曰批免费观看久久久| 99国产在线绯色一区| 九九热AV| Av色五月| 日韩精品在线视频,日韩精品……| www.色婷婷| 夜夜欧美| 久久乐| 加勒比中文av| 精品精品精品| 国产精品扒开腿做爽爽爽视频| 91狠狠综合久久久| 91N综合网| 99操逼| 另类小说欧美激情校园春色| 超碰在线成人| 国产精品久久久亚洲第一牛牛_在线观看| 午夜理论片在线观看免费| 国外91| 欧美日韩中文亚洲v在线综合| 日韩中文字幕精品一二三事国产精品| 91成人久久 | 国产av高清版| 人妻色偷色噜| 亚洲情色图片区| 亚洲天堂人妻熟妇视频| 欧美激色| 无套内射性感少妇视频| 超碰在线免费一区二区三区| 久久午夜伦| 免费A片三p视频| 亚洲视频,小说| 国产精品激情久久久久久久| 97在线欧| 99热精品在线| 国产家庭乱伦表演| 日韩人妻精品中文字幕| 无码在线亚洲| v91av| 午夜欧美J进J出白浆流出久久久| 日韩综合成人免费视频| 免费97视频| 国产激情久久| 狠狠久久手机视频精品| 久久草视频污视频| 久99视频| 日韩欧无码一区二区三区免费不卡| caopeng97人妻| 日本色色色色色视频| 欧美碰碰综合色| 欧美一二三区四五区| 可以在线观看AV的网站| 天堂综合网| 国产二区三区粉嫩在线| 日本免费亚洲欧美| 色综合国产在线观看| 啊啊啊啊好大好硬啊啊啊啊啊| 日本九九九九| 久久久久久亚洲Av无码| 国产怡红院在线| 日本中文字幕高跟| 乱伦熟女区| 26uuu成人影片| 97操B| 伊人网在线观看| 亚洲激情网| av强奸乱轮| 男人的天堂久久久| 中国的操老妇女| 爆乳免费黄网站| 懂色AV蜜臀无码精品APP | 天天综合欧美综合| 丁香六月啪啪| 无码人妻精品一区二区中文| 人人妻人人爽| 九九九九欧美| 无码一区二区三区四区五区六区七区八区九区十区视频 | 另类 综合 日韩 欧美 亚洲| 久热99| 在线观看亚洲专区| 丁香七月婷婷| 欧美高清在线| 宗合情欲网| 深爱激情五月天| 丝袜美腿制服人妻二区中文字幕| 精品午夜福利| 欧美成人贴图| 性交一区二区在线播放| 亚洲国产一区二区三区在线| 五月香婷婷| 国产亚州精品美女久久久免费| 狠狠操狠狠操操| BBBBB97COM| 青青草一区二区三区四| 欧美情色贴图| 五月天伊人| 97网址www| 中文字幕黑人大片| 亚洲av无码成人精品国产| av在线免费一区二区| 国产日韩手机视频在线| 综合网亚洲| 欧美乱欲| 97色欧洲| 日韩欧美蜜桃精品久久中文字幕久久 | 熟妇色99| 亚洲综合嫩| 青青草原伊人网| 九九热午夜欧亚国产视频| 精品无码久久久久| 今日头条成人一区二区三区四虎精品| 东京太热久久久| 野狼激情网| 伊人亚洲国产一成人久久精品,久久| 日韩精品中文字幕二区| 一区二区三区视频在线观看免费| 韩日性爱av| 青青操综合网| 国产精品久久久久久久黄无码| 在线色导航| 国产啊v在线免费播放| 少妇一区二区三区高速| 超碰色男人操熟女| 操操吧亚洲乱伦视频| 国产乱伦亚洲| 思思热久久成人| 国产第25页在线观看| 色情乱伦AV| 国产欧美亚洲精品a第2页| 亚洲无码一区二区三区三州| 亚洲精品日日夜夜52| 日本中文字幕在线电影| 成人av免费观看| 国产丝袜视频| 7月婷婷综合| 国产乱码精品久久久久久| 亚洲高清少妇| 久久激情四射婷婷丁香五月天|