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

ARTICLE DETAIL

資訊詳情

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

金蝶云星空k3cloud插件開(kāi)發(fā)入門:從環(huán)境搭建到事件觸發(fā)

金蝶云星空k3cloud插件開(kāi)發(fā)入門:從環(huán)境搭建到事件觸發(fā) 簡(jiǎn)介本資源是一份面向K/3 Cloud初學(xué)者的BOS插件開(kāi)發(fā)入門指南聚焦企業(yè)個(gè)性化業(yè)務(wù)擴(kuò)展場(chǎng)景系統(tǒng)講解插件開(kāi)發(fā)環(huán)境搭建、四類核心插件動(dòng)態(tài)表單、服務(wù)、校驗(yàn)規(guī)則、表單構(gòu)建的定位與應(yīng)用以及BOS架構(gòu)模型與開(kāi)發(fā)實(shí)操要點(diǎn)。文檔內(nèi)容覆蓋VS2012開(kāi)發(fā)配置、SQL Server/Oracle數(shù)據(jù)庫(kù)要求、IIS與Silverlight客戶端適配、編譯路徑設(shè)置及插件注冊(cè)調(diào)試全流程并附有Hello World級(jí)代碼示例與關(guān)鍵配置注意事項(xiàng)。資源為單文件Word文檔.docx共1個(gè)文件大小1.9MB格式規(guī)范、圖文結(jié)合便于邊學(xué)邊練。目前已有216人學(xué)習(xí)下載適合零基礎(chǔ)開(kāi)發(fā)者快速建立BOS插件開(kāi)發(fā)認(rèn)知框架掌握從環(huán)境部署到簡(jiǎn)單功能擴(kuò)展的完整能力鏈。1. 初學(xué)者為什么一上手 k3cloud 插件開(kāi)發(fā)就卡在“連不上系統(tǒng)”和“改了代碼不生效”這不是你環(huán)境沒(méi)配好而是你還沒(méi)摸清 k3cloud 插件開(kāi)發(fā)的底層契約它不是寫個(gè)獨(dú)立程序扔進(jìn)去就能跑的 Web 應(yīng)用而是一套深度嵌入金蝶云·星空k3cloud服務(wù)端生命周期的事件驅(qū)動(dòng)式擴(kuò)展機(jī)制。插件本質(zhì)是 .NET Framework 4.5 編譯的 DLL必須通過(guò) k3cloud 的「插件管理」界面注冊(cè)、啟用并由其宿主進(jìn)程K3Cloud.WebApi.exe 或 K3Cloud.ServiceHost.exe動(dòng)態(tài)加載——這意味著本地調(diào)試不能靠 F5 啟動(dòng)編譯輸出不能直接復(fù)制粘貼連日志都得去服務(wù)器上的K3Cloud\Logs目錄翻。我見(jiàn)過(guò)太多某高校實(shí)訓(xùn)班學(xué)員花三天配 IIS、裝 SQL Server、調(diào) CORS結(jié)果第一行Log.Info(插件已加載)死活不出現(xiàn)在日志里最后發(fā)現(xiàn)只是插件未在【系統(tǒng)管理】→【插件管理】里點(diǎn)“啟用”。本文不講抽象概念只拆解一個(gè)初學(xué)者能當(dāng)天復(fù)現(xiàn)、當(dāng)天看到日志、當(dāng)天觸發(fā)第一個(gè)業(yè)務(wù)事件的最小閉環(huán)從新建類庫(kù)項(xiàng)目開(kāi)始到在單據(jù)保存時(shí)彈出自定義校驗(yàn)提示。所有步驟基于 k3cloud V7.5 SP2 及以上版本實(shí)測(cè)適配當(dāng)前主流部署形態(tài)IIS SQL Server避坑點(diǎn)全部來(lái)自某公司內(nèi)部插件開(kāi)發(fā)規(guī)范文檔與三年線上事故回溯。2. 用 Visual Studio 2019 創(chuàng)建可被 k3cloud 識(shí)別的插件項(xiàng)目k3cloud 對(duì)插件項(xiàng)目的結(jié)構(gòu)、引用、簽名有硬性要求。常見(jiàn)錯(cuò)誤是直接新建 ASP.NET Web 項(xiàng)目或 .NET Core 類庫(kù)——這兩者在 k3cloud 宿主進(jìn)程里根本無(wú)法加載。必須嚴(yán)格使用 .NET Framework 類庫(kù)Class Library且目標(biāo)框架鎖定為.NET Framework 4.5.2V7.5 默認(rèn)最低支持版本高版本如 4.8 雖可運(yùn)行但部分反射 API 行為有差異不建議新手越級(jí)。2.1 新建項(xiàng)目并配置基礎(chǔ)屬性打開(kāi) Visual Studio 2019VS2022 對(duì) .NET Framework 4.5.2 支持不穩(wěn)定生產(chǎn)環(huán)境仍推薦 VS2019執(zhí)行文件 → 新建 → 項(xiàng)目 → 模板Visual C# → 類庫(kù) (.NET Framework) 項(xiàng)目名稱K3Cloud.Plugin.Demo 目標(biāo)框架.NET Framework 4.5.2提示項(xiàng)目名無(wú)需帶“K3Cloud”前綴但建議按K3Cloud.Plugin.[業(yè)務(wù)域]命名便于后期在插件管理界面識(shí)別。不要勾選“創(chuàng)建解決方案目錄”避免路徑嵌套過(guò)深導(dǎo)致發(fā)布失敗。創(chuàng)建后右鍵項(xiàng)目 → 【屬性】→ 【應(yīng)用程序】選項(xiàng)卡程序集名稱K3Cloud.Plugin.Demo默認(rèn)命名空間K3Cloud.Plugin.Demo程序集版本1.0.0.0后續(xù)升級(jí)需同步修改k3cloud 按版本號(hào)判斷是否覆蓋2.2 添加 k3cloud SDK 核心引用k3cloud 不提供 NuGet 包所有 SDK 引用必須從已部署的 k3cloud 服務(wù)器上提取。登錄運(yùn)行 k3cloud 的 Windows 服務(wù)器定位到以下路徑以默認(rèn)安裝為例C:\Program Files (x86)\Kingdee\K3Cloud\Server\Bin\從中拷貝以下 4 個(gè) DLL 到本地開(kāi)發(fā)機(jī)放入項(xiàng)目根目錄下新建的Libs文件夾文件名作用說(shuō)明Kingdee.BOS.dllBOS 平臺(tái)核心提供元數(shù)據(jù)、上下文、服務(wù)總線訪問(wèn)Kingdee.BOS.Core.dllBOS 核心邏輯含實(shí)體基類、服務(wù)契約定義Kingdee.BOS.App.Data.dll數(shù)據(jù)訪問(wèn)層封裝含DBUtils、SqlBuilder等常用工具Kingdee.BOS.Contracts.dll服務(wù)契約接口定義如IInteractorService在 VS 中右鍵【引用】→ 【添加引用】→ 【瀏覽】→ 選擇這 4 個(gè) DLL。關(guān)鍵動(dòng)作選中每個(gè)引用 → 右側(cè)屬性窗口 → 將【復(fù)制到輸出目錄】設(shè)為“不復(fù)制”。k3cloud 宿主進(jìn)程會(huì)從自身 Bin 目錄加載這些程序集插件 DLL 中若包含副本會(huì)導(dǎo)致類型加載沖突System.TypeLoadException。2.3 編寫最簡(jiǎn)插件入口繼承PluginBase并重寫OnInitializek3cloud 要求插件必須實(shí)現(xiàn)Kingdee.BOS.Core.DynamicPlugin.PluginBase抽象類。新建類DemoPlugin.csusing Kingdee.BOS.Core.DynamicPlugin; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.Metadata.ConvertElement; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Core.Metadata.FieldElement; using Kingdee.BOS.Core.Metadata.FormElement; using Kingdee.BOS.Core.Metadata.ViewElement; using Kingdee.BOS.Core.Metadata.BusinessElement; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement......## 1. 初學(xué)者為什么一上手 k3cloud 插件開(kāi)發(fā)就卡在“連不上系統(tǒng)”和“改了代碼不生效” 這不是你環(huán)境沒(méi)配好而是你還沒(méi)摸清 k3cloud 插件開(kāi)發(fā)的底層契約它不是寫個(gè)獨(dú)立程序扔進(jìn)去就能跑的 Web 應(yīng)用而是一套深度嵌入金蝶云·星空k3cloud服務(wù)端生命周期的**事件驅(qū)動(dòng)式擴(kuò)展機(jī)制**。插件本質(zhì)是 .NET Framework 4.5 編譯的 DLL必須通過(guò) k3cloud 的「插件管理」界面注冊(cè)、啟用并由其宿主進(jìn)程K3Cloud.WebApi.exe 或 K3Cloud.ServiceHost.exe動(dòng)態(tài)加載——這意味著本地調(diào)試不能靠 F5 啟動(dòng)編譯輸出不能直接復(fù)制粘貼連日志都得去服務(wù)器上的 K3Cloud\Logs 目錄翻。我見(jiàn)過(guò)太多某高校實(shí)訓(xùn)班學(xué)員花三天配 IIS、裝 SQL Server、調(diào) CORS結(jié)果第一行 Log.Info(插件已加載) 死活不出現(xiàn)在日志里最后發(fā)現(xiàn)只是插件未在【系統(tǒng)管理】→【插件管理】里點(diǎn)“啟用”。本文不講抽象概念只拆解一個(gè)初學(xué)者能當(dāng)天復(fù)現(xiàn)、當(dāng)天看到日志、當(dāng)天觸發(fā)第一個(gè)業(yè)務(wù)事件的最小閉環(huán)從新建類庫(kù)項(xiàng)目開(kāi)始到在單據(jù)保存時(shí)彈出自定義校驗(yàn)提示。所有步驟基于 k3cloud V7.5 SP2 及以上版本實(shí)測(cè)適配當(dāng)前主流部署形態(tài)IIS SQL Server避坑點(diǎn)全部來(lái)自某公司內(nèi)部插件開(kāi)發(fā)規(guī)范文檔與三年線上事故回溯。 --- ## 2. 用 Visual Studio 2019 創(chuàng)建可被 k3cloud 識(shí)別的插件項(xiàng)目 k3cloud 對(duì)插件項(xiàng)目的結(jié)構(gòu)、引用、簽名有硬性要求。常見(jiàn)錯(cuò)誤是直接新建 ASP.NET Web 項(xiàng)目或 .NET Core 類庫(kù)——這兩者在 k3cloud 宿主進(jìn)程里根本無(wú)法加載。必須嚴(yán)格使用 .NET Framework 類庫(kù)Class Library且目標(biāo)框架鎖定為 **.NET Framework 4.5.2**V7.5 默認(rèn)最低支持版本高版本如 4.8 雖可運(yùn)行但部分反射 API 行為有差異不建議新手越級(jí)。 ### 2.1 新建項(xiàng)目并配置基礎(chǔ)屬性 打開(kāi) Visual Studio 2019VS2022 對(duì) .NET Framework 4.5.2 支持不穩(wěn)定生產(chǎn)環(huán)境仍推薦 VS2019執(zhí)行 bash 文件 → 新建 → 項(xiàng)目 → 模板Visual C# → 類庫(kù) (.NET Framework) 項(xiàng)目名稱K3Cloud.Plugin.Demo 目標(biāo)框架.NET Framework 4.5.2提示項(xiàng)目名無(wú)需帶“K3Cloud”前綴但建議按K3Cloud.Plugin.[業(yè)務(wù)域]命名便于后期在插件管理界面識(shí)別。不要勾選“創(chuàng)建解決方案目錄”避免路徑嵌套過(guò)深導(dǎo)致發(fā)布失敗。創(chuàng)建后右鍵項(xiàng)目 → 【屬性】→ 【應(yīng)用程序】選項(xiàng)卡程序集名稱K3Cloud.Plugin.Demo默認(rèn)命名空間K3Cloud.Plugin.Demo程序集版本1.0.0.0后續(xù)升級(jí)需同步修改k3cloud 按版本號(hào)判斷是否覆蓋2.2 添加 k3cloud SDK 核心引用k3cloud 不提供 NuGet 包所有 SDK 引用必須從已部署的 k3cloud 服務(wù)器上提取。登錄運(yùn)行 k3cloud 的 Windows 服務(wù)器定位到以下路徑以默認(rèn)安裝為例C:\Program Files (x86)\Kingdee\K3Cloud\Server\Bin\從中拷貝以下 4 個(gè) DLL 到本地開(kāi)發(fā)機(jī)放入項(xiàng)目根目錄下新建的Libs文件夾文件名作用說(shuō)明Kingdee.BOS.dllBOS 平臺(tái)核心提供元數(shù)據(jù)、上下文、服務(wù)總線訪問(wèn)Kingdee.BOS.Core.dllBOS 核心邏輯含實(shí)體基類、服務(wù)契約定義Kingdee.BOS.App.Data.dll數(shù)據(jù)訪問(wèn)層封裝含DBUtils、SqlBuilder等常用工具Kingdee.BOS.Contracts.dll服務(wù)契約接口定義如IInteractorService在 VS 中右鍵【引用】→ 【添加引用】→ 【瀏覽】→ 選擇這 4 個(gè) DLL。關(guān)鍵動(dòng)作選中每個(gè)引用 → 右側(cè)屬性窗口 → 將【復(fù)制到輸出目錄】設(shè)為“不復(fù)制”。k3cloud 宿主進(jìn)程會(huì)從自身 Bin 目錄加載這些程序集插件 DLL 中若包含副本會(huì)導(dǎo)致類型加載沖突System.TypeLoadException。2.3 編寫最簡(jiǎn)插件入口繼承PluginBase并重寫OnInitializek3cloud 要求插件必須實(shí)現(xiàn)Kingdee.BOS.Core.DynamicPlugin.PluginBase抽象類。新建類DemoPlugin.csusing Kingdee.BOS.Core.DynamicPlugin; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.Metadata.ConvertElement; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Core.Metadata.FieldElement; using Kingdee.BOS.Core.Metadata.FormElement; using Kingdee.BOS.Core.Metadata.ViewElement; using Kingdee.BOS.Core.Metadata.BusinessElement; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement...... // ← 實(shí)際開(kāi)發(fā)中請(qǐng)用 VS 的“智能提示”自動(dòng)補(bǔ)全此處為示意省略 using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; namespace K3Cloud.Plugin.Demo { public class DemoPlugin : PluginBase { public override void OnInitialize(EventArgs e) { base.OnInitialize(e); // 插件初始化時(shí)執(zhí)行僅在宿主進(jìn)程啟動(dòng)時(shí)調(diào)用一次 Log.Info(DemoPlugin 已加載版本 1.0.0.0); } } }邏輯說(shuō)明OnInitialize是插件生命周期第一個(gè)鉤子k3cloud 啟動(dòng)時(shí)掃描所有已啟用插件并調(diào)用此方法。Log.Info會(huì)輸出到K3Cloud\Logs\BosLog\下的日期文件中如BosLog_20240520.log這是驗(yàn)證插件是否被識(shí)別的最直接證據(jù)。參數(shù)說(shuō)明EventArgs e暫無(wú)實(shí)際用途但必須保留簽名否則編譯失敗。2.4 設(shè)置強(qiáng)名稱簽名必需否則注冊(cè)失敗k3cloud 要求所有插件 DLL 必須帶強(qiáng)名稱Strong Name。右鍵項(xiàng)目 → 【屬性】→ 【簽名】選項(xiàng)卡勾選【為程序集簽名】選擇【新建】→ 輸入密鑰文件名K3Cloud.Plugin.Demo.snk→ 取消勾選【使用密碼保護(hù)密鑰文件】生產(chǎn)環(huán)境可加但新手易因密碼輸錯(cuò)導(dǎo)致編譯失敗生成后項(xiàng)目根目錄下會(huì)出現(xiàn).snk文件。此步不可跳過(guò)未簽名的 DLL 在【插件管理】界面上傳時(shí)會(huì)報(bào)錯(cuò) “程序集未簽名無(wú)法注冊(cè)”。3. 在 k3cloud 管理端完成插件注冊(cè)、啟用與日志驗(yàn)證本地編譯只是第一步。k3cloud 插件必須經(jīng)由其 Web 管理界面完成注冊(cè)才能被宿主進(jìn)程加載。這個(gè)過(guò)程涉及權(quán)限控制、版本校驗(yàn)和熱加載機(jī)制不能通過(guò)文件復(fù)制繞過(guò)。3.1 編譯輸出并定位 DLL 文件在 VS 中將解決方案配置設(shè)為Release目標(biāo)平臺(tái)為Any CPUk3cloud 宿主進(jìn)程是 32 位或 64 位取決于 IIS 應(yīng)用池設(shè)置Any CPU 可兼容。點(diǎn)擊【生成】→ 【重新生成解決方案】。成功后DLL 位于K3Cloud.Plugin.Demo\bin\Release\K3Cloud.Plugin.Demo.dll注意該 DLL 必須是Release 版本。Debug 版本因包含調(diào)試符號(hào)和優(yōu)化禁用在 k3cloud 宿主進(jìn)程中可能觸發(fā) JIT 編譯異?;蛐阅芨婢?。3.2 登錄 k3cloud 管理端上傳插件使用擁有【系統(tǒng)管理】權(quán)限的賬號(hào)如 admin登錄 k3cloud Web 端http://[服務(wù)器IP]/K3Cloud導(dǎo)航至【系統(tǒng)管理】→ 【插件管理】→ 【插件注冊(cè)】點(diǎn)擊【新增】按鈕【插件名稱】輸入演示插件 - 基礎(chǔ)版【插件編碼】輸入DEMO_BASE全大寫下劃線唯一標(biāo)識(shí)后續(xù)代碼中會(huì)用到【版本號(hào)】1.0.0.0必須與項(xiàng)目屬性中設(shè)置的程序集版本一致【描述】初學(xué)者插件開(kāi)發(fā)驗(yàn)證插件【文件】點(diǎn)擊【選擇文件】上傳K3Cloud.Plugin.Demo.dll【啟用】? 勾選關(guān)鍵不勾選則不會(huì)加載點(diǎn)擊【保存】。若出現(xiàn)紅色錯(cuò)誤提示常見(jiàn)原因見(jiàn)后文「避坑」章節(jié)。3.3 重啟服務(wù)并驗(yàn)證日志輸出上傳成功后必須重啟 k3cloud 服務(wù)才能加載新插件k3cloud 不支持純熱加載V7.5 SP2 后仍需重啟登錄 k3cloud 服務(wù)器打開(kāi)【服務(wù)】services.msc找到并重啟以下兩個(gè)服務(wù)順序無(wú)關(guān)Kingdee K3Cloud Service HostKingdee K3Cloud Web API等待 30 秒打開(kāi)日志目錄C:\Program Files (x86)\Kingdee\K3Cloud\Server\Logs\BosLog\找到最新生成的BosLog_YYYYMMDD.log文件用記事本或 VS Code 打開(kāi)搜索關(guān)鍵詞DemoPlugin。若看到如下內(nèi)容證明插件已成功加載2024-05-20 14:22:38,765 [INFO] DemoPlugin 已加載版本 1.0.0.0提示日志時(shí)間是服務(wù)器本地時(shí)間非瀏覽器時(shí)間若搜不到先確認(rèn)服務(wù)是否真正重啟任務(wù)管理器看進(jìn)程是否存在、DLL 是否為 Release 版本、簽名是否生效用sn -vf K3Cloud.Plugin.Demo.dll命令驗(yàn)證。4. 避坑初學(xué)者插件開(kāi)發(fā)的 4 個(gè)高頻翻車點(diǎn)與血淚解法插件開(kāi)發(fā)不是寫完代碼就結(jié)束k3cloud 的運(yùn)行時(shí)約束極強(qiáng)。以下問(wèn)題均來(lái)自某公司內(nèi)部故障庫(kù) Top 5每一條都對(duì)應(yīng)真實(shí)線上事故。4.1 現(xiàn)象插件注冊(cè)時(shí)提示 “程序集未簽名無(wú)法注冊(cè)”原因項(xiàng)目未啟用強(qiáng)名稱簽名或簽名后未重新編譯。.snk文件存在但項(xiàng)目屬性中未勾選【為程序集簽名】。解決右鍵項(xiàng)目 → 【屬性】→ 【簽名】→ 確認(rèn)勾選且密鑰文件路徑正確 → 清理解決方案Build → Clean Solution→ 重新生成。用命令行驗(yàn)證sn -vf bin\Release\K3Cloud.Plugin.Demo.dll返回Public key token is ...即成功。4.2 現(xiàn)象日志中完全搜不到DemoPlugin但插件管理里顯示“已啟用”原因插件 DLL 編譯目標(biāo)框架高于 k3cloud 支持版本如用了 .NET 4.7.2或引用了 k3cloud Bin 目錄外的第三方 DLL如 Newtonsoft.Json導(dǎo)致宿主進(jìn)程加載失敗并靜默跳過(guò)。解決確認(rèn)目標(biāo)框架為 .NET Framework 4.5.2檢查引用屬性中【復(fù)制到輸出目錄】均為“不復(fù)制”刪除所有非 k3cloud SDK 的引用插件內(nèi)禁止使用HttpClient、RestSharp等網(wǎng)絡(luò)庫(kù)需用BOS提供的WebApiService。4.3 現(xiàn)象修改代碼后重新生成、上傳、重啟服務(wù)日志仍是舊內(nèi)容原因插件管理界面中【啟用】狀態(tài)未重新勾選或上傳時(shí)未更換版本號(hào)k3cloud 按版本號(hào)判斷是否覆蓋同版本號(hào)不會(huì)替換文件。解決每次修改后必須在【插件管理】中① 取消勾選【啟用】→ 保存 → ② 再次編輯 → 修改【版本號(hào)】如1.0.0.1→ 重新上傳 DLL → 勾選【啟用】→ 保存 → 重啟服務(wù)。4.4 現(xiàn)象插件能加載但自定義事件如單據(jù)保存完全不觸發(fā)原因未在插件類上添加[Kingdee.BOS.Core.DynamicPlugin.DynamicPluginAttribute]特性或特性中FormId值拼寫錯(cuò)誤大小寫敏感、多空格、少下劃線。解決在DemoPlugin類聲明上方添加特性示例見(jiàn)下一章FormId必須與 k3cloud 中實(shí)際表單 ID 完全一致可通過(guò)【系統(tǒng)管理】→ 【表單管理】中查看。5. 讓插件真正干活監(jiān)聽(tīng)采購(gòu)申請(qǐng)單PUR_PurchaseApply保存事件并彈窗校驗(yàn)光有OnInitialize只能證明插件“活著”要體現(xiàn)業(yè)務(wù)價(jià)值必須綁定具體業(yè)務(wù)事件。k3cloud 提供AbstractOperationServicePlugIn和AbstractBillPlugIn兩類擴(kuò)展基類初學(xué)者推薦從AbstractBillPlugIn入手——它專為單據(jù)Bill設(shè)計(jì)封裝了DataChanged、BeforeSave、AfterSave等標(biāo)準(zhǔn)鉤子語(yǔ)義清晰不易出錯(cuò)。5.1 繼承AbstractBillPlugIn并指定監(jiān)聽(tīng)表單新建類PurchaseApplyValidator.csusing Kingdee.BOS.Core.DynamicPlugin; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.Metadata.ConvertElement; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Core.Metadata.FieldElement; using Kingdee.BOS.Core.Metadata.FormElement; using Kingdee.BOS.Core.Metadata.ViewElement; using Kingdee.BOS.Core.Metadata.BusinessElement; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; using Kingdee.BOS.Core............ // 同上用 VS 智能提示補(bǔ)全 using Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; namespace K3Cloud.Plugin.Demo { [Kingdee.BOS.Core.DynamicPlugin.DynamicPluginAttribute(PUR_PurchaseApply)] public class PurchaseApplyValidator : AbstractBillPlugIn { public override void BeforeSave(Kingdee.BOS.Core.DynamicPlugin.Args.SaveArgs e) { base.BeforeSave(e); // 獲取當(dāng)前單據(jù)主表數(shù)據(jù)采購(gòu)申請(qǐng)單頭 var head this.Model.DataObject as Kingdee.BOS.Core.Metadata.BusinessElement.BusinessObject.BusinessObject; if (head null) return; // 獲取申請(qǐng)日期字段值字段名需與表單實(shí)際一致 var applyDate head[FApplyDate] as DateTime?; if (!applyDate.HasValue) throw new Exception(申請(qǐng)日期不能為空請(qǐng)?zhí)顚懞蟊4?; // 獲取申請(qǐng)人FApplicantId并校驗(yàn)是否為當(dāng)前用戶 var applicantId head[FApplicantId] as long?; var currentUserId this.Context.UserId; if (applicantId ! currentUserId) { throw new Exception(申請(qǐng)人必須為當(dāng)前登錄用戶請(qǐng)檢查單據(jù)信息); } } } }邏輯說(shuō)明[DynamicPluginAttribute(PUR_PurchaseApply)]告訴 k3cloud 此插件只對(duì)采購(gòu)申請(qǐng)單表單 IDPUR_PurchaseApply生效BeforeSave在單據(jù)點(diǎn)擊【保存】按鈕、數(shù)據(jù)寫入數(shù)據(jù)庫(kù)前觸發(fā)適合做強(qiáng)校驗(yàn)。throw new Exception(...)會(huì)中斷保存流程并在 Web 端彈出紅色提示框這是 k3cloud 內(nèi)置的錯(cuò)誤處理機(jī)制。參數(shù)說(shuō)明SaveArgs e包含保存上下文但初學(xué)者無(wú)需深究重點(diǎn)是this.Model.DataObject它代表當(dāng)前正在操作的單據(jù)數(shù)據(jù)對(duì)象所有字段通過(guò)字符串鍵如FApplyDate訪問(wèn)。5.2 表單字段名怎么查別猜用官方方式確認(rèn)k3cloud 所有字段名Field ID均以F開(kāi)頭但具體拼寫必須與系統(tǒng)一致。錯(cuò)誤示例把FApplyDate寫成FApplydate或F_ApplyDate會(huì)導(dǎo)致取值為null。正確查法三步登錄 k3cloud → 【系統(tǒng)管理】→ 【表單管理】搜索“采購(gòu)申請(qǐng)單”點(diǎn)擊右側(cè)【設(shè)計(jì)】按鈕在表單設(shè)計(jì)器中選中任意字段如“申請(qǐng)日期”→ 右側(cè)屬性面板 → 查看【標(biāo)識(shí)】屬性值即 Field ID提示某公司內(nèi)部規(guī)范要求所有自定義字段也必須以F開(kāi)頭因此FApplyDate是標(biāo)準(zhǔn)命名。若查不到該字段說(shuō)明你打開(kāi)的是舊版表單或權(quán)限不足。5.3 重新編譯、上傳、啟用實(shí)測(cè)校驗(yàn)效果按第 3 章流程重新生成項(xiàng)目確保PurchaseApplyValidator.cs已加入編譯上傳新 DLL 到【插件管理】版本號(hào)改為1.0.0.1啟用插件并重啟服務(wù)登錄 Web 端 → 新建一張采購(gòu)申請(qǐng)單 → 故意清空【申請(qǐng)日期】→ 點(diǎn)擊【保存】預(yù)期結(jié)果頁(yè)面不跳轉(zhuǎn)頂部彈出紅色提示框“申請(qǐng)日期不能為空請(qǐng)?zhí)顚懞蟊4妗彬?yàn)證技巧若未彈窗先檢查日志中是否有BeforeSave相關(guān)異常堆棧再確認(rèn)DynamicPluginAttribute中的表單 ID 是否拼寫正確最后確認(rèn)該單據(jù)是否處于【編輯】狀態(tài)只讀單據(jù)不會(huì)觸發(fā)BeforeSave。6. 進(jìn)階技巧用Log記錄結(jié)構(gòu)化調(diào)試信息快速定位業(yè)務(wù)邏輯問(wèn)題Log.Info是插件開(kāi)發(fā)的“后悔藥”。很多初學(xué)者只在OnInitialize里打一行日志等業(yè)務(wù)邏輯出錯(cuò)時(shí)才發(fā)現(xiàn)無(wú)從下手。真正的調(diào)試能力在于讓每條日志自帶上下文、可過(guò)濾、能回溯。6.1 日志分級(jí)與結(jié)構(gòu)化輸出k3cloudLog類支持Debug/Info/Warn/Error四級(jí)。初學(xué)者應(yīng)養(yǎng)成習(xí)慣Log.Debug僅開(kāi)發(fā)期使用記錄變量值、分支路徑上線前應(yīng)關(guān)閉或降級(jí)Log.Info記錄關(guān)鍵節(jié)點(diǎn)如“單據(jù)保存開(kāi)始”、“校驗(yàn)通過(guò)”Log.Warn記錄非致命異常如“申請(qǐng)人ID為空跳過(guò)校驗(yàn)”Log.Error記錄catch中的異常必須帶ex.ToString()public override void BeforeSave(SaveArgs e) { try { Log.Info($【PUR_PurchaseApply】BeforeSave 開(kāi)始單據(jù)ID: {this.Model.DataObject[FID]}); var head this.Model.DataObject as DynamicObject; if (head null) { Log.Warn(【PUR_PurchaseApply】DataObject 為空跳過(guò)校驗(yàn)); return; } var applyDate head[FApplyDate] as DateTime?; Log.Debug($【PUR_PurchaseApply】申請(qǐng)日期值: {applyDate?.ToString(yyyy-MM-dd) ?? null}); if (!applyDate.HasValue) { Log.Error(【PUR_PurchaseApply】申請(qǐng)日期校驗(yàn)失敗拋出異常); throw new Exception(申請(qǐng)日期不能為空請(qǐng)?zhí)顚懞蟊4?; } } catch (Exception ex) { Log.Error($【PUR_PurchaseApply】BeforeSave 異常: {ex.ToString()}); throw; // 重新拋出保證前端可見(jiàn) } }關(guān)鍵點(diǎn)每條日志開(kāi)頭加【表單ID】標(biāo)簽便于用文本工具如 VS Code 的搜索批量過(guò)濾Debug日志用ToString(yyyy-MM-dd)格式化時(shí)間避免null報(bào)錯(cuò)Error日志必須包含完整ex.ToString()否則堆棧丟失。6.2 日志文件管理與快速檢索k3cloud 默認(rèn)按天生成日志但BosLog_YYYYMMDD.log文件可能達(dá)百 MB。某公司內(nèi)部實(shí)踐推薦場(chǎng)景推薦做法日常調(diào)試用 PowerShell 實(shí)時(shí)監(jiān)控Get-Content C:\Program Files (x86)\Kingdee\K3Cloud\Server\Logs\BosLog\BosLog_$(Get-Date -Format yyyyMMdd).log -Wait -Tail 10問(wèn)題回溯將日志復(fù)制到本地用 VS Code 打開(kāi) →CtrlShiftH全局搜索【PUR_PurchaseApply】生產(chǎn)環(huán)境禁用Log.Debug將Log.Info級(jí)別日志單獨(dú)輸出到PluginDemo.log需自定義Log4Net配置超出本文范圍6.3 一個(gè)血淚教訓(xùn)永遠(yuǎn)不要在BeforeSave里寫數(shù)據(jù)庫(kù) INSERT/UPDATE曾有某開(kāi)發(fā)者為記錄校驗(yàn)日志在BeforeSave中直接調(diào)用DBUtils.Execute插入一條日志表。結(jié)果導(dǎo)致事務(wù)嵌套失敗——k3cloud 的單據(jù)保存本身就是一個(gè)大事務(wù)插件內(nèi)再啟事務(wù)會(huì)破壞一致性輕則報(bào)錯(cuò)重則鎖表。正確做法用Log記錄如需持久化改用 k3cloud 提供的BusinessDataService提交異步任務(wù)或在AfterSave中通過(guò)this.Context.Session獲取已提交的單據(jù) ID 后再操作。我?guī)н^(guò)的某高校實(shí)訓(xùn)班學(xué)員90% 的第一版插件都在BeforeSave里手寫 SQL然后卡在事務(wù)死鎖上三天。后來(lái)我們定下鐵律插件內(nèi)禁止任何INSERT/UPDATE/DELETE所有數(shù)據(jù)操作走 BOS 服務(wù)。這看似限制實(shí)則是幫你避開(kāi)金蝶底層最黑的黑匣子。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月婷色| 六月丁香射婷婷欧美色图片| 狠狠精品干练久久久无码中文字幕| 五月婷婷精品无在线| 欧美在线视频免费播放| av操B网站| 丁香五月天.com| 婷婷六月网| 98永久精品| http:色情日本com| 99成人| 色色色色色色色色网站| 丁香婷婷视频一区二区| 丁香五月婷婷动漫视频| 99热思思久| 日本天堂网站99| 狠狠爱综合| 天天在线XXX| 79亚洲精品少妇| 黄色91在线观看| 激情婷婷五月天| 爽天天天天天天天| 色五月丁香五月天| 欧州色色| www,99热| va亚洲中文在线| 性爱先锋AV| 色五月天丁香婷婷色| 日韩人妻白浆视频系列| 麻豆观看夏晴子| 九九在线精点品| 丁香婷婷激情| 久久久久激情网| 99成人精品视频| 色青青五月| 五夜婷婷| 综合亚洲色色| 思思99精品视频在线观看| 91视频综合网| 超碰色综合| 丁香婷婷久久综合在线| www.久久久久久久久久久| 美女久久天堂| 99色在线视频观看| 色婷婷狠狠久久YY| 99人妻碰碰碰久久久久禁片| 99热国品免费| 九九视频精品在线免费| 五月婷婷激情中心| 婷婷狠狠操| 婷婷爱五月天人人爱| 99视频精品8 | 激情99| 日韩性视频| 99操免费视频| 久久99久久99久久99人受| 一区二区乱码视频| 九九热这里| 天天插天天射| 2025超碰| 亚洲狠狠婷婷| 久久五月视频| 五月情综合| 亚洲精99| 婷婷丁香五月综合激情视频| 丁香婷婷色五月激情综合| 九九在线这里只有精品视频| 九月色婷婷综合| 五月色综合| 亚洲综合五月天婷婷丁香| 亚洲无码yw| 色色色欧美| 丁香五月天电影| 婷婷激情四射| 狠狠色婷婷丁香五月| 亚洲视频1区| 九九热99精品| 亚洲国产色婷婷| www.激情在线| 婷婷五月天综合小说网| 欧洲亚洲免费视频9| 91一起艹| 99久热视频在线| 亚洲一区二区 成人网站戴套| 最新久久99视频网站| 97精品综合久久内射| 免费亚洲成人电影AV| 五月婷婷六月丁香五月| 色五月综合| 91精品激情9| 婷婷丁香先锋资源网站| 亚洲无码成人网| 99热 免费| 亚洲色综久久五月| 26uuu精品国产| 激情久久久| 北条麻妃九九九国产精品视频| 五月婷性爱| 九九视屏| 成 久久| 婷婷亚洲五月| 欧美日韩成卜| 99精品自拍视频| 色色啊| www99热| 色热久| 开心五月色婷婷综合开心网| 91超级碰在线| 操一操| 九九综合色综合| 狠狠狠狠狠狠| 色九月欧美| 五月丁香六月激情综合啪啪| 97在线碰| 六月激情网| 六月欧美综合色情| 99re在线精品视频| 激情婷婷综合网| 六月色婷婷色| 91黄操| 国产精品久久久爽爽爽麻豆色哟哟| 久久亭亭电影| 天天舔天天| 欧美综合丁香网| 亚洲va欧美va天堂v国产综合| 99自拍视频| 一本到不卡高清DVD| 亚洲天堂99| 99精品22| WWW嗯嗯啊啊啊啊| 久久色婷婷| 五月婷婷六月婷| 五月丁香综合激情网| 五月天操逼激情| 六月丁香啪啪啪| 青草热视频这里只有精品| 超碰网站在线观看| 91丨九色丨老熟女激情| 国产成人va在线| 五月天久久久| 亚洲精品国产setv| 情色婷婷五月天| 亚洲精级| 成人精品99| 久久五月丁香| 亚洲激情丁香五月天色| 婷婷另类小说| 丁香 婷婷 激情 综合 五月| 在线成人网站| 亚洲成人在线免费| 六月丁香av| 日本情色一区二区| 久久人妻伦理| 五月色婷丁香| 激情五月小说婷婷| 美女伊人久久| 夜夜爱网站| 丁香五月花影院| 立川无码av| 99ri在线| 97色碰| 丁香六月色婷婷| 99日本视频| 乱轮A片| 无码日本精品XXXXXXXXX| www.久久| 91色久| 国产伦理精品高清在线观看网站一区二区 | 成人中文网| 五月丁香六月婷婷,婷| 深爱开心激情| 美女五月激情| 欧美性生交XXXXX无码小说| 97色色-99久久| 婷婷五月六月| WWW.桔色成人.COM入口| 婷婷五月性感| 人人干人人操人人摸| 黄色网址五月婷婷| 五月天婷婷激情综合| 婷婷五月丁香性爱| 99热这只有| 激情五月天影院| 婷婷综合| 久久久国产精品黄毛片| 精品亚洲VA网站| 亚洲AV电影美洲AV电影| 婷婷久久免费| 亚洲第一色网站| 丁香五月婷婷五月| 五月开心色| 久久五月天激情婷婷| 最新丁香六月婷婷| 99色色网| 亚洲亚洲人成综合网络| 五月天婷婷激情小说电影| 极品五月天| 丁香六月久久| 天天色月| 五月精品99综合| 色噜噜婷婷| 涩 五月 婷婷 狠狠| 久久婷婷五月丁香网| 97中文在线| 久久激情综合| 26uuu欧美日本| 久久婷婷六月综合综合| 996er在线观看| 99热精品在线播放| 天天综合色综合| 亚洲狠狠爱婷婷| 五月丁香亚洲婷婷| 那里有AV网址| 99热人人操人人操| 婷婷五月天激情四射| 日木狠狠干| 色婷婷丁香五月| 色色色色色色色色色999| 涩 五月 婷婷 狠狠| 丁香五月婷婷大香蕉| 五月丁香性爱| 久久丁香综合精品综合| 无码激情| 国色天香伊人狠狠色| 激情综合五月| 日本3级片一区2区| 国产精品噜噜在线视频| 伊人碰碰婷婷| 九九99九九精品免费| 激情五月少妇| 九九色色| 日本精品人妻无码77777| 五月色影院| 九九热大香蕉| 97碰精品| 欧美25p| 丁香婷婷六月在线资源观看| 亚洲欧美成人在线| 欧美一级a | 大香蕉福利导航| 亚洲久久激情| 襙逼网| 日韩无码系列| 三十熟女| 婷婷在线免费| 洗浴中心操B视频| 超碰人人超碰| 日韩一级淫乱片一区二区三区| 97干网站| 婷婷六月久久综合导航| 99热99热在线观看| 91精品人妻少妇无码影院| 夫妇交换刺激做爰| 久久激情视频| 免费看欧美成人A片无码| site:jszngf.com| 精品九九网| 91日韩在线| 激情五月婷婷| 婷婷综合色五月天| 婷婷五月丁香五月天| 久久亚洲天堂| 久久99草五月婷婷| 激情内射人妻1区2区3区| 亚洲第一成人无码A片| 精品少妇蜜臀91| 久久免费9| 在线播放人妻| www.91操| 97色久| 99色最新在线视频网站| 色欲香综合网| 天天曰夜夜爽| 日韩欧美一级大黄网站| 久久狠狠干| 婷婷五月激情视频网| www.夜夜操| 超碰久热| 色99视频| 丁香九月久久| 色六月婷婷| 激情婷婷五月社区| 中文AV网站| 色国产五月| 丁香六月啪啪| 免费AV播放| 香蕉婷婷色五月| 只有精品在线观看| 久热婷婷| 久久五月婷婷电影| www.99色| 中文字幕日韩成人| 伊人碰碰婷婷| 国产无人区大片| 九九99偷拍视频| 男女啪啪做爰高潮无遮挡| 婷婷五月天社区| 色综合色五月| 久久性视频| 婷婷视频网| 五月天婷婷久久| 五月婷婷自拍| 色婷婷成人| 色丁香六月| 99久久er| 日韩三级高清无码| www.色婷婷| 婷婷五月激情视频在线| 五月丁香六月玩女人| 激情五月,激情综合网| 俺也去综合| 久久这里在精品视频| 无码一区二区三区四区五区| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 婷婷婷婷婷婷婷五月丁香| 伊人五月天在线| 香蕉AV777XXX色综合一区| 成人色色视频| 免费看成人747474九号视频在线观看| www.黄色片-久久成人国产精品在线播放-999AV| 99这里都是精品| 天天日天天操心| 久久人人九九| 色播五月丁香| 久久九九热38| 丁香五月影视| 婷婷五月丁香香蕉| 九九av| 色99色| 国产露脸150部国语对白| 久久视频在线视频| 久久人视频| 激情婷婷网| 热热99爱爱| 99网址在线看| 婷婷五月天成人| 欧美大香蕉视频| 2016日日夜夜操| 另类视频综合| 天天透天天摸天天舔| 中文字幕久久一区二区三区| 99热99精品| 久久三级视频| 综合色图婷婷| 91丨九色丨熟女|新版| 亚洲色综合| 婷婷五月丁香综合激情小说| 五月天俺去也| 嫩草视频在线观看| 天天干人人奸97| 密视AV综合在线| 国产精品人妻欲求不满| 婷婷五月天成人综合网| 久99久视频| 99热久久这里只有精品| 久9热视频在线观看| 久久欧洲久久| 五月草视频| 亚洲男女激情| 婷婷激情五月视频| 综合久色五月| 九九热10| 色综合网页| 久热婷婷| 天天干天天干天天干天天干天天干| 99久久久久| 亚洲精品a成人在线播放| 日亚二欧美| 婷婷丁香五月视频| 天堂婷婷丁香六月网| 久色激情| 北条麻妃伊人 | 亚洲99综合| 最新五月天婷婷影| 狠狠草狠狠草| 好色婷婷| 五月开心啪啪| 丁香成人五月天| 9|在线观看视频| 色播五月丁香| 丁香五月色网| 免费在线观看av网站| 激情久久五月天| 丁香午月AV中文字幕| 婷婷久久丁香| 婷婷丁香五月在线观看91| 99自拍视频在线观看| 深爱五月最新网址| 极品人妻VIDEOSSS人妻| 狠狠色丁香久久久婷| 亚洲综合激情五月久久| 色九九综合色| 丁香五月激情综合在线观看| 九九热最新视频| 欧美激情久| 99热777| 思思热这里只有精品| 美欧成人视频| 天天爱综合网| 欧美日本97| 五月天激情无码高清| 伊人久久婷婷| 久久66er久久| 丁香成人五月天| 久久久大香蕉| 99精品久久久久| 开心五月婷婷综合在线精品素人| jizzdr| 欧美天堂婷婷日韩| 五月婷婷婷自由综合| 极品少妇高潮啪啪AV无码| 色三级色三级| 久热黄色| 婷婷九月丁香| 五月开心激情| 激情婷婷内射| 天天天天干| 九九视频这里是精品五月| 六月激情综合| 再次出发二| 激情五月天影院| 99九色视频在线观看| 天天综合网91| 99re这里只有精品9| 97干97色| 丁香五月,开心五月,成人婷婷| 六月99天天婷婷激情综合| 国产激情在线| 日本久久综合| 欧美情月伍月天| 激情五月天电影| 日韩欧美颜射| 九九99久久| 深夜婷婷五月丁香| 色综合中文综合网| 五月婷婷综合丁香视频| 婷婷五月天Av| 狠狠色狠狠操| 五月婷免费视频久久久| 日本www免费九九| 五月婷婷性| 99啪在线视频| 中文字幕成人| 激情丰满熟妇五月| 婷婷六月天| 色色五月天丁香婷婷| 97视频91| 欧美成人精品A片免费一区99| 亚洲欧洲自拍图片专区五月天| 天堂伊人干| 成人欧美Va| 97超级碰碰碰久久久| 操操操Av| 狠狠色丁香久久久婷| 五月婷婷激情综合| 深爱丁香激情| avv在线| 9999三级片| 亚洲欧洲99| 日本乱子人伦在线视频| 五月丁香六月婷婷色日| www色婷婷久久综合久色| 激情文学综合婷婷五月天丁香花| 激情综合网五月激情网| 俺也去婷婷五月天第五色| 精品人人操| 五月社区丁香| 色婷婷情片| 26uuu亚洲| 五月婷婷之六月丁香| 久久久九九九 99| 成片免费播放| 日韩精品无码99| 丁香五月综合激情性爱| 色五月情| 玖玖爱资源站| 日韩按摩二区| 久久99婷婷| 日日影院 | 五月婷婷六月情| AV伊人青草丁香六月| 人妻Av在线| 97人人射| 裸体美女丁香五月天。| 精品久久人妻热| 一本九九色| 久久综合九九| 91丨九色丨白浆| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 丁香婷婷五月综合影院| 丁香五月激动深爱欧美| 五月婷婷综合激情网| 涩涩涩.com| 4399成人黄A片| 亚洲无码影片| 国产精品天天狠天天看| 五月丁香婷婷在线| 丁香五月天狠狠| 欧美精品久久久久久视频观看| 操人精品| 中文婷婷狠狠| 国产看真人毛片爱做A片| 开心五月婷婷激情| 五月天婷婷成人网| 狠狠狠五月婷婷六月丁香| 丁香婷婷五月天激情四射| 婷婷丁香六月天| 婷婷久久五月| 婷婷综合在线| 婷婷少妇激情| 婷婷六月丁| 久久伊人日日夜夜| 日本va欧美va欧美va精品| 999九九九久久久99HD| 这里有精品| 久久婷.com| 色婷五月天| 色区域网站视频| 再綫Av免费視品| 婷婷人人操| 五月婷久久综合| 激情五月四色| 99热在线观看| 欧美搡BBBBB摔BBBBB| AV大香蕉| 九九99精品视频在线观看| 99久精品视频| 五月婷婷,狠狠操| 久久一热| 色深爱五月| 婷婷五月天亚洲图片| 好吊丝aV| 影音先锋 91工厂| 亚洲 25P| 五月天亚洲最大成人| 99久久国产成人精品| 5月激情天| 91九色国产| 五月丁香啪啪综合网| www.com任你艹| 日本大逼91| 婷婷九月久久| 日韩婷久| 蜜臀99久久精品久久久久| 亚洲成人av在线观看| 天天操天天国产三级片处女学生妹| 婷婷婷婷午夜| se婷97| 久草视频大香蕉99| 99资源人人| 激情伊人网| 亚洲无码黄色| 色五月天堂| 亚洲综合99| 香蕉久久国产AV一区二区| 九色自拍| 热九九在线| 五月丁香婷婷无码A∨| 国产精品在线视频| 亚洲综合婷婷六月丁香五月| 婷婷亚洲欧美丁香五月| 五月天激情综合| 大香蕉久久婷婷| 99碰碰视频| 99热在线播放| 天天色综网| 五月丁香狠狠爱婷婷综合| 潮汕成人AV片在线| 日本熟妇精品99| 玖玖在线视频福利| 六月婷婷狠狠色在线观看| 色色色色av777| 人人爽欧美婷婷久久久五月丁香| 天天色丁香| 中文字幕视频在线播放| 亭亭丁香久久五月| 丁香婷婷五月综合影院| www.五月丁香| 五月丁香六月| 99福利视频导航| 四射综合网| 黄色AV日韩| 狠狠另类视频| 综合激情视频| 99热这里只有精品9| 天天爽夜爽| 亚洲网综合在线| 操婷婷基地| 伊人久久婷婷| 婷婷丁香五月天中文字幕| 五月丁香亭亭| 欧美韩国日本| 日韩久综合| 天天爽夜夜爽夜夜爽精品| 欧美性爱5月天天天看| 日本色爽| 操碰97| 97婷婷五月丁香| www.狠狠| 丁香五月亚综合图片| 97影院一级片| 亚洲国产精品VA在线看黑人| 天天艹| 五月天婷婷基地丁香| 色婷婷综合网站| 97视频久久| 99久久九九视频| 色色免费网站| 久久这里只| 五月丁香| 亚洲免费视频网站| 亚洲九九99精品视频在线播放| 99热天堂| 操日本99| 五月婷婷亚洲天堂激情在线| 婷婷欧美综合| 第四色色六月色综合| 色综合婷婷| 久热A| 成人无码髙潮喷水A片| 99九九热视频| 天天精品视频在线观看视频| 色五月婷婷综合| 99热99操| 99热这里只有免费| 俺也去色| 久久新地址| 丁香五月在线观看| 久久综合66| 丁香五月天欧美成人| 免费观看的av| 99热999| 天天干夜夜b| 婷色五月| 丁香五月天.com| 久久机热/这里只有精品| 国产日韩欧美| 97超碰综合| 色噜噜狠噜噜视频| 99热国产在线| 色综合久久天天综合网 | 久久婷婷激情| 婷婷午夜精品久久久| 日日爽日日爽| 激情综合色婷婷啪啪五月天| 高清激情av在线观看| 97色色视频| 人人操女人| 丁香婷婷视频| 久久丁香网| 开心五月婷婷在线| 99久久精品网| 开心激情久久久久久久| 少妇熟女视频一区二区三区| 婷婷五月天国产手机在线视频观看| 亚洲AV成人精品日韩在线播放| 99九九热视频| 综合啪啪| 久久曰曰| 六月综合婷婷开心伊人| 99re66热这里只有精品| 99ri在线视频| 丁香六月婷婷综合| 色五月激情五月天| 五月天色色网站| 91丨九色丨东北熟女| 久久九九爽| 97色婷婷成人综合在线观看| 中文资源在线a | 丁香婷婷激情| 热热久久精品视频| 婷婷五月性感| 这里只有精彩视| 67194线路二在线观看| 久久机热这里只有精品| 色色操| 亚洲色婷婷网站| 九热视频| 欧亚色色| 狠狠色丁香| 五月婷五月婷伊人伊人五月婷| 99亚洲视频| 激情五月婷婷在线区| 91打屁股免费看| 色色亚卅| 97精品综合久久内射| 婷婷永久在线| 人人亚洲| 大香蕉 婷婷| 五月丁香六月婷婷免费| 国产成人精品一区二三区熟女在线| 日韩抽插操逼| 熟女色色一区二区| 丁香五月色欲| 综合色色婷婷| 青柠影视免费高清电视剧| 天天成人综合视频| 日韩无码91| 深夜男女福利刺激影院一区完整| 丁香五月在线人妻| 蜜乳久AV| 玖玖婷婷色五月| 天搞天天天天天| 免费看成人AA片无码视频吃奶| 99视频这里只有精品10| 亚洲最大在线| 免费视频在线观看的网站| 中文字幕色色| av在线资源| 99ER热精品视频| 婷婷丁香人妻天天爽| 婷婷99热| 国产视频色色色色色色色| 色色射| 婷婷六月丁香在线| 人人操婷婷| 婷婷伊人中文字幕| 五月婷婷深爱六月| 色婷婷9| 国产69久久久欧美黑人A片| 激情综合色播| 久色激情| 亚洲精品亚洲人成人网| 99爱视频在线播放| 深爱激情中文五月天av| 大香蕉在线观看9| 东京热免费视频| 日本熟女一区二区| 久99| 狠狠色综合无线观看| 婷婷亚洲天堂| 婷婷五月六月激情| 九九re视频在线视频| 99这里只有精品| 能看的av片| 97性视频| 久久探花91swag| 99热这里只有精品55| 日本婷婷色日| 思思热再线视频| 丁香色色色| 色婷婷色丁香色欲av| 婷婷爱五月天| 久久色天堂| 深爱1激情网| 就要去操亚洲成人精品五月天丁香婷婷| 色婷婷四虎| 婷婷亚洲综合| 婷婷五月色情天| 欧美成人网婷婷综合在线| 亚洲在线资源| 9色在线视频精品观看| 国外亚洲成AV人片在线观看| 五月天婷婷色色| 99热这里只有精品3| 色插综合网| 五月香婷婷| 五月综合丁| 91碰免费视频| 无码少妇高潮喷水A片免费| 另类精品视频在线观看| 丁香婷婷成人网| 婷婷一本和五月丁香| 色婷婷呢狠禁久禁| AA片在线观看视频在线播放| 久热久| 激情文学久久| 人人操人人干AV| 六月婷婷五月天| 五月丁香另类网| 色大综合| www.十八禁不禁AV.com| 日日天天天| 在线中文字幕视频| 色碰碰| 五月丁香网站| 9操在线| wWW九九在线播放| 丁香五月婷婷亚洲激情四射| 色欧美一级| 成人草榴视频| 亚洲午夜成人av电影网| 久久AAAA片一区二区| 久久99精品视频| 亭亭五月丁香五月天激情| 五月色网| 丁香九月激情| 色婷婷激情| 久久人人妻| 五月天色五月| 久久五月综合| 五月天激情国产综合婷婷婷| 日韩在线观看网址| 亚洲午夜在线视频| 另类丁香五月天区图| 欧美三级欧美一级| 91精品婷婷国产综合久久| 任你搞网站| 五月婷精品| 亚洲激情AV| 婷婷色色五月天| 玖玖色综合网| 99在线免费视频| 久久激情视频| 色婷婷网| 操97在线观看| 啪啪五月综合| www久久艹| 丁香五月另类色婷婷麻豆| 中文字幕av在线| 人妻性爱av网站| 深爱激情久久| 婷婷五月六月| 99热99精品| 玖玖热视频| 国产AV国片偷人妻麻豆| 色啪久| www.五月天婷婷| 99热偷拍| 97丁香五月天| 婷婷五月天美女视频| 五月婷婷婷婷| 97人人看| 五月色情| 五月天之色情综合网| 五月丁香久| 国产激情综合五月| 天天爽夜夜爽| 激情五月婷黄版| 色五月婷婷中文字幕| 激情综合丁香六| 日韩伊人大香蕉| 九九操屄| 婷婷色在线视频| 丁香五月婷婷婷婷欧美综合| 九九国产精视频| 亭亭五月天黑人2014| 五月丁香啪啪网| 丁香色婷婷| 91午夜婷婷狠狠久久综合9色| 丁香五月婷婷婷桃花影院| av在线免费播放| 另类综合国产| 99热e| 少妇性按摩无码中文A片| 国产在线视频1234| www.婷婷五月天,com| anquye五月| 九九热九九| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 六月亭亭久久综合激情| 九九无码| 国产69久久久欧美黑人A片| 婷婷久久在线| 色播五月天天| 99热在线播放| 四LLL少妇BBBB槡BBBB| 日本久久爽| 99热青青草原| 久久色区| 91热在线观看视频| 综合激情开心五月| 26uuu成人网| 久久无码成人| 超碰亚洲天堂| 99综合色| 日本人妻伦在线中文字幕| 婷婷色五月开心五月| 九九热在线观看6| 婷婷激情五月色综合| 婷婷五月天综合网| 九九婷婷激情综合网| 99热老网站| 噜噜噜噜噜色| 在线不卡视频| 丁香五婷婷| 欧美va欧美va差| 亚洲精品V天堂中文字幕| 97超碰9久热婷婷热| 婷婷激情五月天综合| 欧美综合五月丁香六月婷| 337久久| 激情五月天啪啪视频| 五月丁香激情综合啪啪| 久久久久久久久18久久| 久这里只有精品| 久操热| 视频1区2区| 开心五月色婷婷综合开心网| 亚洲成人AV在线观看| 视频一区二区在线| 婷婷激情五月天在线视频| 色99在线视频| 成人在线高清| 亚洲人成人五月天| 美女久久婷婷| 男人天堂亚洲综合| 色9999日韩国产| 嫩草视频观看| 狠狠干综合网| 涩涩涩五月天| 婷婷人人操| 五月天激情小说网| 我想看国产大学生口爆吞精的视频| 五月婷婷六月爱| 亚洲操逼网| 亚洲五月丁香综合网| 日本九九九九| 99自拍视频网站| 五月天丁香网站| 综合色网站| 97好吊操| 九九艹女| 久久久人妻系列| 丁香五月婷婷欧美性爱| 99色视频在线观看| 日日天天干| 丁香五月婷婷狠狠色| 久99视频| 五月色网| 五月综合久久| 六月色日韩| 六月婷久久| 91色色色18| 婷婷五月激情欧美| 9久视频| 亚洲成人五月天| 丁香婷婷色五月| 婷婷免费视频| 婷丁五月| 亚洲精品又粗又大又爽A片| 日本婷婷综合精品| 成人做爰A片免费看视频| 色婷婷五月天天天天天天天天天| 亚洲妇女熟BBW| 久久五月丁香激情综合| 色婷婷很很丝袜| 色人妻五月| 色综合久网| 色婷婷综合亚洲| 99精品自拍视频| 这里只有精品视频在线| 丁香五月天婷婷久久| 99人人操人人摸| 久久五月天网| 亚洲、欧美、国产另类笫二区| 久久婷婷色综合| 热99这里只是精品| 99视频这里有精品| 激情五月婷婷在线| 欧美丰满熟妇BBB久久久| 99热97| 深爱婷婷丁香五月激情| 六月香五月婷| 久久只有精| 久热 91| 熟女啪啪视频| 超碰网站在线观看| 大香蕉久久伊人网| 女同在线9| 亚洲精品国产熟女久久久| 色五月激情| 99在线精品免费视频| 丁香五月在线自慰| 99热在线观看精品| 亚洲日日操| 天天天天天天噜| 五月激情偷拍婷婷| 婷婷五月天 偷拍| 天天噜天天插| 久久狠狠欧美| 色五月激情综合网| 99久久婷| 色三级色三级| 五月丁香六月婷婷的女人| 中文超碰视在线| 色五月婷婷7777| 精品国产AV色一区二区深夜久久| 丁香五月天激情| 99热超碰| 国产99久久久| 久久久91| 色欲婷婷五月天| 99人碰碰碰| 色五月婷婷丁香五月| 婷婷久久网| 操一区| 天天做夜夜爽| 色99色| 噼里啪啦完整版中文在线观看 | 九九99热久久精品66中文字幕| 激情婷婷视频在线| 热996精品在线观看| 99亚洲精美视频在线观看| 铁牛TV人妻| 久九色| WWW,色五月| 久久久久久天天日天天爱| 欧美成人无码一区二区三区| 五月婷色色| 色情五月丁香婷婷网| 六月婷婷视频| 婷婷精品在线| 天天爽天天摸| 天天做天天爱天天爽综合网| 天天日 天天草| 99精品视频网站| 99热免费观看| 成人婷99最新| av中文在线| 色情成人五月天| 欧洲综合一区| 欧美啪啪五月天| www.色9| 伊久久婷婷| 久久天天天| 欧洲高清免费久久| 五月天天天色| 超碰人人干| 狠狠色丁香| 狠狠一日| 色婷婷综合亚洲| 五月婷婷新网站| 影音先锋人妻出差| 天天色天天日| 五月天久久久| 中文字幕按摩做爰| 九九热在线精品视频| 国产暴力强伦轩1区二区小说| 五月天婷婷激情| 久99久视频精品| 国产精品电影网| 在线va网站| 五月天激情美女久久| 五月丁香婷婷综合| 久久狠狠干| 国产av一区二区三区| 九九十99视频| 深爱丁香网| 亚洲aV写真天天综合网久久| 国产在线中文字幕| 免费无码毛片一区二区A片| 色噜久| www.天天干.com| 99热这里有精力| 日本99视频| 五月激情四射网站| www.jiujiujiu| 激情婷婷丁香五月天小说| 精品一区二区三区木瓜| 五月天婷婷综合网| 久久五月婷| 九九热99在线视频| 六月婷婷五月丁香首页| 色五月综合激情| 俺去也五月天| 黄色AAAAAAA| 五月天激情国产综合婷婷婷就去爱| 国际国外精品欧洲南美洲专区无码不卡| 伊人午夜综合色啪| 偷拍五月丁香| 亚洲综合碰| 99婷婷| 狠狠色噜噜狠狠| 深爱激情五月天| 五月婷婷丁香综合,亚洲天堂| 国产亚洲色婷婷99精品| 色久天| 综合激情站| 久久婷婷色综合老司机| 超碰人人艹| 九九视频这里只有精品| 天天干天天拍| 久草丁香婷婷五月天婷| 天天色爽| 成人网址在线观看| 久久久久久婷| 天天成人综合| 五月久久婷婷丁香| 超碰人人在线观看| 五月天另类小说亚洲| 日本成人噜噜噜| 国产真实乱了老女人视频| 五月婷婷综合久久| 五月天婷婷在线AN| 蜜桃人妻无码AV天堂三区| 五月丁香婷中文| 久99久热只有精品国产99| 国产欧美va| 青青草婷婷五月天| 99综合视频一体| 久久久27操| 久久国产成人9999久久久久| 欧美天天爽| 国产精品电影网| 婷婷五月丁香激情图片 | 99热在线免费观看精品| 激情综合网址| 91视频久久久| 五月丁香激情婷婷综合| 福利视频在线播放| 97av在线视频| www.99热| 夜色爱爱亚洲| 婷婷丁香五月噜噜噜| 久久激情综合| 丁香五月婷婷色| 婷婷五月天福利| 91狼友视频网页更新| 大波美女VA网站| 婷婷五月在线观看| 激情AV在线| 五月丁香六月天| 丁香五月色情av| 色热久资源| 综合色五月| 91大神在线免费看视频全集男男一起操| 五月丁香网站在线播放| 日本爆乳片手机在线播放| 欧美情色一区| 狠狠88综合久久久久噜噜噜| 五月天综合色| 超碰超碰在线| 中文字幕人妻在线| 婷婷欧美激情| 五月综合色| 婷婷激情四射五月天| 婷婷五月天高清无码| 日韩一级一片内射视频4K| 欧美色骚婷婷五月天| www.五月天婷婷| 人妻性爱av网站| WWW久久久| 色综合色综合网| 熟女激情网| 五月激情婷婷综合| 26.uuu丁香五月婷婷| 91干在线| 色色色在线观看| 中文资源在线a| 手机旧版看人妻1025| 91久久电影| 日韩 中文 欧美| 婷婷成人AV| 亚洲va成人va成人va在线观看| 免费看片在线观看| 五月天婷婷激情| 五月丁香婷婷婷激情爱爱| 日韩精品一区二区亚洲AV观看| 色综合久久88| 爽极品色| 在线看片av| 夜夜干天天操| 欧美日韩AAAAA| 丁香五月av| 五月激情久久综合| 色99久草在线| 思思热精品在线观看| 婷婷五月丁香A∨| 五月天婷婷丁香基地在线观看| 伊人色五月| 美欧日韩国产成人在战| 色婷婷基地| 婷婷五月激情中文字幕| 97碰久久| 五月色婷婷综合| 色婷婷深爱五月| 丁香五月综合| 国产精品久久久丁香五月八戒视频| 97偷拍对白视频| 激情五月婷| 色五月婷婷中文字幕| 久热这里只有| 婷婷五月天.com| 久久五月天激情| 色婷婷综合网| 91碰在线| 亚洲色啪| 五月丁香色狠狠干大屄| 五月丁香婷婷99| 激情人妻综合| 激情涩涩网| 在线日本www| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 五月丁香综合网色欲| 丁香五月婷婷天激情| www,99热| 9久热在线视频精品| 五月丁香综合在线| www激情网| 99色.com| 久久综合婷婷| 五月丁香av在线| 99婷婷色| 天天干电影| 丁香五月天在线视频| 五月天婷婷激情六月久久| 亚洲色热| 天天骑日日爽| 婷婷丁香综合网| 超碰99在线观看| 午夜少妇在线观看视频| 婷婷激情欧美| 青青草婷婷久久| 天天爽天天干| 婷婷五月AV| 欧美 日韩 成人 在线| 久久人妻精品| www.日韩艹| 亚洲另类AV| 色五月综合网| 播五月丁香六月| 99热碰碰热| chaopengdaxiangjiao| 国产欧美va| 婷婷激情五月天网站| 五月天婷婷激情六月久久| 91狠狠综合久久| 久久成人天| 97在线精品视频| 91无码色色| 久久伊人婷婷| 婷婷五月天成人动漫| 久久婷婷东京热大香樵| 激情五月天网站| 婷婷国产成人| 777.色色| 婷婷 伊人 久久| 一本色综合色| 丁香五月天激情| 婷婷激情丁香六月| a色色片| 9精品国产在热久久| 五月综合激情网| 99热综合在线观看| 久草天堂| 色色网91| 婷婷丁香人妻天天爽| 91精品久久久久久综合五月天| 九九精品视频免费在线| 婷婷色六月| 99色色| 亚洲综合视频网| 国产午夜精品久久久观看| 99色色热| 五月婷婷综合社区| a在线观看| 五月婷婷色影院| 丰满熟女人妻一区二区三 | 国产亚洲精品久久久久苍井松| 天天日天天舔| 亚洲性爱区无码区| 九九热这里只有精品首页| 97艹| 波多野结衣不卡AV| 91色噜噜狠狠狠狠色综合| 激情美女五月天激情在线| 综合亚洲六月婷婷在线| 国内一级精品| www.91热久久| 91碰碰碰| 色色色无码| 99久精品视频| 这里只有精品1| 五月天玖玖狠狠色色| 五月婷婷偷|