diff --git a/pom.xml b/pom.xml
index 9003ee4..48cbdf3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,7 @@
srt-cloud-gateway
srt-data-development
srt-cloud-data-governance
+ srt-cloud-data-service
srt-cloud-data-server
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/GovernanceApplication.java b/srt-cloud-data-governance/src/main/java/net/srt/GovernanceApplication.java
index 65f1dee..4284f79 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/GovernanceApplication.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/GovernanceApplication.java
@@ -18,6 +18,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
public class GovernanceApplication {
public static void main(String[] args) {
SpringApplication.run(GovernanceApplication.class, args);
+ System.out.println("原神启动!!!!!!!!!!!!!");
}
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java
index 1bc216a..ffc1fdb 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java
@@ -7,7 +7,7 @@ import net.srt.framework.common.page.PageResult;
import net.srt.framework.common.utils.Result;
import net.srt.query.QualityConfigQuery;
import net.srt.service.QualityConfigService;
-import net.srt.vo.QualityConfigVo;
+import net.srt.vo.QualityConfigVO;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -28,26 +28,26 @@ public class QualityConfigController {
@GetMapping("page")
@Operation(summary = "分页")
- public Result> page(@Valid QualityConfigQuery query){
- PageResult page= qualityConfigService.page(query);
+ public Result> page(@Valid QualityConfigQuery query){
+ PageResult page= qualityConfigService.page(query);
return Result.ok(page);
}
@GetMapping("{id}")
@Operation(summary = "信息")
- public Result get(@PathVariable("id") Long id){
+ public Result get(@PathVariable("id") Long id){
return Result.ok(qualityConfigService.get(id));
}
@PostMapping
@Operation(summary = "保存")
- public Result save(@RequestBody QualityConfigVo vo){
+ public Result save(@RequestBody QualityConfigVO vo){
qualityConfigService.save(vo);
return Result.ok();
}
@PutMapping
@Operation(summary = "修改")
- public Result update(@RequestBody @Valid QualityConfigVo vo){
+ public Result update(@RequestBody @Valid QualityConfigVO vo){
qualityConfigService.update(vo);
return Result.ok();
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
index 20ae5b2..2c9b45d 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
@@ -2,6 +2,10 @@ package net.srt.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import net.srt.convert.StandardConvert;
+import net.srt.entity.DatastandardEntity;
+import net.srt.entity.StandardEntity;
+import net.srt.framework.common.utils.BeanUtil;
import net.srt.framework.common.utils.Result;
import net.srt.framework.common.utils.TreeNodeVo;
import net.srt.service.StandardService;
@@ -9,6 +13,8 @@ import net.srt.vo.StandardManagementVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -30,6 +36,13 @@ public class StandardController {
return Result.ok(standardService.listTree());
}
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id){
+ StandardEntity entity = standardService.getById(id);
+
+ return Result.ok(StandardConvert.INSTANCE.convert(entity));
+ }
@PostMapping
@Operation(summary = "保存")
@@ -45,9 +58,9 @@ public class StandardController {
return Result.ok();
}
- @DeleteMapping
+ @DeleteMapping("/{id}")
@Operation(summary = "删除")
- public Result delete(Long id) {
+ public Result delete(@PathVariable Long id) {
standardService.delete(id);
return Result.ok();
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigConvert.java
index 9e07e73..6e4456d 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigConvert.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigConvert.java
@@ -1,7 +1,7 @@
package net.srt.convert;
import net.srt.entity.QualityConfigEntity;
-import net.srt.vo.QualityConfigVo;
+import net.srt.vo.QualityConfigVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@@ -17,9 +17,9 @@ import java.util.List;
public interface QualityConfigConvert {
QualityConfigConvert INSTANCE = Mappers.getMapper(QualityConfigConvert.class);
- QualityConfigVo convert(QualityConfigEntity entity);
+ QualityConfigVO convert(QualityConfigEntity entity);
- QualityConfigEntity convert(QualityConfigVo vo);
+ QualityConfigEntity convert(QualityConfigVO vo);
- List convertList(List list);
+ List convertList(List list);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/StandardDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/StandardDao.java
index adc6acc..b2dcb0f 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/dao/StandardDao.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/StandardDao.java
@@ -12,5 +12,4 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface StandardDao extends BaseMapper {
-
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/init/BusinessInitializer.java b/srt-cloud-data-governance/src/main/java/net/srt/init/BusinessInitializer.java
index 947e95a..cf0c336 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/init/BusinessInitializer.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/init/BusinessInitializer.java
@@ -25,10 +25,10 @@ public class BusinessInitializer implements ApplicationRunner {
* init task monitor
*/
private void initScheduleMonitor() {
- //处理没执行完的采集任务
- metadataCollectRecordService.dealNotFinished();
- //处理没执行完的质量检测任务
- qualityTaskService.dealNotFinished();
+// //处理没执行完的采集任务
+// metadataCollectRecordService.dealNotFinished();
+// //处理没执行完的质量检测任务
+// qualityTaskService.dealNotFinished();
}
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java
index a171909..b414aa5 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java
@@ -8,25 +8,31 @@ import net.srt.vo.MetadataVO;
import java.util.List;
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.service
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 14:35
+ */
+
public interface MetadataService extends BaseService {
- List listByParentId(Long parentId);
+ List listByPatenId(Long parentId);
List listFloder();
List listDb();
- List listByKeyword(String keyword);
+ List listKeyword(String keyword);
MetadataVO get(Long id);
void save(MetadataVO vo);
-
void update(MetadataVO vo);
void delete(Long id);
- void upNeo4jInfo(Neo4jInfo neo4jInfo);
+ void updateNeo4j(Neo4jInfo neo4jInfo);
- Neo4jInfo getNeo4jInfo();
+ Neo4jInfo getNeo4j();
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigService.java
index 553e11e..3d89e28 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigService.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigService.java
@@ -4,7 +4,7 @@ import net.srt.entity.QualityConfigEntity;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.BaseService;
import net.srt.query.QualityConfigQuery;
-import net.srt.vo.QualityConfigVo;
+import net.srt.vo.QualityConfigVO;
import java.util.List;
@@ -15,13 +15,13 @@ import java.util.List;
* @CreateTime: 2023/12/24 19:33
*/
public interface QualityConfigService extends BaseService {
- PageResult page(QualityConfigQuery query);
+ PageResult page(QualityConfigQuery query);
- QualityConfigVo get(Long id);
+ QualityConfigVO get(Long id);
- void save(QualityConfigVo vo);
+ void save(QualityConfigVO vo);
- void update(QualityConfigVo vo);
+ void update(QualityConfigVO vo);
void online(Long id);
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceImpl.java
index 9dd5d33..e07adbb 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceImpl.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceImpl.java
@@ -38,7 +38,7 @@ public class MetadataServiceImpl extends BaseServiceImpl listByParentId(Long parentId) {
+ public List listByPatenId(Long parentId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MetadataEntity::getParentId,parentId)
.orderByAsc(MetadataEntity::getOrderNo);
@@ -93,9 +93,9 @@ public class MetadataServiceImpl extends BaseServiceImpl listByKeyword(String keyword) {
+ public List listKeyword(String keyword) {
if(StringUtil.isBlank(keyword)){
- return listByParentId(0L);
+ return listByPatenId(0L);
}
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.like(MetadataEntity::getName,keyword)
@@ -171,12 +171,12 @@ public class MetadataServiceImpl extends BaseServiceImpl page(QualityConfigQuery query) {
+ public PageResult page(QualityConfigQuery query) {
IPage page=baseMapper.selectPage(getPage(query),getWrapper(query));
return new PageResult<>(QualityConfigConvert.INSTANCE.convertList(page.getRecords()),page.getTotal());
}
@Override
- public QualityConfigVo get(Long id) {
- QualityConfigVo qualityConfigvo= QualityConfigConvert.INSTANCE.convert(baseMapper.selectById(id));
- List metadataIds=qualityConfigvo.getMetadataIds();
+ public QualityConfigVO get(Long id) {
+ QualityConfigVO QualityConfigVO= QualityConfigConvert.INSTANCE.convert(baseMapper.selectById(id));
+ List metadataIds=QualityConfigVO.getMetadataIds();
LambdaQueryWrapper metadataWrapper= Wrappers.lambdaQuery();
metadataWrapper.in(MetadataEntity::getId,metadataIds);
List metadataEntities=metadataDao.selectList(metadataWrapper);
if (CollectionUtils.isEmpty(metadataEntities)){
- qualityConfigvo.setMetadataStrs("检测字段已删除,请检查数据信息");
+ QualityConfigVO.setMetadataStrs("检测字段已删除,请检查数据信息");
}else {
- qualityConfigvo.setMetadataStrs(metadataEntities.stream().map(MetadataEntity::getPath).collect(Collectors.joining(";")));
+ QualityConfigVO.setMetadataStrs(metadataEntities.stream().map(MetadataEntity::getPath).collect(Collectors.joining(";")));
}
- if (BuiltInQualityRule.ASSOCIATION_CONSISTENCY.getId().equals(qualityConfigvo.getRuleId())){
- QualityConfigParam param = qualityConfigvo.getParam();
+ if (BuiltInQualityRule.ASSOCIATION_CONSISTENCY.getId().equals(QualityConfigVO.getRuleId())){
+ QualityConfigParam param = QualityConfigVO.getParam();
Integer columnMetaId = param.getColumnMetaId();
MetadataEntity entity = metadataDao.selectById(columnMetaId);
if (entity!= null){
- qualityConfigvo.setRelMetadataStr(entity.getPath());
+ QualityConfigVO.setRelMetadataStr(entity.getPath());
}else {
- qualityConfigvo.setMetadataStrs("关联字段已被删除,请检查元数据信息");
+ QualityConfigVO.setMetadataStrs("关联字段已被删除,请检查元数据信息");
}
}
- return qualityConfigvo;
+ return QualityConfigVO;
}
@Override
- public void save(QualityConfigVo vo) {
+ public void save(QualityConfigVO vo) {
QualityConfigEntity entity=QualityConfigConvert.INSTANCE.convert(vo);
entity.setProjectId(getProjectId());
if (!BuiltInQualityRule.UNIQUENESS.getId().equals(entity.getRuleId())&&!BuiltInQualityRule.LENGTH_CHECK.getId().equals(entity.getRuleId())&& !BuiltInQualityRule.ASSOCIATION_CONSISTENCY.getId().equals(entity.getRuleId())&&!BuiltInQualityRule.TIMELINESS.getId().equals(entity.getRuleId())){
@@ -81,7 +79,7 @@ public class QualityConfigServiceimpl extends BaseServiceImpl> page(@Valid ApiConfigQuery query) {
- PageResult page = apiConfigService.page(query); // 调用service层方法获取分页结果
- return Result.ok(page); // 封装返回结果并返回
- }
+ PageResult page = apiConfigService.page(query);
- /**
- * 根据resourceId分页获取接口配置列表
- * @param query 查询条件
- * @return 符合条件的接口配置列表的分页结果
- */
+ return Result.ok(page);
+ }
@GetMapping("page-resource")
- @Operation(summary = "根据resourceId分页获取接口配置列表")
+ @Operation(summary = "根据resourceId分页获取")
public Result> pageResource(@Valid ApiConfigQuery query){
- PageResult page = apiConfigService.pageResource(query); // 调用service层方法根据resourceId分页获取接口配置列表
- return Result.ok(page); // 封装返回结果并返回
+ PageResult page = apiConfigService.pageResource(query);
+
+ return Result.ok(page);
}
- /**
- * 根据id获取接口配置信息
- * @param id 接口配置id
- * @return 对应id的接口配置信息
- */
+ @GetMapping("page-auth")
+ @Operation(summary = "根据resourceId分页获取")
+ public Result> pageAuth(@Valid ApiConfigQuery query) {
+ PageResult page = apiConfigService.page(query);
+
+ return Result.ok(page);
+ }
+
+
@GetMapping("{id}")
- @Operation(summary = "根据id获取接口配置信息")
+ @Operation(summary = "信息")
@PreAuthorize("hasAnyAuthority('data-service:api-config:info')")
public Result get(@PathVariable("id") Long id){
- ApiConfigEntity entity=apiConfigService.getById(id); // 根据id获取接口配置实体对象
- return Result.ok(ApiConfigConvert.INSTANCE.convert(entity)); // 封装返回结果并返回
+ ApiConfigEntity entity=apiConfigService.getById(id);
+ return Result.ok(ApiConfigConvert.INSTANCE.convert(entity));
}
- /**
- * 保存接口配置信息
- * @param vo 接口配置信息
- * @return 保存结果
- */
@PostMapping
- @Operation(summary = "保存接口配置信息")
+ @Operation(summary = "保存")
@PreAuthorize("hasAnyAuthority('data-service:api-config:save')")
public Result save(@RequestBody ApiConfigVo vo) {
- apiConfigService.save(vo); // 调用service层方法保存接口配置信息
- return Result.ok(); // 封装返回结果并返回
+ apiConfigService.save(vo);
+ return Result.ok();
}
-
- /**
- * 修改接口配置信息
- * @param vo 接口配置信息
- * @return 修改结果
- */
@PutMapping
- @Operation(summary = "修改接口配置信息")
+ @Operation(summary = "修改")
@PreAuthorize("hasAnyAuthority('data-service:api-config:update')")
public Result update(@RequestBody ApiConfigVo vo){
- apiConfigService.update(vo); // 调用service层方法修改接口配置信息
- return Result.ok(); // 封装返回结果并返回
+ apiConfigService.update(vo);
+ return Result.ok();
}
-
- /**
- * 删除接口配置信息
- * @param idList 待删除的接口配置id列表
- * @return 删除结果
- */
@DeleteMapping
- @Operation(summary = "删除接口配置信息")
+ @Operation(summary = "删除")
@PreAuthorize("hasAnyAuthority('data-service:api-config:delete')")
public Result delete(@RequestBody List idList){
- apiConfigService.delete(idList); // 调用service层方法删除接口配置信息
- return Result.ok(); // 封装返回结果并返回
+ apiConfigService.delete(idList);
+ return Result.ok();
}
-
- /**
- * 获取服务的IP和端口号
- * @return IP和端口号
- */
@GetMapping("getIpPort")
- @Operation(summary = "获取服务的IP和端口号")
public Result getIpPort() {
- return Result.ok(apiConfigService.getIpPort()); // 封装返回结果并返回
+ return Result.ok(apiConfigService.getIpPort());
}
-
- /**
- * 获取服务的IP和端口号
- * @return IP和端口号
- */
+ @Operation(summary = "获取服务的ip和端口号")
@GetMapping("/ip-port")
- @Operation(summary = "获取服务的IP和端口号")
public Result ipPort() {
- return Result.ok(apiConfigService.ipPort()); // 封装返回结果并返回
+ return Result.ok(apiConfigService.ipPort());
}
-
- /**
- * 上线指定id的接口配置
- * @param id 待上线的接口配置id
- * @return 上线结果
- */
- @PutMapping("/{id}/online")
- @Operation(summary = "上线指定id的接口配置")
+ @Operation(summary = "上线")
@PreAuthorize("hasAnyAuthority('data-service:api-config:online')")
+ @PutMapping("/{id}/online")
public Result online(@PathVariable Long id) {
- apiConfigService.online(id); // 调用service层方法上线指定id的接口配置
- return Result.ok(); // 封装返回结果并返回
+ apiConfigService.online(id);
+ return Result.ok();
}
-
- /**
- * 下线指定id的接口配置
- * @param id 待下线的接口配置id
- * @return 下线结果
- */
- @PutMapping("/{id}/offline")
- @Operation(summary = "下线指定id的接口配置")
+ @Operation(summary = "下线")
@PreAuthorize("hasAnyAuthority('data-service:api-config:offline')")
+ @PutMapping("/{id}/offline")
public Result offline(@PathVariable Long id){
- apiConfigService.offline(id); // 调用service层方法下线指定id的接口配置
- return Result.ok(); // 封装返回结果并返回
+ apiConfigService.offline(id);
+ return Result.ok();
}
- /**
- * 执行SQL查询
- * @param dto SQL查询参数
- * @return SQL查询结果
- */
+ @Operation(summary = "执行sql")
@PostMapping("/sql/execute")
- @Operation(summary = "执行SQL查询")
public Result sqlExecute(@RequestBody SqlDto dto) {
- return Result.ok(apiConfigService.sqlExecute(dto)); // 封装返回结果并返回
+ return Result.ok(apiConfigService.sqlExecute(dto));
}
- /**
- * 导出指定id列表对应的API文档
- * @param ids 待导出API文档的id列表
- * @param response HTTP响应对象
- */
+ @Operation(summary = "导出 api 文档")
@PostMapping(value = "/export-docs")
- @Operation(summary = "导出API文档")
public void exportDocs(@RequestBody List ids, HttpServletResponse response) {
- apiConfigService.exportDocs(ids, response); // 调用service层方法导出API文档
+ apiConfigService.exportDocs(ids, response);
}
+
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/controller/ApiGroupController.java b/srt-cloud-data-service/src/main/java/net/srt/controller/ApiGroupController.java
index 1d4b9ab..28675b8 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/controller/ApiGroupController.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/controller/ApiGroupController.java
@@ -28,66 +28,42 @@ import java.util.List;
@AllArgsConstructor
public class ApiGroupController {
private final ApiGroupService apiGroupService;
- /**
- * 查询文件分组树
- * @return 文件分组树的列表结果
- */
- @GetMapping("api-group")
+ @GetMapping
@Operation(summary = "查询文件分组树")
public Result> listTree() {
- return Result.ok(apiGroupService.listTree()); // 调用service层方法查询文件分组树并返回结果
+ return Result.ok(apiGroupService.listTree());
}
- /**
- * 根据id获取文件分组信息
- * @param id 文件分组id
- * @return 对应id的文件分组信息
- */
@GetMapping("{id}")
@Operation(summary = "信息")
@PreAuthorize("hasAuthority('data-service:api-group:info')")
public Result get(@PathVariable("id") Long id){
- ApiGroupEntity entity = apiGroupService.getById(id); // 根据id获取文件分组实体对象
- return Result.ok(ApiGroupConvert.INSTANCE.convert(entity)); // 封装返回结果并返回
+ ApiGroupEntity entity = apiGroupService.getById(id);
+
+ return Result.ok(ApiGroupConvert.INSTANCE.convert(entity));
}
- /**
- * 保存文件分组信息
- * @param vo 文件分组信息
- * @return 保存结果
- */
@PostMapping
@Operation(summary = "保存")
@PreAuthorize("hasAuthority('data-service:api-group:save')")
public Result save(@RequestBody ApiGroupVo vo) {
- apiGroupService.save(vo); // 调用service层方法保存文件分组信息
- return Result.ok(); // 封装返回结果并返回
+ apiGroupService.save(vo);
+ return Result.ok();
}
- /**
- * 修改文件分组信息
- * @param vo 文件分组信息
- * @return 修改结果
- */
@PutMapping
@Operation(summary = "修改")
@PreAuthorize("hasAuthority('data-service:api-group:update')")
public Result update(@RequestBody @Valid ApiGroupVo vo) {
- apiGroupService.update(vo); // 调用service层方法修改文件分组信息
- return Result.ok(); // 封装返回结果并返回
+ apiGroupService.update(vo);
+ return Result.ok();
}
- /**
- * 删除文件分组信息
- * @param id 待删除的文件分组id
- * @return 删除结果
- */
@DeleteMapping("/{id}")
@Operation(summary = "删除")
@PreAuthorize("hasAuthority('data-service:api-group:delete')")
public Result delete(@PathVariable Long id) {
- apiGroupService.delete(id); // 调用service层方法删除文件分组信息
- return Result.ok(); // 封装返回结果并返回
+ apiGroupService.delete(id);
+ return Result.ok();
}
-
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceApiController.java b/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceApiController.java
new file mode 100644
index 0000000..75da63c
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceApiController.java
@@ -0,0 +1,29 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.dao.DataServiceAppDao;
+import net.srt.framework.common.utils.Result;
+import net.srt.service.DataServiceAppService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName : DataServiceApiController
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-26 20:38
+ */
+@RestController
+@RequestMapping("api")
+@Tag(name = "api")
+@AllArgsConstructor
+public class DataServiceApiController {
+ private final DataServiceAppService dataServiceAppService;
+ @GetMapping("/token/generate")
+ public Result tokenGenerate(@RequestParam String appKey, @RequestParam String appSecret) {
+ return Result.ok(dataServiceAppService.tokenGenerate(appKey, appSecret));
+ }
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceAppController.java b/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceAppController.java
index 7dbdce9..f77f39d 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceAppController.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceAppController.java
@@ -8,7 +8,9 @@ import net.srt.framework.common.page.PageResult;
import net.srt.framework.common.utils.Result;
import net.srt.query.DataServiceAppQuery;
import net.srt.service.DataServiceAppService;
+import net.srt.vo.DataServiceApiAuthVo;
import net.srt.vo.DataServiceAppVo;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -61,16 +63,18 @@ public class DataServiceAppController {
return Result.ok();
}
+
+
@PostMapping("/auth")
@Operation(summary = "添加授权")
- public Result addAuth(@RequestBody DataServiceAppVo authVO){
+ public Result addAuth(@RequestBody DataServiceApiAuthVo authVO){
dataServiceAppService.addAuth(authVO);
return Result.ok();
}
@PutMapping("/auth")
@Operation(summary = "修改授权")
- public Result upAuth(@RequestBody DataServiceAppVo authVO){
+ public Result upAuth(@RequestBody DataServiceApiAuthVo authVO){
dataServiceAppService.upAuth(authVO);
return Result.ok();
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceApiAuthConvert.java b/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceApiAuthConvert.java
index fb9bfb4..8e88916 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceApiAuthConvert.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceApiAuthConvert.java
@@ -1,10 +1,26 @@
package net.srt.convert;
+import net.srt.entity.DataServiceApiAuthEntity;
+import net.srt.vo.DataServiceApiAuthVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
/**
* @ClassName : DataServiceApiAuthConvert
* @Description :
* @Author : FJJ
- * @Date: 2023-12-26 15:23
+ * @Date: 2023-12-26 19:45
*/
+@Mapper
public interface DataServiceApiAuthConvert {
+ DataServiceApiAuthConvert INSTANCE = Mappers.getMapper(DataServiceApiAuthConvert.class);
+
+
+ DataServiceApiAuthEntity convert(DataServiceApiAuthVo vo);
+
+ DataServiceApiAuthVo convert(DataServiceApiAuthEntity entity);
+
+ List convertList(List list);
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceAppConvert.java b/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceAppConvert.java
index 3abbab9..2c975e2 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceAppConvert.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceAppConvert.java
@@ -19,6 +19,7 @@ public interface DataServiceAppConvert {
DataServiceAppEntity convert(DataServiceAppVo vo);
+
DataServiceAppVo convert(DataServiceAppEntity entity);
List convertList(List list);
diff --git a/srt-cloud-data-service/src/main/java/net/srt/dao/ApiConfigDao.java b/srt-cloud-data-service/src/main/java/net/srt/dao/ApiConfigDao.java
index d225d1f..970b446 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/dao/ApiConfigDao.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/dao/ApiConfigDao.java
@@ -3,6 +3,7 @@ package net.srt.dao;
import net.srt.entity.ApiConfigEntity;
import net.srt.framework.mybatis.dao.BaseDao;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -12,4 +13,8 @@ public interface ApiConfigDao extends BaseDao {
List getResourceList(Map params);
ApiConfigEntity getById(Long id);
+
+ void updateById(@Param("apiId") Long apiId, @Param("id") Long id);
+
+ List getAuthList(Map params);
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceApiAuthDao.java b/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceApiAuthDao.java
index 2d09eb4..a8d5b16 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceApiAuthDao.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceApiAuthDao.java
@@ -1,10 +1,15 @@
package net.srt.dao;
+import net.srt.entity.DataServiceApiAuthEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
/**
* @ClassName : DataServiceApiAuthDao
* @Description :
* @Author : FJJ
* @Date: 2023-12-26 15:23
*/
-public interface DataServiceApiAuthDao {
+@Mapper
+public interface DataServiceApiAuthDao extends BaseDao {
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceAppDao.java b/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceAppDao.java
index f93a261..1ef713e 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceAppDao.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceAppDao.java
@@ -13,5 +13,5 @@ import org.apache.ibatis.annotations.Param;
*/
@Mapper
public interface DataServiceAppDao extends BaseDao {
- DataServiceAppEntity selectByApplyId(@Param("applyId") Long applyId);
+// DataServiceAppEntity selectByApplyId(@Param("applyId") Long applyId);
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/dto/ApiConfigDto.java b/srt-cloud-data-service/src/main/java/net/srt/dto/ApiConfigDto.java
index 7807009..638f19d 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/dto/ApiConfigDto.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/dto/ApiConfigDto.java
@@ -12,164 +12,37 @@ import java.util.Date;
@Data
public class ApiConfigDto implements Serializable {
private static final long serialVersionUID = 1L;
- /**
- * 数据库主键id
- */
private Long id;
-
- /**
- * 文件分组id
- */
private Long groupId;
-
- /**
- * 文件路径
- */
private String path;
-
- /**
- * 文件类型,如:sql、http等
- */
private String type;
-
- /**
- * 文件名称
- */
private String name;
-
- /**
- * 文件备注
- */
private String note;
-
- /**
- * SQL语句内容
- */
private String sqlText;
-
- /**
- * SQL语句分隔符
- */
private String sqlSeparator;
-
- /**
- * SQL最大行数
- */
private Integer sqlMaxRow;
-
- /**
- * SQL语句参数
- */
private String sqlParam;
-
- /**
- * JSON参数
- */
private String jsonParam;
-
- /**
- * HTTP响应结果
- */
private String responseResult;
-
- /**
- * 内容类型
- */
private String contentType;
-
- /**
- * 状态,1启用,0禁用
- */
private Integer status;
-
- /**
- * 发布时间
- */
private Date releaseTime;
-
- /**
- * 发布用户id
- */
private Long releaseUserId;
-
- /**
- * 数据库类型
- */
private Integer sqlDbType;
-
- /**
- * 数据库id
- */
private Long databaseId;
-
- /**
- * 是否私有文件,1是,0否
- */
private Integer privates;
-
- /**
- * 开启事务,1是,0否
- */
private Integer openTrans;
-
- /**
- * 项目id
- */
private Long projectId;
-
- /**
- * 版本号
- */
private Integer version;
-
- /**
- * 是否删除,1是,0否
- */
private Integer deleted;
-
- /**
- * 创建者id
- */
private Long creator;
-
- /**
- * 创建时间
- */
private Date createTime;
-
- /**
- * 更新者id
- */
private Long updater;
-
- /**
- * 更新时间
- */
private Date updateTime;
-
- /**
- * 请求次数
- */
private Integer requestedTimes;
-
- /**
- * 请求成功次数
- */
private Integer requestedSuccessTimes;
-
- /**
- * 请求失败次数
- */
private Integer requestedFailedTimes;
-
- /**
- * 授权id
- */
private Long authId;
-
- /**
- * 分组名
- */
private String group;
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/dto/AppToken.java b/srt-cloud-data-service/src/main/java/net/srt/dto/AppToken.java
index e3ed399..335ef90 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/dto/AppToken.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/dto/AppToken.java
@@ -10,24 +10,8 @@ import java.io.Serializable;
@AllArgsConstructor
@NoArgsConstructor
public class AppToken implements Serializable {
- /**
- * 应用id
- */
private Long appId;
-
- /**
- * 应用密钥
- */
private String appKey;
-
- /**
- * 访问令牌
- */
private String token;
-
- /**
- * 过期时间戳
- */
private Long expireAt;
-
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/dto/SqlDto.java b/srt-cloud-data-service/src/main/java/net/srt/dto/SqlDto.java
index 6c7c7e0..599ea55 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/dto/SqlDto.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/dto/SqlDto.java
@@ -4,44 +4,12 @@ import lombok.Data;
@Data
public class SqlDto {
- /**
- * 数据库类型
- */
private Integer sqlDbType;
-
- /**
- * 项目id
- */
private Long projectId;
-
- /**
- * SQL语句
- */
private String statement;
-
- /**
- * SQL语句分隔符
- */
private String sqlSeparator;
-
- /**
- * 数据库id
- */
private Long databaseId;
-
- /**
- * 是否开启事务,1是,0否
- */
private Integer openTrans;
-
- /**
- * JSON参数
- */
private String jsonParams;
-
- /**
- * SQL最大行数
- */
private Integer sqlMaxRow;
-
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApiAuthEnitiy.java b/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApiAuthEnitiy.java
deleted file mode 100644
index 852114f..0000000
--- a/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApiAuthEnitiy.java
+++ /dev/null
@@ -1,70 +0,0 @@
-//package net.srt.entity;
-//
-//import com.baomidou.mybatisplus.annotation.FieldFill;
-//import com.baomidou.mybatisplus.annotation.FieldStrategy;
-//import com.baomidou.mybatisplus.annotation.TableField;
-//import com.baomidou.mybatisplus.annotation.TableName;
-//import lombok.Data;
-//import lombok.EqualsAndHashCode;
-//import net.srt.framework.mybatis.entity.BaseEntity;
-//
-//import java.util.Date;
-//
-///**
-// * @ClassName : DataServiceApiAuthEnitiy
-// * @Description :
-// * @Author : FJJ
-// * @Date: 2023-12-24 11:30
-// */
-//@EqualsAndHashCode(callSuper=false)
-//@Data
-//@TableName("data_service_api_auth1")
-//public class DataServiceApiAuthEnitiy extends BaseEntity {
-//
-// /**
-// * app的id
-// */
-// private Long appId;
-//
-// /**
-// * 分组id
-// */
-// private Long groupId;
-//
-// /**
-// * api的id
-// */
-// private Long apiId;
-//
-// /**
-// * 调用次数 不限次数为-1
-// */
-// private Integer requestTimes;
-//
-// @TableField(updateStrategy = FieldStrategy.IGNORED)
-// private Date startTime;
-// @TableField(updateStrategy = FieldStrategy.IGNORED)
-// private Date endTime;
-//
-// /**
-// * 已调用次数
-// */
-// @TableField(updateStrategy = FieldStrategy.NEVER)
-// private Integer requestedTimes;
-// @TableField(updateStrategy = FieldStrategy.NEVER)
-// private Integer requestedSuccessTimes;
-// @TableField(updateStrategy = FieldStrategy.NEVER)
-// private Integer requestedFailedTimes;
-//
-// /**
-// * 所属项目id
-// */
-// private Long projectId;
-//
-// /**
-// * 真删
-// */
-// @TableField(fill = FieldFill.INSERT)
-// private Integer deleted;
-//
-//}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/service/DataServiceAppService.java b/srt-cloud-data-service/src/main/java/net/srt/service/DataServiceAppService.java
index d0c4606..96b0bdc 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/service/DataServiceAppService.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/service/DataServiceAppService.java
@@ -4,6 +4,7 @@ import net.srt.entity.DataServiceAppEntity;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.BaseService;
import net.srt.query.DataServiceAppQuery;
+import net.srt.vo.DataServiceApiAuthVo;
import net.srt.vo.DataServiceAppVo;
import java.util.List;
@@ -23,9 +24,11 @@ public interface DataServiceAppService extends BaseService
void delete(List idList);
- void addAuth(DataServiceAppVo authVO);
+ void addAuth(DataServiceApiAuthVo authVO);
- void upAuth(DataServiceAppVo authVO);
+ void upAuth(DataServiceApiAuthVo authVO);
void cancelAuth(Long authId);
+
+ String tokenGenerate(String appKey, String appSecret);
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/service/impl/ApiConfigServiceImpl.java b/srt-cloud-data-service/src/main/java/net/srt/service/impl/ApiConfigServiceImpl.java
index cf710c0..65d63b0 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/service/impl/ApiConfigServiceImpl.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/service/impl/ApiConfigServiceImpl.java
@@ -43,10 +43,6 @@ public class ApiConfigServiceImpl extends BaseServiceImpl mappings = new ConcurrentHashMap<>();
- /**
- * 获取服务实例的IP和端口
- * @return IP和端口
- */
@Override
public String getIpPort() {
List instances = discoveryClient.getInstances(ServerNames.GATEWAY_SERVER_NAME);
@@ -55,10 +51,7 @@ public class ApiConfigServiceImpl extends BaseServiceImpl instances = discoveryClient.getInstances(ServerNames.GATEWAY_SERVER_NAME);
- // 获取第一个网关服务实例的主机和端口,并返回拼接后的字符串
return instances.get(0).getHost() + ":" + instances.get(0).getPort();
}
-
@Override
public JdbcSelectResult sqlExecute(SqlDto dto) {
return null;
@@ -180,21 +168,18 @@ public class ApiConfigServiceImpl extends BaseServiceImpl page(ApiConfigQuery query) {
- // 执行分页查询,并获取分页对象
- IPage page = baseMapper.selectPage(getPage(query), getWrapper(query));
- // 将实体对象列表转换为VO对象列表
- List apiConfigVos = ApiConfigConvert.INSTANCE.convertList(page.getRecords());
- // 返回VO对象列表和总记录数构成的分页结果对象
- return new PageResult<>(apiConfigVos, page.getTotal());
+ // 查询参数
+ Map params = getParams(query);
+ // 分页查询
+ query.setOrder("dsac.id");
+ IPage page = getPage(query);
+ params.put(Constant.PAGE, page);
+ // 数据列表
+ List list = baseMapper.getAuthList(params);
+ return new PageResult<>(ApiConfigConvert.INSTANCE.convertList(list), page.getTotal());
}
-
private LambdaQueryWrapper getWrapper(ApiConfigQuery query) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
wrapper.like(StringUtil.isNotBlank(query.getName()), ApiConfigEntity::getName, query.getName());
@@ -211,32 +196,17 @@ public class ApiConfigServiceImpl extends BaseServiceImpl pageResource(ApiConfigQuery query) {
- // 获取查询参数
+ // 查询参数
Map params = getParams(query);
- // 获取分页对象
IPage page = getPage(query);
params.put(Constant.PAGE, page);
- // 查询数据列表
+ // 数据列表
List list = baseMapper.getResourceList(params);
- // 将数据列表转换为VO对象列表
List apiConfigVos = ApiConfigConvert.INSTANCE.convertList(list);
- // 遍历VO对象列表,设置所属组信息
for (ApiConfigVo apiConfigVo : apiConfigVos) {
ApiGroupEntity groupEntity = apiGroupDao.selectById(apiConfigVo.getGroupId());
apiConfigVo.setGroup(groupEntity != null ? groupEntity.getPath() : null);
}
- // 返回VO对象列表和总记录数构成的分页结果对象
return new PageResult<>(apiConfigVos, page.getTotal());
+
}
-
- /**
- * 根据组ID获取有效的API配置列表
- * @param id 组ID
- * @return API配置列表
- */
@Override
public List listActiveByGroupId(Long id) {
- // 创建LambdaQueryWrapper对象
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
- // 设置查询条件:状态为1(有效),组ID为指定ID,并按照ID降序排序
- wrapper.eq(ApiConfigEntity::getStatus, 1)
- .eq(ApiConfigEntity::getGroupId, id)
- .orderByDesc(ApiConfigEntity::getId);
- // 应用数据范围控制(排除组织ID)
+ wrapper.eq(ApiConfigEntity::getStatus, 1).eq(ApiConfigEntity::getGroupId, id).orderByDesc(ApiConfigEntity::getId);
dataScopeWithoutOrgId(wrapper);
- // 执行查询并返回结果列表
return baseMapper.selectList(wrapper);
}
-
private Map getParams(ApiConfigQuery query) {
Map params = new HashMap<>();
params.put("ifMarket", query.getIfMarket());
diff --git a/srt-cloud-data-service/src/main/java/net/srt/service/impl/DataServiceAppServiceImpl.java b/srt-cloud-data-service/src/main/java/net/srt/service/impl/DataServiceAppServiceImpl.java
index a4e251c..7f8fab4 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/service/impl/DataServiceAppServiceImpl.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/service/impl/DataServiceAppServiceImpl.java
@@ -4,8 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
+import net.srt.convert.DataServiceApiAuthConvert;
import net.srt.convert.DataServiceAppConvert;
+import net.srt.dao.ApiConfigDao;
+import net.srt.dao.DataServiceApiAuthDao;
import net.srt.dao.DataServiceAppDao;
+import net.srt.dto.AppToken;
+import net.srt.entity.DataServiceApiAuthEntity;
import net.srt.entity.DataServiceAppEntity;
import net.srt.framework.common.exception.ServerException;
import net.srt.framework.common.page.PageResult;
@@ -13,7 +18,9 @@ import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
import net.srt.framework.security.user.SecurityUser;
import net.srt.query.DataServiceAppQuery;
import net.srt.service.DataServiceAppService;
+import net.srt.vo.DataServiceApiAuthVo;
import net.srt.vo.DataServiceAppVo;
+import org.apache.commons.lang.RandomStringUtils;
import org.springframework.stereotype.Service;
import srt.cloud.framework.dbswitch.common.util.StringUtil;
@@ -30,6 +37,8 @@ import java.util.List;
@AllArgsConstructor
public class DataServiceAppServiceImpl extends BaseServiceImpl implements DataServiceAppService {
private final DataServiceAppDao dataServiceAppDao;
+ private final ApiConfigDao apiConfigDao;
+ private final DataServiceApiAuthDao dataServiceApiAuthDao;
@Override
public PageResult page(DataServiceAppQuery query) {
IPage page=baseMapper.selectPage(getPage(query),null);
@@ -56,14 +65,18 @@ public class DataServiceAppServiceImpl extends BaseServiceImpl wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(DataServiceAppEntity::getAppKey,appKey).last("limit 1");
+ DataServiceAppEntity dataServiceAppEntity = baseMapper.selectOne(wrapper);
+ if (dataServiceAppEntity==null){
+ throw new RuntimeException("appKey不存在");
+ }
+ if (!appSecret.equals(dataServiceAppEntity.getAppSecret())){
+ throw new ServerException("appSecret错误");
+ }
+ //生成token
+ String token = RandomStringUtils.random(32, true, true);
+ AppToken appToken = new AppToken();
+ appToken.setToken(token);
+ appToken.setAppKey(appKey);
+ appToken.setAppId(dataServiceAppEntity.getId());
+ if (dataServiceAppEntity.getExpireDuration()==0){
+ appToken.setExpireAt(0L);
+ } else if (dataServiceAppEntity.getExpireDuration()== -1) {
+ appToken.setExpireAt(-1L);
+ }else if (dataServiceAppEntity.getExpireDuration()>0){
+ long l = System.currentTimeMillis() + dataServiceAppEntity.getExpireDuration() * 1000;
+ appToken.setExpireAt(l);
+ }
+ return appToken.getToken();
+ }
-// private LambdaQueryWrapper getWrapper(DataServiceAppQuery query) {
-// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
-// wrapper.like(StringUtil.isNotBlank(query.getName()), DataServiceAppEntity::getName, query.getName())
-// .eq(DataServiceAppEntity::getIfMarket, query.getIfMarket() != null ? query.getIfMarket() : 0)
-// .eq(query.getIfMarket() != null, DataServiceAppEntity::getCreator, SecurityUser.getUserId())
-// .eq(StringUtil.isNotBlank(query.getAppKey()), DataServiceAppEntity::getAppKey, query.getAppKey())
-// .orderByDesc(DataServiceAppEntity::getCreateTime).orderByDesc(DataServiceAppEntity::getId);
-// return wrapper;
-// }
+
+ private LambdaQueryWrapper getWrapper(DataServiceAppQuery query) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.like(StringUtil.isNotBlank(query.getName()), DataServiceAppEntity::getName, query.getName())
+ .eq(DataServiceAppEntity::getIfMarket, query.getIfMarket() != null ? query.getIfMarket() : 0)
+ .eq(query.getIfMarket() != null, DataServiceAppEntity::getCreator, SecurityUser.getUserId())
+ .eq(StringUtil.isNotBlank(query.getAppKey()), DataServiceAppEntity::getAppKey, query.getAppKey())
+ .orderByDesc(DataServiceAppEntity::getCreateTime).orderByDesc(DataServiceAppEntity::getId);
+ return wrapper;
+ }
}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/utils/EncrypDES.java b/srt-cloud-data-service/src/main/java/net/srt/utils/EncrypDES.java
new file mode 100644
index 0000000..939f75c
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/utils/EncrypDES.java
@@ -0,0 +1,145 @@
+package net.srt.utils;
+
+import javax.crypto.Cipher;
+import java.security.Key;
+
+/**
+ * @ClassName : EncrypDES
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-25 09:31
+ */
+public class EncrypDES {
+
+ // 字符串默认键值
+ private static String strDefaultKey = "inventec2020@#$%^&";
+
+ //加密工具
+ private Cipher encryptCipher = null;
+
+ // 解密工具
+ private Cipher decryptCipher = null;
+
+ /**
+ * 默认构造方法,使用默认密钥
+ */
+ public EncrypDES() throws Exception {
+ this(strDefaultKey);
+ }
+
+ /**
+ * 指定密钥构造方法
+ * @param strKey 指定的密钥
+ * @throws Exception
+ */
+
+ public EncrypDES(String strKey) throws Exception {
+
+ // Security.addProvider(new com.sun.crypto.provider.SunJCE());
+ Key key = getKey(strKey.getBytes());
+ encryptCipher = Cipher.getInstance("DES");
+ encryptCipher.init(Cipher.ENCRYPT_MODE, key);
+ decryptCipher = Cipher.getInstance("DES");
+ decryptCipher.init(Cipher.DECRYPT_MODE, key);
+ }
+
+ /**
+ * 将byte数组转换为表示16进制值的字符串, 如:byte[]{8,18}转换为:0813,和public static byte[]
+ *
+ * hexStr2ByteArr(String strIn) 互为可逆的转换过程
+ *
+ * @param arrB 需要转换的byte数组
+ * @return 转换后的字符串
+ * @throws Exception 本方法不处理任何异常,所有异常全部抛出
+ */
+ public static String byteArr2HexStr(byte[] arrB) throws Exception {
+ int iLen = arrB.length;
+ // 每个byte用2个字符才能表示,所以字符串的长度是数组长度的2倍
+ StringBuffer sb = new StringBuffer(iLen * 2);
+ for (int i = 0; i < iLen; i++) {
+ int intTmp = arrB[i];
+ // 把负数转换为正数
+ while (intTmp < 0) {
+ intTmp = intTmp + 256;
+ }
+ // 小于0F的数需要在前面补0
+ if (intTmp < 16) {
+ sb.append("0");
+ }
+ sb.append(Integer.toString(intTmp, 16));
+ }
+ return sb.toString();
+ }
+
+ /**
+ * 将表示16进制值的字符串转换为byte数组,和public static String byteArr2HexStr(byte[] arrB)
+ * 互为可逆的转换过程
+ * @param strIn 需要转换的字符串
+ * @return 转换后的byte数组
+ */
+ public static byte[] hexStr2ByteArr(String strIn) throws Exception {
+ byte[] arrB = strIn.getBytes();
+ int iLen = arrB.length;
+ // 两个字符表示一个字节,所以字节数组长度是字符串长度除以2
+ byte[] arrOut = new byte[iLen / 2];
+ for (int i = 0; i < iLen; i = i + 2) {
+ String strTmp = new String(arrB, i, 2);
+ arrOut[i / 2] = (byte) Integer.parseInt(strTmp, 16);
+ }
+ return arrOut;
+ }
+
+ /**
+ *
+ * 加密字节数组
+ * @param arrB 需加密的字节数组
+ * @return 加密后的字节数组
+ */
+ public byte[] encrypt(byte[] arrB) throws Exception {
+ return encryptCipher.doFinal(arrB);
+ }
+
+ /**
+ * 加密字符串
+ * @param strIn 需加密的字符串
+ * @return 加密后的字符串
+ */
+ public String encrypt(String strIn) throws Exception {
+ return byteArr2HexStr(encrypt(strIn.getBytes()));
+ }
+
+ /**
+ * 解密字节数组
+ * @param arrB 需解密的字节数组
+ * @return 解密后的字节数组
+ */
+ public byte[] decrypt(byte[] arrB) throws Exception {
+ return decryptCipher.doFinal(arrB);
+ }
+
+ /**
+ * 解密字符串
+ * @param strIn 需解密的字符串
+ * @return 解密后的字符串
+ */
+ public String decrypt(String strIn) throws Exception {
+ return new String(decrypt(hexStr2ByteArr(strIn)));
+ }
+
+ /**
+ * 从指定字符串生成密钥,密钥所需的字节数组长度为8位 不足8位时后面补0,超出8位只取前8位
+ * @param arrBTmp 构成该字符串的字节数组
+ * @return 生成的密钥
+ */
+ private Key getKey(byte[] arrBTmp) throws Exception {
+ // 创建一个空的8位字节数组(默认值为0)
+ byte[] arrB = new byte[8];
+ // 将原始字节数组转换为8位
+ for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {
+ arrB[i] = arrBTmp[i];
+ }
+ // 生成密钥
+ Key key = new javax.crypto.spec.SecretKeySpec(arrB, "DES");
+ return key;
+ }
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceApiAuthVo.java b/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceApiAuthVo.java
index bd53d79..fbd3372 100644
--- a/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceApiAuthVo.java
+++ b/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceApiAuthVo.java
@@ -42,6 +42,8 @@ public class DataServiceApiAuthVo implements Serializable {
@Schema(description = "所属项目id")
private Long projectId;
+ private Long authId;
+
@Schema(description = "版本号")
private Integer version;
diff --git a/srt-cloud-data-service/src/main/resources/mapper/ApiConfigDao.xml b/srt-cloud-data-service/src/main/resources/mapper/ApiConfigDao.xml
index c76f98e..5b1c065 100644
--- a/srt-cloud-data-service/src/main/resources/mapper/ApiConfigDao.xml
+++ b/srt-cloud-data-service/src/main/resources/mapper/ApiConfigDao.xml
@@ -2,6 +2,9 @@
+
+ update data_service_api_config set auth_id=#{apiId} where id=#{id}
+
diff --git a/srt-cloud-data-service/src/main/resources/mapper/DataServiceAppMapper.xml b/srt-cloud-data-service/src/main/resources/mapper/DataServiceAppMapper.xml
index 6271392..9a6fdde 100644
--- a/srt-cloud-data-service/src/main/resources/mapper/DataServiceAppMapper.xml
+++ b/srt-cloud-data-service/src/main/resources/mapper/DataServiceAppMapper.xml
@@ -5,7 +5,7 @@
-
- SELECT dsa.* FROM data_service_app dsa INNER JOIN data_market_resource_apply dmra ON dsa.id=dmra.app_id WHERE dmra.id=#{applyId}
-
+
+
+
diff --git a/srt-cloud-framework/srt-cloud-flink/build/app/flink-app-1.14-2.0.0-jar-with-dependencies.jar b/srt-cloud-framework/srt-cloud-flink/build/app/flink-app-1.14-2.0.0-jar-with-dependencies.jar
index e9979b7..fc67dac 100644
Binary files a/srt-cloud-framework/srt-cloud-flink/build/app/flink-app-1.14-2.0.0-jar-with-dependencies.jar and b/srt-cloud-framework/srt-cloud-flink/build/app/flink-app-1.14-2.0.0-jar-with-dependencies.jar differ
diff --git a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-catalog-mysql-1.14-2.0.0.jar b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-catalog-mysql-1.14-2.0.0.jar
index bc7b2a0..9513186 100644
Binary files a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-catalog-mysql-1.14-2.0.0.jar and b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-catalog-mysql-1.14-2.0.0.jar differ
diff --git a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar
index 724cdbd..843a7df 100644
Binary files a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar and b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar differ
diff --git a/srt-cloud-gateway/src/main/resources/bootstrap.yml b/srt-cloud-gateway/src/main/resources/bootstrap.yml
index 79d8278..c7daaeb 100644
--- a/srt-cloud-gateway/src/main/resources/bootstrap.yml
+++ b/srt-cloud-gateway/src/main/resources/bootstrap.yml
@@ -84,18 +84,12 @@ spring:
- Path=/srt-cloud-datax-service/** # Adjust the path as needed
filters:
- StripPrefix=1
- - id: srt-data-development # New Gateway
- uri: lb://srt-data-development # Update with the correct URI for your new service
- predicates:
- - Path=/data-development/** # Adjust the path as needed
- filters:
- - StripPrefix=1
nacos:
discovery:
server-addr: 101.34.77.101:8848
# 命名空间,默认:public
- namespace: 7e34f104-f333-4828-b36a-02146e521c9a
+ namespace: 9de208a6-cb30-41ae-a880-78196c99c050
service: ${spring.application.name}
group: srt2.0
diff --git a/srt-cloud-module/srt-cloud-quartz/pom.xml b/srt-cloud-module/srt-cloud-quartz/pom.xml
index 63bf9b5..06c139a 100644
--- a/srt-cloud-module/srt-cloud-quartz/pom.xml
+++ b/srt-cloud-module/srt-cloud-quartz/pom.xml
@@ -9,11 +9,6 @@
jar
-
- net.srt
- srt-cloud-api
- 2.0.0
-
net.srt
diff --git a/srt-data-development/src/main/java/net/srt/DevelopmentApp.java b/srt-data-development/src/main/java/net/srt/DevelopmentApp.java
index cd75f8b..32aa03f 100644
--- a/srt-data-development/src/main/java/net/srt/DevelopmentApp.java
+++ b/srt-data-development/src/main/java/net/srt/DevelopmentApp.java
@@ -9,6 +9,7 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
import java.util.List;
@@ -16,6 +17,8 @@ import static com.alibaba.druid.sql.SQLUtils.toSQLString;
@EnableDiscoveryClient
@SpringBootApplication
+@EnableFeignClients
+
@MapperScan("net.srt.Fink.mapper")
@MapperScan("net.srt.Hadoop.mapper")
@MapperScan("net.srt.disposition.mapper")
diff --git a/srt-data-development/src/main/java/net/srt/disposition/controller/DataCheckSqlController.java b/srt-data-development/src/main/java/net/srt/disposition/controller/DataCheckSqlController.java
new file mode 100644
index 0000000..d3c33ea
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/controller/DataCheckSqlController.java
@@ -0,0 +1,24 @@
+package net.srt.disposition.controller;
+
+import lombok.AllArgsConstructor;
+import net.srt.disposition.dto.DataCheckSqlDto;
+import net.srt.disposition.entity.DataCheckSqlEntity;
+import net.srt.disposition.service.DataCheckSqlService;
+import net.srt.disposition.vo.DataCheckSqlVo;
+import net.srt.framework.common.utils.Result;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/task")
+public class DataCheckSqlController {
+
+ private DataCheckSqlService dataCheckSqlService;
+
+ @PostMapping("/explain-sql")
+ public Result explainSql(DataCheckSqlDto dataCheckSqlDto) {
+ return Result.ok(dataCheckSqlService.explainSql(dataCheckSqlDto));
+ }
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/controller/DataProductionTreeController.java b/srt-data-development/src/main/java/net/srt/disposition/controller/DataProductionTreeController.java
index 4d40d05..b29b296 100644
--- a/srt-data-development/src/main/java/net/srt/disposition/controller/DataProductionTreeController.java
+++ b/srt-data-development/src/main/java/net/srt/disposition/controller/DataProductionTreeController.java
@@ -20,13 +20,13 @@ public class DataProductionTreeController {
private DataProductionService dataProductionService;
@GetMapping
- public Result> listResult(){
+ public Result> listResult(@RequestParam String t){
List dispositionVos=dataProductionService.dataTreeList();
return Result.ok(dispositionVos);
}
@PostMapping
- public Result add(@RequestBody DataProductionTreeDto dataProductionTreeDto){
+ public Result add(@RequestBody DataProductionTreeDto dataProductionTreeDto){
dataProductionService.add(dataProductionTreeDto);
return Result.ok();
}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/controller/DataSaveController.java b/srt-data-development/src/main/java/net/srt/disposition/controller/DataSaveController.java
new file mode 100644
index 0000000..8934867
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/controller/DataSaveController.java
@@ -0,0 +1,22 @@
+package net.srt.disposition.controller;
+
+import lombok.AllArgsConstructor;
+import net.srt.disposition.dto.DataSqlSaveDto;
+import net.srt.disposition.service.DataSaveService;
+import net.srt.framework.common.utils.Result;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/task")
+public class DataSaveController {
+ private DataSaveService dataSaveService;
+ @PostMapping
+ public Result addSave(@RequestBody DataSqlSaveDto dataSqlSaveDto){
+ dataSaveService.dataSaver(dataSqlSaveDto);
+ return Result.ok();
+ }
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/convert/DataSqlSaveConvert.java b/srt-data-development/src/main/java/net/srt/disposition/convert/DataSqlSaveConvert.java
new file mode 100644
index 0000000..74481d1
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/convert/DataSqlSaveConvert.java
@@ -0,0 +1,14 @@
+package net.srt.disposition.convert;
+
+import net.srt.disposition.dto.DataSqlSaveDto;
+import net.srt.disposition.dto.DispositionDto;
+import net.srt.disposition.entity.DataSqlSaveEntity;
+import net.srt.disposition.entity.DispositionEntity;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+@Mapper
+public interface DataSqlSaveConvert {
+ DataSqlSaveConvert INSTANCE = Mappers.getMapper(DataSqlSaveConvert.class);
+ DataSqlSaveEntity convert(DataSqlSaveDto vo);
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/dto/DataCheckSqlDto.java b/srt-data-development/src/main/java/net/srt/disposition/dto/DataCheckSqlDto.java
new file mode 100644
index 0000000..0de6ddc
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/dto/DataCheckSqlDto.java
@@ -0,0 +1,56 @@
+package net.srt.disposition.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class DataCheckSqlDto {
+ private Long alertGroupId;
+ private String alias;
+ private boolean batchModel;
+ private Long catalogueId;
+ private Integer checkPoint;
+ private String clusterConfigurationId;
+ private Long clusterId;
+ private String configJson;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ private Integer databaseId;
+ private Integer deleted;
+ private Integer dialect;
+ private boolean enabled;
+ private Integer envId;
+ private boolean fragment;
+ private Integer id;
+ private Integer jarId;
+ private String jobName;
+ private Integer maxRowNum;
+ private String name;
+ private String note;
+ private Integer openTrans;
+ private Integer parallelism;
+ private boolean processEnd;
+ private Integer projectId;
+ private Integer pvdataNum;
+ private String savePointPath;
+ private String savePointStrategy;
+ private Integer sqlDbType;
+ private String statement;
+ private boolean statementSet;
+ private Integer step;
+ private String type;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date updateTime;
+ private Integer updater;
+ private boolean useAutoCancel;
+ private boolean useChangeLog;
+ private boolean usrResult;
+ private Integer version;
+ private Integer versionId;
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/dto/DataSqlSaveDto.java b/srt-data-development/src/main/java/net/srt/disposition/dto/DataSqlSaveDto.java
new file mode 100644
index 0000000..5eb25f4
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/dto/DataSqlSaveDto.java
@@ -0,0 +1,23 @@
+package net.srt.disposition.dto;
+
+import lombok.Data;
+import net.srt.disposition.entity.DataDatabaseDevEntity;
+
+import java.util.List;
+
+@Data
+public class DataSqlSaveDto {
+ private String alias;
+ private Integer catalogueId;
+ private Integer databaseId;
+ private List databaseList;
+ private Integer dialect;
+ private Integer id;
+ private String name;
+ private Integer openTrans;
+ private boolean processEnd;
+ private Integer pvdataNum;
+ private Integer sqlDbType;
+ private String statement;
+
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/entity/DataCheckSqlEntity.java b/srt-data-development/src/main/java/net/srt/disposition/entity/DataCheckSqlEntity.java
new file mode 100644
index 0000000..c049b8d
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/entity/DataCheckSqlEntity.java
@@ -0,0 +1,26 @@
+package net.srt.disposition.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@TableName("data_check_sql")
+public class DataCheckSqlEntity {
+ @TableId("id")
+ private Integer id;
+ private String type;
+ private String sql;
+ private String parse;
+ private String explain;
+ private String error;
+ private String parseTrue;
+ private String explainTrue;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date explainTime;
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/entity/DataDatabaseDevEntity.java b/srt-data-development/src/main/java/net/srt/disposition/entity/DataDatabaseDevEntity.java
new file mode 100644
index 0000000..7596cbf
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/entity/DataDatabaseDevEntity.java
@@ -0,0 +1,40 @@
+package net.srt.disposition.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.mybatis.entity.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class DataDatabaseDevEntity {
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ private String creator;
+ private String databaseDocument;
+ private String databaseIndex;
+ private String databaseIp;
+ private String databaseKafka;
+ private String databaseName;
+ private String databasePort;
+ private Integer databaseType;
+ private Integer deleted;
+ private Integer id;
+ private String isJdbc;
+ private String name;
+ private String noReReason;
+ private String password;
+ private Integer projectId;
+ private Integer status;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date updateTime;
+ private String updater;
+ private String userName;
+ private Integer version;
+
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/entity/DataSqlSaveEntity.java b/srt-data-development/src/main/java/net/srt/disposition/entity/DataSqlSaveEntity.java
new file mode 100644
index 0000000..097666f
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/entity/DataSqlSaveEntity.java
@@ -0,0 +1,61 @@
+package net.srt.disposition.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import net.srt.framework.mybatis.entity.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@TableName("data_sql_save")
+public class DataSqlSaveEntity {
+ @TableId("id")
+ private Long id;
+ private Long catalogueId;
+ private String name;
+ private Long projectId;
+ private String alias;
+ private Integer dialect;
+ private Integer type;
+ private Integer checkPoint;
+ private Integer savePointStrategy;
+ private String savePointPath;
+ private Integer parallelism;
+ private boolean fragment;
+ private boolean statementSet;
+ private boolean batchModel;
+ private Long clusterId;
+ private Long clusterConfigurationId;
+ private Integer sqlDbType;
+ private Long databaseId;
+ private Integer openTrans;
+ private Long jarId;
+ private Long envId;
+ private Long alertGroupId;
+ private String configJson;
+ private String note;
+ private Integer step;
+ private Long jobInstanceId;
+ private boolean useAutoCancel;
+ private boolean useChangeLog;
+ private boolean useResult;
+ private Integer pvdataNum;
+ private boolean enabled;
+ private Long versionId;
+ private Integer version;
+ private Integer deleted;
+ private Long creator;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ private Long updater;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date updateTime;
+ private String statement;
+
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/mapper/DataCheckSqlMapper.java b/srt-data-development/src/main/java/net/srt/disposition/mapper/DataCheckSqlMapper.java
new file mode 100644
index 0000000..d7b04e1
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/mapper/DataCheckSqlMapper.java
@@ -0,0 +1,9 @@
+package net.srt.disposition.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import net.srt.disposition.entity.DataCheckSqlEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DataCheckSqlMapper extends BaseMapper {
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/mapper/DataProductionMapper.java b/srt-data-development/src/main/java/net/srt/disposition/mapper/DataProductionMapper.java
index 15c512c..0b1c1b8 100644
--- a/srt-data-development/src/main/java/net/srt/disposition/mapper/DataProductionMapper.java
+++ b/srt-data-development/src/main/java/net/srt/disposition/mapper/DataProductionMapper.java
@@ -2,6 +2,8 @@ package net.srt.disposition.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.srt.disposition.entity.DataProductionTreeEntity;
+import org.apache.ibatis.annotations.Mapper;
+@Mapper
public interface DataProductionMapper extends BaseMapper {
}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/mapper/DataSaveServiceMapper.java b/srt-data-development/src/main/java/net/srt/disposition/mapper/DataSaveServiceMapper.java
new file mode 100644
index 0000000..e201ad0
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/mapper/DataSaveServiceMapper.java
@@ -0,0 +1,9 @@
+package net.srt.disposition.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import net.srt.disposition.entity.DataSqlSaveEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DataSaveServiceMapper extends BaseMapper {
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/mapper/DispositionMapper.java b/srt-data-development/src/main/java/net/srt/disposition/mapper/DispositionMapper.java
index cc3cb28..d7cf138 100644
--- a/srt-data-development/src/main/java/net/srt/disposition/mapper/DispositionMapper.java
+++ b/srt-data-development/src/main/java/net/srt/disposition/mapper/DispositionMapper.java
@@ -2,6 +2,8 @@ package net.srt.disposition.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.srt.disposition.entity.DispositionEntity;
+import org.apache.ibatis.annotations.Mapper;
+@Mapper
public interface DispositionMapper extends BaseMapper {
}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/DataCheckSqlService.java b/srt-data-development/src/main/java/net/srt/disposition/service/DataCheckSqlService.java
new file mode 100644
index 0000000..fb08166
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/service/DataCheckSqlService.java
@@ -0,0 +1,10 @@
+package net.srt.disposition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import net.srt.disposition.dto.DataCheckSqlDto;
+import net.srt.disposition.entity.DataCheckSqlEntity;
+import net.srt.disposition.vo.DataCheckSqlVo;
+
+public interface DataCheckSqlService extends IService {
+ DataCheckSqlVo explainSql(DataCheckSqlDto dataCheckSqlDto);
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/DataSaveService.java b/srt-data-development/src/main/java/net/srt/disposition/service/DataSaveService.java
new file mode 100644
index 0000000..e58c953
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/service/DataSaveService.java
@@ -0,0 +1,10 @@
+package net.srt.disposition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import net.srt.disposition.dto.DataSqlSaveDto;
+import net.srt.disposition.entity.DataSqlSaveEntity;
+
+public interface DataSaveService extends IService {
+ void dataSaver(DataSqlSaveDto dataSqlSaveDto);
+
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataCheckSqlServiceImpl.java b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataCheckSqlServiceImpl.java
new file mode 100644
index 0000000..7e7a5c1
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataCheckSqlServiceImpl.java
@@ -0,0 +1,48 @@
+package net.srt.disposition.service.impl;
+
+import com.alibaba.druid.sql.ast.SQLStatement;
+import com.alibaba.druid.sql.parser.SQLParserUtils;
+import com.alibaba.druid.sql.parser.SQLStatementParser;
+import jdk.nashorn.internal.runtime.ParserException;
+import lombok.AllArgsConstructor;
+import net.srt.disposition.dto.DataCheckSqlDto;
+import net.srt.disposition.entity.DataCheckSqlEntity;
+import net.srt.disposition.mapper.DataCheckSqlMapper;
+import net.srt.disposition.service.DataCheckSqlService;
+import net.srt.disposition.vo.DataCheckSqlVo;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+import static com.alibaba.druid.sql.SQLUtils.toSQLString;
+
+@Service
+@AllArgsConstructor
+public class DataCheckSqlServiceImpl extends BaseServiceImpl implements DataCheckSqlService {
+ @Override
+ public DataCheckSqlVo explainSql(DataCheckSqlDto dataCheckSqlDto) {
+ DataCheckSqlVo dataCheckSqlVo = new DataCheckSqlVo();
+ try {
+ SQLStatementParser mysql = SQLParserUtils.createSQLStatementParser(dataCheckSqlDto.getStatement(), "mysql");
+ SQLStatement sqlStatement = mysql.parseStatement();
+ if (sqlStatement instanceof Select) {
+ dataCheckSqlVo.setType("SQLSelectStatement");
+ }
+ dataCheckSqlVo.setSql(dataCheckSqlDto.getStatement());
+ dataCheckSqlVo.setParseTrue(true);
+ dataCheckSqlVo.setExplainTrue(true);
+ dataCheckSqlVo.setExplainTime(new Date());
+ } catch (ParserException e) {
+ System.out.println("SQL转换中发生了错误:"+e.getMessage());
+ dataCheckSqlVo.setSql(dataCheckSqlDto.getStatement());
+ dataCheckSqlVo.setError(e.getMessage());
+ dataCheckSqlVo.setParseTrue(false);
+ dataCheckSqlVo.setExplainTrue(false);
+ dataCheckSqlVo.setExplainTime(new Date());
+ }
+ return dataCheckSqlVo;
+ }
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataSaveServiceImpl.java b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataSaveServiceImpl.java
new file mode 100644
index 0000000..e0afb74
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataSaveServiceImpl.java
@@ -0,0 +1,24 @@
+package net.srt.disposition.service.impl;
+
+import lombok.AllArgsConstructor;
+import net.srt.disposition.convert.DataSqlSaveConvert;
+import net.srt.disposition.dto.DataSqlSaveDto;
+import net.srt.disposition.entity.DataSqlSaveEntity;
+import net.srt.disposition.mapper.DataSaveServiceMapper;
+import net.srt.disposition.service.DataSaveService;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+@Service
+@AllArgsConstructor
+public class DataSaveServiceImpl extends BaseServiceImpl implements DataSaveService {
+
+ @Override
+ public void dataSaver(DataSqlSaveDto dataSqlSaveDto) {
+ DataSqlSaveEntity convert = DataSqlSaveConvert.INSTANCE.convert(dataSqlSaveDto);
+ convert.setCreateTime(new Date());
+ baseMapper.insert(convert);
+ }
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/vo/DataCheckSqlVo.java b/srt-data-development/src/main/java/net/srt/disposition/vo/DataCheckSqlVo.java
new file mode 100644
index 0000000..e55ca87
--- /dev/null
+++ b/srt-data-development/src/main/java/net/srt/disposition/vo/DataCheckSqlVo.java
@@ -0,0 +1,23 @@
+package net.srt.disposition.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class DataCheckSqlVo {
+ private Integer index;
+ private String type;
+ private String sql;
+ private String parse;
+ private String explain;
+ private String error;
+ private boolean parseTrue;
+ private boolean explainTrue;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date explainTime;
+}
diff --git a/srt-data-development/src/main/resources/auth.yml b/srt-data-development/src/main/resources/auth.yml
index 0e6a006..2d05014 100644
--- a/srt-data-development/src/main/resources/auth.yml
+++ b/srt-data-development/src/main/resources/auth.yml
@@ -1,7 +1,3 @@
auth:
ignore_urls:
- - /auth/captcha
- - /auth/login
- - /auth/send/code
- - /auth/mobile
- - /upload/**
\ No newline at end of file
+ - /data-development/**
diff --git a/srt-data-development/src/main/resources/bootstrap.yml b/srt-data-development/src/main/resources/bootstrap.yml
index d03d7f4..65f34da 100644
--- a/srt-data-development/src/main/resources/bootstrap.yml
+++ b/srt-data-development/src/main/resources/bootstrap.yml
@@ -2,11 +2,22 @@ server:
port: 8094
spring:
+ datasource:
+ druid:
+ stat-view-servlet:
+ enabled: true
+ loginUsername: bwie
+ loginPassword: 123456
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://101.34.77.101:3306/12.5yk?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ username: root
+ password: cbx@123
+ type: com.alibaba.druid.pool.DruidDataSource
mvc:
servlet:
load-on-startup: 1
application:
- name: srt-data-development
+ name: srt-cloud-data-development
profiles:
active: dev
cloud:
@@ -14,9 +25,9 @@ spring:
discovery:
server-addr: 101.34.77.101:8848
# 命名空间,默认:public
- namespace: c5d32e76-b83c-4254-8176-1c6a2cee8e3b
+ namespace: 9de208a6-cb30-41ae-a880-78196c99c050
service: ${spring.application.name}
- group: srt2.1
+ group: srt2.0
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
@@ -25,19 +36,4 @@ spring:
extension-configs:
- data-id: datasource.yaml
refresh: true
- servlet:
- multipart:
- max-request-size: 100MB
- max-file-size: 1024MB
-storage:
- enabled: true
- config:
- # 存储类型:local、aliyun
- type: local
- # 访问域名
- domain: http://localhost:8082/sys
- # 配置访问前缀
- prefix:
- local:
- # 本地上传路径
- path: D://upload
+
diff --git a/srt-data-development/src/test/java/com/text/dome/a.java b/srt-data-development/src/test/java/com/text/dome/a.java
new file mode 100644
index 0000000..96e796c
--- /dev/null
+++ b/srt-data-development/src/test/java/com/text/dome/a.java
@@ -0,0 +1,32 @@
+package com.text.dome;
+
+
+import com.alibaba.druid.sql.ast.SQLObject;
+import com.alibaba.druid.sql.ast.SQLStatement;
+import com.alibaba.druid.sql.parser.SQLParserUtils;
+import com.alibaba.druid.sql.parser.SQLStatementParser;
+import jdk.nashorn.internal.runtime.ParserException;
+
+import java.util.List;
+
+import static com.alibaba.druid.sql.SQLUtils.toSQLString;
+
+public class a {
+ public static void main(String[] args) {
+ String str = "create table `tb_user` (\n" +
+ " `id` varchar(22) not null COMMENT '主键id',\n" +
+ " `usercode` varchar(11) DEFAULT null COMMENT '手机号',\n" +
+ " `name` varchar(10) DEFAULT nu";
+ System.out.println("格式化之前:");
+ System.out.println(str);
+ System.out.println("格式化之后:");
+ try {
+ SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(str, "mysql");
+ List statementList = parser.parseStatementList();
+ str = toSQLString((SQLObject) statementList, "mysql");
+ System.out.println(str);
+ } catch (ParserException e) {
+ System.out.println("SQL转换中发生了错误:"+e.getMessage());
+ }
+ }
+}