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

一種支持泛型解析的PHPScf無痕化技術方案

開發
現有方案可以看出,現在PHP調用Java接口步驟是很繁瑣的,開發效率偏低。

1 背景介紹

PHP調用Java提供的接口,需要代碼轉化,使用scf調用。 目前有兩種技術方案: 架構組方案和安居客方案。

架構組方案如下所示:

右上圖展示了要轉換代碼需要填寫的信息,左上圖展示了整個接口調用所需要的步驟,依次總共需要8步。

架構組這套方案是有缺陷的:

1.步驟繁瑣,耗時,溝通成本高。

2.無法解析泛型,需另開發一個不含有泛型的接口,比如XXXforPHP。

3.一個接口涉及多個服務調用,本地調試時無法同時調試線上和沙箱服務。

安居客方案如下:

右上圖展示了代碼轉化工具的使用方法,左上圖展示了實現接口調用的整個步驟,共需7步。

從架構組方案迭代到安居客方案,溝通成本相對減少,但是也是有其缺陷的:

1.步驟還是相對比較復雜,比較耗時。

2.遇到泛型需要去詢問服務方是何種泛型,不能自動解析。

3.一個接口涉及多個服務調用,本地調試時無法同時調試線上和沙箱服務。

4.轉換代碼是一種離線模式,同時不能下載多個服務。

現在存在的問題有以下幾點:

1.步驟太多,既耗時開發效率也低。

2.代碼轉換完以后需要自己將代碼拷貝到項目中的指定目錄(有很多同學因為目錄拷貝錯誤導致接口調不通)。

3.泛型不能自動解析。

4.本地接口涉及多個服務時,不能同時調試線上和沙箱服務。

2 重構思想

從現有方案可以看出,現在PHP調用Java接口步驟是很繁瑣的,開發效率偏低。 而且還有兩個問題: 泛型無法解析、不便本地調試。 所以要進行重構來解決這些問題。 重構要圍繞下面三個方向進行:

3 流程解析

圍繞現有問題進行了重構:

具體實現流程如下。

第一步:實現代碼工程化管理。

  • 開發PHPbase服務解決Java代碼下載問題。
  1. 解析pom坐標信息。根據坐標拼接要下載jar包的URL,通過copyURLToFile將URL的信息下載到指定目錄下,也就是將服務的jar包下載下來。 
  2. 解析下載的jar包。循環讀取jar包信息,碰到pom.xml文件讀取依賴信息,并下載。有的依賴version寫在了父pom的dependency內,需要通過父pom讀取,還要兼顧version寫在屬性中的情況。父pom的依賴信息也要下載下來。獲取到所有的jar包,放到一個URL數組里,然后通過URLClassLoader解析,碰到以.class結尾的文件進行判斷是contract?entity?enum? 流程圖如下:


  1. 解析contract。對于注解中有serverContract的就是contract文件。通過反射拿到類中含有的方法名字,以及入參和出參。參數的類型包括一些基本類型string、int、bool等還會有一些復雜類型map、list、set等,還可能是泛型。對于復雜類型map、list等類型會繼續分析子元素的類型信息。假如是map類型,那它的子元素信息就是key_type:XXX,value_type:XXX。如果子元素中key_type是個object,那么它的key_class就是這個object的包名。同樣,如果子元素的value_type是個object,那么它的value_class就是這個object的包名。對于復雜類型list、set等也是如此分析。如果是泛型,它的elem_type賦值為object,elem_class賦值為java.lang.object。將方法名字拼接一個hash值(方法名+入參+出參)再拼接一個字符串params代表入參,以這個字段為key,以入參的類型信息為value放到變量paramVar中。同樣方法名字拼接一個hash值(方法名+入參+出參)再拼接一個字符串return代表出參,以這個字段為key,以出參的類型信息為value也放到變量paramVar中。入參和出參的具體信息可以看下圖。最后以contract類的包名信息為key,paramVar為value放入變量contractMap中。
  2. 解析entity。如果注解SCFSerializable=true and SCFMember=true,就是一個entity文件。通過SCFMember獲取到字段的信息:var、orderID、generic,將這些信息放入變量TSPEC中,key是orderId的值,value就是這些字段的信息。 對于字段類型分析同contract中類型分析是一致的,在此不贅述了。如果這個實體有繼承關系,要將繼承信息也放入變量TSPEC中。key是999,value是繼承信息。如果注解SCFSerializable.name不為空,將這個值也放入變量TSPEC中。key是998,value是注解SCFSerializable.name的值。最后以entity類的包名信息為key,TSPCE為value放入entityMap中。
  3. 解析enum。如果isEnum=true的就是枚舉文件。通過反射獲取字段信息也就是constant信息,放入enumMap中,key是枚舉類的包名,value是各個常量值。
  4. 返回結果。將contract、entity、enum這三個信息組裝在一起放入Json中作為結果返回,如下圖所示也就是最下面的這個圖。


  • 開發build.php來實現Java代碼到PHP代碼的轉化,解決現在代碼需要人工拷貝的問題。流程圖如下:

