diff --git a/cloud-task-common/pom.xml b/cloud-task-common/pom.xml index 6f10d0c..cf1c493 100644 --- a/cloud-task-common/pom.xml +++ b/cloud-task-common/pom.xml @@ -21,5 +21,9 @@ com.muyu cloud-common-core + + com.muyu + cloud-datasources-common + diff --git a/cloud-task-common/src/main/java/com/muyu/common/domian/NodeJoint.java b/cloud-task-common/src/main/java/com/muyu/common/domian/NodeJoint.java index f531cdd..600c3c6 100644 --- a/cloud-task-common/src/main/java/com/muyu/common/domian/NodeJoint.java +++ b/cloud-task-common/src/main/java/com/muyu/common/domian/NodeJoint.java @@ -25,7 +25,7 @@ public class NodeJoint { */ private Long taskId; /** - * 任务id + * 节点id */ private Long nodeId; /** diff --git a/cloud-task-common/src/main/java/com/muyu/common/domian/TaskInput.java b/cloud-task-common/src/main/java/com/muyu/common/domian/TaskInput.java index d33657a..f015f4c 100644 --- a/cloud-task-common/src/main/java/com/muyu/common/domian/TaskInput.java +++ b/cloud-task-common/src/main/java/com/muyu/common/domian/TaskInput.java @@ -46,7 +46,7 @@ public class TaskInput extends BaseEntity { /** * 数据库id */ - private String databaseId; + private Long databaseId; /** * 表名称 diff --git a/cloud-task-common/src/main/java/com/muyu/common/domian/req/InputAddReq.java b/cloud-task-common/src/main/java/com/muyu/common/domian/req/InputAddReq.java index 0be2e89..cb7caaa 100644 --- a/cloud-task-common/src/main/java/com/muyu/common/domian/req/InputAddReq.java +++ b/cloud-task-common/src/main/java/com/muyu/common/domian/req/InputAddReq.java @@ -33,7 +33,7 @@ public class InputAddReq { /** * 数据库id */ - private String databaseId; + private Long databaseId; /** * 表名称 diff --git a/cloud-task-common/src/main/java/com/muyu/common/domian/req/TaskInputUpdReq.java b/cloud-task-common/src/main/java/com/muyu/common/domian/req/TaskInputUpdReq.java index ea3f74b..1dbd1f1 100644 --- a/cloud-task-common/src/main/java/com/muyu/common/domian/req/TaskInputUpdReq.java +++ b/cloud-task-common/src/main/java/com/muyu/common/domian/req/TaskInputUpdReq.java @@ -30,7 +30,7 @@ public class TaskInputUpdReq { /** * 数据库id */ - private String databaseId; + private Long databaseId; /** * 表名称 diff --git a/cloud-task-common/src/main/java/com/muyu/common/domian/resp/TaskInputResp.java b/cloud-task-common/src/main/java/com/muyu/common/domian/resp/TaskInputResp.java index c83c438..d3a28a3 100644 --- a/cloud-task-common/src/main/java/com/muyu/common/domian/resp/TaskInputResp.java +++ b/cloud-task-common/src/main/java/com/muyu/common/domian/resp/TaskInputResp.java @@ -35,7 +35,7 @@ public class TaskInputResp { /** * 数据库id */ - private String databaseId; + private Long databaseId; /** * 表名称 diff --git a/cloud-task-remote/pom.xml b/cloud-task-remote/pom.xml index 415ee0f..0f212b5 100644 --- a/cloud-task-remote/pom.xml +++ b/cloud-task-remote/pom.xml @@ -16,5 +16,11 @@ 17 UTF-8 + + + com.muyu + cloud-task-common + + diff --git a/cloud-task-remote/src/main/java/com/muyu/Main.java b/cloud-task-remote/src/main/java/com/muyu/Main.java deleted file mode 100644 index 95690d4..0000000 --- a/cloud-task-remote/src/main/java/com/muyu/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.muyu; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/cloud-task-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-task-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..6b6cf9f --- /dev/null +++ b/cloud-task-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.task.server.feign.Factory.DatasourceFeignFactory diff --git a/cloud-task-server/pom.xml b/cloud-task-server/pom.xml index 051506c..ac052b2 100644 --- a/cloud-task-server/pom.xml +++ b/cloud-task-server/pom.xml @@ -90,7 +90,15 @@ com.muyu cloud-common-nacos-api - + + com.muyu + cloud-task-remote + 1.0.0 + + + com.muyu + cloud-datasources-common + diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/TaskApplication.java b/cloud-task-server/src/main/java/com/muyu/task/server/TaskApplication.java index 40b7494..d1cf9be 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/TaskApplication.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/TaskApplication.java @@ -5,6 +5,7 @@ import com.muyu.common.security.annotation.EnableMyFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; + @EnableCustomConfig @EnableMyFeignClients @SpringBootApplication diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/feign/DatasourceFeign.java b/cloud-task-server/src/main/java/com/muyu/task/server/feign/DatasourceFeign.java new file mode 100644 index 0000000..7f26752 --- /dev/null +++ b/cloud-task-server/src/main/java/com/muyu/task/server/feign/DatasourceFeign.java @@ -0,0 +1,22 @@ +package com.muyu.task.server.feign; + + +import com.muyu.common.domain.DataValue; +import com.muyu.task.server.feign.Factory.DatasourceFeignFactory; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import com.muyu.common.core.domain.Result; + +import java.util.List; + +/** + * @author Administrator + */ +@EnableFeignClients +@FeignClient(contextId = "datasourceFeign", name = "cloud-etl-datasources",fallbackFactory = DatasourceFeignFactory.class ) +public interface DatasourceFeign { + @PostMapping("/dataValue/findTableValue") + public Result>> findTableValue(@RequestParam("basicId") Long basicId, @RequestParam("sql") String sql); +} diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/feign/Factory/DatasourceFeignFactory.java b/cloud-task-server/src/main/java/com/muyu/task/server/feign/Factory/DatasourceFeignFactory.java new file mode 100644 index 0000000..e9a6501 --- /dev/null +++ b/cloud-task-server/src/main/java/com/muyu/task/server/feign/Factory/DatasourceFeignFactory.java @@ -0,0 +1,22 @@ +package com.muyu.task.server.feign.Factory; + +import com.muyu.common.core.domain.Result; +import com.muyu.task.server.feign.DatasourceFeign; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +@Log4j2 +@Component +public class DatasourceFeignFactory implements FallbackFactory { + @Override + public DatasourceFeign create(Throwable e) { + return new DatasourceFeign() { + @Override + public Result findTableValue(Long basicId, String sql) { + log.info(e); + return Result.error("网络开小差......"); + } + }; + } +} diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/mapper/TaskInputMapper.java b/cloud-task-server/src/main/java/com/muyu/task/server/mapper/TaskInputMapper.java index c88e805..9586d17 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/mapper/TaskInputMapper.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/mapper/TaskInputMapper.java @@ -8,5 +8,7 @@ import org.apache.ibatis.annotations.Mapper; public interface TaskInputMapper extends BaseMapper { + TaskInput selectByNodeId(String oneNodeId); + TaskInput selectByTaskId(Long taskId); } diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInputServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInputServiceImpl.java index ee7cdcc..e4fe4fa 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInputServiceImpl.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInputServiceImpl.java @@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.domain.DataValue; import com.muyu.common.domian.NodeJoint; import com.muyu.common.domian.TaskInput; import com.muyu.common.domian.req.TaskInputListReq; +import com.muyu.task.server.feign.DatasourceFeign; import com.muyu.task.server.mapper.TaskInputMapper; import com.muyu.task.server.service.NodeJointService; import com.muyu.task.server.service.NodeTableService; @@ -17,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.util.HashSet; import java.util.List; @Service @@ -30,6 +33,10 @@ public class TaskInputServiceImpl extends ServiceImpl findList(TaskInputListReq req) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -40,30 +47,57 @@ public class TaskInputServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); - wrapper.eq("task_id",taskId); + wrapper.eq("task_id", taskId); + HashSet longs = new HashSet<>(); List list = taskInputMapper.selectList(wrapper); - if (CollectionUtils.isEmpty(list)){ + if (CollectionUtils.isEmpty(list)) { return "没有选择字段"; } - String fieName=""; + String fieName = ""; for (int i = 0; i < list.size(); i++) { - fieName+= ","+list.get(i).getTableAsFieId(); + fieName += "," + list.get(i).getTableAsFieId(); + Long databaseId = list.get(i).getDatabaseId(); + longs.add(databaseId); + } + if (longs.size() > 1) { + return "你选择的不是同一个数据库"; } - QueryWrapper jointQueryWrapper = new QueryWrapper<>(); - jointQueryWrapper.eq("task_id",taskId); + jointQueryWrapper.eq("task_id", taskId); List jointList = nodeJointService.list(jointQueryWrapper); - for (NodeJoint nodeJoint : jointList) { + String joint = ""; + if (!CollectionUtils.isEmpty(jointList)){ + for (NodeJoint nodeJoint : jointList) { + String oneNodeId = nodeJoint.getOneNodeId(); + TaskInput taskInput = taskInputMapper.selectByNodeId(oneNodeId); + String tableName = taskInput.getTableName(); + String tableAsName = taskInput.getTableAsName(); + String twoNodeId = nodeJoint.getTwoNodeId(); + TaskInput taskInputTwo = taskInputMapper.selectByNodeId(twoNodeId); + String tableNameTwo = taskInputTwo.getTableName(); + String tableAsNameTwo = taskInputTwo.getTableAsName(); + + joint += " " + tableName + " " + " " + tableAsName + " " + nodeJoint.getJoint() + " " + tableNameTwo + " " + " " + tableAsNameTwo + " " + + " on " +nodeJoint.getOneFie() +"="+nodeJoint.getTwoFie(); + + } + }else { + TaskInput taskInput = taskInputMapper.selectByTaskId(taskId); + String tableName = taskInput.getTableName(); + String tableAsName = taskInput.getTableAsName(); + joint=" "+tableName+" "+tableAsName; } - + TaskInput taskInput = taskInputMapper.selectByTaskId(taskId); + Long databaseId = taskInput.getDatabaseId(); fieName = fieName.substring(1); - // tableService.selectTableName(taskId); + String sql="select "+fieName + " form "+joint; + System.out.println("select "+fieName + " from "+joint); + Result>> tableValue = datasourceFeign.findTableValue(databaseId, sql); + System.out.println(tableValue); return null; } } diff --git a/cloud-task-server/src/main/resources/mapper/TaskInfoMapper.xml b/cloud-task-server/src/main/resources/mapper/TaskInfoMapper.xml deleted file mode 100644 index 992bf4b..0000000 --- a/cloud-task-server/src/main/resources/mapper/TaskInfoMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/cloud-task-server/src/main/resources/mapper/TaskInputMapper.xml b/cloud-task-server/src/main/resources/mapper/TaskInputMapper.xml new file mode 100644 index 0000000..e866640 --- /dev/null +++ b/cloud-task-server/src/main/resources/mapper/TaskInputMapper.xml @@ -0,0 +1,17 @@ + + + + + + +