日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DDD与批量操作

發布時間:2023/12/4 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DDD与批量操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:https://enterprisecraftsmanship.com/posts/ddd-bulk-operations/

將批量操作與領域驅動設計相結合是一個困難的問題。在這篇文章中,我們將看看為什么會這樣,并討論如何結合兩個。

本文也是對讀者提問的回應。這個問題包含一個有趣的例子,我將在本文中使用:

Hi Vladimir!

你有關于DDD環境下批量操作的文章嗎?我沒有發現任何有用的東西。

請考慮以下示例:

給定一個任務列表,我想為所有與所選月份和類別匹配的任務設置一個執行日期,

另外,我不能為已經完成的任務設置執行日期,

對于給定的月份和類別,最多可以有30000個任務。

目前,我創建了一個SetExecutionDateDomainService:

查詢tasksRepository.GetBy(month, category),

對于每個任務,檢查task.CanSetExecutionDate(),

如果為true則調用taskRepository.Update(task)。

關于如何處理這個問題有什么意見/建議嗎?

有三種方法可以處理此問題:

  • 逐個處理對象(問題作者的處理方式),

  • 依賴SQL批量更新,

  • 結合使用規約和命令模式。

前兩種選擇有權衡。我特別喜歡第三個。

順序處理

處理此問題最直接的方法是檢索所有合適的對象,然后依次更新它們:

public?class?Task {public?int?Month?{?get;?private?set;?}public?string?Category?{?get;?private?set;?}public?bool?IsCompleted?{?get;?private?set;?}public?DateTime??ExecutionDate?{?get;?private?set;?}public?bool?CanSetExecutionDate(){return?IsCompleted?==?false;}public?void?SetExecutionDate(DateTime?executionDate){Guard.Require(CanSetExecutionDate(),?"CanSetExecutionDate()");ExecutionDate?=?executionDate;} }public?class?SetExecutionDateService {public?void?SetExecutionDate(int?month,?string?category,?DateTime?executionDate){IReadOnlyList<Task>?tasks?=?_repository.GetBy(month,?category);foreach?(Task?task?in?tasks){if?(task.CanSetExecutionDate()){task.SetExecutionDate(executionDate);_repository.Update(task);}}} }

該解決方案的主要優點是所有領域知識都包含在領域模型中。具體來說,執行日期何時可以設置的知識(CanSetExecutionDate方法)。

這里的缺點是缺乏性能:單獨處理和更新任務需要大量的數據庫往返——每次更新一次。

在OLTP類型的操作(少量數據的事務處理)之外,DDD通常不能很好地工作。對于批量更新大量任務的用例也是如此——它不屬于DDD的“舒適區”。

批量操作(或批量更新)是在一次數據庫往返中更新大量數據。

使用原始SQL

如果DDD不能很好地與批量更新配合使用,那該怎么辦?這就是原始SQL的閃光點。SQL專門設計用于處理大量相關數據,我們也可以將其用于我們的場景:

UPDATE?dbo.Task SET?ExecutionDate?=?@ExecutionDate WHERECategory?=?@Category?ANDMonth?=?@Month?ANDIsCompleted?=?0?--?領域知識重復

這種方法既快速又簡單,但違反了DRY原則:您必須將哪些任務有資格設置執行日期的知識同時放到SQL(IsCompleted=0行)和應用程序代碼(CanSetExecutionDate方法)中。

使用原始SQL可能不是一個壞的選擇,特別是在簡單的項目中,但是有更好的方法。

使用規約模式

簡而言之,規約模式 是關于將一段領域知識封裝到單個單元(稱為規約)中,然后在三種場景中重用該單元:

  • 數據檢索

  • 內存驗證

  • 創建新對象(下圖中的“按順序施工”)。

我還寫過,雖然這個模式的想法看起來很有趣,但它與CQRS模式相反,因此應該被丟棄。原因是CQRS提供了另一個好處——松耦合,在絕大多數情況下比DRY更重要。

CQRS通過將單個統一模型拆分為兩個來實現松耦合:一個用于讀取(數據檢索,原始SQL查詢的范圍),另一個用于寫入(內存驗證,DDD的范圍)。這種分離就是矛盾所在:規約模式主張保持統一的模型。

那么,規約模式如何在批量更新的場景中提供幫助呢?

事實證明,您不僅可以使用規約來查詢數據庫,還可以更新數據庫。首先讓我展示這個模式的一個典型用法。然后我將演示如何為批量更新用例擴展它。

在上述設置任務執行日期的用例中,我們需要以下三個規約:

public?sealed?class?TaskIsCompletedSpecification?:?Specification<Task> {public?override?Expression<Func<Task,?bool>>?ToExpression(){return?task?=>?task.IsCompleted;} }public?sealed?class?TaskMonthSpecification?:?Specification<Task> {private?readonly?int?_month;public?TaskMonthSpecification(int?month){_month?=?month;}public?override?Expression<Func<Task,?bool>>?ToExpression(){return?task?=>?task.Month?==?_month;} }//?+?TaskCategorySpecification,?which?is?the?same?as?TaskMonthSpecification

您可以在此GitHub倉儲中找到基本Specification類和所有其他支持類的源代碼。

根據這些規約,Task如下所示:

public?class?Task {public?int?Month?{?get;?private?set;?}public?string?Category?{?get;?private?set;?}public?bool?IsCompleted?{?get;?private?set;?}public?DateTime??ExecutionDate?{?get;?private?set;?}public?bool?CanSetExecutionDate(){var?spec?=?new?TaskIsCompletedSpecification();?'1return?spec.IsSatisfiedBy(this)?==?false;??????'1}public?void?SetExecutionDate(DateTime?executionDate){Guard.Require(CanSetExecutionDate(),?"CanSetExecutionDate()");ExecutionDate?=?executionDate;} }

請注意'1'中TaskIsCompletedSpecification的使用。它看起來可能是多余的(畢竟,此規約檢查同一任務實例的IsCompleted字段),但在應用程序中分配域知識時保持一致是很重要的。一旦您引入了一個規約來保存一部分知識,所有其他類也應該開始使用它來遵守DRY原則。

以下是領域服務:

