精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么使用工作流引擎,什么是工作流引擎,工作流引擎選型以及如何使用

開發(fā) 前端
反證法,如果不使用工作流引擎,先以請(qǐng)假流程舉例,從頭開始開發(fā)流程的業(yè)務(wù)邏輯:(來看看會(huì)出現(xiàn)哪些問題?使用工作流能解決哪些問題?又會(huì)帶來什么問題?)

[[428836]]

本文轉(zhuǎn)載自微信公眾號(hào)「Java大廠面試官」,作者laker 。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java大廠面試官代碼眾號(hào)。

為什么使用工作流引擎?

反證法,如果不使用工作流引擎,先以請(qǐng)假流程舉例,從頭開始開發(fā)流程的業(yè)務(wù)邏輯:(來看看會(huì)出現(xiàn)哪些問題?使用工作流能解決哪些問題?又會(huì)帶來什么問題?)

一、業(yè)務(wù)流程梳理

“流程定義可能是hardcoding或者存儲(chǔ)在某張表

  1. 總經(jīng)理審批
  2. 結(jié)束
  3. 結(jié)束
  4. 員工發(fā)起請(qǐng)假單
  5. 組長(zhǎng)審批
  6. 請(qǐng)假天數(shù)小于等于2天
  7. 請(qǐng)假天數(shù)大于2天

二、每個(gè)節(jié)點(diǎn)都要記錄當(dāng)前操作人和判斷下個(gè)節(jié)點(diǎn)

  • if(day>2)
  • 總經(jīng)理審批 (記錄誰(shuí)發(fā)起的以及判斷下個(gè)節(jié)點(diǎn))
  • 結(jié)束
  • if(day<=2)
  • 結(jié)束
  • 同意或者拒絕
  • nextUserId根據(jù)上面的流程定義獲取
  • 存入transfer狀態(tài)流轉(zhuǎn)表, userId nextUserId等 驅(qū)動(dòng)到下一個(gè)節(jié)點(diǎn)
  • 員工填寫請(qǐng)假單并提交
  • nextUserId根據(jù)上面的流程定義獲取
  • 存入leave表,創(chuàng)建人,創(chuàng)建時(shí)間
  • 存入transfer狀態(tài)流轉(zhuǎn)表, userId nextUserId等 驅(qū)動(dòng)到下一個(gè)節(jié)點(diǎn)
  • 員工發(fā)起請(qǐng)假單 (記錄誰(shuí)發(fā)起的以及判斷下個(gè)節(jié)點(diǎn))
  • 組長(zhǎng)審批 (記錄誰(shuí)發(fā)起的以及判斷下個(gè)節(jié)點(diǎn))
  • 請(qǐng)假天數(shù)小于等于2天 (記錄誰(shuí)發(fā)起的以及判斷下個(gè)節(jié)點(diǎn))
  • 請(qǐng)假天數(shù)大于2天 (記錄誰(shuí)發(fā)起的以及判斷下個(gè)節(jié)點(diǎn))

如果再來個(gè)用車流程、報(bào)銷流程等,那么你的項(xiàng)目將無法維護(hù)

不使用工作流存在以下問題

  • 流程設(shè)計(jì)沒有可視化
  • 流程沒有版本管理,熱部署等
  • 每個(gè)活動(dòng)的流轉(zhuǎn)都需要硬性判斷下一步活動(dòng)節(jié)點(diǎn)及其操作人
  • 每次操作都需要維護(hù)業(yè)務(wù)數(shù)據(jù)和流程的相關(guān)數(shù)據(jù)
  • 缺乏數(shù)據(jù)管理、流程監(jiān)控等功能

工作流優(yōu)缺點(diǎn)

對(duì)上面共性問題進(jìn)行抽象,抽象,抽象,可以得出下面的視圖。

把業(yè)務(wù)和流程進(jìn)行了抽象分離,降低耦合,

優(yōu)點(diǎn)

  • 具有可視化的流程設(shè)計(jì)工具
  • 業(yè)務(wù)數(shù)據(jù)和流程數(shù)據(jù)的分離,可以進(jìn)行更專注的性能優(yōu)化,業(yè)務(wù)劃分
  • 內(nèi)置API能很好的完成常見的功能場(chǎng)景
  • 具有完善的流程監(jiān)控體系
  • 具備大量的自定義擴(kuò)展接口

