Browse Source

chore: 可视化设计

master
wangxiang 2 years ago
parent
commit
87771f2653
  1. 5
      kicc-common/kicc-common-datasource/src/main/java/com/cloud/kicc/common/datasource/util/ConnUtil.java
  2. 26
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/bigscreen/dto/DynamicModelDto.java
  3. 103
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualCategoryController.java
  4. 106
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualComponentController.java
  5. 157
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualController.java
  6. 146
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualDbController.java
  7. 109
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualMapController.java
  8. 74
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualProxyController.java
  9. 106
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualRecordController.java
  10. 35
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/IVisualCategoryService.java
  11. 37
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/IVisualComponentService.java
  12. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/IVisualDbService.java
  13. 5
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/IVisualMapService.java
  14. 44
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualCategoryServiceImpl.java
  15. 37
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualComponentServiceImpl.java
  16. 34
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualConfigServiceImpl.java
  17. 57
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualDbServiceImpl.java
  18. 5
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualServiceImpl.java
  19. 155
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/util/PlaceholderUtil.java
  20. 103
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/BaiduMapUtils.java
  21. 200
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/GpsGaoAndBaidu.java
  22. 39
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/Point.java
  23. 162
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/RequestUtil.java
  24. 6
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/bootstrap.yml

5
kicc-common/kicc-common-datasource/src/main/java/com/cloud/kicc/common/datasource/util/ConnUtil.java

