代码整理(屏蔽权限验证)
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
|
||||
STOPSIGNAL SIGTERM
|
||||
RUN mkdir -p /opt/apps/config \
|
||||
/opt/dataease2.0/drivers/ \
|
||||
/opt/dataease2.0/cache/ \
|
||||
/opt/dataease2.0/data/map \
|
||||
/opt/dataease2.0/data/static-resource/ \
|
||||
/opt/dataease2.0/data/appearance/ \
|
||||
/opt/dataease2.0/data/exportData/ \
|
||||
/opt/dataease2.0/data/i8n/ \
|
||||
/opt/dataease2.0/data/plugin/
|
||||
/opt/gisbi1.0/drivers/ \
|
||||
/opt/gisbi1.0/cache/ \
|
||||
/opt/gisbi1.0/data/map \
|
||||
/opt/gisbi1.0/data/static-resource/ \
|
||||
/opt/gisbi1.0/data/appearance/ \
|
||||
/opt/gisbi1.0/data/exportData/ \
|
||||
/opt/gisbi1.0/data/i8n/ \
|
||||
/opt/gisbi1.0/data/plugin/
|
||||
|
||||
ADD drivers/* /opt/dataease2.0/drivers/
|
||||
ADD mapFiles/ /opt/dataease2.0/data/map/
|
||||
ADD staticResource/ /opt/dataease2.0/data/static-resource/
|
||||
ADD drivers/* /opt/gisbi1.0/drivers/
|
||||
ADD mapFiles/ /opt/gisbi1.0/data/map/
|
||||
ADD staticResource/ /opt/gisbi1.0/data/static-resource/
|
||||
|
||||
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">
|
||||
<parent>
|
||||
<artifactId>core</artifactId>
|
||||
<groupId>io.dataease</groupId>
|
||||
<version>${dataease.version}</version>
|
||||
<groupId>io.gisbi</groupId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
<artifactId>core-backend</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
@ -19,19 +17,20 @@
|
||||
<version>${guava.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<groupId>io.gisbi</groupId>
|
||||
<artifactId>api-base</artifactId>
|
||||
<version>${dataease.version}</version>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<artifactId>api-permissions</artifactId>
|
||||
<version>${dataease.version}</version>
|
||||
<groupId>io.gisbi</groupId>
|
||||
<artifactId>common</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<groupId>io.gisbi</groupId>
|
||||
<artifactId>api-sync</artifactId>
|
||||
<version>${dataease.version}</version>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
@ -84,6 +83,17 @@
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</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>
|
||||
|
||||
<profiles>
|
||||
@ -173,93 +183,6 @@
|
||||
</plugins>
|
||||
</build>
|
||||
</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>
|
||||
|
||||
<build>
|
||||
@ -313,13 +236,4 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>fit2cloud-public</id>
|
||||
<name>Fit2cloud Public</name>
|
||||
<url>https://repository.fit2cloud.com/repository/fit2cloud-public/</url>
|
||||
</repository>
|
||||
|
||||
</repositories>
|
||||
</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.autoconfigure.SpringBootApplication;
|
||||
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.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.dataease.extensions.view.plugin.AbstractChartPlugin;
|
||||
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||
import io.gisbi.extensions.view.plugin.AbstractChartPlugin;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
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.dataease.chart.constant.ChartConstants;
|
||||
import io.dataease.chart.manage.ChartDataManage;
|
||||
import io.dataease.chart.manage.ChartViewManege;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
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.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
||||
import io.dataease.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.plugin.AbstractChartPlugin;
|
||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.dataease.license.utils.LicenseUtil;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.gisbi.chart.charts.ChartHandlerManager;
|
||||
import io.gisbi.chart.constant.ChartConstants;
|
||||
import io.gisbi.chart.manage.ChartDataManage;
|
||||
import io.gisbi.chart.manage.ChartViewManege;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.dataset.manage.DatasetTableFieldManage;
|
||||
import io.gisbi.constant.SQLConstants;
|
||||
import io.gisbi.engine.sql.SQLProvider;
|
||||
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.exception.DEException;
|
||||
import io.gisbi.extensions.datasource.api.PluginManageApi;
|
||||
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.datasource.vo.DatasourceConfiguration;
|
||||
import io.gisbi.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.plugin.AbstractChartPlugin;
|
||||
import io.gisbi.extensions.view.util.ChartDataUtil;
|
||||
import io.gisbi.extensions.view.util.FieldUtil;
|
||||
import io.gisbi.utils.BeanUtils;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.Getter;
|
||||
@ -381,16 +380,14 @@ public class DefaultChartHandler extends AbstractChartPlugin {
|
||||
prefix = datasourceType.getPrefix();
|
||||
suffix = datasourceType.getSuffix();
|
||||
} else {
|
||||
if (LicenseUtil.licenseValid()) {
|
||||
List<XpackPluginsDatasourceVO> xpackPluginsDatasourceVOS = pluginManage.queryPluginDs();
|
||||
List<XpackPluginsDatasourceVO> list = xpackPluginsDatasourceVOS.stream().filter(ele -> StringUtils.equals(ele.getType(), dsType)).toList();
|
||||
if (ObjectUtils.isNotEmpty(list)) {
|
||||
XpackPluginsDatasourceVO first = list.getFirst();
|
||||
prefix = first.getPrefix();
|
||||
suffix = first.getSuffix();
|
||||
} else {
|
||||
DEException.throwException("当前数据源插件不存在");
|
||||
}
|
||||
List<XpackPluginsDatasourceVO> xpackPluginsDatasourceVOS = pluginManage.queryPluginDs();
|
||||
List<XpackPluginsDatasourceVO> list = xpackPluginsDatasourceVOS.stream().filter(ele -> StringUtils.equals(ele.getType(), dsType)).toList();
|
||||
if (ObjectUtils.isNotEmpty(list)) {
|
||||
XpackPluginsDatasourceVO first = list.getFirst();
|
||||
prefix = first.getPrefix();
|
||||
suffix = first.getSuffix();
|
||||
} else {
|
||||
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.dataease.extensions.view.dto.ChartAxis;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||
|
||||
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.dataease.extensions.view.dto.ChartAxis;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||
|
||||
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 io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.ExtWhere2Str;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.gisbi.engine.sql.SQLProvider;
|
||||
import io.gisbi.engine.trans.ExtWhere2Str;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.util.FieldUtil;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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 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.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
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.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
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.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -12,8 +12,8 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static io.dataease.extensions.view.dto.ChartAxis.extStack;
|
||||
import static io.dataease.extensions.view.dto.ChartAxis.xAxisExt;
|
||||
import static io.gisbi.extensions.view.dto.ChartAxis.extStack;
|
||||
import static io.gisbi.extensions.view.dto.ChartAxis.xAxisExt;
|
||||
|
||||
@Component
|
||||
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.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.dataease.extensions.view.dto.AxisFormatResult;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.chart.charts.impl.ExtQuotaChartHandler;
|
||||
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import lombok.Getter;
|
||||
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.dataease.extensions.view.dto.AxisFormatResult;
|
||||
import io.dataease.extensions.view.dto.ChartAxis;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.chart.charts.impl.GroupChartHandler;
|
||||
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;
|
||||
|
@ -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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.dataset.manage.DatasetDataManage;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
import io.dataease.engine.trans.Field2SQLObj;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
import io.dataease.engine.trans.Table2SQLObj;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
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.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.gisbi.chart.charts.impl.GroupChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.dataset.manage.DatasetDataManage;
|
||||
import io.gisbi.engine.sql.SQLProvider;
|
||||
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||
import io.gisbi.engine.trans.Field2SQLObj;
|
||||
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||
import io.gisbi.engine.trans.Table2SQLObj;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.util.ChartDataUtil;
|
||||
import io.gisbi.extensions.view.util.FieldUtil;
|
||||
import io.gisbi.utils.BeanUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.Getter;
|
||||
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.dataease.extensions.view.dto.AxisFormatResult;
|
||||
import io.dataease.extensions.view.dto.ChartAxis;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.CustomFilterResult;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.extensions.view.dto.CustomFilterResult;
|
||||
import lombok.Getter;
|
||||
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 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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.dataease.extensions.view.dto.ChartAxis;
|
||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||
import io.gisbi.dataset.manage.DatasetTableFieldManage;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.Getter;
|
||||
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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
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.dataease.extensions.view.dto.ChartAxis;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||
import lombok.Getter;
|
||||
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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
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.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.engine.sql.SQLProvider;
|
||||
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.exception.DEException;
|
||||
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.util.FieldUtil;
|
||||
import io.gisbi.i18n.Translator;
|
||||
import io.gisbi.utils.BeanUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
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 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.dataease.chart.charts.impl.YoyChartHandler;
|
||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
||||
import io.dataease.extensions.view.dto.ChartAxis;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
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;
|
||||
|
@ -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 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 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 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 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.dataease.extensions.view.dto.AxisFormatResult;
|
||||
import io.dataease.extensions.view.dto.ChartAxis;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.extensions.view.dto.AxisFormatResult;
|
||||
import io.gisbi.extensions.view.dto.ChartAxis;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import org.springframework.stereotype.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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
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.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||
import io.gisbi.chart.utils.ChartDataBuild;
|
||||
import io.gisbi.engine.sql.SQLProvider;
|
||||
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.util.ChartDataUtil;
|
||||
import io.gisbi.extensions.view.util.FieldUtil;
|
||||
import lombok.Getter;
|
||||
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.dataease.chart.charts.impl.DefaultChartHandler;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.gisbi.api.chart.dto.PageInfo;
|
||||
import io.gisbi.chart.charts.impl.DefaultChartHandler;
|
||||
import io.gisbi.engine.sql.SQLProvider;
|
||||
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.util.ChartDataUtil;
|
||||
import io.gisbi.extensions.view.util.FieldUtil;
|
||||
import io.gisbi.utils.BeanUtils;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.gisbi.chart.charts.impl.YoyChartHandler;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.dataease.utils.IDUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.gisbi.chart.charts.impl.GroupChartHandler;
|
||||
import io.gisbi.constant.DeTypeConstants;
|
||||
import io.gisbi.engine.constant.ExtFieldConstant;
|
||||
import io.gisbi.engine.sql.SQLProvider;
|
||||
import io.gisbi.engine.trans.Dimension2SQLObj;
|
||||
import io.gisbi.engine.trans.Quota2SQLObj;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.util.FieldUtil;
|
||||
import io.gisbi.utils.BeanUtils;
|
||||
import io.gisbi.utils.IDUtils;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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 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 java.io.Serializable;
|
||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
* 组件图表表
|
||||
* </p>
|
||||
*
|
||||
* @author fit2cloud
|
||||
* @Author bi-coder
|
||||
* @since 2024-12-12
|
||||
*/
|
||||
@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 org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
* 组件图表表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author fit2cloud
|
||||
* @Author bi-coder
|
||||
* @since 2024-12-12
|
||||
*/
|
||||
@Mapper
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.chart.dao.ext.entity;
|
||||
package io.gisbi.chart.dao.ext.entity;
|
||||
|
||||
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.dataease.chart.dao.ext.entity.ChartBasePO;
|
||||
import io.gisbi.api.chart.vo.ViewSelectorVO;
|
||||
import io.gisbi.chart.dao.ext.entity.ChartBasePO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
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.dataease.api.permissions.auth.dto.BusiPerCheckDTO;
|
||||
import io.dataease.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO;
|
||||
import io.dataease.chart.charts.ChartHandlerManager;
|
||||
import io.dataease.chart.constant.ChartConstants;
|
||||
import io.dataease.constant.AuthEnum;
|
||||
import io.dataease.dataset.manage.DatasetGroupManage;
|
||||
import io.dataease.dataset.manage.DatasetSQLManage;
|
||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
||||
import io.dataease.dataset.manage.PermissionManage;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.*;
|
||||
import io.dataease.engine.utils.SQLUtils;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
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.factory.ProviderFactory;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.factory.PluginsChartFactory;
|
||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
||||
import io.dataease.extensions.view.plugin.AbstractChartPlugin;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.result.ResultCode;
|
||||
import io.dataease.system.manage.CorePermissionManage;
|
||||
import io.dataease.utils.AuthUtils;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.gisbi.api.dataset.union.DatasetGroupInfoDTO;
|
||||
|
||||
import io.gisbi.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO;
|
||||
import io.gisbi.chart.charts.ChartHandlerManager;
|
||||
import io.gisbi.chart.constant.ChartConstants;
|
||||
import io.gisbi.dataset.manage.DatasetGroupManage;
|
||||
import io.gisbi.dataset.manage.DatasetSQLManage;
|
||||
import io.gisbi.dataset.manage.DatasetTableFieldManage;
|
||||
import io.gisbi.dataset.manage.PermissionManage;
|
||||
import io.gisbi.engine.sql.SQLProvider;
|
||||
import io.gisbi.engine.trans.*;
|
||||
import io.gisbi.engine.utils.SQLUtils;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.exception.DEException;
|
||||
import io.gisbi.extensions.datasource.api.PluginManageApi;
|
||||
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.factory.ProviderFactory;
|
||||
import io.gisbi.extensions.datasource.model.SQLMeta;
|
||||
import io.gisbi.extensions.datasource.provider.Provider;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.factory.PluginsChartFactory;
|
||||
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||
import io.gisbi.extensions.view.plugin.AbstractChartPlugin;
|
||||
import io.gisbi.extensions.view.util.FieldUtil;
|
||||
import io.gisbi.i18n.Translator;
|
||||
import io.gisbi.result.ResultCode;
|
||||
import io.gisbi.utils.AuthUtils;
|
||||
import io.gisbi.utils.BeanUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.MapUtils;
|
||||
@ -47,7 +45,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
* @Author bi-coder
|
||||
*/
|
||||
@Component
|
||||
public class ChartDataManage {
|
||||
@ -60,14 +58,12 @@ public class ChartDataManage {
|
||||
@Resource
|
||||
private ChartViewManege chartViewManege;
|
||||
@Resource
|
||||
private PermissionManage permissionManage;
|
||||
@Resource
|
||||
private ChartFilterTreeService chartFilterTreeService;
|
||||
@Resource
|
||||
private ChartHandlerManager chartHandlerManager;
|
||||
|
||||
@Resource
|
||||
private CorePermissionManage corePermissionManage;
|
||||
private PermissionManage permissionManage;
|
||||
|
||||
@Autowired(required = false)
|
||||
private PluginManageApi pluginManage;
|
||||
|
||||
@ -115,13 +111,13 @@ public class ChartDataManage {
|
||||
DEException.throwException(ResultCode.DATA_IS_WRONG.code(), Translator.get("i18n_no_ds"));
|
||||
}
|
||||
// check permission
|
||||
BusiPerCheckDTO dto = new BusiPerCheckDTO();
|
||||
dto.setId(table.getId());
|
||||
dto.setAuthEnum(AuthEnum.READ);
|
||||
boolean checked = corePermissionManage.checkAuth(dto);
|
||||
if (!checked) {
|
||||
DEException.throwException(Translator.get("i18n_no_dataset_permission"));
|
||||
}
|
||||
// BusiPerCheckDTO dto = new BusiPerCheckDTO();
|
||||
// dto.setId(table.getId());
|
||||
// dto.setAuthEnum(AuthEnum.READ);
|
||||
// boolean checked = corePermissionManage.checkAuth(dto);
|
||||
// if (!checked) {
|
||||
// DEException.throwException(Translator.get("i18n_no_dataset_permission"));
|
||||
// }
|
||||
|
||||
List<ChartViewFieldDTO> allFields = getAllChartFields(view);
|
||||
// column permission
|
@ -1,16 +1,16 @@
|
||||
package io.dataease.chart.manage;
|
||||
package io.gisbi.chart.manage;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField;
|
||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
||||
import io.dataease.engine.utils.SQLUtils;
|
||||
import io.dataease.extensions.datasource.dto.CalParam;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.FieldGroupDTO;
|
||||
import io.dataease.extensions.view.filter.FilterTreeItem;
|
||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.gisbi.dataset.dao.auto.entity.CoreDatasetTableField;
|
||||
import io.gisbi.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
||||
import io.gisbi.engine.utils.SQLUtils;
|
||||
import io.gisbi.extensions.datasource.dto.CalParam;
|
||||
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.gisbi.extensions.datasource.dto.FieldGroupDTO;
|
||||
import io.gisbi.extensions.view.filter.FilterTreeItem;
|
||||
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||
import io.gisbi.utils.BeanUtils;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
@ -21,7 +21,7 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
* @Author bi-coder
|
||||
*/
|
||||
@Service
|
||||
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.update.UpdateWrapper;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.dataease.api.chart.vo.ChartBaseVO;
|
||||
import io.dataease.api.chart.vo.ViewSelectorVO;
|
||||
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
||||
import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper;
|
||||
import io.dataease.chart.dao.ext.entity.ChartBasePO;
|
||||
import io.dataease.chart.dao.ext.mapper.ExtChartViewMapper;
|
||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField;
|
||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
||||
import io.dataease.dataset.manage.PermissionManage;
|
||||
import io.dataease.dataset.utils.TableUtils;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.func.FunctionConstant;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.dto.CalParam;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.FieldGroupDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLObj;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.license.config.XpackInteract;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.dataease.utils.IDUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.dataease.utils.LogUtil;
|
||||
import io.dataease.visualization.dao.auto.entity.DataVisualizationInfo;
|
||||
import io.dataease.visualization.dao.auto.mapper.DataVisualizationInfoMapper;
|
||||
import io.gisbi.api.chart.vo.ChartBaseVO;
|
||||
import io.gisbi.api.chart.vo.ViewSelectorVO;
|
||||
import io.gisbi.chart.dao.auto.entity.CoreChartView;
|
||||
import io.gisbi.chart.dao.auto.mapper.CoreChartViewMapper;
|
||||
import io.gisbi.chart.dao.ext.entity.ChartBasePO;
|
||||
import io.gisbi.chart.dao.ext.mapper.ExtChartViewMapper;
|
||||
import io.gisbi.dataset.dao.auto.entity.CoreDatasetTableField;
|
||||
import io.gisbi.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
||||
import io.gisbi.dataset.manage.DatasetTableFieldManage;
|
||||
import io.gisbi.dataset.utils.TableUtils;
|
||||
import io.gisbi.engine.constant.ExtFieldConstant;
|
||||
import io.gisbi.engine.func.FunctionConstant;
|
||||
import io.gisbi.engine.utils.Utils;
|
||||
import io.gisbi.exception.DEException;
|
||||
import io.gisbi.extensions.datasource.api.PluginManageApi;
|
||||
import io.gisbi.extensions.datasource.dto.CalParam;
|
||||
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.gisbi.extensions.datasource.dto.FieldGroupDTO;
|
||||
import io.gisbi.extensions.datasource.model.SQLObj;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||
import io.gisbi.i18n.Translator;
|
||||
import io.gisbi.utils.BeanUtils;
|
||||
import io.gisbi.utils.IDUtils;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import io.gisbi.utils.LogUtil;
|
||||
import io.gisbi.visualization.dao.auto.entity.DataVisualizationInfo;
|
||||
import io.gisbi.visualization.dao.auto.mapper.DataVisualizationInfoMapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -50,7 +48,7 @@ import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
* @Author bi-coder
|
||||
*/
|
||||
@Component
|
||||
public class ChartViewManege {
|
||||
@ -60,8 +58,7 @@ public class ChartViewManege {
|
||||
private ChartDataManage chartDataManage;
|
||||
@Resource
|
||||
private CoreDatasetTableFieldMapper coreDatasetTableFieldMapper;
|
||||
@Resource
|
||||
private PermissionManage permissionManage;
|
||||
|
||||
|
||||
@Resource
|
||||
private DataVisualizationInfoMapper visualizationInfoMapper;
|
||||
@ -105,7 +102,6 @@ public class ChartViewManege {
|
||||
coreChartViewMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@XpackInteract(value = "chartViewManage")
|
||||
public void disuse(List<Long> chartIdList) {
|
||||
}
|
||||
|
||||
@ -224,7 +220,8 @@ public class ChartViewManege {
|
||||
}).collect(Collectors.toList());
|
||||
// filter column disable field
|
||||
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.add(createCountField(id));
|
||||
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.fasterxml.jackson.core.type.TypeReference;
|
||||
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
||||
import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper;
|
||||
import io.dataease.extensions.view.dto.ChartCustomFilterItemDTO;
|
||||
import io.dataease.extensions.view.dto.ChartFieldCustomFilterDTO;
|
||||
import io.dataease.extensions.view.filter.FilterTreeItem;
|
||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.gisbi.chart.dao.auto.entity.CoreChartView;
|
||||
import io.gisbi.chart.dao.auto.mapper.CoreChartViewMapper;
|
||||
import io.gisbi.extensions.view.dto.ChartCustomFilterItemDTO;
|
||||
import io.gisbi.extensions.view.dto.ChartFieldCustomFilterDTO;
|
||||
import io.gisbi.extensions.view.filter.FilterTreeItem;
|
||||
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
@ -19,7 +19,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
* @Author bi-coder
|
||||
*/
|
||||
@Service
|
||||
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.dataease.api.chart.vo.ThresholdCheckVO;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.dataease.extensions.view.filter.FilterTreeItem;
|
||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.utils.DateUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.dataease.utils.LogUtil;
|
||||
import io.gisbi.api.chart.request.ThresholdCheckRequest;
|
||||
import io.gisbi.api.chart.vo.ThresholdCheckVO;
|
||||
import io.gisbi.constant.DeTypeConstants;
|
||||
import io.gisbi.exception.DEException;
|
||||
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.gisbi.extensions.view.filter.FilterTreeItem;
|
||||
import io.gisbi.extensions.view.filter.FilterTreeObj;
|
||||
import io.gisbi.i18n.Translator;
|
||||
import io.gisbi.utils.DateUtils;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import io.gisbi.utils.LogUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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 io.dataease.api.chart.ChartDataApi;
|
||||
import io.dataease.api.chart.dto.ViewDetailField;
|
||||
import io.dataease.api.chart.request.ChartExcelRequest;
|
||||
import io.dataease.api.chart.request.ChartExcelRequestInner;
|
||||
import io.dataease.auth.DeLinkPermit;
|
||||
import io.dataease.chart.constant.ChartConstants;
|
||||
import io.dataease.chart.manage.ChartDataManage;
|
||||
import io.dataease.constant.AuthConstant;
|
||||
import io.dataease.constant.CommonConstants;
|
||||
import io.dataease.dataset.manage.PermissionManage;
|
||||
import io.dataease.dataset.server.DatasetFieldServer;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.exportCenter.manage.ExportCenterManage;
|
||||
import io.dataease.exportCenter.util.ExportCenterUtils;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.license.manage.F2CLicLimitedManage;
|
||||
import io.dataease.result.ResultCode;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.dataease.utils.LogUtil;
|
||||
import io.dataease.visualization.manage.VisualizationTemplateExtendDataManage;
|
||||
import io.gisbi.api.chart.ChartDataApi;
|
||||
import io.gisbi.api.chart.dto.ViewDetailField;
|
||||
import io.gisbi.api.chart.request.ChartExcelRequest;
|
||||
import io.gisbi.api.chart.request.ChartExcelRequestInner;
|
||||
import io.gisbi.auth.DeLinkPermit;
|
||||
import io.gisbi.chart.constant.ChartConstants;
|
||||
import io.gisbi.chart.manage.ChartDataManage;
|
||||
import io.gisbi.constant.AuthConstant;
|
||||
import io.gisbi.constant.CommonConstants;
|
||||
|
||||
import io.gisbi.dataset.server.DatasetFieldServer;
|
||||
import io.gisbi.dataset.manage.PermissionManage;
|
||||
import io.gisbi.constant.DeTypeConstants;
|
||||
import io.gisbi.exception.DEException;
|
||||
import io.gisbi.exportCenter.manage.ExportCenterManage;
|
||||
import io.gisbi.exportCenter.util.ExportCenterUtils;
|
||||
import io.gisbi.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.result.ResultCode;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import io.gisbi.utils.LogUtil;
|
||||
import io.gisbi.visualization.manage.VisualizationTemplateExtendDataManage;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
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.util.CellRangeAddress;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -50,7 +51,7 @@ import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
* @Author bi-coder
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/chartData")
|
||||
@ -68,8 +69,6 @@ public class ChartDataServer implements ChartDataApi {
|
||||
@Resource
|
||||
private DatasetFieldServer datasetFieldServer;
|
||||
|
||||
@Resource(name = "f2CLicLimitedManage")
|
||||
private F2CLicLimitedManage f2CLicLimitedManage;
|
||||
@Value("${dataease.export.page.size:50000}")
|
||||
private Integer extractPageSize;
|
||||
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.dataease.api.chart.vo.ChartBaseVO;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.dataease.api.chart.vo.ViewSelectorVO;
|
||||
import io.dataease.chart.manage.ChartViewManege;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.result.ResultCode;
|
||||
import io.gisbi.api.chart.ChartViewApi;
|
||||
import io.gisbi.api.chart.vo.ChartBaseVO;
|
||||
import io.gisbi.extensions.view.dto.ChartViewDTO;
|
||||
import io.gisbi.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.gisbi.api.chart.vo.ViewSelectorVO;
|
||||
import io.gisbi.chart.manage.ChartViewManege;
|
||||
import io.gisbi.exception.DEException;
|
||||
import io.gisbi.result.ResultCode;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -16,7 +16,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
* @Author bi-coder
|
||||
*/
|
||||
@RestController
|
||||
@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.dataease.api.chart.dto.Series;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.i18n.Lang;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.utils.IDUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.gisbi.api.chart.dto.ScatterChartDataDTO;
|
||||
import io.gisbi.api.chart.dto.Series;
|
||||
import io.gisbi.extensions.view.dto.*;
|
||||
import io.gisbi.i18n.Lang;
|
||||
import io.gisbi.i18n.Translator;
|
||||
import io.gisbi.utils.IDUtils;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
@ -1375,7 +1375,7 @@ public class ChartDataBuild {
|
||||
axisChartDataDTO.setName(xField.toString());
|
||||
|
||||
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++) {
|
||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.commons;
|
||||
package io.gisbi.commons;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.commons.constants;
|
||||
package io.gisbi.commons.constants;
|
||||
|
||||
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
|
||||
*/
|
||||
public class OptConstants {
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.commons.constants;
|
||||
package io.gisbi.commons.constants;
|
||||
|
||||
public enum TaskStatus {
|
||||
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.lang3.StringUtils;
|
||||
@ -12,7 +12,7 @@ import java.util.UUID;
|
||||
/**
|
||||
* 加密解密工具
|
||||
*
|
||||
* @author kun.mo
|
||||
* @Author bi-coder
|
||||
*/
|
||||
public class CodingUtil {
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.dataease.commons.utils;
|
||||
package io.gisbi.commons.utils;
|
||||
|
||||
import io.dataease.constant.SortConstants;
|
||||
import io.dataease.visualization.dto.VisualizationNodeBO;
|
||||
import io.gisbi.constant.SortConstants;
|
||||
import io.gisbi.visualization.dto.VisualizationNodeBO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.text.Collator;
|
||||
@ -9,7 +9,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author : WangJiaHao
|
||||
* @Author bi-coder
|
||||
* @date : 2024/3/18 10:53
|
||||
*/
|
||||
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.quartz.CronExpression;
|
||||
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.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.dataease.i18n.Translator;
|
||||
import io.dataease.utils.IPUtils;
|
||||
import io.dataease.visualization.dto.WatermarkContentDTO;
|
||||
import io.gisbi.i18n.Translator;
|
||||
import io.gisbi.utils.IPUtils;
|
||||
import io.gisbi.visualization.dto.WatermarkContentDTO;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
|
||||
import java.awt.Color;
|
||||
@ -21,31 +20,31 @@ public class ExcelWatermarkUtils {
|
||||
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
|
||||
public static String transContent(WatermarkContentDTO watermarkContent, UserFormVO userInfo) {
|
||||
String content = "";
|
||||
switch (watermarkContent.getType()) {
|
||||
case "custom" -> content = watermarkContent.getContent();
|
||||
case "nickName" -> content = "${nickName}";
|
||||
case "ip" -> content = "${ip}";
|
||||
case "time" -> content = "${time}";
|
||||
default -> content = "${username}";
|
||||
}
|
||||
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("\\$\\{username}", userInfo.getAccount());
|
||||
content = content.replaceAll("\\$\\{nickName}", nickName);
|
||||
content = content.replaceAll("\\$\\{time}", sdf.format(new Date()));
|
||||
return content;
|
||||
}
|
||||
// public static String transContent(WatermarkContentDTO watermarkContent, UserFormVO userInfo) {
|
||||
// String content = "";
|
||||
// switch (watermarkContent.getType()) {
|
||||
// case "custom" -> content = watermarkContent.getContent();
|
||||
// case "nickName" -> content = "${nickName}";
|
||||
// case "ip" -> content = "${ip}";
|
||||
// case "time" -> content = "${time}";
|
||||
// default -> content = "${username}";
|
||||
// }
|
||||
// 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("\\$\\{username}", userInfo.getAccount());
|
||||
// content = content.replaceAll("\\$\\{nickName}", nickName);
|
||||
// content = content.replaceAll("\\$\\{time}", sdf.format(new Date()));
|
||||
// return content;
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
* 添加水印图片到工作簿并返回图片 ID
|
||||
*/
|
||||
public static int addWatermarkImage(Workbook wb, WatermarkContentDTO watermarkContent, UserFormVO userInfo) {
|
||||
byte[] imageBytes = createTextImage(transContent(watermarkContent, userInfo), watermarkContent); // 生成文字水印图片
|
||||
return wb.addPicture(imageBytes, Workbook.PICTURE_TYPE_PNG); // 添加到工作簿并返回 ID
|
||||
}
|
||||
// public static int addWatermarkImage(Workbook wb, WatermarkContentDTO watermarkContent, UserFormVO userInfo) {
|
||||
// byte[] imageBytes = createTextImage(transContent(watermarkContent, userInfo), watermarkContent); // 生成文字水印图片
|
||||
// return wb.addPicture(imageBytes, Workbook.PICTURE_TYPE_PNG); // 添加到工作簿并返回 ID
|
||||
// }
|
||||
|
||||
public static void addWatermarkToSheet(Sheet sheet, Integer pictureIdx) {
|
||||
Drawing<?> drawing = sheet.createDrawingPatriarch();
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.commons.utils;
|
||||
package io.gisbi.commons.utils;
|
||||
|
||||
|
||||
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 io.dataease.api.permissions.user.vo.UserFormVO;
|
||||
import io.dataease.api.permissions.variable.dto.SysVariableValueDto;
|
||||
import io.dataease.api.permissions.variable.dto.SysVariableValueItem;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
||||
import io.dataease.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||
import io.dataease.extensions.view.dto.SqlVariableDetails;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.gisbi.exception.DEException;
|
||||
import io.gisbi.extensions.datasource.api.PluginManageApi;
|
||||
import io.gisbi.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.gisbi.extensions.datasource.vo.DatasourceConfiguration;
|
||||
import io.gisbi.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||
import io.gisbi.extensions.view.dto.SqlVariableDetails;
|
||||
import io.gisbi.i18n.Translator;
|
||||
import io.dataease.license.utils.LicenseUtil;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import io.dataease.utils.LogUtil;
|
||||
import io.gisbi.utils.JsonUtil;
|
||||
import io.gisbi.utils.LogUtil;
|
||||
import net.sf.jsqlparser.expression.*;
|
||||
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
|
||||
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.StringUtils;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
import org.junit.jupiter.params.provider.CsvSource;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
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.*;
|
||||
|
||||
public class SqlparserUtils {
|
||||
@ -47,15 +43,13 @@ public class SqlparserUtils {
|
||||
private static final String SysParamsSubstitutedParams = "DeSysParams_";
|
||||
private static final String SubstitutedSql = " 'DE-BI' = 'DE-BI' ";
|
||||
private boolean removeSysParams;
|
||||
private UserFormVO userEntity;
|
||||
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();
|
||||
if (StringUtils.isEmpty(sql)) {
|
||||
DEException.throwException(Translator.get("i18n_sql_not_empty"));
|
||||
}
|
||||
this.userEntity = userEntity;
|
||||
try {
|
||||
this.removeSysParams = true;
|
||||
removeVariables(sql, ds.getType());
|
||||
@ -699,59 +693,61 @@ public class SqlparserUtils {
|
||||
}
|
||||
|
||||
private String handleSubstitutedSql(String sql) {
|
||||
if (sql.contains(SysParamsSubstitutedParams) && userEntity != null) {
|
||||
sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userId", userEntity.getAccount());
|
||||
sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userEmail", userEntity.getEmail());
|
||||
sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userName", userEntity.getName());
|
||||
for (SysVariableValueItem variable : userEntity.getVariables()) {
|
||||
String value = null;
|
||||
if (!variable.isValid()) {
|
||||
continue;
|
||||
}
|
||||
if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) {
|
||||
for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) {
|
||||
if (variable.getVariableValueIds().contains(sysVariableValueDto.getId().toString())) {
|
||||
value = sysVariableValueDto.getValue();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
value = variable.getVariableValue();
|
||||
}
|
||||
if (StringUtils.isNotEmpty(value)) {
|
||||
sql = sql.replace(SysParamsSubstitutedParams + variable.getVariableId(), value);
|
||||
}
|
||||
}
|
||||
return sql;
|
||||
} else {
|
||||
return SubstitutedSql;
|
||||
}
|
||||
// if (sql.contains(SysParamsSubstitutedParams) && userEntity != null) {
|
||||
// sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userId", userEntity.getAccount());
|
||||
// sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userEmail", userEntity.getEmail());
|
||||
// sql = sql.replace(SysParamsSubstitutedParams + "sysParams.userName", userEntity.getName());
|
||||
// for (SysVariableValueItem variable : userEntity.getVariables()) {
|
||||
// String value = null;
|
||||
// if (!variable.isValid()) {
|
||||
// continue;
|
||||
// }
|
||||
// if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) {
|
||||
// for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) {
|
||||
// if (variable.getVariableValueIds().contains(sysVariableValueDto.getId().toString())) {
|
||||
// value = sysVariableValueDto.getValue();
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// value = variable.getVariableValue();
|
||||
// }
|
||||
// if (StringUtils.isNotEmpty(value)) {
|
||||
// sql = sql.replace(SysParamsSubstitutedParams + variable.getVariableId(), value);
|
||||
// }
|
||||
// }
|
||||
// return sql;
|
||||
// } else {
|
||||
// return SubstitutedSql;
|
||||
// }
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
||||
private String handleSubstitutedSqlForIn(String sql) {
|
||||
if (sql.contains(SysParamsSubstitutedParams) && userEntity != null) {
|
||||
for (SysVariableValueItem variable : userEntity.getVariables()) {
|
||||
List<String> values = new ArrayList<>();
|
||||
if (!variable.isValid()) {
|
||||
continue;
|
||||
}
|
||||
if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) {
|
||||
|
||||
for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) {
|
||||
if (variable.getVariableValueIds().contains(sysVariableValueDto.getId().toString())) {
|
||||
values.add(sysVariableValueDto.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(values)) {
|
||||
sql = sql.replace(SysParamsSubstitutedParams + variable.getVariableId(), "'" + String.join("','", values) + "'");
|
||||
}
|
||||
}
|
||||
return sql;
|
||||
} else {
|
||||
return SubstitutedSql;
|
||||
}
|
||||
// if (sql.contains(SysParamsSubstitutedParams) && userEntity != null) {
|
||||
// for (SysVariableValueItem variable : userEntity.getVariables()) {
|
||||
// List<String> values = new ArrayList<>();
|
||||
// if (!variable.isValid()) {
|
||||
// continue;
|
||||
// }
|
||||
// if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) {
|
||||
//
|
||||
// for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) {
|
||||
// if (variable.getVariableValueIds().contains(sysVariableValueDto.getId().toString())) {
|
||||
// values.add(sysVariableValueDto.getValue());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (CollectionUtils.isNotEmpty(values)) {
|
||||
// sql = sql.replace(SysParamsSubstitutedParams + variable.getVariableId(), "'" + String.join("','", values) + "'");
|
||||
// }
|
||||
// }
|
||||
// return sql;
|
||||
// } else {
|
||||
// return SubstitutedSql;
|
||||
// }
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.commons.utils;
|
||||
package io.gisbi.commons.utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
@ -1,7 +1,7 @@
|
||||
package io.dataease.config;
|
||||
package io.gisbi.config;
|
||||
|
||||
import com.fit2cloud.autoconfigure.QuartzAutoConfiguration;
|
||||
import io.dataease.utils.CommonThreadPool;
|
||||
import io.gisbi.utils.CommonThreadPool;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
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.dataease.share.interceptor.LinkInterceptor;
|
||||
import io.gisbi.constant.AuthConstant;
|
||||
import io.gisbi.share.interceptor.LinkInterceptor;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import static io.dataease.constant.StaticResourceConstants.*;
|
||||
import static io.dataease.utils.StaticResourceUtils.ensureBoth;
|
||||
import static io.dataease.utils.StaticResourceUtils.ensureSuffix;
|
||||
import static io.gisbi.constant.StaticResourceConstants.*;
|
||||
import static io.gisbi.utils.StaticResourceUtils.ensureBoth;
|
||||
import static io.gisbi.utils.StaticResourceUtils.ensureSuffix;
|
||||
@Configuration
|
||||
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.dataease.datasource.dao.auto.entity.CoreDatasource;
|
||||
import io.dataease.datasource.dao.auto.entity.CoreDeEngine;
|
||||
import io.dataease.interceptor.MybatisInterceptor;
|
||||
import io.gisbi.commons.utils.MybatisInterceptorConfig;
|
||||
import io.gisbi.datasource.dao.auto.entity.CoreDatasource;
|
||||
import io.gisbi.datasource.dao.auto.entity.CoreDeEngine;
|
||||
import io.gisbi.interceptor.MybatisInterceptor;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
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 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 java.io.Serializable;
|
||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author fit2cloud
|
||||
* @Author bi-coder
|
||||
* @since 2023-08-28
|
||||
*/
|
||||
@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 java.io.Serializable;
|
||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author fit2cloud
|
||||
* @Author bi-coder
|
||||
* @since 2023-04-14
|
||||
*/
|
||||
@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 java.io.Serializable;
|
||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
* table数据集表字段
|
||||
* </p>
|
||||
*
|
||||
* @author fit2cloud
|
||||
* @Author bi-coder
|
||||
* @since 2025-02-06
|
||||
*/
|
||||
@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 java.io.Serializable;
|
||||
@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author fit2cloud
|
||||
* @Author bi-coder
|
||||
* @since 2023-08-08
|
||||
*/
|
||||
@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 org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author fit2cloud
|
||||
* @Author bi-coder
|
||||
* @since 2023-08-28
|
||||
*/
|
||||
@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