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

Flowable 流程部署與刪除

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
其實(shí)當(dāng)我們使用了 Spring Boot 之后,默認(rèn)情況下流程是會(huì)自動(dòng)部署的,基本上不需要我們額外做什么事情。不過這些操作里還是有不少細(xì)節(jié),今天松哥就來帶大家一起來梳理一下。

本文我們一起來看看流程的部署等細(xì)節(jié)問題。

其實(shí)當(dāng)我們使用了 Spring Boot 之后,默認(rèn)情況下流程是會(huì)自動(dòng)部署的,基本上不需要我們額外做什么事情。不過這些操作里還是有不少細(xì)節(jié),今天松哥就來帶大家一起來梳理一下。

1. 默認(rèn)行為

首先我們先來梳理一下默認(rèn)行為。

默認(rèn)情況下,我們放在 resources/processes 目錄下的所有流程文件會(huì)自動(dòng)被部署,流程文件的后綴有兩種形式 bpmn20.xml 或者 bpmn。當(dāng)然,無論是存放流程文件的位置,還是流程文件的格式,都是可以定制的,涉及到的屬性主要有三個(gè),可在 application.properties 中進(jìn)行配置:

flowable.check-process-definitions=false
flowable.process-definition-location-prefix=classpath*:/processes/
flowable.process-definition-location-suffixes=**.bpmn20.xml,**.bpmn

flowable.check-process-definitions:這個(gè)表示是否在項(xiàng)目啟動(dòng)的時(shí)候,去檢查文件目錄是否有對(duì)應(yīng)的流程文件,該屬性為 true 表示如果有流程文件就自動(dòng)部署,false 表示不檢查,那么也就不會(huì)自動(dòng)部署。

flowable.process-definition-location-prefix?:這個(gè)是流程文件的位置,默認(rèn)就是 classpath*:/processes/,當(dāng)然開發(fā)者也可以進(jìn)行配置。

flowable.process-definition-location-suffixes?:這個(gè)是流程文件的后綴,默認(rèn)有兩個(gè),分別是 **.bpmn20.xml 和 **.bpmn,當(dāng)然開發(fā)者也可以進(jìn)行配置。

這個(gè)配置應(yīng)該沒啥好說的。

2. 動(dòng)態(tài)部署

有的時(shí)候,我們的流程可能并不是提前設(shè)計(jì)好的,而是項(xiàng)目啟動(dòng)之后,動(dòng)態(tài)部署的,例如項(xiàng)目啟動(dòng)成功之后,動(dòng)態(tài)上傳一個(gè)流程的 XML 文件進(jìn)行部署,這也是一種比較常見的場(chǎng)景,對(duì)于這種情況,我們可以按照如下方式進(jìn)行部署:

@RestController
public class ProcessDeployController {

@Autowired
RepositoryService repositoryService;

@PostMapping("/deploy")
public RespBean deploy(MultipartFile file) throws IOException {
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment()
.category("javaboy的工作流分類")
.name("javaboy的工作流名稱")
.addInputStream(file.getOriginalFilename(), file.getInputStream())
.key("javaboy的工作流key");
Deployment deployment = deploymentBuilder
.deploy();
return RespBean.ok("部署成功",deployment.getId());
}
}

我這里給了一個(gè)簡(jiǎn)單的文件上傳接口,關(guān)于文件上傳部分我就不多說了。我們來看下流程部署:

首先通過 repositoryService.createDeployment() 方法來創(chuàng)建一個(gè)流程部署構(gòu)建器,即 DeploymentBuilder。

接下來為 DeploymentBuilder 設(shè)置分類、名稱以及 key 等屬性。

關(guān)鍵的方法是 addInputStream,通過該方法去指定流程文件。官方的提供的指定流程文件的方式有好幾種;除了 addInputStream 之外,另外還有一個(gè) addString,這個(gè)就是將流程文件轉(zhuǎn)為一個(gè)字符串傳入進(jìn)來;addBytes 是將流程文件轉(zhuǎn)為字節(jié)數(shù)組傳進(jìn)來;addClasspathResource 方法則是直接從 classpath 目錄下去加載流程文件,這幾個(gè)方法根據(jù)自己的使用場(chǎng)景選擇一個(gè)合適的方法去調(diào)用即可。

