代码整理(屏蔽权限验证)
This commit is contained in:
parent
8000cb79b9
commit
9484d97224
22
Dockerfile
22
Dockerfile
@ -1,18 +1,18 @@
|
|||||||
FROM registry.cn-qingdao.aliyuncs.com/dataease/alpine-openjdk21-jre
|
FROM registry.cn-qingdao.aliyuncs.com/dataease/alpine-openjdk21-jre
|
||||||
STOPSIGNAL SIGTERM
|
STOPSIGNAL SIGTERM
|
||||||
RUN mkdir -p /opt/apps/config \
|
RUN mkdir -p /opt/apps/config \
|
||||||
/opt/dataease2.0/drivers/ \
|
/opt/gisbi1.0/drivers/ \
|
||||||
/opt/dataease2.0/cache/ \
|
/opt/gisbi1.0/cache/ \
|
||||||
/opt/dataease2.0/data/map \
|
/opt/gisbi1.0/data/map \
|
||||||
/opt/dataease2.0/data/static-resource/ \
|
/opt/gisbi1.0/data/static-resource/ \
|
||||||
/opt/dataease2.0/data/appearance/ \
|
/opt/gisbi1.0/data/appearance/ \
|
||||||
/opt/dataease2.0/data/exportData/ \
|
/opt/gisbi1.0/data/exportData/ \
|
||||||
/opt/dataease2.0/data/i8n/ \
|
/opt/gisbi1.0/data/i8n/ \
|
||||||
/opt/dataease2.0/data/plugin/
|
/opt/gisbi1.0/data/plugin/
|
||||||
|
|
||||||
ADD drivers/* /opt/dataease2.0/drivers/
|
ADD drivers/* /opt/gisbi1.0/drivers/
|
||||||
ADD mapFiles/ /opt/dataease2.0/data/map/
|
ADD mapFiles/ /opt/gisbi1.0/data/map/
|
||||||
ADD staticResource/ /opt/dataease2.0/data/static-resource/
|
ADD staticResource/ /opt/gisbi1.0/data/static-resource/
|
||||||
|
|
||||||
WORKDIR /opt/apps
|
WORKDIR /opt/apps
|
||||||
|
|
||||||
|
@ -4,14 +4,12 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<parent>
|
<parent>
|
||||||
<artifactId>core</artifactId>
|
<artifactId>core</artifactId>
|
||||||
<groupId>io.dataease</groupId>
|
<groupId>io.gisbi</groupId>
|
||||||
<version>${dataease.version}</version>
|
<version>1.0.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<artifactId>core-backend</artifactId>
|
<artifactId>core-backend</artifactId>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.guava</groupId>
|
<groupId>com.google.guava</groupId>
|
||||||
@ -19,19 +17,20 @@
|
|||||||
<version>${guava.version}</version>
|
<version>${guava.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.dataease</groupId>
|
<groupId>io.gisbi</groupId>
|
||||||
<artifactId>api-base</artifactId>
|
<artifactId>api-base</artifactId>
|
||||||
<version>${dataease.version}</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.dataease</groupId>
|
<groupId>io.gisbi</groupId>
|
||||||
<artifactId>api-permissions</artifactId>
|
<artifactId>common</artifactId>
|
||||||
<version>${dataease.version}</version>
|
<version>1.0.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.dataease</groupId>
|
<groupId>io.gisbi</groupId>
|
||||||
<artifactId>api-sync</artifactId>
|
<artifactId>api-sync</artifactId>
|
||||||
<version>${dataease.version}</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.mysql</groupId>
|
<groupId>com.mysql</groupId>
|
||||||
@ -84,6 +83,17 @@
|
|||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-lang3</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.gisbi</groupId>
|
||||||
|
<artifactId>api-permissions</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
@ -173,93 +183,6 @@
|
|||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</profile>
|
</profile>
|
||||||
|
|
||||||
<!-- 简单版(桌面版/社区版) 使用substitute包内的替补权限实现 -->
|
|
||||||
<profile>
|
|
||||||
<id>desktop</id>
|
|
||||||
<properties>
|
|
||||||
<profiles.active>desktop</profiles.active>
|
|
||||||
</properties>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.h2database</groupId>
|
|
||||||
<artifactId>h2</artifactId>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-clean-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<filesets>
|
|
||||||
<fileset>
|
|
||||||
<directory>src/main/resources/static</directory>
|
|
||||||
<includes>
|
|
||||||
<include>**</include>
|
|
||||||
</includes>
|
|
||||||
<followSymlinks>false</followSymlinks>
|
|
||||||
</fileset>
|
|
||||||
</filesets>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-antrun-plugin</artifactId>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>copy-front-2-back</id>
|
|
||||||
<phase>generate-resources</phase>
|
|
||||||
<configuration>
|
|
||||||
<target>
|
|
||||||
<move todir="src/main/resources/static">
|
|
||||||
<fileset dir="../core-frontend/dist">
|
|
||||||
<include name="**"/>
|
|
||||||
</fileset>
|
|
||||||
</move>
|
|
||||||
</target>
|
|
||||||
</configuration>
|
|
||||||
<goals>
|
|
||||||
<goal>run</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
<!-- 分布式版(企业版) -->
|
|
||||||
<profile>
|
|
||||||
<id>distributed</id>
|
|
||||||
<properties>
|
|
||||||
<profiles.active>distributed</profiles.active>
|
|
||||||
</properties>
|
|
||||||
<dependencies>
|
|
||||||
<!-- 分布式版(企业版) 引入分布式组件 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.dataease</groupId>
|
|
||||||
<artifactId>distributed</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<excludes>
|
|
||||||
<!-- 分布式版(企业版) 需要排除权限替补实现 否则就会出现多个权限实现 报错 -->
|
|
||||||
<exclude>io/dataease/substitute/**</exclude>
|
|
||||||
</excludes>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -313,13 +236,4 @@
|
|||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<repositories>
|
|
||||||
<repository>
|
|
||||||
<id>fit2cloud-public</id>
|
|
||||||
<name>Fit2cloud Public</name>
|
|
||||||
<url>https://repository.fit2cloud.com/repository/fit2cloud-public/</url>
|
|
||||||
</repository>
|
|
||||||
|
|
||||||
</repositories>
|
|
||||||
</project>
|
</project>
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
package io.dataease.ai.service;
|
|
||||||
|
|
||||||
import io.dataease.api.ai.AiComponentApi;
|
|
||||||
import io.dataease.commons.utils.UrlTestUtils;
|
|
||||||
import io.dataease.system.manage.SysParameterManage;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author : WangJiaHao
|
|
||||||
* @date : 2024/3/27 09:47
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("aiBase")
|
|
||||||
public class AiBaseService implements AiComponentApi {
|
|
||||||
@Resource
|
|
||||||
private SysParameterManage sysParameterManage;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, String> findTargetUrl() {
|
|
||||||
Map<String, String> templateParams = sysParameterManage.groupVal("ai.");
|
|
||||||
if (templateParams != null && StringUtils.isNotEmpty(templateParams.get("ai.baseUrl"))) {
|
|
||||||
return templateParams;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return new HashMap<>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package io.dataease.chart.charts.impl.map;
|
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.ExtQuotaChartHandler;
|
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
|
||||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
|
||||||
import lombok.Getter;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class MapHandler extends ExtQuotaChartHandler {
|
|
||||||
@Getter
|
|
||||||
private String type = "map";
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package io.dataease.chart.charts.impl.others;
|
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
|
||||||
import io.dataease.chart.charts.impl.ExtQuotaChartHandler;
|
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
|
||||||
import lombok.Getter;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class WordCloudHandler extends ExtQuotaChartHandler {
|
|
||||||
@Getter
|
|
||||||
private String type = "word-cloud";
|
|
||||||
}
|
|
@ -1,102 +0,0 @@
|
|||||||
package io.dataease.copilot.api;
|
|
||||||
|
|
||||||
import io.dataease.api.copilot.dto.ReceiveDTO;
|
|
||||||
import io.dataease.api.copilot.dto.SendDTO;
|
|
||||||
import io.dataease.copilot.dao.auto.entity.CoreCopilotConfig;
|
|
||||||
import io.dataease.copilot.dao.auto.mapper.CoreCopilotConfigMapper;
|
|
||||||
import io.dataease.exception.DEException;
|
|
||||||
import io.dataease.utils.HttpClientConfig;
|
|
||||||
import io.dataease.utils.HttpClientUtil;
|
|
||||||
import io.dataease.utils.JsonUtil;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.apache.http.Header;
|
|
||||||
import org.apache.http.HttpResponse;
|
|
||||||
import org.json.simple.JSONObject;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author Junjun
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class CopilotAPI {
|
|
||||||
|
|
||||||
public static final String TOKEN = "/auth/token/license";
|
|
||||||
|
|
||||||
public static final String FREE_TOKEN = "/auth/token/free";
|
|
||||||
|
|
||||||
public static final String API = "/copilot/v1";
|
|
||||||
|
|
||||||
public static final String CHART = "/generate-chart";
|
|
||||||
|
|
||||||
public static final String RATE_LIMIT = "/rate-limit";
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private CoreCopilotConfigMapper coreCopilotConfigMapper;
|
|
||||||
|
|
||||||
public String basicAuth(String userName, String password) {
|
|
||||||
String auth = userName + ":" + password;
|
|
||||||
String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes());
|
|
||||||
return "Basic " + encodedAuth;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String bearerAuth(String token) {
|
|
||||||
return "Bearer " + token;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CoreCopilotConfig getConfig() {
|
|
||||||
CoreCopilotConfig coreCopilotConfig = coreCopilotConfigMapper.selectById(1);
|
|
||||||
coreCopilotConfig.setPwd(new String(Base64.getDecoder().decode(coreCopilotConfig.getPwd())));
|
|
||||||
return coreCopilotConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getToken(String license) throws Exception {
|
|
||||||
String url = getConfig().getCopilotUrl() + TOKEN;
|
|
||||||
JSONObject json = new JSONObject();
|
|
||||||
json.put("licenseText", license);
|
|
||||||
HttpClientConfig httpClientConfig = new HttpClientConfig();
|
|
||||||
String tokenJson = HttpClientUtil.post(url, json.toString(), httpClientConfig);
|
|
||||||
return (String) JsonUtil.parse(tokenJson, Map.class).get("accessToken");
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFreeToken() throws Exception {
|
|
||||||
String url = getConfig().getCopilotUrl() + FREE_TOKEN;
|
|
||||||
HttpClientConfig httpClientConfig = new HttpClientConfig();
|
|
||||||
String tokenJson = HttpClientUtil.post(url, "", httpClientConfig);
|
|
||||||
return (String) JsonUtil.parse(tokenJson, Map.class).get("accessToken");
|
|
||||||
}
|
|
||||||
|
|
||||||
public ReceiveDTO generateChart(String token, SendDTO sendDTO) {
|
|
||||||
String url = getConfig().getCopilotUrl() + API + CHART;
|
|
||||||
String request = (String) JsonUtil.toJSONString(sendDTO);
|
|
||||||
HttpClientConfig httpClientConfig = new HttpClientConfig();
|
|
||||||
httpClientConfig.addHeader("Authorization", bearerAuth(token));
|
|
||||||
String result = HttpClientUtil.post(url, request, httpClientConfig);
|
|
||||||
return JsonUtil.parseObject(result, ReceiveDTO.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkRateLimit(String token) {
|
|
||||||
String url = getConfig().getCopilotUrl() + API + RATE_LIMIT;
|
|
||||||
HttpClientConfig httpClientConfig = new HttpClientConfig();
|
|
||||||
httpClientConfig.addHeader("Authorization", bearerAuth(token));
|
|
||||||
HttpResponse httpResponse = HttpClientUtil.postWithHeaders(url, null, httpClientConfig);
|
|
||||||
Header[] allHeaders = httpResponse.getAllHeaders();
|
|
||||||
|
|
||||||
String limit = "";
|
|
||||||
String seconds = "";
|
|
||||||
for (Header header : allHeaders) {
|
|
||||||
if (StringUtils.equalsIgnoreCase(header.getName(), "x-rate-limit-remaining")) {
|
|
||||||
limit = header.getValue();
|
|
||||||
}
|
|
||||||
if (StringUtils.equalsIgnoreCase(header.getName(), "x-rate-limit-retry-after-seconds")) {
|
|
||||||
seconds = header.getValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Long.parseLong(limit) <= 0) {
|
|
||||||
DEException.throwException(String.format("当前请求频率已达上限,请在%s秒后重试", seconds));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
package io.dataease.copilot.dao.auto.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author fit2cloud
|
|
||||||
* @since 2024-07-08
|
|
||||||
*/
|
|
||||||
@TableName("core_copilot_config")
|
|
||||||
public class CoreCopilotConfig implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ID
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
private String copilotUrl;
|
|
||||||
|
|
||||||
private String username;
|
|
||||||
|
|
||||||
private String pwd;
|
|
||||||
|
|
||||||
public Long getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(Long id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCopilotUrl() {
|
|
||||||
return copilotUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCopilotUrl(String copilotUrl) {
|
|
||||||
this.copilotUrl = copilotUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUsername() {
|
|
||||||
return username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUsername(String username) {
|
|
||||||
this.username = username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPwd() {
|
|
||||||
return pwd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPwd(String pwd) {
|
|
||||||
this.pwd = pwd;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "CoreCopilotConfig{" +
|
|
||||||
"id = " + id +
|
|
||||||
", copilotUrl = " + copilotUrl +
|
|
||||||
", username = " + username +
|
|
||||||
", pwd = " + pwd +
|
|
||||||
"}";
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,276 +0,0 @@
|
|||||||
package io.dataease.copilot.dao.auto.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author fit2cloud
|
|
||||||
* @since 2024-07-04
|
|
||||||
*/
|
|
||||||
@TableName("core_copilot_msg")
|
|
||||||
public class CoreCopilotMsg implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ID
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户ID
|
|
||||||
*/
|
|
||||||
private Long userId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据集ID
|
|
||||||
*/
|
|
||||||
private Long datasetGroupId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* user or api
|
|
||||||
*/
|
|
||||||
private String msgType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* mysql oracle ...
|
|
||||||
*/
|
|
||||||
private String engineType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* create sql
|
|
||||||
*/
|
|
||||||
private String schemaSql;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户提问
|
|
||||||
*/
|
|
||||||
private String question;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 历史信息
|
|
||||||
*/
|
|
||||||
private String history;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* copilot 返回 sql
|
|
||||||
*/
|
|
||||||
private String copilotSql;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* copilot 返回信息
|
|
||||||
*/
|
|
||||||
private String apiMsg;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* sql 状态
|
|
||||||
*/
|
|
||||||
private Integer sqlOk;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* chart 状态
|
|
||||||
*/
|
|
||||||
private Integer chartOk;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* chart 内容
|
|
||||||
*/
|
|
||||||
private String chart;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 视图数据
|
|
||||||
*/
|
|
||||||
private String chartData;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 执行请求的SQL
|
|
||||||
*/
|
|
||||||
private String execSql;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* msg状态,0失败 1成功
|
|
||||||
*/
|
|
||||||
private Integer msgStatus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* de错误信息
|
|
||||||
*/
|
|
||||||
private String errMsg;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private Long createTime;
|
|
||||||
|
|
||||||
public Long getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(Long id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getUserId() {
|
|
||||||
return userId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserId(Long userId) {
|
|
||||||
this.userId = userId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getDatasetGroupId() {
|
|
||||||
return datasetGroupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasetGroupId(Long datasetGroupId) {
|
|
||||||
this.datasetGroupId = datasetGroupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMsgType() {
|
|
||||||
return msgType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMsgType(String msgType) {
|
|
||||||
this.msgType = msgType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEngineType() {
|
|
||||||
return engineType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEngineType(String engineType) {
|
|
||||||
this.engineType = engineType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSchemaSql() {
|
|
||||||
return schemaSql;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSchemaSql(String schemaSql) {
|
|
||||||
this.schemaSql = schemaSql;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getQuestion() {
|
|
||||||
return question;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQuestion(String question) {
|
|
||||||
this.question = question;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getHistory() {
|
|
||||||
return history;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHistory(String history) {
|
|
||||||
this.history = history;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCopilotSql() {
|
|
||||||
return copilotSql;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCopilotSql(String copilotSql) {
|
|
||||||
this.copilotSql = copilotSql;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getApiMsg() {
|
|
||||||
return apiMsg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApiMsg(String apiMsg) {
|
|
||||||
this.apiMsg = apiMsg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getSqlOk() {
|
|
||||||
return sqlOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSqlOk(Integer sqlOk) {
|
|
||||||
this.sqlOk = sqlOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getChartOk() {
|
|
||||||
return chartOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChartOk(Integer chartOk) {
|
|
||||||
this.chartOk = chartOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getChart() {
|
|
||||||
return chart;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChart(String chart) {
|
|
||||||
this.chart = chart;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getChartData() {
|
|
||||||
return chartData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChartData(String chartData) {
|
|
||||||
this.chartData = chartData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getExecSql() {
|
|
||||||
return execSql;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExecSql(String execSql) {
|
|
||||||
this.execSql = execSql;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getMsgStatus() {
|
|
||||||
return msgStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMsgStatus(Integer msgStatus) {
|
|
||||||
this.msgStatus = msgStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getErrMsg() {
|
|
||||||
return errMsg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setErrMsg(String errMsg) {
|
|
||||||
this.errMsg = errMsg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getCreateTime() {
|
|
||||||
return createTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateTime(Long createTime) {
|
|
||||||
this.createTime = createTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "CoreCopilotMsg{" +
|
|
||||||
"id = " + id +
|
|
||||||
", userId = " + userId +
|
|
||||||
", datasetGroupId = " + datasetGroupId +
|
|
||||||
", msgType = " + msgType +
|
|
||||||
", engineType = " + engineType +
|
|
||||||
", schemaSql = " + schemaSql +
|
|
||||||
", question = " + question +
|
|
||||||
", history = " + history +
|
|
||||||
", copilotSql = " + copilotSql +
|
|
||||||
", apiMsg = " + apiMsg +
|
|
||||||
", sqlOk = " + sqlOk +
|
|
||||||
", chartOk = " + chartOk +
|
|
||||||
", chart = " + chart +
|
|
||||||
", chartData = " + chartData +
|
|
||||||
", execSql = " + execSql +
|
|
||||||
", msgStatus = " + msgStatus +
|
|
||||||
", errMsg = " + errMsg +
|
|
||||||
", createTime = " + createTime +
|
|
||||||
"}";
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,74 +0,0 @@
|
|||||||
package io.dataease.copilot.dao.auto.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author fit2cloud
|
|
||||||
* @since 2024-07-08
|
|
||||||
*/
|
|
||||||
@TableName("core_copilot_token")
|
|
||||||
public class CoreCopilotToken implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ID
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* free or license
|
|
||||||
*/
|
|
||||||
private String type;
|
|
||||||
|
|
||||||
private String token;
|
|
||||||
|
|
||||||
private Long updateTime;
|
|
||||||
|
|
||||||
public Long getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(Long id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getToken() {
|
|
||||||
return token;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setToken(String token) {
|
|
||||||
this.token = token;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getUpdateTime() {
|
|
||||||
return updateTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateTime(Long updateTime) {
|
|
||||||
this.updateTime = updateTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "CoreCopilotToken{" +
|
|
||||||
"id = " + id +
|
|
||||||
", type = " + type +
|
|
||||||
", token = " + token +
|
|
||||||
", updateTime = " + updateTime +
|
|
||||||
"}";
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package io.dataease.copilot.dao.auto.mapper;
|
|
||||||
|
|
||||||
import io.dataease.copilot.dao.auto.entity.CoreCopilotConfig;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Mapper 接口
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author fit2cloud
|
|
||||||
* @since 2024-07-08
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface CoreCopilotConfigMapper extends BaseMapper<CoreCopilotConfig> {
|
|
||||||
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package io.dataease.copilot.dao.auto.mapper;
|
|
||||||
|
|
||||||
import io.dataease.copilot.dao.auto.entity.CoreCopilotMsg;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Mapper 接口
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author fit2cloud
|
|
||||||
* @since 2024-07-04
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface CoreCopilotMsgMapper extends BaseMapper<CoreCopilotMsg> {
|
|
||||||
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package io.dataease.copilot.dao.auto.mapper;
|
|
||||||
|
|
||||||
import io.dataease.copilot.dao.auto.entity.CoreCopilotToken;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Mapper 接口
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author fit2cloud
|
|
||||||
* @since 2024-07-08
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface CoreCopilotTokenMapper extends BaseMapper<CoreCopilotToken> {
|
|
||||||
|
|
||||||
}
|
|
@ -1,487 +0,0 @@
|
|||||||
package io.dataease.copilot.manage;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
|
||||||
import io.dataease.api.copilot.dto.*;
|
|
||||||
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
|
||||||
import io.dataease.api.dataset.union.UnionDTO;
|
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
|
||||||
import io.dataease.copilot.api.CopilotAPI;
|
|
||||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetGroup;
|
|
||||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetGroupMapper;
|
|
||||||
import io.dataease.dataset.manage.DatasetDataManage;
|
|
||||||
import io.dataease.dataset.manage.DatasetSQLManage;
|
|
||||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
|
||||||
import io.dataease.dataset.manage.PermissionManage;
|
|
||||||
import io.dataease.dataset.utils.FieldUtils;
|
|
||||||
import io.dataease.constant.DeTypeConstants;
|
|
||||||
import io.dataease.engine.utils.Utils;
|
|
||||||
import io.dataease.exception.DEException;
|
|
||||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
|
||||||
import io.dataease.extensions.datasource.dto.TableField;
|
|
||||||
import io.dataease.extensions.datasource.factory.ProviderFactory;
|
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
|
||||||
import io.dataease.extensions.view.dto.ColumnPermissionItem;
|
|
||||||
import io.dataease.i18n.Translator;
|
|
||||||
import io.dataease.license.dao.po.LicensePO;
|
|
||||||
import io.dataease.license.manage.F2CLicManage;
|
|
||||||
import io.dataease.license.utils.LicenseUtil;
|
|
||||||
import io.dataease.utils.AuthUtils;
|
|
||||||
import io.dataease.utils.BeanUtils;
|
|
||||||
import io.dataease.utils.JsonUtil;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.apache.calcite.config.Lex;
|
|
||||||
import org.apache.calcite.sql.SqlDialect;
|
|
||||||
import org.apache.calcite.sql.SqlNode;
|
|
||||||
import org.apache.calcite.sql.parser.SqlParser;
|
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author Junjun
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class CopilotManage {
|
|
||||||
@Resource
|
|
||||||
private DatasetSQLManage datasetSQLManage;
|
|
||||||
@Resource
|
|
||||||
private CoreDatasetGroupMapper coreDatasetGroupMapper;
|
|
||||||
@Resource
|
|
||||||
private DatasetTableFieldManage datasetTableFieldManage;
|
|
||||||
@Resource
|
|
||||||
private DatasetDataManage datasetDataManage;
|
|
||||||
@Resource
|
|
||||||
private PermissionManage permissionManage;
|
|
||||||
@Resource
|
|
||||||
private MsgManage msgManage;
|
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(CopilotManage.class);
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private TokenManage tokenManage;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private CopilotAPI copilotAPI;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private F2CLicManage f2CLicManage;
|
|
||||||
|
|
||||||
private String[] chartType = {"bar", "line", "pie"};
|
|
||||||
|
|
||||||
public MsgDTO chat(MsgDTO msgDTO) throws Exception {
|
|
||||||
CoreDatasetGroup coreDatasetGroup = coreDatasetGroupMapper.selectById(msgDTO.getDatasetGroupId());
|
|
||||||
if (coreDatasetGroup == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
DatasetGroupInfoDTO dto = new DatasetGroupInfoDTO();
|
|
||||||
BeanUtils.copyBean(dto, coreDatasetGroup);
|
|
||||||
dto.setUnionSql(null);
|
|
||||||
List<UnionDTO> unionDTOList = JsonUtil.parseList(coreDatasetGroup.getInfo(), new TypeReference<>() {
|
|
||||||
});
|
|
||||||
dto.setUnion(unionDTOList);
|
|
||||||
|
|
||||||
// 获取field
|
|
||||||
List<DatasetTableFieldDTO> dsFields = datasetTableFieldManage.selectByDatasetGroupId(msgDTO.getDatasetGroupId());
|
|
||||||
List<DatasetTableFieldDTO> allFields = dsFields.stream().filter(ele -> ele.getExtField() == 0)
|
|
||||||
.map(ele -> {
|
|
||||||
DatasetTableFieldDTO datasetTableFieldDTO = new DatasetTableFieldDTO();
|
|
||||||
BeanUtils.copyBean(datasetTableFieldDTO, ele);
|
|
||||||
datasetTableFieldDTO.setFieldShortName(ele.getDataeaseName());
|
|
||||||
return datasetTableFieldDTO;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
|
|
||||||
Map<String, Object> sqlMap = datasetSQLManage.getUnionSQLForEdit(dto, null);
|
|
||||||
String sql = (String) sqlMap.get("sql");// 数据集原始SQL
|
|
||||||
Map<Long, DatasourceSchemaDTO> dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
|
||||||
boolean crossDs = Utils.isCrossDs(dsMap);
|
|
||||||
if (crossDs) {
|
|
||||||
DEException.throwException(Translator.get("i18n_copilot_cross_ds_error"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 调用copilot service 获取SQL和chart struct,将返回SQL中表名替换成数据集SQL
|
|
||||||
// deSendDTO 构建schema和engine
|
|
||||||
if (ObjectUtils.isEmpty(dsMap)) {
|
|
||||||
DEException.throwException("No datasource");
|
|
||||||
}
|
|
||||||
|
|
||||||
DatasourceSchemaDTO ds = dsMap.entrySet().iterator().next().getValue();
|
|
||||||
String type = engine(ds.getType());// 数据库类型,如mysql,oracle等,可能需要映射成copilot需要的类型
|
|
||||||
|
|
||||||
datasetDataManage.buildFieldName(sqlMap, allFields);
|
|
||||||
List<String> strings = transCreateTableFields(allFields);
|
|
||||||
String createSql = "CREATE TABLE de_tmp_table (" + StringUtils.join(strings, ",") + ")";
|
|
||||||
logger.debug("Copilot Schema SQL: " + createSql);
|
|
||||||
|
|
||||||
// PerMsgDTO perMsgDTO = new PerMsgDTO();
|
|
||||||
msgDTO.setDatasetGroupId(dto.getId());
|
|
||||||
msgDTO.setMsgType("user");
|
|
||||||
msgDTO.setEngineType(type);
|
|
||||||
msgDTO.setSchemaSql(createSql);
|
|
||||||
msgDTO.setHistory(msgDTO.getHistory());
|
|
||||||
msgDTO.setMsgStatus(1);
|
|
||||||
msgManage.save(msgDTO);// 到这里为止,提问所需参数构建完毕,往数据库插入一条提问记录
|
|
||||||
|
|
||||||
DESendDTO deSendDTO = new DESendDTO();
|
|
||||||
deSendDTO.setDatasetGroupId(dto.getId());
|
|
||||||
deSendDTO.setQuestion(msgDTO.getQuestion());
|
|
||||||
deSendDTO.setHistory(msgDTO.getHistory());
|
|
||||||
deSendDTO.setEngine(type);
|
|
||||||
deSendDTO.setSchema(createSql);
|
|
||||||
|
|
||||||
// do copilot chat
|
|
||||||
ReceiveDTO receiveDTO = copilotChat(deSendDTO);
|
|
||||||
|
|
||||||
// copilot 请求结束,继续de获取数据
|
|
||||||
// 获取数据集相关行列权限、最终再套一层SQL
|
|
||||||
Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
|
|
||||||
allFields = permissionManage.filterColumnPermissions(allFields, desensitizationList, dto.getId(), null);
|
|
||||||
if (ObjectUtils.isEmpty(allFields)) {
|
|
||||||
DEException.throwException(Translator.get("i18n_no_column_permission"));
|
|
||||||
}
|
|
||||||
|
|
||||||
List<String> dsList = new ArrayList<>();
|
|
||||||
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
|
|
||||||
dsList.add(next.getValue().getType());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!crossDs) {
|
|
||||||
sql = Utils.replaceSchemaAlias(sql, dsMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
Provider provider;
|
|
||||||
if (crossDs) {
|
|
||||||
provider = ProviderFactory.getDefaultProvider();
|
|
||||||
} else {
|
|
||||||
provider = ProviderFactory.getProvider(dsList.getFirst());
|
|
||||||
}
|
|
||||||
|
|
||||||
// List<DataSetRowPermissionsTreeDTO> rowPermissionsTree = new ArrayList<>();
|
|
||||||
// TokenUserBO user = AuthUtils.getUser();
|
|
||||||
// if (user != null) {
|
|
||||||
// rowPermissionsTree = permissionManage.getRowPermissionsTree(dto.getId(), user.getUserId());
|
|
||||||
// }
|
|
||||||
|
|
||||||
// build query sql
|
|
||||||
// SQLMeta sqlMeta = new SQLMeta();
|
|
||||||
// Table2SQLObj.table2sqlobj(sqlMeta, null, "(" + sql + ")", crossDs);
|
|
||||||
// Field2SQLObj.field2sqlObj(sqlMeta, allFields, allFields, crossDs, dsMap);
|
|
||||||
// WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, allFields, crossDs, dsMap);
|
|
||||||
// Order2SQLObj.getOrders(sqlMeta, dto.getSortFields(), allFields, crossDs, dsMap);
|
|
||||||
// String querySQL = SQLProvider.createQuerySQL(sqlMeta, false, false, needOrder);
|
|
||||||
// querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap);
|
|
||||||
// logger.debug("preview sql: " + querySQL);
|
|
||||||
|
|
||||||
// 无法加行权限的情况下,直接用sql
|
|
||||||
String querySQL = sql;
|
|
||||||
|
|
||||||
String copilotSQL = receiveDTO.getSql();
|
|
||||||
// 用calcite尝试将SQL转方言,如果失败了,就按照原SQL执行
|
|
||||||
// copilotSQL = transSql(type, copilotSQL, provider, receiveDTO);
|
|
||||||
|
|
||||||
// 通过数据源请求数据
|
|
||||||
// 调用数据源的calcite获得data
|
|
||||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
|
||||||
datasourceRequest.setDsList(dsMap);
|
|
||||||
String s = "";
|
|
||||||
Map<String, Object> data;
|
|
||||||
try {
|
|
||||||
s = copilotSQL
|
|
||||||
.replaceAll(SqlPlaceholderConstants.KEYWORD_PREFIX_REGEX + "de_tmp_table" + SqlPlaceholderConstants.KEYWORD_SUFFIX_REGEX, "(" + querySQL + ")")
|
|
||||||
.replaceAll(SqlPlaceholderConstants.KEYWORD_PREFIX_REGEX + "DE_TMP_TABLE" + SqlPlaceholderConstants.KEYWORD_SUFFIX_REGEX, "(" + querySQL + ")");
|
|
||||||
logger.debug("copilot sql: " + s);
|
|
||||||
datasourceRequest.setQuery(s);
|
|
||||||
data = provider.fetchResultField(datasourceRequest);
|
|
||||||
} catch (Exception e) {
|
|
||||||
try {
|
|
||||||
s = copilotSQL
|
|
||||||
.replaceAll(SqlPlaceholderConstants.KEYWORD_PREFIX_REGEX + "de_tmp_table" + SqlPlaceholderConstants.KEYWORD_SUFFIX_REGEX, "(" + querySQL + ") tmp")
|
|
||||||
.replaceAll(SqlPlaceholderConstants.KEYWORD_PREFIX_REGEX + "DE_TMP_TABLE" + SqlPlaceholderConstants.KEYWORD_SUFFIX_REGEX, "(" + querySQL + ") tmp");
|
|
||||||
logger.debug("copilot sql: " + s);
|
|
||||||
datasourceRequest.setQuery(s);
|
|
||||||
data = provider.fetchResultField(datasourceRequest);
|
|
||||||
} catch (Exception e1) {
|
|
||||||
// 如果异常,则获取最后一条成功的history
|
|
||||||
MsgDTO lastSuccessMsg = msgManage.getLastSuccessMsg(AuthUtils.getUser().getUserId(), dto.getId());
|
|
||||||
// 请求数据出错,记录错误信息和copilot返回的信息
|
|
||||||
MsgDTO result = new MsgDTO();
|
|
||||||
result.setDatasetGroupId(dto.getId());
|
|
||||||
result.setMsgType("api");
|
|
||||||
result.setHistory(lastSuccessMsg == null ? new ArrayList<>() : lastSuccessMsg.getHistory());
|
|
||||||
result.setCopilotSql(receiveDTO.getSql());
|
|
||||||
result.setApiMsg(receiveDTO.getApiMessage());
|
|
||||||
result.setSqlOk(receiveDTO.getSqlOk() ? 1 : 0);
|
|
||||||
result.setChartOk(receiveDTO.getChartOk() ? 1 : 0);
|
|
||||||
result.setChart(receiveDTO.getChart());
|
|
||||||
result.setExecSql(s);
|
|
||||||
result.setMsgStatus(0);
|
|
||||||
result.setErrMsg(e1.getMessage());
|
|
||||||
msgManage.save(result);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<TableField> fields = (List<TableField>) data.get("fields");
|
|
||||||
fields = transField(fields);
|
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
|
||||||
// 重新构造data
|
|
||||||
Map<String, Object> previewData = buildPreviewData(data, fields, desensitizationList);
|
|
||||||
|
|
||||||
map.put("data", previewData);
|
|
||||||
map.put("sql", Base64.getEncoder().encodeToString(s.getBytes()));
|
|
||||||
|
|
||||||
// 重构chart结构,补全缺失字段
|
|
||||||
rebuildChart(receiveDTO, fields);
|
|
||||||
|
|
||||||
MsgDTO result = new MsgDTO();
|
|
||||||
result.setDatasetGroupId(dto.getId());
|
|
||||||
result.setMsgType("api");
|
|
||||||
result.setHistory(receiveDTO.getHistory());
|
|
||||||
result.setCopilotSql(receiveDTO.getSql());
|
|
||||||
result.setApiMsg(receiveDTO.getApiMessage());
|
|
||||||
result.setSqlOk(receiveDTO.getSqlOk() ? 1 : 0);
|
|
||||||
result.setChartOk(receiveDTO.getChartOk() ? 1 : 0);
|
|
||||||
result.setChart(receiveDTO.getChart());
|
|
||||||
result.setChartData(map);
|
|
||||||
result.setExecSql(s);
|
|
||||||
result.setMsgStatus(1);
|
|
||||||
msgManage.save(result);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ReceiveDTO copilotChat(DESendDTO deSendDTO) throws Exception {
|
|
||||||
boolean valid = LicenseUtil.licenseValid();
|
|
||||||
// call copilot service
|
|
||||||
TokenDTO tokenDTO = tokenManage.getToken(valid);
|
|
||||||
ReceiveDTO receiveDTO;
|
|
||||||
if (StringUtils.isEmpty(tokenDTO.getToken())) {
|
|
||||||
// get token
|
|
||||||
String token;
|
|
||||||
if (valid) {
|
|
||||||
LicensePO read = f2CLicManage.read();
|
|
||||||
token = copilotAPI.getToken(read.getLicense());
|
|
||||||
} else {
|
|
||||||
token = copilotAPI.getFreeToken();
|
|
||||||
}
|
|
||||||
tokenManage.updateToken(token, valid);
|
|
||||||
receiveDTO = copilotAPI.generateChart(token, deSendDTO);
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
receiveDTO = copilotAPI.generateChart(tokenDTO.getToken(), deSendDTO);
|
|
||||||
} catch (Exception e) {
|
|
||||||
// error, get token again
|
|
||||||
String token;
|
|
||||||
if (valid) {
|
|
||||||
LicensePO read = f2CLicManage.read();
|
|
||||||
token = copilotAPI.getToken(read.getLicense());
|
|
||||||
} else {
|
|
||||||
token = copilotAPI.getFreeToken();
|
|
||||||
}
|
|
||||||
tokenManage.updateToken(token, valid);
|
|
||||||
throw new Exception(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!receiveDTO.getSqlOk() || !receiveDTO.getChartOk()) {
|
|
||||||
DEException.throwException((String) JsonUtil.toJSONString(receiveDTO));
|
|
||||||
}
|
|
||||||
logger.debug("Copilot Service SQL: " + receiveDTO.getSql());
|
|
||||||
logger.debug("Copilot Service Chart: " + JsonUtil.toJSONString(receiveDTO.getChart()));
|
|
||||||
return receiveDTO;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void rebuildChart(ReceiveDTO receiveDTO, List<TableField> fields) {
|
|
||||||
if (StringUtils.equalsIgnoreCase(receiveDTO.getChart().getType(), "pie")) {
|
|
||||||
AxisFieldDTO column = receiveDTO.getChart().getColumn();
|
|
||||||
if (fields.size() != 2 || column == null) {
|
|
||||||
DEException.throwException("build pie error: " + JsonUtil.toJSONString(receiveDTO));
|
|
||||||
}
|
|
||||||
AxisDTO axisDTO = new AxisDTO();
|
|
||||||
AxisFieldDTO x = new AxisFieldDTO();
|
|
||||||
AxisFieldDTO y = new AxisFieldDTO();
|
|
||||||
if (StringUtils.equals(fields.get(0).getOriginName(), column.getValue())) {
|
|
||||||
x.setName(column.getName());
|
|
||||||
x.setValue(column.getValue());
|
|
||||||
y.setName(fields.get(1).getOriginName());
|
|
||||||
y.setValue(fields.get(1).getOriginName());
|
|
||||||
} else if (StringUtils.equals(fields.get(1).getOriginName(), column.getValue())) {
|
|
||||||
x.setName(fields.get(0).getOriginName());
|
|
||||||
x.setValue(fields.get(0).getOriginName());
|
|
||||||
y.setName(column.getName());
|
|
||||||
y.setValue(column.getValue());
|
|
||||||
} else {
|
|
||||||
DEException.throwException("build pie error: " + JsonUtil.toJSONString(receiveDTO));
|
|
||||||
}
|
|
||||||
axisDTO.setX(x);
|
|
||||||
axisDTO.setY(y);
|
|
||||||
receiveDTO.getChart().setAxis(axisDTO);
|
|
||||||
} else if (StringUtils.equalsIgnoreCase(receiveDTO.getChart().getType(), "table")) {
|
|
||||||
// 将fields赋值给columns
|
|
||||||
if (ObjectUtils.isEmpty(receiveDTO.getChart().getColumns())) {
|
|
||||||
List<AxisFieldDTO> columns = new ArrayList<>();
|
|
||||||
for (TableField field : fields) {
|
|
||||||
AxisFieldDTO dto = new AxisFieldDTO();
|
|
||||||
dto.setName(field.getOriginName());
|
|
||||||
dto.setValue(field.getOriginName());
|
|
||||||
columns.add(dto);
|
|
||||||
}
|
|
||||||
receiveDTO.getChart().setColumns(columns);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 所有图表都加上columns字段用于切换明细表展示
|
|
||||||
if (Arrays.asList(chartType).contains(receiveDTO.getChart().getType())) {
|
|
||||||
List<AxisFieldDTO> columns = new ArrayList<>();
|
|
||||||
columns.add(receiveDTO.getChart().getAxis().getX());
|
|
||||||
columns.add(receiveDTO.getChart().getAxis().getY());
|
|
||||||
receiveDTO.getChart().setColumns(columns);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MsgDTO> getList(Long userId) {
|
|
||||||
MsgDTO lastMsg = msgManage.getLastMsg(userId);
|
|
||||||
if (lastMsg == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
List<MsgDTO> msg = msgManage.getMsg(lastMsg);
|
|
||||||
msgManage.deleteMsg(lastMsg);
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void clearAll(Long userId) {
|
|
||||||
msgManage.clearAllUserMsg(userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public MsgDTO errorMsg(MsgDTO msgDTO, String errMsg) throws Exception {
|
|
||||||
// 如果异常,则获取最后一条成功的history
|
|
||||||
MsgDTO lastSuccessMsg = msgManage.getLastSuccessMsg(AuthUtils.getUser().getUserId(), msgDTO.getDatasetGroupId());
|
|
||||||
MsgDTO dto = new MsgDTO();
|
|
||||||
dto.setDatasetGroupId(msgDTO.getDatasetGroupId());
|
|
||||||
dto.setHistory(lastSuccessMsg == null ? new ArrayList<>() : lastSuccessMsg.getHistory());
|
|
||||||
dto.setMsgStatus(0);
|
|
||||||
dto.setMsgType("api");
|
|
||||||
dto.setErrMsg(errMsg);
|
|
||||||
msgManage.save(dto);
|
|
||||||
return dto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<TableField> transField(List<TableField> fields) {
|
|
||||||
fields.forEach(field -> {
|
|
||||||
field.setDeExtractType(FieldUtils.transType2DeType(field.getFieldType()));
|
|
||||||
field.setDeType(FieldUtils.transType2DeType(field.getFieldType()));
|
|
||||||
});
|
|
||||||
return fields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> buildPreviewData(Map<String, Object> data, List<TableField> fields, Map<String, ColumnPermissionItem> desensitizationList) {
|
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
|
||||||
List<String[]> dataList = (List<String[]>) data.get("data");
|
|
||||||
List<LinkedHashMap<String, Object>> dataObjectList = new ArrayList<>();
|
|
||||||
if (ObjectUtils.isNotEmpty(dataList)) {
|
|
||||||
for (int i = 0; i < dataList.size(); i++) {
|
|
||||||
String[] row = dataList.get(i);
|
|
||||||
LinkedHashMap<String, Object> obj = new LinkedHashMap<>();
|
|
||||||
if (row.length > 0) {
|
|
||||||
for (int j = 0; j < fields.size(); j++) {
|
|
||||||
TableField tableField = fields.get(j);
|
|
||||||
if (desensitizationList.containsKey(tableField.getOriginName())) {
|
|
||||||
obj.put(tableField.getOriginName(), ChartDataBuild.desensitizationValue(desensitizationList.get(tableField.getOriginName()), String.valueOf(row[j])));
|
|
||||||
} else {
|
|
||||||
if (tableField.getDeExtractType() == DeTypeConstants.DE_INT
|
|
||||||
|| tableField.getDeExtractType() == DeTypeConstants.DE_FLOAT
|
|
||||||
|| tableField.getDeExtractType() == DeTypeConstants.DE_BOOL) {
|
|
||||||
try {
|
|
||||||
obj.put(tableField.getOriginName(), new BigDecimal(row[j]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
obj.put(tableField.getOriginName(), row[j]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
obj.put(tableField.getOriginName(), row[j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dataObjectList.add(obj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
map.put("fields", fields);
|
|
||||||
map.put("data", dataObjectList);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> transCreateTableFields(List<DatasetTableFieldDTO> allFields) {
|
|
||||||
List<String> list = new ArrayList<>();
|
|
||||||
for (DatasetTableFieldDTO dto : allFields) {
|
|
||||||
list.add(" " + dto.getDataeaseName() + " " + transNum2Type(dto.getDeExtractType()) +
|
|
||||||
" COMMENT '" + dto.getName() + "'");
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String transNum2Type(Integer num) {
|
|
||||||
return switch (num) {
|
|
||||||
case 0, 1, 5 -> "VARCHAR(50)";
|
|
||||||
case 2, 3, 4 -> "INT(10)";
|
|
||||||
default -> "VARCHAR(50)";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public Lex getLex(String type) {
|
|
||||||
switch (type) {
|
|
||||||
case "oracle":
|
|
||||||
return Lex.ORACLE;
|
|
||||||
case "sqlServer":
|
|
||||||
case "mssql":
|
|
||||||
return Lex.SQL_SERVER;
|
|
||||||
default:
|
|
||||||
return Lex.JAVA;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String transSql(String type, String copilotSQL, Provider provider, ReceiveDTO receiveDTO) {
|
|
||||||
if (type.equals("oracle") || type.equals("sqlServer")) {
|
|
||||||
try {
|
|
||||||
copilotSQL = copilotSQL.trim();
|
|
||||||
if (copilotSQL.endsWith(";")) {
|
|
||||||
copilotSQL = copilotSQL.substring(0, copilotSQL.length() - 1);
|
|
||||||
}
|
|
||||||
DatasourceSchemaDTO datasourceSchemaDTO = new DatasourceSchemaDTO();
|
|
||||||
datasourceSchemaDTO.setType(type);
|
|
||||||
SqlDialect dialect = provider.getDialect(datasourceSchemaDTO);
|
|
||||||
|
|
||||||
SqlParser parser = SqlParser.create(copilotSQL, SqlParser.Config.DEFAULT.withLex(getLex(type)));
|
|
||||||
SqlNode sqlNode = parser.parseStmt();
|
|
||||||
return sqlNode.toSqlString(dialect).toString().toLowerCase();
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.debug("calcite trans copilot SQL error");
|
|
||||||
return receiveDTO.getSql();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return copilotSQL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private String engine(String type) {
|
|
||||||
switch (type) {
|
|
||||||
case "ck":
|
|
||||||
return "ClickHouse";
|
|
||||||
case "pg":
|
|
||||||
return "PostgreSQL";
|
|
||||||
case "mysql":
|
|
||||||
return "MySQL";
|
|
||||||
case "sqlServer":
|
|
||||||
return "SQL Server";
|
|
||||||
default:
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,100 +0,0 @@
|
|||||||
package io.dataease.copilot.manage;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import io.dataease.api.copilot.dto.ChartDTO;
|
|
||||||
import io.dataease.api.copilot.dto.HistoryDTO;
|
|
||||||
import io.dataease.api.copilot.dto.MsgDTO;
|
|
||||||
import io.dataease.copilot.dao.auto.entity.CoreCopilotMsg;
|
|
||||||
import io.dataease.copilot.dao.auto.mapper.CoreCopilotMsgMapper;
|
|
||||||
import io.dataease.utils.AuthUtils;
|
|
||||||
import io.dataease.utils.BeanUtils;
|
|
||||||
import io.dataease.utils.IDUtils;
|
|
||||||
import io.dataease.utils.JsonUtil;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author Junjun
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class MsgManage {
|
|
||||||
@Resource
|
|
||||||
private CoreCopilotMsgMapper coreCopilotMsgMapper;
|
|
||||||
|
|
||||||
private ObjectMapper objectMapper = new ObjectMapper();
|
|
||||||
|
|
||||||
public void save(MsgDTO msgDTO) throws Exception {
|
|
||||||
msgDTO.setId(IDUtils.snowID());
|
|
||||||
msgDTO.setCreateTime(System.currentTimeMillis());
|
|
||||||
msgDTO.setUserId(AuthUtils.getUser().getUserId());
|
|
||||||
coreCopilotMsgMapper.insert(transDTO(msgDTO));
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MsgDTO> getMsg(MsgDTO msgDTO) {
|
|
||||||
QueryWrapper<CoreCopilotMsg> wrapper = new QueryWrapper<>();
|
|
||||||
wrapper.eq("user_id", msgDTO.getUserId());
|
|
||||||
wrapper.eq("dataset_group_id", msgDTO.getDatasetGroupId());
|
|
||||||
wrapper.orderByAsc("create_time");
|
|
||||||
List<CoreCopilotMsg> perCopilotMsgs = coreCopilotMsgMapper.selectList(wrapper);
|
|
||||||
return perCopilotMsgs.stream().map(this::transRecord).toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void deleteMsg(MsgDTO msgDTO) {
|
|
||||||
QueryWrapper<CoreCopilotMsg> wrapper = new QueryWrapper<>();
|
|
||||||
wrapper.eq("user_id", msgDTO.getUserId());
|
|
||||||
wrapper.ne("dataset_group_id", msgDTO.getDatasetGroupId());
|
|
||||||
coreCopilotMsgMapper.delete(wrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void clearAllUserMsg(Long userId) {
|
|
||||||
QueryWrapper<CoreCopilotMsg> wrapper = new QueryWrapper<>();
|
|
||||||
wrapper.eq("user_id", userId);
|
|
||||||
coreCopilotMsgMapper.delete(wrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
public MsgDTO getLastMsg(Long userId) {
|
|
||||||
QueryWrapper<CoreCopilotMsg> wrapper = new QueryWrapper<>();
|
|
||||||
wrapper.eq("user_id", userId);
|
|
||||||
wrapper.orderByDesc("create_time");
|
|
||||||
List<CoreCopilotMsg> perCopilotMsgs = coreCopilotMsgMapper.selectList(wrapper);
|
|
||||||
return ObjectUtils.isEmpty(perCopilotMsgs) ? null : transRecord(perCopilotMsgs.getFirst());
|
|
||||||
}
|
|
||||||
|
|
||||||
public MsgDTO getLastSuccessMsg(Long userId, Long datasetGroupId) {
|
|
||||||
QueryWrapper<CoreCopilotMsg> wrapper = new QueryWrapper<>();
|
|
||||||
wrapper.eq("user_id", userId);
|
|
||||||
wrapper.eq("dataset_group_id", datasetGroupId);
|
|
||||||
wrapper.eq("msg_status", 1);
|
|
||||||
wrapper.eq("msg_type", "api");
|
|
||||||
wrapper.orderByDesc("create_time");
|
|
||||||
List<CoreCopilotMsg> perCopilotMsgs = coreCopilotMsgMapper.selectList(wrapper);
|
|
||||||
return ObjectUtils.isEmpty(perCopilotMsgs) ? null : transRecord(perCopilotMsgs.getFirst());
|
|
||||||
}
|
|
||||||
|
|
||||||
private CoreCopilotMsg transDTO(MsgDTO dto) throws Exception {
|
|
||||||
CoreCopilotMsg record = new CoreCopilotMsg();
|
|
||||||
BeanUtils.copyBean(record, dto);
|
|
||||||
record.setHistory(dto.getHistory() == null ? null : objectMapper.writeValueAsString(dto.getHistory()));
|
|
||||||
record.setChart(dto.getChart() == null ? null : objectMapper.writeValueAsString(dto.getChart()));
|
|
||||||
record.setChartData(dto.getChartData() == null ? null : objectMapper.writeValueAsString(dto.getChartData()));
|
|
||||||
return record;
|
|
||||||
}
|
|
||||||
|
|
||||||
private MsgDTO transRecord(CoreCopilotMsg record) {
|
|
||||||
MsgDTO dto = new MsgDTO();
|
|
||||||
BeanUtils.copyBean(dto, record);
|
|
||||||
TypeReference<List<HistoryDTO>> tokenType = new TypeReference<>() {
|
|
||||||
};
|
|
||||||
dto.setHistory(record.getHistory() == null ? new ArrayList<>() : JsonUtil.parseList(record.getHistory(), tokenType));
|
|
||||||
dto.setChart(record.getChart() == null ? null : JsonUtil.parseObject(record.getChart(), ChartDTO.class));
|
|
||||||
dto.setChartData(record.getChartData() == null ? null : JsonUtil.parse(record.getChartData(), Map.class));
|
|
||||||
return dto;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
package io.dataease.copilot.manage;
|
|
||||||
|
|
||||||
import io.dataease.api.copilot.dto.TokenDTO;
|
|
||||||
import io.dataease.copilot.dao.auto.entity.CoreCopilotToken;
|
|
||||||
import io.dataease.copilot.dao.auto.mapper.CoreCopilotTokenMapper;
|
|
||||||
import io.dataease.utils.BeanUtils;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author Junjun
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class TokenManage {
|
|
||||||
@Resource
|
|
||||||
private CoreCopilotTokenMapper coreCopilotTokenMapper;
|
|
||||||
|
|
||||||
public TokenDTO getToken(boolean valid) {
|
|
||||||
CoreCopilotToken perCopilotToken = coreCopilotTokenMapper.selectById(valid ? 2 : 1);
|
|
||||||
return transRecord(perCopilotToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateToken(String token, boolean valid) {
|
|
||||||
CoreCopilotToken record = new CoreCopilotToken();
|
|
||||||
record.setId(valid ? 2L : 1L);
|
|
||||||
record.setToken(token);
|
|
||||||
record.setUpdateTime(System.currentTimeMillis());
|
|
||||||
coreCopilotTokenMapper.updateById(record);
|
|
||||||
}
|
|
||||||
|
|
||||||
private TokenDTO transRecord(CoreCopilotToken perCopilotToken) {
|
|
||||||
TokenDTO dto = new TokenDTO();
|
|
||||||
BeanUtils.copyBean(dto, perCopilotToken);
|
|
||||||
return dto;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,40 +0,0 @@
|
|||||||
package io.dataease.copilot.service;
|
|
||||||
|
|
||||||
import io.dataease.api.copilot.CopilotApi;
|
|
||||||
import io.dataease.api.copilot.dto.MsgDTO;
|
|
||||||
import io.dataease.copilot.manage.CopilotManage;
|
|
||||||
import io.dataease.utils.AuthUtils;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author Junjun
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("copilot")
|
|
||||||
public class CopilotService implements CopilotApi {
|
|
||||||
@Resource
|
|
||||||
private CopilotManage copilotManage;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MsgDTO chat(MsgDTO msgDTO) throws Exception {
|
|
||||||
try {
|
|
||||||
return copilotManage.chat(msgDTO);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return copilotManage.errorMsg(msgDTO, e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<MsgDTO> getList() throws Exception {
|
|
||||||
return copilotManage.getList(AuthUtils.getUser().getUserId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void clearAll() throws Exception {
|
|
||||||
copilotManage.clearAll(AuthUtils.getUser().getUserId());
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package io.dataease.datasource.dao.ext.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.dataease.api.ds.vo.CoreDatasourceTaskLogDTO;
import org.apache.ibatis.annotations.*;
@Mapper
public interface TaskLogExtMapper extends BaseMapper<CoreDatasourceTaskLogDTO> {
@Select(
"""
select *
from core_datasource_task_log
${ew.customSqlSegment}
"""
)
@Results(
id = "taskLog",
value = {
@Result(property = "id", column = "id"),
@Result(property = "ds_id", column = "dsId"),
@Result(property = "task_id", column = "taskId"),
@Result(property = "start_time", column = "startTime"),
@Result(property = "end_time", column = "endTime"),
@Result(property = "task_status", column = "taskStatus"),
@Result(property = "trigger_type", column = "triggerType"),
@Result(property = "table_name", column = "tableName"),
@Result(property = "info", column = "info")
}
)
IPage<CoreDatasourceTaskLogDTO> pager(IPage<CoreDatasourceTaskLogDTO> page, @Param("ew") QueryWrapper queryWrapper);
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package io.dataease.defeign.permissions.auth;
|
|
||||||
|
|
||||||
import io.dataease.api.permissions.auth.api.InteractiveAuthApi;
|
|
||||||
import io.dataease.feign.DeFeign;
|
|
||||||
|
|
||||||
@DeFeign(value = "xpack-permissions", path = "/interactive")
|
|
||||||
public interface InteractiveAuthFeignService extends InteractiveAuthApi {
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
package io.dataease.defeign.permissions.auth;
|
|
||||||
|
|
||||||
import io.dataease.feign.DeFeign;
|
|
||||||
import io.dataease.api.permissions.auth.api.AuthApi;
|
|
||||||
|
|
||||||
|
|
||||||
@DeFeign(value = "xpack-permissions", path = "/auth")
|
|
||||||
public interface PermissionFeignService extends AuthApi {
|
|
||||||
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package io.dataease.defeign.permissions.user;
|
|
||||||
|
|
||||||
import io.dataease.api.permissions.user.api.UserApi;
|
|
||||||
import io.dataease.feign.DeFeign;
|
|
||||||
|
|
||||||
@DeFeign(value = "xpack-permissions", path = "/user")
|
|
||||||
public interface UserFeignService extends UserApi {
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
package io.dataease.resource;
|
|
||||||
|
|
||||||
import io.dataease.api.permissions.auth.dto.BusiPerCheckDTO;
|
|
||||||
import io.dataease.constant.AuthEnum;
|
|
||||||
import io.dataease.system.manage.CorePermissionManage;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author Junjun
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class ResourceService {
|
|
||||||
@Resource
|
|
||||||
private CorePermissionManage corePermissionManage;
|
|
||||||
|
|
||||||
public boolean checkPermission(Long id) {
|
|
||||||
BusiPerCheckDTO dto = new BusiPerCheckDTO();
|
|
||||||
dto.setId(id);
|
|
||||||
dto.setAuthEnum(AuthEnum.READ);
|
|
||||||
boolean b;
|
|
||||||
try {
|
|
||||||
b = corePermissionManage.checkAuth(dto);
|
|
||||||
} catch (Exception e) {
|
|
||||||
b = false;
|
|
||||||
}
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
package io.dataease.system.manage;
|
|
||||||
|
|
||||||
import io.dataease.api.permissions.auth.dto.BusiPerCheckDTO;
|
|
||||||
import io.dataease.license.config.XpackInteract;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class CorePermissionManage {
|
|
||||||
|
|
||||||
@XpackInteract(value = "corePermissionManage", replace = true)
|
|
||||||
public boolean checkAuth(BusiPerCheckDTO dto) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease;
|
package io.gisbi;
|
||||||
|
|
||||||
import io.dataease.listener.EhCacheStartListener;
|
import io.gisbi.listener.EhCacheStartListener;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;
|
import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease;
|
package io.gisbi;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
|
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
|
||||||
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
|
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.charts;
|
package io.gisbi.chart.charts;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||||
import io.dataease.extensions.view.plugin.AbstractChartPlugin;
|
import io.gisbi.extensions.view.plugin.AbstractChartPlugin;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,32 +1,31 @@
|
|||||||
package io.dataease.chart.charts.impl;
|
package io.gisbi.chart.charts.impl;
|
||||||
|
|
||||||
import io.dataease.chart.charts.ChartHandlerManager;
|
import io.gisbi.chart.charts.ChartHandlerManager;
|
||||||
import io.dataease.chart.constant.ChartConstants;
|
import io.gisbi.chart.constant.ChartConstants;
|
||||||
import io.dataease.chart.manage.ChartDataManage;
|
import io.gisbi.chart.manage.ChartDataManage;
|
||||||
import io.dataease.chart.manage.ChartViewManege;
|
import io.gisbi.chart.manage.ChartViewManege;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
import io.gisbi.dataset.manage.DatasetTableFieldManage;
|
||||||
import io.dataease.constant.SQLConstants;
|
import io.gisbi.constant.SQLConstants;
|
||||||
import io.dataease.engine.sql.SQLProvider;
|
import io.gisbi.engine.sql.SQLProvider;
|
||||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||||
import io.dataease.engine.trans.Quota2SQLObj;
|
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.exception.DEException;
|
import io.gisbi.exception.DEException;
|
||||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
import io.gisbi.extensions.datasource.api.PluginManageApi;
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
import io.gisbi.extensions.datasource.vo.DatasourceConfiguration;
|
||||||
import io.dataease.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
import io.gisbi.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.plugin.AbstractChartPlugin;
|
import io.gisbi.extensions.view.plugin.AbstractChartPlugin;
|
||||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
import io.gisbi.extensions.view.util.ChartDataUtil;
|
||||||
import io.dataease.extensions.view.util.FieldUtil;
|
import io.gisbi.extensions.view.util.FieldUtil;
|
||||||
import io.dataease.license.utils.LicenseUtil;
|
import io.gisbi.utils.BeanUtils;
|
||||||
import io.dataease.utils.BeanUtils;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import io.dataease.utils.JsonUtil;
|
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@ -381,16 +380,14 @@ public class DefaultChartHandler extends AbstractChartPlugin {
|
|||||||
prefix = datasourceType.getPrefix();
|
prefix = datasourceType.getPrefix();
|
||||||
suffix = datasourceType.getSuffix();
|
suffix = datasourceType.getSuffix();
|
||||||
} else {
|
} else {
|
||||||
if (LicenseUtil.licenseValid()) {
|
List<XpackPluginsDatasourceVO> xpackPluginsDatasourceVOS = pluginManage.queryPluginDs();
|
||||||
List<XpackPluginsDatasourceVO> xpackPluginsDatasourceVOS = pluginManage.queryPluginDs();
|
List<XpackPluginsDatasourceVO> list = xpackPluginsDatasourceVOS.stream().filter(ele -> StringUtils.equals(ele.getType(), dsType)).toList();
|
||||||
List<XpackPluginsDatasourceVO> list = xpackPluginsDatasourceVOS.stream().filter(ele -> StringUtils.equals(ele.getType(), dsType)).toList();
|
if (ObjectUtils.isNotEmpty(list)) {
|
||||||
if (ObjectUtils.isNotEmpty(list)) {
|
XpackPluginsDatasourceVO first = list.getFirst();
|
||||||
XpackPluginsDatasourceVO first = list.getFirst();
|
prefix = first.getPrefix();
|
||||||
prefix = first.getPrefix();
|
suffix = first.getSuffix();
|
||||||
suffix = first.getSuffix();
|
} else {
|
||||||
} else {
|
DEException.throwException("当前数据源插件不存在");
|
||||||
DEException.throwException("当前数据源插件不存在");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
package io.dataease.chart.charts.impl;
|
package io.gisbi.chart.charts.impl;
|
||||||
|
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
package io.dataease.chart.charts.impl;
|
package io.gisbi.chart.charts.impl;
|
||||||
|
|
||||||
|
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -1,17 +1,17 @@
|
|||||||
package io.dataease.chart.charts.impl;
|
package io.gisbi.chart.charts.impl;
|
||||||
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import io.dataease.engine.sql.SQLProvider;
|
import io.gisbi.engine.sql.SQLProvider;
|
||||||
import io.dataease.engine.trans.ExtWhere2Str;
|
import io.gisbi.engine.trans.ExtWhere2Str;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.util.FieldUtil;
|
import io.gisbi.extensions.view.util.FieldUtil;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
@ -1,12 +1,12 @@
|
|||||||
package io.dataease.chart.charts.impl.bar;
|
package io.gisbi.chart.charts.impl.bar;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.chart.charts.impl.bar;
|
package io.gisbi.chart.charts.impl.bar;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.charts.impl.bar;
|
package io.gisbi.chart.charts.impl.bar;
|
||||||
|
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.charts.impl.bar;
|
package io.gisbi.chart.charts.impl.bar;
|
||||||
|
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
package io.dataease.chart.charts.impl.bar;
|
package io.gisbi.chart.charts.impl.bar;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
import org.apache.commons.lang3.BooleanUtils;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.charts.impl.bar;
|
package io.gisbi.chart.charts.impl.bar;
|
||||||
|
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.charts.impl.bar;
|
package io.gisbi.chart.charts.impl.bar;
|
||||||
|
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -12,8 +12,8 @@ import java.util.Map;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static io.dataease.extensions.view.dto.ChartAxis.extStack;
|
import static io.gisbi.extensions.view.dto.ChartAxis.extStack;
|
||||||
import static io.dataease.extensions.view.dto.ChartAxis.xAxisExt;
|
import static io.gisbi.extensions.view.dto.ChartAxis.xAxisExt;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class StackGroupBarHandler extends BarHandler {
|
public class StackGroupBarHandler extends BarHandler {
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.charts.impl.line;
|
package io.gisbi.chart.charts.impl.line;
|
||||||
|
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,12 +1,12 @@
|
|||||||
package io.dataease.chart.charts.impl.line;
|
package io.gisbi.chart.charts.impl.line;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,13 +1,13 @@
|
|||||||
package io.dataease.chart.charts.impl.line;
|
package io.gisbi.chart.charts.impl.line;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
@ -1,8 +1,8 @@
|
|||||||
package io.dataease.chart.charts.impl.map;
|
package io.gisbi.chart.charts.impl.map;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.ExtQuotaChartHandler;
|
import io.gisbi.chart.charts.impl.ExtQuotaChartHandler;
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
package io.dataease.chart.charts.impl.map;
|
package io.gisbi.chart.charts.impl.map;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.GroupChartHandler;
|
import io.gisbi.chart.charts.impl.GroupChartHandler;
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
package io.dataease.chart.charts.impl.map;
|
package io.gisbi.chart.charts.impl.map;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -0,0 +1,15 @@
|
|||||||
|
package io.gisbi.chart.charts.impl.map;
|
||||||
|
|
||||||
|
import io.gisbi.chart.charts.impl.ExtQuotaChartHandler;
|
||||||
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
|
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||||
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
|
import lombok.Getter;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class MapHandler extends ExtQuotaChartHandler {
|
||||||
|
@Getter
|
||||||
|
private String type = "map";
|
||||||
|
}
|
@ -1,23 +1,23 @@
|
|||||||
package io.dataease.chart.charts.impl.map;
|
package io.gisbi.chart.charts.impl.map;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.GroupChartHandler;
|
import io.gisbi.chart.charts.impl.GroupChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.dataset.manage.DatasetDataManage;
|
import io.gisbi.dataset.manage.DatasetDataManage;
|
||||||
import io.dataease.engine.sql.SQLProvider;
|
import io.gisbi.engine.sql.SQLProvider;
|
||||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||||
import io.dataease.engine.trans.Field2SQLObj;
|
import io.gisbi.engine.trans.Field2SQLObj;
|
||||||
import io.dataease.engine.trans.Quota2SQLObj;
|
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||||
import io.dataease.engine.trans.Table2SQLObj;
|
import io.gisbi.engine.trans.Table2SQLObj;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
import io.gisbi.extensions.view.util.ChartDataUtil;
|
||||||
import io.dataease.extensions.view.util.FieldUtil;
|
import io.gisbi.extensions.view.util.FieldUtil;
|
||||||
import io.dataease.utils.BeanUtils;
|
import io.gisbi.utils.BeanUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
@ -1,10 +1,10 @@
|
|||||||
package io.dataease.chart.charts.impl.mix;
|
package io.gisbi.chart.charts.impl.mix;
|
||||||
|
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import io.dataease.extensions.view.dto.CustomFilterResult;
|
import io.gisbi.extensions.view.dto.CustomFilterResult;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.chart.charts.impl.mix;
|
package io.gisbi.chart.charts.impl.mix;
|
||||||
|
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,13 +1,13 @@
|
|||||||
package io.dataease.chart.charts.impl.mix;
|
package io.gisbi.chart.charts.impl.mix;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.charts.impl.mix;
|
package io.gisbi.chart.charts.impl.mix;
|
||||||
|
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,10 +1,10 @@
|
|||||||
package io.dataease.chart.charts.impl.numeric;
|
package io.gisbi.chart.charts.impl.numeric;
|
||||||
|
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
import io.gisbi.dataset.manage.DatasetTableFieldManage;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,10 +1,10 @@
|
|||||||
package io.dataease.chart.charts.impl.numeric;
|
package io.gisbi.chart.charts.impl.numeric;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
package io.dataease.chart.charts.impl.numeric;
|
package io.gisbi.chart.charts.impl.numeric;
|
||||||
|
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,20 +1,20 @@
|
|||||||
package io.dataease.chart.charts.impl.numeric;
|
package io.gisbi.chart.charts.impl.numeric;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.engine.sql.SQLProvider;
|
import io.gisbi.engine.sql.SQLProvider;
|
||||||
import io.dataease.engine.trans.Quota2SQLObj;
|
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.exception.DEException;
|
import io.gisbi.exception.DEException;
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.util.FieldUtil;
|
import io.gisbi.extensions.view.util.FieldUtil;
|
||||||
import io.dataease.i18n.Translator;
|
import io.gisbi.i18n.Translator;
|
||||||
import io.dataease.utils.BeanUtils;
|
import io.gisbi.utils.BeanUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.chart.charts.impl.others;
|
package io.gisbi.chart.charts.impl.others;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.ExtQuotaChartHandler;
|
import io.gisbi.chart.charts.impl.ExtQuotaChartHandler;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
package io.dataease.chart.charts.impl.others;
|
package io.gisbi.chart.charts.impl.others;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.chart.charts.impl.others;
|
package io.gisbi.chart.charts.impl.others;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.chart.charts.impl.others;
|
package io.gisbi.chart.charts.impl.others;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.GroupChartHandler;
|
import io.gisbi.chart.charts.impl.GroupChartHandler;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.chart.charts.impl.others;
|
package io.gisbi.chart.charts.impl.others;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.ExtQuotaChartHandler;
|
import io.gisbi.chart.charts.impl.ExtQuotaChartHandler;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.chart.charts.impl.others;
|
package io.gisbi.chart.charts.impl.others;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.ExtQuotaChartHandler;
|
import io.gisbi.chart.charts.impl.ExtQuotaChartHandler;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -0,0 +1,15 @@
|
|||||||
|
package io.gisbi.chart.charts.impl.others;
|
||||||
|
|
||||||
|
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||||
|
import io.gisbi.chart.charts.impl.ExtQuotaChartHandler;
|
||||||
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
|
import lombok.Getter;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class WordCloudHandler extends ExtQuotaChartHandler {
|
||||||
|
@Getter
|
||||||
|
private String type = "word-cloud";
|
||||||
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package io.dataease.chart.charts.impl.pie;
|
package io.gisbi.chart.charts.impl.pie;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||||
import io.dataease.extensions.view.dto.ChartAxis;
|
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
@ -1,8 +1,8 @@
|
|||||||
package io.dataease.chart.charts.impl.scatter;
|
package io.gisbi.chart.charts.impl.scatter;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
package io.dataease.chart.charts.impl.scatter;
|
package io.gisbi.chart.charts.impl.scatter;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,18 +1,18 @@
|
|||||||
package io.dataease.chart.charts.impl.table;
|
package io.gisbi.chart.charts.impl.table;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||||
import io.dataease.chart.utils.ChartDataBuild;
|
import io.gisbi.chart.utils.ChartDataBuild;
|
||||||
import io.dataease.engine.sql.SQLProvider;
|
import io.gisbi.engine.sql.SQLProvider;
|
||||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||||
import io.dataease.engine.trans.Quota2SQLObj;
|
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
import io.gisbi.extensions.view.util.ChartDataUtil;
|
||||||
import io.dataease.extensions.view.util.FieldUtil;
|
import io.gisbi.extensions.view.util.FieldUtil;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -1,18 +1,18 @@
|
|||||||
package io.dataease.chart.charts.impl.table;
|
package io.gisbi.chart.charts.impl.table;
|
||||||
|
|
||||||
import io.dataease.api.chart.dto.PageInfo;
|
import io.gisbi.api.chart.dto.PageInfo;
|
||||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||||
import io.dataease.engine.sql.SQLProvider;
|
import io.gisbi.engine.sql.SQLProvider;
|
||||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
import io.gisbi.extensions.view.util.ChartDataUtil;
|
||||||
import io.dataease.extensions.view.util.FieldUtil;
|
import io.gisbi.extensions.view.util.FieldUtil;
|
||||||
import io.dataease.utils.BeanUtils;
|
import io.gisbi.utils.BeanUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
@ -1,11 +1,11 @@
|
|||||||
package io.dataease.chart.charts.impl.table;
|
package io.gisbi.chart.charts.impl.table;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,21 +1,21 @@
|
|||||||
package io.dataease.chart.charts.impl.table;
|
package io.gisbi.chart.charts.impl.table;
|
||||||
|
|
||||||
import io.dataease.chart.charts.impl.GroupChartHandler;
|
import io.gisbi.chart.charts.impl.GroupChartHandler;
|
||||||
import io.dataease.constant.DeTypeConstants;
|
import io.gisbi.constant.DeTypeConstants;
|
||||||
import io.dataease.engine.constant.ExtFieldConstant;
|
import io.gisbi.engine.constant.ExtFieldConstant;
|
||||||
import io.dataease.engine.sql.SQLProvider;
|
import io.gisbi.engine.sql.SQLProvider;
|
||||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||||
import io.dataease.engine.trans.Quota2SQLObj;
|
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.util.FieldUtil;
|
import io.gisbi.extensions.view.util.FieldUtil;
|
||||||
import io.dataease.utils.BeanUtils;
|
import io.gisbi.utils.BeanUtils;
|
||||||
import io.dataease.utils.IDUtils;
|
import io.gisbi.utils.IDUtils;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.constant;
|
package io.gisbi.chart.constant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author gin
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
public class ChartConstants {
|
public class ChartConstants {
|
||||||
public static final String YEAR_MOM = "year_mom";
|
public static final String YEAR_MOM = "year_mom";
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.chart.dao.auto.entity;
|
package io.gisbi.chart.dao.auto.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
|||||||
* 组件图表表
|
* 组件图表表
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author fit2cloud
|
* @Author bi-coder
|
||||||
* @since 2024-12-12
|
* @since 2024-12-12
|
||||||
*/
|
*/
|
||||||
@TableName("core_chart_view")
|
@TableName("core_chart_view")
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.chart.dao.auto.mapper;
|
package io.gisbi.chart.dao.auto.mapper;
|
||||||
|
|
||||||
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
import io.gisbi.chart.dao.auto.entity.CoreChartView;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* 组件图表表 Mapper 接口
|
* 组件图表表 Mapper 接口
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author fit2cloud
|
* @Author bi-coder
|
||||||
* @since 2024-12-12
|
* @since 2024-12-12
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.chart.dao.ext.entity;
|
package io.gisbi.chart.dao.ext.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.chart.dao.ext.mapper;
|
package io.gisbi.chart.dao.ext.mapper;
|
||||||
|
|
||||||
import io.dataease.api.chart.vo.ViewSelectorVO;
|
import io.gisbi.api.chart.vo.ViewSelectorVO;
|
||||||
import io.dataease.chart.dao.ext.entity.ChartBasePO;
|
import io.gisbi.chart.dao.ext.entity.ChartBasePO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
@ -1,37 +1,35 @@
|
|||||||
package io.dataease.chart.manage;
|
package io.gisbi.chart.manage;
|
||||||
|
|
||||||
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
import io.gisbi.api.dataset.union.DatasetGroupInfoDTO;
|
||||||
import io.dataease.api.permissions.auth.dto.BusiPerCheckDTO;
|
|
||||||
import io.dataease.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO;
|
import io.gisbi.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO;
|
||||||
import io.dataease.chart.charts.ChartHandlerManager;
|
import io.gisbi.chart.charts.ChartHandlerManager;
|
||||||
import io.dataease.chart.constant.ChartConstants;
|
import io.gisbi.chart.constant.ChartConstants;
|
||||||
import io.dataease.constant.AuthEnum;
|
import io.gisbi.dataset.manage.DatasetGroupManage;
|
||||||
import io.dataease.dataset.manage.DatasetGroupManage;
|
import io.gisbi.dataset.manage.DatasetSQLManage;
|
||||||
import io.dataease.dataset.manage.DatasetSQLManage;
|
import io.gisbi.dataset.manage.DatasetTableFieldManage;
|
||||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
import io.gisbi.dataset.manage.PermissionManage;
|
||||||
import io.dataease.dataset.manage.PermissionManage;
|
import io.gisbi.engine.sql.SQLProvider;
|
||||||
import io.dataease.engine.sql.SQLProvider;
|
import io.gisbi.engine.trans.*;
|
||||||
import io.dataease.engine.trans.*;
|
import io.gisbi.engine.utils.SQLUtils;
|
||||||
import io.dataease.engine.utils.SQLUtils;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.exception.DEException;
|
||||||
import io.dataease.exception.DEException;
|
import io.gisbi.extensions.datasource.api.PluginManageApi;
|
||||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.datasource.factory.ProviderFactory;
|
||||||
import io.dataease.extensions.datasource.factory.ProviderFactory;
|
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
import io.gisbi.extensions.datasource.provider.Provider;
|
||||||
import io.dataease.extensions.datasource.provider.Provider;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.factory.PluginsChartFactory;
|
||||||
import io.dataease.extensions.view.factory.PluginsChartFactory;
|
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
import io.gisbi.extensions.view.plugin.AbstractChartPlugin;
|
||||||
import io.dataease.extensions.view.plugin.AbstractChartPlugin;
|
import io.gisbi.extensions.view.util.FieldUtil;
|
||||||
import io.dataease.extensions.view.util.FieldUtil;
|
import io.gisbi.i18n.Translator;
|
||||||
import io.dataease.i18n.Translator;
|
import io.gisbi.result.ResultCode;
|
||||||
import io.dataease.result.ResultCode;
|
import io.gisbi.utils.AuthUtils;
|
||||||
import io.dataease.system.manage.CorePermissionManage;
|
import io.gisbi.utils.BeanUtils;
|
||||||
import io.dataease.utils.AuthUtils;
|
|
||||||
import io.dataease.utils.BeanUtils;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.collections4.MapUtils;
|
import org.apache.commons.collections4.MapUtils;
|
||||||
@ -47,7 +45,7 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author Junjun
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class ChartDataManage {
|
public class ChartDataManage {
|
||||||
@ -60,14 +58,12 @@ public class ChartDataManage {
|
|||||||
@Resource
|
@Resource
|
||||||
private ChartViewManege chartViewManege;
|
private ChartViewManege chartViewManege;
|
||||||
@Resource
|
@Resource
|
||||||
private PermissionManage permissionManage;
|
|
||||||
@Resource
|
|
||||||
private ChartFilterTreeService chartFilterTreeService;
|
private ChartFilterTreeService chartFilterTreeService;
|
||||||
@Resource
|
@Resource
|
||||||
private ChartHandlerManager chartHandlerManager;
|
private ChartHandlerManager chartHandlerManager;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private CorePermissionManage corePermissionManage;
|
private PermissionManage permissionManage;
|
||||||
|
|
||||||
@Autowired(required = false)
|
@Autowired(required = false)
|
||||||
private PluginManageApi pluginManage;
|
private PluginManageApi pluginManage;
|
||||||
|
|
||||||
@ -115,13 +111,13 @@ public class ChartDataManage {
|
|||||||
DEException.throwException(ResultCode.DATA_IS_WRONG.code(), Translator.get("i18n_no_ds"));
|
DEException.throwException(ResultCode.DATA_IS_WRONG.code(), Translator.get("i18n_no_ds"));
|
||||||
}
|
}
|
||||||
// check permission
|
// check permission
|
||||||
BusiPerCheckDTO dto = new BusiPerCheckDTO();
|
// BusiPerCheckDTO dto = new BusiPerCheckDTO();
|
||||||
dto.setId(table.getId());
|
// dto.setId(table.getId());
|
||||||
dto.setAuthEnum(AuthEnum.READ);
|
// dto.setAuthEnum(AuthEnum.READ);
|
||||||
boolean checked = corePermissionManage.checkAuth(dto);
|
// boolean checked = corePermissionManage.checkAuth(dto);
|
||||||
if (!checked) {
|
// if (!checked) {
|
||||||
DEException.throwException(Translator.get("i18n_no_dataset_permission"));
|
// DEException.throwException(Translator.get("i18n_no_dataset_permission"));
|
||||||
}
|
// }
|
||||||
|
|
||||||
List<ChartViewFieldDTO> allFields = getAllChartFields(view);
|
List<ChartViewFieldDTO> allFields = getAllChartFields(view);
|
||||||
// column permission
|
// column permission
|
@ -1,16 +1,16 @@
|
|||||||
package io.dataease.chart.manage;
|
package io.gisbi.chart.manage;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField;
|
import io.gisbi.dataset.dao.auto.entity.CoreDatasetTableField;
|
||||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
import io.gisbi.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
||||||
import io.dataease.engine.utils.SQLUtils;
|
import io.gisbi.engine.utils.SQLUtils;
|
||||||
import io.dataease.extensions.datasource.dto.CalParam;
|
import io.gisbi.extensions.datasource.dto.CalParam;
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||||
import io.dataease.extensions.datasource.dto.FieldGroupDTO;
|
import io.gisbi.extensions.datasource.dto.FieldGroupDTO;
|
||||||
import io.dataease.extensions.view.filter.FilterTreeItem;
|
import io.gisbi.extensions.view.filter.FilterTreeItem;
|
||||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||||
import io.dataease.utils.BeanUtils;
|
import io.gisbi.utils.BeanUtils;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
@ -21,7 +21,7 @@ import java.util.List;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author Junjun
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class ChartFilterTreeService {
|
public class ChartFilterTreeService {
|
@ -1,39 +1,37 @@
|
|||||||
package io.dataease.chart.manage;
|
package io.gisbi.chart.manage;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.dataease.api.chart.vo.ChartBaseVO;
|
import io.gisbi.api.chart.vo.ChartBaseVO;
|
||||||
import io.dataease.api.chart.vo.ViewSelectorVO;
|
import io.gisbi.api.chart.vo.ViewSelectorVO;
|
||||||
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
import io.gisbi.chart.dao.auto.entity.CoreChartView;
|
||||||
import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper;
|
import io.gisbi.chart.dao.auto.mapper.CoreChartViewMapper;
|
||||||
import io.dataease.chart.dao.ext.entity.ChartBasePO;
|
import io.gisbi.chart.dao.ext.entity.ChartBasePO;
|
||||||
import io.dataease.chart.dao.ext.mapper.ExtChartViewMapper;
|
import io.gisbi.chart.dao.ext.mapper.ExtChartViewMapper;
|
||||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField;
|
import io.gisbi.dataset.dao.auto.entity.CoreDatasetTableField;
|
||||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
import io.gisbi.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
||||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
import io.gisbi.dataset.manage.DatasetTableFieldManage;
|
||||||
import io.dataease.dataset.manage.PermissionManage;
|
import io.gisbi.dataset.utils.TableUtils;
|
||||||
import io.dataease.dataset.utils.TableUtils;
|
import io.gisbi.engine.constant.ExtFieldConstant;
|
||||||
import io.dataease.engine.constant.ExtFieldConstant;
|
import io.gisbi.engine.func.FunctionConstant;
|
||||||
import io.dataease.engine.func.FunctionConstant;
|
import io.gisbi.engine.utils.Utils;
|
||||||
import io.dataease.engine.utils.Utils;
|
import io.gisbi.exception.DEException;
|
||||||
import io.dataease.exception.DEException;
|
import io.gisbi.extensions.datasource.api.PluginManageApi;
|
||||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
import io.gisbi.extensions.datasource.dto.CalParam;
|
||||||
import io.dataease.extensions.datasource.dto.CalParam;
|
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
import io.gisbi.extensions.datasource.dto.FieldGroupDTO;
|
||||||
import io.dataease.extensions.datasource.dto.FieldGroupDTO;
|
import io.gisbi.extensions.datasource.model.SQLObj;
|
||||||
import io.dataease.extensions.datasource.model.SQLObj;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
import io.gisbi.i18n.Translator;
|
||||||
import io.dataease.i18n.Translator;
|
import io.gisbi.utils.BeanUtils;
|
||||||
import io.dataease.license.config.XpackInteract;
|
import io.gisbi.utils.IDUtils;
|
||||||
import io.dataease.utils.BeanUtils;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import io.dataease.utils.IDUtils;
|
import io.gisbi.utils.LogUtil;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.visualization.dao.auto.entity.DataVisualizationInfo;
|
||||||
import io.dataease.utils.LogUtil;
|
import io.gisbi.visualization.dao.auto.mapper.DataVisualizationInfoMapper;
|
||||||
import io.dataease.visualization.dao.auto.entity.DataVisualizationInfo;
|
|
||||||
import io.dataease.visualization.dao.auto.mapper.DataVisualizationInfoMapper;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -50,7 +48,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author Junjun
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class ChartViewManege {
|
public class ChartViewManege {
|
||||||
@ -60,8 +58,7 @@ public class ChartViewManege {
|
|||||||
private ChartDataManage chartDataManage;
|
private ChartDataManage chartDataManage;
|
||||||
@Resource
|
@Resource
|
||||||
private CoreDatasetTableFieldMapper coreDatasetTableFieldMapper;
|
private CoreDatasetTableFieldMapper coreDatasetTableFieldMapper;
|
||||||
@Resource
|
|
||||||
private PermissionManage permissionManage;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DataVisualizationInfoMapper visualizationInfoMapper;
|
private DataVisualizationInfoMapper visualizationInfoMapper;
|
||||||
@ -105,7 +102,6 @@ public class ChartViewManege {
|
|||||||
coreChartViewMapper.deleteById(id);
|
coreChartViewMapper.deleteById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@XpackInteract(value = "chartViewManage")
|
|
||||||
public void disuse(List<Long> chartIdList) {
|
public void disuse(List<Long> chartIdList) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,7 +220,8 @@ public class ChartViewManege {
|
|||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
// filter column disable field
|
// filter column disable field
|
||||||
Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
|
Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
|
||||||
List<DatasetTableFieldDTO> datasetTableFieldDTOS = permissionManage.filterColumnPermissions(collect, desensitizationList, id, null);
|
// List<DatasetTableFieldDTO> datasetTableFieldDTOS = permissionManage.filterColumnPermissions(collect, desensitizationList, id, null);
|
||||||
|
List<DatasetTableFieldDTO> datasetTableFieldDTOS = collect;
|
||||||
datasetTableFieldDTOS.forEach(ele -> ele.setDesensitized(desensitizationList.containsKey(ele.getDataeaseName())));
|
datasetTableFieldDTOS.forEach(ele -> ele.setDesensitized(desensitizationList.containsKey(ele.getDataeaseName())));
|
||||||
datasetTableFieldDTOS.add(createCountField(id));
|
datasetTableFieldDTOS.add(createCountField(id));
|
||||||
List<ChartViewFieldDTO> list = transFieldDTO(datasetTableFieldDTOS);
|
List<ChartViewFieldDTO> list = transFieldDTO(datasetTableFieldDTOS);
|
@ -1,14 +1,14 @@
|
|||||||
package io.dataease.chart.manage;
|
package io.gisbi.chart.manage;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
import io.gisbi.chart.dao.auto.entity.CoreChartView;
|
||||||
import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper;
|
import io.gisbi.chart.dao.auto.mapper.CoreChartViewMapper;
|
||||||
import io.dataease.extensions.view.dto.ChartCustomFilterItemDTO;
|
import io.gisbi.extensions.view.dto.ChartCustomFilterItemDTO;
|
||||||
import io.dataease.extensions.view.dto.ChartFieldCustomFilterDTO;
|
import io.gisbi.extensions.view.dto.ChartFieldCustomFilterDTO;
|
||||||
import io.dataease.extensions.view.filter.FilterTreeItem;
|
import io.gisbi.extensions.view.filter.FilterTreeItem;
|
||||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
@ -19,7 +19,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author Junjun
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class ChartViewOldDataMergeService {
|
public class ChartViewOldDataMergeService {
|
@ -1,18 +1,18 @@
|
|||||||
package io.dataease.chart.manage;
|
package io.gisbi.chart.manage;
|
||||||
|
|
||||||
import io.dataease.api.chart.request.ThresholdCheckRequest;
|
import io.gisbi.api.chart.request.ThresholdCheckRequest;
|
||||||
import io.dataease.api.chart.vo.ThresholdCheckVO;
|
import io.gisbi.api.chart.vo.ThresholdCheckVO;
|
||||||
import io.dataease.constant.DeTypeConstants;
|
import io.gisbi.constant.DeTypeConstants;
|
||||||
import io.dataease.exception.DEException;
|
import io.gisbi.exception.DEException;
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||||
import io.dataease.extensions.view.filter.FilterTreeItem;
|
import io.gisbi.extensions.view.filter.FilterTreeItem;
|
||||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||||
import io.dataease.i18n.Translator;
|
import io.gisbi.i18n.Translator;
|
||||||
import io.dataease.utils.DateUtils;
|
import io.gisbi.utils.DateUtils;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import io.dataease.utils.LogUtil;
|
import io.gisbi.utils.LogUtil;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.collections4.MapUtils;
|
import org.apache.commons.collections4.MapUtils;
|
@ -1,28 +1,28 @@
|
|||||||
package io.dataease.chart.server;
|
package io.gisbi.chart.server;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import io.dataease.api.chart.ChartDataApi;
|
import io.gisbi.api.chart.ChartDataApi;
|
||||||
import io.dataease.api.chart.dto.ViewDetailField;
|
import io.gisbi.api.chart.dto.ViewDetailField;
|
||||||
import io.dataease.api.chart.request.ChartExcelRequest;
|
import io.gisbi.api.chart.request.ChartExcelRequest;
|
||||||
import io.dataease.api.chart.request.ChartExcelRequestInner;
|
import io.gisbi.api.chart.request.ChartExcelRequestInner;
|
||||||
import io.dataease.auth.DeLinkPermit;
|
import io.gisbi.auth.DeLinkPermit;
|
||||||
import io.dataease.chart.constant.ChartConstants;
|
import io.gisbi.chart.constant.ChartConstants;
|
||||||
import io.dataease.chart.manage.ChartDataManage;
|
import io.gisbi.chart.manage.ChartDataManage;
|
||||||
import io.dataease.constant.AuthConstant;
|
import io.gisbi.constant.AuthConstant;
|
||||||
import io.dataease.constant.CommonConstants;
|
import io.gisbi.constant.CommonConstants;
|
||||||
import io.dataease.dataset.manage.PermissionManage;
|
|
||||||
import io.dataease.dataset.server.DatasetFieldServer;
|
import io.gisbi.dataset.server.DatasetFieldServer;
|
||||||
import io.dataease.constant.DeTypeConstants;
|
import io.gisbi.dataset.manage.PermissionManage;
|
||||||
import io.dataease.exception.DEException;
|
import io.gisbi.constant.DeTypeConstants;
|
||||||
import io.dataease.exportCenter.manage.ExportCenterManage;
|
import io.gisbi.exception.DEException;
|
||||||
import io.dataease.exportCenter.util.ExportCenterUtils;
|
import io.gisbi.exportCenter.manage.ExportCenterManage;
|
||||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
import io.gisbi.exportCenter.util.ExportCenterUtils;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||||
import io.dataease.license.manage.F2CLicLimitedManage;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.result.ResultCode;
|
import io.gisbi.result.ResultCode;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import io.dataease.utils.LogUtil;
|
import io.gisbi.utils.LogUtil;
|
||||||
import io.dataease.visualization.manage.VisualizationTemplateExtendDataManage;
|
import io.gisbi.visualization.manage.VisualizationTemplateExtendDataManage;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -33,6 +33,7 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
|
|||||||
import org.apache.poi.ss.usermodel.*;
|
import org.apache.poi.ss.usermodel.*;
|
||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@ -50,7 +51,7 @@ import java.util.regex.Pattern;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author Junjun
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/chartData")
|
@RequestMapping("/chartData")
|
||||||
@ -68,8 +69,6 @@ public class ChartDataServer implements ChartDataApi {
|
|||||||
@Resource
|
@Resource
|
||||||
private DatasetFieldServer datasetFieldServer;
|
private DatasetFieldServer datasetFieldServer;
|
||||||
|
|
||||||
@Resource(name = "f2CLicLimitedManage")
|
|
||||||
private F2CLicLimitedManage f2CLicLimitedManage;
|
|
||||||
@Value("${dataease.export.page.size:50000}")
|
@Value("${dataease.export.page.size:50000}")
|
||||||
private Integer extractPageSize;
|
private Integer extractPageSize;
|
||||||
private final Long sheetLimit = 1000000L;
|
private final Long sheetLimit = 1000000L;
|
@ -1,13 +1,13 @@
|
|||||||
package io.dataease.chart.server;
|
package io.gisbi.chart.server;
|
||||||
|
|
||||||
import io.dataease.api.chart.ChartViewApi;
|
import io.gisbi.api.chart.ChartViewApi;
|
||||||
import io.dataease.api.chart.vo.ChartBaseVO;
|
import io.gisbi.api.chart.vo.ChartBaseVO;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||||
import io.dataease.api.chart.vo.ViewSelectorVO;
|
import io.gisbi.api.chart.vo.ViewSelectorVO;
|
||||||
import io.dataease.chart.manage.ChartViewManege;
|
import io.gisbi.chart.manage.ChartViewManege;
|
||||||
import io.dataease.exception.DEException;
|
import io.gisbi.exception.DEException;
|
||||||
import io.dataease.result.ResultCode;
|
import io.gisbi.result.ResultCode;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@ -16,7 +16,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author Junjun
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("chart")
|
@RequestMapping("chart")
|
@ -1,12 +1,12 @@
|
|||||||
package io.dataease.chart.utils;
|
package io.gisbi.chart.utils;
|
||||||
|
|
||||||
import io.dataease.api.chart.dto.ScatterChartDataDTO;
|
import io.gisbi.api.chart.dto.ScatterChartDataDTO;
|
||||||
import io.dataease.api.chart.dto.Series;
|
import io.gisbi.api.chart.dto.Series;
|
||||||
import io.dataease.extensions.view.dto.*;
|
import io.gisbi.extensions.view.dto.*;
|
||||||
import io.dataease.i18n.Lang;
|
import io.gisbi.i18n.Lang;
|
||||||
import io.dataease.i18n.Translator;
|
import io.gisbi.i18n.Translator;
|
||||||
import io.dataease.utils.IDUtils;
|
import io.gisbi.utils.IDUtils;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
@ -1375,7 +1375,7 @@ public class ChartDataBuild {
|
|||||||
axisChartDataDTO.setName(xField.toString());
|
axisChartDataDTO.setName(xField.toString());
|
||||||
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
List<io.dataease.extensions.view.dto.ChartQuotaDTO> quotaList = new ArrayList<>();
|
List<io.gisbi.extensions.view.dto.ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.commons;
|
package io.gisbi.commons;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.commons.constants;
|
package io.gisbi.commons.constants;
|
||||||
|
|
||||||
public class DataVisualizationConstants {
|
public class DataVisualizationConstants {
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.commons.constants;
|
package io.gisbi.commons.constants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author : WangJiaHao
|
* @Author bi-coder
|
||||||
* @date : 2023/10/8 09:37
|
* @date : 2023/10/8 09:37
|
||||||
*/
|
*/
|
||||||
public class OptConstants {
|
public class OptConstants {
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.commons.constants;
|
package io.gisbi.commons.constants;
|
||||||
|
|
||||||
public enum TaskStatus {
|
public enum TaskStatus {
|
||||||
WaitingForExecution, // 等待执行
|
WaitingForExecution, // 等待执行
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.commons.utils;
|
package io.gisbi.commons.utils;
|
||||||
|
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -12,7 +12,7 @@ import java.util.UUID;
|
|||||||
/**
|
/**
|
||||||
* 加密解密工具
|
* 加密解密工具
|
||||||
*
|
*
|
||||||
* @author kun.mo
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
public class CodingUtil {
|
public class CodingUtil {
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.commons.utils;
|
package io.gisbi.commons.utils;
|
||||||
|
|
||||||
import io.dataease.constant.SortConstants;
|
import io.gisbi.constant.SortConstants;
|
||||||
import io.dataease.visualization.dto.VisualizationNodeBO;
|
import io.gisbi.visualization.dto.VisualizationNodeBO;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.text.Collator;
|
import java.text.Collator;
|
||||||
@ -9,7 +9,7 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author : WangJiaHao
|
* @Author bi-coder
|
||||||
* @date : 2024/3/18 10:53
|
* @date : 2024/3/18 10:53
|
||||||
*/
|
*/
|
||||||
public class CoreTreeUtils {
|
public class CoreTreeUtils {
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.commons.utils;
|
package io.gisbi.commons.utils;
|
||||||
|
|
||||||
import io.dataease.utils.LogUtil;
|
import io.gisbi.utils.LogUtil;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.quartz.CronExpression;
|
import org.quartz.CronExpression;
|
||||||
import org.quartz.CronScheduleBuilder;
|
import org.quartz.CronScheduleBuilder;
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.commons.utils;
|
package io.gisbi.commons.utils;
|
||||||
|
|
||||||
import io.dataease.utils.BeanUtils;
|
import io.gisbi.utils.BeanUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
@ -1,9 +1,8 @@
|
|||||||
package io.dataease.commons.utils;
|
package io.gisbi.commons.utils;
|
||||||
|
|
||||||
import io.dataease.api.permissions.user.vo.UserFormVO;
|
import io.gisbi.i18n.Translator;
|
||||||
import io.dataease.i18n.Translator;
|
import io.gisbi.utils.IPUtils;
|
||||||
import io.dataease.utils.IPUtils;
|
import io.gisbi.visualization.dto.WatermarkContentDTO;
|
||||||
import io.dataease.visualization.dto.WatermarkContentDTO;
|
|
||||||
import org.apache.poi.ss.usermodel.*;
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
@ -21,31 +20,31 @@ public class ExcelWatermarkUtils {
|
|||||||
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
|
||||||
public static String transContent(WatermarkContentDTO watermarkContent, UserFormVO userInfo) {
|
// public static String transContent(WatermarkContentDTO watermarkContent, UserFormVO userInfo) {
|
||||||
String content = "";
|
// String content = "";
|
||||||
switch (watermarkContent.getType()) {
|
// switch (watermarkContent.getType()) {
|
||||||
case "custom" -> content = watermarkContent.getContent();
|
// case "custom" -> content = watermarkContent.getContent();
|
||||||
case "nickName" -> content = "${nickName}";
|
// case "nickName" -> content = "${nickName}";
|
||||||
case "ip" -> content = "${ip}";
|
// case "ip" -> content = "${ip}";
|
||||||
case "time" -> content = "${time}";
|
// case "time" -> content = "${time}";
|
||||||
default -> content = "${username}";
|
// default -> content = "${username}";
|
||||||
}
|
// }
|
||||||
String nickName = userInfo.getName().contains("i18n_") ?Translator.get(userInfo.getName()):userInfo.getName();
|
// String nickName = userInfo.getName().contains("i18n_") ?Translator.get(userInfo.getName()):userInfo.getName();
|
||||||
content = content.replaceAll("\\$\\{ip}", IPUtils.get() == null ? "127.0.0.1" : IPUtils.get());
|
// content = content.replaceAll("\\$\\{ip}", IPUtils.get() == null ? "127.0.0.1" : IPUtils.get());
|
||||||
content = content.replaceAll("\\$\\{username}", userInfo.getAccount());
|
// content = content.replaceAll("\\$\\{username}", userInfo.getAccount());
|
||||||
content = content.replaceAll("\\$\\{nickName}", nickName);
|
// content = content.replaceAll("\\$\\{nickName}", nickName);
|
||||||
content = content.replaceAll("\\$\\{time}", sdf.format(new Date()));
|
// content = content.replaceAll("\\$\\{time}", sdf.format(new Date()));
|
||||||
return content;
|
// return content;
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加水印图片到工作簿并返回图片 ID
|
* 添加水印图片到工作簿并返回图片 ID
|
||||||
*/
|
*/
|
||||||
public static int addWatermarkImage(Workbook wb, WatermarkContentDTO watermarkContent, UserFormVO userInfo) {
|
// public static int addWatermarkImage(Workbook wb, WatermarkContentDTO watermarkContent, UserFormVO userInfo) {
|
||||||
byte[] imageBytes = createTextImage(transContent(watermarkContent, userInfo), watermarkContent); // 生成文字水印图片
|
// byte[] imageBytes = createTextImage(transContent(watermarkContent, userInfo), watermarkContent); // 生成文字水印图片
|
||||||
return wb.addPicture(imageBytes, Workbook.PICTURE_TYPE_PNG); // 添加到工作簿并返回 ID
|
// return wb.addPicture(imageBytes, Workbook.PICTURE_TYPE_PNG); // 添加到工作簿并返回 ID
|
||||||
}
|
// }
|
||||||
|
|
||||||
public static void addWatermarkToSheet(Sheet sheet, Integer pictureIdx) {
|
public static void addWatermarkToSheet(Sheet sheet, Integer pictureIdx) {
|
||||||
Drawing<?> drawing = sheet.createDrawingPatriarch();
|
Drawing<?> drawing = sheet.createDrawingPatriarch();
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.commons.utils;
|
package io.gisbi.commons.utils;
|
||||||
|
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
@ -1,19 +1,16 @@
|
|||||||
package io.dataease.commons.utils;
|
package io.gisbi.commons.utils;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import io.dataease.api.permissions.user.vo.UserFormVO;
|
import io.gisbi.exception.DEException;
|
||||||
import io.dataease.api.permissions.variable.dto.SysVariableValueDto;
|
import io.gisbi.extensions.datasource.api.PluginManageApi;
|
||||||
import io.dataease.api.permissions.variable.dto.SysVariableValueItem;
|
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||||
import io.dataease.exception.DEException;
|
import io.gisbi.extensions.datasource.vo.DatasourceConfiguration;
|
||||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
import io.gisbi.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
import io.gisbi.extensions.view.dto.SqlVariableDetails;
|
||||||
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
import io.gisbi.i18n.Translator;
|
||||||
import io.dataease.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
|
||||||
import io.dataease.extensions.view.dto.SqlVariableDetails;
|
|
||||||
import io.dataease.i18n.Translator;
|
|
||||||
import io.dataease.license.utils.LicenseUtil;
|
import io.dataease.license.utils.LicenseUtil;
|
||||||
import io.dataease.utils.JsonUtil;
|
import io.gisbi.utils.JsonUtil;
|
||||||
import io.dataease.utils.LogUtil;
|
import io.gisbi.utils.LogUtil;
|
||||||
import net.sf.jsqlparser.expression.*;
|
import net.sf.jsqlparser.expression.*;
|
||||||
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
|
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
|
||||||
import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
|
import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
|
||||||
@ -30,14 +27,13 @@ import org.apache.commons.collections4.CollectionUtils;
|
|||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
import org.junit.jupiter.params.provider.CsvSource;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static io.dataease.chart.manage.ChartDataManage.START_END_SEPARATOR;
|
import static io.gisbi.chart.manage.ChartDataManage.START_END_SEPARATOR;
|
||||||
import static org.apache.calcite.sql.SqlKind.*;
|
import static org.apache.calcite.sql.SqlKind.*;
|
||||||
|
|
||||||
public class SqlparserUtils {
|
public class SqlparserUtils {
|
||||||
@ -47,15 +43,13 @@ public class SqlparserUtils {
|
|||||||
private static final String SysParamsSubstitutedParams = "DeSysParams_";
|
private static final String SysParamsSubstitutedParams = "DeSysParams_";
|
||||||
private static final String SubstitutedSql = " 'DE-BI' = 'DE-BI' ";
|
private static final String SubstitutedSql = " 'DE-BI' = 'DE-BI' ";
|
||||||
private boolean removeSysParams;
|
private boolean removeSysParams;
|
||||||
private UserFormVO userEntity;
|
|
||||||
private final List<Map<String, String>> sysParams = new ArrayList<>();
|
private final List<Map<String, String>> sysParams = new ArrayList<>();
|
||||||
|
|
||||||
public String handleVariableDefaultValue(String sql, String sqlVariableDetails, boolean isEdit, boolean isFromDataSet, List<SqlVariableDetails> parameters, boolean isCross, Map<Long, DatasourceSchemaDTO> dsMap, PluginManageApi pluginManage, UserFormVO userEntity) {
|
public String handleVariableDefaultValue(String sql, String sqlVariableDetails, boolean isEdit, boolean isFromDataSet, List<SqlVariableDetails> parameters, boolean isCross, Map<Long, DatasourceSchemaDTO> dsMap, PluginManageApi pluginManage) {
|
||||||
DatasourceSchemaDTO ds = dsMap.entrySet().iterator().next().getValue();
|
DatasourceSchemaDTO ds = dsMap.entrySet().iterator().next().getValue();
|
||||||
if (StringUtils.isEmpty(sql)) {
|
if (StringUtils.isEmpty(sql)) {
|
||||||
DEException.throwException(Translator.get("i18n_sql_not_empty"));
|
DEException.throwException(Translator.get("i18n_sql_not_empty"));
|
||||||
}
|
}
|
||||||
this.userEntity = userEntity;
|
|
||||||
try {
|
try {
|
||||||
this.removeSysParams = true;
|
this.removeSysParams = true;
|
||||||
removeVariables(sql, ds.getType());
|
removeVariables(sql, ds.getType());
|
||||||
@ -699,59 +693,61 @@ public class SqlparserUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String handleSubstitutedSql(String sql) {
|
private String handleSubstitutedSql(String sql) {
|
||||||
if (sql.contains(SysParamsSubstitutedParams) && userEntity != null) {
|
// if (sql.contains(SysParamsSubstitutedParams) && userEntity != null) {
|
||||||
sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userId", userEntity.getAccount());
|
// sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userId", userEntity.getAccount());
|
||||||
sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userEmail", userEntity.getEmail());
|
// sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userEmail", userEntity.getEmail());
|
||||||
sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userName", userEntity.getName());
|
// sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userName", userEntity.getName());
|
||||||
for (SysVariableValueItem variable : userEntity.getVariables()) {
|
// for (SysVariableValueItem variable : userEntity.getVariables()) {
|
||||||
String value = null;
|
// String value = null;
|
||||||
if (!variable.isValid()) {
|
// if (!variable.isValid()) {
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) {
|
// if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) {
|
||||||
for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) {
|
// for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) {
|
||||||
if (variable.getVariableValueIds().contains(sysVariableValueDto.getId().toString())) {
|
// if (variable.getVariableValueIds().contains(sysVariableValueDto.getId().toString())) {
|
||||||
value = sysVariableValueDto.getValue();
|
// value = sysVariableValueDto.getValue();
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
value = variable.getVariableValue();
|
// value = variable.getVariableValue();
|
||||||
}
|
// }
|
||||||
if (StringUtils.isNotEmpty(value)) {
|
// if (StringUtils.isNotEmpty(value)) {
|
||||||
sql = sql.replace(SysParamsSubstitutedParams + variable.getVariableId(), value);
|
// sql = sql.replace(SysParamsSubstitutedParams + variable.getVariableId(), value);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return sql;
|
// return sql;
|
||||||
} else {
|
// } else {
|
||||||
return SubstitutedSql;
|
// return SubstitutedSql;
|
||||||
}
|
// }
|
||||||
|
return sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private String handleSubstitutedSqlForIn(String sql) {
|
private String handleSubstitutedSqlForIn(String sql) {
|
||||||
if (sql.contains(SysParamsSubstitutedParams) && userEntity != null) {
|
// if (sql.contains(SysParamsSubstitutedParams) && userEntity != null) {
|
||||||
for (SysVariableValueItem variable : userEntity.getVariables()) {
|
// for (SysVariableValueItem variable : userEntity.getVariables()) {
|
||||||
List<String> values = new ArrayList<>();
|
// List<String> values = new ArrayList<>();
|
||||||
if (!variable.isValid()) {
|
// if (!variable.isValid()) {
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) {
|
// if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) {
|
||||||
|
//
|
||||||
for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) {
|
// for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) {
|
||||||
if (variable.getVariableValueIds().contains(sysVariableValueDto.getId().toString())) {
|
// if (variable.getVariableValueIds().contains(sysVariableValueDto.getId().toString())) {
|
||||||
values.add(sysVariableValueDto.getValue());
|
// values.add(sysVariableValueDto.getValue());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if (CollectionUtils.isNotEmpty(values)) {
|
// if (CollectionUtils.isNotEmpty(values)) {
|
||||||
sql = sql.replace(SysParamsSubstitutedParams + variable.getVariableId(), "'" + String.join("','", values) + "'");
|
// sql = sql.replace(SysParamsSubstitutedParams + variable.getVariableId(), "'" + String.join("','", values) + "'");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return sql;
|
// return sql;
|
||||||
} else {
|
// } else {
|
||||||
return SubstitutedSql;
|
// return SubstitutedSql;
|
||||||
}
|
// }
|
||||||
|
return sql;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.commons.utils;
|
package io.gisbi.commons.utils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.config;
|
package io.gisbi.config;
|
||||||
|
|
||||||
import com.fit2cloud.autoconfigure.QuartzAutoConfiguration;
|
import com.fit2cloud.autoconfigure.QuartzAutoConfiguration;
|
||||||
import io.dataease.utils.CommonThreadPool;
|
import io.gisbi.utils.CommonThreadPool;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
@ -1,16 +1,16 @@
|
|||||||
package io.dataease.config;
|
package io.gisbi.config;
|
||||||
|
|
||||||
import io.dataease.constant.AuthConstant;
|
import io.gisbi.constant.AuthConstant;
|
||||||
import io.dataease.share.interceptor.LinkInterceptor;
|
import io.gisbi.share.interceptor.LinkInterceptor;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
import static io.dataease.constant.StaticResourceConstants.*;
|
import static io.gisbi.constant.StaticResourceConstants.*;
|
||||||
import static io.dataease.utils.StaticResourceUtils.ensureBoth;
|
import static io.gisbi.utils.StaticResourceUtils.ensureBoth;
|
||||||
import static io.dataease.utils.StaticResourceUtils.ensureSuffix;
|
import static io.gisbi.utils.StaticResourceUtils.ensureSuffix;
|
||||||
@Configuration
|
@Configuration
|
||||||
public class DeMvcConfig implements WebMvcConfigurer {
|
public class DeMvcConfig implements WebMvcConfigurer {
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
package io.dataease.config;
|
package io.gisbi.config;
|
||||||
|
|
||||||
|
|
||||||
import io.dataease.commons.utils.MybatisInterceptorConfig;
|
import io.gisbi.commons.utils.MybatisInterceptorConfig;
|
||||||
import io.dataease.datasource.dao.auto.entity.CoreDatasource;
|
import io.gisbi.datasource.dao.auto.entity.CoreDatasource;
|
||||||
import io.dataease.datasource.dao.auto.entity.CoreDeEngine;
|
import io.gisbi.datasource.dao.auto.entity.CoreDeEngine;
|
||||||
import io.dataease.interceptor.MybatisInterceptor;
|
import io.gisbi.interceptor.MybatisInterceptor;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
@ -1,7 +1,7 @@
|
|||||||
package io.dataease.dataset.constant;
|
package io.gisbi.dataset.constant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author Junjun
|
* @Author bi-coder
|
||||||
*/
|
*/
|
||||||
public class DatasetTableType {
|
public class DatasetTableType {
|
||||||
public static String DB = "db";
|
public static String DB = "db";
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.dataset.dao.auto.entity;
|
package io.gisbi.dataset.dao.auto.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
|||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author fit2cloud
|
* @Author bi-coder
|
||||||
* @since 2023-08-28
|
* @since 2023-08-28
|
||||||
*/
|
*/
|
||||||
@TableName("core_dataset_group")
|
@TableName("core_dataset_group")
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.dataset.dao.auto.entity;
|
package io.gisbi.dataset.dao.auto.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
|||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author fit2cloud
|
* @Author bi-coder
|
||||||
* @since 2023-04-14
|
* @since 2023-04-14
|
||||||
*/
|
*/
|
||||||
@TableName("core_dataset_table")
|
@TableName("core_dataset_table")
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.dataset.dao.auto.entity;
|
package io.gisbi.dataset.dao.auto.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
|||||||
* table数据集表字段
|
* table数据集表字段
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author fit2cloud
|
* @Author bi-coder
|
||||||
* @since 2025-02-06
|
* @since 2025-02-06
|
||||||
*/
|
*/
|
||||||
@TableName("core_dataset_table_field")
|
@TableName("core_dataset_table_field")
|
@ -1,4 +1,4 @@
|
|||||||
package io.dataease.dataset.dao.auto.entity;
|
package io.gisbi.dataset.dao.auto.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
|||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author fit2cloud
|
* @Author bi-coder
|
||||||
* @since 2023-08-08
|
* @since 2023-08-08
|
||||||
*/
|
*/
|
||||||
@TableName("core_dataset_table_sql_log")
|
@TableName("core_dataset_table_sql_log")
|
@ -1,6 +1,6 @@
|
|||||||
package io.dataease.dataset.dao.auto.mapper;
|
package io.gisbi.dataset.dao.auto.mapper;
|
||||||
|
|
||||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetGroup;
|
import io.gisbi.dataset.dao.auto.entity.CoreDatasetGroup;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* Mapper 接口
|
* Mapper 接口
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author fit2cloud
|
* @Author bi-coder
|
||||||
* @since 2023-08-28
|
* @since 2023-08-28
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user