From a4099cf645628c8f49df230e6787da20cd82cf1b Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Wed, 22 Sep 2021 09:06:51 +0800
Subject: [PATCH] Excel注解支持自定义数据处理器
---
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 166 insertions(+), 4 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java
index 7de6fcb..1142e41 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java
@@ -1,13 +1,28 @@
package com.ruoyi.common.core.utils;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.Enumeration;
+import java.util.LinkedHashMap;
+import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.text.Convert;
+import reactor.core.publisher.Mono;
/**
* 客户端工具类
@@ -49,11 +64,34 @@
}
/**
+ * 获取Boolean参数
+ */
+ public static Boolean getParameterToBool(String name)
+ {
+ return Convert.toBool(getRequest().getParameter(name));
+ }
+
+ /**
+ * 获取Boolean参数
+ */
+ public static Boolean getParameterToBool(String name, Boolean defaultValue)
+ {
+ return Convert.toBool(getRequest().getParameter(name), defaultValue);
+ }
+
+ /**
* 获取request
*/
public static HttpServletRequest getRequest()
{
- return getRequestAttributes().getRequest();
+ try
+ {
+ return getRequestAttributes().getRequest();
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
}
/**
@@ -61,7 +99,14 @@
*/
public static HttpServletResponse getResponse()
{
- return getRequestAttributes().getResponse();
+ try
+ {
+ return getRequestAttributes().getResponse();
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
}
/**
@@ -74,8 +119,31 @@
public static ServletRequestAttributes getRequestAttributes()
{
- RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
- return (ServletRequestAttributes) attributes;
+ try
+ {
+ RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
+ return (ServletRequestAttributes) attributes;
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+ }
+
+ public static Map<String, String> getHeaders(HttpServletRequest request)
+ {
+ Map<String, String> map = new LinkedHashMap<>();
+ Enumeration<String> enumeration = request.getHeaderNames();
+ if (enumeration != null)
+ {
+ while (enumeration.hasMoreElements())
+ {
+ String key = enumeration.nextElement();
+ String value = request.getHeader(key);
+ map.put(key, value);
+ }
+ }
+ return map;
}
/**
@@ -133,4 +201,98 @@
}
return false;
}
+
+ /**
+ * 内容编码
+ *
+ * @param str 内容
+ * @return 编码后的内容
+ */
+ public static String urlEncode(String str)
+ {
+ try
+ {
+ return URLEncoder.encode(str, Constants.UTF8);
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ return "";
+ }
+ }
+
+ /**
+ * 内容解码
+ *
+ * @param str 内容
+ * @return 解码后的内容
+ */
+ public static String urlDecode(String str)
+ {
+ try
+ {
+ return URLDecoder.decode(str, Constants.UTF8);
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ return "";
+ }
+ }
+
+ /**
+ * 设置webflux模型响应
+ *
+ * @param response ServerHttpResponse
+ * @param value 响应内容
+ * @return Mono<Void>
+ */
+ public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value)
+ {
+ return webFluxResponseWriter(response, HttpStatus.OK, value, R.FAIL);
+ }
+
+ /**
+ * 设置webflux模型响应
+ *
+ * @param response ServerHttpResponse
+ * @param code 响应状态码
+ * @param value 响应内容
+ * @return Mono<Void>
+ */
+ public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value, int code)
+ {
+ return webFluxResponseWriter(response, HttpStatus.OK, value, code);
+ }
+
+ /**
+ * 设置webflux模型响应
+ *
+ * @param response ServerHttpResponse
+ * @param status http状态码
+ * @param code 响应状态码
+ * @param value 响应内容
+ * @return Mono<Void>
+ */
+ public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code)
+ {
+ return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code);
+ }
+
+ /**
+ * 设置webflux模型响应
+ *
+ * @param response ServerHttpResponse
+ * @param contentType content-type
+ * @param status http状态码
+ * @param code 响应状态码
+ * @param value 响应内容
+ * @return Mono<Void>
+ */
+ public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code)
+ {
+ response.setStatusCode(status);
+ response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType);
+ R<?> result = R.fail(code, value.toString());
+ DataBuffer dataBuffer = response.bufferFactory().wrap(JSONObject.toJSONString(result).getBytes());
+ return response.writeWith(Mono.just(dataBuffer));
+ }
}
--
Gitblit v1.9.3