public?class?SetExecutionDateService {public?void?SetExecutionDate(int?month,?string?category,?DateTime?executionDate){var?monthSpec?=?new?TaskMonthSpecification(month);var?categorySpec?=?new?TaskCategorySpecification(category);var?isNotCompletedSpec?=?new?TaskIsCompletedSpecification().Not();Specification<Task>?spec?=?monthSpec.And(categorySpec).And(isNotCompletedSpec);?'1IReadOnlyList<Task>?tasks?=?_repository.GetList(spec);?'2foreach?(Task?task?in?tasks){if?(task.CanSetExecutionDate()){task.SetExecutionDate(executionDate);_repository.Update(task);}}} }

領域服務組合了三個規約(第1行)并將它們傳遞給倉儲(“2”)。倉儲如下所示(我使用的是NHibernate,但實體框架的代碼是相同的):

public?IReadOnlyList<Task>?GetList(Specification<Task>?specification) {return?_session.Query<Task>().Where(specification.ToExpression()).ToList(); }

這段代碼依賴于復雜的ORM功能,它遍歷規約的表達式樹并將其轉換為SQL。例如,此組合規約

var?monthSpec?=?new?TaskMonthSpecification(month); var?categorySpec?=?new?TaskCategorySpecification(category); var?isNotCompletedSpec?=?new?TaskIsCompletedSpecification().Not(); Specification<Task>?spec?=?monthSpec.And(categorySpec).And(isNotCompletedSpec);

被翻譯成

Month?=?@Month?AND?Category?=?@Category?AND?NOT(IsCompleted?=?1)

C#表達式與ORM的結合是一對強大的組合。但即使是他們也只能帶你走這么遠。ORMs允許您使用表達式來查詢數據庫,但不能更新它。為了實現批量更新功能(將執行日期設置為一次數據庫往返中的所有任務),我們需要更新數據庫。

那么,該怎么辦呢?

好消息是,使用規約模式處理數據庫不必依賴ORMs或C#表達式。表達式樹是一個方便的工具,可以簡化規約的實現,但它們只是這樣一個工具。

另一個工具是原始SQL本身。實際上,您可以將這兩種方法結合起來:使用表達式樹進行內存驗證和查詢數據庫,使用原始SQL進行批量更新。其思想是,除了ToExpression方法外,每個規約還必須實現ToSql(),以便為updatesql查詢生成適當的過濾器。

下面是基本規約類的外觀(同樣,請查看GitHub倉儲以獲取完整的源代碼):

public?abstract?class?Specification<T> {public?bool?IsSatisfiedBy(T?entity){Func<T,?bool>?predicate?=?ToExpression().Compile();return?predicate(entity);}public?abstract?Expression<Func<T,?bool>>?ToExpression();/*?And(),?Or(),?Not()?methods?*/ }

您需要添加兩個新的抽象方法:

public?abstract?string?ToSql(); public?abstract?IEnumerable<SqlParameter>?ToSqlParameters();

ToSql將規約轉換為SQL,ToSqlParameters為該SQL提供必需的參數。

現在您需要在所有規約子類中實現這兩個方法。舉個例子:

public?sealed?class?TaskMonthSpecification?:?Specification<Task> {private?readonly?int?_month;public?TaskMonthSpecification(int?month){_month?=?month;}public?override?Expression<Func<Task,?bool>>?ToExpression(){return?task?=>?task.Month?==?_month;}public?override?string?ToSql(){return?"[Month]?=?@Month";}public?override?IEnumerable<SqlParameter>?ToSqlParameters(){yield?return?new?SqlParameter("Month",?_month);} }

最后,批量更新是這樣的:

//?Domain?service public?void?SetExecutionDate(int?month,?string?category,?DateTime?executionDate) {var?monthSpec?=?new?TaskMonthSpecification(month);var?categorySpec?=?new?TaskCategorySpecification(category);var?isNotCompletedSpec?=?new?TaskIsCompletedSpecification().Not();Specification<Task>?spec?=?monthSpec.And(categorySpec).And(isNotCompletedSpec);_repository.UpdateExecutionDate(executionDate,?spec); }//?TaskRepository public?void?UpdateExecutionDate(DateTime?executionDate,?Specification<Task>?specification) {string?sql?=?@"UPDATE?dbo.TaskSET?ExecutionDate?=?@ExecutionDateWHERE?"?+?specification.ToSql();using?(DbCommand?command?=?_session.Connection.CreateCommand()){command.CommandText?=?sql;command.Parameters.AddRange(specification.ToSqlParameters().ToArray());command.Parameters.Add(new?SqlParameter("ExecutionDate",?executionDate));command.ExecuteNonQuery();} }

這種規約模式的使用帶來了第四種場景,批量更新:

注意,這個用例并不與CQRS相矛盾:用于內存驗證和批量更新的領域知識的重用發生在應用程序的寫部分。因此,我想收回我先前的說法,即規約只在簡單的場景中有用(在這種場景中松耦合并不是那么重要)。批量更新是這種模式的一個非常有效的用例,這種用例可以出現在任何復雜的應用程序中。

在上述實現中,有關如何為批量更新選擇任務的業務需求都位于域層。這些要求是三個前提條件的組合,所有這些條件都包含在規約中:

  • 特定月份的任務,

  • 具有特定類別的任務,

  • 未完成的任務。

那么,問題解決了?還沒有。雖然我們已經封裝了哪些任務適合更新的知識,但更新本身仍然分散在Task領域類和TaskRepository之間('1和'2):

