diff --git a/srt-cloud-data-governance/pom.xml b/srt-cloud-data-governance/pom.xml
index 068eff2..bc88a35 100644
--- a/srt-cloud-data-governance/pom.xml
+++ b/srt-cloud-data-governance/pom.xml
@@ -73,6 +73,10 @@
io.minio
minio
+
+ org.quartz-scheduler
+ quartz
+
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectController.java
index c5ea661..1b59370 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectController.java
@@ -3,17 +3,18 @@ package net.srt.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
+import net.srt.convert.MetadataCollectConvert;
+import net.srt.entity.MetadataCollectEntity;
import net.srt.entity.MetadataCollectQuery;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.common.utils.Result;
import net.srt.service.MetadataCollectService;
import net.srt.vo.MetadataCollectVO;
import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.util.List;
@RestController
@RequestMapping("metadata-collect")
@@ -24,8 +25,66 @@ public class MetadataCollectController {
@GetMapping("page")
@Operation(summary = "分页")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:page')")
public Result> page(@Valid MetadataCollectQuery query){
PageResult page = metadataCollectService.page(query);
return Result.ok(page);
}
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:info')")
+ public Result get(@PathVariable("id") Long id){
+ MetadataCollectEntity entity = metadataCollectService.getById(id);
+ return Result.ok(MetadataCollectConvert.INSTANCE.convert(entity));
+ }
+
+ @PostMapping
+ @Operation(summary = "保存")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:save')")
+ public Result save(@RequestBody MetadataCollectVO vo){
+ metadataCollectService.save(vo);
+ return Result.ok();
+ }
+
+ @PutMapping
+ @Operation(summary = "修改")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:update')")
+ public Result update(@RequestBody @Valid MetadataCollectVO vo){
+ metadataCollectService.update(vo);
+ return Result.ok();
+ }
+
+ @PutMapping("/release/{id}")
+ @Operation(summary = "发布")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:release')")
+ public Result release(@PathVariable Long id){
+ metadataCollectService.release(id);
+ return Result.ok();
+ }
+
+ @PutMapping("/cancel/{id}")
+ @Operation(summary = "取消发布")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:cancel')")
+ public Result cancel(@PathVariable Long id){
+ metadataCollectService.cancel(id);
+ return Result.ok();
+ }
+
+ @PostMapping("hand-run/{id}")
+ @Operation(summary = "手动执行")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:hand-run')")
+ public Result handRun(@PathVariable Long id){
+ metadataCollectService.handRun(id);
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @Operation(summary = "删除")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:delete')")
+ public Result delete(@RequestBody List idList){
+ metadataCollectService.delete(idList);
+ return Result.ok();
+ }
+
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectService.java
index 992d16f..a3dccc5 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectService.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectService.java
@@ -6,7 +6,21 @@ import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.BaseService;
import net.srt.vo.MetadataCollectVO;
+import java.util.List;
+
public interface MetadataCollectService extends BaseService {
PageResult page(MetadataCollectQuery query);
+
+ void save(MetadataCollectVO vo);
+
+ void update(MetadataCollectVO vo);
+
+ void cancel(Long id);
+
+ void release(Long id);
+
+ void handRun(Long id);
+
+ void delete(List idList);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
index 29af401..1dddcf8 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
@@ -1,30 +1,97 @@
package net.srt.service.impl;
+import cn.hutool.cron.CronException;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.api.module.data.governance.constant.MetadataCollectType;
+import net.srt.api.module.quartz.QuartzDataGovernanceMetadataCollectApi;
import net.srt.convert.MetadataCollectConvert;
import net.srt.dao.MetadataCollectDao;
import net.srt.entity.MetadataCollectEntity;
import net.srt.entity.MetadataCollectQuery;
+import net.srt.framework.common.exception.ServerException;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
import net.srt.service.MetadataCollectService;
import net.srt.vo.MetadataCollectVO;
+import org.quartz.CronExpression;
import org.springframework.stereotype.Service;
import srt.cloud.framework.dbswitch.common.util.StringUtil;
+import java.util.Date;
+import java.util.List;
+
@Service
@AllArgsConstructor
public class MetadataCollectServiceImpl extends BaseServiceImpl implements MetadataCollectService {
+
+ private final QuartzDataGovernanceMetadataCollectApi metadataCollectApi;
+
@Override
public PageResult page(MetadataCollectQuery query) {
IPage page = baseMapper.selectPage(getPage(query), getWrapper(query));
return new PageResult<>(MetadataCollectConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
}
+ @Override
+ public void save(MetadataCollectVO vo) {
+ checkParam(vo);
+ MetadataCollectEntity entity = MetadataCollectConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ baseMapper.insert(entity);
+ }
+
+ @Override
+ public void update(MetadataCollectVO vo) {
+ checkParam(vo);
+ MetadataCollectEntity entity = MetadataCollectConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ updateById(entity);
+ }
+
+ @Override
+ public void cancel(Long id) {
+ metadataCollectApi.cancel(id);
+ MetadataCollectEntity entity = baseMapper.selectById(id);
+ entity.setReleaseTime(null);
+ entity.setStatus(0);
+ baseMapper.updateById(entity);
+ }
+
+ @Override
+ public void release(Long id) {
+ metadataCollectApi.release(id);
+ MetadataCollectEntity entity = baseMapper.selectById(id);
+ entity.setReleaseTime(new Date());
+ entity.setStatus(1);
+ baseMapper.updateById(entity);
+ }
+
+ @Override
+ public void handRun(Long id) {
+ metadataCollectApi.handRun(id);
+ }
+
+ @Override
+ public void delete(List idList) {
+ removeByIds(idList);
+// for (Long id : idList) {
+// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+//
+// }
+ }
+
+ private void checkParam(MetadataCollectVO vo){
+ if(MetadataCollectType.CRON.getValue().equals(vo.getTaskType())){
+ if(!CronExpression.isValidExpression(vo.getCron())){
+ throw new ServerException("cron表达式有误,请检查!");
+ }
+ }
+ }
+
private Wrapper getWrapper(MetadataCollectQuery query) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
wrapper.like(StringUtil.isNotBlank(query.getName()),MetadataCollectEntity::getName,query.getName())
@@ -34,4 +101,6 @@ public class MetadataCollectServiceImpl extends BaseServiceImpl