日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

GitHub轻松阅读微服务实战项目流程详解【第三天:公共模块的设计与实现】

發(fā)布時(shí)間:2024/10/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GitHub轻松阅读微服务实战项目流程详解【第三天:公共模块的设计与实现】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Three Day

  • 1.緩存
    • (1)賬戶(hù)中心緩存Key
    • (2)圖書(shū)資源緩存Key
    • (3)精品頁(yè)緩存key
    • (5)緩存操作類(lèi)
  • 2.常量
    • (1)精品頁(yè)常量類(lèi)
    • (2)jwt常量類(lèi)
  • 3.圖書(shū)相關(guān)枚舉
    • (1)圖書(shū)分類(lèi)枚舉類(lèi)
    • (2)書(shū)單列表功能枚舉類(lèi)
    • (3)圖書(shū)連載狀態(tài)枚舉類(lèi)
  • 4.請(qǐng)求參數(shù)封裝
  • 5.統(tǒng)一返回結(jié)果
    • (1)Http狀態(tài)碼封裝
    • (2)操作結(jié)果封裝
    • (3)返回結(jié)果工具類(lèi)
  • 6.POJO


github地址:https://github.com/Zealon159/light-reading-cloud


該模塊存放了一些公共的POJO類(lèi)、工具類(lèi)等

1.緩存

(1)賬戶(hù)中心緩存Key

public class RedisAccountKey {/** 圖書(shū)喜歡數(shù)緩存(hash) */public final static String ACCOUNT_CENTER_BOOK_LIKES_COUNT = "account-center:book-likes-count";}

(2)圖書(shū)資源緩存Key

public class RedisBookKey {/** 圖書(shū)信息緩存 */public static final String getBookKey(String bookId){return String.format("book-center:detail-%s",bookId);}/** 資源中心圖書(shū)章節(jié)緩存 */public static final String getBookChapterKey(String bookId){return String.format("book-center:chapter-%s",bookId);}/** 資源中心圖書(shū)章節(jié)列表緩存 */public static final String getBookChapterListKey(String bookId){return String.format("book-center:chapter-list-%s",bookId);}/** 資源中心圖書(shū)章節(jié)節(jié)點(diǎn)緩存 */public static final String getBookChapterNodeKey(Integer bookId){return String.format("book-center:chapter-node-%s",bookId);}/** 圖書(shū)資源中心feign-client緩存 */public static final class BookCenter {/** 資源中心圖書(shū)緩存 */public static final String getFeignClientBookKey(String bookId){return String.format("book-center:feign-client-book-%s",bookId);}} }

(3)精品頁(yè)緩存key

public class RedisHomepageKey {/*** 主頁(yè)緩存Key* @param type 類(lèi)型1.主頁(yè) 2.男生 3.女生* @return*/public static final String getHomepageKey(Integer type){return String.format("home-page:index-%s", type);}/** 主頁(yè)Banner緩存Key */public static final String getBannerVoKey(Integer bannerId){return String.format("home-page:banner-vo-%s", bannerId);}/** 主頁(yè)書(shū)單DB緩存Key */public static final String getBooklistDbKey(Integer booklistId){return String.format("home-page:booklist-db-%s", booklistId);}/** 主頁(yè)書(shū)單緩存Key */public static final String getBooklistVoKey(Integer booklistId){return String.format("home-page:booklist-vo-%s", booklistId);}/** 主頁(yè)書(shū)單隨機(jī)緩存Key */public static final String getBooklistRandomVoKey(Integer booklistId){return String.format("home-page:booklist-random-vo-%s", booklistId);}/** 主頁(yè)書(shū)單圖書(shū)分頁(yè)更多 */public static final String getBooklistItemPagingKey(Integer booklistId){return String.format("home-page:booklist-item-paging-%s", booklistId);} }

(4)Redis緩存有效時(shí)間工具類(lèi)