public?class?Task {/*?Month,?Category,?IsCompleted,?ExecutionDate?properties?*/public?bool?CanSetExecutionDate(){var?spec?=?new?TaskIsCompletedSpecification();return?spec.IsSatisfiedBy(this)?==?false;}public?void?SetExecutionDate(DateTime?executionDate){Guard.Require(CanSetExecutionDate(),?"CanSetExecutionDate()");ExecutionDate?=?executionDate;?'1} }//?TaskRepository public?void?UpdateExecutionDate(DateTime?executionDate,?Specification<Task>?specification) {string?sql?=?@"UPDATE?dbo.TaskSET?ExecutionDate?=?@ExecutionDate??'2WHERE?"?+?specification.ToSql();using?(DbCommand?command?=?_session.Connection.CreateCommand()){command.CommandText?=?sql;command.Parameters.AddRange(specification.ToSqlParameters().ToArray());command.Parameters.Add(new?SqlParameter("ExecutionDate",?executionDate));command.ExecuteNonQuery();} }

這是領域邏輯重復的另一個實例。為了解決這個問題,我們需要另一塊拼圖:命令模式。

遇見命令模式

上面清單中的重復似乎不是什么大事,因為它只是一個字段的賦值。但事實上,這是一件大事?—?還有一個先決條件要求任務不能完成,才能有執行日期:

public?void?SetExecutionDate(DateTime?executionDate) {/*?此前提條件是執行日期分配的固有部分?*/Guard.Require(CanSetExecutionDate(),?"CanSetExecutionDate()");ExecutionDate?=?executionDate; }

設置執行日期的行為是整個SetExecutionDate方法,而不僅僅是其中的賦值操作(=)。該方法的前提條件也存在于SQL查詢TaskRepository生成的:

UPDATE?dbo.Task SET?ExecutionDate?=?@ExecutionDate WHERE?[Month]?=?@MonthAND?Category?=?@CategoryAND?NOT(IsCompleted?=?1)?--?前提條件

問題是沒有任何東西可以阻止TaskRepository在未查詢此前提條件的情況下設置執行日期。IsCompleted和ExecutionDate字段之間的連接是一項重要的領域知識,您必須記住這一點,并在Task和TaskRepository中復制它們。

想象一下,不必指定DateTime這樣的基本類型,而必須指定一個包含多個字段的值對象。讓Task和TaskRepository中的邏輯不同步變得非常容易。

那么,如何克服這個問題,避免賦值邏輯的重復呢?這就是命令模式發揮作用的地方。

命令模式本質上與規約的作用相同,但是命令不檢查領域對象的屬性,而是更改這些屬性。您可以將這兩種模式之間的差異想象為:

  • 規約模式封裝了要更新哪些數據的知識。

  • 命令模式封裝了如何更新數據的知識。

另外,雖然您可以在4種場景中使用規約,但命令僅在兩種情況下有用:內存更新和批量更新。

Command基類的如下:

public?abstract?class?Command<T> {/*?先決條件之外的限制?*/protected?readonly?IReadOnlyList<Specification<T>>?_restrictions;??'1protected?Command(IReadOnlyList<Specification<T>>?restrictions){_restrictions?=?restrictions;}/*?Command's?前提條件?*/protected?abstract?IEnumerable<Specification<T>>?GetPreconditions();??'2private?Specification<T>?CombinedSpecification?=>GetPreconditions().Concat(_restrictions).Aggregate(Specification<T>.All,?(x,?y)?=>?x.And(y));protected?abstract?void?ExecuteCore(T?entity);protected?abstract?string?GetTableName();protected?abstract?string?ToSqlCore();protected?abstract?IEnumerable<SqlParameter>?ToSqlParametersCore();/*?內存更新?*/public?bool?CanExecute(T?entity){return?CombinedSpecification.IsSatisfiedBy(entity);}public?void?Execute(T?entity){if?(CanExecute(entity)?==?false)throw?new?InvalidOperationException();ExecuteCore(entity);}/*?用于批量更新的SQL?*/public?string?ToSql(){return?@"UPDATE?"?+?GetTableName()?+?@"SET?"?+?ToSqlCore()?+?@"WHERE?"?+?CombinedSpecification.ToSql();}/*?用于批量更新的SQL參數?*/public?IReadOnlyList<SqlParameter>?ToSqlParameters(){return?CombinedSpecification.ToSqlParameters().Concat(ToSqlParametersCore()).ToArray();} }

這個類看起來有點大,但背后的想法很簡單?—?將前提條件放到命令中,這樣就連省略這些前提條件的選項都沒有了。除了先決條件(第2行)之外,還可以對命令施加其他限制(“1”)。

下面是我們的批量更新Command:

public?class?SetExecutionDateCommand?:?Command<Task> {private?readonly?DateTime?_executionDate;public?SetExecutionDateCommand(DateTime?executionDate,?params?Specification<Task>[]?restrictions):?base(restrictions){_executionDate?=?executionDate;}protected?override?IEnumerable<Specification<Task>>?GetPreconditions(){yield?return?new?TaskIsCompletedSpecification().Not();}protected?override?void?ExecuteCore(Task?entity){entity.ExecutionDate?=?_executionDate;}protected?override?string?GetTableName(){return?"dbo.Task";}protected?override?string?ToSqlCore(){return?"ExecutionDate?=?@ExecutionDate";}protected?override?IEnumerable<SqlParameter>?ToSqlParametersCore(){yield?return?new?SqlParameter("ExecutionDate",?_executionDate);} }

用法如下:

//?SetExecutionDateService public?void?SetExecutionDate(int?month,?string?category,?DateTime?executionDate) {var?monthSpec?=?new?TaskMonthSpecification(month);??????????'1var?categorySpec?=?new?TaskCategorySpecification(category);?'1var?command?=?new?SetExecutionDateCommand(executionDate,?monthSpec,?categorySpec);_repository.BulkUpdate(command); }//?TaskRepository public?void?BulkUpdate(SetExecutionDateCommand?command) {using?(DbCommand?dbCommand?=?_session.Connection.CreateCommand()){dbCommand.CommandText?=?command.ToSql();dbCommand.Parameters.AddRange(command.ToSqlParameters().ToArray());dbCommand.ExecuteNonQuery();} }

請注意,規約限制('1)是可選的(您可以將它們應用于命令,也可以不應用于命令),但規約前提條件是必需的。事實上,您甚至沒有指定該前提條件的選項?—?它被放到命令本身中。這就是封裝的本質:你不能總是相信自己會做正確的事情;你必須消除做錯事的可能性。

另外請注意,我不熟悉應用程序的細節,并假設月份和類別限制是可選的。如果不是,您也應該將它們移到GetPreconditions方法,在這種情況下,命令和領服務將變得更加簡單:

public?class?SetExecutionDateCommand?:?Command<Task> {private?readonly?DateTime?_executionDate;private?readonly?int?_month;private?readonly?string?_category;public?SetExecutionDateCommand(DateTime?executionDate,?int?month,?string?category):?base(new?Specification<Task>[0]){_category?=?category;_month?=?month;_executionDate?=?executionDate;}protected?override?IEnumerable<Specification<Task>>?GetPreconditions(){yield?return?new?TaskIsCompletedSpecification().Not();yield?return?new?TaskMonthSpecification(_month);yield?return?new?TaskCategorySpecification(_category);}/*?剩下的一樣?*/ }//?SetExecutionDateService public?void?SetExecutionDate(int?month,?string?category,?DateTime?executionDate) {var?command?=?new?SetExecutionDateCommand(executionDate,?month,?category);_repository.BulkUpdate(command); }

同樣,由于其簡單性,原始SQL可能仍然是大多數項目的更好選擇,即使它不遵守 DRY 原則。但是,規約和命令模式的組合對于具有復雜域邏輯的項目可能很有用,您希望在內存中更新和批量更新之間重用這些邏輯。

總結

  • DDD適合于事務處理少量數據(OLTP),不能很好地處理批量操作。

  • 批量操作(或批量更新)是在一次數據庫往返中更新大量數據。

  • 有三種方法可以處理批量更新:

    • 順序處理(遵循干燥原則,不利于性能),

    • 使用原始SQL(有利于性能,違反了DRY原則)

    • 結合使用規約和命令模式(堅持DRY和良好的性能)。

  • 除了內存驗證、查詢數據庫和創建新對象之外,批量操作是規約模式的第四個用例。

  • 規約模式封裝了要更新哪些數據的知識。命令模式封裝了如何更新數據的知識。這兩種模式都允許您在領域模型和批量操作之間重用這些知識。

  • 命令使用規約作為

    • 內存更新,

    • 批量更新。

歡迎關注我的個人公眾號”My IO“

總結

以上是生活随笔為你收集整理的DDD与批量操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久精品国产一区二区电影 | 国产精品9999久久久久仙踪林 | 精品国产一区二区三区男人吃奶 | 亚洲激精日韩激精欧美精品 | 一区二区三区久久 | 日韩欧在线 | 综合色在线 | 91丨九色丨蝌蚪丨老版 | 日韩中文在线电影 | 天天干天天做 | 免费av高清 | 欧美日韩国产精品一区二区亚洲 | 日本中文字幕在线一区 | 草久视频在线观看 | 黄色毛片在线观看 | 国产成人精品三级 | 天天拍天天爽 | 在线观看免费一区 | 国产免费高清 | 免费看三级黄色片 | 偷拍视频一区 | 丁香婷婷综合激情 | 亚洲精品在线网站 | 91在线精品一区二区 | 国产色在线视频 | 成年人免费看的视频 | 日韩在线观看视频一区二区三区 | 久久99电影| 久久色在线播放 | a爱爱视频 | 日韩一级电影在线观看 | 欧美日韩成人 | 免费看的黄色录像 | 成人a视频片观看免费 | 国产一级二级av | 青春草免费视频 | 国产又粗又长又硬免费视频 | 午夜精品三区 | 国产成人黄色av | 中国一区二区视频 | 亚洲人片在线观看 | 欧美亚洲精品一区 | 久久视屏网 | 国产在线观看午夜 | 天天干天天看 | 中文字幕 在线 一 二 | 国产一区二区精品久久91 | 天天干,天天射,天天操,天天摸 | 国产又粗又猛又黄又爽的视频 | 五月亚洲 | 91在线免费视频 | 成人精品亚洲 | 欧美日韩国产欧美 | 九色福利视频 | 免费国产一区二区视频 | 五月婷婷丁香综合 | 日韩毛片在线播放 | 日韩高清一二区 | 亚洲美女精品视频 | 天天操天天干天天 | 日韩精品不卡 | 日日夜夜天天久久 | 欧美日韩精品在线观看 | 欧美婷婷色| av色网站 | 香蕉在线观看视频 | 在线免费视频你懂的 | 久久久久久久久久久久久久免费看 | 色婷婷99| 久久情爱 | 狠狠操狠狠干2017 | 国产黄色大片 | 丁香色综合 | 最新中文字幕在线观看视频 | 欧美三级高清 | 欧美经典久久 | 日韩三级在线观看 | 国产精品国内免费一区二区三区 | 亚洲少妇久久 | 日本精品视频一区二区 | 干干操操| 高清国产午夜精品久久久久久 | 久久久午夜精品福利内容 | 黄色软件视频网站 | 亚洲少妇天堂 | 日韩欧美视频免费在线观看 | 国产日韩在线看 | 久草精品视频在线播放 | 少妇bbb好爽 | 国产成人精品国内自产拍免费看 | 黄色avwww | 日韩欧美一区二区在线播放 | 激情网五月婷婷 | 香蕉一区| 蜜臀久久99精品久久久酒店新书 | 色偷偷中文字幕 | 五月综合婷 | 欧美一级片免费 | 国产免费观看久久 | 久久玖 | 成人免费视频网址 | 久久精品日韩 | 国产精品情侣视频 | 最新在线你懂的 | 免费91在线观看 | 久久精彩 | 久久精品视频在线观看免费 | 精品久久1 | aaa亚洲精品一二三区 | 国产日韩在线播放 | 亚洲久草视频 | 欧美狠狠操 | 亚洲激情网站免费观看 | 97在线观看 | 婷婷综合五月天 | 91精品老司机久久一区啪 | 欧美孕交vivoestv另类 | 黄av资源 | 色综合久久网 | 91麻豆文化传媒在线观看 | 久久综合精品一区 | 精品国产视频一区 | 免费黄色激情视频 | 成人久久久久久久久久 | 色综合久久网 | 久久久久伦理电影 | 久久国产女人 | 2018好看的中文在线观看 | 在线观看a视频 | 99性视频 | 亚洲视频99| 久久人人爽人人爽人人片av免费 | 欧美日韩高清一区 | 91日韩在线播放 | 91精品视频免费在线观看 | 中文字幕在线看人 | 国产欧美精品一区二区三区四区 | 丁香影院在线 | 国产精品入口麻豆 | 久久国产精品影片 | 天天夜夜亚洲 | 欧美国产精品久久久久久免费 | 911久久香蕉国产线看观看 | 国产一区二区在线免费播放 | 免费在线观看一区 | 免费在线观看亚洲视频 | 亚洲欧美成人综合 | 在线免费观看视频a | 成人午夜剧场在线观看 | 中文字幕你懂的 | 天天综合网 天天综合色 | 国产精品99久久久久人中文网介绍 | 国产又粗又猛又黄又爽的视频 | 久久人人爽人人爽 | 成人影片免费 | 一级免费黄视频 | 国产精品99久久99久久久二8 | 色爱区综合激月婷婷 | 九色91视频| 午夜视频在线瓜伦 | 五月激情综合婷婷 | 一本到在线 | 亚洲国产日韩欧美在线 | 日韩精品一区二区免费 | 欧美在线free | 久草在线免费在线观看 | 国产精品成人一区二区三区 | 综合久久精品 | 黄色精品一区 | 四虎影视成人精品 | 国产亚洲精品精品精品 | 99久久久久久 | 一区二区三区在线观看中文字幕 | 欧美国产精品一区二区 | 亚洲精品视频免费在线观看 | 精品99视频 | 99re中文字幕 | 精品 一区 在线 | 香蕉视频国产在线 | 久久免费播放视频 | 日本在线视频网址 | 日韩欧美久久 | 亚洲资源视频 | 91久久国产综合精品女同国语 | 天天狠狠| 午夜精品av在线 | 久久无码精品一区二区三区 | 日本久久久久久科技有限公司 | 国产一区欧美一区 | 亚洲一区视频在线播放 | www黄免费| 97电院网手机版 | 最新中文字幕在线资源 | 久久精品三 | 四虎国产 | 丁香综合网 | www.久久精品视频 | 国内精品免费久久影院 | 伊人狠狠色 | www.成人精品 | 日日夜夜狠狠 | 久久久久久伊人 | 综合黄色网 | 成人在线中文字幕 | 久久艹在线观看 | 日韩高清在线观看 | 99久久精品日本一区二区免费 | 91成人免费在线视频 | 国产99久久久国产精品免费看 | 91完整视频 | 黄av资源 | 久久电影国产免费久久电影 | 日本系列中文字幕 | 国产精品三级视频 | 999久久久久久| 日韩免费观看一区二区三区 | 久久观看免费视频 | 欧美一级黄色视屏 | 日韩精品免费一区二区 | 国产精品亚洲片在线播放 | 欧美久久久影院 | 九九九九热精品免费视频点播观看 | 中国一级片免费看 | 成人cosplay福利网站 | 四虎影视成人永久免费观看视频 | 免费av大全| 久久综合久久伊人 | 欧美在线不卡一区 | 久久只有精品 | 天天综合导航 | 精品视频免费播放 | 男女激情片在线观看 | 九九热在线观看 | 国产免费三级在线观看 | 欧美日本一区 | 久久成人视屏 | 日韩一级精品 | 日韩欧美观看 | 一级一片免费看 | 日日夜夜噜 | 我要色综合天天 | 在线性视频日韩欧美 | 国产成人精品亚洲精品 | 四虎成人精品永久免费av九九 | 亚洲第二色 | 天天干,天天插 | 一级黄网 | 日韩在线观看视频免费 | 色com| 亚洲成av人片在线观看www | 91成人蝌蚪 | 亚洲精品午夜久久久久久久久久久 | 在线观看中文字幕dvd播放 | ,久久福利影视 | 天天操综合网站 | 毛片1000部免费看 | 五月天激情视频在线观看 | 亚洲第一中文网 | 我要看黄色一级片 | 亚洲国产美女精品久久久久∴ | 在线观看午夜av | 欧美精品久久天天躁 | 国产精品一级在线 | 国产护士av | 成年人在线视频观看 | 国产精品毛片一区 | 91精彩在线视频 | 顶级bbw搡bbbb搡bbbb | 欧美另类网站 | 国外成人在线视频网站 | 福利视频导航网址 | 美女免费黄网站 | 亚洲 欧美 另类人妖 | 99电影456麻豆 | 国产第一页福利影院 | 色噜噜噜噜| 人人狠狠综合久久亚洲婷 | 久草在线视频中文 | 四虎国产精品免费观看视频优播 | 欧美日韩一级久久久久久免费看 | 亚洲国产精品成人av | 免费大片黄在线 | 日韩专区一区二区 | 精品一区二区久久久久久久网站 | 久久在现视频 | 91精品视频在线看 | 狠狠躁日日躁狂躁夜夜躁av | 国产亚洲aⅴaaaaaa毛片 | 天天天天爱天天躁 | 看av免费 | 最新av免费在线 | 亚洲欧美国产视频 | 中文字幕在线观看2018 | 狠狠激情中文字幕 | 91精品在线视频 | 国产精品v欧美精品 | 日韩伦理一区二区三区av在线 | 国产精品一区二区三区在线 | 激情影院在线观看 | 国产一区精品在线观看 | 亚洲第一区在线观看 | av电影在线不卡 | 伊人五月天 | 娇妻呻吟一区二区三区 | 久久精品男人的天堂 | 国产精品久久久久久久久久久免费看 | 波多野结衣一区二区三区中文字幕 | 91成年人网站 | 国产剧情在线一区 | a'aaa级片在线观看 | 亚洲精品网页 | 亚洲一二区视频 | 91麻豆精品国产 | 国产免码va在线观看免费 | 蜜臀av夜夜澡人人爽人人 | 视频一区二区三区视频 | 日韩在线播放欧美字幕 | 黄免费在线观看 | 国产91aaa | 99婷婷狠狠成为人免费视频 | 亚洲欧洲成人 | 国产一区视频免费在线观看 | www.久久色.com| 91视频啊啊啊 | 欧美狠狠色 | 欧洲一区二区三区精品 | 在线观看日本高清mv视频 | 欧美综合久久久 | 免费看短 | 在线观看中文字幕dvd播放 | 一区二区欧美激情 | 色综合激情久久 | 狠狠操狠狠干2017 | 国产精品va在线 | 最新极品jizzhd欧美 | 在线观看一级 | 免费高清在线视频一区· | 欧美一二三视频 | 伊色综合久久之综合久久 | 国产精品一区二区久久久久 | 亚洲精品一区二区三区四区高清 | 国产精品麻豆欧美日韩ww | 91精品免费在线视频 | 国内精品久久久久影院男同志 | 国产高清视频在线免费观看 | 日本爱爱片 | 91九色国产在线 | 欧美成人在线免费观看 | 国产一区视频免费在线观看 | 日本精品xxxx | 在线激情网 | 亚洲国产日本 | 天天综合精品 | 亚洲久在线 | 一区二区日韩av | 久久人人爽人人爽人人片av免费 | 国产精品不卡在线 | 欧美久久久久久 | 久久伦理影院 | 九九久久在线看 | 又色又爽又黄高潮的免费视频 | 蜜臀av性久久久久av蜜臀妖精 | www.综合网.com| 日韩精品在线免费观看 | 亚洲一二三区精品 | 欧美尹人 | 亚洲国产精品视频在线观看 | 日韩在线观看第一页 | 久久成年人网站 | 国产精品免费视频一区二区 | av成人资源 | 安徽妇搡bbbb搡bbbb | 九九综合久久 | 日韩欧美一区二区三区在线观看 | 视频99爱| 中文在线字幕免费观看 | 狠狠狠色丁香婷婷综合久久五月 | 91视频91自拍| 久久久www成人免费毛片麻豆 | 久久乐九色婷婷综合色狠狠182 | 在线观看成人福利 | 国产情侣一区 | 超级碰碰视频 | 久久久久久久精 | 久久综合干 | 亚洲九九 | 狠狠插狠狠操 | 日本精品久久久久久 | 日韩av女优视频 | 国产精品福利小视频 | 在线观看视频精品 | av在线播放免费 | 精品一区二三区 | 中文字幕欧美三区 | 国产原创中文在线 | 成人av一区二区三区 | 婷婷色av | 日韩av三区 | 国产麻豆精品久久 | 精品欧美一区二区精品久久 | 亚洲伊人av | 国产97av| 久草免费福利在线观看 | 成人中文字幕+乱码+中文字幕 | 三级视频日韩 | 九九色视频 | 国产日韩欧美自拍 | 国产h在线观看 | 日韩三级在线观看 | 亚洲精品一区中文字幕乱码 | 中文字幕高清在线 | 中文字幕久久精品一区 | 国产自偷自拍 | 日本精品视频一区 | 国产裸体无遮挡 | 婷婷丁香在线 | aav在线| 综合久色| av片一区二区 | 黄色录像av | 亚洲国产97在线精品一区 | 国产亚洲综合性久久久影院 | 波多野结衣电影久久 | 一本—道久久a久久精品蜜桃 | 欧美a级片网站 | 日本电影久久 | 91亚洲精 | 在线观看中文字幕视频 | 日韩视频免费 | 91桃色视频 | 最近乱久中文字幕 | 国产丝袜| 在线观看91精品国产网站 | 亚洲国产成人精品在线观看 | 欧洲精品码一区二区三区免费看 | 免费看的黄色小视频 | 日韩欧美一区二区三区黑寡妇 | 国产精品免费在线视频 | 五月婷婷影院 | 国产成人av网址 | 日本特黄特色aaa大片免费 | www.黄色网.com | 日韩草比| 日韩免费一区二区三区 | 色婷婷成人网 | 国产视频97| 91网站在线视频 | 国产精品日韩在线 | 欧美日韩精品国产 | 伊人狠狠色丁香婷婷综合 | 免费观看国产视频 | av片中文 | 亚洲精品国产综合99久久夜夜嗨 | 国产一区二区不卡视频 | 日本久久久久久科技有限公司 | 狠狠色丁香久久婷婷综合丁香 | 免费成人在线视频网站 | 久久6精品 | 99热这里只有精品在线观看 | 欧美日韩亚洲一 | 日本中文字幕在线观看 | 激情av在线资源 | 五月天精品视频 | 九九热免费视频在线观看 | 草在线 | 丁香导航 | 日韩av中文| 狠狠干五月天 | 99精品免费久久久久久久久日本 | 国产91粉嫩白浆在线观看 | 免费久久精品视频 | 天天干 夜夜操 | 色欧美成人精品a∨在线观看 | se婷婷 | 久久久久久高潮国产精品视 | 久草在线中文视频 | 国产日韩三级 | 国产91aaa | 日韩在线电影一区 | 成人在线免费看视频 | 日韩中文字幕电影 | 成人动漫一区二区三区 | 亚洲免费在线看 | 特级毛片aaa | 伊人资源视频在线 | 久久久久国产精品一区二区 | 免费视频你懂的 | 亚洲精品中文在线资源 | 狠狠色伊人亚洲综合网站野外 | 欧美巨大 | 久久久久久国产精品美女 | 日韩国产欧美在线播放 | 成人高清在线观看 | 4438全国亚洲精品在线观看视频 | 97视频在线播放 | 涩涩色亚洲一区 | 九九九九精品九九九九 | a视频免费看 | 免费色视频在线 | 日韩中文字幕视频在线观看 | 欧美一区二区在线刺激视频 | 午夜电影一区 | 久久专区 | 中文字幕网站 | 91在线视频在线观看 | 久久婷婷五月综合色丁香 | 日韩三区在线 | 久精品视频免费观看2 | 97超级碰碰碰视频在线观看 | 啪啪免费视频网站 | 狠狠色综合欧美激情 | 在线观看免费成人av | 欧美淫视频| 国产精品一区二区三区在线 | 国产成人av电影 | 亚洲最大免费成人网 | 人人讲下载| 91九色在线观看视频 | 二区三区毛片 | 天天插伊人| 欧美日韩1区 | 亚洲日日日 | 欧美性视频网站 | www.久久com | 日韩女同一区二区三区在线观看 | 新av在线| 久久全国免费视频 | 亚洲国产成人高清精品 | 免费av网址在线观看 | 韩国精品在线 | 午夜免费在线观看 | 欧美日韩一级视频 | 91成人在线观看喷潮 | 亚洲精品国偷拍自产在线观看蜜桃 | 免费av片在线 | 婷婷激情五月 | 国产精品麻豆三级一区视频 | 亚洲激情在线观看 | 中文av在线免费观看 | 欧美极度另类 | 国产成人三级在线播放 | 97电影网手机版 | 国产在线无 | 久久精品视频在线观看免费 | 麻豆视频免费入口 | 午夜精品一二三区 | 日韩精品一区二区三区免费视频观看 | 欧美大香线蕉线伊人久久 | 成人在线观看资源 | 干狠狠| 国产四虎在线 | 久久综合色影院 | 午夜在线观看影院 | 久久精品中文字幕一区二区三区 | av免费在线观看网站 | 天天爱天天爽 | 国产成人一区二区三区影院在线 | 国产精品久久久久999 | 黄色免费网站大全 | 久久好看 | 国产精品一区二区久久 | 91精品办公室少妇高潮对白 | 偷拍区另类综合在线 | 天天操天天色天天射 | 丁香婷婷射| 91天堂素人约啪 | 亚洲天堂色婷婷 | 精品视频亚洲 | 9热精品| 日本天天色 | 久久九九久久 | 国产又粗又硬又爽的视频 | 88av网站 | 狠狠色噜噜狠狠狠狠2021天天 | 欧美日韩午夜 | www.亚洲精品 | 亚洲午夜久久久综合37日本 | 在线免费观看涩涩 | 成年人免费在线播放 | 青青河边草免费观看 | 日韩狠狠操 | 欧美a级免费视频 | 激情网在线视频 | 久久久精品99 | 欧美日韩中文字幕综合视频 | 天天射成人 | 亚洲综合小说电影qvod | 一二区电影 | 久久久久久久久国产 | 久久亚洲免费 | 天天综合网天天 | 一个色综合网站 | 夜夜嗨av色一区二区不卡 | 99热国产在线中文 | 九九热国产视频 | 国产精品永久 | 欧美孕妇与黑人孕交 | 热re99久久精品国产99热 | 亚洲天堂激情 | 中文字幕日韩无 | 中文字幕最新精品 | av性在线| 九九精品视频在线看 | 最新国产精品拍自在线播放 | 午夜免费在线观看 | 国产成人免费在线 | 中文字幕在线观看第三页 | 国内成人av | 日韩一区二区免费视频 | www在线观看视频 | 黄色片网站av | www.看片网站 | 国产精品久久久久久欧美 | 黄色大片网 | 国产精品v a免费视频 | 日本爱爱免费视频 | 久爱综合 | 国产日本亚洲高清 | 天天曰| 国产一级视频在线免费观看 | 久久精品视 | 91精品麻豆 | www色com | 色国产精品 | 午夜精品久久 | 欧美在线视频精品 | 国产亚洲一区二区在线观看 | 嫩嫩影院理论片 | 99视频在线观看视频 | 在线观看岛国av | 黄色日视频 | 麻豆国产网站入口 | 久草a在线| 欧美一区二区免费在线观看 | 中文字幕在线专区 | 久久草草热国产精品直播 | 最近中文字幕mv免费高清在线 | 亚洲精品久久久久中文字幕二区 | 伊人婷婷激情 | 麻豆国产精品va在线观看不卡 | 精品免费视频123区 午夜久久成人 | 国产精品美女久久久免费 | 欧美激情精品一区 | 亚洲免费在线观看视频 | 亚洲午夜久久久久 | 亚洲 中文 欧美 日韩vr 在线 | 韩国三级一区 | 999国产| 国产 日韩 在线 亚洲 字幕 中文 | 国产 中文 日韩 欧美 | 96视频免费在线观看 | 日韩特黄一级欧美毛片特黄 | 一本—道久久a久久精品蜜桃 | 天天色天天爱天天射综合 | 国产九九精品 | 97天天综合网 | 五月开心色 | 久久久www成人免费精品 | 婷婷色影院 | 国产午夜一级毛片 | 狠狠干 狠狠操 | 白丝av免费观看 | 精品在线观看免费 | 日韩激情免费视频 | 日韩av影视在线 | 精品麻豆入口免费 | 黄色大片国产 | 亚洲成人高清在线 | 91在线看 | 一级一级一片免费 | 欧美日韩另类在线观看 | 日日干狠狠操 | 91热视频在线观看 | 久久99久久精品 | 干天天 | 色视频在线看 | 亚洲精品99久久久久久 | 成人免费在线网 | 在线免费视 | 91网免费看| www.午夜视频 | 一级理论片在线观看 | 色婷婷激情五月 | 国产成人在线一区 | 成年人视频免费在线播放 | free. 性欧美.com| 九九久久国产 | 午夜视频免费在线观看 | 天天插天天 | 96香蕉视频| 日韩电影在线观看中文字幕 | av电影亚洲 | 人人干干人人 | 97精品久久 | 久久精品官网 | 久久久国产成人 | 国产拍在线 | 色婷婷视频网 | 国产一区二区精品久久 | 精品久久久久一区二区国产 | 黄色大片免费播放 | 久久精品5| zzijzzij亚洲成熟少妇 | 五月婷在线观看 | 亚洲欧美综合精品久久成人 | 99色视频在线 | 久久99精品久久久久久三级 | 免费看片网页 | 久久久久久国产精品亚洲78 | 日韩理论视频 | 99精品观看| 国产色小视频 | 国产精品视频最多的网站 | 亚洲精品h | 亚洲最大av网 | 人人爽人人爽人人爽学生一级 | 亚洲激情综合 | 久久精品国产亚洲aⅴ | 国产精品18久久久久久久久 | 在线电影av | 亚洲日本va午夜在线影院 | 国产黄a三级三级三级三级三级 | www九九热 | 有码中文在线 | 黄色的网站免费看 | 人人射人人爽 | 婷婷国产在线观看 | 四虎在线免费观看 | 久久草在线精品 | 日韩精品资源 | 国产精品 久久 | 久久精精品视频 | 激情网第四色 | 综合久久久久 | 久久免费一级片 | 伊人中文网 | 日韩视频一 | 999视频网 | 色94色欧美 | 色婷婷 亚洲 | 天天激情天天干 | 亚洲 中文 在线 精品 | 精品亚洲免费视频 | 午夜精品福利一区二区三区蜜桃 | 黄色av在| 欧美日韩精品久久久 | 热re99久久精品国产66热 | www.人人草| 99精品久久久久久久久久综合 | 探花视频在线观看免费 | 日韩电影在线看 | 1024在线看片 | 欧美另类z0zx | 香蕉视频在线免费看 | 久草在线资源观看 | av片无限看| 91av在线电影 | 欧美日本一二三 | 97超级碰 | 色综合天天色 | 久久久久久久久久久高潮一区二区 | 最新婷婷色| 国产精品久久久久久久久久免费看 | 亚洲免费国产视频 | 91精品国产自产在线观看 | 国产黄色大全 | 成人丝袜| av成人在线播放 | 亚洲人成影院在线 | 黄色毛片网站在线观看 | 久久不射电影院 | 伊人亚洲综合网 | 国产成人a v电影 | www.狠狠干 | 国产成人在线播放 | 中文字幕在线观看完整版 | 欧美日韩国产精品久久 | 免费看成年人 | 午夜国产福利在线 | 亚洲一二区精品 | 色综合久久久久久中文网 | 欧美成人手机版 | 黄色软件视频网站 | av免费成人| 亚洲精品视频中文字幕 | 日韩欧美高清免费 | 黄色一级免费 | 久久国产亚洲 | 三级黄在线 | 亚洲精品五月 | 香蕉精品视频在线观看 | 九九热视频在线免费观看 | 九九在线免费视频 | 久久理论电影网 | 国产精品一区二区三区99 | 99热这里只有精品免费 | 91精品一区二区在线观看 | 国产一级黄色免费看 | 欧美激情视频在线观看免费 | 日韩三级.com | 天天干.com| 国产免费人成xvideos视频 | 亚洲老妇xxxxxx| 国产91综合一区在线观看 | 国产精品成人自产拍在线观看 | 狠狠狠色丁香婷婷综合久久88 | 久久在线视频在线 | 成人欧美一区二区三区在线观看 | 国产欧美精品一区二区三区四区 | 国产精品成人久久久 | 国产录像在线观看 | 国产精品毛片久久久久久久 | 在线亚洲人成电影网站色www | av免费电影在线观看 | 久久夜视频 | 久草干 | 激情伊人五月天 | 亚洲国产中文字幕在线观看 | 精品国产一区二区三区蜜臀 | 亚洲电影黄色 | 久久艹精品 | 中文av免费| 日本中文字幕观看 | 99精品黄色| 福利网址在线观看 | 人成免费网站 | 欧美精品在线观看免费 | 91av资源网 | 91精彩视频在线观看 | 成人av中文字幕在线观看 | av成人动漫| 欧美成人理伦片 | 91综合视频在线观看 | 国产精品1024 | 99欧美精品| 国产在线观| 国产在线播放一区二区 | 欧美一级久久久久 | 天天干,天天射,天天操,天天摸 | 久草久热 | 国产精品无av码在线观看 | 日本丰满少妇免费一区 | 国产精品视频app | 亚洲成年人av | 日韩精品影视 | 亚洲人成精品久久久久 | 一区二区三区四区不卡 | 日本久久99 | 国产精品一区二区三区在线免费观看 | 麻豆视频免费入口 | 伊人黄色网| 最近2019中文免费高清视频观看www99 | 奇米影视999| www.狠狠操.com | 精品专区一区二区 | 欧美资源在线观看 | 91av欧美| 91久久偷偷做嫩草影院 | av网站大全免费 | 亚洲综合在线五月 | 日本中文字幕系列 | 国产视频亚洲视频 | 福利精品在线 | 99热最新网址 | 久久不见久久见免费影院 | 天天插一插 | 国产精品免费在线播放 | 国产在线观看国语版免费 | 香蕉精品在线观看 | 久久av福利 | 久久99国产精品二区护士 | 婷婷色狠狠 | 91人人网 | 狠狠色噜噜狠狠狠合久 | 国产中文字幕在线播放 | 色综合婷婷 | 国产亚洲激情视频在线 | 国产精品久久在线观看 | 夜色资源站wwwcom | 欧美视频18 | 色婷婷久久久 | www.亚洲精品视频 | 国产视频97 | 成人一区在线观看 | 亚洲国产精久久久久久久 | 最近中文字幕完整高清 | 操操操操网 | 欧美一级久久久久 | 91香蕉视频污在线 | 国产在线观看高清视频 | 欧美精品xx | 天天干天天天天 | 国产精品美女久久久久久网站 | 黄色片亚洲 | av中文字幕网 | 国产一区二区三区 在线 | 免费碰碰 | 国产成人久久精品77777 | 国产精品久久久一区二区三区网站 | 在线精品视频在线观看高清 | 在线免费观看视频一区二区三区 | 女人高潮一级片 | 在线电影 一区 | 99久久精品免费看国产一区二区三区 | 午夜视频在线观看网站 | 成人亚洲精品国产www | 久精品一区| 欧美在线你懂的 | 国产精品欧美一区二区 | 国产一级片视频 | 日韩高清av在线 | 在线视频 亚洲 | 草莓视频在线观看免费观看 | 91精品视频导航 | 精品免费久久 | 国产精品欧美日韩在线观看 | 中文日韩在线视频 | 一二区精品 | 日韩在线观看高清 | 99 色 | 国产综合精品一区二区三区 | www.久久久.cum | 久久久久久久久久久久av | 成人久久精品视频 | 伊人亚洲综合网 | 久久久精品福利视频 | 国产一区电影在线观看 | 久久综合免费视频影院 | 成人九九视频 | 亚洲精品视频免费在线 | 久久国产精品久久国产精品 | 国产三级视频 | 亚洲午夜电影网 | 日韩在线观看小视频 | 91精品久久久久久久久久入口 | 免费av网址在线观看 | 一级黄色片在线观看 | 欧美成年黄网站色视频 | 久久在线播放 | 久久久久久久久毛片精品 | 久久五月婷婷综合 | 亚洲a色| 国产精品久久久久久久久费观看 | 九九九免费视频 | 久久综合久色欧美综合狠狠 | 人人澡人人爱 | 亚洲日韩中文字幕在线播放 | 六月天色婷婷 | 国产成免费视频 | 国产男女爽爽爽免费视频 | 最新av电影网站 | 国产亚洲精品xxoo | ww亚洲ww亚在线观看 | 免费三级大片 | 狠狠干狠狠操 | 欧美一区二区在线免费观看 | www.香蕉视频在线观看 | 一区二区三区在线免费观看视频 | 一区二区电影在线观看 | 在线看日韩av | va视频在线观看 | 一级黄色片在线免费看 | 四虎在线观看 | 日本婷婷色 | 激情视频在线观看网址 | 国产一级黄色av | 91网免费观看 | 黄色网中文字幕 | 免费观看一级成人毛片 | 久久免费公开视频 | 日韩精品免费在线视频 | 日韩视频免费在线观看 | 91网免费观看 | av中文在线影视 | 特级黄色视频毛片 | 久久激情小视频 | 亚洲一级影院 | 久久精品精品 | 黄色软件网站在线观看 | 欧美日韩裸体免费视频 | 欧美激情一区不卡 | 日本中文字幕在线播放 | 一本一本久久a久久精品综合小说 | 久草手机视频 | 亚洲四虎在线 | 999成人免费视频 | av在线最新 | 午夜精品久久久久久久久久久久 | 精品影院一区二区久久久 | 日韩高清观看 | 91精品高清| 亚洲国产精品一区二区尤物区 | 国产精品一区二区在线观看免费 | 国产亚洲激情视频在线 | 精品国产一区二区久久 | 日韩精品在线免费播放 | 最新av免费 | 天天碰天天操视频 |