package com.cloudroam.common.util; import com.cloudroam.vo.UnifyResponseVO; import io.github.talelin.autoconfigure.bean.Code; import io.github.talelin.autoconfigure.util.RequestUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletResponse; /** * 响应结果生成工具类 * @author */ @SuppressWarnings("unchecked") @Slf4j public class ResponseUtil { private ResponseUtil() { throw new IllegalStateException("Utility class"); } /** * 获得当前响应 * * @return 响应 */ public static HttpServletResponse getResponse() { return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse(); } public static void setCurrentResponseHttpStatus(int httpStatus) { getResponse().setStatus(httpStatus); } public static UnifyResponseVO generateCreatedResponse(int code) { return (UnifyResponseVO) UnifyResponseVO.builder() .message(Code.CREATED.getDescription()) .code(code) .request(RequestUtil.getSimpleRequest()) .build(); } public static UnifyResponseVO generateCreatedResponse(int code, T data) { return (UnifyResponseVO) UnifyResponseVO.builder() .message(data) .code(code) .request(RequestUtil.getSimpleRequest()) .build(); } public static UnifyResponseVO generateDeletedResponse(int code) { return (UnifyResponseVO) UnifyResponseVO.builder() .message(Code.SUCCESS.getDescription()) .code(code) .request(RequestUtil.getSimpleRequest()) .build(); } public static UnifyResponseVO generateDeletedResponse(int code, T data) { return (UnifyResponseVO) UnifyResponseVO.builder() .message(data) .code(code) .request(RequestUtil.getSimpleRequest()) .build(); } public static UnifyResponseVO generateUpdatedResponse(int code) { return (UnifyResponseVO) UnifyResponseVO.builder() .message(Code.SUCCESS.getDescription()) .code(code) .request(RequestUtil.getSimpleRequest()) .build(); } public static UnifyResponseVO generateUpdatedResponse(int code, T data) { return (UnifyResponseVO) UnifyResponseVO.builder() .message(data) .code(code) .request(RequestUtil.getSimpleRequest()) .build(); } public static UnifyResponseVO generateUnifyResponse(int code) { return (UnifyResponseVO) UnifyResponseVO.builder() .code(code) .request(RequestUtil.getSimpleRequest()) .build(); } }