這里有一個(gè)需要跟大家強(qiáng)調(diào)的地方,就是 addInputStream/addBytes/addString 等方法都需要設(shè)置資源名,這個(gè)名稱是可以隨意設(shè)置的,但是注意名稱的后綴,需要是 bpmn20.xml 或者 bpmn,否則流程沒有部署。為什么流程名后綴要是 bpmn20.xml 或者 bpmn 呢?參考第一小節(jié)。

3. 表分析

在我們的流程部署過程中,一共有三張表參與到我們的工作中了,雖然松哥之前已經(jīng)寫過文章和大家梳理 flowable 中各個(gè)數(shù)據(jù)表的作用,不過當(dāng)時(shí)只是大致上介紹了一下,沒有細(xì)說,這次我們就先來看看這次涉及到的三張表。

ACT_RE_DEPLOYMENT

這個(gè)表是流程部署表,每部署一個(gè)流程,這張表中就會(huì)新增一條記錄,用來描述我們剛剛定義好的流程:

圖片

這里的 ID_、NAME_、CATEGORY_ 等等,就是我們?cè)诓渴鹆鞒痰臅r(shí)候設(shè)置的參數(shù)。

ACT_RE_PROCDEF

這是流程定義表,我們每定義的一個(gè)流程,都會(huì)記錄在這張表中:

圖片

這張表中的字段比較多,我這里只是列出來了其中一部分。這這表中有一個(gè) DEPLOYMENT_ID 字段,和 ACT_RE_DEPLOYMENT 表進(jìn)行關(guān)聯(lián),所以 ACT_RE_DEPLOYMENT 和 ACT_RE_PROCDEF 表的關(guān)系,其實(shí)是一對(duì)一的關(guān)系,部署表中的一條記錄對(duì)應(yīng)定義表中的一條記錄。

另外,該表中有一個(gè) CATEGORY_ 的字段,這個(gè)字段表示流程的分類,注意這個(gè)和部署的分類可不一樣,流程部署的分類參數(shù)第二小節(jié)的代碼,流程的分類,說白了其實(shí)就是我們流程定義 XML 文件中的 targetNamespace 屬性,如下圖:

圖片

大家可根據(jù)自己的實(shí)際需求去修改 targetNamespace 屬性的值,這個(gè)值改了之后,ACT_RE_PROCDEF 表中的 CATEGORY_ 字段也會(huì)跟著發(fā)生變化。

另外,該表中還有一個(gè) VERSION_ 字段,這個(gè)看名字就知道是描述記錄的版本號(hào),當(dāng)我們修改了流程的內(nèi)容之后,重新部署的時(shí)候,ACT_RE_DEPLOYMENT 表和 ACT_RE_PROCDEF 表均會(huì)自動(dòng)增加一條記錄數(shù),其中,流程定義表 ACT_RE_PROCDEF 中的記錄的 VERSION_ 字段的值會(huì)自動(dòng)加 1,這樣我們就能夠看到不同歷史版本的流程定義。

那么系統(tǒng)是怎么識(shí)別修改后的流程和前一個(gè)流程是同一個(gè)呢?主要是靠流程的 id 屬性,如下圖:

圖片

這個(gè)流程的 id 屬性,對(duì)應(yīng)到表中,就是 ACT_RE_PROCDEF 表的 KEY_ 字段。

ACT_GE_BYTEARRAY

涉及到的第三張表是這個(gè)通用數(shù)據(jù)存儲(chǔ)表,這個(gè)表的字段比較少,如下圖:

圖片

小伙伴們看到,這個(gè)表中有一個(gè) DEPLOYMENT_ID 字段,這個(gè)就是跟 ACT_RE_DEPLOYMENT 表關(guān)聯(lián)的字段,一條流程部署記錄在 ACT_GE_BYTEARRAY 表中對(duì)應(yīng)兩條記錄,分別是記錄 XML 文件和記錄流程圖片。

