|  | @@ -0,0 +1,108 @@
 | 
	
		
			
				|  |  | +package com.yami.shop.common.util;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * <p>TODO</p>
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * @author mr wang
 | 
	
		
			
				|  |  | + * @version 1.0.0
 | 
	
		
			
				|  |  | + * @since 2025-08-26
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import com.fasterxml.jackson.annotation.JsonInclude;
 | 
	
		
			
				|  |  | +import com.yami.shop.common.enums.ResponseEnum;
 | 
	
		
			
				|  |  | +import lombok.AllArgsConstructor;
 | 
	
		
			
				|  |  | +import lombok.Data;
 | 
	
		
			
				|  |  | +import lombok.NoArgsConstructor;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * <p>统一响应结果</p>
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * @param <T> 任意泛型
 | 
	
		
			
				|  |  | + * @author 王坚
 | 
	
		
			
				|  |  | + * @time 2018-11-8
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +@Data
 | 
	
		
			
				|  |  | +@AllArgsConstructor
 | 
	
		
			
				|  |  | +@NoArgsConstructor
 | 
	
		
			
				|  |  | +@JsonInclude(JsonInclude.Include.NON_NULL)
 | 
	
		
			
				|  |  | +public class R<T> {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    int code;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    T data;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    String msg;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    boolean success;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> SUCCESS() {
 | 
	
		
			
				|  |  | +        return new R<>(ResponseEnum.SUCCESS.getCode(), null, ResponseEnum.SUCCESS.getValue(), Boolean.TRUE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> SUCCESS(T param) {
 | 
	
		
			
				|  |  | +        int code = ResponseEnum.SUCCESS.getCode();
 | 
	
		
			
				|  |  | +        String value = ResponseEnum.SUCCESS.getValue();
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            if (param.getClass().isEnum()) {
 | 
	
		
			
				|  |  | +                IBasicInfo basicInfo = (IBasicInfo) param;
 | 
	
		
			
				|  |  | +                code = basicInfo.getCode();
 | 
	
		
			
				|  |  | +                value = basicInfo.getValue();
 | 
	
		
			
				|  |  | +                return new R<>(code, null, value, Boolean.TRUE);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } catch (NullPointerException e) {
 | 
	
		
			
				|  |  | +            return new R<>(code, null, value, Boolean.TRUE);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return new R<>(code, param, value, Boolean.TRUE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> SUCCESS(T param, String msg) {
 | 
	
		
			
				|  |  | +        return new R<>(ResponseEnum.SUCCESS.getCode(), param, msg, Boolean.TRUE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> SUCCESS(Integer code, T param, String msg) {
 | 
	
		
			
				|  |  | +        return new R<>(code, param, msg, Boolean.TRUE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> FAIL() {
 | 
	
		
			
				|  |  | +        return new R<>(ResponseEnum.ERROR.getCode(), null, ResponseEnum.ERROR.getValue(), Boolean.FALSE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> FAIL(T param) {
 | 
	
		
			
				|  |  | +        int code = ResponseEnum.ERROR.getCode();
 | 
	
		
			
				|  |  | +        String value = ResponseEnum.ERROR.getValue();
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            if (param.getClass().isEnum()) {
 | 
	
		
			
				|  |  | +                IBasicInfo basicInfo = (IBasicInfo) param;
 | 
	
		
			
				|  |  | +                code = basicInfo.getCode();
 | 
	
		
			
				|  |  | +                value = basicInfo.getValue();
 | 
	
		
			
				|  |  | +                return new R<>(code, null, value, Boolean.FALSE);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } catch (NullPointerException e) {
 | 
	
		
			
				|  |  | +            return new R<>(code, null, value, Boolean.FALSE);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return new R<>(code, param, value, Boolean.FALSE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> FAIL(String msg) {
 | 
	
		
			
				|  |  | +        return new R<>(ResponseEnum.ERROR.getCode(), null, msg, Boolean.FALSE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> FAIL(int code) {
 | 
	
		
			
				|  |  | +        return new R<>(code, null, ResponseEnum.ERROR.getValue(), Boolean.FALSE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> FAIL(T param, String msg) {
 | 
	
		
			
				|  |  | +        return new R<>(ResponseEnum.ERROR.getCode(), param, msg, Boolean.FALSE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> FAIL(int code, String msg) {
 | 
	
		
			
				|  |  | +        return new R<>(code, null, msg, Boolean.FALSE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <T> R<T> FAIL(int code, T param, String msg) {
 | 
	
		
			
				|  |  | +        return new R<>(code, param, msg, Boolean.FALSE);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |