package com.ibeetl.admin.core.conf;
|
|
import java.io.IOException;
|
import java.text.SimpleDateFormat;
|
|
import org.beetl.sql.core.engine.PageQuery;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
import com.fasterxml.jackson.core.JsonGenerator;
|
import com.fasterxml.jackson.core.Version;
|
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.ibeetl.admin.core.web.JsonResult;
|
|
@Configuration
|
public class JasonConfig {
|
@Bean
|
@ConditionalOnMissingBean(ObjectMapper.class)
|
public ObjectMapper getObjectMapper() {
|
ObjectMapper objectMapper = new ObjectMapper();
|
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
|
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
|
SimpleModule simpleModule = new SimpleModule("SimpleModule",
|
Version.unknownVersion());
|
simpleModule.addSerializer(JsonResult.class, new CustomJsonResultSerializer());
|
objectMapper.registerModule(simpleModule);
|
return objectMapper;
|
}
|
/**
|
* layui 前端要求后台返回的数据格式
|
* @author xiandafu
|
*
|
*/
|
public static class CustomJsonResultSerializer extends JsonSerializer<JsonResult> {
|
|
public CustomJsonResultSerializer() {
|
}
|
|
|
@Override
|
public void serialize(JsonResult value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
gen.writeStartObject();
|
if(value.getCode().equals("200")) {
|
gen.writeObjectField("code", 0);
|
}else {
|
gen.writeObjectField("code", Integer.parseInt(value.getCode()));
|
}
|
gen.writeStringField("msg", value.getMsg());
|
Object data = value.getData();
|
if(data instanceof PageQuery ) {
|
PageQuery query = (PageQuery)(data);
|
gen.writeObjectField("count", query.getTotalRow());
|
gen.writeObjectField("data", query.getList());
|
}else {
|
|
gen.writeObjectField("data", data);
|
}
|
gen.writeEndObject();
|
}
|
|
}
|
}
|