亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

SSM + 微信小程序?qū)W生簽到系統(tǒng)實(shí)戰(zhàn):從數(shù)據(jù)庫(kù)設(shè)計(jì)到定位簽到與部署避坑

SSM + 微信小程序?qū)W生簽到系統(tǒng)實(shí)戰(zhàn):從數(shù)據(jù)庫(kù)設(shè)計(jì)到定位簽到與部署避坑 簡(jiǎn)介這份資源是面向高校計(jì)算機(jī)相關(guān)專業(yè)學(xué)生與Java開(kāi)發(fā)學(xué)習(xí)者的畢業(yè)設(shè)計(jì)/課程設(shè)計(jì)完整項(xiàng)目包主題為基于微信小程序的學(xué)生簽到系統(tǒng)后端采用SSM框架實(shí)現(xiàn)。項(xiàng)目圍繞簽到管理場(chǎng)景覆蓋學(xué)生微信授權(quán)登錄、教師創(chuàng)建簽到任務(wù)、一鍵與二維碼簽到、簽到記錄查詢、消息提醒、師生權(quán)限區(qū)分以及簽到率與遲到曠課統(tǒng)計(jì)等模塊適合作為畢設(shè)選題參考或SSM與小程序聯(lián)調(diào)的練手案例。壓縮包共1087個(gè)文件約16.02MB包含120個(gè)Java后端源碼、137個(gè)Vue前端頁(yè)面、137個(gè)JS腳本以及44個(gè)wxss與43個(gè)wxml小程序頁(yè)面文件另有sql建表腳本、properties配置、json數(shù)據(jù)與png、svg等界面素材前后端與數(shù)據(jù)庫(kù)結(jié)構(gòu)相對(duì)完整。目前已有132人學(xué)習(xí)下載。讀者可據(jù)此梳理簽到系統(tǒng)的業(yè)務(wù)分層與接口設(shè)計(jì)參考權(quán)限控制、統(tǒng)計(jì)分析與消息通知的實(shí)現(xiàn)思路并借助現(xiàn)成目錄結(jié)構(gòu)快速搭建運(yùn)行環(huán)境、對(duì)照排查配置問(wèn)題。1. 從一份 .rar 說(shuō)起學(xué)生簽到系統(tǒng)為什么還在用 SSM 微信小程序每年畢業(yè)季計(jì)算機(jī)相關(guān)專業(yè)的畢設(shè)題目里總有一批“學(xué)生簽到系統(tǒng)”反復(fù)出現(xiàn)而技術(shù)棧幾乎清一色是SSM 框架 微信小程序。很多人第一反應(yīng)是“這玩意兒不是爛大街了嗎”但真正動(dòng)手做過(guò)的人會(huì)發(fā)現(xiàn)它恰好卡在一個(gè)很微妙的位置業(yè)務(wù)邏輯簡(jiǎn)單到能講清楚工程鏈路又完整到能覆蓋從數(shù)據(jù)庫(kù)設(shè)計(jì)、后端接口、小程序端交互到部署聯(lián)調(diào)的全流程。對(duì)于想快速跑通一個(gè)“能演示、能答辯、能二次開(kāi)發(fā)”的完整項(xiàng)目的人來(lái)說(shuō)這套組合的性價(jià)比其實(shí)很高。這份標(biāo)題里的.rar壓縮包通常包含后端 SSM 工程、小程序前端源碼、SQL 建表腳本和一份說(shuō)明文檔。它解決的核心問(wèn)題是教師發(fā)布簽到任務(wù)學(xué)生在微信小程序端完成定位簽到或數(shù)字簽到后臺(tái)實(shí)時(shí)統(tǒng)計(jì)出勤情況。適合的人群很明確——正在做畢設(shè)的學(xué)生、需要快速搭一套內(nèi)部考勤原型的開(kāi)發(fā)者以及想拿一個(gè)完整項(xiàng)目練手 SSM 與小程序聯(lián)調(diào)的人。接下來(lái)我會(huì)按“先跑通、再改對(duì)、最后避坑”的順序把這條鏈路拆開(kāi)講清楚。2. 把 SSM 后端跑起來(lái)從建表到第一個(gè)簽到接口2.1 數(shù)據(jù)庫(kù)設(shè)計(jì)三張核心表?yè)纹鹫麄€(gè)簽到邏輯拿到壓縮包后不要急著打開(kāi) IDE 跑代碼。先看 SQL 腳本因?yàn)楹灥较到y(tǒng)的所有業(yè)務(wù)都圍繞三張表展開(kāi)用戶表、簽到任務(wù)表、簽到記錄表。很多同學(xué)跑不起來(lái)項(xiàng)目根因就是表結(jié)構(gòu)沒(méi)吃透字段對(duì)不上。常見(jiàn)做法是先用 Navicat 或命令行把庫(kù)建好字符集統(tǒng)一用utf8mb4否則學(xué)生姓名里的生僻字會(huì)變成問(wèn)號(hào)。下面是我一般會(huì)先執(zhí)行的建表語(yǔ)句字段命名和索引都按實(shí)際查詢場(chǎng)景做了調(diào)整-- 用戶表同時(shí)存教師和學(xué)生用 role 區(qū)分 CREATE TABLE sys_user ( id INT PRIMARY KEY AUTO_INCREMENT, openid VARCHAR(64) DEFAULT NULL COMMENT 微信openid學(xué)生端登錄用, username VARCHAR(32) NOT NULL COMMENT 學(xué)號(hào)或工號(hào), password VARCHAR(64) NOT NULL COMMENT MD5加密存儲(chǔ), real_name VARCHAR(32) NOT NULL, role TINYINT NOT NULL DEFAULT 0 COMMENT 0學(xué)生 1教師, class_id INT DEFAULT NULL COMMENT 學(xué)生所屬班級(jí), UNIQUE KEY uk_username (username), KEY idx_openid (openid) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 簽到任務(wù)表一次簽到活動(dòng)對(duì)應(yīng)一條記錄 CREATE TABLE sign_task ( id INT PRIMARY KEY AUTO_INCREMENT, teacher_id INT NOT NULL, title VARCHAR(128) NOT NULL, start_time DATETIME NOT NULL, end_time DATETIME NOT NULL, sign_type TINYINT NOT NULL DEFAULT 1 COMMENT 1普通簽到 2定位簽到 3數(shù)字簽到, sign_code VARCHAR(8) DEFAULT NULL COMMENT 數(shù)字簽到碼, status TINYINT DEFAULT 1 COMMENT 1進(jìn)行中 0已結(jié)束, KEY idx_teacher (teacher_id), KEY idx_time (start_time,end_time) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 簽到記錄表學(xué)生每簽一次寫(xiě)一條用聯(lián)合唯一索引防重復(fù) CREATE TABLE sign_record ( id INT PRIMARY KEY AUTO_INCREMENT, task_id INT NOT NULL, student_id INT NOT NULL, sign_time DATETIME DEFAULT CURRENT_TIMESTAMP, latitude DECIMAL(10,7) DEFAULT NULL, longitude DECIMAL(10,7) DEFAULT NULL, status TINYINT DEFAULT 1 COMMENT 1正常 2遲到 3補(bǔ)簽, UNIQUE KEY uk_task_student (task_id,student_id), KEY idx_student (student_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;這段 SQL 里有兩個(gè)參數(shù)值得單獨(dú)說(shuō)。uk_task_student這個(gè)聯(lián)合唯一索引是防重復(fù)簽到的第一道防線比在 Java 層用if判斷可靠得多因?yàn)椴l(fā)場(chǎng)景下先查后插必然出問(wèn)題。sign_type字段決定了后續(xù)接口的分支邏輯定位簽到需要額外存經(jīng)緯度數(shù)字簽到需要校驗(yàn)sign_code普通簽到則只記錄時(shí)間。索引方面idx_time是為了教師端按時(shí)間段篩選任務(wù)時(shí)走索引不然數(shù)據(jù)量上來(lái)后列表查詢會(huì)明顯變慢。2.2 SSM 分層與簽到接口實(shí)現(xiàn)SSM 的經(jīng)典分層是 Controller → Service → Mapper配置文件包括applicationContext.xml、spring-mvc.xml、mybatis-config.xml和jdbc.properties。壓縮包里的配置大概率用的是 MySQL 5.7 驅(qū)動(dòng)如果你本地是 MySQL 8需要把驅(qū)動(dòng)類改成com.mysql.cj.jdbc.Driver并在 JDBC URL 后面加上serverTimezoneAsia/Shanghai否則啟動(dòng)就報(bào)時(shí)區(qū)錯(cuò)誤。簽到接口是整個(gè)后端最核心的一段代碼它要處理“任務(wù)是否在有效期內(nèi)”“學(xué)生是否已簽到”“簽到類型對(duì)應(yīng)的校驗(yàn)邏輯”三件事。我一般會(huì)把校驗(yàn)放在 Service 層Controller 只做參數(shù)接收和結(jié)果包裝Service public class SignServiceImpl implements SignService { Autowired private SignTaskMapper signTaskMapper; Autowired private SignRecordMapper signRecordMapper; Override Transactional(rollbackFor Exception.class) public Result doSign(Integer taskId, Integer studentId, String signCode, BigDecimal lat, BigDecimal lng) { // 1. 查任務(wù)判斷是否存在且在有效期內(nèi) SignTask task signTaskMapper.selectById(taskId); if (task null) { return Result.fail(簽到任務(wù)不存在); } Date now new Date(); if (now.before(task.getStartTime()) || now.after(task.getEndTime())) { return Result.fail(不在簽到時(shí)間范圍內(nèi)); } // 2. 防重復(fù)先查一次數(shù)據(jù)庫(kù)唯一索引兜底 SignRecord exist signRecordMapper.selectByTaskAndStudent(taskId, studentId); if (exist ! null) { return Result.fail(請(qǐng)勿重復(fù)簽到); } // 3. 按簽到類型分支校驗(yàn) if (task.getSignType() 3) { if (!task.getSignCode().equals(signCode)) { return Result.fail(簽到碼錯(cuò)誤); } } // 4. 寫(xiě)入記錄定位簽到才存經(jīng)緯度 SignRecord record new SignRecord(); record.setTaskId(taskId); record.setStudentId(studentId); record.setSignTime(now); if (task.getSignType() 2) { record.setLatitude(lat); record.setLongitude(lng); } signRecordMapper.insert(record); return Result.ok(簽到成功); } }Transactional注解在這里是必須的因?yàn)椤安橹? 插入”是一個(gè)原子操作雖然唯一索引能兜底但事務(wù)能保證異常時(shí)回滾干凈。sign_type的判斷順序也有講究先判數(shù)字簽到再判定位簽到最后走普通簽到這樣擴(kuò)展新類型時(shí)只需要加分支不用動(dòng)主流程。參數(shù)lat和lng用BigDecimal而不是double是因?yàn)榻?jīng)緯度精度要求高double在序列化時(shí)容易出現(xiàn)精度丟失導(dǎo)致定位簽到算距離時(shí)偏差幾十米。2.3 用 Postman 驗(yàn)證接口再動(dòng)小程序后端寫(xiě)完不要直接開(kāi)小程序模擬器先用 Postman 把接口跑通。啟動(dòng) Tomcat 后請(qǐng)求http://localhost:8080/sign/dosignBody 用 form-data 傳taskId、studentId、signCode。如果返回{code:200,msg:簽到成功}說(shuō)明后端鏈路沒(méi)問(wèn)題。這一步能幫你把“后端問(wèn)題”和“前端問(wèn)題”隔離開(kāi)不然聯(lián)調(diào)時(shí)兩邊報(bào)錯(cuò)排查起來(lái)就是黑匣子。常見(jiàn)的一個(gè)翻車(chē)點(diǎn)是中文亂碼。如果返回的msg是問(wèn)號(hào)檢查spring-mvc.xml里有沒(méi)有配StringHttpMessageConverter的supportedMediaTypes為text/plain;charsetUTF-8以及 Tomcat 的server.xml里Connector有沒(méi)有加URIEncodingUTF-8。這兩個(gè)地方漏一個(gè)中文就廢了。3. 微信小程序端登錄、簽到頁(yè)與請(qǐng)求封裝3.1 微信小程序登錄獲取手機(jī)號(hào)與 openid 綁定小程序端的登錄流程和普通網(wǎng)頁(yè)完全不同它依賴wx.login拿到的臨時(shí)code再傳給后端換openid。很多壓縮包里的代碼只做了wx.login就完事沒(méi)有把openid和sys_user表關(guān)聯(lián)起來(lái)導(dǎo)致學(xué)生換設(shè)備后簽到記錄對(duì)不上。正確的做法是后端提供一個(gè)/wx/login接口接收code調(diào)用微信的jscode2session接口換回openid然后查sys_user表如果openid不存在就綁定當(dāng)前登錄的學(xué)號(hào)。// 小程序端登錄邏輯 wx.login({ success(res) { if (res.code) { wx.request({ url: http://localhost:8080/wx/login, method: POST, data: { code: res.code, username: 2021001 }, success(r) { // 后端返回 openid 和用戶信息存到全局 getApp().globalData.userInfo r.data.data; wx.setStorageSync(token, r.data.data.token); } }); } } });這里有個(gè)參數(shù)要注意jscode2session需要appid和secret這兩個(gè)值放在后端配置文件里不要寫(xiě)在小程序端否則泄露后別人能冒充你的小程序。另外wx.login的code只能用一次五分鐘內(nèi)有效所以后端換openid失敗時(shí)要提示用戶重新登錄而不是反復(fù)用同一個(gè)code重試。3.2 簽到頁(yè)的交互與定位授權(quán)簽到頁(yè)通常有一個(gè)大按鈕點(diǎn)擊后根據(jù)任務(wù)類型彈出不同交互普通簽到直接提交數(shù)字簽到彈輸入框定位簽到先調(diào)wx.getLocation。定位授權(quán)是小程序里最容易踩坑的地方因?yàn)橛脩粢坏┚芙^后續(xù)再調(diào)wx.getLocation會(huì)直接走fail回調(diào)不會(huì)再次彈窗。// 定位簽到先檢查授權(quán)再獲取位置 wx.getSetting({ success(res) { if (!res.authSetting[scope.userLocation]) { wx.authorize({ scope: scope.userLocation, success() { getLocationAndSign(); }, fail() { wx.showModal({ title: 需要定位權(quán)限, content: 請(qǐng)?jiān)谠O(shè)置中開(kāi)啟定位后重新簽到, success(m) { if (m.confirm) wx.openSetting(); } }); } }); } else { getLocationAndSign(); } } }); function getLocationAndSign() { wx.getLocation({ type: gcj02, success(pos) { wx.request({ url: http://localhost:8080/sign/dosign, method: POST, data: { taskId: 1, studentId: 1001, latitude: pos.latitude, longitude: pos.longitude }, success(r) { wx.showToast({ title: r.data.msg }); } }); } }); }type: gcj02這個(gè)參數(shù)必須寫(xiě)因?yàn)槲⑿拍J(rèn)返回的是wgs84坐標(biāo)系而國(guó)內(nèi)地圖和距離計(jì)算通常用gcj02不統(tǒng)一坐標(biāo)系會(huì)導(dǎo)致簽到距離算出來(lái)偏差幾百米。wx.openSetting只能在用戶主動(dòng)點(diǎn)擊后調(diào)用所以要用showModal引導(dǎo)不能直接跳設(shè)置頁(yè)。3.3 請(qǐng)求封裝與頂部導(dǎo)航欄高度適配小程序里如果每個(gè)頁(yè)面都寫(xiě)一遍wx.request后期改域名或加 token 會(huì)改到崩潰。我一般會(huì)封裝一個(gè)request.js統(tǒng)一處理 baseURL、token 注入和錯(cuò)誤提示。另外微信小程序頂部導(dǎo)航欄高度在不同機(jī)型上不一樣自定義導(dǎo)航欄時(shí)需要用wx.getSystemInfoSync拿狀態(tài)欄高度再算上膠囊按鈕的位置否則標(biāo)題會(huì)被劉海擋住。// utils/request.js const BASE_URL http://localhost:8080; function request(options) { const token wx.getStorageSync(token); return new Promise((resolve, reject) { wx.request({ url: BASE_URL options.url, method: options.method || GET, data: options.data || {}, header: { Authorization: token || }, success(res) { if (res.data.code 200) resolve(res.data); else { wx.showToast({ title: res.data.msg, icon: none }); reject(res.data); } }, fail(err) { wx.showToast({ title: 網(wǎng)絡(luò)異常, icon: none }); reject(err); } }); }); } module.exports { request };封裝后頁(yè)面里只需要request({ url: /sign/dosign, method: POST, data: {...} })token 自動(dòng)帶上錯(cuò)誤統(tǒng)一提示。導(dǎo)航欄高度適配的常見(jiàn)做法是statusBarHeight從系統(tǒng)信息里取導(dǎo)航欄內(nèi)容高度固定 44px總高度就是兩者之和然后把這個(gè)值設(shè)給自定義導(dǎo)航欄的padding-top。4. 聯(lián)調(diào)與部署讓簽到系統(tǒng)真正跑在手機(jī)上4.1 本地聯(lián)調(diào)關(guān)閉域名校驗(yàn)與真機(jī)調(diào)試小程序開(kāi)發(fā)工具默認(rèn)校驗(yàn)合法域名本地localhost不在白名單里所以要在“詳情 → 本地設(shè)置”里勾選“不校驗(yàn)合法域名”。真機(jī)調(diào)試時(shí)手機(jī)和電腦必須在同一個(gè)局域網(wǎng)把BASE_URL改成電腦的局域網(wǎng) IP比如http://192.168.1.100:8080同時(shí)確保防火墻放行 8080 端口。如果真機(jī)上請(qǐng)求超時(shí)先檢查電腦防火墻再檢查 Tomcat 是否綁定了0.0.0.0而不是127.0.0.1。Tomcat 默認(rèn)監(jiān)聽(tīng)所有網(wǎng)卡但有些同學(xué)改過(guò)server.xml里的address屬性就會(huì)導(dǎo)致只有本機(jī)能訪問(wèn)。4.2 部署到服務(wù)器打包與數(shù)據(jù)庫(kù)遷移正式部署時(shí)后端打成war包丟進(jìn) Tomcat 的webapps目錄數(shù)據(jù)庫(kù)用mysqldump導(dǎo)出再導(dǎo)入服務(wù)器。小程序端需要把BASE_URL改成正式域名并在微信公眾平臺(tái)配置request合法域名。注意域名必須備案且支持 HTTPS否則小程序正式版無(wú)法請(qǐng)求。# 導(dǎo)出本地?cái)?shù)據(jù)庫(kù) mysqldump -u root -p sign_db sign_db.sql # 服務(wù)器上導(dǎo)入 mysql -u root -p sign_db sign_db.sql # 打包后端Maven 項(xiàng)目 mvn clean package -DskipTests # 把 war 包復(fù)制到 Tomcat cp target/sign.war /usr/local/tomcat/webapps/-DskipTests在部署時(shí)常用因?yàn)閱卧獪y(cè)試可能依賴本地環(huán)境服務(wù)器上跑會(huì)失敗。但第一次部署建議先不加這個(gè)參數(shù)確認(rèn)測(cè)試能過(guò)再跳過(guò)不然可能把編譯錯(cuò)誤帶到線上。4.3 簽到距離校驗(yàn)的服務(wù)端實(shí)現(xiàn)定位簽到如果只存經(jīng)緯度不校驗(yàn)距離學(xué)生可以在宿舍簽教室的到。服務(wù)端需要根據(jù)教師設(shè)置的簽到點(diǎn)和允許半徑用 Haversine 公式算球面距離。這個(gè)邏輯放在 Service 層和簽到主流程分開(kāi)方便單獨(dú)測(cè)試。// 計(jì)算兩點(diǎn)間距離單位米 private static final double EARTH_RADIUS 6371000; public static double getDistance(double lat1, double lng1, double lat2, double lng2) { double radLat1 Math.toRadians(lat1); double radLat2 Math.toRadians(lat2); double deltaLat radLat1 - radLat2; double deltaLng Math.toRadians(lng1) - Math.toRadians(lng2); double a Math.sin(deltaLat / 2) * Math.sin(deltaLat / 2) Math.cos(radLat1) * Math.cos(radLat2) * Math.sin(deltaLng / 2) * Math.sin(deltaLng / 2); double c 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); return EARTH_RADIUS * c; }EARTH_RADIUS用 6371000 米是通用近似值誤差在可接受范圍內(nèi)。Math.toRadians把角度轉(zhuǎn)弧度因?yàn)槿呛瘮?shù)入?yún)⑹腔《?。算出?lái)的距離和教師設(shè)置的allow_radius比較超過(guò)就拒絕簽到。這個(gè)校驗(yàn)必須放服務(wù)端小程序端的定位可以被模擬不能信任客戶端傳來(lái)的坐標(biāo)。5. 避坑與排查簽到系統(tǒng)上線前必須過(guò)的五道坎5.1 現(xiàn)象學(xué)生點(diǎn)擊簽到?jīng)]反應(yīng)控制臺(tái)報(bào) 400原因通常是請(qǐng)求參數(shù)類型不匹配。小程序端wx.request默認(rèn)content-type是application/json而后端 Controller 用RequestParam接收Spring 解析不了 JSON body 里的字段。解決方式有兩種要么后端改用RequestBody接收一個(gè) DTO要么小程序端把header改成application/x-www-form-urlencoded。我一般選后者改動(dòng)最小。5.2 現(xiàn)象簽到記錄里出現(xiàn)同一學(xué)生兩條數(shù)據(jù)原因是并發(fā)請(qǐng)求下“先查后插”失效兩個(gè)請(qǐng)求同時(shí)查到“未簽到”然后都執(zhí)行插入。雖然uk_task_student唯一索引能攔住第二條但會(huì)拋DuplicateKeyException如果沒(méi)捕獲前端看到的是 500 錯(cuò)誤而不是“請(qǐng)勿重復(fù)簽到”。解決方式是在 Service 里try-catch這個(gè)異常返回友好提示同時(shí)前端按鈕點(diǎn)擊后立即置灰防止用戶連點(diǎn)。5.3 現(xiàn)象定位簽到距離算出來(lái)總是差幾百米坐標(biāo)系不統(tǒng)一導(dǎo)致的。微信wx.getLocation默認(rèn)返回wgs84而教師設(shè)置的簽到點(diǎn)可能是從地圖上取的gcj02坐標(biāo)。兩者直接算距離必然偏。解決方式是統(tǒng)一用gcj02小程序端type參數(shù)寫(xiě)死gcj02教師端設(shè)置簽到點(diǎn)時(shí)也用同一坐標(biāo)系。5.4 現(xiàn)象小程序真機(jī)上請(qǐng)求后端超時(shí)開(kāi)發(fā)工具正常開(kāi)發(fā)工具走的是電腦網(wǎng)絡(luò)真機(jī)走的是手機(jī)網(wǎng)絡(luò)。常見(jiàn)原因是電腦防火墻攔了 8080 端口或者手機(jī)和電腦不在同一網(wǎng)段。排查順序先用手機(jī)瀏覽器訪問(wèn)http://電腦IP:8080如果能打開(kāi)說(shuō)明網(wǎng)絡(luò)通問(wèn)題在小程序配置如果打不開(kāi)先關(guān)防火墻再試。另外有些公司 WiFi 開(kāi)啟了 AP 隔離設(shè)備之間不能互訪這種情況只能換熱點(diǎn)。5.5 現(xiàn)象部署到服務(wù)器后中文全部亂碼數(shù)據(jù)庫(kù)字符集、JDBC URL、Tomcat 編碼三處只要有一處不是utf8mb4就會(huì)亂。排查時(shí)先看數(shù)據(jù)庫(kù)SHOW VARIABLES LIKE character%再看 JDBC URL 有沒(méi)有characterEncodingutf8最后看 Tomcat 的URIEncoding。三處都對(duì)齊后重啟 Tomcat亂碼基本消失。6. 進(jìn)階技巧把簽到系統(tǒng)做成能復(fù)用的考勤底座跑通基礎(chǔ)簽到后如果想讓這個(gè)項(xiàng)目在答辯或?qū)嶋H使用中更有說(shuō)服力可以往兩個(gè)方向加?xùn)|西。第一個(gè)是簽到統(tǒng)計(jì)導(dǎo)出教師端按班級(jí)導(dǎo)出 Excel用 Apache POI 或者 EasyExcel 都行EasyExcel 內(nèi)存占用更低適合數(shù)據(jù)量大的場(chǎng)景。第二個(gè)是簽到提醒用微信訂閱消息在簽到開(kāi)始前推一條通知給學(xué)生這個(gè)需要在小程序后臺(tái)申請(qǐng)模板 ID后端調(diào)subscribeMessage.send接口。// 用 EasyExcel 導(dǎo)出簽到記錄 public void exportSignRecords(HttpServletResponse response, Integer taskId) throws IOException { ListSignRecordVO list signRecordMapper.selectByTask(taskId); response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet); response.setCharacterEncoding(utf-8); String fileName URLEncoder.encode(簽到記錄, UTF-8); response.setHeader(Content-Disposition, attachment;filename fileName .xlsx); EasyExcel.write(response.getOutputStream(), SignRecordVO.class) .sheet(簽到明細(xì)) .doWrite(list); }Content-Disposition里的文件名必須URLEncoder.encode否則中文文件名在部分瀏覽器上會(huì)變成亂碼。EasyExcel.write的第二個(gè)參數(shù)是映射的 VO 類字段上加ExcelProperty(學(xué)號(hào))注解就能控制表頭。還有一個(gè)容易被忽略的點(diǎn)簽到系統(tǒng)的時(shí)區(qū)。服務(wù)器如果是 UTC 時(shí)間而sign_task的start_time存的是北京時(shí)間比較時(shí)就會(huì)差 8 小時(shí)。我一般會(huì)在 JDBC URL 里加serverTimezoneAsia/Shanghai并且 JVM 啟動(dòng)參數(shù)加-Duser.timezoneAsia/Shanghai雙保險(xiǎn)。最后說(shuō)一個(gè)我自己的習(xí)慣每次改完簽到邏輯先用 Postman 跑一遍正常簽到、重復(fù)簽到、超時(shí)簽到、錯(cuò)誤簽到碼四個(gè)用例再開(kāi)小程序點(diǎn)一遍。這四個(gè)用例覆蓋了 90% 的線上問(wèn)題比漫無(wú)目的地翻日志快得多。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久6热视频免费观看| 翔田千里AⅤHD无码| 蜜臀人妻少妇久久在线观看| 超碰人妻97| 五月综合色| 看日韩操逼| 中文字幕无码不卡啪啪| 丰满人妻一区二区三区四区| 花野真衣| 顶级丝袜熟女一区二区三区| 超碰亚洲97| 久久产精品一区二区三区电影| 五月花婷婷| 欧美黄页| 天天看高清麻豆| 国产AV色黄看到爽| 亚洲第一页色网| 久久ww| 精品国产乱码久久久久久久| 婷婷五月天av| 日本午夜操逼| 久久无码一区二区二三区性色| 亚洲棕合电彰| 蜜桃精品一区二区三区ww| 91久久久亚洲| 鸥美中出| 欧美同性恋 的搜索结果 - 91n| 五月丁香六月婷| www.91逼逼.com| 久久综合av| 99久久综合网| 国产成人无码a| 97干在线| 国产精品乱码久久久久久久| 六六久久日韩不卡| 国产尤物AV尤物在线观看不卡| 亚洲欧美视| www.男人天堂| 夜夜高潮夜夜爽高清视频一 | 五月天色图影视| 欧美极品性爱天天射| 91丨国产丨白浆秘 洗澡动漫| av大香蕉网站| 婷婷在线视频| 天天谢天天干| 欧美1区二区三区公司| 中日韩免费看男女操逼大全| 亚洲清纯综合| 超碰97首页| 91狠婷| 高清无码久操视频| 综合国产影视三级| 亚洲欧美高清无码| 国产无码精品成人| 亚洲最新Av| 欧美高清第一页| 欧美变态激情网| www九九热| 伊人久久大香线蕉无码| 国产精品精品系列在线观看| 午夜福利av电影在线| 免费试看60秒| 26uuu性| 强奸乱伦大香蕉| 国产操偷| 亚洲av夫妻操穴网| 综合激情97| 顶级少妇BT天堂| 成人老鸭窝人人在线视频| 99re69综合| 久久亚洲影院一区二区| 亚洲色图a| 成人热久久精品| 99re这里只有精品中心播放| 日韩中文字幕在线视频观看| 日本不卡高清视频| 久久久网站| 三上制服丝AV| 精品一区二区三区丰满熟女-亚洲欧美一区 | 五月婷婷性爱| 性爱AV天堂| 精品丰满熟妇人妻一区| 乱伦熟女专区| 国产97在线视频| 92性色国产午夜福利在线661 | 亚洲色图久久成人| 综合天天。| 欧美性爱一区二区三区四区| 免费看国产大AB| 亚洲伊人久久精品狠狠在线| 午夜福利区| 欧美精品不卡一二三四在线91| 美骚妇av高清在线| 久区视频| 国产网站在线播放| 一及黄久一点| 99av| 欧美午夜精品久久久久久3D | 欧洲亚洲国产综合在线| 91狼人| 最新国产精品久久精品| 天天天乱色综合全| 日日日日做夜夜夜夜做无码97| 亚洲加勒比| 911粉嫩人妻| 伊人97色天使| 日本加勒比无码专区| 熟妇女伦乱视频| 免费公开人人操| 人人妻人人操人人乐| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 国产做?爰片久久毛片?片美国| 91啪9色| 91老熟妇| 综合网欧| 人人操人人爽人人操人人| www.色婷婷色综合| 日本大香蕉| 综合色欧美| 久久这里只精品免费福利| 蜜桃视频精品一区二区| 熟女探花啪啪| 国产精品久久久久久久久久久久久久久久久久 | 成人性爱免费播放| 欧美 熟女 日韩| 岛国片在线播放| 国产精品2020| 九九热久久99精品re| 91久久国产综合久久| 欧美日韩久久精品爱爱| 激情五月天婷婷| 亚洲骚男同com| 成人av福利在线观看| 真实高潮91| 欧美一级A一级a爱片久久| 国产精品露脸在线观看| 欧洲视频在线| 国产一级特黄大片处女| 婷婷色婷婷| 九一精品牛牛一区二区| 日韩美女操b| 人人摸人人舔一区二区| 婷婷丁香六月| 中国少妇XXXX做受| 亚欧美综合| www色色色com| 国产无码精品久久久久久| 国产精品久久9| 欧美国产精品久久九九| 亚洲欧美91√| 成人色女网| 日va操| 久久最新视频免费观看| 成人亚欧免费视频| 992视频一区| 欧美日本久久精品一区| 新版天堂中文资源8在线| 婷婷10月天青娱乐| 日韩二级| 91干熟女| 国产美女口爆吞精视频| 九九九九九九免费视频| 日韩素人无码一区二区三区三州| 欧美日韩不卡a片| 少妇激情AV| 丝袜熟女2P| 人人操人人操人人操人人操人人操人人人11.CM| 亚州中文字幕超碰97| 99久视频| 国产精品网址| 91色人妻| 97伊人| 久久欧洲| 日本熟妇人妻一区二区三区| 97超碰免费人人性爱| ?亚洲伊人伊成久久人综合网| 国产精品扒开腿做爽爽爽视频| 亚洲成人妻日韩在线| 伊人AAA| 久久超碰com| 91国产大片| 欧美一级色| 日va操| 国产兽交视频在线播放| 97视频在线播放| 精品久久9| 久久久激情| 操操操五月天婷婷丁香影院| 国产二区三区免费视频| 蜜臀在线视频| 中文字幕三四五区| 啊啊啊啊免费视频| 99在线精品观看视频中文| 国产男女无套97| 91精品综合久久久久久五月丁香| 亚洲色图亚洲无码强奸乱伦| 98超碰欧美| 夜夜操中文字幕| 久久偷拍人| 刺激性视频黄页| 97人人射| 五月婷婷激情综合| 五月天激情网图片| 99色色网| 91九九九馒头| 亚州综合色| 五月天精品| 人妻大香蕉| 91色伦综合| 欧美97视频| 超碰中文字幕人妻草一区| 91精品人妻一区二区三区蜜桃臀| 久久国产精品91| 丰满人妻一区二区三区四| 久9视频| 黄色高清无码无码破解免费暗网| 亚洲图片偷拍视频区| 人、人、摸,人、人、草| 人妻中文字幕日韩电影| 五月婷婷六月丁香| 亚码激情| 欧美另类自拍 | 国产97色在线 | 亚洲| 9久9久9久9久视频网站| 天天噜| 丰满人妻aA一区二区三区| 日韩一级二级三级免费看完整版| 久久五月天婷婷丁香中文字幕| 一级二级三级黑人无码| 91色久| 伊人综合色网| 少好三P| 日韩91网| 亚洲国产一级黄色视频| 家庭乱伦性爱av| 女同性恋久久| 美女啊啊啊啊pc| 第四色色综合91| 新97国产超碰| 97超碰大| 国产亚洲美日韩Aⅴ中文字幕无码成人| 福利社区午夜一区二区| 亚洲欧美大| 日本欧美色| 91久久久久| 天天爱综合网| 久久激情婷婷| 国产精品久久久久久无码红治院| 东京热免费视频| 色女99一级片在线观看| 久久久成人免费av电影| 狠狠婷婷亚洲中文综合久久| 日韩一区二区三区四区五区| 久久久久久久一级黄色打同平台| 亚洲精品1区| 成人性交免费视频| 在线a v| 天天色播| 九99久久| 色综和网| 超碰2017| 激情综合婷婷| 欧美男人亚洲天堂| 中文字幕蜜乳av| 国产女性无套 免费观看| 欧美黄色图片| 美女黄网| 香蕉婷婷| 蜜臀中文无码午夜| 日本欧美亚洲高清在线看| 爆乳免费黄网站| 老熟女天天操| 亚洲Av无码成人精品国产| 玖玖综合色| 色逼综合| 中文字幕 码精品视频网站| 97一区二区三区视频| 国内伊人久久久久久网站视频| 极品尤物自安慰| 久久成年精品| 91香蕉视频在线观看免费| 理论久久婷婷网 8| 欧亚日韩一区在线| 精品久久久久,69国产成人精| 久久精品一区二区三区蜜桃臀| 超碰国产精品无码| 亚洲自拍一区夜夜操| 香蕉视频欧美一卡二卡| 伊人久久婷婷| 老司机香蕉| 日欧操屄视频| 人妻天堂三区| 天天摸天天插天天日| 屁股久久久久久久久久| 天天综合~91入口| 欧美激情视频一区二区| 色色五月天婷婷| 在线观看啊啊啊啊啊| 精品亚洲黄色片 国产精品导航一区二区| 91美女视屏| 天天日天天操天天射河南省| 九一精品牛牛一区二区| 日本狂喷奶水在线播放212| 天堂国产AV| 激情 欧美 亚洲 小说| 精品国产99| 无码高清操逼网址| 日日干夜夜骑| 人妻AV在线| 四虎免费在线观看| 九X超碰| 8x福利精品第一福利视频导航| 操人妻逼91| 福利操逼| 亚洲狠| 内射日韩大臀美女| 日本十八禁免费看污网站| www.男人天堂| 色婷婷五月天| 中文字幕人成乱码熟女香港| 97超碰中文字幕| 日韩成人精品中文字幕| 亚洲av性爱电影| 97自拍一区| 日本精品高清一二区一本到| 麻豆视频一区二区| 嫩草伊人久久精品| 97摸视频| 午夜啪| 九九人妻| 大香蕉欧美伊| 香蕉婷婷| 无码精品久久| 丝袜美腿操av| 久久久久9999精品九九九| 国产大学生高潮在线播放| 男人的天堂VA| 色综九九九一区| 亚洲AV无码| 在线综合色| 久久人| 欧美一区二区三区黄色影视| 96精品在线| 欧亚乱色熟女一区二区| 久草线上视频免费看| 九九色精品| 啊啊啊不要啊啊受不了了视频在线| 精品久久青青草| 双插在线| 欧美强奸乱能| 2024黄色视频| 亚洲极品| 日韩精品操少妇| 亚洲五月丁香花狠狠干一区二区三区| 99老司机精品视频在线观看| 国产精品噜噜噜日日日| 另类av综合久久| 屌逼麻豆| 25国产精品免费观看| 操逼www.| 美女午夜福利免费视频| 亚洲人体视频在线观看| 999精品久久久久久久| 98福利在线视频| 第四色色综合91| 长长久久88视频| 偷拍自拍在线视频观看| 久久久精品91八戒| 在线午夜成人无码视频| 国产区日韩区在线观看| 女人天堂av在线播放| 欧美激情 亚洲色图| 天天色踪合| 伊人久久大香线综合无码| 亚洲欧洲小说图片视频| 天天添天天干电影| 超踫中文字幕| 青青欧美在线| 欧美另类色| 中文无码一二三区| 淫色网综合| 超碰97爽| 精品九九九九九九九| 欧洲Au麻豆| 欧洲综合视频| 亚洲五区熟女| 素颜老阿姨乱情色| 久久一本大香蕉| www.AV有限公司一区| 91麻豆天美传媒HD| 久久亚洲人妻| 亚洲AV在线资源| 黄久在线| 欧美日韩人妻精品系列一区二区三区| 欧美日韩制服| 在线97视频| 撸无码不卡免费视频| 日日黄色三级网站| 久久久久久裸体| 床戏久久久av一区二区麻豆| 蜜臀久久99精品久久久久久成人小说| 俞拍久久国应视频| 亚洲精品一区二区精华| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 亚州操操穴网| 91大胆欧美| 亚洲av总站| 蜜桃色院一区久久| 少妇九九九九| 久久精品国产Aⅴ| 国产亚洲女v在线观看| 综合欧美日韩在线观看| 99色综合| 婷婷五月天无码 | 国产亚洲精品美女久久久久久2021| 日韩免费人妻色情网站| 亚州综合电影| 精品大全99999| 欧美97在线欧| 人摸人人操人| 东北女人av| 亚洲综合九| 亚洲激情久久久伊人综合| 97精品久久| 奇米狠999| 亚洲男人bt天堂| 97视频在线观看高清资源| 亚欧美色图| 欧美一级在线观看成人| 久久久五月天| 国产精品丝袜久久亚洲不卡| 色噜噜国产精品视频一区二区| 26uuu国产亚洲综合| 亚洲五码一区二区三区| 99re这里只有精品3| 大香蕉日韩欧美| 老司机午夜精品视频| 成人性爱美曰韩| 亚洲人成色9999精品久久| 亚洲综合色在线| 三级精品三级在线观看| 精品超碰中文在线| 美女天天干| 亚洲无无码αⅴ每日更新| 一区二区激情国产熟女| 九九九国产精品| 国产精品久久久久久久电影渣男| 99色色网| 激情另类激情| 一区三区啪啪| 中文字幕精品亚洲熟女| 色网在线视频观看免费| 国产精品欧美激在线| 亚洲一二三四区| 日韩精品黄片免费观看| 亚洲欧美一区二区不卡视频播放 | 久操热线| 日本在线不卡一二区| 北京美女一区二区| 国产三级在线现体验区| AV天天综合| 男女国产精品| 日韩人妻大香蕉| 天天天干977| 午夜高清成人在线视频| 91国产丝袜美女| 温婉少妇玩3p| 91美女视频电影| 国产精品久久久无码AV网站| 91日日夜夜| 曰本人妻人人澡人人夹| 伊人网在线视频| 国产av强奸美女| 日韩操呦呦影院在线观看| 久久受www免费人成| 午夜天堂精品久久| 免费一级性爱久久| 人人澡人人弄| AA特级绝黄| 久久精品日韩专区免费观看| 欧美v亚洲v日韩v最新在线二区| 嫩草 我啊~嗯~在线| 欧美黑人精品一区二区| 天天日天天干天天摸天天操| 99视频只有精品| 色欧美亚洲| 内射中出日韩在线观看视频| 亚洲1区2区三区高清中文字幕| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 超碰2017| 色天使大香蕉| 夜嗨影院| 夜夜爽夜夜爽| 97er欧美性| 天天天天天干夜夜夜夜夜操| 男人综合网| 亚洲中文人妻色| 乱伦1色页| 人妻熟女一区二区在线视频| 日韩乱码av| 欧美综合娱乐久久| 欧美熟妇精品黑人巨大91| 九九久久首页| AAA久久| 超碰91在线| 久草精品视频| 丝袜美腿欧美| 中日韩熟女| 亚洲欧美伦综合| 大香蕉伊人在线成人AV在线观看 | 制服诱惑亚洲一区二区三区在线观看| 亚洲色诱惑| 以及麻豆国产入口在线观看免费| 国产精品电| 久久久久久夜夜夜夜夜| 成人性爱全视频观看| 日本一区二区不卡| 青青草导航在线视频| 麻豆视频test| 国产男女无套视频免费观看| AAAA欧美日韩| 2017天天插| 夜夜 中文视频rt| 最新欧洲欧美日本激情网站| 久久夜黄色无码A级大片| 91五十路| 日本精品加勒比海一区| 久久精品国产精品| 亚洲五区熟女| www.97在线| 静品嫩模一区二区| 久久国产热视频97电影| 综合伊人网12色| 这里只有97精品| 嫩草影院永久在线制服丝袜| 日本精品人妻少妇一区二区| 五月天婷婷成人网| 久热婷婷| 综合激情婷婷| 亚洲日韩国产欧美综合v| 欧美自拍偷拍综合图片| 热思思免费视频| 97超碰欧美精品| 亚洲加勒比色图| 亚洲天堂日本| 日日噜噜夜夜久久亚洲一区二区 | 极品综合| 91精品久久久| 内射小黄片| 婷婷色色五月天福利| 亚洲国产97| 男人天堂资源| 97在线免费看视频| 国产精品96久久久久久| 99999久久精| 欧美日韩不卡传媒| 91热热色| 日骚逼视频| 偷拍视频青青草在线视频| 91四海无码日韩欧美| 久久国产精品视频| 可乐操亚洲蜜911| 欧美丝袜中文字幕07在线| 国产精品白丝www| 精品人妻久久久| 天天天肏屄肏屄肏屄欧美欧美| 大色网久久| 亚洲性高潮| 欧亚日韩中文在线| 国产二区三区免费视频| 国产中文字幕在线点播| 在线A日本| 99热只有这里有精品| 人人操人人狠狠操| 亚洲少妇喷视频看| 久久伊人网视频一区二区三区| AND人妻系列| 大香蕉男人的天堂| 少妇熟女视频一区二区三区| 777超碰| 日韩啊V| 久久精品高清AV| 日欧操屄视频| 69AV女优男人的天堂| 人妻在线大香蕉| 亚洲做性| 国产成人欧美精品在线| 欧美精品一区二区少妇免费A片 | 亚洲999综合| 日韩电影中文字幕| 91丨国产丨白浆秘 洗澡动漫| 国产乱色国产精品免费视| 人人操人人摸人| 神马精品视频| 狠操91,com| 91色香| 大学生口爆吞精| 亚洲人妻av| 欧美情色男人的天堂| 后入日本1234| 国产成人精品必看 | 四虎884a| 97精品一区二区三区免费| 啪啪啪东京| 性爱综合网| 国产成人主播| 91天天综合| 国产综合永久精品日韩鬼片| 九九毛片这里只有精品| 久久风骚城市| 成在线人在线观看视频| 精品超碰中文在线| 超碰9 7女人 | 999九九九九国产动| 五月婷亚洲精品天堂| 国产树林里野战在线看| 另类亚洲图色| 78超碰| 福利在线黄片| 天天天天天超碰| 成·人免费午夜在线观看| 在线观看av区| 日韩天天本| 日本不卡一区二区| 99色综合| 又黄又硬又粗又长国产视频| 97人妻免费中文字幕| 欧美亚男人的天堂| 天天日夜干| 欧美在线干| 欧美日韩97在线| 自拍偷拍 高清无码| 中文字幕片| 中文字幕在线观| 婷婷九月色| 国产尤物在线三区| 欧亚性爱视频免费看| 97 九色| 国产日韩无码一区二区三区久久区| 婷婷五月综合激情| 色老大| 人人扣人人操| 久久精品国产97欧美精品亚洲 | 超碰 另类 欧美| 国产白丝av| 加勒比无码一区二区三区| 中文字幕一区二区三区人妻不卡| 中文字幕在线观看二区三区| 精品久操| 丁香五月偷拍| 国产精品乱码久久久久| 婷婷色一区| 亚洲av青草久久一区二区| 女优视频第10页| 亚洲欧美另类小说| 精品久一区免费| 岛国免费视频在线| 中文字幕人妻色偷偷久久皮 | 亚洲AV乱码专区国产噜噜亚洲| 超碰成人人人爽人人爽| 欧美激情亚洲色图| 精品毛片av一区二区| 加勒比AV天堂| 日本中文字幕在线视频| 亚洲深夜福利| 天天操女人| 欧美爱三级日韩久久| 亚洲人91| 色九区| 神马久久久久久| AV天堂电影网| 99精品久久久久久久婷婷| 午夜福利 成人 91| 99久久com免费视频′| 日本性交操一区二区不卡系列| 亚州 综合 色图| www…国产操逼| 不卡视频一区蜜桃视频 | 视频二区美腿制服人妻欧美| 欧美熟爽综合| 日韩欧美tv一区二区在线观看| 婷婷五月天色网| 欧美日韩国产传媒在线精品| 91视频伊人| 粉嫩久久久极品| 精品夜夜澡人妻无码| 国产久久成人| 黄页av| 婷婷精品国产一区二区三区日韩| 欧美黄色大香蕉一区二区| 青娱乐休闲视频在线观看| 91少妇香蕉久久精品| 狠狠狠狠狠狠| 免费超碰97在线观看| 久久老熟女| 97看操| 天天插天天插| 乱伦av.com| 蜜臀无码视频在线观看| 亚洲91射| 中文字幕-区二区三区四区视频中国| 亚洲国产欧美中文永久| 色婷婷六月丁香七月婷婷| 在线播放欧洲免费av| 国产女同性恋视频| 老女人爆菊| 国产在线精品偷| 永久免费av无码网站国产app| 91日产桃蜜| 国产精品久久久久久久免牛肉蒲团 | 99re99视频在线免费观看| 久久精品一区二区三区不卡| 国产精品一级毛片不卡视| 人人模人人看| 98超碰欧美| 十八禁电影伊人网| 91高跟美女在线播放| 在线观看一卡二卡| 日韩av乱伦| 亚洲成熟国产精品美女| 色操逼网| 日韩视频精品在线观看| 综合网亚洲| 青娱乐91| 中文字幕三四五区| 极品出轨视频网站| 精彩久久中文| 香蕉免费一区二区三区不读| 中文在线久久字幕| 国产传媒美日韩av| 欧美永久激情一区二区| 97干日韩| 亚洲日韩肥臀视频在线观看| 日本三级韩三级99久久| 色色无码| 97精品国产97久久久久久| 五月综合久久| 久久人妻视频| 国产av尤物| 日韩一级二级| 亚洲国产欧美日韩人妻日中文| 嗯啊不要啊在线 | 春色综合网| 中文字幕乱妇免费视频| 91 偷| 久久嫩草| 久久只有精品| 国产不良强奸视频免费看| 家庭乱伦国产精品| 免费1级a做爰片观看| 日韩在线一区二区| 日本操大逼| 国产日本久久免费精品| AAA久久| 蜜桃久久一区二区三区| 蜜桃精品一区二区三区ww | 日韩一级久久毛片| 亚洲熟女精品| 爱av免费| 欧美视频在线第3页| 欧美成人精品一区二区三区| 丰满精品人妻少妇久久字幕| 天天日熟妇| 超碰碰97资源站| A级在线视频| 精品九九国产无码| 静品嫩模一区二区| 97综合在线观看| 亚洲drav色图| 本道综合精品| 精品国产无码中文| 思思热免费视频观看| 亚州精人品大香蕉| www.高清无码诱惑一区.com | 人妻娇喘 激情视频| 亚洲精品久久久久毛片A片拉屎 | 东京太热久久久| 亚州色图欧美| 亚州欧美在线| 国产视频一区二区三区在线免费观看 | 色婷婷五月天| 蜜臀久久在线视频| 999国产精品999久久久久久| 日本在线观看网址| 在线观看黄色电话| 嗯……啊…嗯嗯…啊…好舒服| 男人的天堂久久狠| 97色碰| 亚洲Av无码成人精品国产| 日本 成 人 小说 电影 一区二区| 人人超碰在线观看黄| 少妇色欲综合网2| 色黄污美女啪啪啪免费网站| 超碰国产在线| 久久大精品乱码视频人妻熟女| 91n处女在线观看| 一级毛片久久久久久久女人18| 丁香色婷婷| 中文乱码99| 亚洲色图第四色| 一区二区影视| 全球成人中文在线| 久久最新视频免费观看| 91bbbbbb| 色牛牛AV| 综合91网| 欧美一级黄色免费专区| 99re视频在线观看这里只有精品| 91嫩草在线| 最近2018中文字幕在线高清第一页| 国产67194| 久久久久婷婷精品av电影| 99亚洲国产精品色一区二区三区| 大香蕉啪啪啪| 91视频女生| Blackedraw视频一区二区| 天天享受天天看| 亚洲加勒比久久日本道| 91婷婷| 色欧美色交综合| 一级特级aaaa毛片免费观看| 久久久久久久久久黄色网| 操国产逼| 中文乱码99| 无码久久亚洲高清,| 天天影视网综合少妇| 九九九九精品视频| 五月丁香激情啪啪| 四虎影视国产精品| 日韩av乱伦| 欧洲亚洲人妻无码久久三区四区| av无码精品久久久久| 99黄页网站| 欧美激情另类一区二区| 一区,二区,三区视频| 国产精品久久发布| 久久超碰日韩精品| 草草影院在线视频| 天天综合97| 夫妻四区五区六区| 欧美成年人性爱视频免费观看| 欧美 亚洲 制服 精品| 亚洲情色欧美| 午夜成人福利影视| 久久久久久久久久久免费精品| 91麻豆天美传媒HD| 天天艹天天日| 懂色av中文字幕一区二区三区天美 | 亚洲精品视频在线播放| 999热日韩精品| 五月天婷婷激情| 97超碰中文在线| 4141514逼喷水三级片| 日韩av免费一级电影| 亚洲天堂情色| 日韩欧美午夜视频在线| 骚妻少妇精品性色无码四色A V| 亚洲AV无码国产成人| 97鸡把在线视频| 91爱综合| 国产绿奴视频在线观看| 九九九九九九免费视频| 五月激情影院| 色综合国产在线观看| 久久亚洲熟妇在线视频| 人妻中文字幕日韩电影| 欧美91久久久久| 污啪啪啪视频| 偷看洗澡一二三区美女| 日本亚洲熟女视频| 狠狠欧美| 97人人爱人人做人人乐| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 美日韩在线不卡人妻| 中文字幕91页| 欧美丝袜中文字幕07在线| 日韩av三四区| 97任你吞精| 亚洲天堂男人天堂| 久久久久国产| 麻豆精品久久久久久久| 国产精品无套内谢| 99re久久| 中出后入| 啊啊啊用力在线观看| 艹少妇网站| 97国产超碰| 91国产丝袜美女| 中日无幕一二三四区| 欧美经典一区二区三区| 狠狠超| 99re在线视频国产| 欧美大香蕉卡久久| 乱伦熟女区| 被窝影院午夜看片无码| 超碰97.com| 新97国产超碰| 青青草九九九九九| 秋霞一级视频在线观看免费| 国产精品成久久久久午夜午夜| 色噜噜人妻av中文字幕| 91亚州欧美| 99成人| 人人爱人人操人人性| 高清不卡一二三区视频......| 亚洲最新a在线观看| 国产高清成人免费视频| 中文字幕第二页| 老熟女中文字幕高清| 亚洲国产一区二区三区在线 | 久久m| 看看小穴| 国产 码在线成人网站| 岛国黄色短视频| 久久精品国产精品一区 | 日韩精品永久在线观看| www.久久制服糖| 欧美中出| 国产精品熟女一区二区三区| 欧美色91| 亚洲成人AB| 日韩专区久久久| 日本丝袜美腿人妻九九| 91狠狠综合久久| 国产精品欧美日韩久久| 国产高清亚洲日韩一区| 免费试看60秒| 国产真实子伦对白| 日韩无码极品| 在线视频 亚洲精品| 亚洲无码一区成人免费午夜| 超碰97综合网| 97网站在线观看| 尤物AV免费网站| 夜夜国自区| 久久99久久99精品天美传媒棢·纸:.| 热热色色综合| 四虎免费视频| 久草毛片| 伊人欧美大香蕉视频| 男人的天堂VA| 国产精品久久蜜乳av| 亚洲欧美黄| 久久久无码视频| 999精品久久久久久久| 色五月av| 九九九精品| 久草精品国产99| 日韩成人精品| 亚洲精美粉嫩嫩泬在线观看 | 91亚洲狠狠色| 91天天爽| 欧美第二页| 国产美女口爆吞精视频| 国产最新小视频在线播放下载| 嫩呦国产一区二区三区AV| 国产自产自拍| 色综合色综合网| 婷婷五月天补不补| 97这里都是精品| 精品九九淫乱男| 日本在线15p| 不卡在线观看视频| 日韩精品一区二区高清 | 97精品97久久| 99精品九九九九九九| av中亚| 中文字幕一区二区三区四区在线视频| 可能人人看人人摸| 色情综合网| 久久超碰、| 青青草原成人| 中文字幕一区二区视频在线观看| 日韩中文字幕精品一区在线| 亚洲精品精品一区二区| 99热综合在线| 天堂射| 亚洲高清色综合| 高清无码一区二区三区| 久热91| 久草婷婷| 久久女人| 日本丝袜人妻内射| 天综合网| 91女优在线观看| 久久老女人| 日韩成人性爱AV| 后入 亚洲 美女 射| 久久久久久久六六 | 综合一区中亚洲国产成人综合精品 | 成人三一级一片aaa| 超91综合网| 制服丝袜第二页| 凹凸视频在线一区二区| 国产强奸超碰AV| 91视频成人福利网站在线一区| 天堂亚洲精品| 免费公开人人操| 蜜臀精品1区2区| 黑人性欧美| 日本操逼视频导航| 亚洲综合码| 精品无码少妇| 男人a天堂手机在线版| 久久久不能久久久久| 亚洲资源吧| 约操熟妇| 夜夜嗷嗷一区二区| 亚洲宅男天堂| 久久↗↗| 久久五月天婷婷丁香中文字幕| 操人妻少妇中文| 亚洲做性| 殴美大黄片| 日本顶级天天操狠狠操夜夜操中文字幕| 日韩欧无码一区二区三区免费不卡| 996热| 欧美啪啪啪91| 国产精品熟女丝袜一区二区| 无码久| 影音先锋日本一区二区| 九九九综合精品| 超碰2017| 超碰97精品在线| 大香蕉综合网| 久久久久13| 美女久久久| 你操综合| 一区二区乱码福利| 99超碰色| 秋霞Av理论一级在线| 日韩另类色图| 日本综合色图| 天天添天天干电影| 欧美色图20p| 久热伊人99re| 国产1024在线播放| 美女啊啊啊啊pc| 日韩精品在线视频,日韩精品……| 精品少妇一区二区三区免费观看| 狼人狠干| 爆乳免费黄网站| 国产综合色精品在线观看| 久久久久久夜夜夜夜夜| 高清有码一区二区| 5252色欧美在线| 激情抓乳插进去啪啪啪日韩| 搞中出视频在线观看| 激情网色| 天天搞欧美| www久久久| 综合网91| 亚洲狼狼干综合1| 日韩精品在线观看观看| 欧美第二页午夜| 国产久久久久久久久一区二区 | 亚洲男人的天堂亚洲| 干少妇视频| 亚洲精品色| 免费福利视频中文字幕| 极品色电影院| 极品极品色影院| 不卡在线观看视频| 自拍丝袜美腿人妻| 欧美日本中字另类在线| 疯操AV| 69精品少妇一区二区三区蜜桃| 亚洲无码偷拍| 欧美色图在线视频少妇| 激情第四色| 影音先锋每日最新资源在线观看| 九九九九欧美| www.婷婷| 亚洲日本激情| 日本二区不卡| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲中文字母在线播放| 99在线精品视频| 91熟女综合| www.91久久| 人人性爱视频免费| 欧美第一页| 欧美日韩m| 免费啪啪一级视频| 亚洲超碰97| 日本加勒比无码专区一二三| 超碰人人乐97| 日韩不卡在线一区二区| 天天做天天爱| 东北操逼| 毛片视频白嫩| 伊人久久大香大香线蕉中文| 男人天堂电影院| 九热超碰| 日少妇亚洲版| 91蜜桃婷婷狠狠久久综合9色| 亚洲无线码欧洲精品区别| 亚洲色图A| 日日干夜夜欢| 久久精品天美| 啊啊啊啊嗯嗯嗯用力好爽 | 男人的天堂2018.| av资源在线播放天堂| 午夜一级免费毛片| 91肉丝| 精品人妻一区二区三区四区| 蜜桃视频一区二区三区| 天天操女人| 99热这里是精品| 最新日产中文在线麻豆| 欧美一级黄色免费专区| 91欧美网| 久久天堂网| 骚女高跟AV在线| 久久AV无码1区2区3区| 熟女丰满人妻一区| 国产免费一区二区在线A片视频| 91在线超高颜值国产| 欧美AAAA黄片| 日韩一级二级三级在线不卡观看完整| 另类图片五月天| 人妻熟女一区二区| 日韩人妻精品中文字幕| 久久熟女人| 久久久蜜桃一区二区三区| 久久 国产精品 一区| 五月天婷精品激情| 日本高清_区二区三区| av无线看| 国产不良强奸视频免费看| 91狠狠综| 亚洲色天| 日日夜夜精品视频| 99精品人妻| 中文字幕一二三| 久久 精品| 五月天亚洲色图| 日韩欧美日韩| 天天影视色香欲综合网小说| 亚洲无 码A片在线观看麻豆| 欧美色图亚洲色| 不卡在线观看视频| 欧美日韩在线小说| 96久久久| 中文AV制服乱伦| 涩综合导航| 岛国免费黄色网址| 日本天天操| 色综合久| 开心五月深爱五月| 日本在线一二| 久悠悠av| 97色97好| 97丝袜亚洲在线播放| 少好三P| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 亚洲黄色视频在线观看视频| 伊人操你| 亚洲1区2区三区高清中文字幕| 精品在线观看视频在线|