從PHPbase拿到解析坐標后的數據,也就是那個JSON數據,反解析獲取到三個包含contract、entity、enum的數組。

下面三個圖展示了三個數組的部分具體內容:

第一個圖是截取的contract數組中的部分信息。key是一個完整的包名,value就是這個類中的所有函數信息。我們看下第一個方法,key是由方法名字+hash值+params字符串組成。value就是入參的類型信息,可以看到有string,有object。類型是object 的就有這個對象對應的class信息。params是入參,帶有return的就是出參信息。

第二個圖是截取的entity數組中的部分信息。我們看到key是一個完整的包名,value是實體的字段信息。比如第一個字段排序是第一個,不是泛型,類型是list,子元素類型是object,elem_class就是這個object的包名信息。key為998對應的value就是Java中注解SCFSerializer.name的值

第三個圖是截取的enum數組中的部分信息。key是完整包名,value就是各個常量的值。

數組信息分析完,看下具體解析過程。contract數組解析流程圖如下所示:

拿到contract數組循環遍歷,對于類文件的目錄我們用的是包名+固定路徑“Libs/wscfcore/package”,為了防止和項目中已有的代碼相區別,我們將代碼放到了libs/wscfcore/package下。命名空間也是包名信息+剛才那個固定路徑,大家可以看下右上方這個圖。對于類文件的依賴,也是包括兩部分,一個是固定的依賴 “use libswscfcoreclient”,這個是因為類中的構造方法用到了scf client的實例化。依賴的另一部分就是參數中用到的引用。生成方法的時候要考慮兩個問題,一個是重名問題,一個是序列化問題。

當方法重名的時候我們用0,1來進行區分,比如getInfo0,getInfo1。這里面有一個坑,就是要考慮下每次生成這個方法時的順序問題,因為方法重名里面的參數個數是不一樣的,所以名字絕對不能變換順序。我們為了防止發生順序變更問題,在Java代碼生成的時候用到了一個hash值。就是將方法名、入參、出參做了一個hash值,這個肯定是唯一的,通過這個來保證順序不變。

生成方法的時候還要考慮第二個問題那就是序列化的問題,我們看下右上方這個圖,對于第四個參數的類型是非基礎類型,所以這個類型序列化時對應的typeID也就是hash值就從這個類的包名來獲取,通過在這建立全局數組,在后邊生成typeID的時候獲取這個參數的包名信息。$params這個參數里面包含了lookup,methodName,以及入參信息。

entity數組解析流程圖如下所示:

生成實體的過程中也要生成目錄,命名空間,依賴。這些同contract的分析是一樣的,就不贅述了。實體的構造方法我們看右上圖可以看出是對靜態變量TSPEC賦值的過程。這個變量是一個數組,里面包含了各個字段的信息,名字var,順序orderID,是不是泛型isGeneric,以及類型type。對于復雜類型list也要生成它的子元素的類型。這個類型信息在從服務器拿到二進制流數據進行反序列化的時候要用到,類型必須和其相同才能正確的解析出來。如果這個實體類有繼承,那么也要生成這個類的繼承類。

enum數組解析如下圖所示:

Enum的解析就簡單些了。要生成目錄,命名空間,const信息。const信息遍歷enum數組即可。到這Java代碼到PHP代碼的轉化就完成了,并生成在了指定位置。我們再也不用手動拷貝代碼了。避免了因為拷貝代碼路徑出錯導致的接口調不通問題。

  • 引入一個service.xml文件來管理服務版本信息,所有要下載的服務都寫在這里,采用XML格式的文件,開發同學直接將坐標信息復制到這里即可,方便開發同學使用。