這個(gè)表中有一個(gè) BYTES_ 字段,我們部署的流程的 XML 文件就保存在這里,同時(shí),系統(tǒng)默認(rèn)還會(huì)根據(jù) XML 文件生成一張流程圖片,也保存在這里,圖片就像下面這種:

圖片

所以一個(gè)流程部署,在這張表中對(duì)應(yīng)兩條記錄,一條記錄 XML 文件,一條記錄流程圖片。

好啦,這就是流程部署涉及到的三張表。

4. 查詢操作

接下來,強(qiáng)烈建議大家在 Spring Boot 的 application.properties 中添加如下配置,開啟 flowable 日志:

logging.level.org.flowable=debug

這個(gè)配置表示開啟 flowable 的日志,開啟日志的好處是我們可以看到底層的 SQL,學(xué)習(xí) flowable,調(diào)用 API 的時(shí)候,不能只掌握 API 的使用,調(diào)用 API 的時(shí)候,心里想著這是操作哪張表,學(xué)起來更快。

4.1 查詢部署信息

例如我們現(xiàn)在想要查詢流程的部署信息,如下:

@Test
void test01() throws IOException {
List<Deployment> list = repositoryService.createDeploymentQuery().list();
for (Deployment deployment : list) {
logger.info("id:{};key:{}", deployment.getId(), deployment.getKey());
}
}

創(chuàng)建一個(gè)查詢器,然后返回所有的流程部署信息并打印出來,我們看下此時(shí) IDEA 控制臺(tái)打印出來的 SQL 信息:

圖片

可以看到,底層執(zhí)行的 SQL 其實(shí)就是去查詢 ACT_RE_DEPLOYMENT 表。

現(xiàn)在我們?cè)偃タ匆恍┎樵兊姆椒ǎ瑧?yīng)該就很容易明白其含義了:

圖片

小伙伴們看到,我們可以利用流程部署的名字、分類、ID 等各種信息去查詢,可以精確匹配也可以模糊匹配。

例如我想查詢 key 為 javaboy的工作流key 的流程部署文件,但是這個(gè)流程我之前部署過多次(版本升級(jí)),現(xiàn)在我想查詢最近一次的流程部署信息,查詢方式如下:

@Test
void test01() throws IOException {
Deployment deployment = repositoryService.createDeploymentQuery().deploymentKey("javaboy的工作流key").latest().singleResult();
logger.info("id:{};key:{}", deployment.getId(), deployment.getKey());
}

我們來看下控制臺(tái)打印出來的 SQL:

--- [           main] i.p.e.D.selectDeploymentsByQueryCriteria : ==>  Preparing: SELECT RES.* from ACT_RE_DEPLOYMENT RES WHERE RES.KEY_ = ? and RES.DEPLOY_TIME_ = (select max(DEPLOY_TIME_) from ACT_RE_DEPLOYMENT where KEY_ = RES.KEY_ and DERIVED_FROM_ is null and ( (TENANT_ID_ IS NOT NULL and TENANT_ID_ = RES.TENANT_ID_) or (TENANT_ID_ IS NULL and RES.TENANT_ID_ IS NULL) ) ) order by RES.ID_ asc
--- [ main] i.p.e.D.selectDeploymentsByQueryCriteria : ==> Parameters: javaboy的工作流key(String)
--- [ main] i.p.e.D.selectDeploymentsByQueryCriteria : <== Total: 1

這個(gè) SQL 寫的有點(diǎn)復(fù)雜,但是仔細(xì)看就一個(gè)意思,給定查詢的 key 是 javaboy的工作流key,查詢時(shí)間是一個(gè)最大的時(shí)間,這就很好懂了。

4.2 查詢流程定義信息

接下來我們?cè)賮砜纯床樵兞鞒痰亩x信息。查詢所有的流程定義信息,如下:

@Test
void test02() {
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().list();
for (ProcessDefinition pd : list) {
logger.info("id:{};key:{};version:{};",pd.getId(),pd.getKey(),pd.getVersion());
}
}

來看看控制臺(tái)打印的 SQL:

圖片