缺點(diǎn)

需要額外的學(xué)習(xí)成本

什么是工作流引擎

所謂工作流引擎是指workflow作為應(yīng)用系統(tǒng)的一部分,并為之提供對(duì)各應(yīng)用系統(tǒng)有決定作用的根據(jù)角色、分工和條件的不同決定信息傳遞路由、內(nèi)容等級(jí)等核心解決方案。工作流引擎包括流程的節(jié)點(diǎn)管理、流向管理、流程樣例管理等重要功能。(來自百科)

嘗試自己構(gòu)建工作流引擎

以下內(nèi)容取自:https://www.cnblogs.com/duck-and-duck/p/14436373.html

并進(jìn)行了部分修改。

第1天

我查了一天啥是工作流,然后做出了如下版本:

按順序添加任意個(gè)審批人組成一個(gè)鏈表,最后加一個(gè)結(jié)束節(jié)點(diǎn)

記錄當(dāng)前審批人,當(dāng)審批完后,審批人向后移動(dòng)一位

當(dāng)審批人對(duì)應(yīng)結(jié)束節(jié)點(diǎn)時(shí),流程結(jié)束

“每個(gè)節(jié)點(diǎn)執(zhí)行人是hardcoding的

第二天

發(fā)現(xiàn)部分業(yè)務(wù)需要支持會(huì)簽節(jié)點(diǎn)。

我又查了一天啥是會(huì)簽節(jié)點(diǎn),發(fā)現(xiàn)會(huì)簽節(jié)點(diǎn)就是一個(gè)大節(jié)點(diǎn),里面有很多審批人,當(dāng)這個(gè)大節(jié)點(diǎn)里的所有人都審批通過后,才能進(jìn)入下一個(gè)節(jié)點(diǎn)。

翻了原來的鏈表式設(shè)計(jì):

第三天

發(fā)現(xiàn)部分業(yè)務(wù)需要支持條件節(jié)點(diǎn)。

要根據(jù)表單的內(nèi)容確定下一步進(jìn)入哪個(gè)分支。

第四天

審批人多加兩種類型,比如可以從表單中選擇下一個(gè)審批人,還有根據(jù)發(fā)起人不同選擇不同的審批人。

第五天

需要滿足xxx需求,卒。。。

“看來實(shí)現(xiàn)一個(gè)工作流引擎還是蠻難的,那有什么可選的輪子嗎

有哪些選型方案呢

工作流整體流程如下:

建模(事前) 運(yùn)行 (事中) 管理 (事后) 監(jiān)控(全生命周期)
流程設(shè)計(jì) engine驅(qū)動(dòng) 數(shù)據(jù)管理 流程監(jiān)控

基于bpmn標(biāo)準(zhǔn)進(jìn)行流程定義

什么是BPMN

BPMN 是 Business Process Modeling Notation 的簡(jiǎn)稱,即業(yè)務(wù)流程建模與標(biāo)注。BPMN 定義了一個(gè)業(yè)務(wù)流程圖,這個(gè)流程圖被設(shè)計(jì)用于創(chuàng)建業(yè)務(wù)流程操作的圖形化模型 。而一個(gè)業(yè)務(wù)流程模型( Business Process Model ),指一個(gè)由圖形對(duì)象( graphical objects )組成的網(wǎng)狀圖,圖形對(duì)象包括活動(dòng)(activities) 和用于定義這些活動(dòng)執(zhí)行順序的流程控制器( flow controls )。

代表實(shí)現(xiàn)產(chǎn)品如下:

  • JBPM
  • Activiti
  • Flowable

國(guó)產(chǎn)自定義

  • snaker
  • jflow

如何使用SnakerFlow工作流

僅列出常見功能場(chǎng)景實(shí)現(xiàn),具體介紹和詳情文檔參見:Spring Boot 集成SnakerFlow流程引擎,簡(jiǎn)介、功能列表、詳細(xì)解讀、擴(kuò)展點(diǎn)分析

