feat: 新增逻辑
新增glb模型导入类型、项目打包新增数据库表
This commit is contained in:
parent
6cdc46fedc
commit
eb52424440
@ -15,6 +15,9 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.yaml.snakeyaml.DumperOptions;
|
import org.yaml.snakeyaml.DumperOptions;
|
||||||
import org.yaml.snakeyaml.Yaml;
|
import org.yaml.snakeyaml.Yaml;
|
||||||
|
import org.yaml.snakeyaml.nodes.Node;
|
||||||
|
import org.yaml.snakeyaml.nodes.Tag;
|
||||||
|
import org.yaml.snakeyaml.representer.Representer;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
@ -146,8 +149,8 @@ public class ProjectExportController {
|
|||||||
if (spring.containsKey("datasource")) {
|
if (spring.containsKey("datasource")) {
|
||||||
Map<String, Object> datasource = (Map<String, Object>) spring.get("datasource");
|
Map<String, Object> datasource = (Map<String, Object>) spring.get("datasource");
|
||||||
datasource.put("url", "jdbc:mysql://localhost:3306/newdb");
|
datasource.put("url", "jdbc:mysql://localhost:3306/newdb");
|
||||||
datasource.put("username", "root");
|
datasource.put("username", "roor");
|
||||||
datasource.put("password", "123456");
|
datasource.put("password", "sadfa123456");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,13 +166,18 @@ public class ProjectExportController {
|
|||||||
// 写回 YAML 文件
|
// 写回 YAML 文件
|
||||||
DumperOptions options = new DumperOptions();
|
DumperOptions options = new DumperOptions();
|
||||||
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
|
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
|
||||||
// 美化输出格式
|
|
||||||
options.setPrettyFlow(true);
|
|
||||||
// 缩进两个空格
|
// 缩进两个空格
|
||||||
options.setIndent(2);
|
options.setIndent(2);
|
||||||
|
// 将String类型转换为PLAIN样式
|
||||||
|
// Representer representer = new Representer(options) {
|
||||||
|
// @Override
|
||||||
|
// protected Node representScalar(Tag tag, String value, DumperOptions.ScalarStyle style) {
|
||||||
|
// // 使用 PLAIN 样式(无引号)
|
||||||
|
// return super.representScalar(tag, value, DumperOptions.ScalarStyle.PLAIN);
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// Yaml newYaml = new Yaml(representer,options);
|
||||||
Yaml newYaml = new Yaml(options);
|
Yaml newYaml = new Yaml(options);
|
||||||
|
|
||||||
try (Writer writer = new FileWriter(configPath)) {
|
try (Writer writer = new FileWriter(configPath)) {
|
||||||
newYaml.dump(root, writer);
|
newYaml.dump(root, writer);
|
||||||
}
|
}
|
||||||
|
@ -46,16 +46,19 @@ public class DatabaseService {
|
|||||||
|
|
||||||
// 1. 获取所有要导出的表名
|
// 1. 获取所有要导出的表名
|
||||||
List<String> tables = Arrays.asList("app_application", "app_dictionary", "app_menu", "app_module",
|
List<String> tables = Arrays.asList("app_application", "app_dictionary", "app_menu", "app_module",
|
||||||
"app_organization", "app_role", "app_role_menu", "app_role_users", "app_user", "area",
|
"app_optlog", "app_organization", "app_role", "app_role_menu", "app_role_users", "app_user", "area",
|
||||||
"core_chart_view", "core_dataset_group", "core_dataset_table", "core_dataset_table_field",
|
"core_chart_view", "core_dataset_group", "core_dataset_table", "core_dataset_table_field",
|
||||||
"core_datasource", "core_de_engine", "core_driver", "data_visualization_info",
|
"core_datasource", "core_de_engine", "core_driver", "core_sys_setting", "data_visualization_info",
|
||||||
"visualization_background", "visualization_background_image", "visualization_link_jump",
|
"snapshot_core_chart_view", "snapshot_visualization_link_jump", "snapshot_visualization_link_jump_info",
|
||||||
"visualization_link_jump_info", "visualization_link_jump_target_view_info", "visualization_linkage",
|
"snapshot_visualization_link_jump_target_view_info", "snapshot_visualization_linkage",
|
||||||
"visualization_linkage_field", "visualization_outer_params", "visualization_outer_params_info",
|
"snapshot_visualization_linkage_field", "snapshot_visualization_outer_params_info",
|
||||||
|
"snapshot_visualization_outer_params_target_view_info", "visualization_background",
|
||||||
|
"visualization_background_image", "visualization_link_jump", "visualization_link_jump_info",
|
||||||
|
"visualization_link_jump_target_view_info", "visualization_linkage", "visualization_linkage_field",
|
||||||
|
"visualization_outer_params", "visualization_outer_params_info",
|
||||||
"visualization_outer_params_target_view_info", "visualization_subject");
|
"visualization_outer_params_target_view_info", "visualization_subject");
|
||||||
|
|
||||||
for (String table : tables) {
|
for (String table : tables) {
|
||||||
|
|
||||||
// 2. 获取建表语句
|
// 2. 获取建表语句
|
||||||
String createSql = getCreateTableSql(table);
|
String createSql = getCreateTableSql(table);
|
||||||
if ("app_application".equals(table)) {
|
if ("app_application".equals(table)) {
|
||||||
@ -103,7 +106,7 @@ public class DatabaseService {
|
|||||||
// 3. 获取数据插入语句
|
// 3. 获取数据插入语句
|
||||||
List<String> insertSqls = getInsertSqls(table, conditions);
|
List<String> insertSqls = getInsertSqls(table, conditions);
|
||||||
result.add(new TableData(table, createSql, insertSqls));
|
result.add(new TableData(table, createSql, insertSqls));
|
||||||
} else if ("core_chart_view".equals(table)) {
|
} else if ("core_chart_view".equals(table) || "snapshot_core_chart_view".equals(table)) {
|
||||||
|
|
||||||
List<DataVisualizationInfo> dataVisualizationInfos =
|
List<DataVisualizationInfo> dataVisualizationInfos =
|
||||||
dataVisualizationInfoMapper.selectList(new LambdaQueryWrapper<DataVisualizationInfo>().eq(DataVisualizationInfo::getAppId, id).select(DataVisualizationInfo::getId));
|
dataVisualizationInfoMapper.selectList(new LambdaQueryWrapper<DataVisualizationInfo>().eq(DataVisualizationInfo::getAppId, id).select(DataVisualizationInfo::getId));
|
||||||
@ -120,7 +123,7 @@ public class DatabaseService {
|
|||||||
// 3. 获取数据插入语句
|
// 3. 获取数据插入语句
|
||||||
List<String> insertSqls = getInsertSqls(table, conditions);
|
List<String> insertSqls = getInsertSqls(table, conditions);
|
||||||
result.add(new TableData(table, createSql, insertSqls));
|
result.add(new TableData(table, createSql, insertSqls));
|
||||||
} else if ("visualization_link_jump".equals(table)) {
|
} else if ("visualization_link_jump".equals(table) || "snapshot_visualization_link_jump".equals(table)) {
|
||||||
List<DataVisualizationInfo> dataVisualizationInfos =
|
List<DataVisualizationInfo> dataVisualizationInfos =
|
||||||
dataVisualizationInfoMapper.selectList(new LambdaQueryWrapper<DataVisualizationInfo>().eq(DataVisualizationInfo::getAppId, id).select(DataVisualizationInfo::getId));
|
dataVisualizationInfoMapper.selectList(new LambdaQueryWrapper<DataVisualizationInfo>().eq(DataVisualizationInfo::getAppId, id).select(DataVisualizationInfo::getId));
|
||||||
|
|
||||||
@ -138,7 +141,7 @@ public class DatabaseService {
|
|||||||
List<String> insertSqls = getInsertSqls(table, conditions);
|
List<String> insertSqls = getInsertSqls(table, conditions);
|
||||||
result.add(new TableData(table, createSql, insertSqls));
|
result.add(new TableData(table, createSql, insertSqls));
|
||||||
|
|
||||||
} else if ("visualization_link_jump_info".equals(table)) {
|
} else if ("visualization_link_jump_info".equals(table) || "snapshot_visualization_link_jump_info".equals(table)) {
|
||||||
List<Long> ids = visualizationLinkJumpMapper.selectLinkJumpIds(id);
|
List<Long> ids = visualizationLinkJumpMapper.selectLinkJumpIds(id);
|
||||||
List<Condition> conditions = new ArrayList<>();
|
List<Condition> conditions = new ArrayList<>();
|
||||||
if (!ids.isEmpty()) {
|
if (!ids.isEmpty()) {
|
||||||
@ -151,7 +154,8 @@ public class DatabaseService {
|
|||||||
// 3. 获取数据插入语句
|
// 3. 获取数据插入语句
|
||||||
List<String> insertSqls = getInsertSqls(table, conditions);
|
List<String> insertSqls = getInsertSqls(table, conditions);
|
||||||
result.add(new TableData(table, createSql, insertSqls));
|
result.add(new TableData(table, createSql, insertSqls));
|
||||||
} else if ("visualization_link_jump_target_view_info".equals(table)) {
|
} else if ("visualization_link_jump_target_view_info".equals(table) ||
|
||||||
|
"snapshot_visualization_link_jump_target_view_info".equals(table)) {
|
||||||
List<Long> dvInfoIds = visualizationLinkJumpInfoMapper.selectInfoIds(id);
|
List<Long> dvInfoIds = visualizationLinkJumpInfoMapper.selectInfoIds(id);
|
||||||
List<Condition> conditions = new ArrayList<>();
|
List<Condition> conditions = new ArrayList<>();
|
||||||
if (!dvInfoIds.isEmpty()) {
|
if (!dvInfoIds.isEmpty()) {
|
||||||
@ -190,7 +194,7 @@ public class DatabaseService {
|
|||||||
// 3. 获取数据插入语句
|
// 3. 获取数据插入语句
|
||||||
List<String> insertSqls = getInsertSqls(table, conditions);
|
List<String> insertSqls = getInsertSqls(table, conditions);
|
||||||
result.add(new TableData(table, createSql, insertSqls));
|
result.add(new TableData(table, createSql, insertSqls));
|
||||||
}else if ("visualization_outer_params".equals(table)) {
|
} else if ("visualization_outer_params".equals(table) || "snapshot_visualization_outer_params".equals(table)) {
|
||||||
List<DataVisualizationInfo> dataVisualizationInfos =
|
List<DataVisualizationInfo> dataVisualizationInfos =
|
||||||
dataVisualizationInfoMapper.selectList(new LambdaQueryWrapper<DataVisualizationInfo>().eq(DataVisualizationInfo::getAppId, id).select(DataVisualizationInfo::getId));
|
dataVisualizationInfoMapper.selectList(new LambdaQueryWrapper<DataVisualizationInfo>().eq(DataVisualizationInfo::getAppId, id).select(DataVisualizationInfo::getId));
|
||||||
List<Condition> conditions = new ArrayList<>();
|
List<Condition> conditions = new ArrayList<>();
|
||||||
@ -206,7 +210,7 @@ public class DatabaseService {
|
|||||||
// 3. 获取数据插入语句
|
// 3. 获取数据插入语句
|
||||||
List<String> insertSqls = getInsertSqls(table, conditions);
|
List<String> insertSqls = getInsertSqls(table, conditions);
|
||||||
result.add(new TableData(table, createSql, insertSqls));
|
result.add(new TableData(table, createSql, insertSqls));
|
||||||
}else if ("visualization_outer_params_info".equals(table)) {
|
} else if ("visualization_outer_params_info".equals(table) || "snapshot_visualization_outer_params_info".equals(table)) {
|
||||||
List<Long> outerParamIds = visualizationOuterParamsMapper.selectOuterParamIds(id);
|
List<Long> outerParamIds = visualizationOuterParamsMapper.selectOuterParamIds(id);
|
||||||
List<Condition> conditions = new ArrayList<>();
|
List<Condition> conditions = new ArrayList<>();
|
||||||
if (!outerParamIds.isEmpty()) {
|
if (!outerParamIds.isEmpty()) {
|
||||||
@ -219,7 +223,8 @@ public class DatabaseService {
|
|||||||
// 3. 获取数据插入语句
|
// 3. 获取数据插入语句
|
||||||
List<String> insertSqls = getInsertSqls(table, conditions);
|
List<String> insertSqls = getInsertSqls(table, conditions);
|
||||||
result.add(new TableData(table, createSql, insertSqls));
|
result.add(new TableData(table, createSql, insertSqls));
|
||||||
}else if ("visualization_outer_params_target_view_info".equals(table)) {
|
} else if ("visualization_outer_params_target_view_info".equals(table) ||
|
||||||
|
"snapshot_visualization_outer_params_target_view_info".equals(table)) {
|
||||||
List<Long> paramsInfoIds = visualizationOuterParamsInfoMapper.selectParamsInfoIds(id);
|
List<Long> paramsInfoIds = visualizationOuterParamsInfoMapper.selectParamsInfoIds(id);
|
||||||
List<Condition> conditions = new ArrayList<>();
|
List<Condition> conditions = new ArrayList<>();
|
||||||
if (!paramsInfoIds.isEmpty()) {
|
if (!paramsInfoIds.isEmpty()) {
|
||||||
|
@ -225,7 +225,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
|
|||||||
String parentId = currentMenu.getParentid();
|
String parentId = currentMenu.getParentid();
|
||||||
|
|
||||||
QueryWrapper<Menu> wrapper = new QueryWrapper<>();
|
QueryWrapper<Menu> wrapper = new QueryWrapper<>();
|
||||||
wrapper.eq("parentid", parentId);
|
wrapper.eq("parentid", parentId).eq("app_id",currentMenu.getAppId());
|
||||||
wrapper.orderByAsc("orderno");
|
wrapper.orderByAsc("orderno");
|
||||||
|
|
||||||
List<Menu> siblings = menuMapper.selectList(wrapper);
|
List<Menu> siblings = menuMapper.selectList(wrapper);
|
||||||
@ -267,7 +267,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
|
|||||||
|
|
||||||
// 获取新父级下的最大序号
|
// 获取新父级下的最大序号
|
||||||
QueryWrapper<Menu> wrapper = new QueryWrapper<>();
|
QueryWrapper<Menu> wrapper = new QueryWrapper<>();
|
||||||
wrapper.eq("parentid", targetParentId);
|
wrapper.eq("parentid", targetParentId).eq("app_id",menu.getAppId());
|
||||||
wrapper.select("orderno","code");
|
wrapper.select("orderno","code");
|
||||||
wrapper.orderByDesc("orderno");
|
wrapper.orderByDesc("orderno");
|
||||||
List<Menu> list = menuMapper.selectList(wrapper);
|
List<Menu> list = menuMapper.selectList(wrapper);
|
||||||
|
@ -15,7 +15,12 @@ public enum FileType {
|
|||||||
/**
|
/**
|
||||||
* GIF
|
* GIF
|
||||||
*/
|
*/
|
||||||
GIF("47494638", "gif");
|
GIF("47494638", "gif"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GLB (Binary GLTF)
|
||||||
|
*/
|
||||||
|
GLB("676C5446", "glb");
|
||||||
|
|
||||||
private String value = "";
|
private String value = "";
|
||||||
private String ext = "";
|
private String ext = "";
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
spring:
|
spring:
|
||||||
datasource:
|
datasource:
|
||||||
url: jdbc:mysql://121.37.111.42:3306/dataease?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
|
# url: jdbc:mysql://121.37.111.42:3306/dataease?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
|
||||||
|
url: jdbc:mysql://192.168.1.58:3306/dataease?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
|
||||||
username: root
|
username: root
|
||||||
password: mysql_F8ysiK@2024
|
password: 123456 #mysql_F8ysiK@2024
|
||||||
messages:
|
messages:
|
||||||
basename: i18n/lic,i18n/core,i18n/permissions,i18n/xpack,i18n/sync
|
basename: i18n/lic,i18n/core,i18n/permissions,i18n/xpack,i18n/sync
|
||||||
flyway:
|
flyway:
|
||||||
@ -12,7 +13,11 @@ spring:
|
|||||||
locations: classpath:db/migration
|
locations: classpath:db/migration
|
||||||
baseline-on-migrate: true
|
baseline-on-migrate: true
|
||||||
out-of-order: true
|
out-of-order: true
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
enabled: true
|
||||||
|
max-file-size: 50MB # 单个文件最大
|
||||||
|
max-request-size: 100MB # 每次请求总文件最大
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
mapper-locations: classpath:mybatis/*.xml
|
mapper-locations: classpath:mybatis/*.xml
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user