From 265f42953f86a78e2269943df34fa7702e6e24d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=8E?= Date: Tue, 13 May 2025 14:28:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor(uapbd):=20=E9=87=8D=E6=9E=84=20QuerySy?= =?UTF-8?q?nc=20=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化 baseQuery 方法,提高代码复用性 - 新增 processExtraParams 方法 --- .../public/nccloud/api/uapbd/QuerySync.java | 87 ++++++++++--------- 1 file changed, 47 insertions(+), 40 deletions(-) diff --git a/uapbd/src/public/nccloud/api/uapbd/QuerySync.java b/uapbd/src/public/nccloud/api/uapbd/QuerySync.java index 180519e..13eb400 100644 --- a/uapbd/src/public/nccloud/api/uapbd/QuerySync.java +++ b/uapbd/src/public/nccloud/api/uapbd/QuerySync.java @@ -37,18 +37,20 @@ public class QuerySync extends AbstractNCCRestResource { private JSONString baseQuery(ApiUfinterface apiUfinterface, String viewName, String pkColumnName) throws DAOException { Map data = apiUfinterface.getData().getParamdata(); + // ֶ + processExtraParams(data); JSONObject pageInfo = (JSONObject) JSONObject.toJSON(apiUfinterface.getPageInfo()); data.remove("type"); // ƳͲΪ·,´ݻӰѯ - + // ȡ String extraCondition = null; if (data.containsKey("extraCondition")) { extraCondition = (String) data.get("extraCondition"); data.remove("extraCondition"); // ƳֹӰѯ } - + String condition = QuerySyncSqlUtils.buildUniversalCondition(data); - + // ڶƴӵ if (extraCondition != null && !extraCondition.isEmpty()) { condition = condition + " AND " + extraCondition; @@ -109,6 +111,47 @@ public class QuerySync extends AbstractNCCRestResource { } } + /** + * TSֶ + */ + private static void processExtraParams(Map data) { + // ts + if (data.containsKey("ts")) { + Object tsObj = data.get("ts"); + String tsCondition = null; + + if (tsObj instanceof String) { + String ts = (String) tsObj; + if (!ts.contains(",")) { // ʱ + // ʱȡڲ֣㵽ʱķΧ + String dayStart = ts.split(" ")[0] + " 00:00:00"; + tsCondition = "ts >= '" + dayStart + "' AND ts <= '" + ts + "'"; + } else { // Ѿʱ䷶Χʽ磺startTime,endTime + String[] timeRange = ts.split(","); + if (timeRange.length == 2) { + tsCondition = "ts >= '" + timeRange[0] + "' AND ts <= '" + timeRange[1] + "'"; + } + } + } + + // õextraCondition + if (tsCondition != null) { + // ǷextraCondition + String existingExtraCondition = data.containsKey("extraCondition") ? + (String) data.get("extraCondition") : ""; + + if (existingExtraCondition.isEmpty()) { + data.put("extraCondition", tsCondition); + } else { + data.put("extraCondition", existingExtraCondition + " AND " + tsCondition); + } + } + + // ӲƳtsֱڲѯ + data.remove("ts"); + } + } + private JSONString queryCustomer(ApiUfinterface ufinterface) throws DAOException { return baseQuery(ufinterface, "V_UAPBD_QUERYSYNC_CUSTOMER", "pk_customer"); } @@ -131,46 +174,10 @@ public class QuerySync extends AbstractNCCRestResource { */ private JSONString queryMaterial(ApiUfinterface ufinterface) throws DAOException { Map data = ufinterface.getData().getParamdata(); - - // ts - if (data.containsKey("ts")) { - Object tsObj = data.get("ts"); - String tsCondition = null; - - if (tsObj instanceof String) { - String ts = (String) tsObj; - if (!ts.contains(",")) { // ʱ - // ʱȡڲ֣㵽ʱķΧ - String dayStart = ts.split(" ")[0] + " 00:00:00"; - tsCondition = "ts >= '" + dayStart + "' AND ts <= '" + ts + "'"; - } else { // Ѿʱ䷶Χʽ磺startTime,endTime - String[] timeRange = ts.split(","); - if (timeRange.length == 2) { - tsCondition = "ts >= '" + timeRange[0] + "' AND ts <= '" + timeRange[1] + "'"; - } - } - } - - // õextraCondition - if (tsCondition != null) { - // ǷextraCondition - String existingExtraCondition = data.containsKey("extraCondition") ? - (String) data.get("extraCondition") : ""; - - if (existingExtraCondition.isEmpty()) { - data.put("extraCondition", tsCondition); - } else { - data.put("extraCondition", existingExtraCondition + " AND " + tsCondition); - } - } - - // ӲƳtsֱڲѯ - data.remove("ts"); - } - return baseQuery(ufinterface, "V_UAPBD_QUERYSYNC_MATERIAL", "pk_material"); } + /** * ѯBOMάϢ */