“?? ?? ?? 已開源基于SnakerFlow輕量級(jí)工作流引擎的腳手架項(xiàng)目 easy-admin

“詳情參見:終于寫了個(gè)開源項(xiàng)目,easy-admin 為打造一款簡(jiǎn)單、輕量級(jí)的后臺(tái)管理系統(tǒng)腳手架

以請(qǐng)假流程來看下數(shù)據(jù)庫(kù)中數(shù)據(jù)流轉(zhuǎn)情況

相關(guān)源碼已開源

已開源基于SnakerFlow輕量級(jí)工作流引擎的腳手架項(xiàng)目 easy-admin

詳情參見:終于寫了個(gè)開源項(xiàng)目,easy-admin 為打造一款簡(jiǎn)單、輕量級(jí)的后臺(tái)管理系統(tǒng)腳手架

初始狀態(tài)

wf_process

員工發(fā)起請(qǐng)假申請(qǐng)

  1. args.put("user1", StpUtil.getLoginIdAsString()); 
  2. args.put("user2""yang"); 
  3. args.put("user3""zhang"); 
  4. Object day = args.get("day"); 
  5. if (day != null) { 
  6.     args.put("day"Integer.valueOf((String) day)); 
  7. }b 
  8. snakerEngineFacets.startAndExecute(name, version, StpUtil.getLoginIdAsString(), args); 

員工laker發(fā)起一個(gè)請(qǐng)假單,請(qǐng)假3天

laker的待辦列表為空,已辦列表如下:

yang的待辦列表如下:

當(dāng)前監(jiān)控流程圖

wf_order

wf_task

wf_task_actor

wf_hist_order

wf_hist_task

wf_hist_task_actor

常見功能

流程標(biāo)題

我們經(jīng)常希望待辦任務(wù)列表有一列是流程實(shí)例的名稱,即標(biāo)題,例如,我們希望流程的標(biāo)題是:張三 - 2019-12-04 16:40:20的請(qǐng)假申請(qǐng) ,通常會(huì)采用一個(gè)命名規(guī)則:發(fā)起人+發(fā)起時(shí)間+流程模型名稱把它作為流程的標(biāo)題。這時(shí)候就希望啟動(dòng)流程實(shí)例時(shí)可以設(shè)置流程實(shí)例的名稱。

  1. args.put(SnakerEngine.ID, "張三 - 2019-12-04 16:40:20的請(qǐng)假申請(qǐng)"); 
  2. snakerEngineFacets.startAndExecute(name, version, StpUtil.getLoginIdAsString(), args); 

發(fā)起申請(qǐng)

  1. args.put(SnakerEngine.ID, "張三 - 2019-12-04 16:40:20的請(qǐng)假申請(qǐng)"); 
  2. snakerEngineFacets.startAndExecute(name, version, StpUtil.getLoginIdAsString(), args); 

我的發(fā)起

  1. QueryFilter filter = new QueryFilter(); 
  2. filter.setOperator(operator); 
  3. filter.orderBy("create_Time").order(DESC); 
  4. snakerEngineFacets.getEngine().query().getHistoryOrders(page, filter); 

我的待辦

  1. Page<WorkItem> page = new Page<>(30); 
  2. snakerEngineFacets.getEngine().query().getWorkItems(page, 
  3.         new QueryFilter().setOperator(operator)); 

我的已辦

  1. Page<WorkItem> page = new Page<>(30); 
  2. snakerEngineFacets.getEngine().query().getHistoryWorkItems(page, 
  3.         new QueryFilter().setOperator(operator)); 

催辦

  1. List<Task> tasks = snakerEngineFacets.getEngine().query().getActiveTasks(new QueryFilter().setOrderId(orderId)); 
  2. 根據(jù)這個(gè)task跟指定人發(fā)消息 

轉(zhuǎn)辦

轉(zhuǎn)辦任務(wù)(換當(dāng)前辦理人,或者叫變更當(dāng)前辦理人)

  1. snakerEngineFacets.transferMajor(taskId, operator, nextOperators); 

駁回