可以看到,就是去流程定義表 ACT_RE_PROCDEF 去查看所有。

基于此,其他的查詢 API 就都好理解了,例如根據(jù)流程定義的 KEY 去查詢所有的流程定義,這個(gè) KEY 其實(shí)就是流程定義 XML 文件中的 id:

@Test
void test02() {
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().processDefinitionKey("javaboy_submit_an_expense_account").list();
for (ProcessDefinition pd : list) {
logger.info("id:{};key:{};version:{};",pd.getId(),pd.getKey(),pd.getVersion());
}
}

我們來看下查詢 SQL:

圖片

其他的查詢 API 我就不挨個(gè)演示了,方法基本上都是見名知意的。

4.3 原生查詢

要是覺得用 API 查詢 不過癮,我們也可以自己寫 SQL 查詢。

跟前面一樣,例如我想查詢 key 為 javaboy的工作流key 的流程部署文件,但是這個(gè)流程我之前部署過多次(版本升級(jí)),現(xiàn)在我想查詢最近一次的流程部署信息,查詢方式如下:

@Test
void test03() {
Deployment deployment = repositoryService.createNativeDeploymentQuery().sql("SELECT RES.* from ACT_RE_DEPLOYMENT RES WHERE RES.KEY_ = #{key} and RES.DEPLOY_TIME_ = (select max(DEPLOY_TIME_) from ACT_RE_DEPLOYMENT where KEY_ = RES.KEY_) order by RES.ID_ asc").parameter("key", "javaboy的工作流key").singleResult();
logger.info("id:{};key:{}", deployment.getId(), deployment.getKey());
}

自己寫 SQL 即可,參數(shù)的占位符用 #,因?yàn)檫@里底層的 SQL 操作實(shí)際上是 MyBatis。

相同的道理,我想根據(jù)流程定義的 KEY 去查詢流程定義信息,使用原生查詢方式如下:

@Test
void test04() {
List<ProcessDefinition> list = repositoryService.createNativeProcessDefinitionQuery()
.sql("SELECT RES.* from ACT_RE_PROCDEF RES WHERE RES.KEY_ = #{key} order by RES.ID_ asc")
.parameter("key", "javaboy_submit_an_expense_account").list();
for (ProcessDefinition pd : list) {
logger.info("id:{};key:{};version:{};", pd.getId(), pd.getKey(), pd.getVersion());
}
}

責(zé)任編輯:武曉燕 來源: 江南一點(diǎn)雨
相關(guān)推薦

2022-09-28 21:24:33

SQL字段ID

2023-04-10 07:47:01

流程引擎Flowable

2022-09-26 14:25:55

Flowable流程ID

2020-10-13 18:25:33

技術(shù)流程云計(jì)算

2022-05-06 10:42:09

JavaFlowable引擎

2022-10-27 14:18:13

Flowable流程變量

2022-10-31 10:41:02

Flowable流程前綴

2025-05-30 01:00:00

開源流程引擎

2023-08-02 18:48:23

Flowable工作流引擎

2022-07-07 08:38:15

Springflowable引擎

2022-09-05 14:37:14

flowableVue 庫(kù)XML

2024-05-23 08:07:05

2025-01-02 15:16:26

Docker容器云計(jì)算

2020-06-10 08:55:36

Docker容器工具

2022-10-08 11:40:18

Receive阻塞Trigger

2015-06-11 16:36:27

ASP.NET

2022-10-11 10:47:04

UserTaskSQL查詢

2024-05-07 08:31:09

SpringFlowable業(yè)務(wù)流程

2022-10-13 11:38:16

Flowable查詢用戶組

2021-05-13 10:12:55

Kubernetes 微服務(wù)軟件開發(fā)
點(diǎn)贊
收藏

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

