精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

欧美一级久久久久久久大片| 成人性生交大片免费看中文| 日韩中文理论片| 色姑娘综合天天| 小视频免费在线观看| 国产精品高潮久久久久无| 粉嫩精品一区二区三区在线观看| 亚洲天堂av片| 综合一区二区三区| 日韩精品免费看| 精品少妇人妻av免费久久洗澡| 国模吧精品人体gogo| 国产乱码精品一区二区三区五月婷 | 色婷婷av一区二区三| 水蜜桃在线视频| 国产精品丝袜黑色高跟| 国产精品日韩欧美一区二区| 小泽玛利亚一区二区三区视频| 真实国产乱子伦精品一区二区三区| 亚洲国产成人精品久久| 国产美女18xxxx免费视频| 3344国产永久在线观看视频| 国产精品你懂的| 久久久久久久久久久久久9999| 国产免费福利视频| 日本欧美在线看| 欧美在线视频网站| 久草视频手机在线观看| 97精品一区二区| 亚洲欧美另类人妖| 污网站免费观看| 精品视频在线观看免费观看| 精品视频在线视频| 久久婷婷国产精品| 国内激情视频在线观看| 一区二区在线观看视频| 伊人天天久久大香线蕉av色| 久久av少妇| 99国产精品一区| 超碰97在线资源| av网站在线免费看| 激情都市一区二区| 国产精品免费久久久久久| 九九九在线观看| 一区二区毛片| 性欧美xxxx视频在线观看| 久久久99精品| 亚洲午夜激情在线| 欧美激情视频在线| 欧美丰满艳妇bbwbbw| 久久中文视频| 精品国产自在精品国产浪潮| 天天爽天天爽天天爽| 精品精品99| 一区二区欧美激情| 一级黄色毛毛片| 日韩激情一区| 久久在线精品视频| 欧美精品一区二区蜜桃| 欧美精品福利| 97色在线播放视频| www.国产一区二区| 免费成人美女在线观看.| 国产精品白嫩初高中害羞小美女 | 亚洲影音先锋| 青青草成人在线| 五月婷婷激情五月| 美女网站视频久久| 亚洲在线第一页| 高清乱码毛片入口| 26uuu国产电影一区二区| 日本一区二区三区视频免费看| 福利片在线看| 亚洲丝袜另类动漫二区| www.欧美黄色| 欧美少妇网站| 欧美日本国产一区| 一本之道在线视频| 欧美性生活一级片| 中文字幕亚洲欧美在线| 波多野结衣亚洲一区二区| 亚洲韩日在线| 国产精品久久久久久久av电影 | 国产一区二区三区免费看| 91久久极品少妇xxxxⅹ软件| 人人妻人人澡人人爽久久av| 久久久久国产精品厨房| 色中文字幕在线观看| www在线观看黄色| 日本精品视频一区二区| 天堂中文av在线| 韩国精品福利一区二区三区| 亚洲色图第一页| 欧美日韩成人免费观看| 久久久久久久波多野高潮日日| 国产一区二区在线播放| 少妇喷水在线观看| 中文字幕不卡在线| www.射射射| 91精品国产色综合久久不卡粉嫩| 亚洲成人在线视频播放| 国产白丝一区二区三区| 亚洲久久在线| 91精品在线影院| 免费一级在线观看播放网址| 亚洲天堂av老司机| 日本成人中文字幕在线| 国产精品久久久久久久久久白浆 | 蜜臀av性久久久久av蜜臀妖精| 亚洲直播在线一区| 国产三区四区在线观看| 亚洲午夜久久久| 午夜大片在线观看| 国产剧情在线观看一区| 高清一区二区三区四区五区| 在线观看免费视频一区| 久久久亚洲午夜电影| 精品国产一区二区三区av性色| 国产精品成人av在线| 国产美女精品视频国产| 国产欧美一区二区精品仙草咪| 国产精品videossex国产高清 | 成人激情免费在线| 日本久久一级片| 亚洲免费av网站| 亚洲视频一二三四| 精品久久久中文字幕| 国语自产偷拍精品视频偷| 国产suv一区二区| 国产精品乱码人人做人人爱| 91传媒久久久| 激情av综合| 欧美激情视频一区| 99热这里只有精品在线观看| 国产精品美女久久久久aⅴ| 国产淫片av片久久久久久| 成人台湾亚洲精品一区二区| 欧美精品一区二区免费| 国产精品无码在线播放| 国产精品免费视频一区| 韩国中文字幕av| 妖精视频一区二区三区免费观看| 欧美高清不卡在线| 国产av无码专区亚洲av麻豆| 亚洲欧美自拍偷拍| 91高清国产视频| 欧美限制电影| 国产精品对白刺激| 国产区在线视频| 色婷婷亚洲一区二区三区| 制服丝袜第二页| 国产一区二区精品| 牛人盗摄一区二区三区视频| 中文字幕在线免费观看视频| 日韩风俗一区 二区| 日本一级淫片免费放| av午夜一区麻豆| 1024精品视频| 精品视频亚洲| 成人春色激情网| 成人免费观看视频大全| 在线不卡欧美精品一区二区三区| 99热6这里只有精品| 狠狠色丁香久久婷婷综| 日本中文字幕一级片| 视频在线亚洲| 91av在线看| 国产资源在线播放| 欧美乱妇23p| 免费一级肉体全黄毛片| 不卡欧美aaaaa| 无码人妻h动漫| 成人一区而且| 999国内精品视频在线| 91黄页在线观看| 亚洲人成啪啪网站| 艳妇乳肉豪妇荡乳av| 一区二区三区精品在线观看| 2一3sex性hd| 日韩—二三区免费观看av| 日日噜噜噜夜夜爽爽| 98视频精品全部国产| 欧美中文字幕视频在线观看| h视频在线观看免费| 欧美高清性hdvideosex| 国产一国产二国产三| 久久精品欧美日韩| 红桃视频一区二区三区免费| 亚洲一区不卡| 欧美日韩一级在线| 欧美深夜视频| 91九色单男在线观看| 高清毛片在线观看| 色吧影院999| 日批视频免费播放| 欧美日韩极品在线观看一区| 日本一级淫片免费放| 国产精品久久综合| 亚洲黄色在线网站| 精品系列免费在线观看| 激情综合在线观看| 欧美日韩精品一本二本三本| 日韩精品最新在线观看| 国产精品国产| 91九色综合久久| 欧美一级大片| 久久男人av资源网站| 欧美一区二区三区在线观看免费| 亚洲国产高潮在线观看| 一二三四区在线| 欧美性猛交xxxx| 久久久99精品| 亚洲免费av高清| 一级片久久久久| 91免费观看在线| 亚洲免费观看在线| 哺乳挤奶一区二区三区免费看| 成人午夜av影视| 蜜臀av午夜一区二区三区| 狠狠爱www人成狠狠爱综合网| 亚洲欧美日本国产有色| 亚瑟一区二区三区四区| 国产伦精品一区二区三区免| 亚洲伦理一区二区| 国产精品色悠悠| 欧美人体一区二区三区| 国模吧一区二区| 污污网站在线看| 久久国产精品久久国产精品| 成人免费在线视频网| 日韩国产精品亚洲а∨天堂免| 精品久久久久中文慕人妻| 制服视频三区第一页精品| 欧美在线视频精品| 欧美亚一区二区| 国产成人无码专区| 日韩欧美在线观看视频| 黄色一级片免费看| 亚洲观看高清完整版在线观看 | 99精品国产一区二区三区| 欧美重口乱码一区二区| 一道本一区二区三区| 欧美乱偷一区二区三区在线| 欧美日韩一区二区三区在线电影| 国产乱码精品一区二区三区日韩精品| 日韩中文在线| 亚洲xxx大片| 视频一区中文字幕精品| 豆国产97在线| 久久99国产精品久久99大师| 精品不卡一区二区三区| 欧美wwwsss9999| 久久久久久九九| 国产精品入口久久| 神马影院我不卡午夜| 欧美大黑bbbbbbbbb在线| 日韩人妻精品一区二区三区| 午夜日韩av| 欧美精品久久久久久久久久久| 亚洲毛片一区| 99福利在线观看| 日本不卡一区二区三区| 女人高潮一级片| 大胆亚洲人体视频| 动漫精品一区二区三区| 欧美激情在线一区二区三区| 青青青手机在线视频| 亚洲精品欧美综合四区| 日本一二三区不卡| 色哟哟在线观看一区二区三区| 亚洲av人无码激艳猛片服务器| 91麻豆精品91久久久久久清纯 | 亚洲国产精品久久精品怡红院| 性感美女福利视频| 中文字幕亚洲欧美日韩高清| 主播国产精品| 全球成人中文在线| 亚洲国产天堂| 国产精品久久九九| 国产不卡一二三区| 中文字幕一区二区三区四区五区人 | 大荫蒂性生交片| 国产精品美女久久久浪潮软件| 九九热在线免费| 国产suv精品一区二区6| 爱爱的免费视频| 亚洲视频一二三| 4438国产精品一区二区| 91精品黄色片免费大全| 视频二区在线| 在线一区二区三区做爰视频网站| 在线不卡免费视频| 精品福利一二区| www.在线播放| 国模叶桐国产精品一区| 日韩一区中文| 精品亚洲第一| 91tv精品福利国产在线观看| 久久综合九色综合88i| 美日韩一级片在线观看| a级一a一级在线观看| 亚洲天堂精品视频| 国产女主播喷水视频在线观看 | 中文字幕网站在线观看| 一区二区三区国产豹纹内裤在线| 精品黑人一区二区三区| 亚洲国产私拍精品国模在线观看| 午夜不卡视频| 3344国产精品免费看| 日韩精品免费视频一区二区三区| 欧美成人在线免费观看| 亚洲欧美综合| 亚洲天堂国产视频| 久久久久久99久久久精品网站| 精品视频一区二区在线观看| 欧美精品乱码久久久久久| 欧洲免费在线视频| 性欧美亚洲xxxx乳在线观看| 国产区一区二| 一本一本a久久| 日韩中文字幕亚洲一区二区va在线 | 男女午夜激情视频| 成人激情文学综合网| 久草网站在线观看| 欧美肥胖老妇做爰| 888av在线| 国产成人精品优优av| 欧美男人操女人视频| 国产一线二线三线女| 国产精品一区二区无线| www.97视频| 欧美精品一二三| 毛片免费不卡| 91久久精品久久国产性色也91| 欧美日韩在线网站| 国产a级片免费观看| 久久久久久久久久久电影| 国产婷婷色一区二区在线观看| 精品亚洲一区二区三区| а√在线天堂官网| 精品国产乱码久久久久久108| 激情婷婷亚洲| 欧美一区二区免费在线观看| 亚洲国产精品久久人人爱| 亚洲精品久久久久久无码色欲四季| 欧美另类极品videosbestfree| 成人自拍视频| av 日韩 人妻 黑人 综合 无码| 国产乱人伦精品一区二区在线观看| 欧美人禽zoz0强交| 日韩欧美的一区| 欧美大胆的人体xxxx| 国产一区二区三区黄| 99这里有精品| a级片在线观看| 欧美三级日本三级少妇99| 秋霞成人影院| 91高跟黑色丝袜呻吟在线观看| 国产精品分类| 中国极品少妇videossexhd| 日韩欧美黄色动漫| 黄色av网址在线免费观看| 国产精品一区二区3区| 婷婷另类小说| 天天躁日日躁狠狠躁免费麻豆| 欧美日韩亚洲成人| 成人动漫在线播放| 成人一区二区电影| 在线精品一区| 国产sm调教视频| 3751色影院一区二区三区| 在线中文字幕-区二区三区四区| 国产亚洲情侣一区二区无| 久久久噜噜噜| 中日韩一级黄色片| 亚洲国模精品一区| 日本精品网站| 麻豆视频传媒入口| 91老师片黄在线观看| 91久久精品国产91性色69| 欧美激情视频在线免费观看 欧美视频免费一 | 免费国产成人av| 中文字幕在线免费不卡| 成人午夜福利视频| 国产成人精品网站| 国产精品theporn| 午夜在线观看一区| 日韩欧美国产一区二区在线播放 | 午夜日韩在线| www.久久国产| 欧美一区二区视频在线观看2020 | 国语对白在线刺激| 欧洲精品久久| 高清成人在线观看| 成人av网站在线播放| 欧美极品美女视频网站在线观看免费| 最新亚洲精品| 国产欧美视频一区| 在线精品视频一区二区| 欧洲精品二区|