From 62b292f3023454af3cbe08a463f229bec443faaf Mon Sep 17 00:00:00 2001 From: huzekang <1040080742@qq.com> Date: Mon, 20 May 2019 11:39:19 +0800 Subject: [PATCH] =?UTF-8?q?add:=201.=E5=A2=9E=E5=8A=A0=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E8=A1=A8=E5=92=8C=E4=BD=9C=E4=B8=9A=E8=A1=A8=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=20change:=201.=20=E8=B0=83=E6=95=B4=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=96=87=E4=BB=B6=E7=9A=84=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/alibaba/datax/core/Engine.java | 4 +- datax-web/db/datax-web.sql | 19 ++++ .../controller/DataxPluginController.java | 95 ++++++++++++++++++ .../controller/JobConfigController.java | 96 +++++++++++++++++++ .../wugui/dataxweb/dao/DataxPluginDao.java | 14 +++ .../wugui/dataxweb/entity/DataxPlugin.java | 75 +++++++++++++++ .../com/wugui/dataxweb/entity/JobConfig.java | 2 + .../dataxweb/service/DataxPluginService.java | 14 +++ .../dataxweb/service/JobConfigService.java | 16 ++-- .../service/impl/DataxPluginServiceImpl.java | 18 ++++ .../service/impl/JobConfigServiceImpl.java | 11 +++ 11 files changed, 356 insertions(+), 8 deletions(-) create mode 100644 datax-web/src/main/java/com/wugui/dataxweb/controller/DataxPluginController.java create mode 100644 datax-web/src/main/java/com/wugui/dataxweb/controller/JobConfigController.java create mode 100644 datax-web/src/main/java/com/wugui/dataxweb/dao/DataxPluginDao.java create mode 100644 datax-web/src/main/java/com/wugui/dataxweb/entity/DataxPlugin.java create mode 100644 datax-web/src/main/java/com/wugui/dataxweb/service/DataxPluginService.java create mode 100644 datax-web/src/main/java/com/wugui/dataxweb/service/impl/DataxPluginServiceImpl.java create mode 100644 datax-web/src/main/java/com/wugui/dataxweb/service/impl/JobConfigServiceImpl.java diff --git a/core/src/main/java/com/alibaba/datax/core/Engine.java b/core/src/main/java/com/alibaba/datax/core/Engine.java index f6d8d24f..9ffed620 100755 --- a/core/src/main/java/com/alibaba/datax/core/Engine.java +++ b/core/src/main/java/com/alibaba/datax/core/Engine.java @@ -254,7 +254,7 @@ public class Engine { // todo 都是用同一个文件,是否需要考虑线程安全问题 // 需要做成异步的,否则前端会一直loading等待完成作业 public static void startJobByJsonStr(String jobJson) { - String tmpFilePath = "jobTmp.conf-"+ System.currentTimeMillis(); + final String tmpFilePath = "jobTmp-"+System.currentTimeMillis()+".conf"; // 根据json写入到临时本地文件 PrintWriter writer = null; try { @@ -287,7 +287,7 @@ public class Engine { } //删除临时文件 - FileUtil.del(new File("jobTmp.conf")); + FileUtil.del(new File(tmpFilePath)); } diff --git a/datax-web/db/datax-web.sql b/datax-web/db/datax-web.sql index c257836b..4c0ffffe 100644 --- a/datax-web/db/datax-web.sql +++ b/datax-web/db/datax-web.sql @@ -40,3 +40,22 @@ INSERT INTO `datax_plugin` VALUES (4, 'writer', 'mysqlwriter', NULL, 'myysql写' INSERT INTO `datax_plugin` VALUES (5, 'reader', 'oraclereader', NULL, 'oracle读取'); SET FOREIGN_KEY_CHECKS = 1; + + +-- ---------------------------- +-- Table structure for datax_job_config +-- ---------------------------- +create table job_config +( + id int auto_increment + primary key, + user_id int null, + config varchar(5000) null, + create_date timestamp null , + create_by int null, + update_by int null, + update_date timestamp null, + status int(1) default 1 null +)comment 'datax插件信息'; + + diff --git a/datax-web/src/main/java/com/wugui/dataxweb/controller/DataxPluginController.java b/datax-web/src/main/java/com/wugui/dataxweb/controller/DataxPluginController.java new file mode 100644 index 00000000..e85ef486 --- /dev/null +++ b/datax-web/src/main/java/com/wugui/dataxweb/controller/DataxPluginController.java @@ -0,0 +1,95 @@ +package com.wugui.dataxweb.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.api.ApiController; +import com.baomidou.mybatisplus.extension.api.R; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wugui.dataxweb.entity.DataxPlugin; +import com.wugui.dataxweb.service.DataxPluginService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * datax插件信息表控制层 + * @author huzekang@gz-yibo.com + * @since 2019-05-20 + * @version v1.0 + */ +@RestController +@RequestMapping("dataxPlugin") +@Api(tags = "datax插件信息表控制层") +public class DataxPluginController extends ApiController { + /** + * 服务对象 + */ + @Autowired + private DataxPluginService dataxPluginService; + + /** + * 分页查询所有数据 + * + * @param page 分页对象 + * @param dataxPlugin 查询实体 + * @return 所有数据 + */ + @GetMapping + @ApiOperation("分页查询所有数据") + public R> selectAll(Page page, DataxPlugin dataxPlugin) { + return success(this.dataxPluginService.page(page, new QueryWrapper<>(dataxPlugin))); + } + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @ApiOperation("通过主键查询单条数据") + @GetMapping("{id}") + public R selectOne(@PathVariable Serializable id) { + return success(this.dataxPluginService.getById(id)); + } + + /** + * 新增数据 + * + * @param dataxPlugin 实体对象 + * @return 新增结果 + */ + @ApiOperation("新增数据") + @PostMapping + public R insert(@RequestBody DataxPlugin dataxPlugin) { + return success(this.dataxPluginService.save(dataxPlugin)); + } + + /** + * 修改数据 + * + * @param dataxPlugin 实体对象 + * @return 修改结果 + */ + @PutMapping + @ApiOperation("修改数据") + public R update(@RequestBody DataxPlugin dataxPlugin) { + return success(this.dataxPluginService.updateById(dataxPlugin)); + } + + /** + * 删除数据 + * + * @param idList 主键结合 + * @return 删除结果 + */ + @DeleteMapping + @ApiOperation("删除数据") + public R delete(@RequestParam("idList") List idList) { + return success(this.dataxPluginService.removeByIds(idList)); + } +} \ No newline at end of file diff --git a/datax-web/src/main/java/com/wugui/dataxweb/controller/JobConfigController.java b/datax-web/src/main/java/com/wugui/dataxweb/controller/JobConfigController.java new file mode 100644 index 00000000..8e080b82 --- /dev/null +++ b/datax-web/src/main/java/com/wugui/dataxweb/controller/JobConfigController.java @@ -0,0 +1,96 @@ +package com.wugui.dataxweb.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.api.ApiController; +import com.baomidou.mybatisplus.extension.api.R; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wugui.dataxweb.entity.JobConfig; +import com.wugui.dataxweb.service.JobConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + + + +/** + * 作业配置表控制层 + * @author huzekang@gz-yibo.com + * @since 2019-05-20 + * @version v1.0 + */ +@RestController +@RequestMapping("jobConfig") +@Api(tags = "作业配置表控制层") +public class JobConfigController extends ApiController { + /** + * 服务对象 + */ + @Autowired + private JobConfigService jobConfigServiceImpl; + + /** + * 分页查询所有数据 + * + * @param page 分页对象 + * @param jobConfig 查询实体 + * @return 所有数据 + */ + @GetMapping + @ApiOperation("分页查询所有数据") + public R selectAll(Page page, JobConfig jobConfig) { + return success(this.jobConfigServiceImpl.page(page, new QueryWrapper<>(jobConfig))); + } + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @ApiOperation("通过主键查询单条数据") + @GetMapping("{id}") + public R selectOne(@PathVariable Serializable id) { + return success(this.jobConfigServiceImpl.getById(id)); + } + + /** + * 新增数据 + * + * @param jobConfig 实体对象 + * @return 新增结果 + */ + @ApiOperation("新增数据") + @PostMapping + public R insert(@RequestBody JobConfig jobConfig) { + return success(this.jobConfigServiceImpl.save(jobConfig)); + } + + /** + * 修改数据 + * + * @param jobConfig 实体对象 + * @return 修改结果 + */ + @ApiOperation("修改数据") + @PutMapping + public R update(@RequestBody JobConfig jobConfig) { + return success(this.jobConfigServiceImpl.updateById(jobConfig)); + } + + /** + * 删除数据 + * + * @param idList 主键结合 + * @return 删除结果 + */ + @ApiOperation("删除数据") + @DeleteMapping + public R delete(@RequestParam("idList") List idList) { + return success(this.jobConfigServiceImpl.removeByIds(idList)); + } +} \ No newline at end of file diff --git a/datax-web/src/main/java/com/wugui/dataxweb/dao/DataxPluginDao.java b/datax-web/src/main/java/com/wugui/dataxweb/dao/DataxPluginDao.java new file mode 100644 index 00000000..2874aed7 --- /dev/null +++ b/datax-web/src/main/java/com/wugui/dataxweb/dao/DataxPluginDao.java @@ -0,0 +1,14 @@ +package com.wugui.dataxweb.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.wugui.dataxweb.entity.DataxPlugin; + +/** + * datax插件信息表数据库访问层 + * @author huzekang@gz-yibo.com + * @since 2019-05-20 + * @version v1.0 + */ +public interface DataxPluginDao extends BaseMapper { + +} \ No newline at end of file diff --git a/datax-web/src/main/java/com/wugui/dataxweb/entity/DataxPlugin.java b/datax-web/src/main/java/com/wugui/dataxweb/entity/DataxPlugin.java new file mode 100644 index 00000000..e9dd50b4 --- /dev/null +++ b/datax-web/src/main/java/com/wugui/dataxweb/entity/DataxPlugin.java @@ -0,0 +1,75 @@ +package com.wugui.dataxweb.entity; + +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; + +/** + * datax插件信息表实体类 + * @author huzekang@gz-yibo.com + * @since 2019-05-20 + * @version v1.0 + */ +@SuppressWarnings("serial") +public class DataxPlugin extends Model { + + private Integer id; + //插件类型,reader writer + private String pluginType; + //插件名,用作主键 + private String pluginName; + //json模板 + private String templateJson; + //注释 + private String comments; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getPluginType() { + return pluginType; + } + + public void setPluginType(String pluginType) { + this.pluginType = pluginType; + } + + public String getPluginName() { + return pluginName; + } + + public void setPluginName(String pluginName) { + this.pluginName = pluginName; + } + + public String getTemplateJson() { + return templateJson; + } + + public void setTemplateJson(String templateJson) { + this.templateJson = templateJson; + } + + public String getComments() { + return comments; + } + + public void setComments(String comments) { + this.comments = comments; + } + + /** + * 获取主键值 + * + * @return 主键值 + */ + @Override + protected Serializable pkVal() { + return this.id; + } + } \ No newline at end of file diff --git a/datax-web/src/main/java/com/wugui/dataxweb/entity/JobConfig.java b/datax-web/src/main/java/com/wugui/dataxweb/entity/JobConfig.java index a4dc0693..cb360097 100644 --- a/datax-web/src/main/java/com/wugui/dataxweb/entity/JobConfig.java +++ b/datax-web/src/main/java/com/wugui/dataxweb/entity/JobConfig.java @@ -1,5 +1,6 @@ package com.wugui.dataxweb.entity; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -17,6 +18,7 @@ public class JobConfig { private String config; @TableField(value = "CREATE_DATE") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date createDate; @TableField(value = "CREATE_BY") diff --git a/datax-web/src/main/java/com/wugui/dataxweb/service/DataxPluginService.java b/datax-web/src/main/java/com/wugui/dataxweb/service/DataxPluginService.java new file mode 100644 index 00000000..2c34f011 --- /dev/null +++ b/datax-web/src/main/java/com/wugui/dataxweb/service/DataxPluginService.java @@ -0,0 +1,14 @@ +package com.wugui.dataxweb.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.wugui.dataxweb.entity.DataxPlugin; + +/** + * datax插件信息表服务接口 + * @author huzekang@gz-yibo.com + * @since 2019-05-20 + * @version v1.0 + */ +public interface DataxPluginService extends IService { + +} \ No newline at end of file diff --git a/datax-web/src/main/java/com/wugui/dataxweb/service/JobConfigService.java b/datax-web/src/main/java/com/wugui/dataxweb/service/JobConfigService.java index 7bd5ac14..cf1cc564 100644 --- a/datax-web/src/main/java/com/wugui/dataxweb/service/JobConfigService.java +++ b/datax-web/src/main/java/com/wugui/dataxweb/service/JobConfigService.java @@ -1,10 +1,14 @@ package com.wugui.dataxweb.service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.wugui.dataxweb.dao.JobConfigMapper; +import com.baomidou.mybatisplus.extension.service.IService; import com.wugui.dataxweb.entity.JobConfig; -import org.springframework.stereotype.Service; -@Service -public class JobConfigService extends ServiceImpl{ -} +/** + * datax插件信息表服务接口 + * @author huzekang@gz-yibo.com + * @since 2019-05-20 + * @version v1.0 + */ +public interface JobConfigService extends IService { + +} \ No newline at end of file diff --git a/datax-web/src/main/java/com/wugui/dataxweb/service/impl/DataxPluginServiceImpl.java b/datax-web/src/main/java/com/wugui/dataxweb/service/impl/DataxPluginServiceImpl.java new file mode 100644 index 00000000..5dae1fea --- /dev/null +++ b/datax-web/src/main/java/com/wugui/dataxweb/service/impl/DataxPluginServiceImpl.java @@ -0,0 +1,18 @@ +package com.wugui.dataxweb.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wugui.dataxweb.dao.DataxPluginDao; +import com.wugui.dataxweb.entity.DataxPlugin; +import com.wugui.dataxweb.service.DataxPluginService; +import org.springframework.stereotype.Service; + +/** + * datax插件信息表服务实现类 + * @author huzekang@gz-yibo.com + * @since 2019-05-20 + * @version v1.0 + */ +@Service("dataxPluginService") +public class DataxPluginServiceImpl extends ServiceImpl implements DataxPluginService { + +} \ No newline at end of file diff --git a/datax-web/src/main/java/com/wugui/dataxweb/service/impl/JobConfigServiceImpl.java b/datax-web/src/main/java/com/wugui/dataxweb/service/impl/JobConfigServiceImpl.java new file mode 100644 index 00000000..644b0759 --- /dev/null +++ b/datax-web/src/main/java/com/wugui/dataxweb/service/impl/JobConfigServiceImpl.java @@ -0,0 +1,11 @@ +package com.wugui.dataxweb.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wugui.dataxweb.dao.JobConfigMapper; +import com.wugui.dataxweb.entity.JobConfig; +import com.wugui.dataxweb.service.JobConfigService; +import org.springframework.stereotype.Service; +@Service +public class JobConfigServiceImpl extends ServiceImpl implements JobConfigService { + +}