第二步:解決泛型解析問題。

Java同學是知道泛型對應的具體是何種類型,就是他們開發的實體中的某一個,不過PHP同學是不知道的。但是這個泛型序列化以后的typeID值也就是hashcode值我們可以拿到,那么我們將所有實體做一個hash計算,然后我們反推是不是就可以知道泛型是哪個實體了呢?

所以優化build.php文件,收集服務的實體和枚舉信息,進行hash計算。我們現在有scfv1、scfv3兩種協議,不同協議對應的typeID是不同的,所以針對這兩種協議進行hash計算。對于scfv1協議,若實體中有scheme字段(998),那么對scheme字段進行。若沒有,則對類名進行hash計算。而對于scfv3協議是對整個包名進行計算。有了這個hash文件就可以解析泛型了。

第三步:解決本地無法同時調試線上和沙箱服務的問題。增加沙箱配置文件,方便開發者進行調試。文件如下圖所示:

服務名字和沙箱IP要準確對應上。底層獲取服務信息時,判斷有此文件,拿到服務的信息就可以直接走沙箱服務了。對于不存在于此文件的服務是走線上的。如果將代碼放到沙箱環境,灰度的申請就可以用這個文件代替了,省去了申請的操作。

第四步:將步驟由8步減少為3步。

  • 將Java的pom坐標信息放入service.xml文件中。
  • 執行build文件,響應信息如下圖所示。從service.xml中獲取坐標信息,檢查是否已經下載過該服務。若沒有下載過,掉PHPbase拉取Java代碼,然后轉化為PHP代碼,并放到項目中的指定位置。

  • 接口調用。運用反射機制實例化調用類,然后再調用類中的方法。

下面這個圖是IHouseService類的內容,可以看到實例化此類要傳入服務名serviceName,查找類lookup,分別對應上圖中的hmc、HouseService

4.無痕調用

從集團方案迭代到租房方案,調用步驟由原來的八步減少到了現在的三步。

租房方案的實現代碼的目錄結構展示如下所示:

wscfcore這個目錄是包括了所有scf相關的文件。Hashdata這個目錄里面放的是hash文件。package.lock里面存儲了所有項目中目前已經下載的服務坐標信息,存的是字符串。package目錄里面存的是所有下載的代碼。Build文件是整個代碼的核心,根據坐標拉取Java代碼然后再轉化為PHP代碼放在指定位置。service.xml文件是存放我們要下載的服務的pom坐標,采用xml格式方便大家直接將坐標信息復制粘貼即可。wscfcore目錄會放到composer中供大家下載使用。

PHP同學用這套代碼,調用某個服務的接口時,實現了PHP同學調Java接口就像Java同學調Java接口是一樣的,是一種無痕式的調用。

責任編輯:張燕妮 來源: 58技術
相關推薦

2016-09-20 12:49:29

2019-04-03 10:55:03

AI

2022-07-13 11:49:18

接口遷移方案

2024-04-24 12:09:50

隱私數據泄露網絡安全

2021-06-11 00:11:23

GPS數據協議

2021-12-09 15:37:50

自動駕駛數據人工智能

2019-02-27 16:07:09

折疊手機三星良品率

2023-07-18 07:23:11

方案payloadrequest

2016-03-21 13:24:22

apk安卓開發

2011-05-10 09:09:36

身份驗證HID Global

2022-11-27 08:08:42

2020-12-09 10:15:34

Pythonweb代碼

2022-06-22 09:44:41

Python文件代碼

2022-07-07 10:33:27

Python姿勢代碼

2020-12-23 10:10:23

Pythonweb代碼

2022-06-06 15:44:24

大數據數據分析思維模式

2014-12-01 09:54:40

JavaScript

2009-09-02 17:38:16

C#泛型支持

2022-09-22 08:18:28

JavaAssistJboss開源

2020-09-03 17:50:36

AI人工智能無代碼
點贊
收藏

51CTO技術棧公眾號

