From 87771f26535d6216e253387e82346bdbfe2097b6 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Mon, 3 Jul 2023 16:57:13 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=8F=AF=E8=A7=86=E5=8C=96=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kicc/common/datasource/util/ConnUtil.java | 5 +- .../api/bigscreen/dto/DynamicModelDto.java | 26 +++ .../controller/VisualCategoryController.java | 103 +++------ .../controller/VisualComponentController.java | 106 +++------- .../controller/VisualController.java | 157 ++++---------- .../controller/VisualDbController.java | 146 ++++--------- .../controller/VisualMapController.java | 109 +++------- .../controller/VisualProxyController.java | 74 +++---- .../controller/VisualRecordController.java | 106 +++------- .../service/IVisualCategoryService.java | 35 +-- .../service/IVisualComponentService.java | 37 +--- .../bigscreen/service/IVisualDbService.java | 4 +- .../bigscreen/service/IVisualMapService.java | 5 +- .../impl/VisualCategoryServiceImpl.java | 44 ++-- .../impl/VisualComponentServiceImpl.java | 37 +--- .../service/impl/VisualConfigServiceImpl.java | 34 +-- .../service/impl/VisualDbServiceImpl.java | 57 +++-- .../service/impl/VisualServiceImpl.java | 5 +- .../bigscreen/util/PlaceholderUtil.java | 155 ++++++++++++++ .../kicc/commonbiz/util/BaiduMapUtils.java | 103 --------- .../kicc/commonbiz/util/GpsGaoAndBaidu.java | 200 ------------------ .../com/cloud/kicc/commonbiz/util/Point.java | 39 ---- .../kicc/commonbiz/util/RequestUtil.java | 162 ++++++++++++++ .../src/main/resources/bootstrap.yml | 6 +- 24 files changed, 634 insertions(+), 1121 deletions(-) create mode 100644 kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/bigscreen/dto/DynamicModelDto.java create mode 100644 kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/util/PlaceholderUtil.java delete mode 100644 kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/BaiduMapUtils.java delete mode 100644 kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/GpsGaoAndBaidu.java delete mode 100644 kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/Point.java create mode 100644 kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/RequestUtil.java diff --git a/kicc-common/kicc-common-datasource/src/main/java/com/cloud/kicc/common/datasource/util/ConnUtil.java b/kicc-common/kicc-common-datasource/src/main/java/com/cloud/kicc/common/datasource/util/ConnUtil.java index 89bc84d8..322cf4ec 100644 --- a/kicc-common/kicc-common-datasource/src/main/java/com/cloud/kicc/common/datasource/util/ConnUtil.java +++ b/kicc-common/kicc-common-datasource/src/main/java/com/cloud/kicc/common/datasource/util/ConnUtil.java @@ -1,5 +1,7 @@ package com.cloud.kicc.common.datasource.util; +import lombok.SneakyThrows; + import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @@ -17,7 +19,8 @@ public class ConnUtil { /** * 测试数据库链接 */ - public static Boolean dbTest(String driverClass, String url, String username, String password) throws Exception { + @SneakyThrows + public static Boolean dbTest(String driverClass, String url, String username, String password) { Connection conn = null; try { //测试驱动类 diff --git a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/bigscreen/dto/DynamicModelDto.java b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/bigscreen/dto/DynamicModelDto.java new file mode 100644 index 00000000..62251e0f --- /dev/null +++ b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/bigscreen/dto/DynamicModelDto.java @@ -0,0 +1,26 @@ +package com.cloud.kicc.commonbiz.api.bigscreen.dto; + +import lombok.Data; + +/** + *
+ * 动态SQL + *
+ * + * @Author: wangxiang4 + * @since: 2023/7/3 + */ +@Data +public class DynamicModelDto { + + /** + * 数据源ID + */ + private String id; + + /** + * sql脚本 + */ + private String sql; + +} diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualCategoryController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualCategoryController.java index 42db41df..fe7b6f93 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualCategoryController.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualCategoryController.java @@ -1,131 +1,78 @@ -/* - * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * Neither the name of the dreamlu.net developer nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * Author: Chill 庄骞 (smallchill@163.com) - *//* - package com.cloud.kicc.commonbiz.bigscreen.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.cloud.kicc.common.core.api.R; +import com.cloud.kicc.common.core.constant.AppConstants; +import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualCategory; +import com.cloud.kicc.commonbiz.bigscreen.service.IVisualCategoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; -import org.springblade.common.constant.LauncherConstant; -import org.springblade.core.boot.ctrl.BladeController; -import org.springblade.core.mp.support.Condition; -import org.springblade.core.mp.support.Query; -import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.Func; -import org.springblade.modules.visual.entity.VisualCategory; -import org.springblade.modules.visual.service.IVisualCategoryService; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; -*/ /** + ** 可视化分类表 控制器 + *
* - * @author BladeX - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @RestController @AllArgsConstructor -@RequestMapping(LauncherConstant.APPLICATION_VISUAL_NAME + "/category") +@RequestMapping(AppConstants.APP_COMMON + "/visual/category") @Api(value = "可视化分类表", tags = "可视化分类接口") -public class VisualCategoryController extends BladeController { +public class VisualCategoryController { private final IVisualCategoryService visualCategoryService; - */ -/** - * 详情 - *//* @GetMapping("/detail") - @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入visualCategory") public R* 可视化组件表 控制器 + *
* - * @author BladeX - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @RestController @AllArgsConstructor -@RequestMapping(LauncherConstant.APPLICATION_VISUAL_NAME + "/component") +@RequestMapping(AppConstants.APP_COMMON + "/visual/component") @Api(value = "可视化组件表", tags = "可视化组件接口") -public class VisualComponentController extends BladeController { +public class VisualComponentController { private final IVisualComponentService visualComponentService; - */ -/** - * 详情 - *//* @GetMapping("/detail") - @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入visualComponent") public R* 可视化表 控制器 + *
* - * @author Chill - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @RestController @AllArgsConstructor -@RequestMapping(LauncherConstant.APPLICATION_VISUAL_NAME + "/visual") +@RequestMapping(AppConstants.APP_COMMON + "/visual") @Api(value = "可视化表", tags = "可视化数据接口") -public class VisualController extends BladeController { +public class VisualController { private final IVisualService visualService; private final IVisualCategoryService categoryService; - private final OssTemplate ossTemplate; - */ -/** - * 详情 - *//* - @DataLog("大屏详情") @GetMapping("/detail") - @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入visual") - public R* 数据源表 控制器 + *
* - * @author Chill - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @RestController @AllArgsConstructor -@RequestMapping(LauncherConstant.APPLICATION_VISUAL_NAME + "/db") +@RequestMapping(AppConstants.APP_COMMON + "/visual/db") @Api(value = "可视化数据源配置表", tags = "可视化数据源配置接口") public class VisualDbController { private final IVisualDbService visualDbService; - */ -/** - * 详情 - *//* - @GetMapping("/detail") - @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入datasource") public R* 可视化地图配置表 控制器 + *
* - * @author BladeX - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @RestController @AllArgsConstructor -@RequestMapping(LauncherConstant.APPLICATION_VISUAL_NAME + "/map") +@RequestMapping(AppConstants.APP_COMMON + "/visual/map") @Api(value = "可视化地图配置表", tags = "可视化地图配置接口") -public class VisualMapController extends BladeController { +public class VisualMapController { private final IVisualMapService visualMapService; - */ -/** - * 详情 - *//* - @GetMapping("/detail") - @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入visualMap") public R* 接口代理 控制器 + *
* - * @author Chill - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @Slf4j @RestController @AllArgsConstructor -@RequestMapping(LauncherConstant.APPLICATION_VISUAL_NAME + "/visual") +@RequestMapping(AppConstants.APP_COMMON + "/visual") @ApiIgnore @Api(value = "接口代理", tags = "接口代理") -public class VisualProxyController extends BladeController { - - */ -/** - * 接口代理 - *//* +public class VisualProxyController { @RequestMapping("/proxy") - @ApiOperationSupport(order = 1) @ApiOperation(value = "接口代理", notes = "接口代理") - public Object proxy(@RequestBody VisualProxy proxy) { + public Object proxy(@RequestBody VisualProxyDto proxy) { // 获取参数 String url = proxy.getUrl(); String method = proxy.getMethod(); @@ -71,26 +48,25 @@ public class VisualProxyController extends BladeController { Object data = proxy.getData(); String request; // 获取参数提交格式 - Boolean form = Func.toBoolean(proxy.getHeaders().get("form"), true); + Boolean form = BooleanUtil.toBoolean(ObjectUtil.defaultIfNull(proxy.getHeaders().get("form"), true).toString()); // 处理GET与DELETE方法请求 - if (StringUtil.equalsIgnoreCase(method, RequestUtil.GET) || StringUtil.equalsIgnoreCase(method, RequestUtil.DELETE)) { + if (StrUtil.equalsIgnoreCase(method, RequestUtil.GET) || StrUtil.equalsIgnoreCase(method, RequestUtil.DELETE)) { request = RequestUtil.request(url, headers, params, method); } else { // 处理POST与PUT方法请求 if (form) { - request = RequestUtil.requestForm(url + StringPool.QUESTION_MARK + StringUtil.trimAllWhitespace(String.valueOf(data)), headers, params, method); + request = RequestUtil.requestForm(url + StringPool.QUESTION_MARK + StrUtil.trim(String.valueOf(data)), headers, params, method); } else { - request = RequestUtil.requestJson(url, headers, JsonUtil.toJson(data), method); + request = RequestUtil.requestJson(url, headers, JSONUtil.toJsonStr(data), method); } } // 判断返回结果集 - if (StringUtil.isBlank(request)) { - return Kv.create().set("code", 400).set("msg", "获取数据失败,请检查参数配置!"); + if (StrUtil.isBlank(request)) { + return MapUtil.* 可视化数据集表 控制器 + *
* - * @author BladeX - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @RestController @AllArgsConstructor -@RequestMapping(LauncherConstant.APPLICATION_VISUAL_NAME + "/record") +@RequestMapping(AppConstants.APP_COMMON + "/visual/record") @Api(value = "可视化数据集表", tags = "可视化数据集接口") -public class VisualRecordController extends BladeController { +public class VisualRecordController { private final IVisualRecordService visualRecordService; - */ -/** - * 可视化数据集表 详情 - *//* - @GetMapping("/detail") - @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入visualRecord") public R* 可视化分类表 服务类 + *
* - * @author BladeX - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ public interface IVisualCategoryService extends IService* 可视化地图配置表 服务类 + *
* - * @author BladeX - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ public interface IVisualComponentService extends IService* 可视化地图配置表 服务类 + *
* - * @author BladeX + * @Author: wangxiang4 + * @since: 2023/7/3 */ public interface IVisualMapService extends IService* 可视化分类表 服务实现类 + *
* - * @author BladeX - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @Service public class VisualCategoryServiceImpl extends ServiceImpl* 可视化地图配置表 服务实现类 + *
* - * @author BladeX - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @Service public class VisualComponentServiceImpl extends ServiceImpl* 可视化配置表 服务实现类 + *
* - * @author Chill - *//* - + * @Author: wangxiang4 + * @since: 2023/7/3 + */ @Service public class VisualConfigServiceImpl extends ServiceImpl
* 可视化数据源配置表 服务实现类
@@ -34,44 +30,39 @@ import java.util.Map;
*
* @Author: wangxiang4
* @since: 2023/6/30
- *//*
+ */
@Service
@AllArgsConstructor
public class VisualDbServiceImpl extends ServiceImpl
* 可视化表 服务实现类
@@ -21,7 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
*
* @Author: wangxiang4
* @since: 2023/6/30
- *//*
+ */
@Service
@AllArgsConstructor
@@ -83,4 +81,3 @@ public class VisualServiceImpl extends ServiceImpl
+ * 占位符解析器
+ *
+ * Http请求工具类
+ *
+ * 如:template = category:${}:product:${}
+ * values = {"1", "2"}
+ * 返回 category:1:product:2
+ *
+ * @param content 要解析的带有占位符的模板字符串
+ * @param values 按照模板占位符索引位置设置对应的值
+ * @return {String}
+ */
+ public String resolve(String content, String... values) {
+ int start = content.indexOf(this.placeholderPrefix);
+ if (start == -1) {
+ return content;
+ }
+ //值索引
+ int valueIndex = 0;
+ StringBuilder result = new StringBuilder(content);
+ while (start != -1) {
+ int end = result.indexOf(this.placeholderSuffix);
+ String replaceContent = values[valueIndex++];
+ result.replace(start, end + this.placeholderSuffix.length(), replaceContent);
+ start = result.indexOf(this.placeholderPrefix, start + replaceContent.length());
+ }
+ return result.toString();
+ }
+
+ /**
+ * 解析带有指定占位符的模板字符串,默认占位符为前缀:${ 后缀:}
+ * 如:template = category:${}:product:${}
+ * values = {"1", "2"}
+ * 返回 category:1:product:2
+ *
+ * @param content 要解析的带有占位符的模板字符串
+ * @param values 按照模板占位符索引位置设置对应的值
+ * @return {String}
+ */
+ public String resolve(String content, Object[] values) {
+ return resolve(content, Stream.of(values).map(String::valueOf).toArray(String[]::new));
+ }
+
+ /**
+ * 根据替换规则来替换指定模板中的占位符值
+ *
+ * @param content 要解析的字符串
+ * @param rule 解析规则回调
+ * @return {String}
+ */
+ public String resolveByRule(String content, Function
+ * 如:content = product:${id}:detail:${did}
+ * valueMap = id -> 1; pid -> 2
+ * 经过解析返回 product:1:detail:2
+ *
+ * @param content 模板内容
+ * @param valueMap 值映射
+ * @return 替换完成后的字符串
+ */
+ public String resolveByMap(String content, final Map