亚洲欧美在线免费观看| 黑人极品videos精品欧美裸| 亚洲一区二区三区乱码aⅴ| 久久黄色免费网站| 无码人妻精品一区二区中文| 国产wwwwwww| 1024成人| 一区二区三区 在线观看视| 天堂av手机在线| 日韩伦理精品| 亚洲欧美一区二区不卡| 久久综合中文色婷婷| 91禁在线观看| 免费亚洲一区| 欧美二区在线播放| 1024手机在线观看你懂的| 在线综合色站| 欧美久久久久久蜜桃| 成熟丰满熟妇高潮xxxxx视频| 亚洲免费视频一区二区三区| 成人激情文学综合网| 国产日本欧美在线观看| 国产又粗又爽视频| 激情婷婷久久| 久久电影一区二区| 久操视频在线观看免费| 国产一区二区三区不卡av| 欧美日韩国产综合一区二区三区 | 亚洲美女屁股眼交| 欧美日韩在线精品| 色婷婷中文字幕| 精品一区二区久久| 国产精品福利在线观看| 天天综合网久久综合网| 欧美日韩亚洲一区在线观看| 色妞色视频一区二区三区四区| 给我看免费高清在线观看| 一区二区日韩| 日韩一级大片在线| www.污污视频| 亚洲精品乱码日韩| 在线欧美小视频| 久久久久久久久久久福利| 日本天码aⅴ片在线电影网站| 日韩毛片一二三区| 亚洲综合首页| 女同激情久久av久久| 欧美日韩免费一区二区| 奇米影视亚洲| 这里只有精品在线播放| 国产特黄级aaaaa片免| 久久狠狠久久| 亚洲精品美女视频| 国产激情视频网站| 老牛国内精品亚洲成av人片| 亚洲电影免费观看高清完整版在线观看 | 国产一区在线免费| 亚洲精品一级片| 福利电影一区二区三区| 国产成人成网站在线播放青青| 不卡视频免费在线观看| 国产成人av影院| 国产激情美女久久久久久吹潮| 亚洲国产日韩在线观看| 不卡电影免费在线播放一区| 久久久影院一区二区三区| 青青草在线播放| 国产亚洲精品资源在线26u| 欧美亚洲免费在线| 超碰在线国产| 中文字幕综合网| 成人一级生活片| 两个人看的在线视频www| 色综合天天综合网天天狠天天| 妞干网在线免费视频| 黄色精品视频| 欧美一卡二卡三卡四卡| 国产精品果冻传媒| 欧美18xxxx| 中文字幕亚洲欧美日韩高清| 艳妇荡乳欲伦69影片| 欧美视频日韩| 日本国产高清不卡| 国产又粗又大又黄| 成人永久aaa| 蜜桃麻豆www久久国产精品| 波多野结衣在线影院| 亚洲色图欧美偷拍| 日韩中文字幕在线免费| 欧美日韩五区| 日韩中文在线播放| 亚洲国产婷婷综合在线精品| 欧美啪啪免费视频| jizzjizz少妇亚洲水多| 日韩欧美第一区| 日韩精品电影一区二区| 在线成人直播| 日本精品久久电影| 国产精品视频久久久久久| proumb性欧美在线观看| 天堂资源在线亚洲视频| 色网在线观看| 欧美亚洲免费在线一区| 久久久久亚洲AV成人网人人小说| 蜜桃a∨噜噜一区二区三区| 久久亚洲电影天堂| 中文字幕在线看人| 韩国av一区二区三区| 久久久久资源| 免费男女羞羞的视频网站在线观看| 色诱视频网站一区| 日批免费观看视频| 91视频精品| 欧美最猛黑人xxxx黑人猛叫黄| 国产欧美久久久| 中文字幕的久久| 成熟丰满熟妇高潮xxxxx视频| 成人国产精品久久| 亚洲区免费影片| 日本一区二区三区免费视频| 精品一区二区三区香蕉蜜桃 | 日本大片在线观看| 一区二区三区四区亚洲| 国产日韩欧美久久| 亚洲视频分类| 国内精品小视频在线观看| 国产精品久久久久久无人区| 久久婷婷国产综合国色天香| 成人黄色大片网站| 天堂精品久久久久| 日韩中文字在线| 国产亚洲欧美日韩高清| 91影院在线观看| 日韩人妻无码精品久久久不卡| www欧美在线观看| 中文字幕免费国产精品| 黄色污污网站在线观看| 国产视频在线免费观看| 国产精品一区在线观看你懂的| 色综合电影网| 日韩制服诱惑| 亚洲无线码在线一区观看| 国产精品自拍99| 99精品视频在线观看免费| 国产爆乳无码一区二区麻豆| 久久国际精品| 欧美福利视频在线| www男人的天堂| 洋洋成人永久网站入口| 91福利视频免费观看| 欧美日韩午夜| 国产精品国模大尺度私拍| 波多一区二区| 亚洲精品国产精品国自产在线| 日本一区二区三区免费视频| www.在线欧美| 人妻有码中文字幕| 久久不见久久见国语| 国产成人精品综合| 日本免费在线视频| 欧美一区二区三区在| 欧美日韩免费做爰视频| 成人三级伦理片| 毛片在线视频播放| 欧美日本成人| 国产综合久久久久久| а√天堂8资源在线官网| 欧美成人一区二区三区片免费| 久久久久99精品| 91丨国产丨九色丨pron| 国产性生交xxxxx免费| 欧美3p在线观看| 国产 高清 精品 在线 a| 五月天av在线| 三级精品视频久久久久| www.日日夜夜| 色综合网色综合| 国产精品视频一区二区在线观看| 国产盗摄精品一区二区三区在线 | 国产欧美另类| 视频在线一区二区三区| 国产激情精品一区二区三区| 欧美激情中文字幕乱码免费| 日本不卡免费播放| 欧美丰满少妇xxxxx高潮对白| 激情小说中文字幕| 久久久777精品电影网影网 | 婷婷开心激情网| 亚洲精品成人精品456| 亚洲精品第二页| 免费视频最近日韩| 国产黄色激情视频| 欧美精品一区二区久久| 成人亚洲激情网| 亚洲美女尤物影院| 久久电影一区二区| 国产乱子伦三级在线播放| 欧美一区日韩一区| 天堂а√在线中文在线新版| 亚洲欧洲制服丝袜| 亚洲综合色一区| 国产成人午夜视频| 欧美婷婷精品激情| 亚洲精品女人| 米仓穗香在线观看| 欧洲乱码伦视频免费| 国产精品xxxx| 未满十八勿进黄网站一区不卡| 91av成人在线| 亚洲图区一区| 色多多国产成人永久免费网站 | 草b视频在线观看| 日韩一区电影| 欧美日韩在线高清| 欧美毛片免费观看| 操一操视频一区| 精品久久福利| 国产成人小视频在线观看| 韩国日本一区| 久久精品影视伊人网| 久久精品蜜桃| 日韩电影中文字幕在线观看| www.xxxx国产| 7799精品视频| 亚洲一卡二卡在线观看| 欧美怡红院视频| 99久久精品国产亚洲| 亚洲一卡二卡三卡四卡| 色欲一区二区三区精品a片| 国产丝袜美腿一区二区三区| 在线精品一区二区三区| 成人激情黄色小说| 99久久综合网| 韩国成人福利片在线播放| 最近中文字幕一区二区| 久久中文欧美| 色欲av无码一区二区人妻| 日韩午夜激情| 日韩免费一级视频| 99国产精品私拍| 浮妇高潮喷白浆视频| 国产视频欧美| 欧美亚洲精品一区二区| 最新中文字幕av| 成人av电影在线网| 国产精品入口麻豆| av在线综合网| 网站免费在线观看| 2024国产精品| 一级黄色性视频| 欧美极品美女视频| 日本不卡一区视频| 国产精品久久久久aaaa樱花 | 精品成人乱色一区二区| 精品午夜福利在线观看| 亚洲一区二区欧美日韩| 国产精品30p| 日韩欧美亚洲一二三区| 久久国产视频精品| 在线观看91视频| 中文字幕一级片| 欧美高清视频www夜色资源网| 国产乱淫av片免费| 日韩女优av电影| 网站黄在线观看| 亚洲欧美第一页| 3d成人动漫在线| 欧美精品做受xxx性少妇| 欧美日韩经典丝袜| 3344国产精品免费看| 成人在线爆射| 成人有码在线视频| 国内精品麻豆美女在线播放视频| 麻豆精品视频| 色婷婷亚洲mv天堂mv在影片| 日韩精品一区二区三区电影| 国产综合久久| av动漫免费看| 久久精品国产免费看久久精品| jizzzz日本| 成人激情动漫在线观看| www亚洲色图| 亚洲黄色小视频| 国产黄色免费观看| 91麻豆精品国产91久久久久久 | 国产成人久久精品77777综合| 精品久久久久香蕉网| 天堂av在线资源| 久久精品国产2020观看福利| aa级大片免费在线观看| 国产成人久久精品| 538任你躁精品视频网免费| 欧美日本国产精品| 亚洲天天综合| 欧美女人性生活视频| 狠狠久久亚洲欧美| 日本丰满少妇裸体自慰| 成人欧美一区二区三区1314| 国产情侣在线视频| 成人激情免费视频| 亚洲综合中文字幕在线观看| 亚洲欧洲av| 免费的av在线| 日本欧美在线看| 亚洲 欧美 日韩在线| 中文字幕一区二区三区不卡在线| 国产黄色片视频| 日韩一区二区在线播放| 黄色av网站在线| 久久久久一本一区二区青青蜜月| 久久91超碰青草在哪里看| 久久精品美女| 亚洲小说欧美另类婷婷| 三级性生活视频| 国产清纯在线一区二区www| 久久精品性爱视频| 欧美一区二区在线视频| 国产美女性感在线观看懂色av| 久久久久久91| 国产一区二区三区免费观看在线 | 久久久久麻豆v国产精华液好用吗| 国产精品无遮挡| 欧美日韩综合一区二区三区| 亚洲成人黄色在线观看| 直接在线观看的三级网址| 国产精品高潮呻吟久久av黑人| 丝袜连裤袜欧美激情日韩| av一区二区三区免费观看| 国产一区美女在线| www.4hu95.com四虎| 欧美在线看片a免费观看| 日韩专区一区二区| 97在线免费观看视频| 国产精品任我爽爆在线播放| 在线视频一二三区| 狠狠狠色丁香婷婷综合激情| 黄色激情小视频| 欧美日韩国产中文| 亚洲精品传媒| 成人精品一区二区三区| 久久视频精品| 毛片毛片毛片毛| 国产精品福利一区二区| 一区二区三区精彩视频| www.久久久久| 亚洲男人在线| 午夜啪啪免费视频| 国内精品不卡在线| 日本高清一二三区| 日韩欧美一区在线| 美女精品视频| 国产传媒一区二区三区| 亚洲久久一区| 人人妻人人澡人人爽人人精品| 精品免费在线视频| 麻豆影视在线| 国产精品亚洲网站| 婷婷亚洲五月色综合| 亚洲一级片免费观看| 一区二区不卡在线播放 | 国产日韩欧美a| 在线免费看91| 久久国产色av| 久本草在线中文字幕亚洲| 国产极品粉嫩福利姬萌白酱| 日本电影一区二区在线观看| 尤物九九久久国产精品的特点| 97人人做人人爽香蕉精品| 亚洲一区二区三区加勒比| 国内外成人在线视频| 久久这里只有精品国产| 日韩精品中文字幕有码专区| 主播大秀视频在线观看一区二区| 欧美一级免费在线观看| 成人午夜私人影院| 五月婷婷视频在线| 中文字幕欧美日韩在线| 国内不卡的一区二区三区中文字幕 | 国产成人欧美在线观看| 国产精品成久久久久| 国产亚洲精品成人a| 色综合天天综合网天天看片| 欧美精品videos另类| 国产伦精品一区二区三区高清版| 亚欧成人精品| 免费成人美女女在线观看| 亚洲精品在线免费播放| 亚洲不卡系列| 成品人视频ww入口| 国产精品网站在线播放| 亚洲第一天堂网| 国产精品r级在线| 欧美精品麻豆| 无码少妇一区二区| 日韩欧美电影在线| 精品美女一区| 五十路熟女丰满大屁股| 18欧美亚洲精品| 青青免费在线视频| 国产福利久久|