提交 7efd0c2a authored 作者: 陈世营's avatar 陈世营

【修改】公共common

上级 aac9cf9c
......@@ -25,7 +25,7 @@ target/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
......@@ -13,14 +13,6 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.timeloit.project</groupId>
<artifactId>loit-build-spi-common</artifactId>
</dependency>
<dependency>
<groupId>com.timeloit.project</groupId>
<artifactId>loit-build-web-common</artifactId>
</dependency>
<!--common-->
......
package com.loit.build.spi.common.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
@ApiModel(value = "响应消息类")
public class BaseResponse<T> {
@ApiModelProperty(value = "响应码", required = true)
private String code;
@ApiModelProperty(value = "响应消息", required = true)
private String message;
@ApiModelProperty(value = "返回数据")
private T data;
private Map<String, T> properties = new HashMap<>();
public BaseResponse() {
}
public BaseResponse(String code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public static BaseResponse<Object> ofMessage(String code, String message) {
return new BaseResponse<>(code, message, null);
}
public static BaseResponse<Object> ofSuccess(Object data) {
return new BaseResponse<>(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMessage(), data);
}
public static BaseResponse<Object> ofSuccess(Object data, String message) {
return new BaseResponse<>(ResponseStatusEnum.SUCCESS.getCode(), message, data);
}
public static BaseResponse<Object> ofStatus(ResponseStatusEnum status) {
return new BaseResponse<>(status.getCode(), status.getMessage(), null);
}
public BaseResponse addProperties(String key, T value) {
this.properties.put(key, value);
return this;
}
}
package com.loit.build.spi.common.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("分页数据")
public class PageFeign<T> implements Serializable {
private static final long serialVersionUID = 1L;
private List<T> content = new ArrayList<>();
@ApiModelProperty(value = "是否最后一页")
private boolean last;
private int totalPages;
@ApiModelProperty(value = "总条数")
private int totalElements;
@ApiModelProperty(value = "当前页的条数")
private int numberOfElements;
@ApiModelProperty(value = "每页显示条数")
private int size;
@ApiModelProperty(value = "当前页码")
private int number;
}
package com.loit.build.spi.common.dto;
public enum ResponseStatusEnum {
SUCCESS("success","成功"),
PARAMETER_ERROR("parameter.error","参数错误"),
PARAMETER_VALIDATION("parameter.validation","参数验证失败-{0}"),
DATA_INPUT_ERROR("data.input.error","数据未输入"),
DATA_CREATE_FAILURE("data.create.failure","新增数据失败"),
DATA_QUERY_FAILURE("data.query.failure","查询数据失败"),
DATA_UPDATE_FAILURE("data.update.failure","更新数据失败"),
DATA_DELETE_FAILURE("data.delete.failure","删除数据失败"),
FALL_BACK("fall.back","异常发生,进入fallback方法,接收的参数");
private String code;
private String message;
ResponseStatusEnum(String code, String message) {
this.code = code;
this.message = message;
}
public String getCode() {
return code;
}
public String getMessage() {
return message;
}
}
package com.loit.build.spi.common.exception;
/**
* 基础异常
*/
public class BusinessException extends RuntimeException {
/**
*
*/
private static final long serialVersionUID = 1L;
//所属模块
private String module;
/**
* 错误码
*/
private String code;
/**
* Ba
* 错误码对应的参数
*/
private Object[] args;
/**
* 错误消息
*/
private String defaultMessage;
public BusinessException(String module, String code, Object[] args, String defaultMessage) {
this.module = module;
this.code = code;
this.args = args;
this.defaultMessage = defaultMessage;
}
public BusinessException(String module, String code, Object[] args) {
this(module, code, args, null);
}
public BusinessException(String module, String defaultMessage) {
this(module, null, null, defaultMessage);
}
public BusinessException(String code, Object[] args) {
this(null, code, args, null);
}
public BusinessException(String defaultMessage) {
this(null, null, null, defaultMessage);
}
public String getModule() {
return module;
}
public String getCode() {
return code;
}
public Object[] getArgs() {
return args;
}
public String getDefaultMessage() {
return defaultMessage;
}
public String getMessage() {
return defaultMessage;
}
@Override
public String toString() {
return this.getClass() + "{" +
"module='" + module + '\'' +
", message='" + getMessage() + '\'' +
'}';
}
}
package com.loit.build.web.common.annotation;
import java.lang.annotation.*;
@Target({ ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RangeParam {
String value();
Class<?> elementClass() default Object.class;
String split() default " - ";
}
package com.loit.build.web.common.exception.base;
import lombok.Data;
/**
* 参数验证异常结果
*/
@Data
public class ArgumentInvalidResult {
/**
* 字段名
*/
private String field;
private Object rejectedValue;
/**
* 默认消息
*/
private String defaultMessage;
}
package com.loit.build.web.common.utils;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Collection;
import java.util.Enumeration;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Http 工具类
* 用于对HttpServletRequest或HttpServletResponse进行操作
*/
@Slf4j
public class HttpUtil {
private static final Pattern PATTERN_HEADER = Pattern.compile("(^|-)([a-zA-Z])([a-zA-Z]*)");
/**
* 转换 Http 请求头 或 响应头
*
* @param headerName
* @return
*/
public static String convertHeaderName(String headerName) {
Matcher matcher = PATTERN_HEADER.matcher(headerName);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb,
matcher.group(1) + matcher.group(2).toUpperCase() + matcher.group(3).toLowerCase());
}
matcher.appendTail(sb);
return sb.toString();
}
/**
* 打印请求参数
*
* @param request
*/
public static void printRequestParameter(HttpServletRequest request) {
request.getParameterMap().forEach((k, v) ->
log.info(" {}=\"{}\"",
k,
request.getParameter(k)
)
);
}
/**
* 打印请求头
*
* @param request
*/
public static void printRequestHeader(HttpServletRequest request) {
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String key = headerNames.nextElement();
log.info(" {}: \"{}\"",
convertHeaderName(key),
request.getHeader(key)
);
}
}
/**
* 打印响应头
*
* @param response
*/
public static void printResponseHeader(HttpServletResponse response) {
Collection<String> headerNames = response.getHeaderNames();
headerNames.forEach(key ->
log.info(" {}: \"{}\"",
convertHeaderName(key),
response.getHeader(key)
)
);
}
/**
* 打印cookie
*
* @param request
*/
public static void printRequestCookie(HttpServletRequest request) {
Cookie[] cookies = request.getCookies();
if (null == cookies) {
return;
}
for (Cookie cookie : cookies) {
try {
log.info(" {Domain:{}, Path:{}, Name:{}, Value:{}, MaxAge:{}, Comment:{}, Version:{}, Secure:{}}",
cookie.getDomain(),
cookie.getPath(),
cookie.getName(),
null != cookie.getValue()
? URLDecoder.decode(cookie.getValue(), "UTF-8")
: null,
cookie.getMaxAge(),
cookie.getComment(),
cookie.getVersion(),
cookie.getSecure()
);
} catch (UnsupportedEncodingException e) {
log.error("不支持的编码", e);
}
}
}
}
......@@ -45,8 +45,7 @@
<modelmapper.version>1.1.0</modelmapper.version>
<spring-tuple.version>1.0.0.RELEASE</spring-tuple.version>
<loit-build-spi-common.version>1.0-SNAPSHOT</loit-build-spi-common.version>
<loit-build-web-common.version>1.0-SNAPSHOT</loit-build-web-common.version>
</properties>
<dependencyManagement>
......@@ -69,16 +68,7 @@
</dependency>
<!--Own dependencies -->
<dependency>
<groupId>com.timeloit.project</groupId>
<artifactId>loit-build-spi-common</artifactId>
<version>${loit-build-spi-common.version}</version>
</dependency>
<dependency>
<groupId>com.timeloit.project</groupId>
<artifactId>loit-build-web-common</artifactId>
<version>${loit-build-web-common.version}</version>
</dependency>
<dependency>
<groupId>com.timeloit.project</groupId>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论