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

ARTICLE DETAIL

資訊詳情

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

三態(tài)日歷落庫(kù):Java 批量生成工作日/周末/節(jié)假日與調(diào)休覆蓋的工程實(shí)踐

三態(tài)日歷落庫(kù):Java 批量生成工作日/周末/節(jié)假日與調(diào)休覆蓋的工程實(shí)踐 簡(jiǎn)介一份面向Java開發(fā)者的年度日期詳情入庫(kù)方案解決IT系統(tǒng)中維護(hù)每年工作日、周末與節(jié)假日數(shù)據(jù)的常見(jiàn)需求。資源將核心代碼封裝為單個(gè)Java文件經(jīng)7z壓縮后僅2KB便于快速查看與遷移。實(shí)現(xiàn)基于java.time的LocalDate遍歷全年日期借助DayOfWeek判斷周末并預(yù)留HolidayCalendar等節(jié)假日庫(kù)接口通過(guò)JDBC連接數(shù)據(jù)庫(kù)設(shè)計(jì)日期、工作日標(biāo)識(shí)、周末標(biāo)識(shí)、節(jié)假日標(biāo)識(shí)等字段表結(jié)構(gòu)同時(shí)考慮批量插入與事務(wù)回滾確保大數(shù)據(jù)量下的寫入效率和一致性。代碼層次清晰包含連接初始化、日期列表構(gòu)建、批量持久化及異常回滾等模塊并留有數(shù)據(jù)庫(kù)連接與自定義節(jié)假日規(guī)則的配置擴(kuò)展空間。適合需要構(gòu)建考勤、排班、運(yùn)營(yíng)日歷等模塊的中級(jí)開發(fā)者可借鑒其表設(shè)計(jì)、批量提交和邊界測(cè)試如閏年、補(bǔ)班等思路。已有3738人學(xué)習(xí)下載可直接作為年度工作日歷數(shù)據(jù)初始化的參考腳本。1. 把節(jié)假日、周末、工作日三態(tài)日歷落庫(kù)這個(gè)需求解決的是“每天是不是工作日”做考勤、排班、租金屬性計(jì)費(fèi)或者任務(wù)調(diào)度的后臺(tái)系統(tǒng)時(shí)幾乎每個(gè)業(yè)務(wù)都要回答同一個(gè)問(wèn)題某一天是不是工作日前幾年我維護(hù)過(guò)一個(gè)考勤統(tǒng)計(jì)模塊早期寫法是每次請(qǐng)求都現(xiàn)算——先判斷周幾再去查節(jié)假日表最后還要處理補(bǔ)班結(jié)果同一套規(guī)則散落在三個(gè)服務(wù)里每年年底節(jié)假日安排一公布就要熬夜改代碼。后來(lái)?yè)Q成了標(biāo)題里這個(gè)思路用 Java 把每年的節(jié)假日、周末、工作日詳情按日期批量生成提前落進(jìn)一張數(shù)據(jù)庫(kù)表業(yè)務(wù)查詢只做一次主鍵點(diǎn)查。這篇筆記就把這套方案從表結(jié)構(gòu)、生成器、調(diào)休覆蓋到運(yùn)維習(xí)慣完整拆開講適合正在做日歷類基礎(chǔ)數(shù)據(jù)維護(hù)、或者想讓考勤邏輯從“算”變成“查”的開發(fā)者。2. 日歷表結(jié)構(gòu)設(shè)計(jì)字段明細(xì)、唯一主鍵、覆蓋規(guī)則表怎么搭配2.1 三態(tài)日歷事實(shí)表為什么主鍵用日期而不是自增ID先看結(jié)果表。這張表要回答的核心問(wèn)題是“某天是三種狀態(tài)中的哪一種”所以它在建模上是一張事實(shí)表每一行代表一個(gè)日期只保留與該日期身份相關(guān)的屬性不摻業(yè)務(wù)狀態(tài)。我常用的建表語(yǔ)句如下CREATE TABLE t_calendar_detail ( calendar_date DATE NOT NULL COMMENT 日期主鍵, year SMALLINT NOT NULL COMMENT 年份, month TINYINT NOT NULL COMMENT 月份, day TINYINT NOT NULL COMMENT 日, weekday TINYINT NOT NULL COMMENT 星期幾1周一7周日, day_type TINYINT NOT NULL COMMENT 1工作日2周末3節(jié)假日, holiday_name VARCHAR(64) DEFAULT NULL COMMENT 節(jié)假日名稱工作日/周末為NULL, remark VARCHAR(128) DEFAULT NULL COMMENT 備注如“調(diào)休補(bǔ)班”, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (calendar_date), KEY idx_year_month (year, month) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT日歷三態(tài)事實(shí)表;主鍵我沒(méi)有用自增 ID直接拿calendar_date做主鍵。原因是這張表的查詢模式非常固定要么按某個(gè)日期精確查要么按年份/月份范圍掃。日期本身全局唯一用它做物理主鍵還能讓按時(shí)間范圍的掃描走聚簇索引順序讀比自增主鍵再回表快一個(gè)量級(jí)。year/month/day/weekday這些冗余字段看著多余但實(shí)際報(bào)表經(jīng)常按“某年某月的工作日數(shù)”分組統(tǒng)計(jì)直接從行里取比DATE_FORMAT包一層函數(shù)高效得多也避免函數(shù)導(dǎo)致索引失效。2.2 覆蓋規(guī)則表調(diào)休補(bǔ)班只改這張表事實(shí)表只負(fù)責(zé)“最終結(jié)果”它不應(yīng)該是人直接改的地方。真正需要人工維護(hù)的是規(guī)則表也就是每年年底公布的調(diào)休與法定節(jié)假日安排。我一般會(huì)再建一張覆蓋規(guī)則表CREATE TABLE t_rule_override ( target_date DATE NOT NULL COMMENT 被覆蓋的日期, override_type TINYINT NOT NULL COMMENT 1調(diào)休補(bǔ)班周末變工作日3法定節(jié)假日工作日變節(jié)假日, holiday_name VARCHAR(64) DEFAULT NULL COMMENT 節(jié)假日名稱, source_year SMALLINT NOT NULL COMMENT 規(guī)則歸屬年份, effective_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 同一天多條規(guī)則時(shí)取最新, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (target_date), KEY idx_source_year (source_year) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT節(jié)假日/調(diào)休覆蓋規(guī)則表;這張表只保存“與默認(rèn)規(guī)則不一致”的日子。默認(rèn)規(guī)則在代碼里寫死周一至周五是工作日周六周日是周末。與默認(rèn)規(guī)則一致的日期根本不需要進(jìn)規(guī)則表這樣每年要維護(hù)的記錄通常只有三四十條。target_date做主鍵很關(guān)鍵——同一天的最終狀態(tài)只能有一種這個(gè)約束從表結(jié)構(gòu)上就杜絕了“既放假又補(bǔ)班”的矛盾數(shù)據(jù)。2.3 索引取舍按日期范圍查詢?yōu)橹鱠ay_type 不要單獨(dú)建索引索引設(shè)計(jì)上主鍵索引已經(jīng)覆蓋了精確日期查詢。idx_year_month是為了“某年某月”的分組統(tǒng)計(jì)比如查 6 月的應(yīng)出勤天數(shù)。踩過(guò)的坑是最開始我給day_type單獨(dú)建了索引想著按狀態(tài)過(guò)濾會(huì)快實(shí)際完全沒(méi)用。day_type只有三四個(gè)取值區(qū)分度極低優(yōu)化器全表掃比走索引回表更快這個(gè)索引純屬浪費(fèi)寫放大。如果非要做“按工作日查”的統(tǒng)計(jì)正確做法是利用year month組合索引把日期范圍先縮小到一個(gè)月再過(guò)濾狀態(tài)。還有個(gè)細(xì)節(jié)日期務(wù)必用DATE類型不要圖導(dǎo)入方便用VARCHAR。用字符串存日期等值查詢還能靠主鍵索引碰巧命中一旦做BETWEEN或者DATE_SUB運(yùn)算排序規(guī)則和隱式轉(zhuǎn)換會(huì)讓索引徹底失效后面第 5 章會(huì)把這個(gè)坑單獨(dú)展開。3. 用 Java 批量生成全年日歷并寫庫(kù)生成器核心代碼與 JDBC 批量參數(shù)3.1 生成器核心流程LocalDate 遍歷 規(guī)則覆蓋生成全年的邏輯并不復(fù)雜第一步從t_rule_override讀出所有覆蓋規(guī)則第二步從 1 月 1 日遍歷到 12 月 31 日第三步對(duì)每個(gè)日期先按“工作日/周末”默認(rèn)規(guī)則打分再看有沒(méi)有覆蓋規(guī)則有就按覆蓋結(jié)果重寫。這里我直接用 JDBC 做示例換成MyBatis或Spring Data思路完全一致public void generateYear(Connection conn, int year) throws SQLException { MapLocalDate, Integer overrideMap loadOverrideMap(conn, year); LocalDate start LocalDate.of(year, 1, 1); LocalDate end LocalDate.of(year, 12, 31); ListCalendarDetail rows new ArrayList(); for (LocalDate date start; !date.isAfter(end); date date.plusDays(1)) { DayOfWeek dow date.getDayOfWeek(); // 1. 默認(rèn)規(guī)則周一至周五為工作日周六周日為周末 int dayType (dow DayOfWeek.SATURDAY || dow DayOfWeek.SUNDAY) ? 2 : 1; String holidayName null; String remark null; // 2. 覆蓋規(guī)則優(yōu)先調(diào)休補(bǔ)班或法定節(jié)假日以規(guī)則表為準(zhǔn) if (overrideMap.containsKey(date)) { Integer override overrideMap.get(date); dayType override; remark 規(guī)則覆蓋; } // 3. 拼裝實(shí)體year/month/day 直接從 LocalDate 取不用字符串格式化 CalendarDetail detail new CalendarDetail(); detail.setCalendarDate(date); detail.setYear(date.getYear()); detail.setMonth(date.getMonthValue()); detail.setDay(date.getDayOfMonth()); detail.setWeekday(dow.getValue()); detail.setDayType(dayType); detail.setHolidayName(holidayName); detail.setRemark(remark); rows.add(detail); } writeBatch(conn, year, rows); }這段代碼有幾個(gè)值得注意的參數(shù)與選型點(diǎn)。LocalDate遍歷完全沒(méi)有SimpleDateFormat的線程安全問(wèn)題生成 365 個(gè)日期對(duì)象對(duì) JVM 來(lái)說(shuō)開銷可以忽略。getMonthValue()返回 1-12 的int與表結(jié)構(gòu)里TINYINT對(duì)應(yīng)不要用Month枚舉直接存否則下一步寫庫(kù)還要做一次轉(zhuǎn)換。overDayType存的是最終類型所以規(guī)則覆蓋時(shí)直接賦值即可。3.2 JDBC 批量寫入關(guān)閉自動(dòng)提交與 rewriteBatchedStatementsgenerateYear里只組裝數(shù)據(jù)真正的性能差異在寫庫(kù)這一段。批量插入全年 365/366 條數(shù)據(jù)逐條INSERT和批量addBatch在數(shù)據(jù)量小時(shí)看不出差別但如果你要一次性生成未來(lái)五年甚至十年差距就是秒級(jí)和分鐘級(jí)的區(qū)別。我在接入層一般這樣寫private void writeBatch(Connection conn, int year, ListCalendarDetail rows) throws SQLException { // 先清理舊數(shù)據(jù)保證任務(wù)可重復(fù)執(zhí)行不會(huì)主鍵沖突 try (PreparedStatement ps conn.prepareStatement(DELETE FROM t_calendar_detail WHERE year ?)) { ps.setInt(1, year); ps.executeUpdate(); } String sql INSERT INTO t_calendar_detail (calendar_date, year, month, day, weekday, day_type, holiday_name, remark) VALUES (?, ?, ?, ?, ?, ?, ?, ?); conn.setAutoCommit(false); // 關(guān)閉自動(dòng)提交攢一批再提交 try (PreparedStatement ps conn.prepareStatement(sql)) { int batchSize 2000; int count 0; for (CalendarDetail d : rows) { ps.setObject(1, d.getCalendarDate()); ps.setInt(2, d.getYear()); ps.setInt(3, d.getMonth()); ps.setInt(4, d.getDay()); ps.setInt(5, d.getWeekday()); ps.setInt(6, d.getDayType()); ps.setString(7, d.getHolidayName()); ps.setString(8, d.getRemark()); ps.addBatch(); count; // 每 2000 條執(zhí)行一次避免 single batch 過(guò)大 if (count % batchSize 0) { ps.executeBatch(); } } ps.executeBatch(); // 收尾再刷一次 conn.commit(); } catch (SQLException e) { conn.rollback(); throw e; } finally { conn.setAutoCommit(true); } }這里有一個(gè)隱藏很深的性能參數(shù)如果你連的是 MySQL 5.1 以上的版本JDBC 連接串一定要加上rewriteBatchedStatementstrue。不加這個(gè)參數(shù)驅(qū)動(dòng)拿到addBatch后依然是一條一條發(fā)給服務(wù)端批處理名存實(shí)亡加上之后驅(qū)動(dòng)才會(huì)把多條INSERT重寫為一條多值的INSERT語(yǔ)句。jdbc:mysql://127.0.0.1:3306/yourdb?useUnicodetruecharacterEncodingutf8rewriteBatchedStatementstruesetObject傳LocalDate給DATE列在 JDBC 4.2 之后有標(biāo)準(zhǔn)映射比java.sql.Date.valueOf(date)少一層轉(zhuǎn)換包裝代碼也更干凈。batchSize不建議一次頂滿全年數(shù)據(jù)MySQL 的max_allowed_packet會(huì)限制單次包大小2000 一批在絕大多數(shù)默認(rèn)配置下都能安全通過(guò)。3.3 全量重建與增量補(bǔ)刷兩種調(diào)用方式怎么選生成器寫好后調(diào)用策略有兩種常見(jiàn)方式。全量重建適合每年年初一次性執(zhí)行先刪掉整年數(shù)據(jù)再插入整年數(shù)據(jù)邏輯干凈表里永遠(yuǎn)只有一份完整結(jié)果。代價(jià)是執(zhí)行期間該年份數(shù)據(jù)不可用對(duì)排班系統(tǒng)來(lái)說(shuō)凌晨執(zhí)行完全沒(méi)問(wèn)題。增量補(bǔ)刷適合“節(jié)假日安排出了補(bǔ)充通知只改后面三個(gè)月”的場(chǎng)景。比如年中突然宣布某一天放假這時(shí)全量刪掉整年再重建明顯浪費(fèi)只刷受影響區(qū)間更合理。我的做法是給生成器加一個(gè)窗口參數(shù)public void rebuildWindow(Connection conn, LocalDate start, LocalDate end) throws SQLException { // 刪除窗口內(nèi)數(shù)據(jù)重新生成該區(qū)間規(guī)則表全量參與覆蓋判斷 generateRange(conn, start, end); }兩種方式的取舍用一個(gè)簡(jiǎn)單標(biāo)準(zhǔn)判斷數(shù)據(jù)量不到 5 萬(wàn)行無(wú)腦全量重建超過(guò) 5 萬(wàn)行或業(yè)務(wù)要求“生成期間仍可讀”走增量窗口。實(shí)際項(xiàng)目里一般用不到這個(gè)閾值全量重建足夠。4. 調(diào)休與補(bǔ)班把節(jié)假日“覆蓋”邏輯做成可回滾的規(guī)則映射4.1 為什么單純“周末等于休息日”會(huì)翻車默認(rèn)規(guī)則“周六周日為周末休息”在絕大多數(shù)日子里是成立的但每年總有那么十幾天被官方公布的放假安排打破。最典型的例子五一、國(guó)慶前后往往會(huì)有“前一個(gè)周日補(bǔ)班”或“周六調(diào)休放假”就是說(shuō)默認(rèn)規(guī)則里的周六周日可能被改成工作日默認(rèn)規(guī)則里周一到周五也可能被改成節(jié)假日。如果不做覆蓋機(jī)制只靠“周末自動(dòng)休息”的代碼考勤系統(tǒng)在補(bǔ)班那天會(huì)漏判大量缺勤。所以生成環(huán)節(jié)里我把覆蓋邏輯設(shè)計(jì)成“先按默認(rèn)規(guī)則定基調(diào)再用規(guī)則表整體覆蓋”而不是寫一堆if (date.equals(某節(jié)日))。因?yàn)楣?jié)日日期每年都變硬編碼經(jīng)不起時(shí)間推敲。4.2 規(guī)則合并與去重同一天多條規(guī)則取最新一條覆蓋規(guī)則表維護(hù)的人可能不止一個(gè)每年元旦前 A 同學(xué)錄入一批元旦后 B 同學(xué)又改了幾個(gè)日期。如果規(guī)則表出現(xiàn)target_date重復(fù)主鍵約束會(huì)直接阻止但歷史數(shù)據(jù)替換時(shí)可能出現(xiàn)“同一日期先被標(biāo)記調(diào)休補(bǔ)班又被標(biāo)記節(jié)假日”的修改。這種場(chǎng)景我用一句話處理target_date上的記錄永遠(yuǎn)只有最新一條INSERT ... ON DUPLICATE KEY UPDATE保證冪等。INSERT INTO t_rule_override (target_date, override_type, holiday_name, source_year, effective_time) VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP) ON DUPLICATE KEY UPDATE override_type VALUES(override_type), holiday_name VALUES(holiday_name), source_year VALUES(source_year), effective_time CURRENT_TIMESTAMP;加載規(guī)則映射時(shí)也要注意邏輯方向默認(rèn)工作日被覆蓋成節(jié)假日默認(rèn)周末被覆蓋成補(bǔ)班工作日這兩類都從t_rule_override讀統(tǒng)一按target_date做MapLocalDate, Integer生成器只認(rèn)“日期最終的 day_type 值”不再關(guān)心中間發(fā)生了什么。這樣規(guī)則表與事實(shí)表徹底解耦將來(lái)想回滾某條規(guī)則直接刪規(guī)則表里的記錄再重新觸發(fā)重建即可。4.3 跨月邊界與節(jié)假日名稱歸檔前后 15 天一起解析每年公布的年放假安排會(huì)指定“春節(jié)前一周的周日補(bǔ)班”而這個(gè)補(bǔ)班日期很可能落在上一年的 12 月或者下一年的 1 月。所以加載規(guī)則時(shí)的查詢條件不能只鎖死當(dāng)前年份而要前后各留出緩沖我把這個(gè)窗口叫做“年邊界緩沖”。SELECT target_date, override_type, holiday_name FROM t_rule_override WHERE target_date BETWEEN ? AND ?這里的兩個(gè)問(wèn)號(hào)分別是給定年份的1月1日減去15天和12月31日加上15天。生成時(shí)日期落入緩沖區(qū)內(nèi)但年份不是目標(biāo)年份的行會(huì)直接忽略只有落在目標(biāo)年份內(nèi)的日期才寫入事實(shí)表。這個(gè)設(shè)計(jì)解決了很多團(tuán)隊(duì)“春節(jié)補(bǔ)班總漏一天”的毛病。節(jié)假日名稱歸檔也有講究。規(guī)則表里的holiday_name要按真實(shí)節(jié)日寫全比如“國(guó)慶節(jié)”“中秋節(jié)”不要寫“10月1日放假”這種日期化命名。因?yàn)楹罄m(xù)判斷“某節(jié)假日是否調(diào)休”“今年中秋國(guó)慶是否重疊”都要靠這個(gè)名稱做統(tǒng)計(jì)分析命名規(guī)范了報(bào)表層就不用再清洗。5. 日歷落庫(kù)避坑寫日期字段最容易翻車的 5 個(gè)問(wèn)題5.1 YYYY 與 yyyy 混用年尾日期被排到錯(cuò)誤年份現(xiàn)象生成 12 月 31 日的數(shù)據(jù)時(shí)控制臺(tái)打印出來(lái)的年份是下一年。查數(shù)據(jù)庫(kù)發(fā)現(xiàn)這一行的year字段被寫成了下一年的值。原因SimpleDateFormat或DateTimeFormatter里用了YYYY。這個(gè)模式代表“周周年份”不是日歷年。當(dāng)某年的 12 月 31 日恰好屬于下一周的 ISO 周期時(shí)YYYY會(huì)輸出下周所在的年份。解決生成器里完全不要依賴格式化字符串推導(dǎo)年份直接用LocalDate.getYear()。如果歷史代碼用了DateTimeFormatter.ofPattern(yyyy-MM-dd)一定要明確yyyy才是日歷年。這個(gè)坑在年初或者年末跑批時(shí)特別容易觸發(fā)因?yàn)橹苤苣攴菖c日歷年只在跨年那一兩天不同。5.2 主鍵沖突與重復(fù)生成任務(wù)重跑直接拋異?,F(xiàn)象同樣的生成任務(wù)跑第二遍插入第 366 行時(shí)報(bào)Duplicate entry 2025-12-31 for key PRIMARY。原因生成器第一次執(zhí)行成功后事實(shí)表已經(jīng)存在全年數(shù)據(jù)第二次執(zhí)行沒(méi)有做清理直接INSERT主鍵約束攔截。解決writeBatch開頭一定要按年份先DELETE再插入也就是前面代碼里的DELETE FROM t_calendar_detail WHERE year ?。這個(gè)操作把重跑任務(wù)從“不可重復(fù)執(zhí)行”變成“冪等”任何時(shí)間重放都不會(huì)產(chǎn)生臟數(shù)據(jù)。要注意如果刪除之后、插入之前有其他進(jìn)程在查詢這張表會(huì)短暫查不到數(shù)據(jù)。低峰期運(yùn)維或者用臨時(shí)表替換寫入二選一。5.3 時(shí)區(qū)問(wèn)題日期整體偏移一天現(xiàn)象數(shù)據(jù)庫(kù)里存好的日期和本地代碼里L(fēng)ocalDate對(duì)象完全對(duì)不上總是差一天。比如代碼里是 2025-01-01庫(kù)里變成 2024-12-31。原因生成時(shí)用了LocalDateTime或者Date在寫入DATE列時(shí)經(jīng)過(guò) JDBC 驅(qū)動(dòng)做了時(shí)區(qū)換算。應(yīng)用服務(wù)器時(shí)區(qū)與數(shù)據(jù)庫(kù)會(huì)話時(shí)區(qū)不一致時(shí)邊界時(shí)間會(huì)漂移。解決全部改用LocalDate數(shù)據(jù)庫(kù)連接串顯式指定時(shí)區(qū)參數(shù)useJDBCCompliantTimezoneShifttrueserverTimezoneAsia/Shanghai代碼里ps.setObject(1, localDate)直接傳純?nèi)掌趯?duì)象不要Date.valueOf(localDate)之后再轉(zhuǎn)一次。時(shí)區(qū)問(wèn)題屬于典型的“本地沒(méi)事、上線翻車”因?yàn)楸镜財(cái)?shù)據(jù)庫(kù)和線上數(shù)據(jù)庫(kù)時(shí)區(qū)配置往往不同。5.4 只維護(hù)放假?zèng)]維護(hù)補(bǔ)班考勤異常集中在節(jié)前現(xiàn)象某月底考勤報(bào)表突然冒出一批缺勤正好都是之前調(diào)休補(bǔ)班的那幾天。系統(tǒng)后臺(tái)查“節(jié)假日配置”明明有記錄。原因規(guī)則表只錄入了“法定節(jié)假日”這一類覆蓋也就是只把工作日改成了節(jié)假日卻漏掉了“周末補(bǔ)班”這類逆向覆蓋。默認(rèn)規(guī)則認(rèn)為那天是休息日事實(shí)表也就按休息日記錄導(dǎo)致應(yīng)出勤日被算成了休息。解決覆蓋規(guī)則的設(shè)計(jì)必須同時(shí)支持兩個(gè)方向override_type1表示周末改成工作日override_type3表示工作日改成節(jié)假日。生成邏輯不要只處理“放假”那一側(cè)。另外補(bǔ)班日期在規(guī)則表里也要保留holiday_name的原始信息比如備注“國(guó)慶前補(bǔ)班”方便報(bào)表側(cè)解釋異常出勤記錄。5.5 日期列隱式轉(zhuǎn)換VARCHAR 與 DATE 的混用導(dǎo)致索引失效現(xiàn)象表里calendar_date定義為VARCHAR查詢WHERE calendar_date BETWEEN 2025-01-01 AND 2025-01-31慢到全表掃。原因字符串比較按字典序2025-1-1和2025-01-01排序結(jié)果完全不同邏輯上像一個(gè)日期物理上排成兩條序列。一旦數(shù)據(jù)量上來(lái)所謂“日期范圍查詢”根本沒(méi)有范圍可言。解決表結(jié)構(gòu)里列類型必須是DATE參數(shù)傳LocalDate查詢條件不要用DATE_FORMAT(calendar_date) ...這種寫法因?yàn)閷?duì)列做函數(shù)處理會(huì)讓索引失效。正確姿勢(shì)是calendar_date BETWEEN ? AND ?讓日期列裸著參與比較。6. 進(jìn)階增量窗口更新、結(jié)果校驗(yàn)與“只改規(guī)則表”的運(yùn)維習(xí)慣6.1 按未來(lái) 90 天窗口增量重建全量重建適合年初但年中若突發(fā)“某天臨時(shí)放假”的通知重跑整年代價(jià)不大卻也容易把已有人工訂正的數(shù)據(jù)覆蓋掉。我的習(xí)慣是平時(shí)只維護(hù)規(guī)則表發(fā)布新規(guī)則后對(duì)受影響的未來(lái) 90 天窗口做增量重建。窗口選擇 90 天是因?yàn)榻^大多數(shù)臨時(shí)通知都不會(huì)影響超過(guò)一個(gè)季度窗口太大沒(méi)必要太小又可能覆蓋不全連續(xù)調(diào)休。這種運(yùn)維方式要求生成器把“刪除與插入”限定在一個(gè)窗口內(nèi)public void rebuildWindow(Connection conn, LocalDate start, LocalDate end) { deleteRange(conn, start, end); generateRange(conn, start, end); }刪除和生成需要放在同一個(gè)事務(wù)里避免刪除成功、生成失敗造成窗口空窗。6.2 全年結(jié)果校驗(yàn)對(duì)比 SQL 與總數(shù)范圍生成完數(shù)據(jù)別急著上線跑兩組校驗(yàn)。第一組是總量校驗(yàn)按day_type分組統(tǒng)計(jì)全年三種類型加起來(lái)必須等于 366閏年或 365SELECT day_type, COUNT(*) FROM t_calendar_detail WHERE year 2025 GROUP BY day_type;正常年份工作日數(shù)量通常在 240 到 260 之間周末在 100 到 120 之間節(jié)假日約 11 到 20 天。如果統(tǒng)計(jì)結(jié)果明顯越界說(shuō)明規(guī)則覆蓋環(huán)節(jié)出了問(wèn)題。第二組是規(guī)則匹配校驗(yàn)把規(guī)則表里所有補(bǔ)班日期與事實(shí)表交叉比對(duì)SELECT r.target_date FROM t_rule_override r LEFT JOIN t_calendar_detail c ON c.calendar_date r.target_date WHERE r.override_type 1 AND c.day_type ! 1;查出來(lái)的每一行都是“規(guī)則表要求這天補(bǔ)班事實(shí)表卻沒(méi)生效”的漏網(wǎng)之魚。這兩組 SQL 丟進(jìn)定時(shí)任務(wù)里每天跑一次能兜住絕大多數(shù)人為配置錯(cuò)誤。6.3 一個(gè)值得養(yǎng)成的習(xí)慣規(guī)則表永遠(yuǎn)比事實(shí)表“高級(jí)”我接手這個(gè)方案半年后最大的體會(huì)是事實(shí)表只允許被生成器寫入永遠(yuǎn)不要改單行數(shù)據(jù)。哪怕手工修一條“某天應(yīng)該是節(jié)假日”的錯(cuò)誤也先去改規(guī)則表再觸發(fā)對(duì)應(yīng)年份/窗口重建。因?yàn)槭聦?shí)表是下游業(yè)務(wù)讀取的唯一來(lái)源手工改一條很可能覆蓋掉生成邏輯期望的最終狀態(tài)之后規(guī)則表再變動(dòng)這一條手工數(shù)據(jù)就被靜默抹掉了。相反“規(guī)則表 → 生成器 → 事實(shí)表”的單向數(shù)據(jù)流任何時(shí)刻都可以從頭重算等于給日歷系統(tǒng)留了一顆后悔藥。后來(lái)遇到“某個(gè)日期狀態(tài)不對(duì)”的反饋我先查規(guī)則表而不是直接改結(jié)果表十次有九次都是規(guī)則漏配補(bǔ)班。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色欲一区二区三区精品A片| 中文字幕在线免费观看视频| 色婷婷电影网| www.99操.com| 超碰91在线| 天天做天天爱天天玩夜夜爽| 性小说五月天| 久热伊人| 1024操逼视频| 久久五月婷婷综合网| 日韩色五月| VA国产在线综合网站| 久久一伦| 99久久欧美| 婷婷久久大香蕉| 激情5月天天天| 国产9色在线/日韩| 99啪99| 五月天婷婷久久| 夜夜操天天干| 五月天婷婷爱| 天天夜夜爽| 午夜丁香丁香婷婷| 丁香五月激情六月欧亚激情综合导航| 成人五月天丁香婷| 91日视频| www.色综合.com| 97一区二区| 婷婷久久久| 99在线精品视频免费观看20| av人人操| 色五月天本日| 日日操天天操| 丁香婷婷色色| 亚洲99综合| 久久九九热视频| 五月天成人手机在线视频| 国产乱码久久| 性爱电影科技贸易有限公司| 丁香五月婷婷88在线| 婷婷五月丁香五月| 色情·com| 97精品欧美91久久久久久久| 九九这里只有精品在线视频| 影音先锋女人av鲁色资源网小说免费| 五月天播播综合| 噜噜噜噜婷婷五月天| 丁香五月天.com| 97碰 在线视频观看| 最近免费中文字幕大全高清大全1 色狠狠色噜噜AV天堂五区 | 久热大香蕉| 久久五月情| 九九九激情网| 成人短视频免费| 无遮羞AV| 97超级碰碰碰| 热中文字幕| 亚洲综合婷婷五月| 亚洲久久视频| 午夜婷婷五月天| 五五月五月| 九九视频这里只有精品在线播放| 六月婷婷色宗合| 亚洲五月天天| 夜夜躁爽日| 欧州色色| 可以直接看的AV| 婷婷激情五月综合| 深夜婷婷 丁香| 丝雨一区二区| 色婷婷亚洲| 亚洲成人在线免费| www.五月婷婷久久.com| 青青草成人网| 夜夜穞天天穞狠狠穞AV美女按摩| 丁香五月天日韩无码| 激情婷婷在线| 欧美激情综合| 婷婷丁香色五月| 99热都是精品| 嫩草极品| 久久资源网五月婷| 亚洲激情色色| 天天看A片| 婷婷五月天电影网| 99九九99九九九视频精品| 九九热内射| 久久一级免费黄色片| 在线观看亚洲视频影院| 五月丁香在线精品| 月月AV| 五月婷婷视频啪啪美女| 久久机热这里只有 | 六月婷婷视频| 日本色五月| 婷婷成人基地| 欧美色九| 天天日天天日天天搞| 色婷婷六月天在线| 狠狠操综合| 69凹凸成人综合网| 亚洲综合九九| 婷婷成人综合五月| 九九综合色| 颜射 精品性爱av| 久久精品女人天堂AAA| 久草视频一,二三四| 91久热| 另类图片 五月激情| 色丁香影院| 五月婷九九草| 色婷婷视频| 狠狠综合| 久久9视频| 开心亚洲久久开心| 亚洲色婷婷五月天| 色偷偷AV亚洲男人的天堂| 五月丁香人妻| 国产婷婷色综合AV蜜臀AV| AV色婷婷| 中文网婷婷字幕婷| 五月婷婷中文字幕| 综合久久十三| 五月婷婷亚洲| 蜜臀av 粉嫩av 懂色av| 激情综合网,婷婷五月天| 色色色热热热| 五月天婷婷久久视频| 激情小说 五月天| 欧洲亚洲精品| 久久婷狠狠色| 五月天婷婷免费视频| 第四色在线观看| 99免费热视频在线| 超碰97免费在线| 少妇被下春药玩弄A片| 五月婷婷人人人操| 26UUU欧美激情一区二区| 日韩黄色中文字幕| 天天干夜夜欢| 婷婷99视频全集高清| 久er免费视频| 99热66| 激情久久久久久| 五月丁香六月婷婷在线| 久久99久久99www| 五月丁香六月色婷| 五月天社区| 丁香婷婷五月激情| 婷婷伊人中文字幕| 色啪网| 久久丁香五月| 日本精品干| 五月色天情| 日本综合99| 狠狠色婷婷丁香六月| 天天干狠狠| 婷婷成人综合| 九九99精品| 久久婷婷成人视频| Blackedraw视频一区二区| 91精品电影18T| 国产色色视频| 夜夜夜夜做天天天做无码视频| www.婷婷| 天天操夜夜爽歪歪| 亚洲视频国产一区| 精品人妻伦一二三区久久| 久操无码| 欧美性生交XXXXX无码小说| 六月婷婷六月天天在线免费| 日韩久久成人| 五月视频日本免费观看| 99精品视频免费观看| 深爱婷婷丁香五月激情| 亚洲人妻av| 五月婷婷色播网| 另类专区在线| 六月婷婷综合| 色婷亚洲| 九九热99视频在线| 婷婷精品视频| 日本成人噜噜| 丁香五月综合激情啪啪| 9999久久久久| 五区毛片七区毛片| 99热8| 丁香六月青青草| 婷婷五月天在线视频网站| 色五月欧美| 色999亚洲人成色| 青青草a在线| 亚洲成人影视在线| 一级精品999WWW| 9色在线| 538在线精品| 人人人操B超碰| 色婷婷亚洲综合网站| 操一操干一干| 99热大全在线观看| 色九九一二| 五月婷婷|欧美| 99ri在线视频| 强奸幻女毛片| 婷婷九月| www.91九色| 琪琪秋霞| 96五月丁香熟女| 欧美色色日韩| 国产AV一区二区三区最新精品 | 99色婷婷| Av在线不卡一区| 激情五月婷黄版| 大香蕉婷婷| 99久99久| 成人亚洲精品久久久久| www九九热| 六月婷婷七月丁香| 成人操呦av| 久久久人人操A V| 99熟女视频| 五月丁香五月激情综合色综合| 欧美婷婷精品激| 欧美99| 超碰99热在线观看| 天天干-天天日| 欧美日韩AAAA| 99视频久久免费视频| 激情五月九九九| 久久xxxx| 天天干天天操天天拍| 婷婷五月天手机版视频| 中文字幕婷婷五月天| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 日操夜撸| 久8色色| 五月6香色婷婷视频| 亚洲在线播放| 午夜免费高清AV片| 99伊人婷婷在线| 色播五月婷婷综合| 日本一级黄色电影| 五月天激情四射| 九月婷婷在线观看| 另类亚洲电影| 久久久久久久,99精品视频| 五月激情在线| 色色五月天激情| 久草A片| 噜啊噜在线| 婷婷伊人五月| 一本久道综合99| 日韩999| 日本一级大片| 九九热99熟女| 97久久人人| 99人人操| 欧美色久| 色色综合成人网| 亚洲精品无AMM毛片| 99热99热在线观看| 激情深爱综合| 青青草深爱激情网| 五月天欧美激情| 狠狠干综合| 婷婷五月亚洲一本在线丁香| 五月天成人综合| 国产精品热搜丁香五月婷婷| 五月天天爽| 亚洲激情免费久久| 人人干人人操人人摸人人做| 五月天激情小说婷婷基地| 五月丁香日本片| AA丁香综合激情| 午夜免费试看| 欧美激情丁香五月天久久婷婷一区| 色色热99| 亚州精品久久久久AV无码| 9999色色色色| 超碰人人操| 99热热这里只精品996小说| 五月综合色| 婷婷丁香五月婷婷| 99无码视频| 色婷婷电影网| www.婷婷五月.com| www色色色com| 乱轮A片| 噜噜视频| 99激情视频| 五月天婷婷综合免费| 中文字幕,综合,91| 干亚洲天堂| 五月丁六月婷| www.婷婷| 超碰操日| www.久久爱.com| 色狠狠综合网| 成人国产欧美大片一区| 婷婷玖玖五月天| 99热超碰| 激情丁香五月天图片| 五月婷婷影| 久久婷婷五月天懂色| 大地9中文在线观看免费高清| 成人 在线观看国产| 强奸幻女毛片| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 婷婷五月天激情亚洲小说| 五月婷婷之美女图片| 热99免费在线| 无码91中文字幕| 午夜色丁香| 九九性爱网| 久99视频在线观看| 中文婷婷狠狠| 五月网激情| 色婷婷综合网站| 欧美综合五月丁香六月婷| 91chinese在线| 精品9久| 91婷色| 伊人婷婷色激情丁香| a久久| 操人妻AV| 成人操呦av| 五月天婷婷在线播放免费| 99久.| 婷婷九九色| 亚洲视频a| 婷婷五月色| 中文字幕有多少字| 影音先锋一区二区三区| 最新婷婷五月丁香| 丁香综合伊人AV| 91丨九色丨白浆秘| 亚洲五月天色色| 狠狠操天天操综合| 久草五月| 永久99免费视频网站| h亚洲| 婷婷干| 精品视频99看在线视频| 97色色综合| 欧美日比视频| 激情图片婷婷| 国产精品18久久久| 五月婷婷综合网| 91无码视频| 99亚州综合精品成人网| 久久久久97| 99热伊人| 熟女激情网| 色婷婷综合久久久久| 4438全国最大视频成人网站在线观看| 丁香五月婷婷激情123| 色婷婷网| 99热综合在线| 99热精品免费| 国产裸舞福利资源在线视频| 五月综合视频| 天天操九九插| 亚洲xx在线| 五月婷婷就去色| 成人va在线播放| 九九色婷婷| 狠狠狠狠狠狠色| 玖玖婷婷视频| 琪琪色五月天| 色色是色N一| 人妖色AV色综合| 99热这里只有在线| 碰碰碰97免费精彩视频| 天天操夜夜操| 色五月激情综合网| 亚洲精品一区中文字幕乱码| 欧美成人五月天| 五月天另类小说久久小说网| 久久婷婷五月天蜜桃| 欧美月久久| 丁香五月婷婷六月丁香| 丁香五月激情棕合| 婷婷亚洲天堂| 天天舔天天摸天天透| 丁香五月天堂亚洲社区| 婷婷六月天| 九九AV在线| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 色婷婷丁香社综合| 亚洲在线操| www.zbzhongsen.com| 色五月激情五月开心五月| 亚洲第一第二网站| 国产日批视频| 亚洲视频在线网| 蜜臀99精品| 任你日视频| 狠狠狠狠狠狠狠狠| 天天做 天天爱| 伊人五月综合网| 爱射综合| 99热这里只有精品22| 九色激情网| www.日日夜夜.com| 日韩在线五月天婷婷| 91超级碰在线| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | se色婷婷视频| 六月婷婷五月丁香| 婷婷六月色开| www.久99| 开心婷婷五月| 99综合视频| 婷婷综合| 五月丁香婷婷婷激情爱爱| 99欧美| www.狠狠| 五月婷婷丁香综合| 国产FREESEXVIDEOS性中国 | 婷婷五月天堂一本在线| 亚洲夜五月| 久久电影五月天丁香电影| 激情AV在线| 五月丁香婷婷久久| 色五月激情综合网| 99伊人婷婷在线| 色播播五月天| 天天日 天天草| 色五月婷婷少妇人妻| 综合 蜜月 婷婷| 色色国产| 超碰精品在线| 久大香蕉| 免费视频无码| 狠狠干天天日| 久久精品亚洲一级牲爱综合| 欧美成人网婷婷综合在线| 亚洲色图五月丁香| 丁香婷婷婷五月综合色情| 麻豆AV一区二区三区| 99综合一区| 99热成人在线观看| 99re思思热久久| 丁香伍月婷电影全集| 国産精品| 伊人网大香| 婷婷亚洲欧美丁香五月| 99思思热只有在这里看| 日日做天天操夜夜爽| 日本a片网址| 大香蕉五月天婷婷| 久久婷婷五月丁香网| 综合久久六月| 亚洲成人九九九| 亚洲123区高清入口| 无人区码一码二码三码医生系列| 中文字幕成人| 九九色综合| 五月综合无码| 五月婷婷激情综合网| 激情五月丁香社区| 六月丁香色色| 99精品久久| 久久久99久久| 亚洲热视频| 99色视频在线| 亚洲人妻av伦理| 91丨九色丨国产打屁股| 天天拍天天操| 97五月婷| 久久丁香社| 婷婷色狠狠| 日本A片一区| 密乳视频| WWW.99热| 五月婷视频在线| 日本九婷婷| 丁香 久久| 香蕉AV777XXX色综合一区| 991国产精选视频在线播放下载| 久草 tingting| 青青久在线视频免费观看| 少妇搡BBBB搡BBB搡毛茸茸| 中文AV网| 超碰在线看| 97精品人人A片免费看| 五月天激情综合| 另类激情综合| 大香蕉视频99| 婷婷五月成人社区| 青青色com久久| 日本99热| 亚洲激情四射| 婷婷五月天色色| 五月天婷婷在线播放| 五月天成人免费视频| 亚洲成人五月| 五月天激情啪啪| 精品久久二6| 色色网站日本91| 日日狠狠久久偷偷四色综合免费| 91狠狠综合久久| 國語久久婷| 丁香六月婷婷缴情欧美| 色五月开心五月激情五月| 婷婷和五月天| 婷婷大香蕉| 思思99精品视频在线观看| 激情五月天第四色| 色婷婷激情| 色婷婷成人影片| 婷婷 激情 五月| 久草婷婷| 五月天播播| 久久看婷婷| 天搞天天天天天| 综合激情五月丁香| 69热在线| 丁香婷婷免费| 色五月丁香伊人五月| 97在线精品| 色播五月婷婷| 99热99re6国产在线播放| 丁香五月成人婷婷| 色婷婷丁香五月| 欧美交换配乱吟粗大25P| 丁香香蕉婷婷| 凹凸探花电影| 亚洲五月婷婷| 丁香九月激情在线视频| 9色在线视频| 亚洲第精品| 97色婷婷成人综合在线观看| AV在线不卡播放| 五月天久久激情| 色色丁香五月婷婷| 99在线观看精品| 六月激情婷婷| 免费AV播放| 亚洲丁香五月深爱五月| 五月婷婷亚洲| 狠狠九九婷婷韩| 亚洲中文丁香| 免费试看小视频 99| 我爱大香蕉| 六月五月天婷婷涩播在线| 九九熱最新視頻| 婷婷深爱五月丁香| 国外亚洲成AV人片在线观看| 久久婷五月天| 久热这里只有精品6| 色五月婷婷综合| 亚洲99在线| 26uuu亚洲欧美另类| 丁香五月AV| 99综合成人视频在线观看| 六月99天天婷婷激情综合| 欧美成人网99网| 97人碰人操| 婷婷欧美色| 99.N在线视频| 久久免费操| 亚洲经典小视频| 97色色色| 91精品电影18T| 婷婷操超碰| www。五月,com| 五月婷婷六月婷| 激情开心五月天| 色五月色开心开心五月| 五月婷婷六月丁香在线视频| www久久久久久久久久久| 久婷婷五月激情| 激情九月综合| 182TV大香蕉| 九月综合| 五月丁香花视频| 五月丁香网av| 五月天激情小说| www久久99| 亚洲天天操| 日本一级| 九九热免费视频| 91视频精品99| 99这里只有精品| 影音先锋四区| 久久色情| 欧洲毛片基地c区| 丁香桃色网| 丁香色色网| 久久曰曰| 亚洲国产精品成人va在线观看| 五月丁香色色网| 成人天天爽| 欧美顶级少妇做爰HD| 九九视频这里只有精品在线播放| 久鲁鲁色网| 亚洲无码影音| 丁香五月天的网址。| 婷婷在线视频| 丁香五月婷婷成人网| 无码日本精品XXXXXXXXX| 六月丁香婷婷在线波多| 成人va在线| 九九精品热| 97热在线精品| 婷婷久久五月| 婷婷四月 成人 狠狠干| 亚州第一黄网| 久久婷婷内射| 五月天自拍视频| 亚洲深喉aV| 91婷婷五月天综合视频| www.久久9| 亚洲综合99| 欧美噜噜免费观看| 久久天堂女人| 99re在线视频| 色五月婷婷DVD| 国产小网站| 婷婷伊人综合中文字幕| 欧美色小说婷婷| 天堂网操| 欧美色图天堂网| 激情五月亚洲| av激情在线| 六月综合婷婷开心伊人| 男人综合网| www:99热视频| 操操操B| 岛国av网站| 日本久久天堂| 亚洲成人av在线播放| 欧洲亚洲精品| 丁香婷婷激情六月五月开心| 欧美美女国产日韩一区二区久| 教师性爱毛片| 色色激情五月天| 色婷婷小说| 亚洲九九夜夜| 婷婷免费无马| 97超级碰| 99精品国产乱码久久久人妻| 蜜桃人妻无码AV天堂三区| 操操操www.com| 五月久久婷婷天堂视频| 99国产精品久久久久久久久久久| 婷婷丁香五月综合激情视频| 天天日夜夜曹| 亚洲成人AV电影网| 久99婷婷色综合| 五月丁香激情综合啪啪| 久久中文网| 五月综合影院| 五月天激情影院| 日韩伊人大香蕉| 九九视频在线| 91啪啪视频| 婷婷五月天日本无码| 91人操| 九月av在线| 国产成人一区二区三区在线观看| 亚洲中文乱字字幕线在永久| 婷婷久久夜| 天天操婷婷| 99久re热| 狠狠综合久久综合| 五月色综合| 色五月AV| 九九久久五月天| 日本三级中文字幕| 丁香午夜天| 狠狠色狠狠干| 国产免费一区二区在线A片视频| 激情五月天情色| 天天视频精品9| 日本欧美成人片AAAA| www.婷婷| 亚洲综合五月天婷婷| 婷婷丁香五月婷婷| 天堂五月婷婷| 天天日天天干天天操| 人人射人人高潮| 26uuuu精品一区二区| 丁香色五月婷婷17C| 婷婷五月中文在线| 99开心五月五月丁香激情| 黄网在线播放| 激情婷婷丁香五月天| 99热第一页| 久久草中文日韩欧美| 激情婷婷九月| 激情五月综合网| AAA久久| 成人五月天丁香婷| 丁香五月天激情婷婷丁香六月| 91avse| 日日噜狠狠色综| www.激情五月天。com| 久久伊人婷婷| site:wpjngj.com| 国产裸舞福利资源在线视频| 日日爽天天| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 色婷久久| 色婷婷影视| 夜夜撸日日操| 日韩小视频在线99| 久久国产高清| 天天色天天搡| 就爱操www com| 久久人妻情侣| 天天拍天天操| 久久98| 三十熟女| 91久草五月天婷婷| 99热大全在线观看| 五月婷婷综合色啪首页| 色5月婷婷| 99综合久久| www.91久久| 亚洲无码AV片| 另类激情五月| 亚洲色爽| 五月婷婷人人人操| 亚洲中文字幕网| 无码九九九九| 激情网第九色| 99热免费在线| 婷婷六月激情| 九色视频九色九色91jiuseshipin| 亚洲成人无码网站| 婷婷久久五月| 婷婷狠狠操| 东京热免费视频| 五月天久久激情| 色播五月丁香| 激情网开心网| 久热免费| 韩国97天堂| www.91.com处女在线直播| 99久久九九| 色五月综合在线| 少妇AB又爽又紧无码网站| ou洲色吧| 五月婷在线色视频| 天天操夜夜操| 精品国婬伦V无码久久久| 91丁香五月| 九九热这里有精品视频| 亚洲乱码在线观看| 男女啪啪做爰高潮无遮挡| 91色色色| 香蕉AV777XXX色综合一区| 99国产精品白浆在线观看免费| 91综合在线观看| 久久视屏这里只有久久| 涩综合网| 国产乱轮一区二区三区| 丁香六月婷婷高清| 99久久综合网| 国产免费一区二区三区三州老师F1F1.CC| 日韩婷婷五月| 精品国产AV色一区二区深夜久久| 五月久熟女| 九九热视频免费的| 欧美性生交XXXXX无码小说| 激情99| 人人做人人看人人摸| 色五月综合| 五月丁香啪啪综合网| 九九伊人网| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 亚洲激情综合五月婷婷啪啪| 色五月91| 亚洲AV永久无码影院黑人| 天天色天天舔天天爱天天爽| 色五月综合网| 琪琪理论片| 亚洲av综合网| 色婷婷亚洲婷婷| 综合啪啪| 超碰在线日夜| 亚洲色五月天在线| 涩综合婷婷| 天天情天天狠天天透| 丝袜激情网| 色热久| 五月婷婷激情网| 五月天停停日日| 日日日日操| 亚洲无码AV片| 天天天久久人人人合| 九九亚洲| 激情骚五月| 综合激情五月婷婷| 色五月中文网| 日韩久久视频| 五月天丁香网| 久久五月婷婷电影| 色色色色五月| 日本婷婷丁香五月| 日本乱子人伦在线视频| 热99re| 综合AV网| 亚洲婷婷免费| 婷婷五月激情综合啪啪| www.十八禁不禁AV.com| 国产精品成av人在线视午夜片| 97涩涩丁香五月天| 亚洲国产网址| 色五月丁香五月天| 97久操视频| 精品久久人妻| 99热综合| 九九黄色网| 狠狠干五码| 久久精99| 六月婷婷五月丁香| 性色播| 亚洲精品一区中文字幕乱码| 色五月婷婷亚洲| 久久综合婷| 激情文学久久| 婷婷欧美偷拍综合| 丁香五月婷婷综合激情哟哟哟| 亚洲成人黄色网| 五月丁香啪啪综合| 亚洲精品成人| 婷婷五月激情丁香激情| 狠狠色 综合色区| 综合网激情| 狠狠夜夜五月丁香| Y11111111111少妇电影院| 99热这里只有精品1| 色色色欧美| 99色色网| 天堂综合久| 97操在线视频| 日日干夜夜干| 99愛国产| 日韩 中文 欧美| 五月色亚洲| 婷婷丁香五月欧美人| 婷婷丁香六月影视| 免费碰碰视频久| 五月天丁香网| 天天狠狠插| 婷婷欧美综合| 五月婷婷丁香| 99热99色| 操嫩逼电影| 99热老司机| 色色色综合| 久久激情天堂| 亚洲精品va| 久久久久婷 | 日本全黄一级999| 婷婷日| 五月丁香婷婷成人伊人网| 日韩 中文 欧美| 天天成人综合视频| 91九九九九九九| 久婷久婷| 影音先锋 一区| 亚洲精品久久久无码| 五月丁香六月情| 五月天婷婷爱丁香中文字幕| 久久婷婷五月综合一| 色情五月丁香婷婷网| 狠狠色 综合色区| 亚洲第一黄网| 另类激情中文| 色青五月天| 婷婷激情五月视频| 99热99日天天干| 日日色综合| 在线中文字幕av| aaaaaa片| 五月丁香六月综合情在线观看 | 色婷婷久综合久久一本国产AV| 久9热| 99黄色在线视频精品熟女| 国产人妻777人伦精品HD| 五月丁香激情综合| 亚洲午夜一区二区| 51国精产品自偷自偷综合 | 啪啪一区| 五月天综合在线观看| 色色色色色色综合| 五月丁香怕怕综合| 天天草人人摸| 五月婷婷三级| 99精品在线观看| 99色日本| 婷婷丁香花五月天| 欧美婷婷丁香五月| 欧美色偷拍| 99热精在线九九久久保| 色五月婷婷中文字幕在线观看| 久久99免费视频网站| 五月天开心色色网| 国产精品18久久久| 亚洲日本韩国| 免费观看18视频网站| 成人美女网| 日日日日日| 熟女人妻一区二区三区免费看| 超碰精品在线| 中文字幕在线日亚州9| 亚洲另类在线观看| 天天天天操| 欧美日韩999| 国产看真人毛片爱做A片| 影音先锋色色色资源色资源色| 色99网| 久思思热视频在线观看| 久久伦乱| 亚洲午夜精品久久久久久人妖| 91丨九色丨丰满人妖| 99热网站| 色色综合色视频| 五月天激情婷婷五月天久久| 婷婷五月天Av| 丁香六月天堂| 久久A V无码视频| 99久在线精品99re5热视频| 99视频这里有精品免费观看| www久久艹| 曰曰久久| 国产人妻777人伦精品HD| 欧美性爱五月天| 五月婷婷香蕉视频| 亚韩精品视频1区| 97碰碰碰| 狠狠色网| 国产午夜伦鲁鲁| 思思热在线观看| 婷婷开心激情五月激情网| 亚洲国产99| 99re熱| 色婷婷五月亚洲| 九九九成人在线视频| 综合网激情五月天| 激情综合网五月| 五月丁香六月婷婷国产视频| 国产免费一区二区在线A片视频| 五月丁香六月婷婷久久肏| 香焦网五月天| 欧美在线视频99| av中文网站| 日本va欧美va欧美va| 五月婷婷久久久| 大香蕉婷婷| 九热av| 91婷婷在线观看| 日韩五月婷婷| 色色五月天丁香| 色情婷婷五月天| 国产精品色色| 久久全意婷婷| 九九大香视频| 亚洲亚洲人成综合网络| 99精色| 夜夜爽天操| 丁香婷婷五月综合| 六月色婷婷| 99综合入口| 婷婷五月天天天日日夜夜| 五月婷婷无码专区| 玖玖资源在线视频| 成人av在线网| 五月天激情国产综合婷婷婷就去爱| 五月激情久久综合网| 欧洲一区二区| 婷婷五月综合中文字幕| 激情99| www五月天com| 色五月婷婷老师| 亚洲成人无码片| 日本色频| ww久久| 午夜伊人大香蕉| 日韩a热| 五月花综合视频| 日本人妻伦在线中文字幕| 色色综合网站| 五月综合缴情网| 丰满少妇猛烈A片免费看观看| 黄色AAAAA| 这里只有精品视频视频在线观看| 久久机热这里只有 | 97干在线看| 无码任你操| 不卡的AV网站| 国产99久9在线| 伊人久久五月天综合| 日本色99| 婷婷五月色情| 俺五月| 婷婷五月色播| 亚洲第一av| 色色色免费视频| 无码字幕中文| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 99视频这里有精品| 桃色激情五月天| 天天色噜| 91色性感五月婷婷丁香| 思思热再线视频| 午夜五月天| 婷婷色色网| 国产99精品免费视频| 丁香五月电影| 一本久久亚洲五月婷婷| 影音先锋噜一噜| 亚洲成人高清在线| www.夜夜操| w婷婷五月婷婷w| 激情噜噜噜| 人人性久久| 在线成人网站| 99热插| 五月伊人网| 婷婷网影院| WWW.婷婷五月天.COM| 超碰在线网站| 婷婷五月精品中文字幕| 碰碰碰97国产| 五月天婷久精视频| 婷婷月综合| 97色永久免费视频| 五月久久婷婷| 九九精品自拍| 五月天激情国产综合婷婷婷就去爱| 伊人五月婷婷| 丁香五月天成人| 五月丁香另类图片| 国产性av| www.婷婷五月天.com| 亚洲传媒在线观看| 五月婷婷在线观看黄| 激情五月婷婷她| 综合久久影院| 少妇日麻屄| 婷婷免费视频| 五月丁香婷婷伊人| 五月Huangsewang| 五月婷婷,六月丁香| 天天干在线播放| 色五月婷婷小说亚洲中文字幕组| 天天摸天天肏| 岛国AV网| 热99这里只有精品视频| 91av成人| 99自拍视频网站| 97碰| 97碰在线视频| 这里只有精品免费观看网占| 91碰操| 淫视馆aV二区一区| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 免费看欧美成人A片无码| 午夜丁香五月天综合| 人妻中文字幕网| www.99在线| 五月丁香久久久| 久久最新色| 成人无码髙潮喷水A片| 五月综合六月婷婷| 五月婷婷久久久| 婷婷五月天网| 99精品在线观看视频| 天天肏屄夜夜爽| 青青久在线视频免费观看| 开心婷婷中文字幕| 操91| se.久久视频在线观看| 色五月婷婷丁香五月| 五月人人丁香婷婷五月人人丁香| 激情久久网| 五月丁香亚洲综合| 五月天亚洲色| 九九人人精品| 久久大国产香蕉| 亚洲1区| 五月丁香狠狠爱婷婷综合| 日本一级特黄大片AAAAA级| 99久在线精品99re8| www.激情五月| 热99只有精品| 婷丁香五月天| 色九月综合| 丁香婷婷性爱| 日日噜狠狠色综合久| 激情亚洲五月| 婷婷午夜综合| 9999综合99综合人| 人人澡玖玖一| 婷婷色五月色妇| 丁香五月婷婷亚洲人| 猫咪伊人AV| 嫩BBB搡BBBB榛BBBB| 久久五月天婷婷| www夜夜操wwwcon| 思思热99er在线视频| 日韩天堂久久| 日本91在线播放| 六月婷婷五月丁香| 五月激情小说| 欧美va在线| 精品九九在线观看| 99这里有精品视频3| www.henhenl| 99婷五月| 99ER热精品视频| 色五月欧美| 久久人人妻| 亚洲色爱综合| 情五月亚洲婷婷| 五月丁了香蕉综合| 五月丁香六月综合情在线观看| 一起操 91N.com| 青青久久91| 亚洲六月色| 五月婷婷导航| 婷婷在线视频| 五月丁香啪啪综合网| 伊人丁香婷婷东京| 婷婷五月丁香五月天| 人妻av在线| 色色五月婷婷| 久久亚洲A| 99操无码视频观看| www.婷婷,com| 国内久久婷婷| 丁香五月欧美婷婷综合| 久久WW| 五月天婷婷激情小说电影| 久久这里只有精品视频26| 亚洲精品色色| 超碰91av| 五月婷婷激情综合在线| 夜夜爽天天| 色优久久| 天天色爽| 综合www色| 色五月婷婷操逼| 亚洲天堂久久| 男人天堂99| 色情五月天视频网| 嫩草综合网| 99热久只有| 麻豆五月丁香婷婷| 色婷婷精品| 99re鈥哸鈥唙| 美女丁香五月天| 影音先锋日本三级资源| 色青青视频| 超碰国产在线播放| 五月丁香婷婷激情视频| 五月婷婷99热| 极品人妻VIDEOSSS人妻| 俺也去综合| 香焦网五月天| 国产亚洲精品AAAAAAA片| 人妻熟女一区二区AV| 欲色人妻| 婷五月天| 激情五月综合网最新| 久久色五月天| 久一这里有精品国产| 五月天久久丁香| 中文字幕丰满人妻无码专区| 一区二区免费看| 婷婷久久五月| 色九月综合| 色 五月 天 婷婷 丁香 九月| 色三级色三级| 丁香伊人综合| 五月天色视频| 久操人妻| 青柠影视免费高清电视剧| 亚洲天堂青草| 99ri国产| 色婷婷成人做爰A片免费看网站| 国产日比| 丁香六月青青草| 丁香成人色情五月天| 五月婷婷丁香色播网| 丁香婷婷深情五月亚洲| 99色在线观看视频| 九九热手机在线视频| 五月婷无码| 国产精品电影网| 久久五月丁香六月婷| 天天操天天日天天爱| 久久久五月四色| 婷婷伊人网| 99这里| 色久综合| 琪琪色网在线| 色婷婷大香蕉| 婷婷丁香五月天在线| 丁香五月婷婷五月| 色婷婷丁香五月天| 色婷婷激情四射视频| 色综合激情| 色五月天成人| 五月激情影院| 精品五月花| 六月丁香啪| 色亚洲欧洲| 久久婷五月婷| 久久机热探花| 五月婷婷伊人久久| 激情五月婷婷网| 99精品偷自拍| 欧美色色色色色色色| 色情五月婷婷| 久久九九色| 婷婷五月天久久综合88| 青青草婷婷综合五月| 综合XX网| 肏日网在线看| 日本美女天天日天天爽| 久久久久久久合一狠狠做深爱| 色99在线| 秋霞性爱AV| 丁香六月亚洲综合| 少妇AB又爽又紧无码网站| BT综合在线视频观看| 六月丁香天堂| 五月丁香六月婷婷视频| 风流少妇A片一区二区蜜桃| 狠狠色婷婷| 婷婷狠狠操| 婷婷色资源| 五月色丁香国产在线视频| 一级二级色大片| 色九月综合网| 婷婷之六月丁香| 五月丁香啪啪| 亚洲无码成人| 亚洲啪啪网| 大香蕉大香蕉在线影院| 日日操日日射| 国产FREESEXVIDEOS性中国| 色 免费网站视频| 99免费| 色九九丁香九月色九九色| 九九精品在线观看视频6| a在线观看| 婷婷五月成人| 99视频内射三四| 噜噜干日本| 亚洲激情.com| 五月精品99综合| 伊人久久五月天| 99热亚洲| 开心婷婷五月激情网小说| 天天爱天天操| 99热国产精品| 97碰碰视频在线观看| 精品乱码久久久久| 色五月丁香五月五月婷婷|