From 0375fd319c9f3b08d255c814cb0f8521d8ec641b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 18 八月 2021 11:11:24 +0800
Subject: [PATCH] !78 同步dev分支 Merge pull request !78 from 疯狂的狮子Li/dev

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/jackson/BigNumberSerializer.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/jackson/BigNumberSerializer.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/jackson/BigNumberSerializer.java
new file mode 100644
index 0000000..1781b94
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/jackson/BigNumberSerializer.java
@@ -0,0 +1,42 @@
+package com.ruoyi.framework.jackson;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
+import com.fasterxml.jackson.databind.ser.std.NumberSerializer;
+
+import java.io.IOException;
+
+/**
+ * 瓒呭嚭 JS 鏈�澶ф渶灏忓�� 澶勭悊
+ *
+ * @author Lion Li
+ */
+@JacksonStdImpl
+public class BigNumberSerializer extends NumberSerializer {
+
+	/**
+	 * 鏍规嵁 JS Number.MAX_SAFE_INTEGER 涓� Number.MIN_SAFE_INTEGER 寰楁潵
+	 */
+	private static final long MAX_SAFE_INTEGER = 9007199254740991L;
+	private static final long MIN_SAFE_INTEGER = -9007199254740991L;
+
+	/**
+	 * 鎻愪緵瀹炰緥
+	 */
+	public static final BigNumberSerializer INSTANCE = new BigNumberSerializer(Number.class);
+
+	public BigNumberSerializer(Class<? extends Number> rawType) {
+		super(rawType);
+	}
+
+	@Override
+	public void serialize(Number value, JsonGenerator gen, SerializerProvider provider) throws IOException {
+		// 瓒呭嚭鑼冨洿 搴忓垪鍖栦綅瀛楃涓�
+		if (value.longValue() > MIN_SAFE_INTEGER && value.longValue() < MAX_SAFE_INTEGER) {
+			super.serialize(value, gen, provider);
+		} else {
+			gen.writeString(value.toString());
+		}
+	}
+}

--
Gitblit v1.9.3