免费国产精品自在自线-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热在线播放| 99视频这里有精品| 成人在线观看国产| 丁香五月激情性色郤| 激情五月天色播| 五月天激情综合在线| 人妻久久人妻久久第一区| 久综合4| 激情综合网,婷婷| 五月婷婷基地| 色五月婷婷丁香婷婷| 综合av在线| 亚洲中文丁香| 色色婷婷五月| 婷婷五月色综合| 丁香六月av| 操逼六区| 色五月视频无码播放| http://www.com久久久精品一区| 久狠狠| 91碰碰视频| 91色综合| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 热99视频精品| www.激情五月天.com| 日韩激情人伦人| 免费无码毛片一区二区A片| xxx综合在线| 色婷婷丁香女女| 色色色免费视频| 五月婷婷,六月婷婷| 开心五月网 | 五月婷婷之综合激情| 久久久精品视频79| 九九成人电影婷婷| 大香蕉九九| www,欧美干干干干干干| 五月丁香激情综合啪啪| 99riav 亚洲| 成人在线99| 激情五月天色| 五月丁香色婷基地综合久久| 无码人妻少妇色欲AV一区二区| 天天干com| 99爱99操| 色色综合网。| 成人精品一区日本无码网| 色综合天天天天做夜夜| 97丁香花五月天激情小说| 激情五月丁香五月综合| 色99在线| 久久天堂网| oumeisesewang| 98色丁香五月婷婷综合网| 桃色五月天| 2w在线视频| 99视频在线播放大全| 少妇2做爰HD韩国电影| 激情五月天影院| 免费精品66| 日韩无码系列| 精品少妇人妻AV无码专区偷人 | 婷婷五月成人| 色婷婷情片| 99噜噜噜在线播放| 99热网站| 婷婷综合97| 激情二色月| 另类综合激情| 综合色网站| 亚洲无AV在线中文字幕| 五月婷在线| 久热免费| 天天做天天爱| 天天草比天天爽| 五月激情综合激情五月| 久久欧洲久久| 五月丁香成人网| 超碰激情五月| 五月婷婷婷色| 婷婷丁香精品视频在线观看| 热久综合| 激情五月综合网丁| 国产偷人爽久久久久久老妇APP| 99九九热在线观看| 九九青草热| 婷婷五月天成人综合网| 六月婷婷色宗合| 久久婷婷激情五月天一区二区| 97人人看一| 天天日天天久久青青| www.婷婷五月| 婷婷操逼| 婷婷九月色| 色五婷婷开心缴| 热久久77777| 99碰超| 在线看黄色| 亚洲区在线| 人人摸人人干| 国产精品人人做人人爽人人添| 97久久草草超级碰碰碰| 婷婷五月天AV| 九九黄色网| 日本九九九九| 第五色婷婷| 婷婷五月天激情小说| 蜜桃人妻无码AV天堂三区| 思思热AV| 月婷婷婷婷五月| 99热费观看| 99日韩网站| 欧美综合五月丁香五月天| 婷婷欧美色| www99热| 丁香五月天网站| 熟女网站久久| 性爱综合网| 99热碰碰热| 天天综合 99久久婷婷| 国产第99页| www91色网站| 综合色七七| 亚洲午夜成人av电影网| 影院久久久| www.91AV.com| 久久精品五月天| 色色九九五月天 | 色婷婷在线视频久| 五六月丁香激情视频| 六月丁香综合网| 日日干干天天干| 思思久久96热在精品国产,| 婷婷区日本| 五月综合777| 色综合久久天天综合网 | 99热在线资源| 五月激情婷婷图片基地| 丁香六月婷婷色XXXX| 黄色99网| 思思国产99| 人人摸人人摸| 九月丁香婷婷| 高清资源站日A美A欧亚…| 亚洲熟妇AV乱码在线观看| 色五月色综合| 五月天三级久久| 久99热在线观看| 99热1| 久久久精品视频79| xfplayav在线| 欧美性爱一区| 大地9中文在线观看免费高清| 婷婷综合仓库中文| 人妻久热| 婷婷深爱五月亚洲综合| 婷婷五月天色播| AV在线观看网站| 日日爽日日| 影音先锋女人AA鲁色资源| 四川BBB搡BBB爽爽视频| 91色吧网| va婷婷在线| 看国产探花操逼三级片| 色色色色色色色色综合网| 天天弄天天操| 黄色91在线观看| av网址在线| 婷婷丁香77777| 性99网站| 这里只有精品视频在线| 久久婷婷电影| 色婷婷在线综合色播网| 五月婷婷草| 色色色综合| 成人AV片播放| 九九综合视频在线观看| 亚洲视频色婷婷| 激情五月天婷婷| 四川BBB搡BBB搡多人乱亂| 碰碰碰97免费精彩视频| 狠狠五月丁香色婷| 婷婷情色五月天| 国产精品a无线| 五月天婷婷基地| 久久九九国产精品怡红院| 99综合色色色| 婷婷激情五月天7| 在线可以看的av网址| 色综合中文| 中文字幕中文有码在线| 99热久| 久久婷婷五月天综合| 婷综合| 丁香八月综合激情| 无码G高清天| 综合网啪| 色九月丁香婷婷蜜桃在线观看| 色婷婷影视| 五月天激情啪啪| 婷婷导航| 五月丁香激情综合六月涩涩爱| 婷婷六月开心网| 99热网址| 婷婷之玖玖| 七七九九色色| 九九色色| 99免费热视频在线| 色婷婷五月在线| 五月丁香色色网| www色婷婷com| 5月丁香六月婷婷| 色色色成人网| 99热播放| 啪啪黄页网| 超碰熟女农村在线69| 婷婷久久五月天| 激情五月婷婷视频一区二区三区| 中文字幕91,综合| 婷婷五月天人妻| 99视频内射三四| 一起操 91N.com| 激情五月无码| 婷色五月天| 99日本精品视频热| 一起草Av| 婷婷五月AV| 狠狠xx| 天堂在线观看视频| 人人爽人人爽人人爽人人爽| 亚洲乱码日产精品BD| 超碰人人色| 啪啪色区| 人人97碰| 超碰成人在线观看| 熟女网站久久| 久久9久| 久久9999| 精品久久久999| 婷婷五月色惰| 五月丁香六月婷婷色日| 六月激情丁香一道本7777| 日韩色色视频www| 无码一区精品一区视频| 婷婷免费无视频| 欧美成人AAA片一区国产精品| 五月五婷婷网| 五月天婷婷久久| 69热在线| 久久99热这里只频精品6学生| 五月婷婷深深的爱| 九九成人| 丁香五月婷婷激情123| 九九碰九九爱97超碰| 丁香五月天激情网址| 俺去也五月| 五月天婷婷久久| 综合色播| 欧美天天五月丁香免费观看| 99亚洲精品| 激情精品久久| 青青草伊人婷婷| 五月丁香色婷婷基地| 久久久久久久久久久久久9| 99热网站在线观看| 婷婷五月激情基地| 丁香五月成人社区| www久久艹| 日韩精品一区二区亚洲AV观看| 天天操五月天| 五月天啪啪| 亚洲中文字幕av| 色五月天综合网| 亚洲激情淫网| 久久9情免费| 色五月六月| yazhochengrenavwang| 黄网在线观看免费| 丁香六月婷婷激情综合| 亚洲无AV在线中文字幕| 五月丁查人人| 天天搡日日搡aaaaⅩ| 丁香六月激情综合| 狠狠色五月| 五月天丁香久久综合 | se色99| 国产婷婷色综合AV蜜臀AV| 久久这里只有国产精品视频| 操人视频91| 日本三级中国三级99| 国在线激情网| 淫视馆av三区| 91干| 久久久久久综合五月婷婷| 91国产精品视频播放| 狠狠狠狠狠干| 五月天色婷好好| 亚洲乱码日产精品BD| 国产精品久久7777777精品无码| 久久99jiu9| 久操大| 开心婷婷五月激情网小说| 久操欧美在线观看97| 丁香五月激情啪啪| 这里只有精彩小视频视频网站| 极品人妻VIDEOSSS人妻 | 国产av影片| 看片视频在线免费日产在线看| 91视屏在线观看com.wwwvv| 六月婷欧美丁香综合| 99色| 欧美性丁香色色五月天| www.五月婷婷.com| 激情性爱五月天网页| 中文av网| 色小说婷婷五月天天天| 亚洲午夜Av| 俺去也婷婷| 五月婷婷激情四月| 五月丁香综合网色欲| 97成人在线视频| 激情久久久| 激情美女五月天激情在线| 大香蕉欧美在线| 26uuu国产| 五月丁香色| 无码地址| www99在线观看视频| 丁香五月婷婷姐| 久久婷五月婷| 久久婷狠狠色| 色吧网综合| 婷婷色网| 九九热最新| 性色播| 99热99在线精品| 天天日天天色| 亚洲AV人人操| 婷婷五月天伊人网| 99福利视频| 六月丁香久久| 99热在线资源| 亚洲第一影院高清无码网站| 人与禽A片啪啪| 99热这里只有精品1025| 人妻无码精品一区| 亚洲综合色丁香五月天| 99惹在线精品免费观看| 香蕉婷婷色五月| 欧美婷婷色| 五月激情婷婷在线| 热99精品视频五月| 天天久| 天天草天天爱| 婷婷丁五月| 超碰成人AV| 婷婷婷狠狠| 天天干夜晚夜操| 色色色热| 99re鈥哸鈥唙| 五月丁香狠狠| 五月婷婷免费| 五月丁香六月婷婷综合免| 色激情五月| 五月激情婷婷丁香| 婷婷激情五月天在线| 激情五月天啪啪视频| 97碰| 琪琪色五月天| 久久婷网| 丁香六月婷婷综合欧美| 9久9久| 五月丁香婷婷狠狠操| 欧美丰满熟妇BBB久久久| 亚洲第一黄网| 色色色色色色色色色色色色色97| 色综合另类| 婷婷五月丁香网| 五月天色婷婷图片| 五月婷婷深爱六月| 99久久99热这里只有精品| 五月丁香久久网| 婷香五月| 色色五月天婷婷| 99热在线精品播放| 亚洲精品国产成人AV在线| 亚州操操| 大香蕉九九| 丁香六月久久| 99er这里只有精品| 再次出发二| 99er这里只有精品视频| 丁香六月婷婷缴情欧美| 激情婷婷丁香五月| 精品皮股午夜AV| 色婷婷激情视频| 久色中文| 五月婷婷AV| 婷婷色激情五月天| 五月丁香激情综合网| 久久综合人妻| 91九色熟女| 激情床戏| 五月婷婷深深爱| 色情综合| 亚洲精品无人区| 成人在线观看精品| 欧美碰碰碰| 久久九九re热| 免费亚洲婷婷中文字幕| 亚洲色色色色色| 久久这里只有国产| 99色色最新视频| 婷婷五月天a| 久久开心五月婷婷| 五月天婷婷激情在线色图| 停婷丁五月在线| 99在线视频播放| 婷婷色色五月天| 超碰在线成人| 超碰2021| 人人97碰| 538久久| 丁香五月停停av| 五月丁花六月丁香综合| 亚洲不卡| 极品人妻VIDEOSSS人妻| 五月色亭丁香| caop在线视频| 五月婷婷在线网站| 亚洲激情久久| 午夜丁香婷婷| 日韩婷久| 天天操天天爱天天日| 六月香五月婷| 天天色天天| 六月婷婷色综合| 国产亚洲精品久久久久久郑州| 以及AA大片看看| 大伊香蕉玖玖爱| 伊人五月天综合网| 婷婷瑟瑟五月天| 香蕉国产2013| 苗黎美女四级成人版一级二级毛片| 丁香六月欧美| WWW,五月天| 激情美女五月天激情在线| 日日干日日| 久久久久久久人妻| 96色婷婷| 色五月婷婷五月丁香五月激情五月视频 | 91oumei| www.zbzhongsen.com| 婷婷免费无视频| 思思热在线| 五月综合色| 国产乱轮一区二区三区| www色色com| 色噜噜狠狠狠综合曰曰曰| 日韩人妻无码精品| 激情色五月天| 秋霞免费三级片| 99成人小视频| 日本色婷婷| 五月深情久久| 色亭亭五月天网扯| 婷婷五月花| 国内自拍97在线| 五月激情啪啪啪| 26uuu欧美宗合| 香蕉综合网| www.亚洲激情.com| 丁香五月天大香蕉啪啪| 免费观看亚洲AV片| 天天舔天天操| 免看黄大片AA | 任你擦免费视频| 激情五月丁香在线观看直播| 91九色精品熟女内射| 婷婷亚洲在线| 亚洲综合网激情五月天| 婷婷香五月天| 98永久精品| 婷婷成人综合五月| 97碰在线视频| 亚洲AV综合网| 人妻精品一区二区三区| 婷婷影院A成人| 综合亚洲六月婷婷在线| 97色啪| 禁片二区| 九九热视频免费的| EEUSS鲁片一区二区三区| 久久五月天视频| 五月激情婷婷六月| 伊人婷婷福利网| 综合久久婷婷五月丁香| 欧美熟女99| 激情五月天99色| 9这里只有精品| 久久五月婷| 97资源欧美日韩大香蕉超碰一区| www.五月丁香| 色yeye欧美| 五月色丁香婷婷中文字幕| 人妻久久久久久久 | 婷婷成人网五月天| 婷婷精品免费久久| 九色PORNY自拍成人精彩视频| 热久久99热欧美国产亚洲| 国产午夜成人免费看片无遮挡| 99久久精| 天天激情站| www.97碰碰com| 激情六月色| 婷婷六月偷拍| 99热99这里只有精品| 日日躁夜夜躁狠狠久久AV| 久久亚洲A| 中文字幕在线免费观看视频| 97在线视频人妻九色| 噜噜噜久久| 99啪在线视频| 亚洲五月婷婷| 91久久色| 操操自拍| 日本综合久久| 777色色色| 99久.| 超碰在线人人| 九九色热| 五月天丁香| 亭亭玉立国色天香| 色99色| 国产99精品免费视频| 久热9| 色五月无码| 狠狠色色| 伊人狠狠综合| 97亚洲精品| 橾逼网| 五月亭亭欧美女人| 99乱视频| 99热国产| 婷婷伊人綜合中文字幕小说| 高清无码一区二区三区四区| 天天综合网~91| 狠狠色婷婷777| 狠干综合| 色婷五月| 极品 少妇 内射| 国产一二区爆乳_1国产日韩一区二区三-成人AV| 五月丁香六月婷婷中文版| 亚洲电影在线观看| 亚洲热久久| 亚洲无码黄色| 欧洲亚洲精品| 成人狠狠成人狠狠成人狠狠成人狠狠 | 99re在线这里只有精品视频首页| 婷婷五月天性爱视频| 狠狠摸狠狠摸| 亚洲成人综合在线| 99精品国产在热久久| 婷婷爱婷婷| 丁香五月九九| 这里只有精品免费视频| 日韩AAA| 丁香六月天婷婷| 国产.亚洲.欧洲视频在线| 丁香婷婷大香蕉| 日本欧美成人片AAAA| 丁香5月啪啪| 狠狠色婷婷丁香五月| 婷婷综合五月| 夜夜操夜夜爽| 亚洲成人av在线观看| 欧美 日韩 成人| 全亚洲最大的婷婷五月天网站COM| 精国产品一区二区三区A片| 五月天色婷婷基地| 综合99久久| 亚洲精品久久久久AV无码| 丁香五月激情婷婷| 久久人操| 精品二区| www.91久久| 五月丁香婷婷激情| 99热热这里只精品996小说| 欧美性爱五月天| 色狠狠色综合| 久久久婷婷| 五月丁香花成人社区| 色噜噜狠噜噜视频| 思思久久精品视频| 亚洲AV无码一区二| 欧美色综合天天久久综合精品| 色五月六月| 成人五月天综合网| 91九色在线观看免费| 思思久久精品| 婷婷色五月在线视频| www.色婷婷| 亚洲丁香花五月丁香花| 五月丁香久久综合| 亚洲激情97五月天| 丁香五月天在线视频| 久久综合香蕉国产国产蜜臀AV| AV电影在线播放| 色丁香五月婷婷在线| 日本色色图| 欧美久久久中文字幕| 99热在线精品观看| 丁香婷婷月| 极品 少妇 内射| 九九色综合网| 大香伊人婷婷影院| 亚洲精品久久久无码| 婷婷欧美激情综合| 五月色丁香视频精品| 涩涩五月天综合| 国产资源在线视频| 另类婷婷五月天啪帕帕| 99九九久久| 色婷婷偷拍| 九九无码视屏| 婷婷区日本| 99啪啪视频| 欧美激情久| 激情小说色五月| 天天爱天天操| 大香蕉五月丁香| 天天插综合| 五月天婷婷色小说| 久久黄色网扯| 五月丁香美女视频| 97人人操| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 五月婷婷无码| 色婷婷偷拍| 欧美日本va| 26UUU在线观看| 免费AAAAA网| 久久五月天色婷婷| 日韩有码久久| 超碰丁香五月| 99碰碰碰| 超碰免费人人肏| 欧美 日韩 人妻 高清 中文| 成人在线视频网| 久久9精品| 综合网啪| 五月婷婷视频在线观看| 十月色综合| 丁香婷婷中文字幕| 综合五月激情网| 99热这里精| 婷婷 激情 五月| 久久永久网址| 色很很96| 日本怕怕视频| 激情五月第四色| 激情文学 综合 色| 韩日在线熟女| 天天天天天天天干| 97丁香花五月天激情小说| 伊人久久艹| 91干| www.天天色综合| 狠狠色丁香久久久婷| 久热超碰| 婷婷六月丁香综合| 这里只有精9| 欧美日韩大黄| 色五月五月天| 色婷婷五月天天天干天天操天天爽| 五月天色婷婷视频| 五月丁香色婷| 丁香涩涩爱| 五月天色影院| 日本欧美国产| 欧美性爱五月天| 色色色成人网| 国产精品久久久久久久久久| 人妻熟人中文字幕一区二区| 日韩精品视频中文字幕| 日韩啪啪视品| 久久一伦| 九色七七| 久久只有精| 丁香婷婷免费| 激情久久综合网| 天天激情站| 婷婷五月色色| 激情五月综合婷婷| 青青久在线视频免费观看| 国产真实乱对白精彩| 一本色道久久综合狠狠躁一二三| 婷婷五月天大香蕉在线视频观看| 婷婷激情五月视频| 久操大香蕉| 天堂爱爱| 79色色色色| 激情五月天婷婷| 99热在线精品观看| A片试看50分钟做受视频| 区欧美日韩成人| 操逼巨乳91| 另类视频在线| 五月天激情中文字幕| xxx.色婷婷| 色欲丁香| 九九视频在线观看视频6| 天啪天啪天啪天啪| 超碰97人人操| 99热在线中文字幕| 色色色网站| 亚洲中文乱字字幕在线永久| 操B视频在线播放| 久热久操久热久草国产91| 丁香六月婷婷| 丁香综合网| 玖玖爱综合网| 国产亚洲精品久久久久久久久动漫 | 中文字幕有多少字| 97婷婷在线| 九九综合久久丁香婷婷,开心激情综合网| 五月婷深深爱激情网| 亚洲色婷婷五月天| 成人看片网站| 婷婷伊人綜合| 电影《战争与艾拉》免费观看| 五月婷婷之美女图片| 91干| 六月婷婷天堂| 亭亭玉立国色天香| 五月天婷婷无码视频| Av大香蕉| 91九九热| 色婷婷内射| 五月丁香六月婷婷激情视频在线观看免费 | 久久精品视频99| 热久久国产视频| 综合大香蕉| 人人妖人人97| 99色色热| 五月天偷拍| 国产69久久久欧美黑人A片| 超碰99热精品| 五月婷婷色情| 丁香五月五月婷婷| 亚洲第一av| 五月婷庭丁香在线| 九九热99视频| 91窝窝| 天天色天天干天天插| 欧美性爱一区| 狠狠狠狠狠狠草| 亚洲五月丁香综合网| 五月婷婷69| 99视频| 97人人超| 丁香五月天亚洲视频| 丰满少妇猛烈A片免费看观看| 激情六月丁香| 丁香婷婷深情五月亚洲| 亚洲精品一区中文字幕乱码| 大香蕉五月天婷婷| 国产精品久久久海的味道| 国产午夜成人免费看片无遮挡| 日本久久人人| 五月婷婷成人| 伊人在线另类| 激情婷婷亚洲五月| 99亚洲天堂| 七月激情六月婷婷综合在线播放| 婷婷日日天天| 六月丁香啪啪啪| 色综合网址| 天天天天干| 色色六月| 色五月婷婷丁香婷婷| 日韩成人网址| 人人97碰| 日韩另类在线观看| 99色在线免费观看视频| 秋霞影音91人妻久久| 色五月综合| 色色婷| 欧美三级欧美一级| 2020日日干| 97色色色色色| 色婷小说| 2025年最新亚洲在线欧美| 无码激情AAAAA片-区区| site:minyis.com| 婷婷六月丁| 97碰超级人人看| 色情五月婷| 9精品视频在线| 婷婷六月激情| 成片免费观看大全| 亚洲视频伍月婷婷| 久久久五月天婷婷| 五月天久久综合婷婷丁香| 色五月亚洲| www.五月天。com| 色婷婷成人做爰A片免费看网站| 成人操呦av| 久久久久久久人妻| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 天天操天爱综合| 婷婷在线网| 色婷婷五月婷婷五月婷婷五月| 精品国产AV色一区二区深夜久久| 五月色亭丁香| 国产欧美熟妇另类久久久| 99爱欧美| 日本精品人妻无码77777| 国产寻花在线| 久爱综合| 中文字幕色色色| 另类婷婷五月天啪帕帕| 色婷婷五月天视频在线| 伊人五月天久久| WWW.17C亚洲精品| 日本一级特黄大片AAAAA级| 色婷婷伊人| 婷婷久久综合久| 九九热精品在线| 月婷婷亚洲| 五月婷婷涩涩爱| 停停五月天激情网| 一区二区三区四区牛| 六月丁香啪啪啪| 五月婷婷色综图片| 中文AV网站| 欧美婷婷五月无砖| 色五月,com| 亚洲狠狠干| 激情图片婷婷| 五月开心久久| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 五月天偷拍| 91色五月| 伊人激情AV一区二区三区| 99日热在线视频| va亚洲中文在线| www,超碰| 丁香五月六月综合激情| 五月丁香六月婷婷亚洲激情综合| 色播jjjj| 欧美性爱中文字幕| 五月色情婷婷| 无码视频国内精品久久久| 另类五月激情| 99九九热在线观看| 噼里啪啦在线观看免费完整版视频 | 婷婷大香蕉| 久久九九蜜| 久操干| 91狠狠综合久久久| 伊人五月成人| 五月丁香啪综合| 婷婷五月天av| 五月婷婷六月丁香色| www.五月天色色.com| 色啪网| 夜丁香综合| 日本一道久久| 精品人妻在线免费观看| 99热这里| 日本狠狠爽| 五月婷婷精品| 激情丁香五月| 91精品综合久久久久久五月丁香 | 亚洲天堂久久| 天天干天天干天天干天天干天| 99热日| 色一情一乱一伦一区二区三区| 亭亭五月色男人| 欧美噜噜噜草| 五月婷婷黄网站大全| 婷婷久久久久| 精品怡红九九九| AV在线免费网站| 性生生活大片又黄又| 婷婷综合一二三| 丁香 婷婷五月| 影音先锋偷偷色男人站| 色五月激情网| 五月天婷综合| 婷婷中文字幕版| 玖玖在线视| 久久加勤综合| 天天干天天干天天干天天干天天干| 婷婷五月天激情五月天| 99热婷婷| 成人免费网站免费看| 成人AV在线电影| 99这里有精品| 天天日夜夜操五月| 欧美三级欧美一级| 精品婷婷丁香五| 久久人妻精品| 大天天伊人| 久久99热精品a片在线观看| 婷婷99中文字幕| 色情激情五月婷婷| www.久久| 丁香五月激情啪| 国语精品探花| 五月婷婷伦理| 久久 婷婷 五月天| 久久婷婷网址| 免费视频无码| 亚洲网视屏| 夜夜撸天天操| 森林影视大全,最好看的2019年视频 | 人妻无码精品一区| 色色色成人网| 天天日夜夜夜操操操操| 婷婷五月天av| 久久9999| 婷婷色色色| 免费观看欧美成人AA片爱我多深| 99人人干| 99热在线播放| 日本操逼九九九九58日本操逼| 立川无码av| 婷婷五月天综合网| 国内久久亭亭| 最熟少妇乱码| 丁香五月激情久久麻豆| www.婷婷| 九九热超碰| 九九视屏| 无人精品在线视频| 五月婷婷激情综合拍| 久久性爱视频免费| 国产韩日亚洲美州欧亚综合在线| www.yw色| 狠干综合| 亲子乱av一区二区三区的| 超碰在线观看三级片| 亚洲第一综合| 五月天偷拍| 婷婷综合激情| 婷婷久久五月丁香| 国产免费一区二区三区三州老师F1F1.CC| 丁香六月伊人| 丁香五月婷婷激情中文| 99久久成人| 黄色99网| 六月伊人婷婷| 婷婷在线操| 五月天激情网图片 - 百度| 丁香五月婷婷久久综合激情网| av色婷婷| 五月丁香性爱| 97狠狠色| 激情五月综合网最新| 久99久热| 激情综合五| 久久永久视频| 午夜色婷婷| 亚洲五月婷婷| 日本色色网| 天天操夜夜爽天天操| 热99国产精品| 婷婷综合另类小说| 婷婷丁香五月天色播网站| 天天人人综合| 久久ER视频com| 桃色伊人在线| 秋霞电影理论| 99久久精品视频女神1| 丁香婷婷十月| 婷婷五月天激情免费在线观看| 欧美婷婷五月丁香| 五月婷婷之综合激情| 久久人妻人人| 欧美激情综合色综合啪啪五月| 在线观看欧美| 香蕉久久国产AV一区二区| 久热婷婷| www.久久久久| 被强行糟蹋的女人A片| 欧美A级成人婬片免费看理论| 丁香8月手机综合| 天堂网操| 综合伊人久久| 99色网站| 五月天天丁香婷婷在线中| 一區四區歐美日韓| 亚州精品久久久久AV无码| 五月天婷婷无码视频| 日日操天天操| 久热大香蕉| 狠狠操狠狠| 99re8热精品免费视频| 热久久这里只有三级视频| 色日本综合| 亚洲成人综合在线| 欧美天天综合网站上去吧| 可以免费看的av网站| 亚洲精品国产精品乱码视99| 97在线/亚洲| 狠狠干综合| 久久人妻超碰一区| 亚洲热久| 婷婷香香五月| 美女激情婷婷| 亚洲va欧美va天堂v国产综合| 激情综合在线观看| 婷婷综合网站| 性爱技巧五月| 欧美激情综合色综合啪啪五月| 婷婷五月综合色中文字幕| 五月丁香六月激情综合在线| 九九热99热| 插插插丁香五月婷婷| 色5月婷婷| 99热99美国在线观看| 久久综合人妻| 丁香婷婷五月份| 99视频91| 天天日日人| 激情五月天色婷婷| 色色色婷婷五月天| 熟妇人妻中文字幕无码老熟妇| www.婷婷五月天,com| 久久9久| 久99久热只有精品国产99| 天天日天天干天天操| 五月婷婷开心网| 丁香婷婷婷| 91久久久久久| 99热这里只有精品 搜| 91丁香五月| 成人精品视频99在线观看免费| 97超碰欧美中文字幕| 99久久精彩视频。| 深情五月天| 精品色色| 久啪欧美| 婷婷五月天视| 草五月| 丰满少妇猛烈A片免费看观看| www.99免费视频| 最新午夜理论片| 亚洲激情综合| 麻豆WWWCOM内射软件| 97五月婷婷| 天天爽人人爽| 丁香六月激情| 久久涩视频| 久久五月天色婷婷| 99A片| 国产精品久久久久久久久久免费| 久久激情天堂| 夜夜夜夜操| 91九色精品女同系列| 91919191919久久成人视频| 欧洲综合视频| 亚洲99精品欧美一区| 婷婷五月天伊人| 91精产一区三区免费观看| 无码激情精品色婷婷久久久久| 七七九色| WWW.五月com| 日韩无码一区二区三区四区| 99啪啪网| 精品九九久久| 99这里只有免费的小视频在线观看| 天天操天天插| 操91综合网| 亚洲激情图文小说| 99久在线精品| 五月丁香大相交| 久久婷婷成人综合色怡春院| 亚洲熟妇AV乱码在线观看| 亚州操操| 五月婷婷啪| 亚洲中文字幕在线观看| 久热欧美| 97色操| 婷婷五月丁香综合瑟瑟| 另类图片五月天婷婷| 欧美97色| 婷婷五月天久久综合88| 99综合免费视频| 风流少妇A片一区二区蜜桃| 五月丁香婷婷色| 五月丁香综合影院| 亚洲影院婷婷色| 婷婷五月天人妻| 99热18| 色色五月婷婷| 影视av久久久噜噜噜噜噜三级| 久久久久久久,99精品视频| 丁香色啪综合| 亚洲高清在线| 欧美日韩成人| 天天搡日日搡aaaaⅩ| 中文在线成人| 夜夜撸天天操| 五月天激情亚洲| A A色色| AA片在线观看视频在线播放| 开心五月六月婷婷| 久久五月综合| AV在线免费播放| 超碰二区| 超碰在线国产9| 无码动漫av| 婷婷终合色图| 色五月婷婷五月| 成人 九九九九| 五月天激情AV| 91碰碰碰久久久久| 国语精品探花| 日本在线观看99| 五月婷婷久久网| 色爆五月| 激情都市五月天| 丁香五月天成人| 丁香五月人妻熟女| 久99999热视频在线观看免费| 深爱激情小说五月婷婷| 亚洲精品一区中文字幕乱码| 色七色九九| 国产美女无遮挡裸体毛片A片| 丁香五月婷婷少妇| 伊人激情AV一区二区三区| www.99热国产| 98国产精品综合一区二区三区| 六月婷五月丁香| 国产精产国品一二三在观看| 99热首页在线30| 色五月丁香com| 亚洲五月天婷婷在线| 久热精彩视频98| 亚洲精品国产精品乱码视99| 亚洲蜜乳AV| 玖玖婷婷色五月| 九色91美女| 9+1视频网址| 婷婷免费精品视频| 99国产精品白浆在线观看免费 | 97碰碰碰免费公开在线视频| 天色综合网站| 久久R激情| 激情五月色在线播放| 狠狠久综合| 99九九热在线观看| 丁香久久综合| 女人露出p毛视频www网站| 综合久久99| 大香蕉啪啪啪| 亚洲色婷婷色| 欧美性生交XXXXX无码小说| 五月丁香婷庭在线| 狠狠色丁香久久综合婷婷亚洲成人福利 | 久久永久视频| 丁香五月天欧洲在线| 精品人妻伦九区久久AAA片| 日韩av干| 久久婷婷电影| 亚洲AV网址| 六月丁香成人| 99热亚洲只有色| 婷婷色六月| 九九热黄色| 国产亚洲精品久久久久苍井松| 久久婷婷五月综合色丁香| 婷婷五月中文字幕| 丁香五月电影| 伊人五月网| 色综合久久综合| 婷婷五月天成人| 丁香五月激情六月| 91丨九色丨国产在线| 色婷婷基地| 五月婷综合性中心| 色原狠狠综合| 夜夜操天天干| 日日懆天天懆| 久久天堂| 亚洲午夜AV| 91精品久久久久久综合五月天| 七七九色| 中文字幕无码人妻少妇免费视频 | 人人操超碰| 99欧州偷拍视频| 日本va网站| 五月天丁香综合在线| 婷婷五月综合网| 亚洲综合狠狠艹| 99碰网站| 亚洲A片成人无码久久精品青桔| 色五月天电影| 久久五月天激情婷婷| 久久久色情| 五月婷婷激情久久| 婷婷五月天另类网站| 综合久久综合久久| 色五月婷婷777| 综合99综合久久久久久久| 亚洲综合丁香婷婷六月天| 日韩久综合| 国产99久久久国产精品免费看| 久久99激情丁香婷婷小说网| 国产精品电影| 99精品手机在线视频| 99啪啪| 丁香六月成人| 玖玖伦理电影| 婷婷五月丁香超碰| 青草青草视频2免费观看 | 97人妻碰碰碰久| 婷婷不卡基地| 99日韩| 婷婷五月天成人| 色婷婷五月天天天天天天天天天| 激情亭亭五月| 91无码色色| 五月婷婷激情网| 五月丁香操亭亭网| 5月色婷婷| 91肏| 人人摸人人干| 六月婷婷综合| 五月激情小说| 日日夜夜噜噜爽爽| 婷婷色婷婷| 99热久久日本| αv中文字幕在线观| 亚洲日日操| 特级西西4444www无码| 久久奄也去色色网站| 综合AV在线| 9 1 A v久久久| 精品香蕉99久久久久网站| 激情四射五月天| 婷婷五月天开心网| 亚洲综合五月天综合| 久久久18| 国产九九一区二区三区| 久久婷婷午夜| 成人丁香五月| 变态另类9| 99热免费看| 天天摸夜夜爽天天做| 66精品国产成人| 天天日夜夜欢| 99玖玖精品| 天天日色情| 中文字幕在线免费看线人| 色色激情五月天| 97五月久久丁香婷婷| 丁香五月婷久久| 国产成人va在线| 国产va在线视频| 色一区高清| 久色网| 成人婷99最新|