代码整理(屏蔽权限验证)

This commit is contained in:
root 2025-02-28 17:56:48 +08:00
parent 8000cb79b9
commit 9484d97224
1035 changed files with 3902 additions and 11363 deletions

View File

@ -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

View File

@ -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>

View File

@ -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<>();
}
}
}

View File

@ -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";
}

View File

@ -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";
}

View File

@ -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));
}
}
}

View File

@ -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 +
"}";
}
}

View File

@ -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 +
"}";
}
}

View File

@ -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 +
"}";
}
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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());// 数据库类型如mysqloracle等可能需要映射成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;
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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());
}
}

View File

@ -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); }

View File

@ -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 {
}

View File

@ -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 {
}

View File

@ -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 {
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;

View File

@ -1,4 +1,4 @@
package io.dataease;
package io.gisbi;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;

View File

@ -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;

View File

@ -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,7 +380,6 @@ 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)) {
@ -392,7 +390,6 @@ public class DefaultChartHandler extends AbstractChartPlugin {
DEException.throwException("当前数据源插件不存在");
}
}
}
boolean crossDs = Utils.isCrossDs(dsMap);
StringBuilder stringBuilder = new StringBuilder();

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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";
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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";
}

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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";

View File

@ -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")

View File

@ -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

View File

@ -1,4 +1,4 @@
package io.dataease.chart.dao.ext.entity;
package io.gisbi.chart.dao.ext.entity;
import lombok.Data;

View File

@ -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;

View File

@ -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

View File

@ -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 {

View File

@ -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);

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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")

View File

@ -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();

View File

@ -1,4 +1,4 @@
package io.dataease.commons;
package io.gisbi.commons;
import java.util.UUID;

View File

@ -1,4 +1,4 @@
package io.dataease.commons.constants;
package io.gisbi.commons.constants;
public class DataVisualizationConstants {

View File

@ -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 {

View File

@ -1,4 +1,4 @@
package io.dataease.commons.constants;
package io.gisbi.commons.constants;
public enum TaskStatus {
WaitingForExecution, // 等待执行

View File

@ -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 {

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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();

View File

@ -1,4 +1,4 @@
package io.dataease.commons.utils;
package io.gisbi.commons.utils;
import lombok.Getter;

View File

@ -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);
}
}
// 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;
} else {
return SubstitutedSql;
}
}
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) + "'");
}
}
// 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;
} else {
return SubstitutedSql;
}
}
}

View File

@ -1,4 +1,4 @@
package io.dataease.commons.utils;
package io.gisbi.commons.utils;
import java.io.IOException;
import java.net.HttpURLConnection;

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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";

View File

@ -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")

View File

@ -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")

View File

@ -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")

View File

@ -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")

View File

@ -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