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

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
返回資訊列表
婷婷操超碰| 99.色| 亚洲欧美婷婷五月色综合| 色五月xxx| 天天日中文| 婷香五月激情视频| 六月婷婷七月丁香| 五月综合久久| 丁香五月六月综合欧美| 九九热在线视频,| WWW·色色色·COM| 99操九九网| 久久色婷婷| 激情开心五月亚洲| 五月婷久久| 久久久五月婷婷| 亚洲综合网在线| www.久久综合| 开心深爱激情网| 丁香五月天激情网址| 9久热在线视频| www久久久| 天天天日天天天干| 亚洲五月天综合| 91ncm视频| 丁香五月天视频| 月婷婷婷婷五月| 99这里只有精品视频在线| 婷婷综合另类| 五月天堂六月丁香亚州中文字幕久久| ..真实国产乱子伦毛片| 荡乳尤物3HP1V5| 婷婷五月天亚洲综合| 婷婷丁香五月噜噜噜| 婷婷五月综合在线| 亚洲操精品| 亚洲AV久久久久久久久久久久久久久久 | 久久婷狠狠色| 丁香天堂夜| 中文字幕1区2区。| 亚洲国产精品VA在线看黑人| 99热这里有精品| 激情小说视频图片| 五月激情影视| 欧美精品999| 99在线观看视频| 99久久极情精品一区| 夜夜做天天爽| 久久这里只有精品无码| 久久99这里只有精品视频| 丁香五月色情| AA久久| 国产44页| 99玖玖免费视频| 久久一品区| 亚洲视频在线网| 2018夜夜草| 麻豆AV一区二区三区| 五月天色婷婷综合| 国产精品人人做人人爽人人添| 五月婷综合| 激情婷婷五月天| 日韩无码专区| www色婷婷| av大香蕉| 亚洲va久久久噜噜噜久久天堂| 免费无码毛片一区二区A片| 亚洲五月婷婷| 五月天久久色| 色综合色综合色综合| 婷婷9月天| 日韩二区搞逼插逼毛片| 99碰网站| 婷婷金品综合视频| 国产精产国品一二三在观看| 日韩久久日| 伊人五月婷| 色五月婷婷777| 香蕉AV777XXX色综合一区| 婷婷五月天社区| 99热在线观看| 玖玖热99| 日韩999| 深爱婷婷基地| 五月精品免费XXX| 午夜无码精品色综合久久| 色综合久久88色综合中文字幕| 综合深爱五月| 成人婷99最新| 久操欧美在线观看97| 操大屄五月天视频| 欧美日韩123| 美日韩成人| 操笔无码| 九九热最新| 狠狠操天天操| 丁香五月a| 天天摸天天做天天爱天天爽| 婷婷五月天激情文学| 玖玖色综合| 色135综合网| 久久5 9视频免费观看| 婷婷94s| 婷婷五月激情的图片| 99精品久久| 婷婷五月丁香在线观看| 99爱视频| 激情玖玖sh| 色婷成人狠干| 婷婷丁香五另类网站| 色综合综合色| 五月丁香六月情| 国产精产国品一二三在观看| 91久久综合| 五月天婷综合网站| 麻豆雪千夏| 色噜噜综合网| 中美月韩免费A片| 五月婷三级片| 五月天婷婷xxx| 天天影视色综合网| 婷婷五月天久久| 5月丁香美女影院| 婷婷五月天你懂的| 婷婷五月天亚洲天堂| 国产综合网在线| 欧美人妻一区二区| 玖玖精品婷婷| 五月天婷婷五月| 国産精品| 欧美六月| 性色综合网| 五月丁香久人妻中文| 大陆肏屄视频| 777精品久无码人妻蜜桃| 亚洲人人艹| 中文字幕婷婷五月天| 99免费热视频| 操操操97| 五月丁香好婷婷姑娘综合网| 99热这里只有精品2| 色婷婷亚洲综合天堂| 人妻性操逼中文字幕 国产| 激情五月天伊人av| 久久婷婷综合五月| 亚洲色域网| 99精品久久久久久久婷婷| 欧美日韩二区在线| 五月激情开心婷婷| 九九热精品| se99热久久一本| 丁香五月天在线直播观看| 丁香大香蕉| www.婷婷激情网.com| 色五月婷婷天天干| 久久婷婷五月天激情| 一区二区成人电影| 天堂色婷婷| 综合久久人妻| 日本天堂网站99| 凹凸探花电影| 欧洲色| 99这里有精品视频| 亚洲综合99| 久久六月综合| 国产婷婷五月色情综合| 区啪精品| 天天日天天舔| 99视频网址| 婷婷激情视频欧美视频自拍视频欧美剧| 少妇大叫太大太粗太爽了A片| 五月天婷婷色在线视频免费观看| 69精品人人人人| 色五月综合网| 97操碰| 九九AV在线| 99视频在线观看视频| 狠狠操性爱av| 狠干综合| 91久操| 丁香五月欧美激情| 日本三级黄色大片| 狠狠干天天内射| 99视频在线| 色九九丁香九月色九九色| 永久AⅤ1| www.婷婷,com| 人妻中文在线| 超碰操日| 亚洲精品大片| 综合久久综合久久| 天天操天天操天天操天天操天天操| 热九九在线| 婷婷五月综合社区在线| 丁香五月成人| 热九九在线| 色屌丝中文字幕| 五月6香色婷婷视频| 天天操天天干天天日| 久久97| 色五月丁香婷婷| 婷婷五月天AV网| www.色99| 91婷婷五月天综合视频| 亚洲超级碰| h在线看免费版在线看| 自拍偷窥99热| 天天爽成人综合网站| 婷婷五月天AV| 国产精品香蕉| 伊人色综合影院视频| 婷婷色丁香五月| 精品久热| 综合色图婷婷| 人人操97| 久色中文| 成人毛片在线免费观看| 久久视频在线视频| 五月成人网站| 九九视频这里是精品五月| 丰满老熟妇BBBBB搡BBB| 少妇人妻人伦A片| 国产一级片| 97精品综合| 国产精品久久久丁香五月八戒视频| 碰人人97| 大香蕉久操| 五月婷婷婷婷婷婷艺术| 99精品在线播放| 桔色成人在线| 六月丁香婷婷视频综合在线观看| av在线免费播放观看| 国产免费一区二区三州老师F1F1| 五月丁香婷中文字幕| 婷婷伊人五月丁香天堂网| 色爱综合网| 97色色色色| 婷婷视频在线碰| 精品爆操| av网站中文| h亚洲| 色99色| 久久怕怕视频| 亚洲国产精品成人va在线观看| 丁香六月天婷婷| 91久热| 色婷婷九月综合| 欧美色色色色色色| 婷婷激情五月天视频在线| 手机在线日韩视频中文字幕| www.ywav| 超碰在线人妻| 婷婷射丁香| 丁香五月综合在线播放| 日本a片网址| 91中文狠狠综合| www.zbzhongsen.com| 能直接看的AV网站| 婷婷五月天影视网址| www99精品亚| 99热这里只有精品中文字幕| 久久 婷婷 五月天| 天天天综合网| 色五月婷婷大| 春色激情| 国产XXXX搡XXXXX搡麻豆| 超碰人人99| 婷婷五月天男人影院色色网| 秋霞三级影视资源| 婷婷色综合| 日逼影音先锋AV男人资源站| ..真实国产乱子伦毛片| 无码日本精品XXXXXXXXX| 丁香激情网| 五月综合缴情网| 做爱夜夜干天天操| 六月丁香啪啪| 色色五月天丁香| 七七久久综合| 亚洲日比视频| 亚洲黄色操逼| 五月丁香综合色婷婷| 婷婷操逼| www.狠狠| 开心五月天激情网| 婷婷丁香五月综合| 99久热| 99九九视频| 国产性爱一级| 婷五月丁香俺| 伊人婷婷青青cao| 激情五月天啪啪| 青青草网武则天| 五月天婷a在线| EEUSS鲁片一区二区三区| 99热在线精品观看| www.99热| 丁香五月久久| 国产AV一区二区三区最新精品| 丁香五月婷婷在线| 大香蕉av在线| 高潮毛片又色又爽免费| 果冻传媒A片一二三区| 免费做A爰片77777| 久草婷婷在线| www网站在线观看| 97色碰碰公开视频| 五月天丁香婷婷社区| 亚洲av无码影院| www.五月婷| 97丁香视频| 色综合久久8| 五月久久综合| 蜜乳人妻一区二区三区| 五月婷婷色影院| 久久99综合网| 婷婷五月亚洲激情| 日韩无码性爱| 超碰在线视屏| caopeng超碰| 青青热久久综合| 南京搡BBBB搡BBBB| 天天谢天天操| 五月色丁香| 99ri精品| 亚洲深喉AV| 婷婷五月,综合伊人| 色www99| 99九九99九九九视频精品| 91九色成人原创视频| 亚洲黄3级片网站欧美| 91人人操人人看| a九九热www| 久久xxxx| 人人视频色| 狠狠爱婷婷| 色欲婷婷五月天| 国产激情久久久| 久久视频这里都是精品| 深情五月天| www.91婷婷| 中文字幕在线免费观看视频| 大香蕉在九| 五月天婷婷色色首页| 人妻久热| www.十八禁不禁AV.com| 激情婷婷五月天| 99久久久99久久91熟女| 五月婷护士| 久久99综合网| 激情黄色小说五月天| 丁香五月伊人| 99国产精品白浆在线观看免费| 久久综合五月情| 久99热在线观看| 亚洲成人色五月婷婷综合| 99成人无码| 超碰高清在线| 国外亚洲成AV人片在线观看| 综激情网| 欧美VA在线观看| 男女99免费视频| 青柠影视免费高清电视剧| AV操逼网| 亚洲精品第一国产综合亚AV | 丁香六月啪啪| 五月色色激情网| 久久六月天| 久久99人人| 九九99免费理论| 色五月婷婷DVD| 日本美女上人| 香蕉五月婷婷| 国产热精品| 91九色国产| 99久久97| 国产日日夜夜操| WWW.17C亚洲精品| 日本欧美成人片AAAA| 久9热插入| www.主妇. com| 97丁香五月| 天天插综合| 色婷婷香蕉丁丁网| 五月婷婷激情中心| 99爱爱| 婷婷丁香91| www.五月激情.com| 五月天激情小说| 9l视频自拍九色9l黑人| 丁香五月狠狠综合欧美| 亚洲热视频在线| 中文字幕第四色.999| 天天操夜夜夜拍拍拍| 日韩另类| 婷婷综合亚洲| 99在线视频免费| 丁香八月综合激情| 亚洲人妻五月丁香婷婷| 日本黄色一级| 五月天自拍网| 99热在线观看| 亚洲综合激| 久久中文人妻系列| 在线视频99| 丁香五月伊人| 无码人妻一区二区三区免费九色| 色婷婷五月天| 婷婷丁香77777| 婷婷五月电影院| 五月丁香啪。| 日本色爽| 99色在线观看视频| 丁香美女五月天婷婷| 五月天激情亚洲| 精品久久久久久久久久久久人妻| 97精品人人A片免费看| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 99热这里只有精品免费观看| av五月天婷婷丁香| 六月丁香激情综合| 91热久88| 停停五月丁香| 五月丿香啪啪| 成功精品影院| 97资源欧美日韩大香蕉超碰一区| 久久伦乱| 亚洲无码另类| 五月天激情网图片| eeuus五月婷| 99精品热| 天天综合亚洲综合| 久草免费福利视频| 99自拍视频在线观看| 性色婷婷| 日本综合久久| 五月丁香影院| 思思热性操| 色135综合网| 国产欧美日韩一区二区三区| 色欲五月丁香| 99热精品无码| 久久视频婷婷视频| 五月激情影院| 99亚洲色| 久久98热re| 婷婷精品在线| 五月婷婷播| 99热精品在线在线| 色婷婷色五月综合| www91久久| 综合久久综合| 深爱激情小说五月婷婷| 色色色五月| 五月天精品| 六月婷婷激情图片| 亚洲精品久久久久AV无码| 激情合网婷婷| 欧美性交一区二区三区| 97操在线视频| 亚洲综合视频一下| 亚洲成Av人片乱码色第1集| www.婷婷网| 99免费在线视频| 日本激情五月天‘| 大香av| 五月天成人小说| 五月丁香久久久日婷婷久久婷婷日| 亚洲狠狠色丁香婷婷综合久久| 五月婷av| 91久久婷婷| 综合色、色综合| 噜噜狠狠色综无码久久合欧美| 激情婷婷在线中文字幕| 亚洲欧美在线观看| 96精品久久久久久久久| 26uuu欧美亚洲日韩| 99视频在线啪| 免费看欧美成人A片无码| 久久婷婷五月综合伊人| 激情色播| 欧美日本99| 午夜成人AV在线| 色狠狠伊人久久五月丁香| jiuse91在线| 九九爱看亚洲| 久久久香| 狠狠色婷| 91超级碰碰| 99久久6| 天天爽在线视频| 精品人妻伦九区久久AAA片| 婷婷色五月在线视频| 伊人网欧美在线男人天堂五月丁香 | 综合色在线| 99热综合色图| 蜜乳中文字| 日本色色图| 91在线人| 天天爽天天日| 伊人狠狠丁香婷婷综合尤物| 久久婷婷五月综合伊人| 激情五月综合色婷婷| 丁香婷婷色九月| 欧美情色电影一区二区| 色播播五月天| 综激情网| www婷婷| 日日干干天天干| 99久久综合网| 成人AV片播放| ..真实国产乱子伦对白在线_欧 | 婷婷成人小说综合| 人妻爽爽爽久久久久久久久| 亚洲免费观看高清完整版AV线| 五月天综合影院| www.主妇. com| 色婷婷激情四射视频| 色色色色丁香| 国产精品美女久久久久AV超清| 五月天色综合| 婷婷 丁香 精品| 97五月天婷婷| 五月丁香好婷婷A片网| 91欧美| 九九色之九九色之88| 成人AV片播放| 97色精品视频| 伊人爱爱日本| av中文网| 久久涩视频| 97色干| 丁香五月播播| 婷婷五月天狠狠色| 99综合视频| 九九精品热播| 91大屁股精品| www.综合久久.com| 丁香婷婷色情| 97热九九| 亚洲成人无码网站| 97久人人| 超碰在线免费| 超碰在线视屏| 久热久| 五月天社区| 激情综合五| 嫩模aV在线| 欧美精品啪啪| 久久性爱视频| 嫩草AV久久伊人妇女超级A| 色色丁香| 日韩精品无码一区二区| 婷婷丁香综合网| 色综合久久久无码中文字幕999| 99久久网站| 99色精品| 国产亚洲精品久久久久久郑州| 久久99热这里只频精品6学生| 性爱视频99| 婷婷激情综合| 精品人妻午夜一区二区三区四区 | 99er热精品视频| 欧美色色网| 99热99热99热99热| 人人摸人人| 99在线69| 六月丁香婷婷亚洲中文玖玖| 六月丁香婷婷开心综合基地| 思思re99视频在线观看| www.色五月| 91综合国免费久入| 97色婷婷| 欧美叉叉叉BBB网站| 亚洲狠狠丁香婷婷香蕉| www.色色com| 91九色小视频| 【乱子伦】黄色| 伊人干练久| 久热网站| 亚洲婷婷五月| 午夜天堂啪啪| 99cao婷婷| 久热精品在看| 日日爱678| 夜夜做天天爽| 深爱激情综合| 综合色99| 亚洲电影中文字幕| 黄网在线播放| 国产成人va在线| 狠狠狠狠狠干| 欧美一级色| 久久久精品婷婷五月天| 人人操91| 久久久精久人妻| 99精品在线观看视频| 九九色热| 九色无码| 香蕉人妻AV久久久久天天| 丁香六月婷婷社区| 最新日本A片| 99免费热视频| 丁香五月综合| 94干大香蕉| 五月伊人综合| 婷婷五月综合网| 99热成人| 六月丁香婷婷综合影院| 九九综合久久丁香婷婷,开心激情综合网| 人人人操B超碰| 秋霞成人毛片一级A片| 成人午夜天| 狠狠情色| ...婷婷国产成人亚洲日韩| 色婷婷婷婷| 超碰狠狠操| 五月天婷婷色色首页| 欧美激情 日韩无码 婷婷 五月天| 狠狠干综合网| 丁香五月天啪啪激情综合网| 夜夜操天天干| 九九九午夜视频| 亚洲色五月天是什么| 亚洲欧美丁香五月天亚洲欧美| 国产暴力强伦轩1区二区小说| 久久Xx| 天天色伊人| 殴美日比视频| 在线91日韩| 天天舔天天摸天天射| 香蕉国产2013| 亚洲精品网址| 99亚洲色| 超pen个人视频97| 91人人操人人| 少妇综合网| 国精产品一区一区三区免费视频| 五月综合色| 激情网婷婷五月天| 精品视频二级九九| 天天摸,天天爽| 噜综合| 婷婷九月亚洲| 伊人五月婷婷国产视频| 五月天基地| 噼里啪啦完整版中文在线观看| 九九九午夜视频| 人人操人av| 激情五月天视频| AV在线免费播放| 欧美狠狠色| 久久人人添人人爽添人人片αV | 另类五月婷婷| av九九| 成人网站免费在线播放| 激情第四色| 91主播在线| 国产精品A片| 狠狠色噜噜狠狠狠888| 影音先锋一区二区三区| www.久久久.com| 久久久27操| 色播五月| 99热在线观看99| 天天久| 极品少妇婷婷五月| 亚洲热热视频| 99色.com| 五月丁香成人网| 欧美精品A片一区在线观看| 天天摸色吧天天摸色吧| 激情五月天色色色| 深爱激情五月网| 色婷在线视频| 五月丁香激情综合| 婷婷午夜综合| 久久婷婷伊人| 婷婷 久综合| 五月丁香激情综合网| 婷婷情色五月| 色播五月丁香| 综合 蜜月 婷婷| 婷婷五月六| 九九久久高清| 婷婷综合色图| 丁香六月婷婷久久综合八月| 日韩丰满少妇无码内射| 人人操人av| 亚洲综合碰| 婷婷五月激情图片| 激情又色又爽又黄的A片| 色五月婷婷激情基地| 天天插天天插| 婷婷五月色情天| 日韩另类| 成人电影丁香六月天| 91丁香婷婷综合久久欧美| 亚洲激情免费视频| 五月色亚洲| 婷婷五月花| 亚洲视频在线观看99| http://www.com久久久精品一区| 天天天天天日| 亚洲成人影视在线观看| 三男玩一女三A片| 婷婷射婷婷舔| 99热这里只有精品1025| 中字幕视频在线永久在线观看免费 | 五月丁香香蕉| 婷婷五月天伦理| 色八戒操婷婷| 丁香五月婷婷色| 五月丁香婷婷国产精品综合| 亚洲啪啪精品| 九九性视频| 色婷婷成人| VA婷婷| 色爱综合五月| 777精品久无码人妻蜜桃| 丁香五月天啪啪| 草操AV在线| 超碰人人妻| 亚洲综合九九| 狠狠色五月| 日韩欧美一道四区中文字幕| 97高清国语自产拍| 婷婷五月激情中文字幕| 婷婷免费成人视频| 伊人久久大香天蕉亚洲特级| 激情丁香五月| 影音先锋四区| 丁香婷婷五月份| WWW.99视频| sewuyuejiqingwang| 伊人玖玖网| 99这里只有精品| 色5月丁香婷婷| 国产日韩欧美性生活| 99综合熟女| 亚洲成av人影院| 亚洲综合另类| 五月婷婷m| 色噜噜狠狠色综合成人99| 中文字幕婷婷9月天| 99久在线精品99re8| 中文字幕婷婷五月天在线观看| 另类图片色五月| 亚洲精品a成人在线播放| 网色99| 停停五月丁香| 国产丁香五月天婷婷| 国产精品色色| 色综合激情| 亚洲狠狠狠色婷婷综合激情久久久| 成人中文字幕在线| 九九色网| 久草热8精品视频在线观看| www久| 激情五月天影院| 婷婷五月综合激情小说| 丁香五月婷婷啪| www98日本小时间到了| 婷婷伊人综合| 欧美69久成人做爰视频| 开心激情婷婷| 任我肏| 六月丁丁香| 少妇人妻综合色6699| 久久996re热这里只有精品无码| 激情视频网址| 成年人夜夜喷水| 色色色9 9 9| 欧美日韩婷婷五月天| 激情99| 五月丁香综合| 九九综合色| 伊人久久婷婷| 亚洲中文乱字字幕线在永久| 26uuu激情五月天| 五月丁香六月欧美综合| 色播五月丁香婷婷| 欧美婷婷五月无砖| www.日韩艹| 色婷五月丁香久亚洲| 中国AV性爱观看| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 九色亚洲| 欧美激情 日韩无码 婷婷 五月天| 97色一二三| 激情五月天情色| 国产精品视频网| 久久综合色情网站| 99碰碰视频| 久99| 噜噜综合网| 五月天激情日色在线| 久久人操-久草婷婷-成人AV| 99偷拍视频在线日本| 亚洲精品视频电影| 噜噜干日本| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 超碰成人免费| 成人做爰A片免费看网站找不到了| www.97视频| 激情五月最新网址| 色婷婷性爱| 日韩性爱无码| www.综合久久.com| 六月99天天婷婷激情综合| 亚洲婷婷丁香五月在线| 婷婷中文字幕版| 婷婷综合爱| 99亚洲视频| 九九免费视频| 日韩av手机在线观看| 亚洲人成网站999久久久综合| 99草视频在线观看| 丁香五月天在线观看视频| 五月丁香激情五月天| 色5月婷婷| 夜夜骑福利资源| 狠狠搞狠狠操| 丁香五月天啪啪| 久久色情| www.99色| 婷婷黄色网| 玖玖五月| 久久老码第一| 亚洲va欧美va国产综合久久久| 亚洲色情网站| 9久久久久久久久久久| 97久久久| 99免费青青蜜臀| 综合色五月| 天天操天天操天天操| 噜噜网免费视频| 99 频99热国里只有精品| 影音先锋 91工厂| 日韩淑女人妻luan伦激情精品一区二| 婷婷五月天网| www.久操| 就要去操亚洲成人精品五月天丁香婷婷| 丁香六月天婷婷色| 青青草轻轻操| 青青久在线视频免费观看| 免费成片在线观看| 日韩成人精品中文字幕| 五月天婷婷丁香社区| 黄色片区子| 97色精品视频| 五月花综合| 17.c黄色| 91九色在线| 97在线视频 欧美| 涩综合在线| 97色色色色色| 亚洲成av人影院| 久久婷视频| 五月丁香天堂网婷婷| 丁香五月中文字幕| 婷婷在线日韩综合| 思思热国产视频| 深爱激情丁香| 婷婷色影音天| 色婷婷免费观看| 深爱激情五月婷婷| 五月丁香成人网| 婷婷爱五月| 久久这里只有精品16| 99久久九九| 中文字幕第四色.999| 五月香蕉婷婷| 九九Av| 色婷婷综合成人| 五月丁香六月婷婷综合伊人| 99热精品在线在线| 五月天丁香婷婷社区| 综合六月激情婷婷| 日本天天色| 五月丁香激情综合网| 五月丁香久久呀| 综合五月天婷婷色| 亚洲精品久久久久久久久久吃药| 99九九在线精品热动漫| 丁香五月婷老师| 99色爱| 狠狠色婷婷在线| 五月天色丁香| 婷婷五月天大香蕉在线视频观看| 五月丁香激情综合网官网| 久99久视频| 色天堂97| 六月 丁香 视频| 五月丁香花成人社区| 五月婷婷就去色| 99色综合| 久99热| AV在线观看网站| 婷婷丁香五月91| 激情开心五月天婷婷基地丁香社区| 日本精品人妻无码77777| Av性爱网| 日韩婷婷| 亚洲中文无码成人| www.婷婷五月| 丁香五月精品视频| 婷婷五月色播放| AA久久| 九九自拍网| 久久久五月天网站| 亚洲丁香婷婷丁香五月天激情| 国成人网| 综合激情五月天六月婷免费视频| 日本网站久久| 可以免费看AV网站| www99精品亚| 五月婷婷丁香色播网| 人妻视频一区而且二区| 色色综合网络| 9色小视频在线观看| 丁香五月六月婷婷殴美综合| 日韩在线视频9色| 凹凸操Av| 欧美日韩国产一二区| 久久久久久久久人妻| 亚洲国产网站| 色色亚洲五月天| 91疯狂操操操操| 五月天激情网站| 丁香六月狠狠干| 开心五月婷婷激情| 丁香五月激情啪啪| 99色色网| 初夜av| Caoub青青超碰 | 色狠狠婷婷| 色综合av超碰| 另类激情五月| 黄色三级日本| 亚洲色网址| 深爱网深爱综合网| 亚洲日韩成人三级av| 狠狠色噜噜色狠狠狠综合久久成人波 | 九九99九九99| 亚洲成人网无码| 亚洲第一成人无码A片| 久热这里只有精品66| 成人 AV播放| 亚洲色色色| 欧美日韩成人| 国产91资源在线| 亚洲婷婷激情五月天| 97久久五月丁香婷婷| 色婷婷久久综合| 色五月丁香五月五月婷婷| 中文字幕丰满孑伦无码专区| 日日懆天天懆| 天天肏高清在线| 香蕉久久国产AV一区二区| 五月婷婷狠天天色综合| 秋霞网在线免费基地五月婷婷丁香| 伊人在线视频| 五月天激情综合首页| 碰97 久| 成人网址在线观看| 电影蜘蛛女| 久久久亚洲成人无码A片| 狠狠爱激情网| 激情婷婷内射| 久久99免费视屏| 丁香五月在线| 国产另类综合| www.五月婷婷久久.com| 色99网站| 久草热视频在线观看| 丁香九月激情| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 影音先锋天天日| 性爱综合网| 很很干天天干| 99色在线观看免费| 婷婷日本色| 激情五月婷婷网| 天天摸色吧天天摸色吧| 婷婷月五天在线在线看| 亚洲人操亚洲人| 五月婷婷激情综合| 深爱激情五月天婷婷网| 伊人久久大香网| 超碰成人影视| 99re在线观看| 五月天激情婷婷久久| 五月婷婷中字在线| 久久人视频| 男女啪啪做爰高潮无遮挡| 色五婷婷开心缴| 2025最新亚洲激情在线| 五月丁香久人妻中文| 国产在线激情视频| 色五月激情五月天| 99视频精品在线| 五月六月丁香激情视频| 六月色激情| 无码人妻AV久久久一区二区三区 | 99精品无码视频| 97久操视频| 国产午夜精品一区二区三区四区| 欧美天堂久久| 99热免费看| 婷婷深爱五月亚洲综合| AV在线大香蕉| 久久日韩婷婷五月| 国产精品美女久久久久AV超清 | 色色色免费视频| av 一区三区四区| 日本婷久久| 99在线综合视频| 亚洲熟妇AV乱码在线观看| 天堂久久精品| 久久只有18视频| 婷婷玉月丁香五月在线视频| 99热在线爱| 狼人婷婷综合| 色原狠狠综合| 超碰69天堂| 99热精品在线观看| 26uuu| 欧美人人操| 中文AV网| 五月激情婷婷六月| 五月天成人伊人| 婷婷五六月丁香| 五月婷婷激情刺激| 99色色| av在线中文| 婷婷玖玖五月天| 色约约视频一区二区三区四区五区| 香蕉人妻AV久久久久天天| 婷婷综合| 夜夜干天天操| 色婷婷五月在线| 六月 丁香 视频| 99热1| w婷婷五月婷婷w| 一级精品999WWW| 人人摸人人澡人人| 五月天国产| 影音先锋777xfplay色资源网站| 丁香五月婷婷色| 五月婷婷久草在线视频综合| 夜夜做天天爽| 日日做天天操夜夜爽| 亚洲成人乱码av网站| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 91婷色| 国产熟女一区二区三区五月婷| 五月天另类图片区99| 五月丁香成年黄色| 色丁香五月| 亚洲成人在线综合| 亚欧州精品视频| 亚洲第一成人无码A片| 亚洲午夜电影| 精品人人操| 色五月激情视频在线综合| 五月丁香啪啪啪啪| 丁香婷婷六月激情文学 | 亚洲精品大片| 色综合色综合网| 中文字幕人成乱码在线观看| www.夜夜| 狠狠干最新地址| 婷婷综合伊人| 在线综合91| 色婷婷超碰| 五月色综合| 亚洲综合视频天天精品| 五月天色五月天| 开心婷婷五月中文字幕组| 色婷婷裸体色性在线| 停婷丁五月在线| 超碰亚洲天堂| 99精品无码| 97啪在线观看视频| 欧美日本高清视频99| 九九色院| 成人做爰A片免费看网站找不到了| 丁香六月av| 亚洲激情视频网| 五月天婷婷在线观看| 99在线观看视频| 日韩aaaaa| 婷婷五月天久草在线| 激情五月丁香六月综合AVXXXX| 成人婷婷| 丁香五月日啪| 婷婷五月综合视频免费播放| www国产亚洲色婷婷com| 蜜臀99精品| 天天干,夜夜爽| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 性爱五月婷| 久青操| 日本美女天天日天天爽| 九一99| www.99日本| 99热这里只有精| 91美女啪啪| 996er热| 深爱五月天天| 超碰日日操| www.yw尤物| 婷婷综合另类| 五月丁香六月激情综合网| 人人色AV| 综合一区二区三区| 欧美成人猛片AAAAAAA| 亚洲成人网站在线| 伊人婷婷青青cao| 丁香六月激情网C0W| 91啪啪| 2025超碰| 日本欧美在线| 美英法精品无码免费视频| 14色综合婷婷| 丁香狠狠干| 中文字幕在线观看视频www| 亭亭色天香| 五月婷婷亚洲| 五月天福利影院导航| se.久久视频在线观看| 五月丁香免费看| 九九在线精品| 99久久www| 久草婷婷网 | 7777久久亚洲中文字幕| 91操碰| 婷婷五月天综合久久| 思思久久精品| 丁香五月手机视频| 久色视频首页| 久色婷婷200| 性爱久久| 人人97碰| 五月丁香六月综合激情无码软件亮点| 99热九九热| 婷婷激情五月天小说| 六月婷色六月| 少妇激情五月天| av线电影| 26uuu另类亚洲欧美日本一| 俺去也婷婷| 操人久久| 天天碰夜夜爽| 无码视频国内精品久久久| 五月丁香激情四射综合| 九九久久网| 日韩无码AV电影网站| 97干免费视频| 色色A| 五月激情综合婷婷| 嫩草综合网| 大香蕉五月天| 九色无码| 日日操日日撸| 97高清国语自产拍| 婷婷丁香五月av| 久操人妻| 99丁香五月婷| 美女妹子后射视频网站在线观看| 性爱久久| 99激情网| 黄网免费看| 婷婷婷久久久| 99视频这里有精品| 色综合9| 啪啪激情网站| 日欧一片内射VA在线影院| 去干网av| 日本99热| 久天综合| 9月色婷婷| 五月丁香综合影院| 巴基斯坦粉嫩无码视频| 日韩乱轮AV| 六月婷婷网站| 人人人操 超碰| 日本www五月婷婷| 九九AV| 99这里只有免费的小视频在线观看| 一起草性爱不卡视频| 久久丝袜婷婷| 久久久久久久97| 激情综合在线观看| 九色在线观看91av| 久久综合人妻| 婷婷性爱综合| 激情六月丁| 超碰在线资源| 丁香五月天堂| 九伊人网| 色欲五月婷婷| 9有码中文| 久久色婷婷| av在线观看免费| 五月丁香色综合| 射久久丁香五月| 97色天堂| 亚洲激情av| 玖玖色综合| ri电影在线| 中文字幕无码人妻少妇免费视频| 激情婷婷狠狠干| 97caop| 色久五月天| 午夜丁香 婷婷| 色热久| 色婷婷色99国产综合精品| 亚洲婷婷五月天| 五月丁香激情综合网官网| 2018夜夜草| 五月天激情视频网站| 欧美婷婷综合网| 99热主页日本| 久久综合激情五月天| 丁香六月激情综合| 夜夜夜叫天天天做| 五月婷婷丁香大香蕉| 亚洲综合在线播放| 黄网在线播放| 中国女人做爰A片| 99日这里只有精品| 亚洲第一av| 日本狠狠干| 久思思久视频| 九九婷婷五月天| 激情五月综合网最新 | 国产中文字幕在线视频免费观看 | 九九色之九九色之88| 26uuu最新地址| 婷婷另类开心| 996黄色片| 色五月婷婷基地| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 五月丁香综合色婷婷| 五月色亚洲| 色色婷婷五月天| 日本精品人妻无码77777| 开心五月深爱五月丁香五月激情五月| 日韩在线一级| 99热久| 天堂草在线看www| 99男人天堂| 丰满少妇猛烈A片免费看观看| 综合激情视频| 五月花综合| 99re欧美精品| 亚洲综合另类| 天天色天天干天天插| www五月天com| 色色射| 丁香五月亚综合图片| 色,激情五月天| 99在线爽| 天天天天操|