99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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
返回資訊列表
AV在线不卡网站| 亚州操操| 色色色婷婷五月天| 精品国产AV色一区二区深夜久久| 久久婷婷五月综合啪| 色五月天影视| 青青草色在线视频观看| 五月天天综合网色婷婷| 青草视频在线观看视频| 99热6精品| 2023天天日夜夜爽| 激情五月综合网| 亚洲色图欧美色图日本视频| 伊人激情影院| 97人人操人人| 婷婷色五天| 狠狠色婷婷在线| 伊人久久大香线蕉亚洲五月天,| 91seav| 欧美日本一区二区三区| 亚洲色婷婷激情| 欧美色图天堂网色| 九色激情网| 欧美大片| 国产美女无遮挡裸体毛片A片| 噜噜狠狠色| 免费99情趣网视频| 怡红院院在线导航网| 丁香五月天激情四射网| 麻豆忘忧草午夜| 99国产精品白浆在线观看免费| 婷婷天天婷婷天天澡| 亚洲综合激| www.色九月| 操逼亚洲天堂| 4399在线观看免费高清毛片| 另类图片五月天激情| 丁香五月偷拍| 婷婷99狠狠躁天天久久久九九九| 丰满人妻妇伦又伦精品国产 | 思思热在线观看| 综合激情站| 久热最新视频| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 欧美婷婷五月无砖| 日 日干 日日做| 伊人五月天综合网| 九月婷婷综合八月丁香在线观看 | 激情网第九色| 日本婷婷丁香五月| 综合色综合| 国产精品五月丁香| 五月久久丁香| 可以看的av网站| 狠狠操狠狠狠| 婷婷五月天黄色小说| 夜夜天天久久婷婷| 激情五月,色播五月| 欧美成人网婷婷综合在线| 99r这里只有精品哦| 五月天婷婷久久| 91超级碰| 能看的av片| 狠狠操天天操天天操| www.99热国产| 五月丁香六月婷婷在线观看| 亚洲永久免费| 大地9中文在线观看免费高清| 婷婷久久综合| 丁香影院五月综合| 日本啪啪天堂| 日日想日日夜日日操| 噜噜噜噜噜日本视频| aaaaa不卡| 任你爽免费视频| 六月丁香大香蕉| 中文AV在线播放| 日韩无码成人电影| 五月婷婷丁香av| 亚洲第一视频 久久| 综合色综合| 天天做天天摸| 亚洲热综合| 婷婷丁香社区| 999精品乱码77777| 婷婷五月天熟妇| 丁香五月天天高清在线| 色五月激情婷婷| 狠狠干综合| 老师的粉嫩小又紧水又多A片视频| 色综合久久久无码中文字幕999| 日本三级日本黄色| 五月天婷婷三级黄| 色色色在线观看| 操碰91| 国外亚洲成AV人片在线观看| 五月婷婷丁香啪啪| 人妻肉射免费观看| 五月天偷拍| 麻豆观看夏晴子| 久久久久久久久久久44| 五月天婷婷丁香蜜桃91| 五月婷婷偷拍| 182.t午在线观看| 人妻激情视频| 色五月亚洲开心网| 亚洲丁香花色| 操操国产| 五月色色激情网| 97干97色| 91九色中文| 色天天综合色| 色999五月色| 亚洲视频在线网| 天天操天天日天天爱| 婷婷五月六月激情| 熟妇内谢69XXXXXA片| 东京热免费视频网站| 丁香五月天激情五月天激情五月天激情网| 国产精品日日躁夜夜躁| 日日噜噜久久婷婷五月天| 开心婷婷五月天综合| 激情五月婷婷五月丁香五月开心五月| 欧美日韩成卜| 精品无码人妻一区| 丁香五月天视频| 久久一品区| 天天网站天天爽| 综合99久久天天综合| 久九男女天堂| 超碰精品手机在线| 国产69久久久欧美黑人A片| 国产精品人妻欲求不满| WWW.17C亚洲精品| 激情亚洲五月| 久久激情五月网| 五月天综合久久| 激情五月色综合网| 狠狠五月激情丁香六月| 久久综合中文字幕| 婷婷综合色图| www.色99| www.国产色| 97碰碰碰| 五月丁香成人| 91人人操人人| 99久久综合网| 日韩一区二区在线播放| 五月婷婷六月色| 色色婷婷五月天| 97色色色| 丁香六月婷婷综合激情欧美| 黄色AV日韩| www.91在线观看| 九九视频这里有精品| 成人无码免费一区二区中文| 丁香六月亚洲综合| 国内在线99视频| 17.c黄色| 激情五月,激情综合网| 五月天天爱| 五月天婷婷涩涩| 丁香五月婷婷色| 婷婷色色亚洲| 激情五月婷| 色都都狠狠色都都色综合色| 天天干天天爽| 天天做综合| www.五月丁香| 五月丁香婷婷激情久久| 久在线综合69| 92久久| 久久婷婷国产| 99国产精品久久久久久久久久久 | www.色窝| 丁香五月综合激情久久潮喷| 大香蕉婷婷色| 婷婷五月天激情偷拍| 丰满女老板BD高清A片| 欧美激情xxxXX| 六月丁香五月婷婷| 五月天开心激情综合网| 婷婷五月av| 丁香五月天激情综合| 国产欧美婷婷| 1024在线视频| 狠狠干夜夜干| 精品久久66| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 五月六月丁香婷婷在线观看| 色色综合热| 色情五月天丁香社区| 久操热| 五月婷婷激情综合| 五月婷视频| 婷婷九九| 中文婷婷狠狠| 婷婷色色五月| 激情综合国产| 五月丁香激情深爱婷婷| www,8050,午夜三级| 亚洲精品白浆高清久久久久久| wwwwww.色| 九月丁香八月婷婷久久综合久97| 中文字幕日产A片在线看| 色婷婷狠狠久久综合五月| 97日日碰碰| 激情九月婷婷| www.五月.com| 青青五月天婷婷| 日韩无码系列| 牛牛澡牛牛爽| 99婷婷| 日本va欧美va国产激情| 夜夜操天天爽| 久久婷婷操| 99热销国产这里有精品| 丁香啪啪中文字幕| 中文字幕视频色婷婷| 五月丁香婷草| 亚洲色爱综合| 欧美婷| 久久久.COM| 久久综合九色综合97婷婷| 日本色五月婷婷| 五月香蕉婷婷| 九九热这里只有精品556| 丁香五月婷婷www..com| 超碰婷婷色| 丝袜大香蕉| 五月婷婷天| 丁香五月婷婷性爱| 五月天狠狠网站| 99视频在线观看视频| 精品一二三区久久AAA片| 狼人婷婷久久| 亚洲欧洲国产精品| 丁香五月六月婷婷综合| 丁香五月成人网| 五月丁香综合久久| 狠狠色性| www婷婷亚洲| 色色操| 色九月婷婷丁香| 久久婷五月影院| 99热综合| ..真实国产乱子伦对白在线_欧 | 亚洲精品99| 99热在线播放| 色婷婷AV在线| 91人人操.COM| 久久婷色| 九九婷婷网五月天| 丁香六月婷| 婷婷视频网| 婷婷丁香五月综合| 中美日韩成人在线| 五月天六月色| 国产真实乱对白精彩| 五月激情天| 亚洲天堂爱爱| 可以免费观看的AV| 婷婷丁香熟女| 欧美在线视频9| 亚洲啪啪自拍| 日本97在线| 亚洲AV无码一区二| 亚洲精品99| 婷婷五月丁香六月| 丁香六月av| 天天综合天天做天天综合| 五月丁香婷婷激情在线视频| 色欲五月婷婷| 日本色婷婷| 97五月天| 国产激情综合五月久久| Blackedraw视频一区二区| 亚洲V国产V欧美V久久久久久| 五月丁香激情综合网| 五月婷婷激情网| 99在线精品观看99| 久久成人亚洲欧美电影| 视频1区2区| 久99久精品| 成人国产综合| 婷婷五月天亚洲综合网| 久色大香蕉| 五月天丁香啪啪啪啪| 色五月大香蕉婷婷| 久久国产性爱A V| 天天添天天摸天天天天做| 婷婷五月天熟妇| 久久99性爱| 中文AV在线观看| 五月丁香婷婷啪啪| 午夜微拍福利| AV在线资源| 久久99热这里只有精品首| 婷婷热婷婷色| 爱婷婷都市激情| 久久婷婷成人综合色怡春院| 99在线视频操999| 色五月自偷自拍婷婷婷婷| 黄网免费观看| 天天撸天天干天天插| 一区二区免费看| 99精品视频在线观看| 婷婷在线日韩综合| 玖玖伦理电影| 日本久久人| 婷婷在线播放| 99a级片| 激情q青青草在线婷婷| 婷婷性爱| 久久久18| 丁香五月六月| 丁香婷婷激情网站| 激情图片亚洲| 五月天激情小说| 亚洲日韩一页精品发布| 99,色| 99热这里只有精品官网| 97婷婷色| WWW久久久| 久久这里有精品在线观看| 亚洲成人高清在线| 婷婷综合干| site:minyis.com| 九九热精品视频| 欧美私人家庭影院| 青草网在线观看| 亚洲日日日| 国产午夜成人AV在线播放| wWW九九在线播放| 亭亭五月激情亚洲在线| 大地资源色婷婷视频在线 | 超碰1999| 婷婷五月综合基地| 五月丁香六月婷婷手机无线| 午夜少妇在线观看视频| 《战争与艾拉》完整版| 色色色999| 亚洲性爱电影| 丁香五月偷拍| 中文字幕不卡视频| 99热在线这里| 久久久色情| 超碰AAAAAAV| 久久国产色| 影音先锋男人资源站一区二区| 天天干肏夜夜| 激情小说色五月| 婷婷免费成人视频| 国精产品一区一区三区免费视频| 丁香色啪综合| www。久久久久一b。Cc| 天天天天天天天操| 91怕怕网| 五月天激情视频| 免費观看aV在线网址| wwccc久久久| 青柠影视免费高清电视剧| 久久丁香五月婷婷| 97操操| 九九热这里只有精品首页| 91se在线视频| 五月丁香六月婷婷精品| 九九久久99| 天堂AV三级| 色综合久久久久| 九九九九国产| 99爱在线视频| 九玖欧洲亚洲| 97人妻碰碰碰久久| 九九AV在线| 99热99在线| 丁香六月婷| 99热国内| 成人久碰| 日韩在线观看亚洲| 天天搞夜夜爽夜夜爽| 激情婷婷五月天| 五月亭亭六月色| 丁香五月社区| 99精品小视频| 久热大香蕉| 丁香五月偷拍| 久久 视频这里只有精总| 日本nghangse中文字幕| 操操天堂| 五月丁六月香av| 操精品9| 五月天婷婷乱论小说| 五月激情婷婷综合| 国产肥白大熟妇BBBB视频| 天天日婷婷| 伊人久热91| 色婷婷综合久久久久| 7777激情基地| 99热九九九九| 婷婷五月色天| 青草青青草| 久久 婷婷 五月天| 久久婷婷免费| 夜夜撸天天操| 久久色这里只有精品| 高清成人综合| 爱99干99| 99啪啪| 涩涩五| 美腿丝袜AV天堂网| 香蕉久久国产AV一区二区| 丁香五月停停av| 婷婷免费无马| 99热九九九九| AA片在线观看视频在线播放| 99精品在线观看视频| AV天堂淫乩| 正宗黄色毛片| 激情五月四色| 五月大香蕉| 五月丁香婷婷基地| 丁香五月婷婷乱| 五月丁香色婷婷色| 91n网站cad入口在线观看| 五月丁香婷婷色| 丁香五月天网友自拍啪啪啪视频| 丁香五月激情天AV无码| 亚洲综合一区二区| 男人的天堂99| 丁香伍月婷电影全集| 综合久久影院| 五月丁香影视| 青青草原福利在线| ss99热| www.日本久久videos| 丁香五夜激情四射夜夜夜| 日产精品一线二线三线芒果| 99啪啪视频| 这里只有精品免费视频| 久久久人妻系列| 人人爽在线视频综合网| 啊V视频在线观看| 月丁香久久久| 特黄三级又爽又粗又大| 日韩av在线播放综合网| 欧美成人在线观看| 精品无码久久久久久久久| 中文无码婷婷| 97精品欧美91久久久久久久| 日本高清久| 久久99激情丁香婷婷小说网| 99热99热| 丁香激情婷婷网| 久久ER视频com| 91色久| 久久九九玖玖| 99久久久免费| 丁香五月天啪啪| 久草视频一,二三四| 91久草五月天婷婷| 先锋资源婷婷| 亚洲在线操| 九九综舍久久| 超碰chaompinm| 婷婷爱爱蜜臀天天操| 碰碰人人漕| 视频在线免费观看欧洲乱码| 久操干| 97色图片中文字幕视频在线观看| 激情伊人网| 狠狠色丁香婷婷五月| 久久全色| 国产精品99久久久久久猫咪| 色色色综合网| 五月丁香av在线| 久久伊人日日夜夜| 国产VA亚洲VA96| 五月天激情子轮| 综合激情五月天六月婷免费视频| 婷婷六月天激情| 国产va视频| 婷婷五月,偷窥偷拍网| 超碰资源在线| 五月天婷婷基地| 色婷婷久久| 亚洲精品久久久久久久久久飞鱼| 久久99草五月婷婷| 欧美日本黄色| 欧洲亚洲免费视频区| 97婷婷丁香五月| 五月天婷婷人妻| www.99热这里精品| 99久热这里只有精品| 色婷五月天| 婷婷五月天淫荡| 月丁香久久久| 99国产er热视频| 天天操九九插| 99色视频| 中文字幕日产A片在线看| 激情综合网激情五月婷婷| 综久久久| 18av天堂| 国产婷婷五月在线视频| 26uuu精品国产| 丁香综合| 亚洲精品视频在线| 丁香婷婷中文字幕| 五月激情婷婷丁香| 4438全国最大视频成人网站在线观看| 91人妻PORNY九色大屁股| 色噜噜狠狠色综合日日免费| 99色色| 欧洲色色| 色色综合激情| 久久五月婷婷开心网| 性爱视频久久| 精品二区| 婷婷爱在线观看| www.五月天社区| 亚洲区视频| 久综合4| 久久久WWW| 中文字幕 久久9999| 六月婷婷色色色| 亚洲精品国产熟女久久久| 嫩草视频观看| 色狠狠色狠狠| 色色激情五月天| 色五月天丁香婷婷色| 日韩抽插操逼| 丁香五月婷婷基地| 99资源人人| 亚洲九九免费| 婷婷视频网| 青青999| 丁香五月另类小说在线阅读| 色狠狠色| 六月婷婷七月丁香| 婷婷五月天伊人网| 五月婷婷香蕉| 99成人精品六| 色久综合| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 免费日韩99| 97色天堂| www.9797国产| 青草少妇激情| 丁香99| 色五月视频无码播放| 超碰狠狠操| 一本色道久久88加勒比—| 激情五月天色婷婷综合| 性做爰A片免费视频A片直播| 国产99美少妇| 天天干天天干天天| 99热免费网站| 五月激情天| 日本91在线| 九九人人精品| 人妻激情在线| 午夜一区| 人妻久久久久| 色噜噜狠狠色综无码久久合欧美| 9久热| 香蕉操亚洲| 九九十99视频| 天天肏高清在线| 97成人在线视频精品| 五月婷在线播放| 色噜噜狠狠狠狠色综合久欧美| a v色婷婷| 午夜天堂一区人妻| 99re热视频| 97日韩无套内| 综合伊人狠狠| 国产色99| 国产激情视频在线观看| 五月天婷婷三级黄| 婷婷99综合| 婷婷五月天亚洲丁香| 久久久宗合视频88| 五月色综合网| 久久狠狠干| 男人天堂99| 亚洲成人免费电影| 99国产精品白浆在线观看免费 | 涩综合在线| 亚洲人人操| 丁香五月婷婷乱| 超碰妻人人| 丁香五月成人av| 97热九九| 天天拍天天操| 人人看人人草人人摸| 91黄色五月天视频| 婷婷综合亚洲| 九九九九九无码| 色五月综合激情网| 久婷婷色| 久久这里只有精品07| 五月婷婷丁香日韩在线| 久久最新色| 婷婷五月天中文字幕.| 亚洲亚洲人成综合网络| 玖玖热视频| 九色视频91疯狂| 久久九九99| 激情婷婷五月社区| 久久五月天大美女| 视频一区二区在线| 亚洲天堂热| 伊人五月人妻精品| 色婷婷五月综合在线| 囯产精品久久欠久久久久久九大| 久99热| 婷婷六月啪啪| 99久久超级| www999日韩精品| 丁香六月激情综合网| www色婷婷com| 亚洲情综合五月天| 亚洲区视频| 热99热9| 99在线热| 亚洲国产网址| 99热91| 99在线免费观看| 成人色站,在线视频,看片-SS1AV| 99热在线看| 国产精品久久久久久久久久| 五月婷激情影院| 激情五月丁香在线观看直播| 久99久视频| 色色色色色色色五月| 久久人人妻| 深爱五月激情五月| 天天色天天噜| 九九热再线九九视频免费在线观看 | 五月天婷婷乱论小说| 国产Va视频| www.91.com黄| 97操| 欧美日韩成人综合9| 久久久这里有精品| 久99久精品| 日日夜夜小色哥| 欧美色色色色色色色色色色影视| 婷婷五月天堂| 日本97在线| 91人无码久久久久久| 国产成人精品亚洲线观看| 97操碰视频| 亚洲成人婷婷| 色久五月天| 激情 婷婷 丁香五月天| 天天做天天爱天天爽在| 五月婷丁香花| 色五月综合激情| 九月久久婷婷| 六月丁香成人| 99噜噜噜| 狠狠色丁香久久婷婷综合五月| 亚洲六月综合激情久久下卡| 日韩少妇内射免费播放| 久久思思热| 人人草人人舔| 日本三级中国三级99人妇网站| 激情五月天色网站| 日韩性视频| 婷久久| 亚洲无线视频| 91色色色| 激情小说婷婷| 欧美激情综合| 免看黄大片AA | JAPANRCEP老熟妇乱子伦视频 | 欧美大肥婆大肥BBBBB| 综合婷婷| ..真实国产乱子伦对白在线_欧| 九九热视频在线观看| 一级黄色影片| 一本大道伊人AV久久综合| 日本精品久久久久中文字幕| 亚洲精品无AMM毛片| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | AV九九| 五月婷婷开心亚洲无| sS丁香五月婷婷| 久久视频这里都是精品| 第四色婷婷五月| 婷婷丁香五月天狠狠| 丁香五月综合在线观看| www,超碰| 人人草人人爱| 老妇六区| 激情丁香五月AV| 超碰电影在线播放| 五月丁香综合啪啪啪啪啪| 五月天婷婷在线观看精品男人| 91视屏在线观看com.wwwvv| 狠狠色婷婷六月激情网| 五月天婷婷AV| 激情五月天视频| 激情都市另类| 国产91九色| 久热伊人| www开心激情网| 99爱在线视频| 97五月天| 五月情涩综合婷婷| 啪啪色激情五月天| 久久这里只有国产视频| 91婷婷色五月| 九九九九精品精| 无码动漫AV| 婷婷色婷婷亚洲成人| 丁香五月综合亚洲| 婷婷四色五月| 青青久久五月| 超碰av在线| 亚洲激情五月丁香久久久久| www久久艹| 午夜天堂一区人妻| 久久精品综合色| 伊人大香五月天| 色五婷婷开心缴| 噜噜视频| 色婷婷情片| 亚洲综合丁香婷婷六月天| 日本丁香五月| 亚洲亚洲人成综合网络| 久久婷婷五月天激情四射| 五月丁香天天| 色五月丁香五月| 99碰碰碰| 狠狠色性| 91丨九色丨大屁股| 99碰碰中文| 丁香五月激情月| 丁香色六月婷婷| 丁香操逼| 日本在线免费中文com.| 在线观看的av| 涩 五月 婷婷 狠狠| 五月激情六月| 免费亚洲婷婷中文字幕| 在线播放成人| 五月婷婷网久久| 99久久激情视频| 99视频在线啪| 狠狠草综合网| 日本乱子人伦在线视频| 五月香婷婷| 天天爽天天| 国产精女同一区二区三区久| 色的色综合| 99在线小视频| 99九无网码| 九九婷婷网五月天| 欧在线一区| 26uuu亚洲欧美另类| 超碰人人在线| 亚洲激情四射| 丁香五月婷婷激情网| 激情五月丁香色色去久久| 日本激情综合| 99久99久| 天天天摸夜夜夜玩| co超碰在线观看| 亚洲欧洲自拍图片专区五月天| 99久久网站| 婷婷激情四射| 99久视频| 免费视频舔| 丁香婷婷色五月激情综合| 黄网免费观看| 九九色影视| www.99久| 婷婷五月无码| 色色日韩| 九九热在线视频| a69在线视频| 五月婷婷激情| 丁香六月激情综合网| 天天操夜夜操| 丁香六月激情综合网| 人妻丰满精品一区二区A片| 婷婷五月天激情在线观看| 国产精自产拍久久久久久蜜| www.狠狠干| 五月丁香色停停啪啪啪| 久久 视频这里只有精总| 香蕉久久五月| 五月丁香色六月激情干大屄| 亚洲一区二区无遮挡A片| 婷婷七月丁香色色| 久婷自拍视频| 91人碰| WWW.桔色成人.COM| 在线色色| 91chinese在线| 美妞av| 天堂成人A片永久免费网站| 99热这里只有精品50| 日本在线观看99| 五月天六月色| 另类激情五月| 六月婷婷五月丁香| 爱的综合网| 久久人视频| 日本色99| 成人必爱视| www99精品日韩| 色婷婷五月天视频网站| 在线观看欧美| 婷婷综合五月| 丁香婷婷激情网站| 色综合久久99色| 超碰免费人人| 97 A I色色| 亚洲综合网 665566| 五月丁香色婷婷| 丁香五月天天高清在线| 天堂资源欧日浪女在线播放| 中文字幕永久在线| 免费在线观看欧美激情xx小视频| 中文字幕在线免费观看视频| 麻豆观看夏晴子| 久热69| 丁香五月婷婷动漫| 婷婷丁香www视频日本韩国| 99热在线观看| 色婷婷色人人射| 婷婷综合亚洲| 五月天开心色色网| 亚洲综合99| 婷婷五月综合啪| 九色91国产| 久草婷婷网| 色综合综合色| 天堂草在线观看| 久久视频66| 五月开心啪啪| 精品夜夜澡人妻无码AV| 六月婷婷八月丁香| 另类小说婷婷色| 久久久激情视频| 情色五月天 网站| 久热这里| 五月天激情视频| 久热视频这里只有精品68| 婷婷色九月| 9色免费网| 麻豆AV一区二区三区| 99久在线精品| 精品A√| 五月天堂婷婷| 亚洲AV成人在线| 激情婷婷网| 色吧婷婷五月亚洲| 五月天激情婷婷| 欧美日韩成人高清在线| 丁香五月av在线| 六月激情久久婷婷| 色婷婷888| 久久婷婷夜| 五月婷婷久久爱| 久久9热好| 五月婷婷综合在线| 99热这里只有精品2| 开心婷婷五月| 婷婷色丁香六月| 中国AV性爱观看| 婷婷亚洲五| 99re热在线视频| 大香蕉久久婷婷| 玖玖激情网| 丁香五月瑟瑟| 狠狠干.com| 国产古装妇女野外A片| 五月天激情网站| 99久在线精品99re8热| av在线观看网站| 五月开心网| 九九热在线精品| 天天狠狠夜夜狠狠2023| 色色色色色网站| 色综合日日| 99久久综合精品五月天| 五月婷婷五月天天| 丁香五月第九色| 国产99精品免费视频| 五月丁香激情综合啪| 99er这里只有精品| 欧美激情 日韩无码 婷婷 五月天 久久婷婷丁香五月一二三 | 91人人妻人人操人人爽| 99热8在线| 一区二区无码视频| 狠狠狠狠狠狠草| 色天使久久综合| 人人操婷婷| 国产操逼视频网站| yazhochengrenavwang| ...婷婷五月综合不卡,国产在线手机| Av在线资源| 五月天色色色色色| 五月丁香色婷基地综合久久| 婷婷爱爱蜜臀天天操| aa久久| 色欲人妻综合aaaaaaaa网| 久热久色| 久久五月天黄色五月天色网址| 色婷五月丁香久亚洲| 婷婷五月色网| 久久金品黃色| 琪琪色五月天| 久色网| 国产免费性爱| 五月天久草| 97久久精品| 另类色视频| 色五月天成人在线| 亚洲va在线∨a天堂va欧美va| 99视频这里有精品| 色一情一乱一乱一区91Av| 五月婷婷综合在线| WWW久久99久久99久久| 91chinese 在线| 五月丁香亚洲校园欧美| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 色激情综合狠狠婷婷| 婷婷五月天99| 狠狠操狠狠插| 婷婷六月色| 色九九综合色| 色天使色婷婷| 六月婷婷狠狠| 丁香五月天堂| 夜夜骑夜夜操| 色99最新网址| 亚洲不卡欧洲| 678五月丁香亚洲综合| 天天舔天天操| 天天草天天爽| 国产亚洲成人综合| 久操操| 亚洲bt丁香五月天婷婷激情小说| 婷婷午夜综合| 久久小说| 久久婷网| 五月综合六月丁| 99热播放| 精品99*| 120分钟婬片免费看| 丁香激激情网| 狠狠草狠狠草| 91综合网| 亚洲精品操一操、噜一噜、摸一摸、爽 | 在线网黄| 亚洲六月综合激情久久下卡| 大香蕉久艹| 亚洲国产色色| www.婷婷| 日韩精品超碰在线观看| 2023天天日夜夜爽| 激情综合五月| 成人VAV视频在线观看| 777.色色| 色婷婷97| 丁香熟女乱| 婷婷五月天亚洲激情戏精品| 五月婷婷激情综合| 玖玖综合玖玖| 久久婷婷色丁香| 大香蕉啪啪啪| 九九九九九九综合| 密桃激情五月天综合网| 婷婷五月天激情网| 婷婷射图五月天| 色久天| 人人爽网| 亚洲激情 久久| 激情综合区| 伊人久久综合| 六月丁香好婷婷| 97久久视频| 丁香婷婷网| 五月丁香六月激情综合| 丁香五月伊人| 激情综合五月.....| 五月天婷婷基地| 超碰免费人妻| 棕合影院色色| 超级碰碰碰碰视频| 色五月婷婷小说亚洲中文字幕组| 丝雨一区二区| 99视频精品全部免费 在线| 色无码| 婷婷伊人中文字幕| 丁香婷婷九月| 操逼六区| 天天日天天插| 久久人五月| 婷婷五月天激情在线| 久久色六月| 婷婷五月天伊人网在线观看视频| 超碰久热| 干亚洲天堂| 激情五月激情综合网| 丁香五月在线人妻| 色婷婷小说网| 五月天五月色婷婷综合| 激情五月天视频| 天天狠狠婷婷在线| 色中色综合| 久久永久网址| 99热9| 色天天综合色| 丁香激情综合| 六月婷婷久久| www一起操在线观看| 婷婷久月| 91九色欧美| 超碰二区| 91五月天| 天天干,夜夜爽| 色婷婷五月天天天做| 久草婷婷网 | 五月色丁香婷婷综合| 五月婷婷丁香瑟瑟视频| 丁香五月婷婷亚洲天堂| 超碰99热精品| 99九九精品| AV九九| 色噜综| 婷婷五月六月| 六月丁香啪啪啪| 婷婷第六色| 人人插操| 日日夜夜天天综合| 色噜噜狠狠色综合成人99| 色色激情| 99精品视频在线| 97超碰99热99| 亚洲av网站在线观看| 五月天丁香啪啪综合| 女人被躁到高潮嗷嗷叫小| 丁香婷婷六月在线资源观看| 天堂综合久久| 婷婷丁香五月综合| 婷婷激情5月| 色五月大| 99ri在线视频| 夜夜撸天天日| 在线观看欧美| 五月丁香网站| 另类五月激情| 日本欧美在线| 九色综合网| 天天综合 99久久婷婷| 亚洲一个色| 色九月丁香婷婷蜜桃在线观看| 五月开心网| aaaaaa片| 丁香五月久久社区| 99爱这里只有精品免费视频| 欧美日本一区二区三区| 成人AV中文字幕| 欧美精品XXXXBBBB| 五月婷婷在线免费| 4399在线观看免费高清电视剧| 91色性感五月婷婷丁香| 天天射美女| 日日日影院| 超碰人人在线| 久久婷婷艹| 天天色天天| www.婷婷五月天.com| 秋霞三级影视资源| 婷婷趴趴| 婷婷丁香中文字幕| 99操| AV性爱在线| 五月人人丁香婷婷五月人人丁香| 99热销国产这里有精品| 99超超碰| 婷婷丁香五月亚洲| 99A片| 天天操夜夜玩!| 大香蕉五月丁香| 操碰99在线视频观看| 色婷视频| 26uuu精品一区二区| 思思久久青草热| 五月激情五月丁香| 天天射天天干天插色综合| Www.sesese丁香| 五月丁香影视| 狼友超碰| 天天操综合网站| 五月情四婷婷| 中文字幕黄色片| 91视频免费后入强操| 99精品久久久久久| 亚洲乱码日产精品BD| 综合色五月| www.99热在线观看| 色五月婷婷影院| 五月丁香久久激情网| 丁香六月狠狠| 天天看A片| 久热AA| www91久久| 男人的天堂在线婷婷 | 黄色av网站在线免费播放| 五月天精品| 天天色天天操天天射| 九月婷婷色色| 色色国产| 99视频在线| 思思热在线播放| 伊人久久五月天| 婷婷成人丁香色情基地30| 婷婷五月天伊人在线| 色狠狠五月天| 精品久久二6| 婷色五月| 91碰碰碰| 色啪网| 狠狠干狠狠色| 久久婷婷五月天懂色| 国产av基地| 99啪啪网| AA久久| 91婷婷搞| 伊人干综合| 色婷丁香| 2015好吊操| 人人干人人干骚美女| 99思思在线视频| 五月婷婷新网站| 婷婷激情五月吧| 日本天天综合| 99热这里只有精品2016| 狠狠狠狠狠草| 五月天精品综合在线| 五月丁香欧美综合| 激情五月天偷拍综合网| 五月天激情小说网| 婷婷激情性爱| 婷婷激情综合| 婷婷综合视频| 成人做爰黄A片免费看直播室男男| 农村熟妇高潮精品A片| 久久久天堂国产精品女人| 婷婷五月天丁香综合网| 婷婷五月丁香综合桃花色网| 国产精品色婷婷久久久精品| 武则天精品久久| 色五月xxx| 色高清无码视频| 日日噜噜夜夜狠狠久久丁香六月| 婷婷五月激情的图片| 91九色在线视频| 五月婷色| 99热在线观看| 九九艹女| 99精品高潮| 婷婷五月色情天| 美女婷婷六月色| 中文字幕色色| 婷婷情色五月天| www.狠狠操| 果冻传媒A片一二三区| 97碰碰视频| 亚洲小视频免费观看| 久热最新视频| 六月婷婷色| 99精品在线观看视频| 色综合久久久无码中文字幕999| 久久 中文 日本| 狠狠综合| WWW.99热| 五月婷婷丁香综合| 亚洲 在线 另类| 啪啪色区| 六月婷婷视频| 99re6久热只有精品6在线直播| 伊人碰碰碰| 99视频| 98色丁香五月婷婷综合网| 婷婷激情伍月网| ji'qi'luan'ren'lun| 120分钟婬片免费看| 新激情婷婷| 欧美97色| 午夜婷婷五月天| 五月天婷婷久久| 果冻传媒A片一二三区| 99热自拍| 丁香五月激情视频| 色情综合网| 97婷婷五月丁香| 激情四射五月天| 天天夜夜操| 色综合五月天| 亚洲成人中文字幕| 翔田千里aV中文字幕| 综合色影院| 色欧美色色色| 9+1视频网址| 99爱在线免费视频| 黄桃AV无码免费一区二区三区 | 婷婷综合久久| 九九九九成人| 日日操,日日爽| 激情久久久久| 婷婷六月天| 天天色天天干天天插| 六月婷婷激情| 激情婷| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 久久久久久综合88| 99热免费18| 婷婷五月天伦理| 色婷婷狠狠| 99日本视频| 狠婷婷五月| 综合五月天| 久热欧美| 丁香五月AV| 97成人视频| 69午夜成人影片| 五月香婷婷| 色婷| 五月天激情网站| 9l久久久视频| 天天干天天干天天干天天干天天干天天| 91色久| 丁香狠狠色婷婷| 五月婷婷六月丁香在线| 97成人丁香| 五月婷婷免费视频| 五月天激情国产综合婷婷婷| 欧美操人| 超碰在线91| 91色五月| 超碰免费人妻| 9久热在线视频精品| 色色99| 99热狠狠操| 色婷婷综合网| 综合www色| 色播播五月| 色婷婷亚洲在线观看| 久久婷婷综合五月趴| 久久婷婷五月综合网| 伊人AV五月婷| av不卡网站| 情婷婷五月天| 丁香亚洲色综合| 婷婷狠狠色| 五月丁香综合中文| 五月丁香婷婷深深爱|