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
返回資訊列表
5月婷婷六月丁香| 97人人超| 九月婷婷综合| 五月丁香婷在线| 亲子乱av一区二区三区的| 婷婷97碰碰| 丁香五月1页| 亚洲综合视频在线| 中文av网| 9+1视频网址| 九九热免费观看视频| 五月天激情AV| 亚洲 在线 性爱| av网站免费在线| 九色自拍| 五月婷婷亚洲色视频| 综合狠狠伊人| 婷婷丁香花五月天| 亚洲精品中文字幕成人片| 五月丁香六月婷婷久久久综合| 天天日天天插天天操| 精品无码久久久久久久久| 亚洲视频99| 在线五月色播| 99视频这里只有免费精品| 91人操| 免费观看亚洲AV片| 五月丁香色婷婷久久| www.夜夜操.com| 婷婷六月激情啪啪| 色婷婷婷综合五月天| 婷婷丁香五月91| 六月婷婷色色网| 五月婷婷五月天| 色婷婷AV久久久久久久| 激情五月天色婷婷| 五月香六月婷| 精品99只有。| 九九热视频思思| 丁香五月天偷拍| 久久这里只| 五月丁香黄色| 97超碰综合| 日韩精品VIP| 婷婷丁香五月亚洲| 色色色网站| 99热碰碰| 99热最新精品| 日韩狠狠色| 免费在线a| 婷婷激情久久| 九 九九九AV| 被强行糟蹋的女人A片| 成人片在线播放| 1区2区视频| 婷婷九月色| 99超级碰碰| 播四月婷婷六月丁香| 综合五月草| 色婷婷久久综| 99色6爱9热| 激情婷婷五月色| 亚洲色啪| 99热精品网| 亚洲人成网亚洲欧洲无码久久| 日韩精品成人在线| 五月丁香综合啪啪| 日夜操B| 色久九| www.色综合.com| 伊人网啪啪| 六月丁香啪| 激情五月天的婷婷| 五月丁香六月婷婷综合在线| 五月丁香A片| 天天肏高清在线| 婷婷五月天情色| 婷婷狠狠18禁久久| 这里只精品| av婷婷丁香 六月| 综合激情五月四射婷婷| 狠狠狠狠狠操| 色色色婷婷五月| 久久全色| 日韩成人电影AV| 久久视这里只有精品| 色婷婷WWW| 国产99美少妇| 亚洲综合色色色| 婷婷开心青青草| 婷婷视频网| 婷婷 色 丁香 夜| 人妻视频一区而且二区| 在线日韩av| 狠狠色综合网| 超碰五月婷婷五月天| 五月深情久久| 狠狠五月天婷婷| www,婷婷| 五月婷在线| 超碰色碰碰| 激情丁香久久| 欧美熟女乱又伦| 色噜噜狠狠色综无码久久合欧美| 色色色网站| 日操熟女| 婷婷激情五月| 俺也去综合| 第五色色色婷婷| 97狠狠色| 激情色情五月天| 天天摸,天天爽| 天天综合色99| 日本天天综合| 色色色999| 国产操B| 人妻AV在线观看| 亚洲色五月天是什么| 狠狠久综合| 91婷婷在线观看| 日日操夜夜爽白洁| 久久婷婷五月天激情| 丁香色情五月天| 人人射av| 婷婷丁香在线| 91婷婷| 婷婷五月欧美综合| 这里只有精品视频99| 性欧美大战久久久久久久83| 久操热线| 丁香在线视频| 天天肏视奸| 在线中文av| 五月天成人在线播放丁香| 99久久久久久www| 国外亚洲成AV人片在线观看| 六月丁香啪啪啪| 丁香五月婷婷超碰在线| 天堂五月婷婷| 夜夜撸夜夜骑| www.精品久9| 丁香五月天啪啪激情综和网| 五月天色色网站| 五月丁香综合| 99在线er热| 国产在这里只有精品| 一点色成人网| 成人狠狠成人狠狠成人狠狠成人狠狠| 天天爱天天做天天操| 国产精品色情AAAAA片软件 | 久久综合九九| 精品久久久人妻| 美女爆乳18禁www久久久久久| XXXX岛国| 亚洲午夜成人av电影网| 亚州AV超碰人人操| 丁香九月色| 99re思思在线视频| 国产欧美熟妇另类久久久| 丁香五月天黄色片| 久久99热这里只有精品| 九九家庭影院| 日本操B视频| 五月花婷婷| 涩五月婷婷| 色综合丁香婷婷| 色婷视频| 激情伊人网| 99日这里只有精品| 色婷婷久久7777| 五月丁香婷中文| 五月婷久久| 91九色小视频| 久久婷婷啪啪视频| 九月色婷婷| 99热最新网址| 九九九九无码| 色九区| www.五月婷婷| 538在线精品| 色综合9| 色情五月天A片| 天天成人综合视频| 久操福利| 丁香六月色婷婷| 18av天堂| 婷婷金品综合视频| 中文字幕日韩无码制服诱或| 特黄三级又爽又粗又大| 五月婷婷欧美| 日在线V视频在线播放| 亚洲九九99精品视频在线播放| 欧洲激情五月天婷婷| 色色婷婷五月天| 日本狠狠爽| 99色在线观看视频者| 狠狠干综合网| VA日本视频| 无码91中文字幕| 六月婷婷久久大全| 激情久久久久久久久| 狠狠狠狠狠狠色| 五月丁香色综合| 综激情网| 亚洲精品又粗又大又爽A片 | 婷婷综合五月天亚洲综合| 91日婷婷在线| 色播五月婷婷| 亚洲十月婷婷综合| 久99久视频免费观看| 九色七七| 婷婷五月天影视| 婷婷综合成人五月天| 99热啪啪| 亚洲99热| 久久99久久久| 天天五月香欧美| 亚洲欧洲中文日韩久久AV乱码| 五月丁香九九九综合| 日韩黄在免| 五月丁香六月婷婷色日| 六月天六月婷| 婷婷五月丁香五月丁香| 另类视频综合| 婷婷成人AV| 精品人妻伦九区久久AAA片| 天天做天天爱天天综合| 婷婷色五月色妇| 51XX午夜影福利| 91日在线视频| 色色色热热热| 另类激情综合| 成人免费高清在线播放| 激情五月六月婷婷| 欧美成人精品一区二区| 国产美女精品| 婷婷天天舔| 五月丁香激情四射综合| 综合色网站| 91午夜婷婷狠狠久久综合9色| 婷婷成人AV| 久久视频这里99| 国产精品久久在线观看技巧| 色五月大香蕉| 六月丁香婷| 久久婷婷成人视频| 色婷婷狠狠禁18久久| 亚洲综合另类| 99精品免费欧美小视频| 欧美噜噜免费观看| 猫咪伊人久久| 东京热人妻一区二区三区在线| 午夜成人网站在线观看| 天天天操天天天日| 天天拍夜夜爽日日| 五月天婷婷一起草| 婷婷五月天久久| 97色一二三| 五月丁香啪| 亚洲色另类| 五月丁香在线| 天天天天干| 色五月 五月婷婷| 欧美英丁香开心快乐六月天网| 天天婷婷综合| www.99久| 婷婷五月天激情综合| 欧美黑人大吊| 久久五月婷综合网| 婷婷五月噜噜| 五月天天视频| 开心婷婷五月| 这里只有精品2| 99热自拍| Av大香蕉| www。久久久久一b。Cc| 久re在线| 色丁香婷婷| 热久久91| 丁香久色| 99ri精品在线观看| 办公室少妇激情呻吟A片在线观看| 亚洲午夜电影| 九九大香视频| 狠狠爱婷婷丁香| 婷婷五月花丁香| 9这里只有精品| 99视频在线观看视频| 亚洲av另类在线观看| 五月天激情网图片| 婷婷色婷婷| 色欲久久综合| 色综合色五月| 国产无套精品一区二区| 色五月激情五月| 99欧美| AV在线观看网站| 狼人婷婷久久| 久久久999精品| www夜夜操wwwcon| 九九视频精品在线免费| 荷兰av一级| 婷婷亚洲综合| 日本综合99| 亚洲另类毛片| 激情五月综合免费| www.91婷婷| 五月丁香六月激情| 天天肏天天肏| 婷婷舔| 综合五月网| 日本色色图| 91啪啪视频| 思思re最新视频| 国精产品一区一区三区免费视频| 激情久久久| 色五月激情| 26UUU欧美| 思思久久99| 开心婷婷五月| 色爽干| 精品日本视频444| 激情婷婷激情在线不卡| 操碰久| 99久在线精品| 色五月丁香一区在线| 丁香六月婷婷综合麻豆| 美女天天爽| 99九九在线视频| 五月丁香激情四射| 91狠狠综合久久久久久| 噜噜久| 五月丁香综合啪啪| 亚洲激情av| 99热自拍| 夜夜干天天操| 五月丁香激情四射综合| 日本五月天婷婷丁香| 婷婷久久大香蕉| 亚洲在线视频321| www.狠狠狠.com| 可以直接看的AV| 性做久久久久久久免费看| 97电影99热| 天天干天天操天天上| 色色色色色色色色综合网| 色婷婷aV四虎| AV五月婷婷露脸| 国产偷人爽久久久久久老妇APP | 99九九热视频免费| 天天做天天干天天综合网| www.狠狠操.con| 人人干AV| 91日韩在线| 狠狠色噜噜狠| a网站免费观看| 开心五月婷婷在线| www..999热久| 99热 日韩| 色五月婷婷操逼| XXXX岛国| 91色综合网| 欧美这里只有精品| 99久在线精品99re5热视频| 九九亚洲小视频| 激情婷婷六月| 五月天亚洲最大成人| 亲子乱AV-区二区三区| 亚洲熟女色| 79精品视频在线观看,| 色婷婷久久综合| 免费无码毛片一区二区A片| 婷婷五月天免费| 久久婷婷五月天| 亚洲正能量欧美| 丁香五月在线看| 婷婷五月丁香国产| 五日激情综合| 亚洲天堂热| 99热6精品| 91精品综合久久久久久五月天| AV激情五月| 99视频激情四射| 久久密臀婷婷| 欧美日韩成人高清在线| 九九色精品| 成功精品影院| 欧美综合五月丁香五月天| 思思热在线| 日韩无码性爱| 激情开心五月天婷婷基地丁香社区| 超碰人人射| 九九久久污| 色99综合视频| 欧美电影在线播放| 久久五月天合网| 国产激情在线| 視频福利乱色| 婷婷五月六月丁香| 丁香婷婷激情四射五月| WWW.开心五月天.COM| 久久婷婷视频| 丁香五月综合高清在线| 99综合网| 大香伊人婷婷影院| 无码人妻一区二区三区免费九色| www.激情com| 五月激情偷拍| 五月婷婷我| 狠狠色综合网| 高清无码网址| 26uuu另类| 欧美性久| 91 欧美| 夜夜干 夜夜操| 人人97碰| 九九精品大香蕉| yellow视频在线观看91| 人妻在线中文字幕久久| 丁香五月手机在线| 日本波多野结衣视频| 永久地址 色| AV在线资源| 蜜桃婷婷丁香综合久久开心亚洲| 98色花堂98t.R| 最新av在线观看| 久久精品99| 丁香五月激情在线| 中文激情网| 久草婷婷网| 久久精品9| 六月天无码网址| 丁香 亚洲 久久| 久碰视频| 99这里都是精品6| 五月天激情子轮| 久久六月天| 任我肏视频精品| 99热伊人| 99热亚洲精品| 婷婷午夜丁香| 大香蕉婷婷久久| 亚洲综合婷婷五月| av 一区三区四区| 99热国产婷婷| 国产高潮白浆一区二区| 国产精产国品一二三在观看| 九九aV| 五月婷婷影| 激情小说五月欧美亚洲丁香| 夜夜爽日日躁| 日韩另类| 狠狠操狠狠爱| 久久久婷婷色五月资源网| 国产成人AV| 婷婷激情图片| 99热这里只有精品青草| 久久久久久性爱视频| 五月丁香色五月| 操人无码| 五月天丁香啪啪综合| 强伦轩人妻一区二区电影| 超碰69天堂| 碰97 久| AAA久久| 香蕉综合网| 婷婷五月丁香欧洲| 国产亚洲99久久精品熟女| 97精品综合久久| 激情综合五月丁香六月婷婷| 99爱视频在线观看这里只有精品| 色yeye欧美| 五月丁香自拍| 狠狠久久婷五月综合色| 激情 婷婷| 日本va欧美va国产激情| 99精品视频网站| 久久丁香五月婷婷| 色99xx| 五月丁香天堂网| 久久在线人妻| 久久大香蕉同僚| 亚洲V国产V欧美V久久久久久| 日本 @ va 免费| 天天射美女| 丁香婷婷五月香蕉91| 日韩精品一品二区三区的使用体验| jiZZdr| 激情五月天色爱| 婷婷丁香人妻久久在线观看| 99视频| 五月天婷婷操逼视频| 免费看欧美成人A片无码| www色色色com| 五月丁香啪啪啪| www五月| 粉嫩AV久久一区二区三区| 成人午夜天| 欧美十二区| 日本三日本三级少妇三级66| 色综合色五月| www热久久yy9| 免费成人中文字幕| 青青草色在线视频观看| 99久热这里有精品| 五月天色裸体视频| 性生活视频98791| 大香蕉伊人久久| 久热9| 玖玖婷婷五月天| 成人亚洲精品久久久久| 天啪色| www.久久久久久| 欧韩性爱| 思思国产99| 综合久久97| www.婷婷五月天| 91操女| 日本三级日本三级99| 久久亚洲色导航| 99re最新地址| 综合网色| 神马久久五月天| 91婷婷搞| 五月天婷婷激情春色小说| 99日这里只有精品| 激情综合网五月天| 99色.com| 日本老女人黄页在线播放| 五月色婷婷AV| 婷婷色五月天在线观看| 亚洲韩国日产综合AV| 9久久精品| 久久欧洲综合网| 热久国产| 天天久久婷婷| 狠狠舔| 婷婷成人五月天成人文学小说| a久久| 成人综合视频网址| 97干视频| 色偷偷综合| 成人免费120分钟啪啪| 美女精品一级不卡视频| 婷婷五月综合激情免费| 337p大胆噜噜噜噜噜91Av| 五月天怕怕| 婷婷六月插屄激情| 久久丁香五月天| 操逼综合网| 激情久久五月网| 久操操| 黄色一级影片| 能看的av网站| 操逼电影免费看| 五月丁香婷婷无码A∨| 98色花堂98t.R| 91婷婷| 色色综合网站| 大香蕉啪啪网| 色五月丁香五| 婷婷色基地在线看 | 色五月中文字幕| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 97色在线视频| 日本五月婷| 婷婷99狠狠躁天天躁| 97色婷婷| 99re资源在线视频导航| 久在热99| 不卡在线视频| 无码一级片| 在线观看亚洲视频影院| 婷婷6月综合网| 天天做天天要天天爽| 久久精品66| 99热这里只有精品5| 天天操天天曰| 91日韩在线| 噼里啪啦在线观看免费完整版视频| www.99在线| 97日韩无套内| 91好好热日本在线| 六月激情久久婷婷| 能直接看的AV网站| 日韩无码色色| Www.狠狠| 天天天天天天天操| 婷婷六月情| 超碰人人艹| 婷婷成人基地| 欧美色碰| 婷婷五月天影视网址| 婷婷六月激情在线视频| 337p大胆噜噜噜噜噜91Av| 97超碰在线免费观看| 成人精品免费在线观看| 欧美五月丁香| 九九九色综合| 国外亚洲成AV人片在线观看| 婷婷六月天激情影院| 色情婷婷久久五月天| 人人草开心五月天| 久九色| 五月丁香六月激情综合| 色婷婷五月综合网| 久久一级片| 激情丁香婷婷| 啪啪啪五月天| 日韩在线一级| 久久五月丁香| 狠狠五月激情丁香六月| 91高潮喷水久久久久久久久| 久久久五月婷婷| 激情综合五月开心狠狠| 欧洲色区| 激情综合无码| 我爱va亚洲va52| 婷婷性福五月天| 国产精品人成A片一区二区| 亚洲XX网| 99热这里| 99热精品综合| 久婷婷婷| 亞洲自怕| 五月天桃色深爱网| 五月开心婷婷极品激情| 婷婷五月天小说| 欧美综合激情五月天| 久久99网址| 欧美顶级少妇做爰HD| 日本色爽| 日韩欧美四五区| 九九综合网色全集 | 亚洲天堂aaa| 久久9视频欧美| 免费黄网不卡AV| 激情婷婷丁香五月天| 99这里只有精品在线| www.久久爱.com| 日韩二区搞逼插逼毛片| 9久久精品| 五月婷婷丁香在线| 高清无码 一区 二区 三区| 亚洲精品成人片在线播| 欧美顶级少妇做爰HD| 97人人干人人操| 亚洲天堂aaa| 色综合天天网| 丁香 婷婷 激情 综合 五月| 超碰不卡在线| 在线日韩av| WWW.桔色成人.COM| 五月综合无码| 这里只有精彩亚洲视频推荐| 97影院一级片| 97操碰人人| 五月天另类小说久久小说网| 成人丁香五月| 97干综合网| 久久人妻伦理| 婷婷爱婷婷| 久99综合婷婷| 99人人操人人爱久久久| 久人人操| 97婷婷久久丁香| 99无码精品| 噜噜噜狠狠色综| 欧美婷婷五月天| 色综合夜夜| 人妻人人操| 久热人妻| 日韩999| 九九热啪啪| 射琪琪| 婷婷久久婷婷| 婷婷狠狠狠爱| 日本人妻伦在线中文字幕| 午夜天堂啪啪| 亚洲综合九九| 九九色热| 风流少妇A片一区二区蜜桃| 涩五月婷婷| 亚洲人人操| 激情五月天天狠狠久久| 丁香激情五月| 久久婷婷五月丁香网| 亚洲色图五月丁香| 另类专区在线| 久久狠狠干| 丁香五月天黄色片| 婷婷五月天开心网| 激情六月丁香| www激情| 99热99在线| 丰满少妇猛烈A片免费看观看| 五月天色丁香| 另类专区在线观看| 99热这里只有精品55| 色区久久| 玖玖婷婷免费| 丁香婷婷五月激情四射网| 久碰综合| 亚洲五月婷| 亚洲综合新99视频| www夜夜操wwwcon| 五月开心网| 久久婷婷亚洲| 久久99精品视频| 人人操人人妻| 伊人久久大香线蕉av一区| 开心五月激情网| 天天日日天天| 欧美成人va| 久久这里有精品| 午夜亚洲AV日韩无码| 婷婷婷五月香蕉| 久久综合性| 久久九九99字幕| 五月丁香偷拍| 色色亚洲| 婷婷日本色| 婷婷丁香五月天综合AV| 99久久精品视频女神1| 亚洲色图五月丁香| 国产国产乱老熟女视频网站97| 婷婷丁香色女人| 婷婷六月天天| 国色天香伊人狠狠色| 99狠狠| 影音先锋日本三级资源| www.99热在线观看| 婷婷免费无视频| 天堂综合久久| 日韩AC在线免费观看| 免费啪啪亚州视频| 欧美性爱5月天天天看| 人妻久热| 中文字幕成人日韩| 婷婷激情五月天激情在线| 99热这里只有精品66| 深爱婷婷网| 综合激情在线观看| 免费久久这里只有精品99| 成人av在线网址| 成人婷婷色综合| 97人人做| 婷婷五月天激情在线| 亚洲色五月婷婷| 一起草av在线观看| 开心五月色婷| 亚州美女| 色婷婷XXXXX| 欧美狠狠色| 久久性爱网| 天天干夜夜操A片| 影音先锋91| 色婷婷AV久久| 最新五月天婷婷影| 伊人激情AV一区二区三区| 99热在线资源| 婷婷免费视频| 1024AV视频| www.五月天婷婷姐姐| 色色色色五月| 久久精品9| 亚洲操B| 中文字幕成人日韩| 激情婷婷五月天在线观看| 97久久久| 99热99ai| 九九热免费视频| av网址在线| 在线中文亚洲| 色呦呦在线| 伊人日日干| 99re在线观看| 婷婷久久综合| 五月天激情四射| 性综合网| 狠狠五月天| 人人摸人人摸| 五月综合激情| 日韩一级网站| 激情综合色图| 久久总和99| 色哟哟精品| 操笔无码| 97超碰综合| 天堂A∨在线| 79精品视频在线观看,| 91久久久久久久久18| 久月婷婷| 婷婷丁香五月天哟啪| 97碰在线视频| 91dy.av| 国产精品成人AV在线观看春天| 丁香五月天欧美成人| 激情综合五月婷婷| 天天操九九插| 九热网站| 日91高清无玛| 久久停停超碰| 婷婷色综合| 婷婷五月俺要去| 91人妻九色大屁股| 天天干天天干天天干天天干天天干| 亚洲成人精品三区| 久婷五月| 天天肏屄夜夜爽| 老美AA片| 噜噜久| 97在线观视频免费观看| 婷婷色五月天在线| 91人人操.COM| 少妇人妻人伦A片| 五月激情五月婷婷五月天在线| 久久涩视频| 操骚货在线| 亚洲AV成人片无码网站| 免费看欧美成人A片无码| 婷婷激情五月天在线| 色播五月综合网| h在线看免费版在线看| 色五月无码| 熟妇国产| 操一区| 色欲资源网| 丁香五月激情网| 激情五月天婷婷| 精品在线| 久久丁香九| 色99网| 人妻VideOssS人妻| 久久网日本| 久久caop| av在线观看网站| 色五月av伊人| 婷婷久久丁香五月| 欧类av怡春院| 色噜噜狠狠色综合网| 色欲五月天| 99视频在线观看网址| 婷婷五月激情综合| 欧美婷婷五月天| 99热这是里只有精品| 色婷婷另类| 激情六月婷婷| 激情丁香九九五月综合网| 丁香五月日啪| 99玖玖在线视频| 丁香五月花| 九九99在线免费在线观看视频| 大波美女VA网站| 色哟哟性爱av| 婷婷中文综合网| 综合色99| 日本久久人| WWW激情五月天| 丁香五月在线人妻| 午夜色丁香| 欧亚成人A片一区二区| 日本91在线| 五月天激情www| 国产精品五月丁香| 91性高潮久久久久久久久| www.激情com| 国产日韩精品SUV| 99色在线视频| 五月天久久综合| 亚洲aV写真天天综合网久久| 五月天激情网图片 - 百度| 色五月中文字幕| 日本婷婷激情四射中文字幕在线观看| 国产精品色| 五月丁香AV在线| 四五月婷婷| 一级黄色影片| 久久久久亚洲AV无码网影音先锋| 日本玖玖在线| 另类在线免费视频| 精品色色| 狠狠操狠狠操AV| 99热精品在线观看| 五月丁香狠狠| 精品无吗va视频免费观看| 亚洲AV成人片无码网站| 99热久久这里只有精品| 深爱 五月天| 久热这里有精品视频| 激情五月天网| 青草少妇激情| 91色综合网| 色婷婷五月综合| 色色色五月天婷婷| 91伦| 色综合天天网| 六月婷婷久久大全| 伊人久久大香线蕉av一区| 六月色婷婷| 婷婷丁香红五月91C| 4438国产免费看| 日日夜夜亚洲一区| 99这里只有精品|v| 五月婷婷 激情五月| 五月天婷婷高清无码| 成人色色视频| 五月天停停成人网| A久网| 五月婷婷之综合激情| 夜夜做夜夜愛| 天天做天天爱综合| 丁香六月久| 精品无吗va视频免费观看| 激情六月天| 中文字幕av在线播放| 伊人www22综合色| 99热精品在这里| 91九色熟女| 丁香五月情| 色色色色色色网| 欧美日韩99| 激情五月色婷婷| 天天色播| 九九婷婷激情综合网| 国产人妻777人伦精品HD| 色色色色丁香| 免费看片在线观看| 五月丁香六月成人| 五月婷婷六月激情在线| 色五月天视频| 色婷婷五月综合| 日韩无码色色| 国产肥白大熟妇BBBB视频| 99re欧美精品| WWW.久久久久久久| 伍月婷丁香婷| 一区二区三区四区无码| 99超级碰碰| 九九在线视频| 亚洲mm免费| 日本三级日本三级99| 九九视频这里只有精品在线播放 | 色五月激情网| 日本久久久97| 国产三级片91| www 五月天 com| 亚洲这里只有精品| 亚州色色色| 狠狠色中色| 九九精品99| 色婷婷综合五月| 婷婷丁香激情综合色情| 精品亚洲国产成AV人片传媒| 91操女| 色婷婷丁香六月| 欧美成人网99网| 婷婷久久五月天| 爆乳熟女-区二区三区| 中文字幕黄色片| 婷婷六月色情| 99自拍视频在线观看| 色婷婷精品视频在线播放| 97在线精品视频| 岛国AV网| 五月天婷婷久久| 激情婷婷九月| 天天爽夜夜爽夜爽精品| 91一起操| 91人人人人人人人| 五月丁香在线国产| 99热这里只有精品1025| 九色视频九色九色91jiuseshipin| wWW九九在线播放| 思思热99在线| 欧美va在线| 老妇操B| 婷婷成人小说综合| 激情六月综合| 9月色婷婷| 性生活久久朋友人妻| 亚洲综合激情五月久久| 另类 在线| 日日操日日爽| 九九热在线视频| 婷婷精品视频| 五月天激情综合| 99热久| 日本一毛片| 婷婷五月av| 婷五月天影院| 丁香五月婷婷亚洲综合精品在线| 五月激情综合网| 色噜久| 丁香婷婷在线| 国产美女无遮挡裸体毛片A片 | 天天操天爱综合| 中文字幕在线免费看线人| 另类图片天天影视在线观看| 人人色婷婷| 五月色婷丁香| 激情五月,色播五月| 色五月婷婷777| 久久这里只有精品07 | 79精品在线视频| 婷婷五月天AV| 伊人久久大香线蕉av最新| 99热这里只有精品55| 丁香花狠狠婷婷亚洲中文字幕| 91久久综合| 色呦呦美女| 99啪啪网| 婷婷激情性爱| 国产综合视频婷婷| www.9797国产| 色玖玖综合网| 99久.| 激情九月综合| 婷婷金品综合视频| 九九黄色网| 亚洲操精品| 色天堂在线| 六月婷婷综合激情| 大香蕉520| 丁香五月电影| 如何安全看伊人婷婷| www.久久爱| 99久久这里只有精品免费官网| 丁香五月婷婷欧美成人色图| av人人操| 五月天婷婷丁香导航| 色色色婷婷五月| 丁香啪啪| 5月婷婷综合| 超碰在线日夜| www夜夜操com| 97人妻碰碰碰久久久久-最近国语高清| 五月婷婷激情五月| 色婷婷色九月| 久久人人妻| 亚洲综合网激情五月天| 天天日天天肏天天奸| 五月色天情| 九九十99视频| 66成人网| 激情q青青草在线婷婷| 国产精品久久欧美久久一区| 婷婷五月激情在线| 97在线/日本| 成人 在线 日韩| 就爱啪啪婷婷| 婷婷五月综合丁香久久| 激情五月婷黄版| 大香蕉五月天婷婷| 嫩草AV久久伊人妇女超级A| 五月丁香色婷| 色婷婷五月影院| 婷婷亚洲天堂| 丁香美女主播视频在线观看| 欧美天天搞| 日本狠狠色| 日日撸日日操| 色婷婷欧美| 六月成人网| 五月综合激情网| 国产六月婷婷| 99噜噜噜| 亚洲无AV在线中文字幕| 久久免片| 人人爽天天莫| 色五月天丁香婷婷色| 99精品热| 日本色爽| 久久人妻乱子伦| 色五月色五天色情网址| 婷婷亚洲综合| 九九99精品视频在线观看| 色婷婷五月影视| 国av网| 六月丁香五月天| 婷婷五月激情五月激情| 天天色月| 激情综合色婷婷啪啪六月天| 日本天天色| 激情五月天偷拍综合网| 管管補管管紱| 色婷婷五月综合在线| 午夜微拍福利| 思思热99热| 开心综合激情综合| 天天开心天天色| 久久五月天丁香花| 国产无套精品一区二区| 在线看片av| 高清无码入口| 天天综合色综合| 婷婷久久大香蕉| 一起草aV| 五月丁香婷婷基地| 五月花免费视频| 五月综合亚洲| 精品久热| 婷婷丁香五月激情密臀av| 精品综合网在线| www.婷婷| 色五月婷婷亚洲| 五月天婷婷综合网| 99九九精品| 91婷婷五月天综合视频| 亚洲激情综合| 日本在线视频www色| 99久久婷婷五月| 日本成人内射| 亚洲最大成人综合网720P| 激情av| 99ri在线| 色综合五月天| 无套内射极品大美女| 丁香婷婷五色月| 襙逼网| 另类综合激情| 亚洲激情电影五月天色婷婷丁香一起草| 久一网站| 色色色色色综合| 亚洲天堂有码| 超碰国产一区| 欧美人人草草| 日本久久久97| 婷婷日本在线| 99欧美精品99日本精品| 九九色热| 日韩成人电影AV| 丁香五月中文字幕| 碰碰女| 人妻九九九九| 4399在线日本A片| 五月婷婷深深爱| 色99日韩| 亚洲第一第二网站| 深爱五月激情| 五月婷婷六月少妇激情| 欧美婷婷综合| 天天摸天天做天天爱天天爽| 51国精产品自偷自偷综合| 激情五月天激情小说| 日日干日日| 超碰在线观看9| www久久久| 色色色99| 97五月久久丁香婷婷| 久久精品99| 99热这里有精品| 美国少妇性做爰| 色九九中文字幕| 婷婷五月无码| 91精品人妻少妇无码影院| 午夜免费试看| 久久久这里都是精品| 亚洲综合丁香五月| www.婷婷,com| 日本色五月| 色哟哟精品| 99热超碰| 久久桃花网色婷婷| 嫩草AV久久伊人妇女超级A| 亚洲中文字幕AV在线| 淫视馆av三区| 久大香蕉| 婷婷五月色播网| 五月色情网| 九一99| 超碰人人操人人干| 色婷婷综合网站| 亚洲欧美综合7777色亭亭| 天天综合网色欲香| 久久婷婷五月天懂色| 天天日夜夜B久久| 激情亚洲网| 最新色色五月天| 91精品久久久久久久久久| 色婷婷第四色| 六月丁香停| 99热只有精品在线播放| 亚洲操操| 激情五月婷婷综合色播小说| 亚洲无码99| 嫩草AV久久伊人妇女超级A| 超碰婷婷五月| 丁香婷婷六月天| 深爱五月天婷综合| 色色99| 婷婷久久久| 六月激情网| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 九九这里有精品| 精品一二三区久久AAA片| 成人午夜在线视频| 色波激情五月天| 婷婷九月丁香| 五月丁香| 色娸娸综合网| 色婷婷婷综合五月天| 丁香久久五月婷综合| 九九精品热| 色综合中文色综合网| 婷婷五月天亚洲天堂| 夜夜 操无码| 久久R激情| 人人干天天舔| 婷婷五月激情图片| 日韩AV免费看| 亚洲av免费在线| 夜夜干 夜夜操| 久久婷婷伊人| 九热精品| 色婷婷色婷婷五月| 免费看欧美成人A片无码| 91人人超碰在线| va婷婷| 久草热8精品视频在线观看| 成人网在线视频| 密桃激情五月天综合网| 9+1视频网址| 99热加勒比| 欧美日韩aaaa| www..999热久| 丁香五月婷婷影院| 99久热在线精品| 中文资源在线a | 九九成人电影婷婷| 色色婷婷丁香| 蜜臀av粉嫩av懂色av| 日本三级大片| 色婷婷基地| 丁香六月婷婷综合啪啪| 91av传媒高清在线视频网| 成人在线综合| 婷婷色欧美激情| 综合欧美五月婷婷| 五月丁香色婷婷伊人| 人人爱国产| 日本成人综合| 色欲婷婷五月天丁香| 69久久久| 丁香婷婷在线| 熟女少妇内射日韩亚洲| 91艹人| 婷婷深爱五月| 久久9视频| 99免费热视频在线| 日韩狠狠色| 99爱免费视频| 草榴视频黄色网| 欧美狠狠地| 婷婷五月天桃花网| 久久这里只有精品视频26| 啊v视频在线观看| 久久久思思热| 欧美人妻一区二区| 一起草AV| 丁香婷婷色五月| 日韩色色网| 五月婷综合| 另类图片五月天婷婷| 欧美性猛交99久久久久99按摩| 99re热精品在线视频|