欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,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
返回資訊列表
婷婷99视频在线| 九九草草逼| 熟女重口味αV| 九九热123| 五月婷婷婷| 综合激情啪啪| 婷婷五月天综合久久| 成熟妇人A片免费看网站| 99热手机在线精品| 五月成人综合| 亚洲国产色色| 色天天综合成人网| 熟妇人妻中文字幕无码老熟妇| 婷婷丁香五月噜噜噜| 日韩人妻无码精品| www.日本91| 天天干天天日蜜臀av| 色婷操逼| 深爱激情六月天| 操一操干一干| 日日爽夜夜爽| 狠狠五月激情丁香六月| 丁香五月社区| 国产精品日日躁夜夜躁| 激情综合网址| 欧美在线视频99| 五月丁香五月综合欧美| 天天干天天干天天干天天干天天干| 五月婷婷天天色| 婷婷伊人久久| 五月综合视频在线| 97色伦另类图片小说视频 | 欧美激情性做爰免费视频| 婷婷五月综激情| 99这里只有精彩视频| 婷婷激情五月天天天开心| 99久久综合网| 9+1视频网址| 成人在线视频一区| 操一区| 日本婷久久| 久久婷婷综合五月天| 99热这里只有精品一区| 国产激情婷婷| 九九激情综合| 五月丁香影视| 五月婷婷9| www.久久色.com| 欧美久久九九| 丁香婷婷91在线观看视频| 六月丁香狠狠爱| 9色免费网| 一区=区操屄高清大全av| H亚洲| 久久五月天影院| 婷婷五月欧美综合| 99人人精品| 99九九在线视频| 九九99热久久精品66中文字幕| 亚洲无码yw| 综合99视频| 91一起操| 精品夜夜澡人妻无码AV| 五月天综合色| 久久亚洲A| 另类色视频| 第六色在线| 综合六月激情婷婷| 67194国产| 五月天综合色| 五月天另类小说久久小说网| 99久久久久久| 五月丁香六月花| 色婷婷五月天偷拍| 久久免费精彩视频| 亚洲视频操| 操碰97| 激情五月天网页| 婷婷五月激情天| 人人爱人人草| 超碰免费成人网站| 狠狠草天天草| 婷婷五月天影院| 久久机热/这里只有精品| 日韩婷婷| 亚洲婷婷91丁香| 成人深爱丁香五月| 激情av在线| 国产成人综合网| 亚洲综合五月天综合| 青青草蜜臀| 激情文学五月丁香六月婷婷| 亚洲人妻av伦理| 大香蕉丁香五月| 91婷婷伊人牛牛| 久久永久网址| 婷婷五月天AV在线| 97婷婷久久丁香| 激情综合啪啪| 99精品在线观看视频| 日日综合网| 乱乱av| 无码啪啪| 欧美影院| 99热全是精品| 婷婷丁香在线播放| 国产XXXX搡XXXXX搡麻豆| 九九超日本| AV天堂淫乩| 天天操天天干天天日| 激情综合五月| 五月天婷婷午夜丁香| 天天干天天射色综合| 99久久久免费| 五月天综合激情网| 97碰人人操| www.五月丁香av| 色噜噜狠狠色综合成人网| 黄桃AV无码免费一区二区三区 | 综合激情五月丁香| 99久久9| 五月丁香成人小说| 国产女人十八水真多1| 伊人干综合| 丁香五月五婷| 超碰自拍天堂| 五月丁六月婷| 亚洲国产黄色电影| 天天插,天天射| 久久久五月天| 狠狠色性| 婷婷99视频在线| 深爱五月婷婷开心中文字幕| 婷婷久久五月天| 成人网站av免费网站推荐| 婷婷丁香激情五月| 色色亚洲99com| 激情综合青草| 婷婷伊人綜合中文字幕小说| 婷婷五月激情基地| 激情文学综合婷婷五月天丁香花| 婷婷成人丁香色情基地30| 久久激情五月婷婷| 婷婷激情五月天在线视频| 狼人久草| 五月天婷五月天综合网在线观| 日韩成人免费电影| www.激情五月天.com| 大香蕉婷婷五月| 婷婷伊人五月丁香天堂网| 99青青草| 超碰在线超碰| 六月婷婷色| 妇激情基地| 五月丁香婷婷中文| 狠狠干在线视频| 性爱综合网| 亚洲激情淫网| 97超级免费无码| 五月天久久综合婷婷丁香| 五月Huangsewang| 99色色最新视频| 成人无码免费一区二区中文| 欧美Va日本Va| 99色综合| 九九草草逼| 日韩av网址大全| 婷婷六久久| 婷婷亚洲欧美丁香五月| 久/久精品99看9| 激情婷婷五月| 夜夜做夜夜愛| 狠狠操综合| 91蜜桃婷婷狠狠久久综合9色| tingtingjiqingwuyue| 九色视频91| 深爱激情九九五月天| 亚洲色无码A片一区二区麻豆| 婷婷五月天激情五月天网站| 伊人久久大香网| 99这里都是精品| 五月色丁香成人| 欧美一级a| 人人视频人人干人人做| 激情深爱婷婷网| 成人午夜天| 五月婷婷综合潮喷| 99自拍视频在线| 五月天综合网| 五月婷综合| 综合色五月天| 九色porny在线观看激情四射| 婷婷五月六月| 婷婷中文字幕在线| 五月天成人综合| 啪啪婷婷五月天激情| 99久久久免费| 五月婷六月天| 玖玖午夜视频| 免费看欧美成人A片无码| 天天干天天干天天干天天干天天| 色五月天丁香婷婷色| 91丨九色丨熟女| 九九aV| 五月丁香久久| 五月婷婷综合网| 五月丁香91| 丁香五月性| 狠狠色综合网站| 九九re视频在线视频| 色情综合| 丁香丝袜五月| 国产免费一区二区在线A片视频| 东京热免费视频| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇| 五月丁香久久综合色| 亚洲av网站| 综合xx网| 在线网黄| 9色小视频在线观看| 99久在线观看| 免费五月婷婷网| 99ri久久| www狠狠爱com| 亚洲精品又粗又大又爽A片| 99色免费观看全部| 丁香六月av| 极品少妇婷婷五月| 日比网免费国产| 天天艹夜夜艹| 九九热思思热| 色色综合成人网| 99碰碰。| www.夜夜| 丁香九月激情| 性色天| 丁香六月av| 狠狠综合区| 婷婷综合在线| 亚洲高清在线| 91久久电影| 翔田千里无码| 日日日日做夜夜夜夜无码| 人人综合色| 婷婷在线播放| 色综合久久天天综合网| 九九99久久| 天天色伊人| 九九色综合网| 91|九色|动漫| 中文字幕亚洲-区久久99婷婷| 狠狠操天天干| 99久久这里只有精品| 五月天啪啪啪| 99热这里只有免费精品| 五月婷婷色情| 五月社区婷婷激情| 综合激情网五月激情| 综合色吧| 人妻五月天激情开心网| 色婷婷五月丁香色| 五月丁小婷婷激情四射| 婷婷D区| 精品人妻久久久久久| 久久五月天色婷婷| 九九色图| 五月综合丁香婷婷| 成人综合视频在线| 色碰碰| 久热re在线视频| 久久婷婷综合五月| 狠狠干.com| 思思热在线| 夜夜夜夜夜操| 婷婷五月天堂| 色婷网| 五月婷婷丁香综合| 思思re99视频在线观看| www99热| 夜夜资源站| www.夜夜| 操操国产| 婷婷五月天久久久| 四色五月婷婷| 91狠狠综合久久| 亚洲欧洲另类| 色婷婷丁香五月| 欧美性爱五月天| 综合色五月| 99热综合在线| 色色色免费视频| 久久三级视频| 五月天色综合| 91人妻九色大屁股| 色婷婷色五月综合| 亚洲操精品| 26UUU欧美激情一区二区| www激情网站| 99九九视频| 五月丁香黄色| 天天插天天狠| 我爱va亚洲va52| 天天开心AV色综合婷婷五月天| 亚洲狠狠狠色婷婷综合激情久久久| 这里只有精品99视频| 精品婷婷五月天| 五月天婷婷丁香蜜桃91| 五月婷婷 激情五月| 天天爽天天日| 色综合色色| 五月天婷婷激情| 亚洲精品久久久久AV无码| 亚洲第一成人无码A片| 少妇性BBB搡BBB爽爽爽视頻| 亚洲影院婷婷色| bukadeavzaixian| 色综合中文色综合网| 欧美精品999| 思思热在线视频观看精品| 丁香六月婷婷综合网| 色爱终和网| 五月天综合视频| 91成人视频| 日本天天操| 五月天网址在线刘玥| 色婷婷啪啪综合网| 99久久亚洲精品视频| 色播五月丁香婷婷| 激情网五月天| 免费观看全黄做爰的视频| 91高潮喷水久久久久久久久| AAA久久| 丁香五月天殴美激情| 色综合色综合色综合| 91丨九色丨熟女丰满| 99视频在线| 五月丁香婷婷钟和色图| 亚洲精品视频在线播放| 五月丁香做爱视频| 九九这里有精品| 婷婷丁香熟女| 99久在线精品99re8热| 天天日,夜夜爽| 国产日韩欧美性爱| 成人超碰网| 九九视屏| Av在线不卡一区| 色99色| 婷婷五月综合欧美在线播放| 天天色天天日天天舔| 色婷婷狠狠18禁| 91国产精品视频播放| 五月婷婷啪啪啪| 欧美综合五月丁香六月婷| 婷婷色片| 五月停亭久久电影| 三区激情四射av| 婷婷五月天电影网| 婷婷欠久少妇| 久久婷婷丁香五月一二三| 天天日夜夜帕| 国产精品国产成人国产三级| 五月丁香激情四射| 韩国天天婷婷| 69超碰在线| 久久久久久激情| 乱色色色| 99er久久| 久草热8精品视频在线观看| 丁香六月婷婷综合欧美| 99热在线观看这里只有精品| 99色综合| 成人五月天婷婷| 天天爱天天狠天天透| 俺也去五月婷婷丁| 香蕉婷婷色五月| www.yw色| 激情五月天婷婷色色色色色色色色色色色 | 99久久五月婷婷| 亚洲精品又粗又大又爽A片 | 全国最新疫情| 俺去也五月| 99久久综合网| 91精品久久久久久久| 久热爱大香蕉在线蜜臀悦色| 这里只有精品69| 开心五月婷婷激情| 俺也去婷婷五月天第五色| 五月天婷婷基地| 色婷婷播放| 久久香蕉婷婷五月天| 国产成人99久久亚洲综合精品| 亚洲AV电影美洲AV电影| 亚洲激情免费视频观看| 婷婷五月综合丁香久久| 五月丁香六月婷婷的女人| 校园激情 亚洲| 欧美交换配乱吟粗大25P| 色色婷婷五月天| 欧美综合五月丁香六月婷| 丁香五月激情欧美| 九九视频在线| 激情av在线| 婷婷五月天堂| 天堂综合久久| 五月丁香六月激情综合| 久久 婷婷 五月天| 日韩另类| 国产乱码久久| 福利视频在线播放| 九玖欧洲亚洲| 无码人妻一区二区一牛影视| 激情五月婷婷综合| 9精品视频在线| 丁香婷婷色情| 九九热黄色| 狠狠色综合网| 激情精品久久| 婷婷伊人久久无码色五月| 精品九九视频在线观看| 丁香六月综合| 亚洲婷婷五月| 六月婷婷天天操夜夜爽视频| 五月天激情小说网| 99爱免费在线视频| 99久久高清视频| 五月婷婷在线观看黄| 玖玖色资源| 九九九九毛片| 深爱激情AV| 超碰在线观看三级片| 亚洲情a| 色婷婷亚洲综合av| 色婷婷婷婷| 大香蕉精品视频| 色色色999| 天堂美国久久| 狠狠色综合网| 婷婷激情丁香五月天综合| 五月丁香在线| 五月天天爽| 色99色| 天天狠狠夜夜狠狠2023| 亚洲综合婷婷五月天| 激情五月天色色色| 九九综合久久| 日本激情五月| 五月丁香色色| 色综合久久久无码中文字幕999| 六月婷婷久久| 影音先锋色色色资源色资源色| 成人在线观看精品| yellow视频在线观看91| 天天插天天很| 日本免费91| 99久久网站| 99热这里只有精品一区| 婷婷丁香九月| 久久大香蕉丁香| 激情深爱五月天| 五月激情丁香五月| 五月久久丁香| 热久久99热欧美国产亚洲| 99热这里有精品24| 伊人久久婷| 成 人片 黄 色 大 片| 五月亭亭网成人在线视频| 色婷婷丁香五月| 91综合视频丁香| 色婷婷www| 九九热这里只有精品一| 成人视屏在线观看| 色婷婷久久9.com| 99爱视频在线| 婷婷性福五月天| 成人久久天天x资源站| 操操操91| 婷婷王月天影院| 五月婷网| Caop在线| 色99久草在线| 九九人人操| 色五月av| 99小视频网站| 一个色的综合| 色婷婷综合网站| 亚洲永远av在线播放| 婷婷99狠狠躁天天躁| 99热这里只有精品最新| www色婷婷久久综合久色 | 深爱激清网| 秋霞三级影视资源| 五月天激情四射| 亚洲激情| 色婷婷小视频| 在线18av | 97人人操人人干| www.minyis.com【JT】实力收量可预付QQ2101460746 | 99精品自拍视频| 欧美成综合在线观看| 成人看片网站| www.minyis.com【JT】实力收量可预付QQ2101460746 | 国产色色在线| 中文字幕AV在线| 丁香五月最新网址| 1024久婷| 五月婷婷久久网| 国产精品第一国产精品| 狼人久草| 深爱五月婷婷| 99热国产这里只有精品| 五月婷婷激情性爱| 日韩99视频| 思思热视频在线观看| 色色综合视频| 色噜噜婷婷| 狠狠操.COM| 99热99思午夜精品| 精品无码av丁香五月激情| 婷婷精品在线| 久9热在线视频| 99热费观看| 天堂亚洲 在线| 4438全国最大视频成人网站在线观看| 99riAV成人在线视频| 99色爱| 51精品国自产在线| 91夫妻网站九色| 亚洲妇女熟BBW| 亚洲色啪| 国产黄大片在线观看画质优化| 亚洲国产精品VA在线看黑人| 老美AA片| www.久久久久久久久久.com| 丁香六月欧美| 操日本三片99| 天堂色婷婷| 婷婷午夜激情| 开心五月六月婷婷| 99热6这里只有精品6| 激情五月图| 色99亚洲| 天天爽夜夜爽夜爽精品| 色婷婷精品| 午夜丁香婷婷| 黄色AV日韩| 午夜婷婷| 99超超碰| 九月av在线| 国产成人AV在线播放| 久久精品99久久| 婷婷久久亚洲| 婷色成人| 俺去也五月天婷婷| 婷婷五月天AV在线| 天天干 夜夜爽| 97人人干| 猫咪伊人AV| 综合激情在线观看| 丁香五月天网站| 日日夜夜狠狠婷婷色| 五月色情婷婷开心五月色情| 五月婷婷激情四月| 久久综合中文字幕| 五月婷婷综合在线| 激情五月婷婷色综合| 色婷婷丁香社综合| 狠狠搞五月天| 伊人狠狠干| 人人摸人人澡人人| 亚洲激情在线| 色级婷婷| 99精品热| 亚洲丁香五月| 久热大香蕉| 欧美S码亚洲码精品M码| 久久久五月天婷婷成人网| www.婷婷亚洲基地| 亚洲激情视频网| 国产激情婷婷| 超碰在线91| 日韩有码一区| 97色色色色色色色| 狠狠色综合网站久久久久| 久9视频| 综合色五月亭亭| 婷婷六月视频| 99爱最新免费视频在线观看| 色哟哟精品| 色五月情| 粉嫩av懂色av蜜臀av熟妇| 深爱五月天 开心网| 婷婷另类小说| 国精产品一区一区三区免费视频| 91热视频色网站| 欧美天天干五月丁香| 天天摸天天透天天舔| 亚洲无码99| 百度4399有码精品V在线观看 | 亚洲综合激情五月久久| 91精品国产色猫| 久热这里只有精品在线观看| 超碰猛烈的性猛交| 91在线观看九区| 欧美一级色| 五月丁香六月婷婷国产视频| 极品人妻VIDEOSSS人妻| 色色五月天网站| 久久欧洲综合网| site:pnnrt.com| 99视频在线观看视频| 五月激情综合婷婷| 色婷婷AAA| 五月丁香婷婷老司机| 狠狠做六月爱婷婷综合aⅴ| 91精品久久久久、久五月天| 久久精品无码一区| 精品乱码视频| 熟女激情网| 影院久久久| 亚洲女婷婷五月基地综合久久久| 色情综合网| 综合网网欲色| 色五月丁香五月婷婷五月成人网| 九九色色| 涩综合在线| 久草A片| 五月叮香啪| 五区毛片七区毛片| 国产一级视频a| wwW天天干| 性爱综合网| 99riAV国产精品视频| 99久久极情精品一区| 成人在线观看国产| 激情婷婷五月黑人| 国产精品电影| 五月天色婷伊人| 婷婷大香蕉| yellow视频在线观看91| 欧美性猛交99久久久99| www.com.色色| 国产色色视频| se99热久久一本| 狠狠做深爱婷婷久久综合一区| co超碰在线观看| 五月丁香拍拍激情综合| 夜夜操狠狠操| 欧美天天综合网站上去吧| 婷婷丁香五月综合| 色99亚洲| 午夜69成人做爰视频| 久久亚洲色导航| 亚洲丁香花色| 综合色天天| 久热在线中文字幕色999舞 | 狠狠综合| 婷婷操逼| 综合五月亭亭9| 屁股翘好撅高迎合跪趴| 婷婷婷五月天最新综合你懂的| 成人做爰高潮A片免费视频| 婷婷五月天激情综合| 欧美成人精品A片免费一区99| 三区激情四射av| 夜精品无码A片一区二区蜜桃| 激情婷婷亚洲五月| 婷婷五月激情基地| 丁香色五月婷婷| 女人天堂久久| www色婷婷| 综合玖玖性爱免费视频| 天天干天天拍| 深爱五月最新网址| 久热丁香| 亚洲99热| 五月天婷婷色播在线网| 婷婷五月综合社区在线| 播五月,色五月,开心五月播放器| 综合久久久| 久久ab| 婷婷五月开心中文字幕色| 九九色情网站| 久久婷婷视频| 久久激情视频| 夜夜嗨一区二区三区直播内容| 五月婷婷在线观看| 婷婷丁香五月91| 亚洲色99| 久久人妻高清中文| 婷婷午夜综合| 丁香五月久久| 日韩99精品| 久久婷婷国产| 少妇性按摩无码中文A片| 女人天堂 AV| 丁香五月综合激情啪啪| 内射爽无广熟女亚洲| 五月丁香激情婷婷| 丁香综合网| 牛色色碰| 婷婷五月天天天| 丁香九月激情在线视频| 五月婷婷色影院| 五月婷无码| 色噜噜五月丁香婷婷| 91久久久久久| 激情5月天天天| 99碰网站| 久久九九热re6这里有精品| www.射伊蕉婷婷| 五月天小说激情| www91在线| 久草热久草在线视频| 夜夜撸夜夜骑| 在线综合婷婷| 丁香婷婷五月激情| 91av视频| 国产精品美女| 九九热精品视频在线观看| 久久婷婷五月草视频在线播放| 激情丁香久久| 亚洲欧美在线观看| 91色五月| 色婷婷狠狠| 99热国产国产| 在线网黄| 亚洲婷婷综合视频| 嫩草AV久久伊人妇女超级A| 中文字幕丰满人妻无码专区| 丁香激激情网| 五月激情丁香六月狠狠干| 国产操肏网站| 色欲AVV| 激情五月婷婷| 91人操| 五月丁香六月婷婷综合| 五月丁香六月婷婷综合免| 日本久久婷婷| 人妻激情网| 超碰成人黄色网| 五月婷婷五月| 97性视频| 婷婷狠狠操| site:feetmall.com| 婷婷五月天直播| 色婷婷综合视频| 色天堂97| CAOBIBI| 日韩欧美成人网| 无码人妻精品一区二区蜜桃色欲| 亚洲综合激情五月久久| 久久色五月| 五月丁香婷婷成人网| 亚洲中文乱字字幕线在永久| 激情综合五月色在线| 九月色婷婷| 亚洲在线操| 九九综合网色全集 | 狠狠色婷婷在线| 超碰人人操人人干| 99九九玖玖| 亚洲色色五月| 久久五月情| 极品五月天| 精品热九九| 丁香综合日产精品久久| 色视频色综合91| 另类少妇人与禽zOZZ0性伦| 天天精品视频免费观看| 色五月综合网| 中文无码婷婷| 色色婷婷五月| 九月色婷婷| www99精品| 色停停香蕉视频| 在线看片av| 婷综合| 五月天婷婷av| 久久97| 色婷婷丁香五月| 亚洲AV免费在线| 伊人啪啪网| 激情五月丁香五月| 婷婷丁香久久| 国产高潮A片羞羞视频涩涩| 激情五月天婷婷| 免费看欧美成人A片无码| 成人视频网| 天天色综网| 五月停停99| 人人操操97| 9九色首页| 婷婷久久久久| 久久香蕉网| www.精品99| 五月丁香六月婷婷手机无线| www狠狠| 色婷婷成人五月| 91九色欧美| 亚洲精品午夜国产va久久成人| 五月开心网| 伊人在线视频| 色综合9| 在线观看欧美| 亚洲艹网| 色丁香久久久| 日本狠狠干| 色五月婷婷丁香五月| 亚洲精品V天堂中文字幕| 99操九九网| 99视频91| 综合五月草| 日韩综合大黄| 99综合网| 狠狠干,狠狠操| 影音先锋日本三级资源| 99九九热视频免费| 色综合久| 婷婷五月色网| 婷婷九月亚洲| 99热在线观看| 日韩 mm 不卡| 激情五月婷婷丁香六月| 思思热在线视频99| 97色97干| 色色99| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 激情小说婷婷| 超碰成人影视| 五月激情啪啪| 免费视频这里只有精品| 99综合久久| 日本色色色色色色色色一色二色| 狠狠色婷婷7777久综合| 欧美激情五月综合| 精品成人a v无码内射| 激情五月天视频| 婷婷综合中文| AV网站免费在线| 九九热区一区二区三区| 国产精品色婷婷99久久精品| 8090在线影视少妇| 99热日| 99热综合在线观看| 另类激情五月| Av狠狠色丁香婷| 99re免费精品视频| 噜噜噜噜噜色| 亚洲va综合va国产va中文| 国产探花一片区| 玖月婷婷爱丁香| 色色a| 人妻体体内射精一区二区| 97婷婷狠狠久久综合9色| 激情综合网五月天天| 色婷婷六月| 97干干干丁香| 五月婷婷色| 丁香五月婷婷在线| 免费黄网不卡AV| 五月婷婷无码| 天天色天天| 丁香六月婷婷色XXXX| 亚洲九区| 激情五月天在线免费美女视频| 久久在线视频免费观看| 婷婷在线免费| 狠狠五月天| 国产操B| 思思视频这里是精品| 色五月五月天色婷婷色五月| 美女久久婷婷| 国产伊人五月天| 久9久9久9久9久9久9| 葵花AV在线| 五月综合亚洲婷婷| 91人妻PORNY九色大屁股| 亚洲天堂啪啪| 久久久噜噜噜久久人妻| 六月婷婷色色网| 综合激情五月丁香9999久久精| 伊人久久婷| 婷婷久久五月天中文字幕在线观看| 日韩av大全| 亚洲色五月| 在线成人网站| 六月丁香中文字幕| 五月婷婷黄| 婷婷五月情天| 岛囯综合激情网| 婷婷五月天性| 亚洲亚洲人成综合网络| WWW色五月天| 五月天综合视频| 婷婷射丁香| 久久婷婷丁香| 国产成人AV在线播放| 五月天激情小说欧美激情| 97久久综合网| 天天干天天 亚洲| 性做爰1一7伦| 五月丁香啪啪激情| 开心五月激情网| 五月丁香日本片| 色色a| 开心六月婷| 五月天色五月| 人人玩人人橾| 五月天综合网| xxxx五月激情| 丁香五月av| 亚洲激情99| 777精品久无码人妻蜜桃| 色色色综合视频| 亚洲中文字幕在线观看| 五月婷婷久久开心网| 亚洲另类在线观看| 人人干天天操五月丁香| 亚洲电影在线观看| 激情5月天天天| chaopeng在线人人| 激情五月小说婷婷| 五月天婷婷激情在线色图| 蜜桃人妻无码AV天堂三区| 日本99在线| 久久婷婷伊人| 婷婷色播色五月五色五月天色妇| 亚洲AV成人在线| 桃色激情婷婷伊人网| 成人精品视频99在线观看免费| 玖玖九九99| 六月婷欧美丁香综合| 开心五月网| 色v综合网| 婷婷五月天亚洲| 天天激情视频| 淫视馆av三区| 婷婷丁香五月婷婷| 丁香婷婷黄网站| 五月婷丁香| 丁香五月婷婷成人网| www狠狠爱com| 色色丁香婷婷综合| 婷婷五月丁香六月伊人网| 99色爱| 欧美性丁香色色五月天干干| 婷婷月综合| 天天干天天干天天| 五月婷婷九| 五月婷婷激情日本| 26uuu精品一区二区| 亚洲 在线 性爱 | 婷婷五月综合社区| 五月丁香婷成人网| 亚洲超碰中文字幕| 激情综合在线观看| 婷婷五月综合欧美在线播放| 久久综合九色综合88i| 成人av在线网站| 婷久看人爽| 激情五月天婷婷丁香| PORNY九色9l自拍视频成人| 久er7久热| 青青色com久久| 国产激情久久久| 久久99色色| 日韩 中文 欧美| 中字幕视频在线永久在线观看免费 | 国产67194| 激情深爱五月| 99久热| 99情色五月天| 这里只有精品视频99| 五月婷婷视频ab| 日本久久爽| 老师的粉嫩小又紧水又多A片视频| 五月丁香淫淫婷婷婷| 99精品国产在热久久| 99re8热精品免费视频| 欧美人人操| 亚洲九九99精品视频在线播放| 99a级片| 日本久久激情| 色色五月天婷婷| 色色COm| 天堂AV三级| 亚洲在线成人| 伊人综合网站| 五月丁香91| 特级片神马电影| aaaaa黄色| 色原狠狠综合| 成人国产欧美大片一区| 亚洲六月婷婷| http://www.sd-xiangsu.com/| 99热 这里只有精品 国产 日韩| 日韩无码亚欧无码| 99精品在线| 超碰九九热| 欧美国产一区二区三区| 欧美色骚婷婷五月天| 欧美色宗和激情| 日本97在线看片| 狠狠干狠狠干| 午夜丁香| 噜噜噜久久| 人人摸人人干人人做| 欧洲亚洲最新精品| 九九久久五月天| 狠狠综合色网| 天天干天天日蜜臀av| 伊人久久艹| 黄色三级日本| 五月天网站免费欧美| 激情美女五月天激情在线| 丁香五月天导航| 成人五月天丁香婷| 综合日本婷婷| 欧美熟女视频 色婷婷| 五月天伊人| 日日操日日撸| 色综合久久88色综合天天99| 婷婷五月激情图片| 狠色色狠网| 欧美丁香六月激情视频| Av狠狠色丁香婷| www.久久| 天天射综合网站| 亚洲色图五月丁香| 亚洲成人av在线播放| 婷婷综合伊人| 婷婷综合久久综合| 狠狠色综合五月人人| 99热久久这里只有精品| 色色色99| 青草五月天| 国产亚洲99久久精品| 91超碰在线播放| 9热精品| 国产精品色婷婷久久久精品| 五月天婷婷社区| 激情综合网五月天| 色狠狠婷婷| 婷婷六月啪啪| 99久热这里只有精品| 五月丁香人妻| 五月激情天天干| 五月丁花六月丁香综合| 欧美一级操逼视频| 91成人性爱视频| 99这里| 26uuu欧美| 国产色网站| 综合99综合久久久久久久| 五月丁香啪啪综合| 久久婷婷综| 欧美操人| 亚洲综合五月天| 成人精品在线| 精品亚洲国产成AV人片传媒| 国产乱子轮XXX农村| 日韩成人影片网站| 久久受www免费人成| 97涩婷婷婷婷基地| 九九精品婷| 九九精品亚洲| 久久五月激情综合| 婷婷综合欧美| 欧美综合婷婷欧美综| 激情五月婷婷综合视频| 亚洲小视频| 天天操婷婷| 99精品视频偷拍| 丁香五月影院| 97在线视频观看| 狠狠婷婷色| 丁香伊人五月色婷婷五十路| 第四色网婷婷| 99热欧美| 婷婷六月丁香激情综合| 久久久久久丁香五月| 色99在线观看| 九九色逼| 青青久在线视频免费观看| 婷久久久| 91丁香五月| 狠色狠色狠狠色综合网| 99热九九在线| 色婷婷电影网| 久久这里都是精品| 香蕉久久国产AV一区二区| 精品五月花| 国产操B视频| 亚洲成人色五月婷婷综合| 色久五月| 午夜丁香综合婷婷| 色999五月色| 秋霞九九无码| 91人人操.COM| 五月婷婷色丁香| 激情丁香五月天| 六月激情婷婷| 男人大jjc女人免费视频| 中日韩狠狠色| 狠狠色五月激情| 丁香五月激情啪啪| 久99热| 99色人| 婷婷五月丁香综合| 影音先锋 婷婷| 9l视频自拍9l九色9l成人| 久久99热这里只频精品6学生| 日韩AV免费| 欧美日韩成人在线| 婷婷开心激情五月激情网| 黄色AV日韩| 五月激情综合网婷婷| 日本一级一片免费视频| 久久精彩视频99| www色五月| www.ywav| 久久永久网址| www.99热视频| 能看的AV| 日本人人干| 人人色AV| 婷婷色丁香五月| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 五月丁香影视| 国产精品人成A片一区二区| 射区导航| 99.色| 1024日韩| 国产婷婷五月| 好吊丝aV| 婷婷色五月激情| wwww.色婷婷| 婷婷五月天Av| 五月丁香精品| 变态另类色图 | 影音先锋女人AA鲁色资源| 涩九九九九| 人妻精品久久久久久久| 丁香婷婷六月| 日本久久人| 17.c黄色| 99性爱| 丁香九月激情| 99色在线视频| 五月丁香婷婷五月色| 久久婷婷五月| 色五月五月天色婷婷色五月| 婷婷影院A成人| 狠狠色五月激情| 九色91国产| 开心久久网婷婷| 五月丁香六月婷婷色| 九九这里都是精品| 丁香五月婷婷偷拍| 99亚洲无码| av免费在线看不卡无毒| 五月天婷婷基地丁香| 婷久久| 2020日日干| 2025色婷婷| 97超级碰人人| 99精彩视频在线观看| 五月婷婷六月色| 色情五月丁香| 日本系列_4页_777FP| 五月丁香最新| 激情婷婷色五月| 五月婷A V在线| 色综合久久88色综合天天人守婷| 五月婷婷婷| 亚洲精品国产成人AV在线| 91久久色| 丁香五月激情综合婷综| www,99热| 九九久久腿| 色狠狠色综合| www,setingting| 婷婷伊人网| 99精彩视频在线观看| 综合色色色| 九九久久五月天| 色呦呦美女| 久久婷网| 九九re精品视频在线观看| 日本丁香久在线| 婷婷五月天成人| 婷丁香五月天| 丁香久久久| 色五月大| 丁香五月色五月| 综合一区二区三区| 久久五月婷婷丁香| 五月婷婷丁香啪啪| 天天日天天操心| 婷婷色五月开心五月| 噜噜操操| 91九色精品女同系列| 97人人干人人操| 91丨九色丨熟女高潮| 日日噜噜夜夜狠狠久久丁香五月| 婷婷六月激情| 色婷婷手机在线| 九九性视频| 亚洲综合干| 久久婷婷七月丁香| 少妇人妻综合色6699| 去色色五月天| 色五月大| 99久久婷婷| 99热在线观看| 伊人六月丁香婷婷| 亚洲无码影音| 亚洲视频99| 9久热在线视频精品| www色色com| 天天综合亚洲综合网天天αⅴ| 婷婷五月天激情网| 婷婷五月天激情AV影院| 六月丁香开心婷婷欧美| 五月丁香六月婷婷色情| 色婷婷97| 成人做爰A片免费看网站找不到了| 岛国av网| 五月色婷丁香| www.五月婷婷.com| 婷色人人狠| 婷婷五月天国产传媒| 激情五月婷婷综合| 五月伊人网| 国产精自产拍久久久久久蜜| 国产精品成人av在线观看春天| 成人在线高清| 99在线精品免费视频| 婷婷激情五月综合基地| 色婷婷五月综合色婷婷| 日韩高清成人| 激情文学天天| 91操女| 青青草原亚洲天堂| 日日天天操| 91日综合欧美| 色婷网| 五月天婷爱综合| 伊人五月天97| 亚洲色综合| 5月婷婷激情网| 日韩另类| 激情AV网| 欧美精品啪啪| 天堂婷婷五月色| 伊人玖玖综合| 日韩九区| 狠狠色综合网站久久久久| 中文字幕在线日亚洲9| 五月婷婷香蕉| 99激情在线| 久久66精品| 538任你爽| 思思干精品| 激情伊人五月天|