统一结果集返回类R

/**
* Copyright (c) 2016-2019 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有,侵权必究!
*/

package com.atguigu.common.utils;

import org.apache.http.HttpStatus;
import java.util.HashMap;
import java.util.Map;

/**
* 返回数据
*
* @author Mark sunlightcs@gmail.com
*/
public class R extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;

public R() {
put("code", 0);
put("msg", "success");
}

public static R error() {
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请联系管理员");
}

public static R error(String msg) {
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
}

public static R error(int code, String msg) {
R r = new R();
r.put("code", code);
r.put("msg", msg);
return r;
}

public static R ok(String msg) {
R r = new R();
r.put("msg", msg);
return r;
}

public static R ok(Map<String, Object> map) {
R r = new R();
r.putAll(map);
return r;
}

public static R ok() {
return new R();
}

public R put(String key, Object value) {
super.put(key, value);
return this;
}
}


eg:
@GetMapping("/{attrgroupId}/attr/relation")
public R attrRelation(@PathVariable("attrgroupId") Long attrgroupId) {
List<AttrEntity> entities = attrService.getRelationAttr(attrgroupId);
return R.ok().put("data", entities);
}
 

===2023.11.10==============================================================================================

package com.ruoyi.zhanduan.util;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.zhanduan.enmus.AppHttpCodeEnum;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
* 通用的结果返回类
*
* @param <T>
*/
@Data
@Accessors(chain = true)// 连缀操作
public class Result<T> implements Serializable {

private String host;

private Integer code;

private String errorMessage;

private T data;

public Result() {
this.code = 200;
}

public Result(Integer code, T data) {
this.code = code;
this.data = data;
}

public Result(Integer code, String msg, T data) {
this.code = code;
this.errorMessage = msg;
this.data = data;
}

public Result(Integer code, String msg) {
this.code = code;
this.errorMessage = msg;
}

/**
* 是否成功
*
* @return
*/
@JsonIgnore
public boolean isSuccess() {
return this.code == 200;
}

public static <T> Result<T> ok() {
return setAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS);
}

@SuppressWarnings("unchecked")
public static <T> Result<T> ok(T data) {
return (Result<T>) ok().setData(data);
}

public static <T> Result<T> error(Integer code, String msg) {

return new Result<T>()
.setCode(code).setErrorMessage(msg);
}

public static <T> Result<T> error(AppHttpCodeEnum enums) {
return setAppHttpCodeEnum(enums);
}

public static <T> Result<T> error(AppHttpCodeEnum enums, String errorMessage) {
return setAppHttpCodeEnum(enums, errorMessage);
}


public static <T> Result<T> result(Integer code, String msg) {

return result(code, null, msg);
}

public static <T> Result<T> result(Integer code, T data, String msg) {

return new Result<T>()
.setCode(code).setData(data).setErrorMessage(msg);
}

private static <T> Result<T> setAppHttpCodeEnum(AppHttpCodeEnum enums) {
return result(enums.getCode(), enums.getErrorMessage());
}

private static <T> Result<T> setAppHttpCodeEnum(AppHttpCodeEnum enums, String errorMessage) {
return result(enums.getCode(), errorMessage);
}
}
 
package com.ruoyi.zhanduan.enmus;

public enum AppHttpCodeEnum {

// 成功段0
SUCCESS(200,"操作成功"),
// 登录段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_ADMIN(3001,"需要管理员权限"),

//自媒体文章错误
MATERIASL_REFERENCE_FAIL(3501,"素材引用失效"),
;

final int code;
final String errorMessage;

AppHttpCodeEnum(int code, String errorMessage){
this.code = code;
this.errorMessage = errorMessage;
}

public int getCode() {
return code;
}

public String getErrorMessage() {
return errorMessage;
}
}

=========================================================================================



public class Result {

private static final String SUCCESS_CODE = "200";

private static final String ERROR_CODE = "201";

private static final String SUCCESS_MSG = "success";

private static final String ERROR_MSG = "error";

private Object data;

private String code;

private String message;

public static Result ok() {
Result r = new Result();
r.setCode(SUCCESS_CODE);
r.setMessage(SUCCESS_MSG);
return r;
}

public static Result ok(Object data) {
Result r = ok();
if (data != null) {
r.setData(data);
}
return r;
}

public static Result ok(Object data, String message) {
Result r = new Result();
r.setCode(SUCCESS_CODE);
r.setData(data);
r.setMessage(message != null ? message : SUCCESS_MSG);
return r;
}

public static Result error() {
Result r = new Result();
r.setCode(ERROR_CODE);
r.setMessage(ERROR_MSG);
return r;
}

public static Result error(Object data) {
Result r = error();
if (data != null) {
r.setData(data);
}
return r;
}

public static Result error(Object data, String message) {
Result r = new Result();
r.setCode(ERROR_CODE);
r.setData(data);
r.setMessage(message != null ? message : ERROR_MSG);
return r;
}

public static Result error(String code , Object data, String message) {
Result r = error(data, message);
r.setCode(code);
return r;
}

public Object getData() {
return data;
}

public void setData(Object data) {
this.data = data;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}
 
posted @   sensen~||^_^|||&  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示