@ -1,5 +1,7 @@ @@ -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 { @@ -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 {
//测试驱动类

26
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/bigscreen/dto/DynamicModelDto.java

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
package com.cloud.kicc.commonbiz.api.bigscreen.dto;
import lombok.Data;
/**
*<p>
* 动态SQL
*</p>
*
* @Author: wangxiang4
* @since: 2023/7/3
*/
@Data
public class DynamicModelDto {
/**
* 数据源ID
*/
private String id;
/**
* sql脚本
*/
private String sql;
}

103
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualCategoryController.java

@ -1,131 +1,78 @@ @@ -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;
*/
/**
*<p>
* 可视化分类表 控制器
*</p>
*
* @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<VisualCategory> detail(VisualCategory visualCategory) {
VisualCategory detail = visualCategoryService.getOne(Condition.getQueryWrapper(visualCategory));
return R.data(detail);
VisualCategory detail = visualCategoryService.getOne(Wrappers.lambdaQuery());
return R.ok(detail);
}
*/
/**
* 列表 可视化分类表
*//*
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "列表", notes = "传入visualCategory")
public R<List<VisualCategory>> list(VisualCategory visualCategory) {
List<VisualCategory> list = visualCategoryService.list(Condition.getQueryWrapper(visualCategory));
return R.data(list);
List<VisualCategory> list = visualCategoryService.list(Wrappers.lambdaQuery());
return R.ok(list);
}
*/
/**
* 分页 可视化分类表
*//*
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入visualCategory")
public R<IPage<VisualCategory>> page(VisualCategory visualCategory, Query query) {
IPage<VisualCategory> pages = visualCategoryService.page(Condition.getPage(query), Condition.getQueryWrapper(visualCategory));
return R.data(pages);
public R<IPage<VisualCategory>> page(Page page, VisualCategory visualCategory) {
IPage<VisualCategory> pages = visualCategoryService.page(page, Wrappers.lambdaQuery());
return R.ok(pages);
}
*/
/**
* 新增 可视化分类表
*//*
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入visualCategory")
public R save(@Valid @RequestBody VisualCategory visualCategory) {
return R.status(visualCategoryService.submit(visualCategory));
return R.ok(visualCategoryService.submit(visualCategory));
}
*/
/**
* 修改 可视化分类表
*//*
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入visualCategory")
public R update(@Valid @RequestBody VisualCategory visualCategory) {
return R.status(visualCategoryService.submit(visualCategory));
return R.ok(visualCategoryService.submit(visualCategory));
}
*/
/**
* 删除 可视化分类表
*//*
@PostMapping("/remove")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(visualCategoryService.removeByIds(Func.toLongList(ids)));
return R.ok(visualCategoryService.removeByIds(Arrays.asList(StrUtil.join(",", ids))));
}
}
*/

106
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualComponentController.java

@ -1,134 +1,80 @@ @@ -1,134 +1,80 @@
/*
* 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 cn.hutool.json.JSONUtil;
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.dto.VisualComponentDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualComponent;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualComponentService;
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.jackson.JsonUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.visual.dto.VisualComponentDTO;
import org.springblade.modules.visual.entity.VisualComponent;
import org.springblade.modules.visual.service.IVisualComponentService;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.Map;
*/
/**
*<p>
* 可视化组件表 控制器
*</p>
*
* @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<VisualComponent> detail(VisualComponent visualComponent) {
VisualComponent detail = visualComponentService.getOne(Condition.getQueryWrapper(visualComponent));
return R.data(detail);
VisualComponent detail = visualComponentService.getOne(Wrappers.lambdaQuery());
return R.ok(detail);
}
*/
/**
* 数据详情
*//*
@GetMapping("/content")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "组件详情", notes = "传入id")
public Map<String, Object> content(Long id) {
VisualComponent detail = visualComponentService.getById(id);
return JsonUtil.toMap(detail.getContent());
return JSONUtil.toBean(detail.getContent(), Map.class);
}
*/
/**
* 自定义分页 可视化组件表
*//*
@GetMapping("/list")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入visualComponent")
public R<IPage<VisualComponentDTO>> list(VisualComponentDTO visualComponent, Query query) {
IPage<VisualComponentDTO> pages = visualComponentService.selectVisualComponentPage(Condition.getPage(query), visualComponent);
return R.data(pages);
public R<IPage<VisualComponentDto>> list(Page page, VisualComponentDto visualComponent) {
IPage<VisualComponentDto> pages = visualComponentService.selectVisualComponentPage(page, visualComponent);
return R.ok(pages);
}
*/
/**
* 新增 可视化组件表
*//*
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入visualComponent")
public R save(@Valid @RequestBody VisualComponent visualComponent) {
return R.status(visualComponentService.save(visualComponent));
return R.ok(visualComponentService.save(visualComponent));
}
*/
/**
* 修改 可视化组件表
*//*
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入visualComponent")
public R update(@Valid @RequestBody VisualComponent visualComponent) {
return R.status(visualComponentService.updateById(visualComponent));
return R.ok(visualComponentService.updateById(visualComponent));
}
*/
/**
* 删除 可视化组件表
*//*
@PostMapping("/remove")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(visualComponentService.removeByIds(Func.toLongList(ids)));
return R.ok(visualComponentService.removeByIds(Arrays.asList(StrUtil.join(",", ids))));
}
}
*/

157
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualController.java

@ -1,181 +1,100 @@ @@ -1,181 +1,100 @@
/*
* 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.dto.VisualDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.Visual;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualCategory;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualCategoryService;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
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.oss.OssTemplate;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.visual.dto.VisualDTO;
import org.springblade.modules.visual.entity.Visual;
import org.springblade.modules.visual.entity.VisualCategory;
import org.springblade.modules.visual.log.DataLog;
import org.springblade.modules.visual.service.IVisualCategoryService;
import org.springblade.modules.visual.service.IVisualService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
*/
/**
*<p>
* 可视化表 控制器
*</p>
*
* @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<VisualDTO> detail(@RequestParam Long id) {
VisualDTO detail = visualService.detail(id);
return R.data(detail);
public R<VisualDto> detail(@RequestParam String id) {
VisualDto detail = visualService.detail(id);
return R.ok(detail);
}
*/
/**
* 分页 可视化表
*//*
@DataLog("大屏列表")
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入visual")
public R<IPage<Visual>> list(Visual visual, Query query) {
IPage<Visual> pages = visualService.page(Condition.getPage(query), Condition.getQueryWrapper(visual));
return R.data(pages);
public R<IPage<Visual>> list(Page page, Visual visual) {
IPage<Visual> pages = visualService.page(page, Wrappers.lambdaQuery());
return R.ok(pages);
}
*/
/**
* 新增 可视化表
*//*
@DataLog("大屏新增")
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "新增", notes = "传入visual")
public R save(@Valid @RequestBody VisualDTO visual) {
public R save(@Valid @RequestBody VisualDto visual) {
boolean temp = visualService.saveVisual(visual);
if (temp) {
Long id = visual.getVisual().getId();
return R.data(Kv.create().set("id", String.valueOf(id)));
String id = visual.getVisual().getId();
Map<String, String> map = new HashMap();
map.put("id", String.valueOf(id));
return R.ok(map);
} else {
return R.status(false);
return R.error(false);
}
}
*/
/**
* 修改 可视化表
*//*
@DataLog("大屏修改")
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "修改", notes = "传入visual")
public R update(@Valid @RequestBody VisualDTO visual) {
return R.status(visualService.updateVisual(visual));
public R update(@Valid @RequestBody VisualDto visual) {
return R.ok(visualService.updateVisual(visual));
}
*/
/**
* 删除 可视化表
*//*
@DataLog("大屏删除")
@PostMapping("/remove")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(visualService.deleteLogic(Func.toLongList(ids)));
return R.ok(visualService.removeByIds(Arrays.asList(StrUtil.join(",", ids))));
}
*/
/**
* 复制 可视化表
*//*
@DataLog("大屏复制")
@PostMapping("/copy")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "复制", notes = "传入id")
public R<String> copy(@ApiParam(value = "主键集合", required = true) @RequestParam Long id) {
return R.data(visualService.copyVisual(id));
public R<String> copy(@ApiParam(value = "主键集合", required = true) @RequestParam String id) {
return R.ok(visualService.copyVisual(id));
}
*/
/**
* 获取分类
*//*
@GetMapping("category")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "获取类型")
public R category() {
List<VisualCategory> list = categoryService.list();
return R.data(list);
}
*/
/**
* 上传文件
*//*
@DataLog("资源上传")
@SneakyThrows
@PostMapping("/put-file")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "上传", notes = "传入文件")
public R<BladeFile> putFile(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) {
BladeFile bladeFile = ossTemplate.putFile(file);
return R.data(bladeFile);
return R.ok(list);
}
}
*/

146
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualDbController.java

@ -1,185 +1,113 @@ @@ -1,185 +1,113 @@
/*
* 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.common.core.exception.CheckedException;
import com.cloud.kicc.commonbiz.api.bigscreen.dto.DynamicModelDto;
import com.cloud.kicc.commonbiz.api.bigscreen.dto.VisualDbDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualDb;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualDbService;
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.api.crypto.annotation.decrypt.ApiDecryptAes;
import org.springblade.core.log.exception.ServiceException;
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.dto.VisualDbDTO;
import org.springblade.modules.visual.dynamic.DynamicModel;
import org.springblade.modules.visual.entity.VisualDb;
import org.springblade.modules.visual.service.IVisualDbService;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
*/
/**
*<p>
* 数据源表 控制器
*</p>
*
* @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<VisualDb> detail(VisualDb db) {
VisualDb detail = visualDbService.getOne(Condition.getQueryWrapper(db));
return R.data(detail);
VisualDb detail = visualDbService.getOne(Wrappers.lambdaQuery());
return R.ok(detail);
}
*/
/**
* 分页 数据源配置表
*//*
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入datasource")
public R<IPage<VisualDb>> list(VisualDb db, Query query) {
IPage<VisualDb> pages = visualDbService.page(Condition.getPage(query), Condition.getQueryWrapper(db));
return R.data(pages);
public R<IPage<VisualDb>> list(Page page, VisualDb db) {
IPage<VisualDb> pages = visualDbService.page(page, Wrappers.lambdaQuery());
return R.ok(pages);
}
*/
/**
* 新增 数据源配置表
*//*
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入datasource")
public R save(@Valid @RequestBody VisualDb db) {
db.setUrl(db.getUrl().replace("&amp;", "&"));
if (visualDbService.dbTest(db)) {
return R.status(visualDbService.save(db));
return R.ok(visualDbService.save(db));
}
throw new ServiceException("系统检测数据库未能连通,请检查配置");
throw new CheckedException("系统检测数据库未能连通,请检查配置");
}
*/
/**
* 修改 数据源配置表
*//*
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入datasource")
public R update(@Valid @RequestBody VisualDb db) {
db.setUrl(db.getUrl().replace("&amp;", "&"));
if (visualDbService.dbTest(db)) {
return R.status(visualDbService.updateById(db));
return R.ok(visualDbService.updateById(db));
}
throw new ServiceException("系统检测数据库未能连通,请检查配置");
throw new CheckedException("系统检测数据库未能连通,请检查配置");
}
*/
/**
* 新增或修改 数据源配置表
*//*
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入datasource")
public R submit(@Valid @RequestBody VisualDb db) {
db.setUrl(db.getUrl().replace("&amp;", "&"));
if (visualDbService.dbTest(db)) {
return R.status(visualDbService.saveOrUpdate(db));
return R.ok(visualDbService.saveOrUpdate(db));
}
throw new ServiceException("系统检测数据库未能连通,请检查配置");
throw new CheckedException("系统检测数据库未能连通,请检查配置");
}
*/
/**
* 删除 数据源配置表
*//*
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(visualDbService.deleteLogic(Func.toLongList(ids)));
return R.ok(visualDbService.removeByIds(Arrays.asList(StrUtil.join(",", ids))));
}
*/
/**
* 数据源测试连接
*//*
@ApiDecryptAes
@PostMapping("/db-test")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "数据源测试连接", notes = "数据源测试连接")
public R<Boolean> dbTest(@RequestBody VisualDb db) {
return R.status(visualDbService.dbTest(db));
return R.ok(visualDbService.dbTest(db));
}
*/
/**
* 数据源列表
*//*
@GetMapping("/db-list")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "下拉数据源", notes = "数据源列表")
public R<List<VisualDbDTO>> dbList() {
return R.data(visualDbService.dbList());
public R<List<VisualDbDto>> dbList() {
return R.ok(visualDbService.dbList());
}
*/
/**
* 动态执行SQL
*//*
@ApiDecryptAes
@PostMapping("dynamic-query")
@ApiOperationSupport(order = 10)
@ApiOperation(value = "动态执行SQL", notes = "动态执行SQL")
public R dynamicQuery(@RequestBody DynamicModel model) {
List<LinkedHashMap<String, Object>> linkedHashMaps = visualDbService.dynamicQuery(model.getId(), model.getSql());
return R.data(linkedHashMaps);
public R dynamicQuery(@RequestBody DynamicModelDto model) {
VisualDb visualDb = visualDbService.getById(model.getId());
List<LinkedHashMap<String, Object>> linkedHashMaps = visualDbService.dynamicQuery(visualDb, model.getSql());
return R.ok(linkedHashMaps);
}
}
*/

109
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualMapController.java

@ -1,134 +1,81 @@ @@ -1,134 +1,81 @@
/*
* 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 cn.hutool.json.JSONUtil;
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.dto.VisualMapDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualMap;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualMapService;
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.jackson.JsonUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.visual.dto.VisualMapDTO;
import org.springblade.modules.visual.entity.VisualMap;
import org.springblade.modules.visual.service.IVisualMapService;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.Map;
*/
/**
*<p>
* 可视化地图配置表 控制器
*</p>
*
* @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<VisualMap> detail(VisualMap visualMap) {
VisualMap detail = visualMapService.getOne(Condition.getQueryWrapper(visualMap));
return R.data(detail);
VisualMap detail = visualMapService.getOne(Wrappers.lambdaQuery());
return R.ok(detail);
}
*/
/**
* 数据详情
*//*
@GetMapping("/data")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "数据详情", notes = "传入id")
public Map<String, Object> data(Long id) {
public Map<String, Object> data(String id) {
VisualMap detail = visualMapService.getById(id);
return JsonUtil.toMap(detail.getData());
return JSONUtil.toBean(detail.getData(), Map.class);
}
*/
/**
* 自定义分页 可视化地图配置表
*//*
@GetMapping("/list")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入visualMap")
public R<IPage<VisualMapDTO>> list(VisualMapDTO visualMap, Query query) {
IPage<VisualMapDTO> pages = visualMapService.selectVisualMapPage(Condition.getPage(query), visualMap);
return R.data(pages);
public R<IPage<VisualMapDto>> list(Page page, VisualMapDto visualMap) {
IPage<VisualMapDto> pages = visualMapService.selectVisualMapPage(page, visualMap);
return R.ok(pages);
}
*/
/**
* 新增 可视化地图配置表
*//*
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入visualMap")
public R save(@Valid @RequestBody VisualMap visualMap) {
return R.status(visualMapService.save(visualMap));
return R.ok(visualMapService.save(visualMap));
}
*/
/**
* 修改 可视化地图配置表
*//*
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入visualMap")
public R update(@Valid @RequestBody VisualMap visualMap) {
return R.status(visualMapService.updateById(visualMap));
return R.ok(visualMapService.updateById(visualMap));
}
*/
/**
* 删除 可视化地图配置表
*//*
@PostMapping("/remove")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(visualMapService.removeByIds(Func.toLongList(ids)));
return R.ok(visualMapService.removeByIds(Arrays.asList(StrUtil.join(",", ids))));
}
}
*/

74
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualProxyController.java

@ -1,37 +1,19 @@ @@ -1,37 +1,19 @@
/*
* 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 com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.constant.StringPool;
import com.cloud.kicc.commonbiz.api.bigscreen.dto.VisualProxyDto;
import com.cloud.kicc.commonbiz.util.RequestUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.LauncherConstant;
import org.springblade.common.tool.RequestUtil;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.jackson.JsonUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.modules.visual.entity.VisualProxy;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -39,30 +21,25 @@ import springfox.documentation.annotations.ApiIgnore; @@ -39,30 +21,25 @@ import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
*/
/**
*<p>
* 接口代理 控制器
*</p>
*
* @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 { @@ -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.<String, Object>builder("code", 400).put("msg", "获取数据失败,请检查参数配置!").build();
} else {
Map<String, Object> result = JsonUtil.toMap(request);
Map<String, Object> result = JSONUtil.toBean(request, Map.class);
return CollectionUtil.isEmpty(result) ? request : result;
}
}
}
*/

106
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/controller/VisualRecordController.java

@ -1,131 +1,75 @@ @@ -1,131 +1,75 @@
/*
* 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.dto.VisualRecordDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualRecord;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualRecordService;
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.dto.VisualRecordDTO;
import org.springblade.modules.visual.entity.VisualRecord;
import org.springblade.modules.visual.service.IVisualRecordService;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Arrays;
*/
/**
*<p>
* 可视化数据集表 控制器
*</p>
*
* @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<VisualRecord> detail(VisualRecord visualRecord) {
VisualRecord detail = visualRecordService.getOne(Condition.getQueryWrapper(visualRecord));
return R.data(detail);
VisualRecord detail = visualRecordService.getOne(Wrappers.lambdaQuery());
return R.ok(detail);
}
*/
/**
* 可视化数据集表 分页
*//*
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入visualRecord")
public R<IPage<VisualRecordDTO>> list(VisualRecordDTO record, Query query) {
IPage<VisualRecordDTO> pages = visualRecordService.selectVisualRecordPage(Condition.getPage(query), record);
return R.data(pages);
public R<IPage<VisualRecordDto>> list(Page page, VisualRecordDto record) {
IPage<VisualRecordDto> pages = visualRecordService.selectVisualRecordPage(page, record);
return R.ok(pages);
}
*/
/**
* 可视化数据集表 新增
*//*
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "新增", notes = "传入visualRecord")
public R save(@Valid @RequestBody VisualRecord visualRecord) {
return R.status(visualRecordService.save(visualRecord));
return R.ok(visualRecordService.save(visualRecord));
}
*/
/**
* 可视化数据集表 修改
*//*
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "修改", notes = "传入visualRecord")
public R update(@Valid @RequestBody VisualRecord visualRecord) {
return R.status(visualRecordService.updateById(visualRecord));
return R.ok(visualRecordService.updateById(visualRecord));
}
*/
/**
* 可视化数据集表 新增或修改
*//*
@PostMapping("/submit")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "新增或修改", notes = "传入visualRecord")
public R submit(@Valid @RequestBody VisualRecord visualRecord) {
return R.status(visualRecordService.saveOrUpdate(visualRecord));
return R.ok(visualRecordService.saveOrUpdate(visualRecord));
}
*/
/**
* 可视化数据集表 删除
*//*
@PostMapping("/remove")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(visualRecordService.deleteLogic(Func.toLongList(ids)));
return R.ok(visualRecordService.removeByIds(Arrays.asList(StrUtil.join(",", ids))));
}
}
*/

35
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/IVisualCategoryService.java

@ -1,43 +1,24 @@ @@ -1,43 +1,24 @@
/*
* 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.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.visual.entity.VisualCategory;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualCategory;
*/
/**
*<p>
* 可视化分类表 服务类
*</p>
*
* @author BladeX
*//*
* @Author: wangxiang4
* @since: 2023/7/3
*/
public interface IVisualCategoryService extends IService<VisualCategory> {
*/
/**
/**
* 提交分类信息
*
* @param visualCategory 分类
* @return boolean
*//*
*/
boolean submit(VisualCategory visualCategory);
}
*/

37
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/IVisualComponentService.java

@ -1,46 +1,27 @@ @@ -1,46 +1,27 @@
/*
* 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.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.visual.dto.VisualComponentDTO;
import org.springblade.modules.visual.entity.VisualComponent;
import com.cloud.kicc.commonbiz.api.bigscreen.dto.VisualComponentDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualComponent;
*/
/**
*<p>
* 可视化地图配置表 服务类
*</p>
*
* @author BladeX
*//*
* @Author: wangxiang4
* @since: 2023/7/3
*/
public interface IVisualComponentService extends IService<VisualComponent> {
*/
/**
* 自定义分页
*
* @param page
* @param visualComponent
* @return
*//*
IPage<VisualComponentDTO> selectVisualComponentPage(IPage<VisualComponentDTO> page, VisualComponentDTO visualComponent);
*/
IPage<VisualComponentDto> selectVisualComponentPage(IPage<VisualComponentDto> page, VisualComponentDto visualComponent);
}
*/

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/IVisualDbService.java

@ -35,10 +35,10 @@ public interface IVisualDbService extends IService<VisualDb> { @@ -35,10 +35,10 @@ public interface IVisualDbService extends IService<VisualDb> {
/**
* 自定义调用动态sql
*
* @param id 数据源id
* @param visualDb 数据源
* @param sql 可执行sql语句
* @return List
*/
List<LinkedHashMap<String, Object>> dynamicQuery(String id, String sql);
List<LinkedHashMap<String, Object>> dynamicQuery(VisualDb visualDb, String sql);
}

5
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/IVisualMapService.java

@ -6,9 +6,12 @@ import com.cloud.kicc.commonbiz.api.bigscreen.dto.VisualMapDto; @@ -6,9 +6,12 @@ import com.cloud.kicc.commonbiz.api.bigscreen.dto.VisualMapDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualMap;
/**
*<p>
* 可视化地图配置表 服务类
*</p>
*
* @author BladeX
* @Author: wangxiang4
* @since: 2023/7/3
*/
public interface IVisualMapService extends IService<VisualMap> {

44
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualCategoryServiceImpl.java

@ -1,53 +1,35 @@ @@ -1,53 +1,35 @@
/*
* 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.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.visual.entity.VisualCategory;
import org.springblade.modules.visual.mapper.VisualCategoryMapper;
import org.springblade.modules.visual.service.IVisualCategoryService;
import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualCategory;
import com.cloud.kicc.commonbiz.bigscreen.mapper.VisualCategoryMapper;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualCategoryService;
import org.springframework.stereotype.Service;
*/
/**
*<p>
* 可视化分类表 服务实现类
*</p>
*
* @author BladeX
*//*
* @Author: wangxiang4
* @since: 2023/7/3
*/
@Service
public class VisualCategoryServiceImpl extends ServiceImpl<VisualCategoryMapper, VisualCategory> implements IVisualCategoryService {
@Override
public boolean submit(VisualCategory visualCategory) {
LambdaQueryWrapper<VisualCategory> lqw = Wrappers.<VisualCategory>query().lambda().eq(VisualCategory::getCategoryValue, visualCategory.getCategoryValue());
Long cnt = baseMapper.selectCount((Func.isEmpty(visualCategory.getId())) ? lqw : lqw.notIn(VisualCategory::getId, visualCategory.getId()));
Long cnt = baseMapper.selectCount((StrUtil.isBlank(visualCategory.getId())) ? lqw : lqw.notIn(VisualCategory::getId, visualCategory.getId()));
if (cnt > 0L) {
throw new ServiceException("当前模块键值已存在!");
throw new CheckedException("当前模块键值已存在!");
}
visualCategory.setIsDeleted(BladeConstant.DB_NOT_DELETED);
return saveOrUpdate(visualCategory);
}
}
*/

37
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualComponentServiceImpl.java

@ -1,44 +1,27 @@ @@ -1,44 +1,27 @@
/*
* 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.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.visual.dto.VisualComponentDTO;
import org.springblade.modules.visual.entity.VisualComponent;
import org.springblade.modules.visual.mapper.VisualComponentMapper;
import org.springblade.modules.visual.service.IVisualComponentService;
import com.cloud.kicc.commonbiz.api.bigscreen.dto.VisualComponentDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualComponent;
import com.cloud.kicc.commonbiz.bigscreen.mapper.VisualComponentMapper;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualComponentService;
import org.springframework.stereotype.Service;
*/
/**
*<p>
* 可视化地图配置表 服务实现类
*</p>
*
* @author BladeX
*//*
* @Author: wangxiang4
* @since: 2023/7/3
*/
@Service
public class VisualComponentServiceImpl extends ServiceImpl<VisualComponentMapper, VisualComponent> implements IVisualComponentService {
@Override
public IPage<VisualComponentDTO> selectVisualComponentPage(IPage<VisualComponentDTO> page, VisualComponentDTO visualComponent) {
public IPage<VisualComponentDto> selectVisualComponentPage(IPage<VisualComponentDto> page, VisualComponentDto visualComponent) {
return page.setRecords(baseMapper.selectVisualComponentPage(page, visualComponent));
}
}
*/

34
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualConfigServiceImpl.java

@ -1,37 +1,21 @@ @@ -1,37 +1,21 @@
/*
* 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.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.visual.entity.VisualConfig;
import org.springblade.modules.visual.mapper.VisualConfigMapper;
import org.springblade.modules.visual.service.IVisualConfigService;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualConfig;
import com.cloud.kicc.commonbiz.bigscreen.mapper.VisualConfigMapper;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualConfigService;
import org.springframework.stereotype.Service;
*/
/**
*<p>
* 可视化配置表 服务实现类
*</p>
*
* @author Chill
*//*
* @Author: wangxiang4
* @since: 2023/7/3
*/
@Service
public class VisualConfigServiceImpl extends ServiceImpl<VisualConfigMapper, VisualConfig> implements IVisualConfigService {
}
*/

57
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualDbServiceImpl.java

@ -1,32 +1,28 @@ @@ -1,32 +1,28 @@
/*
package com.cloud.kicc.commonbiz.bigscreen.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.datasource.dynamic.DynamicDataSource;
import com.cloud.kicc.common.datasource.util.ConnUtil;
import com.cloud.kicc.common.datasource.util.DynamicDataSourceUtil;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.bigscreen.dto.VisualDbDto;
import com.cloud.kicc.commonbiz.api.bigscreen.entity.VisualDb;
import com.cloud.kicc.commonbiz.bigscreen.mapper.VisualDbMapper;
import com.cloud.kicc.commonbiz.bigscreen.service.IVisualDbService;
import com.cloud.kicc.commonbiz.bigscreen.util.PlaceholderUtil;
import lombok.AllArgsConstructor;
import org.apache.commons.collections.map.LRUMap;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.PlaceholderUtil;
import org.springblade.modules.visual.dto.VisualDbDTO;
import org.springblade.modules.visual.dynamic.DynamicDataSourceHelper;
import org.springblade.modules.visual.dynamic.DynamicDataSourceHolder;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
*/
/**
*<p>
* 可视化数据源配置表 服务实现类
@ -34,44 +30,39 @@ import java.util.Map; @@ -34,44 +30,39 @@ import java.util.Map;
*
* @Author: wangxiang4
* @since: 2023/6/30
*//*
*/
@Service
@AllArgsConstructor
public class VisualDbServiceImpl extends ServiceImpl<VisualDbMapper, VisualDb> implements IVisualDbService {
private final VisualDbMapper mapper;
private final DynamicDataSourceUtil holder;
private final ConnUtil helper;
@Override
public Boolean dbTest(VisualDb db) {
LRUMap
return helper.dbTest(db.getDriverClass(), db.getUrl(), db.getUsername(), db.getPassword());
return ConnUtil.dbTest(db.getDriverClass(), db.getUrl(), db.getUsername(), db.getPassword());
}
@Override
public List<VisualDbDTO> dbList() {
public List<VisualDbDto> dbList() {
return mapper.dbList();
}
@Override
public List<LinkedHashMap<String, Object>> dynamicQuery(String id, String sql) {
public List<LinkedHashMap<String, Object>> dynamicQuery(VisualDb visualDb, String sql) {
try {
//处理自定义数据源
holder.handleDataSource(id);
//切换数据源
DynamicDataSourceContextHolder.push(id);
//获取user信息
BladeUser user = AuthUtil.getUser();
//获取user参数
Map<String, Object> map = (Func.isEmpty(user)) ? Kv.newMap() : BeanUtil.toMap(user);
//替换user占位符
// 切换数据源
DynamicDataSource dynamicDataSource = new DynamicDataSource();
BeanUtils.copyProperties(visualDb, dynamicDataSource);
DynamicDataSourceUtil.switchToDataSource(dynamicDataSource);
// 获取user信息
KiccUser kiccUser = SecurityUtils.getUser();
// 获取user参数
Map<String, Object> map = ObjectUtil.isEmpty(kiccUser) ? MapUtil.newHashMap() : BeanUtil.beanToMap(kiccUser);
// 替换user占位符
String dynamicSql = PlaceholderUtil.getDefaultResolver().resolveByMap(sql, map);
//执行自定义sql
// 执行自定义sql
return mapper.dynamicQuery(dynamicSql);
} catch (Exception exception) {
throw new ServiceException(exception.getMessage());
} finally {
//切回主数据源
DynamicDataSourceContextHolder.poll();
@ -80,4 +71,4 @@ public class VisualDbServiceImpl extends ServiceImpl<VisualDbMapper, VisualDb> i @@ -80,4 +71,4 @@ public class VisualDbServiceImpl extends ServiceImpl<VisualDbMapper, VisualDb> i
}
}
*/

5
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/service/impl/VisualServiceImpl.java

@ -1,4 +1,3 @@ @@ -1,4 +1,3 @@
/*
package com.cloud.kicc.commonbiz.bigscreen.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -13,7 +12,6 @@ import lombok.AllArgsConstructor; @@ -13,7 +12,6 @@ import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
*/
/**
*<p>
* 可视化表 服务实现类
@ -21,7 +19,7 @@ import org.springframework.transaction.annotation.Transactional; @@ -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<VisualMapper, Visual> impleme @@ -83,4 +81,3 @@ public class VisualServiceImpl extends ServiceImpl<VisualMapper, Visual> impleme
return null;
}
}
*/

155
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/bigscreen/util/PlaceholderUtil.java

@ -0,0 +1,155 @@ @@ -0,0 +1,155 @@
package com.cloud.kicc.commonbiz.bigscreen.util;
import java.util.Map;
import java.util.Properties;
import java.util.function.Function;
import java.util.stream.Stream;
/**
*<p>
* 占位符解析器
*</p>
*
* @Author: wangxiang4
* @since: 2023/7/3
*/
public class PlaceholderUtil {
/**
* 默认前缀占位符
*/
public static final String DEFAULT_PLACEHOLDER_PREFIX = "${";
/**
* 默认后缀占位符
*/
public static final String DEFAULT_PLACEHOLDER_SUFFIX = "}";
/**
* 默认单例解析器
*/
private static final PlaceholderUtil DEFAULT_RESOLVER = new PlaceholderUtil();
/**
* 占位符前缀
*/
private String placeholderPrefix = DEFAULT_PLACEHOLDER_PREFIX;
/**
* 占位符后缀
*/
private String placeholderSuffix = DEFAULT_PLACEHOLDER_SUFFIX;
private PlaceholderUtil() {
}
private PlaceholderUtil(String placeholderPrefix, String placeholderSuffix) {
this.placeholderPrefix = placeholderPrefix;
this.placeholderSuffix = placeholderSuffix;
}
/**
* 获取默认的占位符解析器即占位符前缀为"${", 后缀为"}"
*
* @return PlaceholderUtil
*/
public static PlaceholderUtil getDefaultResolver() {
return DEFAULT_RESOLVER;
}
public static PlaceholderUtil getResolver(String placeholderPrefix, String placeholderSuffix) {
return new PlaceholderUtil(placeholderPrefix, placeholderSuffix);
}
/**
* 解析带有指定占位符的模板字符串默认占位符为前缀${ 后缀}<br/><br/>
* template = category:${}:product:${}<br/>
* values = {"1", "2"}<br/>
* 返回 category:1:product:2<br/>
*
* @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();
}
/**
* 解析带有指定占位符的模板字符串默认占位符为前缀${ 后缀}<br/><br/>
* template = category:${}:product:${}<br/>
* values = {"1", "2"}<br/>
* 返回 category:1:product:2<br/>
*
* @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<String, String> rule) {
int start = content.indexOf(this.placeholderPrefix);
if (start == -1) {
return content;
}
StringBuilder result = new StringBuilder(content);
while (start != -1) {
int end = result.indexOf(this.placeholderSuffix, start + 1);
//获取占位符属性值,如${id}, 即获取id
String placeholder = result.substring(start + this.placeholderPrefix.length(), end);
//替换整个占位符内容,即将${id}值替换为替换规则回调中的内容
String replaceContent = placeholder.trim().isEmpty() ? "" : rule.apply(placeholder);
result.replace(start, end + this.placeholderSuffix.length(), replaceContent);
start = result.indexOf(this.placeholderPrefix, start + replaceContent.length());
}
return result.toString();
}
/**
* 替换模板中占位符内容占位符的内容即为map key对应的值key为占位符中的内容<br/><br/>
* content = product:${id}:detail:${did}<br/>
* valueMap = id -> 1; pid -> 2<br/>
* 经过解析返回 product:1:detail:2<br/>
*
* @param content 模板内容
* @param valueMap 值映射
* @return 替换完成后的字符串
*/
public String resolveByMap(String content, final Map<String, Object> valueMap) {
return resolveByRule(content, placeholderValue -> String.valueOf(valueMap.get(placeholderValue)));
}
/**
* 根据properties文件替换占位符内容
*
* @param content 模板内容
* @param properties 配置
* @return {String}
*/
public String resolveByProperties(String content, final Properties properties) {
return resolveByRule(content, properties::getProperty);
}
}

103
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/BaiduMapUtils.java

@ -1,103 +0,0 @@ @@ -1,103 +0,0 @@
package com.cloud.kicc.commonbiz.util;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import java.util.HashMap;
import java.util.Map;
public class BaiduMapUtils {
/**
* 文档地址http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
* GET请求
* callback 将json格式的返回值通过callback函数返回以实现jsonp功能
* 示例http://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation
*/
public static Map<String, Object> getLngAndLat(String address, String ak) {
HttpResponse res = null;
try {
res = HttpUtil
.createGet("http://api.map.baidu.com/geocoding/v3/?address=" + address + "&output=json&ak=" + ak)
.header("Content-Type", "application/json")
.execute().charset("UTF-8");
int code = res.getStatus();
if (code == 200) {
String body = res.body();
if (StrUtil.isNotBlank(body)) {
JSONObject jsonObject = JSONUtil.parseObj(body);
Map<String, Object> resultMap = new HashMap();
resultMap.put("longitude", jsonObject.get("lng"));
resultMap.put("latitude", jsonObject.get("lat"));
return resultMap;
}
}
} catch (Exception e) {
System.out.println("==BaiduMap-Api-getLngAndLat,error==" + e.getMessage());
} finally {
if (res != null) {
res.close();
}
}
return null;
}
/**
* 根据GPS坐标获取定位位置
* 文档地址http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad
* GET请求
* coordtype坐标的类型目前支持的坐标类型包括bd09ll百度经纬度坐标bd09mc百度米制坐标gcj02ll国测局经纬度坐标仅限中国wgs84ll GPS经纬度 坐标系说明
* 示例http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194
*/
public static String getAddress(String lng, String lat, String ak) {
HttpResponse res = null;
try {
String location = lat + "," + lng;
res = HttpUtil
.createGet("http://api.map.baidu.com/reverse_geocoding/v3/?location=" + location + "&output=json&coordtype=wgs84ll&ak=" + ak)
.header("Content-Type", "application/json")
.execute().charset("UTF-8");
int code = res.getStatus();
if (code == 200) {
String body = res.body();
if (StrUtil.isNotBlank(body)) {
JSONObject jsonObject = JSONUtil.parseObj(body);
if (jsonObject.getInt("status") == 0) {
String addr = jsonObject.getJSONObject("result").getStr("formatted_address");
return addr;
}
}
}
} catch (Exception e) {
System.out.println("==BaiduMap-Api-getAddress,error==" + e.getMessage());
} finally {
if (res != null) {
res.close();
}
}
return null;
}
public static void main(String[] args) {
//String addr = getAddress("112.917007","28.280622","WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
//String addr = getAddress("108.379051", "30.808975", "gIZFKgVkaqGOFTDSSrbklWjesguyrM8H");
//String addr = getAddress("112.92457569595736", "28.29473945087382", "WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
//String addr = getAddress("112.91276433", "28.29194017", "WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
String addr = getAddress("112.88416317", "28.22842167", "WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
//String addr = getAddress("11254.76586", "28.21360333", "WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
System.out.println(addr);
/*Map<String, Object> address = getLngAndLat("湖南省长沙市望城区梅园路","WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
System.out.println(address.toString());*/
}
}

200
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/GpsGaoAndBaidu.java

@ -1,200 +0,0 @@ @@ -1,200 +0,0 @@
package com.cloud.kicc.commonbiz.util;
///
/// 百度 高德 GPS地图坐标转换类
/// 地球坐标系(GPS坐标):WGS-84
//中国的火星坐标系:GCJ-02 使用者:高德、谷歌、腾讯搜搜、阿里云地图、灵图51ditu地图
//百度坐标系:BD-09 使用者:百度
import java.math.BigDecimal;
public class GpsGaoAndBaidu {
private static final double x_pi = 3.14159265358979324 * 3000.0 / 180.0;
private static final double pi = 3.14159265358979324;
private static final double a = 6378245.0;
private static final double ee = 0.00669342162296594323;
/**
* gg_lat 纬度
* gg_lon 经度
* GCJ-02转换BD-09
* Google地图经纬度转百度地图经纬度
* */
public static Point google_bd_encrypt(double gg_lat, double gg_lon){
Point point=new Point();
double x = gg_lon, y = gg_lat;
double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
double bd_lon = z * Math.cos(theta) + 0.0065;
double bd_lat = z * Math.sin(theta) + 0.006;
point.setLat(bd_lat);
point.setLng(bd_lon);
return point;
}
/**
* wgLat 纬度
* wgLon 经度
* BD-09转换GCJ-02
* 百度转google
* */
public static Point bd_google_encrypt(double bd_lat, double bd_lon){
Point point=new Point();
double x = bd_lon - 0.0065, y = bd_lat - 0.006;
double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
double theta =Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
double gg_lon = z * Math.cos(theta);
double gg_lat = z * Math.sin(theta);
point.setLat(gg_lat);
point.setLng(gg_lon);
return point;
}
/**
* wgLat 纬度
* wgLon 经度
* WGS-84 GCJ-02 的转换 GPS 加偏
* */
public static Point wgs_gcj_encrypts(double wgLat, double wgLon) {
Point point=new Point();
if (outOfChina(wgLat, wgLon)) {
point.setLat(wgLat);
point.setLng(wgLon);
return point;
}
double dLat = transformLat(wgLon - 105.0, wgLat - 35.0);
double dLon = transformLon(wgLon - 105.0, wgLat - 35.0);
double radLat = wgLat / 180.0 * pi;
double magic = Math.sin(radLat);
magic = 1 - ee * magic * magic;
double sqrtMagic = Math.sqrt(magic);
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
double lat = wgLat + dLat;
double lon = wgLon + dLon;
point.setLat(lat);
point.setLng(lon);
return point;
}
public static void transform(double wgLat, double wgLon, double[] latlng) {
if (outOfChina(wgLat, wgLon)) {
latlng[0] = wgLat;
latlng[1] = wgLon;
return;
}
double dLat = transformLat(wgLon - 105.0, wgLat - 35.0);
double dLon = transformLon(wgLon - 105.0, wgLat - 35.0);
double radLat = wgLat / 180.0 * pi;
double magic = Math.sin(radLat);
magic = 1 - ee * magic * magic;
double sqrtMagic = Math.sqrt(magic);
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
latlng[0] = wgLat + dLat;
latlng[1] = wgLon + dLon;
}
private static boolean outOfChina(double lat, double lon) {
if (lon < 72.004 || lon > 137.8347)
return true;
if (lat < 0.8293 || lat > 55.8271)
return true;
return false;
}
private static double transformLat(double x, double y) {
double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x));
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0;
ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0;
return ret;
}
private static double transformLon(double x, double y) {
double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x));
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0;
ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0;
return ret;
}
public static Point gpsAddPrecision(String lng, String lat) {
//进行坐标偏移
lng = lng.replace(",E","");
lat = lat.replace(",N","");
Point p = new Point();
p.setLng(gpsCalculate(Double.parseDouble(lng)));
p.setLat(gpsCalculate(Double.parseDouble(lat)));
return p;
}
/**
* gps转百度坐标
*
* @param gg_lat
* @param gg_lon
* @return
*/
public static Point gpsTransformBaidu(double gg_lat, double gg_lon) {
//进行坐标偏移
Point p = wgs_gcj_encrypts(gpsCalculate(gg_lat),gpsCalculate(gg_lon));
p = google_bd_encrypt(p.getLat(),p.getLng());
System.out.println(p);
return p;
}
/**
* 将经纬度计算得到度分秒格式再转成度格式
*
* @return
*/
public static double gpsCalculate(double num) {
int a = (int) num / 100;
double b = (num - a * 100);
int c = (int) (b);
double d = (b - c) * 60;
String e = a + "°" + c + "′" + d + "″";
return Dms2D(e);
}
public static double Dms2D(String dms_data) {
if (!dms_data.contains("°") || !dms_data.contains("′") || !dms_data.contains("″"))
return 0;
double d = Double.parseDouble(dms_data.split("°")[0]);
double m = Double.parseDouble(dms_data.split("°")[1].split("′")[0]);
double s = Double.parseDouble(dms_data.split("°")[1].split("′")[1].replace("″", ""));
return keep8Decimal(d + m / 60 + s / 60 / 60);
}
//保留8位小数
public static double keep8Decimal(double d) {
BigDecimal bd = new BigDecimal(d);
double d1 = bd.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
return d1;
}
public static void main(String[] args) {
//"lg": "11253.92844,E",
// "lt": "2813.70530,N",
//lg":"11253.04979,E","lt":"2812.81620,N"
System.out.println(gpsCalculate(11253.04979));
System.out.println(gpsCalculate(2812.81620));
//GpsGaoAndBaidu.gpsTransformBaidu( 2817.51641,11254.76586);
}
}

39
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/Point.java

@ -1,39 +0,0 @@ @@ -1,39 +0,0 @@
package com.cloud.kicc.commonbiz.util;
import lombok.Data;
/**
* 用于构造地图中的坐标点
*
* @author lw
**/
@Data
public class Point {
private double lat;// 纬度
private double lng;// 经度
public Point() {
}
public Point(double lng, double lat) {
this.lng = lng;
this.lat = lat;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Point) {
Point bmapPoint = (Point) obj;
return (bmapPoint.getLng() == lng && bmapPoint.getLat() == lat) ? true : false;
} else {
return false;
}
}
@Override
public String toString() {
return lng + "," + lat;
}
}

162
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/RequestUtil.java

@ -0,0 +1,162 @@ @@ -0,0 +1,162 @@
package com.cloud.kicc.commonbiz.util;
import cn.hutool.core.util.StrUtil;
import com.cloud.kicc.common.core.constant.StringPool;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import java.util.Map;
/**
*<p>
* Http请求工具类
*</p>
*
* @Author: wangxiang4
* @since: 2023/7/3
*/
@Slf4j
public class RequestUtil {
public static MediaType JSON = MediaType.parse("application/json; charset=utf-8");
public static String GET = "GET";
public static String POST = "POST";
public static String PUT = "PUT";
public static String DELETE = "DELETE";
/**
* request
*
* @param url 请求url
* @param header 请求头
* @param queries 请求的参数在浏览器后面的数据没有可以传null
* @param method 请求方法(get delete)
* @return String
*/
public static String request(String url, Map<String, Object> header, Map<String, Object> queries, String method) {
Request.Builder builder = new Request.Builder().url(requestUrl(url, queries));
if (header != null && header.keySet().size() > 0) {
header.forEach((k, v) -> builder.addHeader(k, String.valueOf(v)));
}
if (StrUtil.equalsIgnoreCase(method, GET)) {
builder.get();
} else if (StrUtil.equalsIgnoreCase(method, DELETE)) {
builder.delete();
}
return getBody(builder.build());
}
/**
* requestUrl
*
* @param url 请求url
* @param queries 请求的参数在浏览器后面的数据没有可以传null
* @return String
*/
public static String requestUrl(String url, Map<String, Object> queries) {
StringBuffer sb = new StringBuffer(url).append(StringPool.QUESTION_MARK);
if (queries != null && queries.keySet().size() > 0) {
queries.forEach((k, v) -> sb.append("&").append(k).append("=").append(v));
}
return sb.toString();
}
/**
* requestForm
*
* @param url 请求url
* @param header 请求头
* @param params post put form 提交的参数
* @param method 请求方法(post put)
* @return String
*/
public static String requestForm(String url, Map<String, Object> header, Map<String, Object> params, String method) {
FormBody.Builder formBuilder = new FormBody.Builder();
//添加参数
if (params != null && params.keySet().size() > 0) {
params.forEach((k, v) -> formBuilder.add(k, String.valueOf(v)));
}
Request.Builder builder = new Request.Builder().url(url);
if (header != null && header.keySet().size() > 0) {
header.forEach((k, v) -> builder.addHeader(k, String.valueOf(v)));
}
if (StrUtil.equalsIgnoreCase(method, POST)) {
builder.post(formBuilder.build());
} else if (StrUtil.equalsIgnoreCase(method, PUT)) {
builder.put(formBuilder.build());
}
return getBody(builder.build());
}
/**
* 请求发送JSON数据
*
* @param url 请求url
* @param header 请求头
* @param json 请求json串
* @param method 请求方法(post put)
* @return String
*/
public static String requestJson(String url, Map<String, Object> header, String json, String method) {
return requestContent(url, header, json, JSON, method);
}
/**
* 发送请求
*
* @param url 请求的url
* @param header 请求头
* @param content 请求内容
* @param mediaType 请求类型
* @param method 请求方法(post put)
* @return String
*/
public static String requestContent(String url, Map<String, Object> header, String content, MediaType mediaType, String method) {
RequestBody requestBody = RequestBody.create(mediaType, content);
Request.Builder builder = new Request.Builder().url(url);
if (header != null && header.keySet().size() > 0) {
header.forEach((k, v) -> builder.addHeader(k, String.valueOf(v)));
}
if (StrUtil.equalsIgnoreCase(method, POST)) {
builder.post(requestBody);
} else if (StrUtil.equalsIgnoreCase(method, PUT)) {
builder.put(requestBody);
}
return getBody(builder.build());
}
/**
* 获取body
*
* @param request request
* @return String
*/
private static String getBody(Request request) {
String responseBody = "";
Response response = null;
try {
OkHttpClient okHttpClient = new OkHttpClient();
response = okHttpClient.newCall(request).execute();
if (response.isSuccessful()) {
return response.body().string();
}
} catch (Exception e) {
log.error("okhttp3 post error >> ex = {}", e.getMessage());
} finally {
if (response != null) {
response.close();
}
}
return responseBody;
}
}

6
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/bootstrap.yml

@ -17,9 +17,9 @@ spring: @@ -17,9 +17,9 @@ spring:
cloud:
nacos:
discovery:
#server-addr: ${NACOS_HOST:192.168.3.10}:${NACOS_PORT:8848}
ip: @profiles.ip@
server-addr: ${NACOS_HOST:kicc-register}:${NACOS_PORT:8848}
server-addr: ${NACOS_HOST:192.168.3.10}:${NACOS_PORT:8848}
#ip: @profiles.ip@
#server-addr: ${NACOS_HOST:kicc-register}:${NACOS_PORT:8848}
namespace: @profiles.namespace@
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}

Loading…
Cancel
Save