/*** Redis 緩存有效時(shí)間(單位:秒)*/ public class RedisExpire {// 1分鐘public static final long MINUTE = 60;// 2分鐘 60*2public static final long MINUTE_TWO = 120;// 3分鐘 60*3public static final long MINUTE_THR = 180;// 5分鐘 60*5public static final long MINUTE_FIV = 300;// 10分鐘 60*10public static final long MINUTE_TEN = 600;// 20分鐘public static final long MINUTE_TWENTY = 1200;// 30分鐘 60*30public static final long MINUTE_THIRTY = 1800;// 1小時(shí) 60*60*1public static final long HOUR = 3600;// 2小時(shí) 60*60*2public static final long HOUR_TWO = 7200;// 4小時(shí)public static final long HOUR_FOUR = 14400;// 1天 60*60*24public static final long DAY = 86400;// 2天 60*60*24*2public static final long DAY_TWO = 172800;// 1周 60*60*24*7public static final long WEEK = 604800;// 1月 60*60*24*30public static final long MONTH = 2592000;// 1年 60*60*24*365public static final long YEAR = 31536000;}

(5)緩存操作類(lèi)

/*** cache 操作類(lèi)* @author zealon*/ @Component public class RedisService {/** 日志 */private static final Logger LOGGER = LoggerFactory.getLogger(RedisService.class);/** 默認(rèn)緩存時(shí)間(10分鐘) */public static final Long DEFAULT_CACHE_TIME = RedisExpire.MINUTE_TEN;/** 操作字符串 */private ValueOperations<String, String> valueOperations;/** 操作hash */private HashOperations hashOperations;/** 操作list */private ListOperations listOperations;/** 操作set */private SetOperations setOperations;/** 操作有序set */private ZSetOperations zSetOperations;/** Redis模板 */@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate RedisTemplate redisTemplate;/*** 構(gòu)造方法初始化操作類(lèi)*/@PostConstructprivate void inInit() {valueOperations = stringRedisTemplate.opsForValue();hashOperations = redisTemplate.opsForHash();listOperations = stringRedisTemplate.opsForList();setOperations = stringRedisTemplate.opsForSet();zSetOperations = stringRedisTemplate.opsForZSet();}/************************************** 公共方法 *//*** 刪除緩存* @param key 緩存key* @return Boolean 成功失敗*/public Boolean removeCache(String key) {Long begTime = System.currentTimeMillis();Boolean result = this.removeCacheComm(key);Long endTime = System.currentTimeMillis();LOGGER.info("刪除緩存耗時(shí) key={} time={}", key, endTime - begTime);return result;}/*** 根據(jù)Key刪除緩存* @param key 緩存key* @return Boolean 成功失敗*/public Boolean removeCacheComm(String key) {Boolean hasExist = hasKey(key);if (hasExist) {return stringRedisTemplate.delete(key);} else {return true;}}/*** 刪除多個(gè)key** @param keys 緩存key* @return Long 刪除key的數(shù)量*/public Long removeList(Set<String> keys) {if (StringUtils.isEmpty(keys)) {return null;}return stringRedisTemplate.delete(keys);}/*** 獲取匹配的key** @param keyRegular key正則表達(dá)式* @return Set<String> 匹配的可以列表*/public Set<String> getKeyRegualr(String keyRegular) {if (StringUtils.isEmpty(keyRegular)) {return null;}return stringRedisTemplate.keys(keyRegular);}/*** 設(shè)置過(guò)期時(shí)間** @param key 緩存key* @param time 緩存時(shí)間*/public void setExpire(final String key, Long time) {stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);}/*** 獲取緩存時(shí)間剩余時(shí)間** @param key 緩存key* @return long 緩存剩余時(shí)間*/public Long getExpire(final String key) {return stringRedisTemplate.getExpire(key, TimeUnit.SECONDS);}/*** 判斷key是否存在** @param key 緩存key* @return boolean 成功失敗*/public Boolean hasKey(String key) {return stringRedisTemplate.hasKey(key);}/************************************** 公共方法 End *//************************************** String處理(實(shí)體轉(zhuǎn)化為json字符串) *//*** 從緩存獲取值** @param key 緩存key* @param c 參數(shù)類(lèi)型* @param <T> 參數(shù)對(duì)象* @return T 返回對(duì)象*/public <T> T getCache(String key, Class<T> c) {String cache = getCache(key);return JSONObject.parseObject(cache, c);}public <T> List getCacheForList(String key, Class<T> c) {String cache = getCache(key);return JSONObject.parseArray(cache, c);}/*** 從緩存中獲取** @param key 緩存key* @param typeOff 對(duì)象類(lèi)型* @return Object 返回實(shí)體*/public Object getCache(String key, Type typeOff) {return JSONObject.parseObject(getCache(key), typeOff);}/*** 獲取緩存信息** @param key 緩存key* @return String*/public String getCache(String key) {return valueOperations.get(key);}/*** 設(shè)置緩存值沒(méi)有設(shè)置過(guò)期時(shí)間** @param key 緩存key* @param value 緩存值*/public void setCache(String key, String value) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {return;}valueOperations.set(key, value);}/*** 設(shè)置緩存過(guò)期時(shí)間** @param key 緩存KEY* @param value 緩存值*/public void setExpireCacheDefault(final String key, final String value) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {return;}valueOperations.set(key, value, DEFAULT_CACHE_TIME, TimeUnit.SECONDS);}/*** 設(shè)置緩存過(guò)期時(shí)間** @param key 緩存KEY* @param value 緩存值* @param time 緩存時(shí)間*/public void setExpireCache(final String key, final String value, Long time) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value) || StringUtils.isEmpty(time) || time <= 0) {return;}valueOperations.set(key, value, time, TimeUnit.SECONDS);}/************************************** String處理(實(shí)體轉(zhuǎn)化為json字符串) End *//************************************** Object處理 *//*** 添加緩存** @param key 緩存KEY* @param obj 緩存對(duì)象*/public void setCache(String key, Object obj) {setCache(key, JSONObject.toJSONString(obj));}/*** 設(shè)置緩存并添加默認(rèn)過(guò)期時(shí)間** @param key 緩存KEY* @param obj 添加的緩存對(duì)象*/public void setExpireCacheDefault(final String key, final Object obj) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(obj)) {return;}setExpireCache(key, obj, DEFAULT_CACHE_TIME);}/*** 設(shè)置緩存并添加緩存過(guò)期時(shí)間** @param key 緩存KEY* @param obj 緩存對(duì)象* @param time 緩存時(shí)間*/public void setExpireCache(final String key, final Object obj, Long time) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(obj) || StringUtils.isEmpty(time)) {return;}this.setExpireCache(key, JSONObject.toJSONString(obj), time);}/************************************** Object處理 End *//************************************** List處理 *//*** 添加緩存** @param key 緩存KEY* @param list 緩存列表值*/public void rightPushAll(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}List<String> redisList = new ArrayList<>();if (list != null && !list.isEmpty() && list.size() > 0) {for (Object obj : list) {if (obj != null) {redisList.add(JSONObject.toJSONString(obj));}}}listOperations.rightPushAll(key, redisList);}/*** 添加緩存并設(shè)置過(guò)期時(shí)間 有默認(rèn)值** @param key 緩存KEY* @param list 緩存列表值*/public void rightPushAllExpireDefault(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}this.rightPushAll(key, list);setExpire(key, DEFAULT_CACHE_TIME);}/*** 添加緩存并設(shè)置過(guò)期時(shí)間** @param key 緩存KEY* @param list 緩存列表* @param time 緩存時(shí)間*/public void rightPushAllExpire(String key, List list, Long time) {this.rightPushAll(key, list);setExpire(key, time);}/*** 添加緩存** @param key 緩存KEY* @param list 緩存列表*/public void leftPushAll(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}List<String> redisList = new ArrayList<>();if (list != null && !list.isEmpty() && list.size() > 0) {for (Object obj : list) {if (obj != null) {redisList.add(JSONObject.toJSONString(obj));}}}listOperations.leftPushAll(key, redisList);}/*** 添加緩存并設(shè)置過(guò)期時(shí)間 有默認(rèn)值** @param key 緩存KEY* @param list 緩存列表*/public void leftPushAllExpireDefault(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}this.leftPushAll(key, list);setExpire(key, DEFAULT_CACHE_TIME);}/*** 添加緩存并設(shè)置過(guò)期時(shí)間** @param key 緩存KEY* @param list 緩存列表* @param time 緩存時(shí)間*/public void leftPushAllExpire(String key, List list, Long time) {this.leftPushAll(key, list);setExpire(key, time);}/*** 從緩存獲取數(shù)據(jù)** @param key 緩存KEY* @param c 值類(lèi)型* @param <T> 值對(duì)象* @return List<T> 返回對(duì)象列表*/public <T> List<T> getRedisList(String key, Class<T> c) {List<String> listStr = listOperations.range(key, 0, -1);if (listStr.isEmpty()) {return null;}List<T> backList = new ArrayList<>();for (String str : listStr) {if (!StringUtils.isEmpty(str)) {backList.add(JSONObject.parseObject(str, c));}}return backList;}/************************************** List處理 End *//************************************** Hash處理 *//*** 獲取Hash filed值* @param key* @param field* @param c* @param <T>* @return*/public <T> T getHashVal(String key, String field, Class<T> c){Object val = this.hashOperations.get(key, field);if (val == null) {return null;}return JSONObject.parseObject(val.toString(), c);}public <T> T getHashObject(String key, String field, Class<T> c){Object val = this.hashOperations.get(key, field);if (val == null) {return null;}return (T) val;}public <T> List<T> getHashListVal(String key, String field, Class<T> c){Object val = this.hashOperations.get(key, field);if (val == null) {return null;}return JSONObject.parseArray(val.toString(), c);}public void setHashValExpire(String key, String field, Object val, Long time){this.hashOperations.put(key, field, JSONObject.toJSONString(val));this.setExpire(key, time);}public void setHashValsExpire(String key, HashMap val, Long time){this.hashOperations.putAll(key, val);this.setExpire(key, time);}public boolean hashHasKey(String key, String field){return this.hashOperations.hasKey(key, field);}public void hashIncrement(String key, String field, Integer val){this.hashOperations.increment(key, field, val);}/************************************** Hash處理 End *//************************************** zSet處理 End *//*** 批量保存到有序集合* @param key* @param list*/public void zSetAddExpireDefault(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}Double index = 1d;Set<ZSetOperations.TypedTuple<String>> tuples = new HashSet<>();if (!list.isEmpty() && list.size() > 0) {for (Object obj : list) {if (obj != null) {String value = JSONObject.toJSONString(obj);ZSetOperations.TypedTuple<String> typedTuple = new DefaultTypedTuple<>(value, index);tuples.add(typedTuple);index++;}}}zSetOperations.add(key,tuples);setExpire(key, DEFAULT_CACHE_TIME);}/*** 范圍查詢(xún),返回集合* @param key* @param start* @param end* @param c* @return*/public <T> List<T> zSetRange(String key,long start,long end,Class<T> c){List<T> backList = new ArrayList<>();// 緩存獲取數(shù)據(jù)Set<String> data = zSetOperations.range(key, start, end);if (data == null || data.isEmpty()) {return null;}// 轉(zhuǎn)換為L(zhǎng)istIterator<String> iterator = data.iterator();while (iterator.hasNext()){String jsonStr = iterator.next();if (!StringUtils.isEmpty(jsonStr)) {backList.add(JSONObject.parseObject(jsonStr, c));}}return backList;}/*** 獲取 zSet 長(zhǎng)度* @param key* @return*/public Long zSetGetSize(String key){return zSetOperations.size(key);}/*** 分頁(yè)獲取 zSet 數(shù)據(jù)集合* @param key* @param c* @param pageNo* @param pageSize* @return*/public <T> List<T> zSetRangeByPage(String key, Class<T> c, Integer pageNo, Integer pageSize) {long start = 0;if (pageNo > 1) {start = (pageNo - 1l) * pageSize;}long end = pageNo * pageSize - 1;return zSetRange(key,start,end,c);}/************************************** zSet處理 End */ }

2.常量

(1)精品頁(yè)常量類(lèi)

public class CategoryConstant {public static Map<Integer,String> categorys;static {categorys = new HashMap<>();categorys.put(1100, "東方玄幻");categorys.put(1200, "都市小說(shuō)");categorys.put(1300, "西方玄幻");categorys.put(1400, "武俠仙俠");categorys.put(1500, "歷史穿越");categorys.put(1600, "科幻未來(lái)");categorys.put(1700, "網(wǎng)游競(jìng)技");categorys.put(1800, "懸疑驚悚");categorys.put(2100, "古代言情");categorys.put(2200, "幻想言情");categorys.put(2300, "都市言情");categorys.put(2400, "總裁豪門(mén)");categorys.put(2500, "青春校園");categorys.put(2600, "唯美同人");categorys.put(2700, "歷史穿越");categorys.put(2800, "唯美同人");categorys.put(3100, "文學(xué)小說(shuō)");categorys.put(3200, "經(jīng)典名著");} }

(2)jwt常量類(lèi)

public class JwtConstant {/** JWT秘鑰 */public final static String SECRET_KEY = "someday";/** 過(guò)期時(shí)間天數(shù) */public final static int EXPIRE_DAY = 7;}

3.圖書(shū)相關(guān)枚舉

(1)圖書(shū)分類(lèi)枚舉類(lèi)

public enum BookCategoryEnum {CATEGORY_1(1,"都市小說(shuō)"),CATEGORY_2(2,"東方玄幻"),CATEGORY_3(3,"武俠仙俠"),CATEGORY_4(4,"懸疑驚悚"),CATEGORY_5(5,"唯美同人"),CATEGORY_6(6,"網(wǎng)游競(jìng)技"),CATEGORY_7(7,"科幻未來(lái)"),CATEGORY_8(8,"歷史穿越");private Integer value;private String name;BookCategoryEnum(Integer value, String name) {this.value = value;this.name = name;}public Integer getValue() {return value;}public String getName() {return name;} }

(2)書(shū)單列表功能枚舉類(lèi)

public enum BooklistMoreTypeEnum {NOTHING(1,"無(wú)"),MORE(2,"更多"),EXCHANGE(3,"換一換"),LOADING(4,"加載");private int value;private String name;BooklistMoreTypeEnum(int value, String name) {this.value = value;this.name = name;}public int getValue() {return value;}public String getName() {return name;} }

(3)圖書(shū)連載狀態(tài)枚舉類(lèi)

public enum BookSerialStatusEnum {SERIAL(1,"連載"),SUSPEND(2,"暫更"),END(3,"完結(jié)");private Integer value;private String name;BookSerialStatusEnum(Integer value, String name) {this.value = value;this.name = name;}public Integer getValue() {return value;}public String getName() {return name;} }

4.請(qǐng)求參數(shù)封裝

public class RequestParams extends HashMap {private static final Logger LOGGER = LoggerFactory.getLogger(RequestParams.class);/*** 獲取整型參數(shù)值* @param paramName* @return*/public Integer getIntValue(String paramName){Integer value = 0;Object object = this.get(paramName);if (null == object) {return value;}try{value = Integer.parseInt(this.get(paramName).toString());} catch (Exception ex){value = 0;LOGGER.error("獲取參數(shù){}轉(zhuǎn)換整型異常!{}", paramName, ex);}return value;}/*** 獲取字符串參數(shù)值* @param paramName* @return*/public String getStringValue(String paramName){String value = "";Object object = this.get(paramName);if (null == object) {return value;}return object.toString();} }

5.統(tǒng)一返回結(jié)果

(1)Http狀態(tài)碼封裝

/*** * http 狀態(tài)碼* ----------------------------------------------------------------------------* 200 OK - [GET]:服務(wù)器成功返回用戶(hù)請(qǐng)求的數(shù)據(jù),該操作是冪等的(Idempotent)。* 400 INVALID REQUEST - [POST/PUT/PATCH]:用戶(hù)發(fā)出的請(qǐng)求有錯(cuò)誤,服務(wù)器沒(méi)有進(jìn)行新建或修改數(shù)據(jù)的操作,該操作是冪等的。* 401 Unauthorized - [*]:表示用戶(hù)沒(méi)有權(quán)限(令牌、用戶(hù)名、密碼錯(cuò)誤)。* 403 Forbidden - [*] 表示用戶(hù)得到授權(quán)(與401錯(cuò)誤相對(duì)),但是訪(fǎng)問(wèn)是被禁止的。* 404 NOT FOUND - [*]:用戶(hù)發(fā)出的請(qǐng)求針對(duì)的是不存在的記錄,服務(wù)器沒(méi)有進(jìn)行操作,該操作是冪等的。* 406 Not Acceptable - [GET]:用戶(hù)請(qǐng)求的格式不可得(比如用戶(hù)請(qǐng)求JSON格式,但是只有XML格式)。* 410 Gone -[GET]:用戶(hù)請(qǐng)求的資源被永久刪除,且不會(huì)再得到的。* 422 Unprocesable entity - [POST/PUT/PATCH] 當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),發(fā)生一個(gè)驗(yàn)證錯(cuò)誤。* 500 INTERNAL SERVER ERROR - [*]:服務(wù)器發(fā)生錯(cuò)誤,用戶(hù)將無(wú)法判斷發(fā)出的請(qǐng)求是否成功。* 600 UN_KNOW_ERROR - 未知錯(cuò)誤* ----------------------------------------------------------------------------*/ public enum HttpCodeEnum {OK(200,"操作成功"),INVALID_REQUEST(400,"參數(shù)錯(cuò)誤"),UNAUTHORIZED(401,"沒(méi)有權(quán)限"),FORBIDDEN(403,"禁止訪(fǎng)問(wèn)"),NOT_FOUND(404,"資源不存在"),NOT_ACCEPTABLE(406,"請(qǐng)求的格式不正確"),GONE(410,"數(shù)據(jù)被刪除"),UNPROCESABLE_ENTITY(422,"參數(shù)驗(yàn)證錯(cuò)誤"),INTERNAL_SERVER_ERROR(500,"服務(wù)器發(fā)生錯(cuò)誤"),UN_KNOW_ERROR(500,"未知錯(cuò)誤"),FAIL(501,"操作失敗"),MODEL_NOT_EXIST(1000, "模型不存在"),VERIFICATION_FAILED(1001, "業(yè)務(wù)邏輯驗(yàn)證未通過(guò)"),USERNAME_OR_PASSWORD_ERR(2000,"用戶(hù)未登錄或token已失效"),DELETE_DEFAULT_PHOTO_ERR(2001,"默認(rèn)頭像不可刪除"),AUTH_EXPIRED(3000,"認(rèn)證到期"),TOKEN_ERR(3001, "token無(wú)效");private final int code;private final String message;HttpCodeEnum(final int code, final String message){this.code=code;this.message=message;}public String getMessage() {return message;}public int getCode() {return code;}}

(2)操作結(jié)果封裝

public class Result<T> implements Serializable {private static final long serialVersionUID = 1L;private int code;private String msg;private T data;public Result(int code, String msg, T data) {this.code = code;this.msg = msg;this.data = data;}public Result(int code, String msg) {this.code = code;this.msg = msg;}public Result() {}/*** 構(gòu)建消息內(nèi)容* @param msg* @return*/public Result buildMessage(String msg){this.setMsg(msg);return this;}/*** 構(gòu)建消息data的值,key默認(rèn)為data* @param obj data值* @return*/public Result buildData(T obj){this.setData(obj);return this;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public T getData() {return data;}public void setData(T data) {this.data = data;} }

(3)返回結(jié)果工具類(lèi)

ResultUtil {/*** 請(qǐng)求成功* @return*/public static Result success() {return new Result(HttpCodeEnum.OK.getCode(),HttpCodeEnum.OK.getMessage());}/*** 請(qǐng)求成功(無(wú)消息)* @return*/public static Result successAndNoMsg() {return new Result(HttpCodeEnum.OK.getCode(),"");}/*** 成功請(qǐng)求** @param data* @return*/public static Result success(Object data) {return new Result(HttpCodeEnum.OK.getCode(), HttpCodeEnum.OK.getMessage() , data);}/*** 成功請(qǐng)求(無(wú)消息)** @param data* @return*/public static Result successAndNoMsg(Object data) {return new Result(HttpCodeEnum.OK.getCode(), "", data);}/*** 操作失敗* @return*/public static Result fail() {return new Result(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMessage());}/*** 操作失敗* @return*/public static Result fail(Object data) {return new Result(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMessage() ,data);}/*** 服務(wù)器錯(cuò)誤* @return*/public static Result error() {return new Result(HttpCodeEnum.INTERNAL_SERVER_ERROR.getCode(),HttpCodeEnum.INTERNAL_SERVER_ERROR.getMessage());}/*** 服務(wù)器錯(cuò)誤* @param data* @return*/public static Result error(Object data) {return new Result(HttpCodeEnum.INTERNAL_SERVER_ERROR.getCode(),HttpCodeEnum.INTERNAL_SERVER_ERROR.getMessage(), data);}/*** 參數(shù)錯(cuò)誤* @return*/public static Result paramError() {return new Result(HttpCodeEnum.INVALID_REQUEST.getCode(), HttpCodeEnum.INVALID_REQUEST.getMessage());}/*** 參數(shù)錯(cuò)誤* @param data* @return*/public static Result paramError(Object data) {return new Result(HttpCodeEnum.INVALID_REQUEST.getCode(), HttpCodeEnum.INVALID_REQUEST.getMessage(), data);}/*** 認(rèn)證到期* @return*/public static Result authExpired() {return new Result(HttpCodeEnum.AUTH_EXPIRED.getCode(), HttpCodeEnum.AUTH_EXPIRED.getMessage());}/*** 沒(méi)有權(quán)限* @return*/public static Result unAuthorized() {return new Result(HttpCodeEnum.UNAUTHORIZED.getCode(), HttpCodeEnum.UNAUTHORIZED.getMessage());}/*** 沒(méi)有權(quán)限* @param data* @return*/public static Result unAuthorized(Object data) {return new Result(HttpCodeEnum.UNAUTHORIZED.getCode(),HttpCodeEnum.UNAUTHORIZED.getMessage(),data);}/*** 禁止訪(fǎng)問(wèn)* @return*/public static Result forbidden() {return new Result(HttpCodeEnum.FORBIDDEN.getCode(),HttpCodeEnum.FORBIDDEN.getMessage());}/*** 禁止訪(fǎng)問(wèn)* @param data* @return*/public static Result forbidden(Object data) {return new Result(HttpCodeEnum.FORBIDDEN.getCode(),HttpCodeEnum.FORBIDDEN.getMessage(), data);}/*** 資源不存在* @return*/public static Result notFound() {return new Result(HttpCodeEnum.NOT_FOUND.getCode(),HttpCodeEnum.NOT_FOUND.getMessage());}/*** 資源不存在* @param data* @return*/public static Result notFound(Object data) {return new Result(HttpCodeEnum.NOT_FOUND.getCode(),HttpCodeEnum.NOT_FOUND.getMessage(), data);}/*** 請(qǐng)求的格式不正確* @return*/public static Result notAcceptable() {return new Result(HttpCodeEnum.NOT_ACCEPTABLE.getCode(),HttpCodeEnum.NOT_ACCEPTABLE.getMessage());}/*** 請(qǐng)求的格式不正確* @param data* @return*/public static Result notAcceptable(Object data) {return new Result(HttpCodeEnum.NOT_ACCEPTABLE.getCode(),HttpCodeEnum.NOT_ACCEPTABLE.getMessage(), data);}/*** 數(shù)據(jù)已經(jīng)被刪除* @return*/public static Result gone() {return new Result(HttpCodeEnum.GONE.getCode(),HttpCodeEnum.GONE.getMessage());}/*** 數(shù)據(jù)已經(jīng)被刪除* @param data* @return*/public static Result gone(Object data) {return new Result(HttpCodeEnum.GONE.getCode(),HttpCodeEnum.GONE.getMessage(), data);}/*** 實(shí)體參數(shù)校驗(yàn)錯(cuò)誤* @return*/public static Result unprocesableEntity() {return new Result(HttpCodeEnum.UNPROCESABLE_ENTITY.getCode(),HttpCodeEnum.UNPROCESABLE_ENTITY.getMessage());}/*** 實(shí)體參數(shù)校驗(yàn)錯(cuò)誤* @param data* @return*/public static Result unprocesableEntity(Object data) {return new Result(HttpCodeEnum.UNPROCESABLE_ENTITY.getCode(),HttpCodeEnum.UNPROCESABLE_ENTITY.getMessage(), data);}/*** 未知錯(cuò)誤* @return*/public static Result unKnowError() {return new Result(HttpCodeEnum.UN_KNOW_ERROR.getCode(),HttpCodeEnum.UN_KNOW_ERROR.getMessage());}/*** 未知錯(cuò)誤* @param data* @return*/public static Result unKnowError(Object data) {return new Result(HttpCodeEnum.UN_KNOW_ERROR.getCode(),HttpCodeEnum.UN_KNOW_ERROR.getMessage(), data);}/*** 業(yè)務(wù)邏輯驗(yàn)證未通過(guò)* @return*/public static Result verificationFailed() {return new Result(HttpCodeEnum.VERIFICATION_FAILED.getCode(),HttpCodeEnum.VERIFICATION_FAILED.getMessage());}/*** 業(yè)務(wù)邏輯驗(yàn)證未通過(guò)* @param data* @return*/public static Result verificationFailed(Object data) {return new Result(HttpCodeEnum.VERIFICATION_FAILED.getCode(),HttpCodeEnum.VERIFICATION_FAILED.getMessage(), data);}/*** 自定義返回* @param e* @return*/public static Result custom(HttpCodeEnum e) {return new Result(e.getCode(),e.getMessage());}/*** 自定義返回* @param error* @return*/public static Result custom(int code,String error) {return new Result(code,error);}/*** 自定義返回* @param error* @param data* @return*/public static Result custom(int code,String error,Object data) {return new Result(code,error,data);}}

6.POJO

公用的實(shí)體類(lèi)不再多說(shuō)!!!

總結(jié)

以上是生活随笔為你收集整理的GitHub轻松阅读微服务实战项目流程详解【第三天:公共模块的设计与实现】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

av免费网站 | 亚洲开心激情 | 亚洲在线精品视频 | 天天激情站 | 欧美精品久久久久久久久久丰满 | 激情网婷婷 | 国产麻豆视频网站 | 91精品专区 | 免费在线激情电影 | 天天插天天干天天操 | 丁香激情综合国产 | 成人综合日日夜夜 | 日本黄色免费在线 | 免费av大全 | 成人亚洲免费 | 亚洲天堂网在线视频观看 | 99在线热播精品免费99热 | 国产精品久久久久久久久蜜臀 | 婷婷国产在线观看 | 91黄视频在线观看 | 中文字幕一区二区三区久久蜜桃 | 91成人免费观看视频 | 欧美日韩国产在线精品 | 色婷婷亚洲精品 | 国产精品第二页 | 天天玩天天干天天操 | 国产精品久久一区二区三区不卡 | 女人魂免费观看 | 国产精品精品国产婷婷这里av | 亚洲精品久久久久中文字幕m男 | 中文字幕在线观看完整 | 伊人va | 99久久综合精品五月天 | 国产日韩欧美在线观看 | 在线观看亚洲精品 | 四虎永久精品在线 | 色欲综合视频天天天 | 免费午夜av| 91av观看 | 亚洲 综合 国产 精品 | 伊人久久精品久久亚洲一区 | 欧美韩国日本在线观看 | 国产精品大全 | 国产亚洲一区二区三区 | 久久精品导航 | 亚洲专区路线二 | 国产打女人屁股调教97 | 日韩高清免费电影 | av久久在线 | 女人18毛片a级毛片一区二区 | 久久97久久97精品免视看 | 日日夜夜操操操操 | 日韩免费一区二区 | 久草在线视频在线 | 又黄又爽又无遮挡的视频 | 亚洲精品乱码久久久久久蜜桃不爽 | 五月激情亚洲 | 国产精品成人av久久 | 久久免费精品国产 | 一区二区中文字幕在线观看 | 国产中文字幕视频在线 | 香蕉视频在线看 | 亚洲精品免费在线观看视频 | 午夜私人影院久久久久 | 亚洲片在线观看 | 免费看三级网站 | 91精选| 在线视频一区观看 | 亚洲97在线| 中文字幕在线视频第一页 | 九七在线视频 | 天天操福利视频 | 日韩精品欧美一区 | 日韩欧美电影在线 | 久久在线免费 | 日韩激情av在线 | 人人狠狠综合久久亚洲 | 91视频在线自拍 | 六月婷操 | 欧美另类成人 | av+在线播放在线播放 | 色天天中文 | 亚洲 在线| 国产青春久久久国产毛片 | 99久久99 | 丁香婷婷综合激情五月色 | 在线观看日本韩国电影 | 欧美日韩首页 | 久久怡红院 | 美女视频免费精品 | 国产又粗又猛又爽 | 久久精品黄 | 四虎视频 | 国产高清在线 | 国产免费av一区二区三区 | 久草视频在线免费看 | 91.dizhi永久地址最新 | 一区二区三区动漫 | 人人插人人射 | 色综合综合 | 中文字幕视频一区二区 | av动态图片 | 中文字幕在线播放日韩 | 国产五月 | av888.com| 中文字幕美女免费在线 | 欧美巨乳网| 天天综合网在线观看 | 免费看成人av | 日韩高清精品免费观看 | 天天爽夜夜操 | 黄网站免费大全入口 | 中文字幕 二区 | 在线国产中文 | 在线观看一区二区精品 | 九九九国产 | 天天在线免费视频 | 久久久久久久久久久久久久av | 精品久久久久一区二区国产 | 97超碰超碰 | 日韩欧美在线一区 | 久久久久久久av麻豆果冻 | 一区二区不卡在线观看 | 欧美一级片免费在线观看 | 成+人+色综合 | 黄色在线免费观看网址 | 国产一二三区在线观看 | 国产精品久久久影视 | 国产精品区在线观看 | 日韩大片免费观看 | av大全免费在线观看 | 最新91在线视频 | 色香蕉视频 | 午夜色场| 欧美日韩国产精品一区 | 成人av动漫在线观看 | 色婷婷综合五月 | 在线不卡a | 人成午夜视频 | 久久婷亚洲五月一区天天躁 | 97超碰超碰久久福利超碰 | 久久久免费看视频 | 成人亚洲免费 | 日韩专区一区二区 | 久久99热久久99精品 | 成人免费视频免费观看 | 亚洲国产精品成人精品 | 日韩精品亚洲专区在线观看 | 最新免费av在线 | 99精品视频在线观看 | 日本免费久久高清视频 | 人人爽人人爽人人片av | 六月天色婷婷 | 久久国产一二区 | 99热在线免费观看 | 色偷偷97| 黄色免费电影网站 | 天天操天天操天天操天天操天天操天天操 | 久草在线最新免费 | 精品久久久精品 | 色插综合 | 天天综合婷婷 | 日日夜夜草 | 国产精品自产拍在线观看网站 | 亚洲精品免费在线观看 | 国产1区2区 | 国产日韩欧美视频 | 午夜久久福利 | 色999精品 | 日韩成人精品一区二区三区 | 黄色福利网站 | 亚洲 欧美 国产 va在线影院 | 超碰免费观看 | 国内精品福利视频 | 国产99久久久久 | 九九视频网 | 午夜久久久久久久久久久 | 91av短视频| 在线小视频你懂得 | 永久免费视频国产 | www.夜夜操| 国产精品福利一区 | 欧美色精品天天在线观看视频 | 在线a视频| 亚洲视频一级 | 国产在线播放不卡 | 久久av影院| 少妇高潮流白浆在线观看 | 久久久久久国产精品免费 | 99精品欧美一区二区蜜桃免费 | 成年美女黄网站色大片免费看 | 久久人91精品久久久久久不卡 | 日韩精品欧美精品 | 久草在线免费资源站 | 日韩欧美在线视频一区二区 | 正在播放一区二区 | 午夜精品999 | 在线观看免费黄视频 | 日韩久久网站 | 激情av在线播放 | av天天色 | 91精品一区二区三区久久久久久 | 一区二区三区精品久久久 | 久久日本视频 | 成人av免费 | 国产小视频福利在线 | 正在播放一区二区 | 日韩亚洲国产精品 | 你操综合| 免费高清看电视网站 | 91视频免费播放 | 97色资源| 欧美成年黄网站色视频 | 久热免费| 国产一区二区综合 | 日韩一区二区三 | 福利一区二区三区四区 | 久久不见久久见免费影院 | 免费看黄色小说的网站 | 国产精品va最新国产精品视频 | av在线中文 | 国产日韩中文字幕 | 99精品免费在线 | 国产综合激情 | 国产亚洲va综合人人澡精品 | 国产美女网站在线观看 | 99视频免费 | 亚洲精品中文在线资源 | 毛片.com | 在线观看中文字幕网站 | 五月激情在线 | 最近中文字幕视频网 | 成人福利在线播放 | 天天干 夜夜操 | 日韩在线一二三区 | 91秒拍国产福利一区 | 久久久久国产免费免费 | 国产黄a三级三级三级三级三级 | 亚洲码国产日韩欧美高潮在线播放 | 国产精品视屏 | 中文字幕在线观看日本 | 婷婷久久网 | 99久久精品国产免费看不卡 | 日韩国产欧美在线视频 | 黄色片毛片 | 91久久丝袜国产露脸动漫 | 91看成人| 丁香花在线视频观看免费 | 深夜免费小视频 | 9幺看片| 欧美另类sm图片 | 成年人视频免费在线 | 人人爽人人爽人人爽学生一级 | 免费黄色网址大全 | 色av男人的天堂免费在线 | 免费中午字幕无吗 | 黄视频网站大全 | 天天天操天天天干 | 亚洲春色奇米影视 | 欧美午夜a | 日韩影视精品 | 免费福利在线观看 | 久久麻豆精品 | 精品久久国产一区 | av日韩中文 | 97在线观看免费观看 | 欧美日韩3p| 亚洲电影图片小说 | 91麻豆精品国产91久久久使用方法 | 久久久国产一区二区三区四区小说 | 亚洲精品88欧美一区二区 | 久久久久久国产精品美女 | 91视频一8mav | 国产精品大片在线观看 | 99在线精品视频在线观看 | 国产一二三区av | 免费看片网站91 | 9在线观看免费高清完整版 玖玖爱免费视频 | 五月天中文字幕 | 天天综合网天天综合色 | 在线草 | 黄网站免费看 | 久久视频这里有久久精品视频11 | 亚洲精品国产区 | 免费h视频| 成人在线播放av | 国产精品欧美激情在线观看 | 久草在线网址 | 色.www| 国产又黄又猛又粗 | 色资源网免费观看视频 | 黄色精品网站 | 亚洲影视资源 | 麻豆国产视频下载 | 亚洲视频免费 | 国产精品中文字幕av | 国产一区av在线 | 色婷婷狠狠五月综合天色拍 | 欧美精品乱码久久久久 | 日韩中字在线观看 | 日本女人的性生活视频 | 久草久草在线观看 | 国产女v资源在线观看 | 久久视频这里有精品 | 美女网站视频免费都是黄 | 丁香电影小说免费视频观看 | 久久久电影 | 久久久久久草 | 久久精品视频在线免费观看 | 天天弄天天操 | 国产91精品看黄网站 | 亚洲人成免费网站 | 亚洲无吗视频在线 | 天天综合成人网 | 久久久久成人免费 | 高清在线一区 | 高清av免费看 | 特级毛片在线 | av动图| 亚洲精品午夜久久久久久久 | 美女视频一区二区 | 色婷婷激情四射 | 欧美极品一区二区三区 | 久久精品婷婷 | 六月色婷 | 亚洲伊人天堂 | 在线观看日韩一区 | 国产九九精品 | 国产亚洲精品久久久久久电影 | 91久久精品日日躁夜夜躁国产 | 亚洲综合在线五月天 | 亚色视频在线观看 | 九九九九九国产 | 色婷婷综合成人av | 亚洲 欧美 精品 | 日韩午夜网站 | 免费在线观看国产黄 | 一区二区三区四区免费视频 | av女优中文字幕在线观看 | 亚洲欧美日韩国产一区二区三区 | 在线看岛国av | 欧美午夜精品久久久久久浪潮 | 夜添久久精品亚洲国产精品 | 天天操网 | 中国老女人日b | 欧美日韩精品在线观看 | 久热免费在线观看 | 97超碰超碰久久福利超碰 | 精品国产美女 | 久久一精品 | 精品久久久久久亚洲综合网站 | 最新国产在线观看 | 色婷婷www | 水蜜桃亚洲一二三四在线 | 亚洲天堂网视频在线观看 | 亚洲免费av在线 | 国产视频 亚洲精品 | 久草综合在线 | 国产欧美精品一区二区三区 | 久热精品国产 | 欧美日韩视频一区二区三区 | 伊人首页 | 在线观看完整版免费 | 91激情视频在线播放 | 国产黄色免费观看 | 久久黄色免费视频 | 中文在线www| 亚洲黄色片在线 | 成人av在线一区二区 | 亚洲自拍av在线 | 成人久久久精品国产乱码一区二区 | 久久999久久| 国产精品久久久久一区二区三区共 | 久久久久9999亚洲精品 | 亚洲欧美精品一区二区 | 在线成人av | 久久99热国产 | 国产精品va在线观看入 | 久久欧美视频 | 亚洲黄色影院 | 91九色在线| 手机在线看a | 婷婷av网站 | 午夜精品一区二区三区四区 | 国产18精品乱码免费看 | 天天射天天操天天色 | 91九色免费视频 | 综合天堂av久久久久久久 | 国产97在线观看 | 久热电影| 婷婷丁香激情 | 伊人精品在线 | 国产96av| 精品久久网站 | 欧美aa在线观看 | 欧美一级片免费观看 | 日本在线观看一区 | 久久久黄视频 | 免费观看性生活大片3 | 摸bbb搡bbb搡bbbb | 国产美女久久久 | 深爱五月激情五月 | 日韩国产精品久久久久久亚洲 | 久久9999久久免费精品国产 | 国产精品久久影院 | 欧美激情在线网站 | 成人在线电影观看 | 国产一级二级三级视频 | 亚洲激情影院 | 在线影院中文字幕 | 国产无套一区二区三区久久 | 99r在线观看 | 亚洲成人av在线电影 | 婷婷网站天天婷婷网站 | www色片| 伊人久久电影网 | 日韩精品播放 | 天天天天色综合 | 免费看的黄网站软件 | 麻豆视频在线免费看 | 亚洲a网 | 国产麻豆精品一区 | 亚洲自拍av在线 | 成人在线视频一区 | 揉bbb玩bbb少妇bbb | 亚洲黄色在线观看 | 日本激情视频中文字幕 | 99久久成人| 国产小视频免费在线观看 | 日韩大片在线免费观看 | 色姑娘综合天天 | 激情综合五月婷婷 | 高清国产在线一区 | 在线播放一区二区三区 | 国产老熟| 精品色999 | 91欧美国产| 日韩性xxxx | 在线www色 | 国产99精品在线观看 | 右手影院亚洲欧美 | 中文 一区二区 | 日本黄色一级电影 | 亚洲一区视频在线播放 | 日韩成人黄色 | 天天操天天射天天爱 | 免费看黄视频 | 成人a视频 | 亚洲少妇激情 | 一区二区不卡高清 | 日本精品视频一区二区 | 天堂网一区二区三区 | 欧美日韩高清国产 | 久久99亚洲网美利坚合众国 | 91色吧| 日韩欧美一区二区三区在线观看 | 精品不卡视频 | 日日爱网址 | 欧美精品一区二区在线播放 | 狠狠狠色丁香婷婷综合久久五月 | 欧美精品一区二区三区一线天视频 | 欧美日韩国产亚洲乱码字幕 | 亚洲精品小视频 | 349k.cc看片app | 日日爽天天操 | 日韩视频中文字幕在线观看 | 911久久 | 国产资源精品在线观看 | 亚洲一区二区三区四区在线视频 | 国产精品国产三级国产aⅴ无密码 | 911久久香蕉国产线看观看 | 超碰在线97观看 | 久久天堂精品视频 | 在线视频黄 | 亚洲高清国产视频 | 中文av免费 | 色噜噜日韩精品一区二区三区视频 | 成人免费观看完整版电影 | 国产91在线 | 美洲 | 国产自偷自拍 | 国产精品岛国久久久久久久久红粉 | 中文字幕观看av | 天天干夜夜夜操天 | 亚洲国产精品久久久久 | 亚洲欧美日韩在线一区二区 | 久久久网 | 精品国产美女 | 视频福利在线观看 | 午夜天天操 | 久久韩国免费视频 | 美女久久一区 | 五月婷婷视频在线观看 | 亚洲理论电影网 | 国产精品18久久久久久久久 | 日本mv大片欧洲mv大片 | 免费高清在线观看成人 | 婷香五月 | 999ZYZ玖玖资源站永久 | 成年人免费在线播放 | 日韩久久视频 | 国产尤物在线观看 | 免费看污在线观看 | a√天堂资源 | 91精品免费在线观看 | 国产精品视频久久 | 国产成人免费精品 | 2021国产精品 | 综合网伊人 | 黄色日视频 | 亚洲午夜精品在线观看 | 99精品毛片 | 免费又黄又爽的视频 | 日韩爱爱片 | 91精品视频在线 | 精品国产一区二区三区噜噜噜 | 久久只精品99品免费久23小说 | 亚洲91在线| 国内精品久久久久影院男同志 | 一区二区三区免费在线观看 | 色91av| 亚洲高清视频在线播放 | 九色91在线 | 日韩精品一区二区三区第95 | 91高清免费 | av黄色成人| 亚洲综合在线播放 | 一本一道久久a久久综合蜜桃 | 亚洲一区二区精品3399 | 99久久婷婷国产一区二区三区 | 日本中文在线观看 | 精品91在线 | 国产成人99久久亚洲综合精品 | 九九一级片 | 亚洲专区免费观看 | 欧美激情综合色综合啪啪五月 | 久草久草在线 | www免费在线观看 | 久久精品一区二区三区视频 | 99久久日韩精品视频免费在线观看 | 97色在线 | 久久国产精品精品国产色婷婷 | 国产尤物在线观看 | 久久综合成人网 | 国产精品99久久久久久久久久久久 | 国产丝袜制服在线 | 色综合久久88色综合天天免费 | 国产99黄| 伊人射 | a天堂一码二码专区 | 国产精品综合在线 | 91毛片在线观看 | 亚洲成av人电影 | 免费成人在线网站 | 九九在线视频 | 亚洲精品一区二区三区在线观看 | 国产福利午夜 | 在线久久 | 在线观看免费高清视频大全追剧 | 黄色免费电影网站 | 在线观看视频福利 | 亚洲精品视频免费在线观看 | 一区二区三区四区在线免费观看 | 97在线视频网站 | 最新日韩在线观看 | 九九视频精品免费 | 91av视频网 | 一级黄色片在线播放 | 最新中文字幕在线播放 | 色综合天天| 欧美a性| 亚洲综合在线五月 | 国产精品久久一区二区三区不卡 | 五月婷婷丁香 | 久久久久亚洲精品国产 | 国产综合精品一区二区三区 | 综合色播 | 99热最新精品 | 日本黄色大片儿 | 欧美精品久久久久久久久免 | 国产美女免费视频 | 玖玖玖精品 | 97超碰免费在线观看 | 欧美三级在线播放 | avove黑丝 | 四虎影视久久久 | 成人资源在线观看 | 国产明星视频三级a三级点| 久久久九色精品国产一区二区三区 | 欧美一区二区三区在线观看 | 精品国产一区在线观看 | 91精品伦理 | 亚洲91精品在线观看 | 97夜夜澡人人双人人人喊 | av成人动漫在线观看 | 在线观av | 久久久免费高清视频 | 亚洲视频免费在线看 | 免费裸体视频网 | 久久全国免费视频 | 最新av在线网址 | 久久精品久久久久电影 | 国产一级久久久 | 国产精品第72页 | 国产精久久 | 精品视频免费看 | 狠狠狠狠狠狠干 | 国产又粗又猛又爽 | 天天草天天色 | 欧洲av不卡 | 在线免费av网站 | 精品国产欧美 | 欧美日韩不卡在线观看 | 中文在线免费观看 | 婷婷爱五月天 | 伊人影院av | 国产做a爱一级久久 | 亚洲激情综合 | 欧美日产一区 | 国产精品久久99综合免费观看尤物 | 欧美视频二区 | 亚洲欧洲精品在线 | 国产午夜精品一区二区三区嫩草 | 最近中文字幕大全中文字幕免费 | 美女视频网站久久 | 亚洲黄色在线看 | 美女黄频| 久久久久久国产精品 | 精品国产一区二区在线 | av线上免费看 | 黄网av在线 | 国产精品久久久久aaaa | 久久久激情网 | 国产黄色精品在线 | 亚洲精品免费在线视频 | 国产成人区 | 欧美视频国产视频 | 成人在线免费看视频 | 亚洲女裸体 | 国产精品久久伊人 | 激情影音| 特级黄录像视频 | 香蕉影院在线 | 免费在线黄色av | 久久久久婷 | 日韩av在线高清 | 亚洲一区二区视频在线 | 天天操网址 | 国产精品免费久久久久久 | a亚洲视频 | 深爱激情五月婷婷 | 日韩美女免费线视频 | 成人久久电影 | 在线观看免费观看在线91 | 亚洲伊人婷婷 | 久久三级毛片 | 国产在线观看91 | 欧美日韩精品二区第二页 | 欧美日一级片 | 夜夜夜精品 | av一级二级| 激情图片久久 | 午夜婷婷在线观看 | av片一区二区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 中文字幕精品视频 | www久久com| 偷拍区另类综合在线 | 一区中文字幕电影 | 免费成人在线电影 | 婷婷丁香狠狠爱 | 夜夜操综合网 | 看av在线| 91精品国产成 | 狠狠色丁香久久婷婷综合_中 | 一区二区三区 中文字幕 | 天天操夜夜摸 | 国产精品国产三级国产专区53 | 噜噜色官网| 一区二区三区污 | 欧美-第1页-屁屁影院 | 天天天天爱天天躁 | 狠狠操.com | 在线观看视频97 | 久久一本综合 | 国产91亚洲 | 综合婷婷丁香 | 国产精品成人av电影 | 欧美成人影音 | 超碰在线天天 | 韩国av一区二区三区在线观看 | 久久久久99精品国产片 | 免费69视频 | 美女网站免费福利视频 | 国产第一二区 | 免费在线一区二区三区 | 国产精品免费观看视频 | .国产精品成人自产拍在线观看6 | 国产中文字幕国产 | 欧美日产一区 | 日韩欧美国产精品 | 日韩av免费观看网站 | 99电影456麻豆 | 一区二区三区日韩视频在线观看 | 国内一级片在线观看 | 午夜精品久久 | 日韩理论电影网 | 91av国产视频 | 91香蕉视频| 91精品免费在线观看 | 中文日韩在线 | 免费高清国产 | 欧美日韩一二三四区 | 日韩无在线 | 久久久久久影视 | 免费观看的av网站 | 一级α片| 久久av中文字幕片 | 国产精品乱码久久久 | 激情综合一区 | 13日本xxxxxⅹxxx20 | 亚洲第一区在线观看 | 在线观看日韩精品 | 狠狠五月天 | 麻豆视频在线 | 久久国产露脸精品国产 | 国产亚洲精品久久久久动 | 免费人成网| 波多野结衣小视频 | 久久人人爽视频 | 丁香婷婷综合五月 | 在线观看电影av | 日韩精品一区二区三区丰满 | 免费观看www小视频的软件 | 亚洲干 | 天天操天天综合网 | 色综合天天狠天天透天天伊人 | 成人免费网视频 | 93久久精品日日躁夜夜躁欧美 | 狠狠综合网 | 国产剧情在线一区 | 黄色av成人在线观看 | 天天看天天干 | 亚洲精品资源在线 | 激情欧美丁香 | 日韩综合一区二区三区 | 黄色一级大片在线观看 | 欧美99精品 | 亚洲视频电影在线 | 2019中文最近的2019中文在线 | 色婷婷激情电影 | 久草青青在线观看 | 六月色 | 中文字幕国产一区二区 | 91九色在线视频观看 | 亚洲精品88欧美一区二区 | 激情网五月婷婷 | 日韩高清一二三区 | 草久在线视频 | 亚洲黄色免费在线看 | 成人全视频免费观看在线看 | 久久精品欧美一区二区三区麻豆 | 欧美在线你懂的 | 在线日韩亚洲 | 国内精品中文字幕 | 久久免费黄色 | 国产亚洲精品美女 | 国产麻豆视频免费观看 | 亚洲精品美女在线观看播放 | 欧美性色黄 | 又黄又爽的免费高潮视频 | 99久久久成人国产精品 | 成年人精品| 亚洲毛片视频 | 欧美在线视频一区二区三区 | 久久九九免费视频 | 激情av网 | 国产福利精品一区二区 | 色瓜| 日韩欧美综合在线视频 | 91亚洲激情 | 亚洲国产免费看 | 天天av在线播放 | 狠狠狠狠狠狠天天爱 | 免费亚洲婷婷 | 在线观看中文字幕亚洲 | 日韩中文字幕亚洲一区二区va在线 | 久久免费电影网 | 国产美女视频免费 | 亚洲精品视频国产 | 日韩电影在线一区二区 | 午夜精品福利一区二区三区蜜桃 | 久久精品国产亚洲精品 | 四川bbb搡bbb爽爽视频 | 午夜久久福利 | 久久影院中文字幕 | 欧美日bb | 国产精品video | 国产精品一区二区在线免费观看 | 国产精品ⅴa有声小说 | 中文字幕在线视频一区二区 | av久久在线| 九九热精品视频在线播放 | 欧美一区二区三区在线视频观看 | av电影一区二区 | 久久露脸国产精品 | 欧女人精69xxxxxx | 91大神精品视频在线观看 | a级国产乱理论片在线观看 伊人宗合网 | 久久精品高清视频 | 亚洲一区二区三区在线看 | www.黄色小说.com | 免费日韩 精品中文字幕视频在线 | 欧美老人xxxx18 | 人人舔人人爱 | 六月婷婷网 | 免费网站在线观看成人 | 99国产视频 | 日韩中文字幕在线看 | 在线观看91网站 | 九色精品免费永久在线 | 中文字幕在线视频国产 | 狠狠88综合久久久久综合网 | 日韩欧美一区二区在线播放 | 91大神电影 | 日日干天天插 | 午夜在线观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 色综合久久久久久久 | 国产福利一区二区在线 | 成人小视频在线观看免费 | 久久在线视频在线 | 奇米导航 | av动态图片| 精品亚洲成人 | 日韩欧美一区二区三区在线 | 久久久免费毛片 | 99热日本| 在线观看一 | 香蕉视频啪啪 | 免费看成人 | 日韩欧美在线观看 | 国产热re99久久6国产精品 | 免费十分钟 | 欧美一区二区三区在线看 | 国产黄色片一级三级 | 免费在线观看黄 | 欧美a级免费视频 | 黄视频网站大全 | 亚洲精品在线观看视频 | 91中文字幕网 | 天天插天天爱 | 在线免费av电影 | 欧美一级日韩三级 | 免费h精品视频在线播放 | 欧美激情一区不卡 | 欧美色综合久久 | 国产精品一区在线观看 | 国产日本在线播放 | 久久99精品久久久久久久久久久久 | 日韩免费在线一区 | 国产精品久久久久久久电影 | 国产精品福利无圣光在线一区 | 手机看片国产日韩 | 人人爽人人看 | 人成午夜视频 | 国产中文字幕在线视频 | 国产精品久久久久久久久久久久冷 | 在线观看91久久久久久 | 伊人五月在线 | 国产午夜av| 亚洲欧美日韩一区二区三区在线观看 | 日韩中文在线电影 | 嫩小bbbb摸bbb摸bbb | 欧美夫妻性生活电影 | 国产精品视屏 | 岛国av在线免费 | 亚洲精品综合欧美二区变态 | 久久伊人婷婷 | 欧美色精品天天在线观看视频 | 成人高清av在线 | 在线观看成人一级片 | 国产伦理久久精品久久久久_ | 亚洲综合五月 | 美女网站在线免费观看 | 国产一二三区在线观看 | 99 精品 在线 | 精品v亚洲v欧美v高清v | 亚洲精品资源 | 久久免费精品 | 97理论电影 | 日韩在线视 | 在线免费观看国产精品 | 一级一级一片免费 | 免费a v在线 | 色com网 | 少妇av网| 久草网免费 | 久久久久综合 | 国产亚洲欧美在线视频 | 国产精品久久久久久久久久久久久久 | 久久综合色综合88 | 日韩最新av在线 | 国产精品久久一卡二卡 | 韩国一区视频 | 91精品国产自产在线观看永久 | 国产你懂的在线 | 欧美成人xxx | zzijzzij日本成熟少妇 | 色网免费观看 | 久草免费在线 | 久久人人爽爽人人爽人人片av | 中日韩在线 | 国产一级免费观看视频 | 日韩视频免费在线 | 涩涩在线 | 在线黄av| 99热高清| 精品久久九九 | 中文字幕 国产专区 | 日韩丝袜 | 国产午夜剧场 | 开心激情五月婷婷 | 久久精品综合一区 | 免费在线观看av网站 | 久久精品草 | 亚洲精品国产精品国自产观看浪潮 | 69国产精品成人在线播放 | 国产精品麻豆果冻传媒在线播放 | 91日韩在线专区 | av高清在线 | 久操视频在线观看 | 亚洲欧美成人综合 | 国产成人免费观看久久久 | 欧洲激情在线 | 四虎影视成人永久免费观看亚洲欧美 | 在线观看免费av片 | 6699私人影院 | 人人爽人人香蕉 | 天天操夜夜看 | 99综合电影在线视频 | 亚洲精品视频免费在线观看 | 欧洲精品久久久久毛片完整版 | 国产区av在线 | 免费在线播放黄色 | 99久久综合狠狠综合久久 | 久久免费激情视频 | 免费日韩三级 | 一本一本久久a久久精品综合妖精 | 国产精品18久久久久vr手机版特色 | 免费观看国产精品 | 成人 亚洲 欧美 | 久热超碰 | 国产精品久久久久久久久久久久冷 | 日日夜夜天天人人 | 国产亚洲人成网站在线观看 | 欧美日韩国产伦理 | 国产99在线播放 | 美女视频永久黄网站免费观看国产 | 亚洲精品成人在线 | 亚洲精品成人av在线 | 色多视频在线观看 | 99视频在线免费看 | 亚洲激精日韩激精欧美精品 | 国产在线播放一区 | 视频一区二区精品 | 美女一级毛片视频 | 中文字幕国语官网在线视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 九九在线视频免费观看 | 婷婷精品国产欧美精品亚洲人人爽 | 国产视频中文字幕在线观看 | 欧美日韩高清在线观看 | 天天天干夜夜夜操 | 91资源在线播放 | 欧美日韩电影在线播放 | 91秒拍国产福利一区 | 国产精品久久久久久999 | 久久这里只有精品23 | 91大神一区二区三区 | 在线午夜av| 久久久久亚洲精品 | 97成人精品视频在线播放 | 欧美视频99| 亚州精品在线视频 | 激情综合狠狠 | 国产伦精品一区二区三区在线 | 日韩午夜一级片 | 在线成人免费电影 | 日韩有色| 精品久久精品 | 欧美经典久久 | 日韩高清免费电影 | 亚洲黄色免费观看 | 日本不卡123 | 天天搞天天干天天色 | 国产精品2区 | 国产精品一区久久久久 | 天天操 夜夜操 |