@@ -16,8 +16,10 @@ import org.springframework.boot.autoconfigure.http.HttpMessageConverters; | |||||
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 org.springframework.context.annotation.Primary; | import org.springframework.context.annotation.Primary; | ||||
import org.springframework.http.MediaType; | |||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | ||||
import org.springframework.web.method.support.HandlerMethodArgumentResolver; | import org.springframework.web.method.support.HandlerMethodArgumentResolver; | ||||
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; | |||||
import org.springframework.web.servlet.config.annotation.CorsRegistry; | import org.springframework.web.servlet.config.annotation.CorsRegistry; | ||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | ||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | ||||
@@ -121,4 +123,10 @@ public class WebMvcConfig implements WebMvcConfigurer { | |||||
log.error("'/files/**' 已经被注册"); | log.error("'/files/**' 已经被注册"); | ||||
} | } | ||||
} | } | ||||
// 所有返回接口Content-Type默认都返回application/json | |||||
@Override | |||||
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { | |||||
configurer.defaultContentType(MediaType.APPLICATION_JSON); | |||||
} | |||||
} | } |
@@ -1,6 +1,7 @@ | |||||
package cc.smtweb.framework.core.mvc.controller; | package cc.smtweb.framework.core.mvc.controller; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.http.MediaType; | |||||
import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
import javax.annotation.PreDestroy; | import javax.annotation.PreDestroy; | ||||
@@ -25,7 +26,7 @@ public class ApiController { | |||||
* @return 返回对象,一般在函数里面使用R | * @return 返回对象,一般在函数里面使用R | ||||
* @throws Exception API处理异常 | * @throws Exception API处理异常 | ||||
*/ | */ | ||||
@GetMapping("/api/**") | |||||
@GetMapping(value = "/api/**", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) | |||||
public Object commonGet(@RequestParam Map<String, Object> params, | public Object commonGet(@RequestParam Map<String, Object> params, | ||||
HttpServletRequest request, HttpServletResponse response) throws Exception { | HttpServletRequest request, HttpServletResponse response) throws Exception { | ||||
String apiUrl = request.getRequestURI().substring(5); | String apiUrl = request.getRequestURI().substring(5); | ||||
@@ -41,7 +42,7 @@ public class ApiController { | |||||
* @return 返回对象,一般在函数里面使用R | * @return 返回对象,一般在函数里面使用R | ||||
* @throws Exception API处理异常 | * @throws Exception API处理异常 | ||||
*/ | */ | ||||
@PostMapping("/api/**") | |||||
@PostMapping(value = "/api/**", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) | |||||
public Object commonPost(@RequestParam Map<String, Object> params, @RequestBody(required = false) String body, | public Object commonPost(@RequestParam Map<String, Object> params, @RequestBody(required = false) String body, | ||||
HttpServletRequest request, HttpServletResponse response) throws Exception { | HttpServletRequest request, HttpServletResponse response) throws Exception { | ||||
String apiUrl = request.getRequestURI().substring(5); | String apiUrl = request.getRequestURI().substring(5); | ||||
@@ -7,6 +7,7 @@ import cc.smtweb.framework.core.db.vo.ModelTable; | |||||
import cc.smtweb.framework.core.exception.JsonParseException; | import cc.smtweb.framework.core.exception.JsonParseException; | ||||
import cc.smtweb.framework.core.util.jackson.*; | import cc.smtweb.framework.core.util.jackson.*; | ||||
import com.fasterxml.jackson.annotation.JsonInclude; | import com.fasterxml.jackson.annotation.JsonInclude; | ||||
import com.fasterxml.jackson.core.JsonGenerator; | |||||
import com.fasterxml.jackson.core.JsonProcessingException; | import com.fasterxml.jackson.core.JsonProcessingException; | ||||
import com.fasterxml.jackson.databind.DeserializationFeature; | import com.fasterxml.jackson.databind.DeserializationFeature; | ||||
import com.fasterxml.jackson.databind.JavaType; | import com.fasterxml.jackson.databind.JavaType; | ||||
@@ -69,6 +70,7 @@ public class JsonUtil { | |||||
module.addDeserializer(java.util.Date.class, new DateDeserializer()); | module.addDeserializer(java.util.Date.class, new DateDeserializer()); | ||||
mapper.registerModule(module); | mapper.registerModule(module); | ||||
mapper.enable(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN); | |||||
} | } | ||||
public static JsonNode readTree(String body) { | public static JsonNode readTree(String body) { | ||||
@@ -0,0 +1,111 @@ | |||||
{ | |||||
"fields": [ | |||||
{ | |||||
"name": "mc_id", | |||||
"fieldType": "1", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "ID" | |||||
}, | |||||
{ | |||||
"name": "mc_parent_id", | |||||
"fieldType": "4", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "ID", | |||||
"link": "2" | |||||
}, | |||||
{ | |||||
"name": "mc_prj_id", | |||||
"fieldType": "", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "ID", | |||||
"link": "1" | |||||
}, | |||||
{ | |||||
"name": "mc_code", | |||||
"fieldType": "2", | |||||
"dataType": "CODE", | |||||
"null": "0", | |||||
"default": "", | |||||
"title": "编码", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_name", | |||||
"fieldType": "3", | |||||
"dataType": "NAME", | |||||
"null": "0", | |||||
"default": "", | |||||
"title": "编码", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_create_uid", | |||||
"fieldType": "7", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "创建人", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_update_uid", | |||||
"fieldType": "9", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "最后更新人", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_create_at", | |||||
"fieldType": "8", | |||||
"dataType": "DATETIME", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "创建时间", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_update_at", | |||||
"fieldType": "10", | |||||
"dataType": "DATETIME", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "最后更新时间", | |||||
"link": "", | |||||
"editor": "" | |||||
} | |||||
], | |||||
"indexes": [ | |||||
{ | |||||
"name": "pk", | |||||
"fields": "mc_id", | |||||
"type": "P" | |||||
} | |||||
], | |||||
"caches": [ | |||||
{ | |||||
"name": "pr", | |||||
"title": "按树型", | |||||
"fields": "mc_parent_id", | |||||
"type": "L" | |||||
}, | |||||
{ | |||||
"name": "prj", | |||||
"title": "按目录", | |||||
"fields": "mc_prj_id", | |||||
"type": "L" | |||||
} | |||||
] | |||||
} |
@@ -0,0 +1,111 @@ | |||||
{ | |||||
"fields": [ | |||||
{ | |||||
"name": "mc_id", | |||||
"fieldType": "1", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "ID" | |||||
}, | |||||
{ | |||||
"name": "mc_parent_id", | |||||
"fieldType": "4", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "ID", | |||||
"link": "2" | |||||
}, | |||||
{ | |||||
"name": "mc_prj_id", | |||||
"fieldType": "", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "ID", | |||||
"link": "1" | |||||
}, | |||||
{ | |||||
"name": "mc_code", | |||||
"fieldType": "2", | |||||
"dataType": "CODE", | |||||
"null": "0", | |||||
"default": "", | |||||
"title": "编码", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_name", | |||||
"fieldType": "3", | |||||
"dataType": "NAME", | |||||
"null": "0", | |||||
"default": "", | |||||
"title": "编码", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_create_uid", | |||||
"fieldType": "7", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "创建人", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_update_uid", | |||||
"fieldType": "9", | |||||
"dataType": "ID", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "最后更新人", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_create_at", | |||||
"fieldType": "8", | |||||
"dataType": "DATETIME", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "创建时间", | |||||
"link": "", | |||||
"editor": "" | |||||
}, | |||||
{ | |||||
"name": "mc_update_at", | |||||
"fieldType": "10", | |||||
"dataType": "DATETIME", | |||||
"null": "1", | |||||
"default": "-1", | |||||
"title": "最后更新时间", | |||||
"link": "", | |||||
"editor": "" | |||||
} | |||||
], | |||||
"indexes": [ | |||||
{ | |||||
"name": "pk", | |||||
"fields": "mc_id", | |||||
"type": "P" | |||||
} | |||||
], | |||||
"caches": [ | |||||
{ | |||||
"name": "pr", | |||||
"title": "按树型", | |||||
"fields": "mc_parent_id", | |||||
"type": "L" | |||||
}, | |||||
{ | |||||
"name": "prj", | |||||
"title": "按目录", | |||||
"fields": "mc_prj_id", | |||||
"type": "L" | |||||
} | |||||
] | |||||
} |