|
@@ -1,19 +1,17 @@
|
|
package com.winhc.data.push.service.impl;
|
|
package com.winhc.data.push.service.impl;
|
|
|
|
|
|
-import cn.cocowwy.dingtalk.DingTalkGroupApi;
|
|
|
|
|
|
+import com.aliyun.odps.Column;
|
|
import com.aliyun.odps.Instance;
|
|
import com.aliyun.odps.Instance;
|
|
import com.aliyun.odps.Odps;
|
|
import com.aliyun.odps.Odps;
|
|
import com.aliyun.odps.data.Record;
|
|
import com.aliyun.odps.data.Record;
|
|
import com.aliyun.odps.task.SQLTask;
|
|
import com.aliyun.odps.task.SQLTask;
|
|
-import com.winhc.data.push.service.DingTalkService;
|
|
|
|
|
|
+import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
|
|
import com.winhc.data.push.service.OdpsService;
|
|
import com.winhc.data.push.service.OdpsService;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Collections;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -29,17 +27,24 @@ public class OdpsServiceImpl implements OdpsService {
|
|
private final Odps odps;
|
|
private final Odps odps;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<String> query(String sql,String ds) {
|
|
|
|
|
|
+ public List<String> query(String sql, String ds) {
|
|
Instance i;
|
|
Instance i;
|
|
try {
|
|
try {
|
|
- i = SQLTask.run(odps, sql.replaceAll("@ds",ds));
|
|
|
|
|
|
+ i = SQLTask.run(odps, sql.replaceAll("@ds", ds));
|
|
i.waitForSuccess();
|
|
i.waitForSuccess();
|
|
List<Record> records = SQLTask.getResult(i);
|
|
List<Record> records = SQLTask.getResult(i);
|
|
- return records.
|
|
|
|
|
|
+ List<String> ds_list = records.
|
|
stream()
|
|
stream()
|
|
.map(x -> x.get(0).toString().split("tn=")[1])
|
|
.map(x -> x.get(0).toString().split("tn=")[1])
|
|
.distinct()
|
|
.distinct()
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
+ if (!records.isEmpty()) {
|
|
|
|
+ String head = Arrays.stream(records.get(0).getColumns()).map(Column::getName).findFirst().orElse("");
|
|
|
|
+ if (StringUtils.isNotBlank(head)) {
|
|
|
|
+ ds_list.add(head.split("tn=")[1]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return ds_list;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|