久久久久久久久久久免费 | 天天做天天摸天天爽国产一区| 色综合天天狠天天透天天伊人| av片中文字幕| 黄色香蕉视频在线观看| 麻豆免费版在线观看| 日韩极品一区| 欧美午夜美女看片| 国产精华一区二区三区| 丁香花五月激情| 免费成人毛片| 国产精品久久久久久久浪潮网站| 欧美性视频网站| 精品人妻一区二区三区日产| av网址在线| 神马久久一区二区三区| 亚洲福利电影网| 91亚色免费| 国语对白在线播放| 亚欧洲精品视频在线观看| 亚洲一区二区在线免费看| 欧美天天视频| 99精品久久99久久久久| 欧美精品久久久久久久免费观看| 亚洲一区二区观看| 久久影院午夜精品| 亚洲欧洲国产日本综合| 国产欧美一区二区三区久久| 成年人在线免费看片| 网友自拍亚洲| 国产日产亚洲精品系列| 人人爽久久涩噜噜噜网站| 女同毛片一区二区三区| 在线观看网站免费入口在线观看国内| 99精品欧美一区二区三区综合在线| 国产精品视频一区二区三区四| 快灬快灬一下爽蜜桃在线观看| 亚洲va中文在线播放免费| 亚洲愉拍自拍另类高清精品| 国产日韩一区二区| 国产成人亚洲欧洲在线| 亚洲黄页在线观看| 欧美亚洲禁片免费| 国产又大又长又粗又黄| wwwav在线播放| 在线观看一区| 草莓视频18免费观看| 国产系列在线观看| 久久精品99久久久久久| gogogogo高清视频在线| 国产精品亚洲人在线观看| 米奇精品一区二区三区在线观看| japan高清日本乱xxxxx| gogo高清午夜人体在线| 久久综合久久综合九色| 91精品久久久久久| 最好看的日本字幕mv视频大全 | 欧美色区777第一页| 伊甸园精品99久久久久久| 亚洲av无码国产精品久久不卡| 99av国产精品欲麻豆| 亚洲欧美中文日韩在线v日本| 亚洲黄色av网址| 在线观看操人| 亚洲女人****多毛耸耸8| 久久99精品国产一区二区三区| 波多野结衣不卡| 在线成人超碰| 亚洲免费影视第一页| 欧美一级小视频| 小草在线视频免费播放| 懂色aⅴ精品一区二区三区蜜月| 亚洲一区二区三区加勒比| 丰满少妇高潮在线观看| 视频在线观看国产精品| 欧美成人在线网站| 欧美黄片一区二区三区| 国产麻豆一区二区三区精品视频| 91精品国产综合久久婷婷香蕉 | 国产精品伊人日日| 波多野结衣在线观看视频| 美女被到爽高潮视频| 国产三区在线观看| 久久综合九色综合欧美亚洲| 久久久久久久久一区| 酒色婷婷桃色成人免费av网| 成人一区二区在线观看| 国产精品久久久久久久久久久新郎| 国产女片a归国片aa| 国内综合精品午夜久久资源| 日韩亚洲欧美成人| 中文字幕人妻一区二区| av自拍一区| 91精品国产综合久久婷婷香蕉| 911亚洲精选| 国语精品视频| 欧美乱妇一区二区三区不卡视频| 国产福利视频在线播放| 成人国产精品入口免费视频| 色狠狠一区二区三区香蕉| 国产真人做爰毛片视频直播| bt在线麻豆视频| 午夜精品aaa| 99久久免费观看| av香蕉成人| 福利一区视频在线观看| 国产探花在线看| 欧美123区| 精品国产乱码久久久久久婷婷| 亚洲成色www.777999| 欧美特大特白屁股xxxx| 欧美一区2区视频在线观看| 黄色一级视频片| 老牛影视精品| 欧美高清激情brazzers| 噜噜噜在线视频| 国产又粗又猛又爽又黄视频| 松下纱荣子在线观看| 欧美视频一区二| 中文字幕三级电影| 久久大胆人体视频| 亚洲国产成人在线播放| 国产伦精品一区二区三区精品| 精品一区二区三区在线| 一本一道久久a久久精品逆3p| 麻豆精品免费视频| 欧美视频官网| 国产精品稀缺呦系列在线| 伊人影院中文字幕| 精品在线你懂的| 92看片淫黄大片看国产片| www.五月激情| 国产精品你懂的在线| 中文网丁香综合网| 澳门成人av网| 欧美三级日韩三级国产三级| a视频免费观看| 国产精品草草| 91最新国产视频| 五月香视频在线观看| 一色桃子久久精品亚洲| 超碰影院在线观看| 亚洲我射av| 精品乱人伦小说| 极品粉嫩小仙女高潮喷水久久| 一区二区三区国产精华| 国产噜噜噜噜噜久久久久久久久| 欧美扣逼视频| 欧美日韩亚洲天堂| 动漫美女无遮挡免费| 欧美96在线丨欧| 2018中文字幕一区二区三区| 性高潮视频在线观看| 久久亚洲精精品中文字幕早川悠里| 日本黄大片在线观看| 欧美午夜在线播放| 欧美精品久久一区二区 | 欧美精品高清视频| 亚洲精品电影院| 欧美色图首页| 91免费看网站| 99色在线观看| 亚洲国产小视频| 来吧亚洲综合网| 国产农村妇女毛片精品久久莱园子| 日韩美女在线播放| 国产成a人亚洲精v品无码| 26uuu色噜噜精品一区| 最新国产精品久久| 亚洲精品大片| 亚洲精品网站在线播放gif| а天堂中文在线资源| 捆绑变态av一区二区三区| 国产亚洲精品久久飘花| av2020不卡| 亚洲女人被黑人巨大进入al| 老熟妇一区二区三区| 欧美高清一级片在线观看| 男女激情免费视频| 97成人超碰| 国产一区二区久久精品| 日韩欧美高清在线观看| 99精品国产热久久91蜜凸| 91看片就是不一样| 日韩激情在线| 国产高清精品一区二区| 日韩伦理精品| 色777狠狠综合秋免鲁丝| 精品人妻一区二区三区免费看| 国产东北露脸精品视频| 亚洲精品欧洲精品| 欧美大胆成人| 久久精品91久久香蕉加勒比| 中文字幕av第一页| 亚洲欧美偷拍另类a∨色屁股| 日韩一级免费在线观看| 影视一区二区| 欧美午夜精品久久久久免费视 | 亚洲宅男一区| 成人a级免费视频| 免费在线稳定资源站| 欧美日韩国产高清一区二区三区 | 亚洲人精品午夜射精日韩| 国产精一区二区| 北条麻妃久久精品| 日韩中文字幕观看| 香蕉久久一区二区不卡无毒影院| 99久久久无码国产精品性| 国产一区免费电影| 手机在线视频你懂的| 青青草原在线亚洲| 欧美亚洲国产视频| 精品国产丝袜高跟鞋| 精品亚洲一区二区三区在线观看| 国产一区二区在线视频聊天| 国产精品乱人伦| 午夜视频在线观看国产| 久久99国产精品免费| 成人免费观看毛片| 国内精品久久久久久久影视麻豆 | 熟妇高潮一区二区高潮| 亚洲一二三区视频在线观看| 97在线观看免费视频| 99久久久无码国产精品| 久久久久久久激情| 一个色综合网| 正在播放亚洲| 郴州新闻综合频道在线直播| 国产这里只有精品| 波多野结衣亚洲一二三| 久久久久久噜噜噜久久久精品| 蜜桃视频网站在线| 日韩免费观看高清完整版| 精品无码人妻一区二区三区品| 波多野结衣视频一区| 国产成人a亚洲精v品无码| 黄色亚洲精品| 最新国产精品久久| 欧美成免费一区二区视频| 亚洲aⅴ日韩av电影在线观看| 中文字幕av一区二区三区佐山爱| 午夜欧美不卡精品aaaaa| 久热av在线| 日韩成人av一区| 亚洲视屏在线观看| 欧美性极品xxxx做受| 成人精品免费在线观看| 中文字幕的久久| 午夜理伦三级做爰电影| www久久精品| 中文字幕5566| 久久精品视频免费| 日韩欧美中文在线视频| 亚洲精品女人| 亚洲精品高清国产一线久久| 国产欧美日韩| 日韩久久不卡| 亚洲精品一区二区三区中文字幕| 91chinesevideo永久地址| 波多野结衣中文在线| 在线观看成人黄色| www.久久热.com| 精品久久99ma| 欧美 日韩 人妻 高清 中文| 亚洲国产成人精品女人久久久 | 区一区二区三区中文字幕| 不卡一区视频| 亚洲伊人第一页| 99久久免费精品国产72精品九九 | 性欧美亚洲xxxx乳在线观看| 久久男人av资源站| 日韩av免费在线看| 久久久久伊人| 91中文字精品一区二区| 国产精品白丝av嫩草影院| 国产精品久久91| 国产精品久久久久久久久免费高清| 国产欧洲精品视频| 试看120秒一区二区三区| 国产精品国语对白| 台湾天天综合人成在线| 97久草视频| 亚洲欧美成人vr| 一区二区免费电影| 激情偷拍久久| 青青在线免费观看视频| 亚洲精品综合| 国产视频一区二区视频| 国产在线一区观看| 黄色片视频免费观看| 成人免费不卡视频| 51妺嘿嘿午夜福利| 亚洲女性喷水在线观看一区| 欧美日韩综合在线观看| 欧美日韩在线综合| 刘亦菲毛片一区二区三区| 伊人激情综合网| 色呦呦在线观看视频| 久久成人国产精品| 黄色av电影在线播放| 性色av一区二区三区| 日韩一区二区三区四区五区 | 你懂的视频欧美| 中文字幕第一页亚洲| 国产日韩视频| 一级日本黄色片| 国产日韩欧美制服另类| 久久久无码精品亚洲国产| 欧美中文字幕一区| 日日骚av一区二区| 欧美一级爆毛片| 国产三级自拍视频| 91精品一区二区三区久久久久久 | 国产精品9191| 亚洲国产一区二区a毛片| 欧美brazzers| 亚洲精美色品网站| 日本在线视频中文有码| 国产精品一区二区在线| 亚洲精品高潮| 四虎影院一区二区| 日韩高清不卡在线| 欧美精品性生活| av成人动漫在线观看| 青娱乐免费在线视频| 欧美日韩中文字幕一区| 你懂的免费在线观看视频网站| 欧美激情在线狂野欧美精品| 国产视频一区二| 亚洲一区二区三区精品在线观看| 噜噜噜躁狠狠躁狠狠精品视频| 无人在线观看的免费高清视频| 成人aa视频在线观看| 欧美日韩精品一区二区三区视频播放| 欧美三级午夜理伦三级中视频| 国产三级电影在线| 欧美最顶级的aⅴ艳星| 久久人人爽人人爽人人片av不| 日韩成人三级视频| 国产精品资源在线观看| 国产日产精品一区二区三区的介绍| 欧美自拍偷拍一区| 麻豆国产在线播放| 日韩免费高清在线观看| 猛男gaygay欧美视频| 熟女性饥渴一区二区三区| 99久免费精品视频在线观看| 精品成人免费视频| 亚洲激情第一页| 国产在线观看www| 国产精品久久视频| 国产一区不卡| av免费网站观看| 国产欧美一二三区| 久久久久无码精品国产| 日韩欧美国产一区二区三区| av软件在线观看| 成人黄色在线免费观看| 九九在线高清精品视频| 凹凸日日摸日日碰夜夜爽1| 久久久不卡网国产精品二区| 久草视频一区二区| 一区二区三区无码高清视频| 成人在线中文| 在线观看免费91| 国产suv精品一区二区6| 美国一级黄色录像| 亚洲成人一区二区在线观看| 丰满肥臀噗嗤啊x99av| 性欧美xxxx| 国产成人精品免费视| 日韩不卡一二三| 99re热这里只有精品免费视频| 国产成人精品一区二三区| 国产午夜精品视频| 综合欧美精品| 亚洲色欲久久久综合网东京热| 99re在线视频这里只有精品| 日韩一级在线视频| 日韩视频在线免费| 久久亚洲道色| 一区二区三区 欧美| 亚洲人成网站色在线观看| 亚洲女同志亚洲女同女播放| 9.1国产丝袜在线观看| 欧洲三级视频| www.欧美com| 亚洲欧美一区二区不卡| 日韩在线视频免费| 国产精品女主播视频| 欧美精品国产| 最近中文字幕免费| 日韩欧美中文字幕制服| 成人av观看| 国产成人一二三区| 激情另类小说区图片区视频区| 免费看黄色av| 欧美一级在线视频| 校园春色亚洲色图| 欧美一级爱爱视频|