当前位置:网站首页>2-unified return class dto object
2-unified return class dto object
2022-07-29 07:23:00 【Zhang Shao】
General result return class (model modular )
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;
/** * General result return class * @param <T> */
@Data
public class ResponseResult<T> implements Serializable {
/** * Access address */
private String host;
/** * Response code */
private Integer code;
/** * Abnormal information */
private String errorMessage;
/** * Response information */
private String message;
/** * The response data */
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;
}
// return ok Information 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 Of code + Custom information
public static ResponseResult okResult(AppHttpCodeEnum enums, String errorMessage){
return setOkAppHttpCodeEnum(enums,errorMessage);
}
// return err Information 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 Of code + Custom information
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) {
// In front of
/*AppHttpCodeEnum success = AppHttpCodeEnum.SUCCESS; System.out.println(success.getCode()); System.out.println(success.getErrorMessage());*/
// Query an object
/*Map map = new HashMap(); map.put("name","zhangsan"); map.put("age",18); ResponseResult result = ResponseResult.okResult(map); System.out.println(JSON.toJSONString(result));*/
// newly added , modify , Delete You can return success in the project
/* ResponseResult result = ResponseResult.errorResult(AppHttpCodeEnum.SUCCESS); System.out.println(JSON.toJSONString(result));*/
// Different prompt messages are returned according to different businesses such as : Current operation requires login 、 Parameter error
/*ResponseResult result = ResponseResult.errorResult(AppHttpCodeEnum.NEED_LOGIN); System.out.println(JSON.toJSONString(result));*/
// Query paging information
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 {
// Successful segment 0
SUCCESS(0," Successful operation "),
// Login segment 1~50
NEED_LOGIN(1," Operation after login is required "),
LOGIN_PASSWORD_ERROR(2," Wrong password "),
// TOKEN50~100
TOKEN_INVALID(50," invalid TOKEN"),
TOKEN_EXPIRE(51,"TOKEN Has expired "),
TOKEN_REQUIRE(52,"TOKEN Is a must "),
// SIGN attestation 100~120
SIGN_INVALID(100," invalid SIGN"),
SIG_TIMEOUT(101,"SIGN Has expired "),
// Parameter error 500~1000
PARAM_REQUIRE(500," Lack of parameter "),
PARAM_INVALID(501," Invalid parameter "),
PARAM_IMAGE_FORMAT_ERROR(502," The picture format is incorrect "),
SERVER_ERROR(503," Server internal error "),
// Data error 1000~2000
DATA_EXIST(1000," Data already exists "),
AP_USER_DATA_NOT_EXIST(1001,"ApUser The data doesn't exist "),
DATA_NOT_EXIST(1002," The data doesn't exist "),
// Data error 3000~3500
NO_OPERATOR_AUTH(3000," No permission to operate "),
NEED_ADMIND(3001," Administrator privileges required ");
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;
}
}
边栏推荐
- 我的个人网站不让接入微信登录,于是我做了这个
- Zabbix 其他基础监控项
- Vmware16 create virtual machine: cannot create a new virtual machine, do not have permission to perform this operation
- [redis] redis development specifications and precautions
- 作业7.28 文件IO与标准IO
- MySQL 高级(进阶) SQL 语句 (一)
- Operator3-设计一个operator
- WPF嵌套布局案例
- Remote invocation of microservices
- Ethernet interface introduction
猜你喜欢
Student achievement ranking system based on C language design
WPF简单登录页面的完成案例
CVPR2021| 基于自监督学习的多视图立体匹配 (CVPR2021)
MySQL----多表查询
Job 7.28 file IO and standard IO
Redis基础篇
H3C_利用设置缺省静态路由优先级实现出口双线路的主备功能
QT basic day 2 (2) QT basic components: button class, layout class, output class, input class, container and other individual examples
JS 鸡生蛋与蛋生鸡问题,Object与Function究竟谁出现的更早?Function算不算Function的实例?
Some learning and understanding of vintage analysis
随机推荐
使用VsCode配置MySQL实现连接、查询、等功能
Round avatar of user list and follow small blocks
Explanation of suffix automata (SAM) + Luogu p3804 [template] suffix automata (SAM)
NPM install reports an error NPM err could not resolve dependency NPM err peer
Comparison of advantages between can & canfd integrated test analysis software lkmaster and PCA Explorer 6 analysis software
彻底搞懂kubernetes调度框架与插件
自定义事件
作业7.28 文件IO与标准IO
Redis基础篇
Operator3 - design an operator
When NPM is installed, it is stuck. There are five solutions
Fillder use
Docker最新超详细教程——Docker创建运行MySQL并挂载
1-后台项目搭建
Unity sends a post request to the golang server for parsing and returning
[redis] redis development specifications and precautions
Gin service exit
【Unity实战100例】Unity万能答题系统之单选多选判断题全部通用
ETL为什么经常变成ELT甚至LET?
Personal blog system (with source code)