文章目录 4.1后端统一设计思想 4.1.1后端统一返回格式对象 4.1.2后端统一响应状态码 4.1.3后端统一异常处理类 4.1.4StringUtils类 4.1.5 RedisUtils类
4.1后端统一设计思想
4.1.1后端统一返回格式对象
com.easypan.entity.vo.ResponseVO
@Data
public class ResponseVO < T > { private String status; private Integer code; private String info; private T data;
}
4.1.2后端统一响应状态码
com.easypan.entity.enums.ResponseCodeEnum
public enum ResponseCodeEnum { CODE_200 ( 200 , "请求成功" ) , CODE_404 ( 404 , "请求地址不存在" ) , CODE_600 ( 600 , "请求参数错误" ) , CODE_601 ( 601 , "信息已经存在" ) , CODE_500 ( 500 , "服务器返回错误,请联系管理员" ) , CODE_901 ( 901 , "登录超时,请重新登录" ) , CODE_902 ( 902 , "分享连接不存在,或者已失效" ) , CODE_903 ( 903 , "分享验证失效,请重新验证" ) , CODE_904 ( 904 , "网盘空间不足,请扩容" ) ; private Integer code; private String msg; ResponseCodeEnum ( Integer code, String msg) { this . code = code; this . msg = msg; } public Integer getCode ( ) { return code; } public String getMsg ( ) { return msg; }
}
4.1.3后端统一异常处理类
com.easypan.exception.BusinessException
@Data
@AllArgsConstructor
public class BusinessException extends RuntimeException { private ResponseCodeEnum codeEnum; private Integer code; private String message; public BusinessException ( String message, Throwable e) { super ( message, e) ; this . message = message; } public BusinessException ( String message) { super ( message) ; this . message = message; } public BusinessException ( Throwable e) { super ( e) ; } public BusinessException ( ResponseCodeEnum codeEnum) { super ( codeEnum. getMsg ( ) ) ; this . codeEnum = codeEnum; this . code = codeEnum. getCode ( ) ; this . message = codeEnum. getMsg ( ) ; } public BusinessException ( Integer code, String message) { super ( message) ; this . code = code; this . message = message; } @Override public Throwable fillInStackTrace ( ) { return this ; } }
4.1.4StringUtils类
com.easypan.utils.StringUtils
public class StringUtils { public static String encodeByMD5 ( String originString) { return StringUtils . isEmpty ( originString) ? null : DigestUtils . md5Hex ( originString) ; } public static boolean isEmpty ( String str) { if ( null == str || "" . equals ( str) || "null" . equals ( str) || "\u0000" . equals ( str) ) { return true ; } else if ( "" . equals ( str. trim ( ) ) ) { return true ; } return false ; } public static String getFileSuffix ( String fileName) { Integer index = fileName. lastIndexOf ( "." ) ; if ( index == - 1 ) { return "" ; } String suffix = fileName. substring ( index) ; return suffix; } public static String getFileNameNoSuffix ( String fileName) { Integer index = fileName. lastIndexOf ( "." ) ; if ( index == - 1 ) { return fileName; } fileName = fileName. substring ( 0 , index) ; return fileName; } public static String rename ( String fileName) { String fileNameReal = getFileNameNoSuffix ( fileName) ; String suffix = getFileSuffix ( fileName) ; return fileNameReal + "_" + getRandomString ( Constants . LENGTH_5 ) + suffix; } public static final String getRandomString ( Integer count) { return RandomStringUtils . random ( count, true , true ) ; } public static final String getRandomNumber ( Integer count) { return RandomStringUtils . random ( count, false , true ) ; } public static String escapeTitle ( String content) { if ( isEmpty ( content) ) { return content; } content = content. replace ( "<" , "<" ) ; return content; } public static String escapeHtml ( String content) { if ( isEmpty ( content) ) { return content; } content = content. replace ( "<" , "<" ) ; content = content. replace ( " " , " " ) ; content = content. replace ( "\n" , "<br>" ) ; return content; } public static boolean pathIsOk ( String path) { if ( StringUtils . isEmpty ( path) ) { return true ; } if ( path. contains ( "../" ) || path. contains ( "..\\" ) ) { return false ; } return true ; }
}
4.1.5 RedisUtils类
com.easypan.utils.RedisUtils
@Slf4j
@Component ( "redisUtils" )
public class RedisUtils < V > { @Resource private RedisTemplate < String , V > redisTemplate; public boolean set ( String key, V value) { try { redisTemplate. opsForValue ( ) . set ( key, value) ; return true ; } catch ( Exception e) { log. error ( "设置redisKey:{},value:{}失败" , key, value) ; return false ; } } public boolean setex ( String key, V value, long time) { try { if ( time > 0 ) { redisTemplate. opsForValue ( ) . set ( key, value, time, TimeUnit . SECONDS ) ; } else { set ( key, value) ; } return true ; } catch ( Exception e) { log. error ( "设置redisKey:{},value:{}失败" , key, value) ; return false ; } } public V get ( String key) { return key == null ? null : redisTemplate. opsForValue ( ) . get ( key) ; } public void delete ( String . . . key) { if ( key != null && key. length > 0 ) { if ( key. length == 1 ) { redisTemplate. delete ( key[ 0 ] ) ; } else { redisTemplate. delete ( ( Collection < String > ) CollectionUtils . arrayToList ( key) ) ; } } }
}