駁回/退回上一步/退回至(即退回到歷史某一個(gè)節(jié)點(diǎn))

  1. snakerEngineFacets.executeAndJump(taskId, operator, args, nodeName); 

撤回

根據(jù)歷史任務(wù)id,撤回由該歷史任務(wù)派發(fā)的所有活動(dòng)任務(wù),如果無活動(dòng)任務(wù),則不允許撤回

  1. snakerEngineFacets.getEngine().task().withdrawTask(taskId, operator); 

抄送

實(shí)例的抄送類似于郵箱里面的抄送功能,一般用于將該流程實(shí)例抄送給領(lǐng)導(dǎo)查閱。

  1. 新增表wf_cc_order根據(jù)實(shí)例id、創(chuàng)建人、抄送人創(chuàng)建抄送記錄engine.order().createCCOrder(String orderId, String creator, String... actorIds)更新狀態(tài)用于更新抄送記錄為已經(jīng)閱讀engine.order().updateCCStatus(String orderId, String... actorIds)     

加簽

加簽(增加另一人或多人的審批)

  1. engine.task().addTaskActor(String taskId, 1, String... actorIds) 

會(huì)簽

會(huì)簽(通常用于審批后給相關(guān)的人簽字確認(rèn),以獲得工作上的協(xié)調(diào)。)

snaker的會(huì)簽?zāi)壳跋鄬?duì)比較簡(jiǎn)單,僅僅是根據(jù)任務(wù)節(jié)點(diǎn)的performType屬性值確定是否產(chǎn)生多個(gè)相同任務(wù)。

performType的值有兩種,分別是ANY、ALL。

ANY多個(gè)參與者時(shí),任何一個(gè)完成任務(wù)即繼續(xù)流轉(zhuǎn) (或簽)

ALL多個(gè)參與者時(shí),所有都需要完成任務(wù)才能繼續(xù)流轉(zhuǎn)

會(huì)簽只需要在流程定義時(shí),將任務(wù)節(jié)點(diǎn)的屬性performType值設(shè)置為ALL即可,當(dāng)調(diào)用api時(shí)傳遞多個(gè)參與者時(shí),則自動(dòng)派發(fā)與參與者數(shù)量相同的任務(wù)。會(huì)簽任務(wù)必須等待所有參與者完成后,才繼續(xù)流轉(zhuǎn)

或簽

同上

 

已開源基于SnakerFlow輕量級(jí)工作流引擎的腳手架項(xiàng)目 easy-admin詳情參見:終于寫了個(gè)開源項(xiàng)目,easy-admin 為打造一款簡(jiǎn)單、輕量級(jí)的后臺(tái)管理系統(tǒng)腳手架

 

責(zé)任編輯:武曉燕 來源: Java大廠面試官
相關(guān)推薦

2023-01-04 08:02:16

工作流架構(gòu)設(shè)計(jì)

2023-07-05 09:48:44

Activiti部署

2011-12-14 09:58:58

JavajBPM

2009-06-11 14:43:34

jbpm工作流引擎jBPM搭建

2015-07-14 09:26:28

微型工作流引擎設(shè)計(jì)

2024-10-17 08:39:32

2023-08-02 18:48:23

Flowable工作流引擎

2012-07-23 10:36:46

工作流

2009-09-01 18:26:23

C#工作流引擎

2013-09-29 17:13:59

PowerShell工作流

2021-12-17 08:39:39

SpringbootActiviti網(wǎng)關(guān)路由

2025-10-17 08:22:32

2009-06-11 14:33:11

jbpm工作流引擎什么是jbpm

2014-07-31 17:03:12

2021-03-12 06:44:09

Argo Workfl開源項(xiàng)目

2021-07-26 18:38:48

Bpmn流程

2025-09-04 01:33:00

Flowable工作流引擎

2023-06-12 08:01:57

Camunda工作流引擎

2009-06-11 14:48:48

jbpm工作流引擎jbpm例子

2009-07-31 17:50:27

