From 5da43ea330504ee939cd13dfe6ef72d3783634f6 Mon Sep 17 00:00:00 2001 From: Date: Thu, 13 Mar 2025 13:44:21 +0000 Subject: [PATCH] =?UTF-8?q?2025/3/13=2021:44:08---=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- camel-mybatis-yml/RequestProcessor.java | 83 +++++++++++++++++++++--- camel-mybatis-yml/user-manage.camel.yaml | 6 +- 2 files changed, 78 insertions(+), 11 deletions(-) diff --git a/camel-mybatis-yml/RequestProcessor.java b/camel-mybatis-yml/RequestProcessor.java index d8b9028..4dfe06a 100644 --- a/camel-mybatis-yml/RequestProcessor.java +++ b/camel-mybatis-yml/RequestProcessor.java @@ -33,13 +33,31 @@ public class RequestProcessor { return Long.parseLong(idStr); } - /** + /** * 从请求体解析分页参数 */ - public Map extractPageParams(Exchange exchange) throws Exception { - String body = exchange.getIn().getBody(String.class); - PageRequest pageRequest = objectMapper.readValue(body, PageRequest.class); - + public Map extractPageCountParams(Exchange exchange) throws Exception { + Object body = exchange.getIn().getBody(); + PageRequest pageRequest = null; + if(body instanceof String){ + String bodyStr = (String) body; + LOGGER.info("分页拿到的请求body: {}", bodyStr); + pageRequest = objectMapper.readValue(bodyStr, PageRequest.class); + // 保存请求对象供后续使用 + exchange.setProperty("pageRequest", pageRequest); + + }else if(body instanceof Map){ + @SuppressWarnings("unchecked") + Map bodyMap = (Map) body; + LOGGER.info("分页拿到的请求body: {}", bodyMap); + pageRequest = objectMapper.convertValue(bodyMap, PageRequest.class); + }else{ + // 处理其他类型或null + LOGGER.warn("无法处理的请求体类型: {}", body != null ? body.getClass().getName() : "null"); + pageRequest = new PageRequest(); + pageRequest.setPage(1); + pageRequest.setSize(10); + } // 保存请求对象供后续使用 exchange.setProperty("pageRequest", pageRequest); @@ -52,13 +70,40 @@ public class RequestProcessor { return params; } - + + public Map extractPageParams(Exchange exchange) throws Exception { + Map params = new HashMap<>(); + PageRequest pageRequest = (PageRequest) exchange.getProperty("pageRequest"); + if(pageRequest == null){ + throw new Exception("分页请求对象为空"); + } + params.put("offset", pageRequest.getOffset()); + params.put("limit", pageRequest.getLimit()); + params.put("filters", pageRequest.getFilters()); + params.put("sortField", pageRequest.getSortField()); + params.put("sortOrder", pageRequest.getSortOrder()); + return params; + } + /** - * 从请求体解析高级搜索参数 + * 从请求体解析高级搜索数量参数 */ - public Map extractSearchParams(Exchange exchange) throws Exception { - String body = exchange.getIn().getBody(String.class); - AdvancedSearchRequest searchRequest = objectMapper.readValue(body, AdvancedSearchRequest.class); + public Map extractSearchCountParams(Exchange exchange) throws Exception { + Object body = exchange.getIn().getBody(); + AdvancedSearchRequest searchRequest = null; + if(body instanceof String){ + String bodyStr = (String) body; + LOGGER.info("高级搜索拿到的请求body: {}", bodyStr); + searchRequest = objectMapper.readValue(bodyStr, AdvancedSearchRequest.class); + }else if(body instanceof Map){ + @SuppressWarnings("unchecked") + Map bodyMap = (Map) body; + LOGGER.info("高级搜索拿到的请求body: {}", bodyMap); + searchRequest = objectMapper.convertValue(bodyMap, AdvancedSearchRequest.class); + }else{ + LOGGER.warn("无法处理的请求体类型: {}", body != null ? body.getClass().getName() : "null"); + searchRequest = new AdvancedSearchRequest(); + } // 保存请求对象供后续使用 exchange.setProperty("searchRequest", searchRequest); @@ -73,6 +118,24 @@ public class RequestProcessor { return params; } + /** + * 从请求体解析高级搜索参数 + */ + public Map extractSearchParams(Exchange exchange) throws Exception { + Map params = new HashMap<>(); + AdvancedSearchRequest searchRequest = (AdvancedSearchRequest) exchange.getProperty("searchRequest"); + if(searchRequest == null){ + throw new Exception("高级搜索请求对象为空"); + } + params.put("offset", searchRequest.getOffset()); + params.put("limit", searchRequest.getLimit()); + params.put("criteria", searchRequest.getCriteria()); + params.put("sortField", searchRequest.getSortField()); + params.put("sortOrder", searchRequest.getSortOrder()); + + return params; + } + /** * 准备实体创建参数,通用方法 * @param 实体类型 diff --git a/camel-mybatis-yml/user-manage.camel.yaml b/camel-mybatis-yml/user-manage.camel.yaml index 2e40e40..406af9c 100644 --- a/camel-mybatis-yml/user-manage.camel.yaml +++ b/camel-mybatis-yml/user-manage.camel.yaml @@ -62,7 +62,7 @@ - bean: id: bean-4910 ref: requestProcessor - method: extractPageParams + method: extractPageCountParams - log: id: log-ea02 message: ${body} @@ -82,6 +82,10 @@ - log: id: log-21e9 message: ${body} + - bean: + id: bean-7ad2 + ref: requestProcessor + method: extractPageParams - to: id: to-d904 uri: mybatis