当前位置:网站首页>2-统一返回类DTO对象
2-统一返回类DTO对象
2022-07-29 06:52:00 【张 邵】
通用结果返回类 (model模块)
DTO
ResponseResult
package com.zs.model.common.dtos;
import com.alibaba.fastjson.JSON;
import com.zs.model.common.enums.AppHttpCodeEnum;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** * 通用的结果返回类 * @param <T> */
@Data
public class ResponseResult<T> implements Serializable {
/** * 访问地址 */
private String host;
/** * 响应码 */
private Integer code;
/** * 异常信息 */
private String errorMessage;
/** * 响应信息 */
private String message;
/** * 响应数据 */
private T data;
public ResponseResult() {
this.code = 200;
}
public ResponseResult(Integer code, T data) {
this.code = code;
this.data = data;
}
public ResponseResult(Integer code, String msg) {
this.code = code;
this.errorMessage = msg;
}
public ResponseResult(Integer code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public ResponseResult(Integer code, String errorMessage, String message, T data) {
this.code = code;
this.errorMessage = errorMessage;
this.message = message;
this.data = data;
}
public ResponseResult(String host, Integer code, String errorMessage, String message, T data) {
this.host = host;
this.code = code;
this.errorMessage = errorMessage;
this.message = message;
this.data = data;
}
//返回ok信息 code + msg
public static ResponseResult okResult(int code, String msg) {
ResponseResult result = new ResponseResult();
return result.ok(code, null, msg);
}
public ResponseResult<?> ok(Integer code, T data, String msg) {
this.code = code;
this.data = data;
this.message = msg;
return this;
}
public ResponseResult<?> ok(Integer code, T data) {
this.code = code;
this.data = data;
return this;
}
public ResponseResult<?> ok(T data) {
this.data = data;
return this;
}
//code + msg
public static ResponseResult okResult(AppHttpCodeEnum enums){
return setOkAppHttpCodeEnum(enums,enums.getMessage());
}
private static ResponseResult setOkAppHttpCodeEnum(AppHttpCodeEnum enums, String message){
return okResult(enums.getCode(),message);
}
//200 + data
public static ResponseResult okResult(Object data) {
ResponseResult result = setOkAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS, AppHttpCodeEnum.SUCCESS.getMessage());
if(data!=null) {
result.setData(data);
}
return result;
}
//enums的code + 自定义信息
public static ResponseResult okResult(AppHttpCodeEnum enums, String errorMessage){
return setOkAppHttpCodeEnum(enums,errorMessage);
}
//返回err信息 code + errmsg
public static ResponseResult errorResult(int code, String errMsg) {
ResponseResult result = new ResponseResult();
return result.error(code, errMsg);
}
public ResponseResult<?> error(Integer code, String msg) {
this.code = code;
this.errorMessage = msg;
return this;
}
//code + errMsg
public static ResponseResult errorResult(AppHttpCodeEnum enums){
return setErrAppHttpCodeEnum(enums,enums.getMessage());
}
private static ResponseResult setErrAppHttpCodeEnum(AppHttpCodeEnum enums, String message){
return errorResult(enums.getCode(),message);
}
//enums的code + 自定义信息
public static ResponseResult errorResult(AppHttpCodeEnum enums, String errorMessage){
return setErrAppHttpCodeEnum(enums,errorMessage);
}
public static ResponseResult errorResultMessage(AppHttpCodeEnum enums, String errorMessage){
return setErrAppHttpCodeEnum(enums,errorMessage);
}
private static ResponseResult setErrMsgAppHttpCodeEnum(AppHttpCodeEnum enums, String message){
return errorResult(enums.getCode(),message);
}
public static ResponseResult errorResult(int code,String msg,String errMsg) {
ResponseResult result = new ResponseResult();
return result.error(code, msg,errMsg);
}
public ResponseResult<?> error(Integer code,String msg, String errMsg) {
this.code = code;
this.message = msg;
this.errorMessage = errMsg;
return this;
}
public static void main(String[] args) {
//前置
/*AppHttpCodeEnum success = AppHttpCodeEnum.SUCCESS; System.out.println(success.getCode()); System.out.println(success.getErrorMessage());*/
//查询一个对象
/*Map map = new HashMap(); map.put("name","zhangsan"); map.put("age",18); ResponseResult result = ResponseResult.okResult(map); System.out.println(JSON.toJSONString(result));*/
//新增,修改,删除 在项目中统一返回成功即可
/* ResponseResult result = ResponseResult.errorResult(AppHttpCodeEnum.SUCCESS); System.out.println(JSON.toJSONString(result));*/
//根据不用的业务返回不同的提示信息 比如:当前操作需要登录、参数错误
/*ResponseResult result = ResponseResult.errorResult(AppHttpCodeEnum.NEED_LOGIN); System.out.println(JSON.toJSONString(result));*/
//查询分页信息
PageResponseResult responseResult = new PageResponseResult(1,5,50);
List list = new ArrayList();
list.add("itcast");
list.add("itheima");
responseResult.setData(list);
System.out.println(JSON.toJSONString(responseResult));
}
}
PageResponseResult
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageResponseResult extends ResponseResult implements Serializable {
private Integer currentPage;
private Integer size;
private Integer total;
}
PageRequestDto
@Data
@Slf4j
public class PageRequestDto {
protected Integer size;
protected Integer page;
public void checkParam() {
if (this.page == null || this.page < 0) {
setPage(1);
}
if (this.size == null || this.size < 0 || this.size > 100) {
setSize(10);
}
}
}
Enum
AppHttpCodeEnum
package com.zs.model.common.enums;
public enum AppHttpCodeEnum {
// 成功段0
SUCCESS(0,"操作成功"),
// 登录段1~50
NEED_LOGIN(1,"需要登录后操作"),
LOGIN_PASSWORD_ERROR(2,"密码错误"),
// TOKEN50~100
TOKEN_INVALID(50,"无效的TOKEN"),
TOKEN_EXPIRE(51,"TOKEN已过期"),
TOKEN_REQUIRE(52,"TOKEN是必须的"),
// SIGN验签 100~120
SIGN_INVALID(100,"无效的SIGN"),
SIG_TIMEOUT(101,"SIGN已过期"),
// 参数错误 500~1000
PARAM_REQUIRE(500,"缺少参数"),
PARAM_INVALID(501,"无效参数"),
PARAM_IMAGE_FORMAT_ERROR(502,"图片格式有误"),
SERVER_ERROR(503,"服务器内部错误"),
// 数据错误 1000~2000
DATA_EXIST(1000,"数据已经存在"),
AP_USER_DATA_NOT_EXIST(1001,"ApUser数据不存在"),
DATA_NOT_EXIST(1002,"数据不存在"),
// 数据错误 3000~3500
NO_OPERATOR_AUTH(3000,"无权限操作"),
NEED_ADMIND(3001,"需要管理员权限");
int code;
String message;
AppHttpCodeEnum(int code, String errorMessage){
this.code = code;
this.message = errorMessage;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
}
边栏推荐
- [C language brush leetcode] 67. binary sum (E)
- 以太网接口介绍
- npm install 时,卡住不动,五种解决方法
- 【OpenGL】着色器(Shader)的使用
- Operator3-设计一个operator
- Excel file reading and writing (creation and parsing)
- ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
- 【charles日常问题】开启charles,使用不了钉钉
- LeetCode 879. 盈利计划
- buck电路boot电容短路和断路实测波形
猜你喜欢
随机推荐
时钟树综合(一)
SSH password free login - two virtual machines establish password free channel two-way trust
Win11vmware turns on the virtual machine and restarts on the blue screen and the solution that cannot be started
实现改变一段文字的部分颜色效果
Flink real-time warehouse DWD layer (transaction domain - additional purchase dimension degradation processing) template code
作业7.28 文件IO与标准IO
Pod基本介绍
gcc/g++的使用
Flink实时仓库-DWD层(交易域-加购维度退化处理)模板代码
NPM install reports an error NPM err could not resolve dependency NPM err peer
route的meta配置项
Variables and encryption in ansible
怎么会不喜欢呢,CICD中轻松发送邮件
[OpenGL] use of shaders
Decompilation of wechat applet
MySQL advanced (Advanced) SQL statement (I)
resize2fs: 超级块中的幻数有错(Bad magic number in super-block )
Excel file reading and writing (creation and parsing)
Custom events
[C language brush leetcode] 2332. The latest time to get on the bus (m)