ASP.NET工作流
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产一区二区在线观看免费播放| 国产一区二区三区直播精品电影| 亚洲色欲久久久综合网东京热| 国模人体一区二区| 六月丁香综合| 久久国产精品视频| 国产亚洲色婷婷久久99精品91| 日韩大片欧美大片| 亚洲人成亚洲人成在线观看图片 | 国产精品1区在线| 亚洲电影一区二区| 一级日韩一区在线观看| 内射后入在线观看一区| 日本亚洲欧美天堂免费| 欧美精品video| 卡一卡二卡三在线观看| 第四色在线一区二区| 欧美系列亚洲系列| 男同互操gay射视频在线看| 国产免费www| 欧美理论在线| 亚洲欧美日韩第一区| 中文字幕丰满乱码| 小草在线视频免费播放| 国产精品短视频| 国产一区二区高清视频| 日韩精品在线免费视频| 99久久精品费精品国产| 亚洲黄色av女优在线观看 | 亚洲视频成人| 最新日韩中文字幕| 北京富婆泄欲对白| 精品国产美女a久久9999| 一区二区三区日本| 欧美日韩国产综合视频在线| 中文字幕在线播出| 精品不卡视频| 久久精品色欧美aⅴ一区二区| 999精品免费视频| 综合久久伊人| 色菇凉天天综合网| 九色自拍视频在线观看| 欧美jizzhd69巨大| 久久久夜色精品亚洲| 亚洲自拍偷拍福利| 一级黄色片网站| 久久久久久久欧美精品| 久久久久久久久久久免费 | 欧美97人人模人人爽人人喊视频| 亚洲日本va午夜在线影院| 精品久久久久久一区| 99精品在线看| 麻豆国产精品视频| 国产精品成人观看视频国产奇米| 精品无码一区二区三区蜜臀| 夜夜春成人影院| 日韩女优视频免费观看| 欧美男女交配视频| 欧美裸体视频| 亚洲一区二区综合| 在线观看污视频| 日韩美女网站| 国产精品日韩精品欧美在线| 日韩偷拍一区二区| 蜜桃视频在线入口www| 国产+成+人+亚洲欧洲自线| 国产日韩欧美视频| 姑娘第5集在线观看免费好剧| 午夜宅男久久久| 91精品国产一区| 国产午夜小视频| 亚洲大胆在线| 久久露脸国产精品| 久久久无码一区二区三区| 欧美在线免费| 欧美精品一区在线播放| 免费看特级毛片| 欧美电影一区| 不用播放器成人网| 国产免费无码一区二区视频| 亚洲国产精品91| 久久久精品国产网站| 日韩在线视频网址| 亚洲欧美日韩高清在线| 久久国产精品首页| 欧美黄色免费在线观看| 欧美区一区二| 欧美精品福利在线| 国产精品suv一区二区三区| 99精品视频网| 国内外成人免费激情在线视频| 国产精品99无码一区二区| 国色天香一区二区| 国色天香2019中文字幕在线观看| 国产午夜视频在线播放| 国产日韩欧美在线播放不卡| 日本高清+成人网在线观看| 夜夜躁日日躁狠狠久久av| 久久精品国产成人一区二区三区| 91久久久久久久久久| www.桃色av嫩草.com| 成人一区在线观看| 欧洲av一区| 巨大荫蒂视频欧美另类大| 亚洲av无码乱码国产精品| 在线精品一区| 欧美在线免费视频| 中文字幕在线观看欧美| 激情五月激情综合网| 国产伦精品一区二区三毛| 肉丝一区二区| 丰满大乳国产精品| 亚洲一区二区福利视频| 欧美成人午夜激情视频| 亚洲一区二区av在线| 欧美一区二区视频网站| 色18美女社区| 美腿丝袜亚洲图片| 中文字幕无线精品亚洲乱码一区| 青青草偷拍视频| 亚洲欧美日本视频在线观看| 国产91亚洲精品| 国产美女免费视频| 97se亚洲国产综合自在线不卡 | 亚洲欧美成人一区| 日本h片在线| 在线看国产一区| 国产毛片久久久久久| 中日韩免视频上线全都免费| 日韩专区在线播放| 国产性xxxx高清| 久久99精品久久久久| 精品视频免费观看| 污污在线观看| 欧美性极品少妇| 性色av蜜臀av浪潮av老女人| 日韩理论电影| 2020久久国产精品| 午夜精品在线播放| 欧美国产日产图区| 黄页免费在线观看视频| 欧美一区二区三区婷婷| 亚洲第一福利网| 永久免费未视频| 亚洲一级影院| 国产精品免费小视频| 风流老熟女一区二区三区| 国产精品毛片a∨一区二区三区| 欧美日韩dvd| 免费视频观看成人| 亚洲丝袜一区在线| 国产在线观看免费视频今夜| 视频一区在线视频| 成人免费视频网站入口| 高清日韩av电影| 午夜精品久久久久久不卡8050| 九九热精品在线播放| 天海翼亚洲一区二区三区| 欧美大片在线免费观看| 97超碰中文字幕| 国产精品久久综合| 天天碰免费视频| 亚欧洲精品视频在线观看| 久久91精品国产91久久久| 中文字幕在线天堂| 91亚洲精华国产精华精华液| 国产盗摄视频在线观看| 99热播精品免费| 丝袜美腿亚洲一区二区| 中文在线观看av| 国产精品久久久久久久久果冻传媒| 免费高清在线观看免费| 婷婷精品在线| 57pao国产成人免费| 免费av一级片| 黑人精品xxx一区| 91中文字幕永久在线| 久久一区国产| 日韩精品无码一区二区三区| 国产成人精品一区二三区在线观看 | 日韩欧美a级片| 久久精品久久精品| 亚洲日本无吗高清不卡| 久久久久久久性潮| 久久久久999| 亚洲av无码国产综合专区| 一区二区三区成人| 中文成人无字幕乱码精品区| 亚洲少妇诱惑| 色综合久久av| 日韩午夜电影免费看| 日韩在线免费视频观看| 国产精品视频一区二区三区,| 亚洲卡通动漫在线| 91porn在线| 久久国产成人| 一区二区三区四区| 亚洲电影二区| 欧美极品少妇xxxxⅹ免费视频| 性xxxx视频| 欧美日韩亚洲不卡| 加勒比av在线播放| 久久亚洲综合色一区二区三区| 男人透女人免费视频| 日韩中文在线电影| 99re在线观看| 欧美精品资源| 欧美激情a在线| 蜜桃视频在线入口www| 欧美电影一区二区| 韩国av免费观看| 国产精品免费视频网站| 人妻激情偷乱视频一区二区三区| 亚洲在线日韩| 最近中文字幕免费mv| 日韩一级电影| 成人免费视频97| 黄色综合网址| 色综合久久久久久中文网| 欧美色图另类| 日韩一区二区免费在线电影| 精品人妻无码一区二区性色| 最新日韩在线视频| 欧美 变态 另类 人妖| 久久精品久久99精品久久| 黄页网站在线观看视频| 久久精品国产大片免费观看| 国产亚洲自拍偷拍| 成人豆花视频| 国产国语videosex另类| 69成人在线| 中文字幕亚洲一区在线观看| 天天干在线观看| 日韩欧美一区二区久久婷婷| 国产免费av一区二区| 国产精品电影一区二区| 中国一级特黄录像播放| 久久精品国产免费看久久精品| 无码人妻精品一区二区蜜桃网站| 国产日产精品一区二区三区四区的观看方式 | 2020国产精品小视频| 久久久女女女女999久久| 成人77777| 亚洲国产欧美久久| 精品人妻一区二区三区换脸明星| 欧洲精品中文字幕| 中文字幕黄色片| 亚洲成人一区在线| 国产精品久久久精品四季影院| 国产亚洲精久久久久久| 黄色在线免费播放| 国产不卡视频在线观看| 日日干日日操日日射| 免费久久99精品国产| 日本成人在线免费视频| 久久久久久久高潮| 国产成人a亚洲精v品无码| 亚洲久久一区| 人妻少妇精品无码专区二区| 好吊一区二区三区| 青草网在线观看| 欧美激情视频一区二区三区免费| 亚州欧美一区三区三区在线 | 亚洲成人精品一区| 欧洲猛交xxxx乱大交3| 国产精品视频一区二区三区不卡| 香蕉网在线播放| 久久综合九色综合97婷婷女人 | 在线一区二区观看| 波多野结衣高清视频| 色婷婷综合五月| 亚洲综合久久网| 欧美日韩在线免费观看| 秋霞精品一区二区三区| 一本大道久久精品懂色aⅴ| 手机看片久久久| 色偷偷成人一区二区三区91| 999视频在线| 欧美性大战久久| 中文字幕欧美人妻精品| 欧美肥胖老妇做爰| 国产视频一区二区三| 日韩女优电影在线观看| 色婷婷av一区二区三区之红樱桃 | 日韩中文娱乐网| 麻豆传媒在线免费看| 久久最新资源网| 黑人玩欧美人三根一起进| 性色av香蕉一区二区| 中文字幕影音在线| 97超级碰碰人国产在线观看| 国模套图日韩精品一区二区| 国产精品永久免费观看| 成人短视频软件网站大全app| 99久久伊人精品影院| 风间由美性色一区二区三区四区| 国产在线一区二| 欧美中文一区二区| 美国av在线播放| 亚洲毛片视频| 欧美性猛交久久久乱大交小说| 麻豆成人综合网| 人妻 丝袜美腿 中文字幕| 91丨九色porny丨蝌蚪| 国产精品成人在线视频| 一区二区三区欧美日| 91av在线免费视频| 欧美日韩一区二区三区高清| www黄色网址| 亚洲午夜av电影| 超鹏97在线| 午夜美女久久久久爽久久| 日韩精品影片| 精品乱色一区二区中文字幕| 国产人妖ts一区二区| 日韩av一级大片| 国产综合网站| jizz大全欧美jizzcom| 不卡一二三区首页| a一级免费视频| 疯狂做受xxxx欧美肥白少妇| 一级片免费观看视频| 亚洲黄色www| 午夜av在线免费观看| 国产精品黄色av| 秋霞影院一区二区三区| 视频在线99re| 1024日韩| 国产探花在线观看视频| 久久久91精品国产一区二区三区| 青青草原免费观看| 精品污污网站免费看| 午夜性色福利影院| 欧美黄色性视频| 97久久中文字幕| 亚洲精品第一区二区三区| 亚洲看片一区| 怡红院亚洲色图| 中文字幕高清一区| 一本一道无码中文字幕精品热| 日韩精品最新网址| 免费黄色在线看| 国产精品久久久久久久久久久久| 人体久久天天| 99在线免费视频观看| 国产精品亚洲综合一区在线观看| av2014天堂网| 亚洲一级二级在线| 国产精品久久久久久久久久久久久久久久 | 日韩精品中文字幕有码专区| 黄黄的网站在线观看| 国产精品免费在线免费| 国产欧美一区二区精品久久久| www.成年人视频| 国产乱码精品一区二区三区av| 国产福利在线导航| 欧美专区日韩专区| 国产最新视频在线观看| 日av在线播放中文不卡| 亚洲精品中文字幕99999| 日韩欧美国产综合在线| 成人成人成人在线视频| 国产亚洲欧美久久久久| 精品国产乱子伦一区| 男女视频在线| 国产精品免费看一区二区三区| 伊人久久大香线蕉综合四虎小说 | 久久九九免费| 国产精品扒开腿做爽爽| 欧美综合在线视频| 91在线直播| 成人国产精品日本在线| 外国成人免费视频| 亚洲天堂网站在线| 亚洲一区日韩精品中文字幕| 亚洲第一成人av| 久久久欧美精品| 亚洲精品无吗| 一本久道综合色婷婷五月| 亚洲国产精品黑人久久久| 中文字幕观看视频| 日韩在线小视频| 四虎影视国产精品| 国产日韩视频在线播放| 国产又粗又猛又爽又黄91精品| 999精品视频在线观看播放 | 国产成年人免费视频| 亚洲国产毛片完整版| 中文在线免费二区三区| 欧美日韩一区二区三区免费| 视频精品一区二区| 少妇人妻好深好紧精品无码| 欧美日韩国产一二三| 在线h片观看| 国产在线一区二区三区四区| 久久激情视频| 日本一级片免费| 亚洲国产精品小视频| 高清在线一区| 亚洲精品少妇一区二区|