签到汇总

beetlsql3-dev
Mlxa0324 2 years ago
parent 197e22ffe8
commit f29bb65620

@ -3,7 +3,8 @@ package com.ibeetl.admin.core.annotation;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ibeetl.admin.core.conf.JasonConfig; import com.ibeetl.admin.core.conf.BigDecimalDeSerializer;
import com.ibeetl.admin.core.conf.BigDecimalSerializer;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
@ -13,8 +14,8 @@ import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD) @Target(ElementType.FIELD)
@JacksonAnnotationsInside @JacksonAnnotationsInside
@JsonSerialize(using = JasonConfig.BigDecimalSerializer.class) @JsonSerialize(using = BigDecimalSerializer.class)
@JsonDeserialize(using = JasonConfig.BigDecimalDeSerializer.class) @JsonDeserialize(using = BigDecimalDeSerializer.class)
public @interface BigDecimalFormat { public @interface BigDecimalFormat {
String value() default "#####0.00"; String value() default "#####0.00";
} }

@ -0,0 +1,23 @@
package com.ibeetl.admin.core.conf;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import org.springframework.boot.jackson.JsonComponent;
import java.io.IOException;
import java.math.BigDecimal;
@JsonComponent
public class BigDecimalDeSerializer extends JsonDeserializer<BigDecimal> {
public BigDecimalDeSerializer() {
}
@Override
public BigDecimal deserialize(JsonParser jsonParser,
DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return new BigDecimal(jsonParser.getText().replaceAll(",",""));
}
}

@ -0,0 +1,48 @@
package com.ibeetl.admin.core.conf;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import com.ibeetl.admin.core.annotation.BigDecimalFormat;
import org.springframework.boot.jackson.JsonComponent;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Objects;
@JsonComponent
public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements ContextualSerializer {
public BigDecimalSerializer() {
}
private String format = "#####0.00";
@Override
public void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeString(new DecimalFormat(format).format(bigDecimal));
}
@Override
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {
if(beanProperty !=null ){
if(Objects.equals(beanProperty.getType().getRawClass(),BigDecimal.class)){
BigDecimalFormat bigDecimalFormat = beanProperty.getAnnotation((BigDecimalFormat.class));
if(bigDecimalFormat == null){
bigDecimalFormat = beanProperty.getContextAnnotation(BigDecimalFormat.class);
}
BigDecimalSerializer bigDecimalSerializer = new BigDecimalSerializer();
if(bigDecimalFormat != null){
bigDecimalSerializer.format = bigDecimalFormat.value();
}
return bigDecimalSerializer;
}
return serializerProvider.findValueSerializer(beanProperty.getType(),beanProperty);
}
return serializerProvider.findNullValueSerializer(beanProperty);
}
}

@ -20,6 +20,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.ConstraintViolationException;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
@ -171,7 +172,8 @@ public class CustomErrorController extends AbstractErrorController {
} }
protected String getErrorMessage(Throwable ex) { protected String getErrorMessage(Throwable ex) {
if(ex instanceof PlatformException || ex instanceof IllegalArgumentException){ if(ex instanceof PlatformException || ex instanceof IllegalArgumentException
|| ex instanceof ConstraintViolationException) {
return ex.getMessage(); return ex.getMessage();
}else{ }else{
return "服务器错误,请联系管理员"; return "服务器错误,请联系管理员";

@ -1,29 +1,24 @@
package com.ibeetl.admin.core.conf; package com.ibeetl.admin.core.conf;
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.Version; import com.fasterxml.jackson.core.Version;
import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ibeetl.admin.core.annotation.BigDecimalFormat;
import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.JsonResult;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.core.engine.PageQuery;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.jackson.JsonComponent;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Map; import java.util.Map;
import java.util.Objects;
@Configuration @Configuration
public class JasonConfig { public class JasonConfig {
@ -89,43 +84,4 @@ public class JasonConfig {
} }
} }
@JsonComponent
public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements ContextualSerializer {
private String format = "#####0.00";
@Override
public void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeString(new DecimalFormat(format).format(bigDecimal));
}
@Override
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {
if(beanProperty !=null ){
if(Objects.equals(beanProperty.getType().getRawClass(),BigDecimal.class)){
BigDecimalFormat bigDecimalFormat = beanProperty.getAnnotation((BigDecimalFormat.class));
if(bigDecimalFormat == null){
bigDecimalFormat = beanProperty.getContextAnnotation(BigDecimalFormat.class);
}
BigDecimalSerializer bigDecimalSerializer = new BigDecimalSerializer();
if(bigDecimalFormat != null){
bigDecimalSerializer.format = bigDecimalFormat.value();
}
return bigDecimalSerializer;
}
return serializerProvider.findValueSerializer(beanProperty.getType(),beanProperty);
}
return serializerProvider.findNullValueSerializer(beanProperty);
}
}
@JsonComponent
public class BigDecimalDeSerializer extends JsonDeserializer<BigDecimal> {
@Override
public BigDecimal deserialize(JsonParser jsonParser,
DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return new BigDecimal(jsonParser.getText().replaceAll(",",""));
}
}
} }

Loading…
Cancel
Save