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

使用JBPM工作流引擎測試的一個例子

開發(fā) 后端
本文舉出了了一個使用jBPM工作流引擎進(jìn)行測試的例子。例子中使用一個Persistence用于存儲全局變量值。從使用流程設(shè)計(jì)器創(chuàng)建流程規(guī)則,直到最后參與者參與者執(zhí)行審批操作,觸發(fā)流程流轉(zhuǎn)到下一個環(huán)節(jié),本例中都提供了完整的代碼以供參考。

本文提供使用jBPM工作流引擎測試的一個例子。

提供一個Persistence,用于存儲全局的變量值,方便存儲和獲取

  1. public class Persistence {  
  2. private static Map variables = null;  
  3. private static String tmpfile = System.getProperty("java.io.tmpdir") + "/temp.object";  
  4. static{  
  5. //加載文件  
  6. try{  
  7. if(new File(tmpfile).exists()){  
  8. FileInputStream in = new FileInputStream(tmpfile);  
  9. ObjectInputStream s = new ObjectInputStream(in);   
  10.     variables = (Map)s.readObject();  
  11. }  
  12. if(variables == null){  
  13. variables = new HashMap();  
  14. }  
  15. }catch(Exception e){  
  16. e.printStackTrace();  
  17. }  
  18. }  
  19. //設(shè)置一個變量的值  
  20. public static void setVariable(String name,Serializable object){  
  21. if(variables != null){  
  22. variables.put(name, object);  
  23. }  
  24. try {  
  25. FileOutputStream fos = new FileOutputStream(tmpfile);  
  26. ObjectOutputStream oos = new ObjectOutputStream(fos);  
  27. oos.writeObject(variables);  
  28. oos.flush();  
  29. oos.close();  
  30. fos.flush();  
  31. fos.close();  
  32. catch (Exception e) {  
  33. e.printStackTrace();  
  34. }  
  35. }  
  36. //獲取一個變量的值  
  37. public static Serializable getVariable(String name){  
  38. if(variables != null){  
  39. return (Serializable)variables.get(name);  
  40. }  
  41. return null;  
  42. }  
  43. }  
  44.  

1.首先使用流程設(shè)計(jì)器,創(chuàng)建一個簡單的流程規(guī)則

流程規(guī)則 

2.創(chuàng)建數(shù)據(jù)庫表,創(chuàng)建流程定義對象,并部署流程定義

  1. //創(chuàng)建數(shù)據(jù)庫表  
  2. public class Jbpm_01_CreateTable extends TestCase {  
  3. public void testCreateTable(){  
  4. JbpmConfiguration.getInstance().createSchema();  
  5. }  
  6. }  
  7. //定義流程定義對象,并部署流程  
  8. public class Jbpm_02_DeployProcessDefinition extends TestCase {  
  9. static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();  
  10. public void testDeployProcessDefinition(){  
  11. //讀取流程定義文件,得到流程定義對象  
  12. ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("test01/processdefinition.xml");  
  13. //可以得到流程定義的名稱  
  14. Persistence.setVariable("processName", processDefinition.getName());  
  15. //JbpmContext對象封裝了hibernate session 對象的功能,可以執(zhí)行與數(shù)據(jù)庫持久化相關(guān)的操作  
  16. JbpmContext context = jbpmConfiguration.createJbpmContext();  
  17. try{  
  18. context.deployProcessDefinition(processDefinition);  
  19. }catch(Exception e){  
  20. e.printStackTrace();  
  21. context.setRollbackOnly();  
  22. }finally{  
  23. context.close();  
  24. }  
  25. }  
  26. }  
  27.  

3.定義公文Doucment 及其映射文件Doucment.hbm.xml

  1. public class Document {  
  2. private int id;  
  3. private String title;  
  4. private String content;  
  5. private Long processInstanceId;  
  6. public String getContent() {  
  7. return content;  
  8. }  
  9. public void setContent(String content) {  
  10. this.content = content;  
  11. }  
  12. public int getId() {  
  13. return id;  
  14. }  
  15. public void setId(int id) {  
  16. this.id = id;  
  17. }  
  18. public Long getProcessInstanceId() {  
  19. return processInstanceId;  
  20. }  
  21. public void setProcessInstanceId(Long processInstanceId) {  
  22. this.processInstanceId = processInstanceId;  
  23. }  
  24. public String getTitle() {  
  25. return title;  
  26. }  
  27. public void setTitle(String title) {  
  28. this.title = title;  
  29. }  
  30. }  
  31. //Document映射文件Document.hbm.xml  
  32. <hibernate-mapping>  
  33.   <class table="tbl_document" name="Document">  
  34.     <id name="id">  
  35.       <generator class="native"/>  
  36.     </id>  
  37.     <property name="title"/>  
  38.     <property name="content"/>  
  39.     <property name="processInstanceId"/>  
  40.   </class>  
  41. </hibernate-mapping>  
  42.  

4.創(chuàng)建公文并與流程實(shí)例綁定

  1. public class Jbpm_03_CreateDocument extends TestCase {  
  2.  
  3. static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();  
  4.  
  5. public void testCreateDocument(){  
  6.  
  7. //JbpmContext對象封裝了hibernate session 對象的功能,可以執(zhí)行與數(shù)據(jù)庫持久化相關(guān)的操作  
  8.  
  9. JbpmContext context = jbpmConfiguration.createJbpmContext();  
  10.  
  11. try{  
  12.  
  13. Document doc = new Document();  
  14.  
  15. doc.setTitle("測試公文"+new Random().nextInt(9999));  
  16.  
  17. context.getSession().save(doc);  
  18.  
  19. Persistence.setVariable("docId", doc.getId());  
  20.  
  21. }catch(Exception e){  
  22.  
  23. e.printStackTrace();  
  24.  
  25. context.setRollbackOnly();  
  26.  
  27. }finally{  
  28.  
  29. context.close();  
  30.  
  31. }  
  32.  
  33. }  
  34.  
  35. }  
  36.  

5.提交公文到流程,觸發(fā)流程流轉(zhuǎn)

  1. public class Jbpm_05_SubmitDocument extends TestCase {  
  2.  
  3. static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();  
  4.  
  5. //提交公文到第一個環(huán)節(jié)  
  6.  
  7. public void testSubmitDocument(){  
  8.  
  9. //JbpmContext對象封裝了hibernate session 對象的功能,可以執(zhí)行與數(shù)據(jù)庫持久化相關(guān)的操作  
  10.  
  11. JbpmContext context = jbpmConfiguration.createJbpmContext();  
  12.  
  13. try{  
  14.  
  15. //已知公文的信息  
  16.  
  17. int docId = (Integer)Persistence.getVariable("docId");  
  18.  
  19. Document doc = (Document)context.getSession().load(Document.class, docId);  
  20.  
  21. long processInstanceId = doc.getProcessInstanceId();  
  22.  
  23. ProcessInstance processInstance = context.getProcessInstance(processInstanceId);  
  24.  
  25. //觸發(fā)流程實(shí)例流轉(zhuǎn)到下一個環(huán)節(jié)  
  26.  
  27. processInstance.signal();  
  28.  
  29. }catch(Exception e){  
  30.  
  31. e.printStackTrace();  
  32.  
  33. context.setRollbackOnly();  
  34.  
  35. }finally{  
  36.  
  37. context.close();  
  38.  
  39. }  
  40.  
  41. }  
  42.  
  43. }  
  44.  

6.查看公文所處的當(dāng)前任務(wù)節(jié)點(diǎn)

  1. public class Jbpm_06_CurrentNode extends TestCase {  
  2.  
  3. static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();  
  4.  
  5. //公文當(dāng)前所處的環(huán)節(jié)  
  6.  
  7. public void testCurrentNode(){  
  8.  
  9. //JbpmContext對象封裝了hibernate session 對象的功能,可以執(zhí)行與數(shù)據(jù)庫持久化相關(guān)的操作  
  10.  
  11. JbpmContext context = jbpmConfiguration.createJbpmContext();  
  12.  
  13. try{  
  14.  
  15. //已知公文的信息  
  16.  
  17. int docId = (Integer)Persistence.getVariable("docId");  
  18.  
  19. Document doc = (Document)context.getSession().load(Document.class, docId);  
  20.  
  21. long processInstanceId = doc.getProcessInstanceId();  
  22.  
  23. ProcessInstance processInstance = context.getProcessInstance(processInstanceId);  
  24.  
  25. String currentNode = processInstance.getRootToken().getNode().getName();  
  26.  
  27. System.err.println("公文【"+doc.getTitle()+"】當(dāng)前所處的環(huán)節(jié)" +  
  28.  
  29. "是:"+currentNode+",流程實(shí)例是否已結(jié)束?"+processInstance.hasEnded());  
  30.  
  31. }catch(Exception e){  
  32.  
  33. e.printStackTrace();  
  34.  
  35. context.setRollbackOnly();  
  36.  
  37. }finally{  
  38.  
  39. context.close();  
  40.  
  41. }  
  42.  
  43. }  
  44.  
  45. }  
  46.  

7.獲取流轉(zhuǎn)個某個參與者處待處理的任務(wù)列表

  1. public class Jbpm_07_SearchMyTaskList extends TestCase {  
  2.  
  3. static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();  
  4.  
  5. //搜索流轉(zhuǎn)到某個參與者手上的公文列表  
  6.  
  7. public void testSearchMyTaskList(){  
  8.  
  9. //JbpmContext對象封裝了hibernate session 對象的功能,可以執(zhí)行與數(shù)據(jù)庫持久化相關(guān)的操作  
  10.  
  11. JbpmContext context = jbpmConfiguration.createJbpmContext();  
  12.  
  13. try{  
  14.  
  15. printTask(context,"張三");  
  16.  
  17. printTask(context,"李四");  
  18.  
  19. printTask(context,"王五");  
  20.  
  21. }catch(Exception e){  
  22.  
  23. e.printStackTrace();  
  24.  
  25. context.setRollbackOnly();  
  26.  
  27. }finally{  
  28.  
  29. context.close();  
  30.  
  31. }  
  32.  
  33. }  
  34.  
  35. private void printTask(JbpmContext context,String actorId){  
  36.  
  37. List taskInstances = context.getTaskMgmtSession().findTaskInstances(actorId);  
  38.  
  39. for (Iterator iter = taskInstances.iterator(); iter.hasNext();) {  
  40.  
  41. TaskInstance ti = (TaskInstance) iter.next();  
  42.  
  43. Integer docId = (Integer)ti.getProcessInstance().getContextInstance().getVariable("documnt");  
  44.  
  45. Document doc = (Document)context.getSession().load(Document.class, docId);  
  46.  
  47. System.err.println("正在等待【"+actorId+"】審批的公文是:"+doc.getTitle());  
  48.  
  49. }  
  50.  
  51. }  
  52.  
  53. }  
  54.  

8.參與者執(zhí)行審批操作,觸發(fā)流程流轉(zhuǎn)到下一個環(huán)節(jié)

  1. public class Jbpm_08_NextNode extends TestCase {  
  2.  
  3. static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();  
  4.  
  5. //從一個TaskNode的中間節(jié)點(diǎn)出發(fā),觸發(fā)流程流轉(zhuǎn)到下一個環(huán)節(jié)  
  6.  
  7. public void testNextNode(){  
  8.  
  9. //JbpmContext對象封裝了hibernate session 對象的功能,可以執(zhí)行與數(shù)據(jù)庫持久化相關(guān)的操作  
  10.  
  11. JbpmContext context = jbpmConfiguration.createJbpmContext();  
  12.  
  13. try{  
  14.  
  15. //*******************************************  
  16.  
  17. //某某用戶要將其手上的某某公文提交到下一個環(huán)節(jié)  
  18.  
  19. //*******************************************  
  20.  
  21. //已知要提交的公文  
  22.  
  23. Integer docId = (Integer)Persistence.getVariable("docId");  
  24.  
  25.    
  26.  
  27.                     nextStep(context,"張三",docId);  
  28.  
  29.                     nextStep(context,"李四",docId);  
  30.  
  31. nextStep(context,"王五",docId);  
  32.  
  33.    
  34.  
  35. }catch(Exception e){  
  36.  
  37. e.printStackTrace();  
  38.  
  39. context.setRollbackOnly();  
  40.  
  41. }finally{  
  42.  
  43. context.close();  
  44.  
  45. }  
  46.  
  47. }  
  48.  
  49. private void nextStep(JbpmContext context,String actorId,Integer docId){  
  50.  
  51. List taskInstances = context.getTaskMgmtSession().findTaskInstances(actorId);  
  52.  
  53. for (Iterator iter = taskInstances.iterator(); iter.hasNext();) {  
  54.  
  55. TaskInstance ti = (TaskInstance) iter.next();  
  56.  
  57. Integer _docId = (Integer)ti.getProcessInstance().getContextInstance().getVariable("documnt");  
  58.  
  59. //找到對應(yīng)的任務(wù)實(shí)例  
  60.  
  61. if(docId.equals(_docId)){  
  62.  
  63. Document doc = (Document)context.getSession().load(Document.class, docId);  
  64.  
  65. //參與者的任務(wù)已經(jīng)處理完成,需要結(jié)束這個任務(wù)實(shí)例  
  66.  
  67. //這個動作,在缺省的情況下,會觸發(fā)對應(yīng)的Token的signal()方法,即流向下一個環(huán)節(jié)  
  68.  
  69. ti.end();  
  70.  
  71. System.err.println("公文【"+doc.getTitle()+"】已被【"+actorId+"】審批完成,已提交到下一個環(huán)節(jié)");  
  72.  
  73. }  
  74.  
  75. }  
  76.  
  77. }  
  78.  
  79. }  
  80.  

【編輯推薦】

  1. jBPM 3.2用戶指南 概覽
  2. jBPM 4.0.0用戶指南 安裝配置
  3. jBPM數(shù)據(jù)庫表說明:流程節(jié)點(diǎn)表
  4. J2EE工作流管理系統(tǒng)jBPM詳解(一)
  5. J2EE工作流管理系統(tǒng)jBPM詳解(二) 
責(zé)任編輯:yangsai 來源: 163博客
相關(guān)推薦

2009-06-11 14:43:34

jbpm工作流引擎jBPM搭建

2011-12-14 09:58:58

JavajBPM

2009-06-11 14:33:11

jbpm工作流引擎什么是jbpm

2021-10-14 11:34:05

技術(shù)工作流引擎

2021-03-05 07:47:07

工作流引擎節(jié)點(diǎn)

2015-07-14 09:26:28

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

2023-01-04 08:02:16

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

2023-07-05 09:48:44

Activiti部署

2023-08-02 18:48:23

Flowable工作流引擎

2009-09-01 18:26:23

C#工作流引擎

2024-10-17 08:39:32

2009-06-18 15:53:37

Hibernate B

2025-10-17 08:22:32

2021-03-12 06:44:09

Argo Workfl開源項(xiàng)目

2023-03-14 08:02:14

靜態(tài)路由動態(tài)路由設(shè)備

2024-01-08 13:40:00

并發(fā)安全? 數(shù)量

2022-02-25 17:02:38

自動化工作轉(zhuǎn)型

2021-12-17 08:39:39

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

2024-01-25 11:41:00

Python開發(fā)前端

2014-07-31 17:03:12

點(diǎn)贊
收藏

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

黄网页在线观看| 久久99爱视频| 精品毛片一区二区三区| 911久久香蕉国产线看观看| 中文字幕亚洲欧美在线不卡| 成人在线国产精品| 国语对白在线播放| 欧美日韩国产一区二区在线观看| 亚洲综合色在线| 精品国产中文字幕| 在线视频播放大全| 小处雏高清一区二区三区| 日韩精品专区在线影院观看| 日韩视频免费播放| 九色视频在线播放| 紧缚捆绑精品一区二区| 7777精品久久久久久| 日本一二三不卡视频| 欧美日韩美女| 亚洲午夜激情av| 日本婷婷久久久久久久久一区二区| 黄色av网站免费| 激情综合中文娱乐网| 国产亚洲a∨片在线观看| 国产麻花豆剧传媒精品mv在线| 深夜福利在线看| 久久国产精品区| 欧美在线视频a| 三级黄色片在线观看| 成人乱码手机视频| 欧美视频一区二| 成人在线播放网址| av电影在线观看一区二区三区| av电影天堂一区二区在线| 日本电影亚洲天堂| 九九热视频在线免费观看| 国产九一精品| 欧美成人精品高清在线播放| 免费一级特黄录像| 爱看av在线入口| 国产精品久久久久三级| 日本成人黄色| 五月天福利视频| 蜜桃视频在线观看一区二区| 青青草原成人在线视频| 久久久久久激情| 欧美搞黄网站| 久久视频免费观看| 亚洲色图日韩精品| 狠狠色丁香婷婷综合影院| 日韩欧美视频在线| 丰满女人性猛交| 青青草免费在线| 成人精品鲁一区一区二区| 成人午夜高潮视频| 亚洲午夜无码久久久久| 老鸭窝91久久精品色噜噜导演| 88国产精品欧美一区二区三区| 三级黄色免费观看| 国产毛片一区二区三区| 亚洲人成电影网| 亚洲一区二区三区四区五区六区| 试看120秒一区二区三区| 67194成人在线观看| 成人小视频在线观看免费| 黄网站免费在线观看| 国产精品二区一区二区aⅴ污介绍| 久久视频在线观看中文字幕| 日本不卡视频一区二区| 91老司机福利 在线| 成人91视频| 高清一区二区三区四区| 成人午夜在线播放| 成人网址在线观看| 国产色片在线观看| 蜜桃一区二区三区四区| 91亚洲va在线va天堂va国 | 国模吧无码一区二区三区| av免费在线免费观看| 亚洲欧美欧美一区二区三区| 综合国产精品久久久| 日韩理伦片在线| 国产精品久久久一区麻豆最新章节| 视频一区二区三区免费观看| 日韩黄色影院| 亚洲女同女同女同女同女同69| 亚洲欧美成人一区| 男女网站在线观看| 国产视频亚洲色图| 欧美在线播放一区二区| shkd中文字幕久久在线观看| 国产亚洲综合性久久久影院| 亚洲免费视频一区| 欧美亚洲系列| 日韩欧美高清视频| 亚洲黄色片免费| 亚洲国产中文在线| 日韩精品在线第一页| 在线不卡av电影| 国内精品久久久久久久影视简单| 久久视频这里只有精品| 午夜爽爽爽男女免费观看| 欧美一区激情| 奇米成人av国产一区二区三区| 久久精品久久久久久久| 国产裸体歌舞团一区二区| 粉嫩av免费一区二区三区| 日韩av视屏| 亚洲欧美国产77777| 国产二级片在线观看| 91另类视频| 日韩欧美123| 中文字幕狠狠干| 91久久国产| 高清一区二区三区四区五区| 中日精品一色哟哟| 国模娜娜一区二区三区| 国产精品成人一区二区三区 | 成人1区2区| 精品精品国产高清a毛片牛牛| 少妇太紧太爽又黄又硬又爽小说| 98精品视频| 欧美激情成人在线视频| 在线观看视频中文字幕| av在线这里只有精品| 欧美在线日韩精品| sm在线观看| 欧美无砖专区一中文字| 日本五十肥熟交尾| 日韩电影二区| 欧美中文字幕在线| 亚洲精品国产av| 国产三级一区二区| 国产超级av在线| 中文字幕日韩高清在线| 成年无码av片在线| 成人毛片一区二区三区| 成人精品高清在线| 国产一二三四区在线观看| 国产成人精品亚洲日本在线观看| 91黄视频在线| 六十路息与子猛烈交尾| 综合激情网站| 91久久在线观看| av在线三区| 亚洲精品成人精品456| 久久成年人网站| 美女久久久久| 97视频在线观看免费高清完整版在线观看 | 国产精品福利网| 日本精品久久久久久| 国产精品国产三级国产普通话三级| 99热成人精品热久久66| 久久综合五月婷婷| 久久久久久久av| www.桃色av嫩草.com| 国产精品美女久久福利网站| www欧美激情| 宅男在线一区| 97香蕉超级碰碰久久免费的优势| 肥臀熟女一区二区三区| 国产精品久久夜| 亚洲天堂av一区二区| 999精品色在线播放| 国产精品成人一区二区三区吃奶 | 日韩在线视频线视频免费网站| 精品乱码一区内射人妻无码 | 日韩成人午夜电影| 日韩电影天堂视频一区二区| 精品国产欧美日韩一区二区三区| 亚洲日韩中文字幕在线播放| 你懂的国产在线| 91麻豆高清视频| 北条麻妃av高潮尖叫在线观看| 欧美偷拍综合| 国产狼人综合免费视频| 青青色在线视频| 在线观看日韩电影| 六十路息与子猛烈交尾| 日韩高清一级片| 亚洲欧洲一区二区福利| 国产精品一区二区精品| 欧美日韩国产二区| 午夜视频在线免费播放| 婷婷丁香久久五月婷婷| 醉酒壮男gay强迫野外xx| 久久综合九色综合欧美狠狠| 亚洲一卡二卡三卡| 国产一区二区三区视频在线| 97免费中文视频在线观看| 黄色在线网站| 欧美性大战xxxxx久久久| 国产精品白丝喷水在线观看| 国产99久久久精品| 国产免费人做人爱午夜视频| 日韩欧美大片| 亚洲精品日韩激情在线电影| 91小视频xxxx网站在线| 日韩精品视频在线观看网址| 一卡二卡三卡在线| 亚洲综合在线免费观看| 一区二区三区四区影院| 九九综合九九| 91久久嫩草影院一区二区| 蜜桃视频在线观看播放| 中文字幕在线看视频国产欧美在线看完整 | 日韩中文在线电影| 国产经典一区二区三区| 91天天综合| 久久久噜噜噜久久中文字免| 狠狠色伊人亚洲综合网站l| 日韩欧美一区在线| 精品成人免费视频| 亚洲欧洲韩国日本视频| 制服丝袜第一页在线观看| 日韩福利电影在线| 青青青国产在线观看| 日韩在线观看一区| 久精品国产欧美| 玖玖精品在线| 成年人精品视频| 午夜激情视频在线观看| 亚洲精品美女在线| 国产精品女人久久久| 亚洲国产精品久久久久秋霞影院 | 热99这里只有精品| 成人aaaa| 影音先锋亚洲视频| 国产精品中文字幕久久久| 欧美一级高清片在线观看| 黄色精品视频在线观看| 成人污视频在线观看| 日本新janpanese乱熟| 久久免费av| 蜜桃传媒视频第一区入口在线看| 欧美中文高清| 国产99视频在线观看| 成人ww免费完整版在线观看| 亚洲精品美女在线| 国产成人手机在线| 日韩一级在线观看| 在线观看毛片视频| 91成人国产精品| 成人精品在线看| 亚洲国产精品一区二区www| 免费无遮挡无码永久在线观看视频 | a级日韩大片| 成人美女免费网站视频| 成人高清免费在线| 精品在线小视频| 偷拍精品一区二区三区| 欧美精品国产精品| 一级片免费网站| 欧美视频三区在线播放| 亚洲av人无码激艳猛片服务器| 午夜在线成人av| www欧美在线| 色综合久久久久久久久久久| 欧美成人三级在线观看| 伊人色综合久久天天人手人婷| 日本污视频网站| 亚洲免费在线看| 污软件在线观看| 亚洲日本在线天堂| 国产黄色片在线免费观看| 日本一区二区三区在线观看| 欧美日韩生活片| 国产精品久久久久aaaa樱花 | 中文字幕中文字幕精品| 久久精品午夜一区二区福利| 五月激激激综合网色播| 国产一区在线免费观看| 亚洲va欧美va人人爽成人影院| 国产精品一区二区免费看| 欧美经典一区| 免费一区二区三区在在线视频| 丁香五月缴情综合网| 国产精品一区免费观看| 国产探花一区二区| 天天综合色天天综合色hd| 999国产精品视频| 米仓穗香在线观看| 日韩欧美在线中字| www.69av| 亚洲第一网站| 国产一区二区三区精彩视频 | 女王人厕视频2ⅴk| 国产成人av影院| 亚洲国产欧美视频| 久久久久久久久久久久久女国产乱| 妖精视频在线观看免费| 一区二区三区不卡在线观看| 青青操免费在线视频| 欧美三级韩国三级日本三斤 | 亚洲美女视频网站| 巨骚激情综合| 久久久国产视频| 男女视频在线| 欧亚精品在线观看| 日韩成人综合网| 国产精品亚洲综合| 国产精品免费不| 欧美三级午夜理伦三级老人| 亚洲精品欧洲| 日韩a一级欧美一级| 99国产精品久久久久久久久久久| 一级片黄色录像| 亚洲福利一区二区| 免费黄色av片| 欧美一区二区私人影院日本| 色综合888| 久久电影一区二区| 成人三级高清视频在线看| 国产精品一区二区久久久久| 波多野结衣欧美| 日韩av电影免费在线| 精品9999| 97超碰人人爽| 99国产精品久久久久久久久久久| 内射毛片内射国产夫妻| 亚洲www啪成人一区二区麻豆| 伊人网免费视频| 日韩欧美123| 麻豆传媒视频在线观看| 欧美亚洲日本黄色| 粉嫩一区二区三区四区公司1| 色狠狠久久av五月综合| 一区二区三区国产盗摄| 亚洲综合中文网| 国产欧美va欧美不卡在线| 日韩精品在线免费看| 欧美熟乱第一页| 黄色片在线播放| 午夜精品www| www.亚洲天堂.com| 久久国产精品露脸对白| 98视频在线噜噜噜国产| 91丝袜在线观看| 精品视频在线观看免费观看| 亚洲午夜在线视频| 国产黄色片免费在线观看| av在线播放av| 91在线观看一区二区| 国产成人精品久久久| 老熟妇高潮一区二区三区| 偷拍自拍一区| 日韩精品视频在线观看免费| 欧产日产国产精品98| jizz18欧美18| 欧美人与性动交| 国产亚洲精品精品国产亚洲综合| 久久精品久久精品国产大片| 亚洲小说欧美另类社区| 麻豆tv在线观看| 91啪亚洲精品| 国模无码国产精品视频| 日韩二区三区| 在线精品视频视频中文字幕| 一区二区三区视频在线观看视频| 精品国产乱码久久久久久免费| 调教一区二区| 亚洲r级在线观看| 色综合色综合| 日本成人在线免费视频| 久久婷婷久久一区二区三区| 日本 欧美 国产| 91精品在线麻豆| 午夜羞羞小视频在线观看| 亚洲一区二区三区视频播放| 成人影视亚洲图片在线| 亚洲国产精品久久久久爰色欲| 成人免费视频caoporn| 久草网视频在线观看| 亚洲国产成人精品久久| 中文在线а√在线8| 美日韩精品免费| 日韩精品一二三| 一本一本久久a久久| 日韩一级免费一区| 欧美大片黄色| 久久青青草综合| 乱一区二区av| 青青草原在线免费观看视频| 精品国产乱码久久久久久图片| 中文字幕在线视频久| 亚洲精品不卡| 蜜桃av一区二区三区| 男人与禽猛交狂配| 亚洲成人精品久久| 欧美成人精品三级网站| 亚洲一卡二卡三卡| www.日韩在线| 中文字幕视频免费观看| 欧美丰满片xxx777| 欧美尿孔扩张虐视频| 任你操这里只有精品| 国产精品久久久久影院| 国产强伦人妻毛片| 青青草一区二区| 99久久综合|