diff --git a/src/main/java/com/yj/earth/auth/AuthGenerator.java b/src/main/java/com/yj/earth/auth/AuthGenerator.java index 2260890..3f35815 100644 --- a/src/main/java/com/yj/earth/auth/AuthGenerator.java +++ b/src/main/java/com/yj/earth/auth/AuthGenerator.java @@ -72,6 +72,6 @@ public class AuthGenerator { } public static void main(String[] args) { - System.out.println(generateAuth("标准版", 1000, 30, "DAC653349FD15F1E6DB2F9322AD628F4")); + System.out.println(generateAuth("标准版", 1000, 30, "25F429FDA965007B72BB7A6B2C03535A")); } } diff --git a/src/main/java/com/yj/earth/business/controller/SourceController.java b/src/main/java/com/yj/earth/business/controller/SourceController.java index eaee9a6..4bf996a 100644 --- a/src/main/java/com/yj/earth/business/controller/SourceController.java +++ b/src/main/java/com/yj/earth/business/controller/SourceController.java @@ -102,7 +102,6 @@ public class SourceController { return ApiResponse.success(source); } - @Operation(summary = "新增其他资源") @PostMapping("/addOtherSource") public ApiResponse addOtherSource(@RequestBody AddOtherSourceDto addOtherSourceDto) throws JsonProcessingException { @@ -126,7 +125,6 @@ public class SourceController { return ApiResponse.success(source); } - @Operation(summary = "更新资源信息") @PostMapping("/update") public ApiResponse updateSource(@RequestBody UpdateSourceDto updateSourceDto) { @@ -146,7 +144,6 @@ public class SourceController { sourceType, updateSourceDto.getParams() ); - System.out.println("更新的数据:" + validatedParams); source.setParams(MapUtil.mapToString(updateSourceDto.getParams())); } // 保存更新 @@ -160,6 +157,36 @@ public class SourceController { return ApiResponse.success(sourceService.getSourceListByUserId(StpUtil.getLoginIdAsString())); } + @Operation(summary = "拖动资源") + @PostMapping("/dragSource") + public ApiResponse drag(@RequestBody List dragSourceDtoList) { + for (DragSourceDto dragSourceDto : dragSourceDtoList) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Source::getId, dragSourceDto.getId()); + Source source = sourceService.getOne(queryWrapper); + source.setTreeIndex(dragSourceDto.getTreeIndex()); + source.setParentId(dragSourceDto.getParentId()); + sourceService.updateById(source); + } + return ApiResponse.success(null); + } + + @Operation(summary = "更新层级") + @PostMapping("/updateLevel") + public ApiResponse updateLevel(@RequestBody List updateLevelDtoList) { + for (UpdateLevelDto updateLevelDto : updateLevelDtoList) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Source::getId, updateLevelDto.getId()); + Source source = sourceService.getOne(queryWrapper); + String params = source.getParams(); + // 修改这个 JSON 的值 + params = JsonUtil.modifyJsonValue(params, "layerIndex", updateLevelDto.getLayerIndex()); + source.setParams(params); + sourceService.updateById(source); + } + return ApiResponse.success(null); + } + @Operation(summary = "删除资源数据") @PostMapping("/delete") public ApiResponse delete(@RequestBody DeleteSourceDto deleteSourceDto) { diff --git a/src/main/java/com/yj/earth/business/domain/Icon.java b/src/main/java/com/yj/earth/business/domain/Icon.java new file mode 100644 index 0000000..a25cf26 --- /dev/null +++ b/src/main/java/com/yj/earth/business/domain/Icon.java @@ -0,0 +1,30 @@ +package com.yj.earth.business.domain; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Icon { + @Schema(description = "主键") + private String id; + @Schema(description = "图标类型ID") + private String iconTypeId; + @Schema(description = "图标名称") + private String iconName; + @Schema(description = "图标类型") + private String iconType; + @Schema(description = "图标数据") + private String data; + @Schema(description = "图标视图") + private String view; + @Schema(description = "创建时间") + private LocalDateTime createdAt; + @Schema(description = "更新时间") + private LocalDateTime updatedAt; +} diff --git a/src/main/java/com/yj/earth/business/domain/IconType.java b/src/main/java/com/yj/earth/business/domain/IconType.java new file mode 100644 index 0000000..fe7debb --- /dev/null +++ b/src/main/java/com/yj/earth/business/domain/IconType.java @@ -0,0 +1,22 @@ +package com.yj.earth.business.domain; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class IconType { + @Schema(description = "主键") + private String id; + @Schema(description = "图标类型名称") + private String name; + @Schema(description = "父级节点ID") + private String parentId; + @Schema(description = "树形索引") + private Integer treeIndex; + @Schema(description = "创建时间") + private LocalDateTime createdAt; + @Schema(description = "更新时间") + private LocalDateTime updatedAt; +} diff --git a/src/main/java/com/yj/earth/business/domain/Military.java b/src/main/java/com/yj/earth/business/domain/Military.java index 19a640e..b48a43b 100644 --- a/src/main/java/com/yj/earth/business/domain/Military.java +++ b/src/main/java/com/yj/earth/business/domain/Military.java @@ -13,15 +13,15 @@ import java.time.LocalDateTime; public class Military { @Schema(description = "主键") private String id; - @Schema(description = "模型类型ID") - private String modelTypeId; - @Schema(description = "模型名称") - private String modelName; - @Schema(description = "模型类型") - private String modelType; - @Schema(description = "模型数据") + @Schema(description = "军标类型ID") + private String militaryTypeId; + @Schema(description = "军标名称") + private String militaryName; + @Schema(description = "军标类型") + private String militaryType; + @Schema(description = "军标数据") private String data; - @Schema(description = "模型视图") + @Schema(description = "军标视图") private String view; @Schema(description = "创建时间") private LocalDateTime createdAt; diff --git a/src/main/java/com/yj/earth/business/domain/MilitaryType.java b/src/main/java/com/yj/earth/business/domain/MilitaryType.java index 2814cbb..ecf43f8 100644 --- a/src/main/java/com/yj/earth/business/domain/MilitaryType.java +++ b/src/main/java/com/yj/earth/business/domain/MilitaryType.java @@ -9,10 +9,12 @@ import java.time.LocalDateTime; public class MilitaryType { @Schema(description = "主键") private String id; - @Schema(description = "模型类型名称") + @Schema(description = "军标类型名称") private String name; @Schema(description = "父级节点ID") private String parentId; + @Schema(description = "树形索引") + private Integer treeIndex; @Schema(description = "创建时间") private LocalDateTime createdAt; @Schema(description = "更新时间") diff --git a/src/main/java/com/yj/earth/business/domain/ModelType.java b/src/main/java/com/yj/earth/business/domain/ModelType.java index ca189af..e26f415 100644 --- a/src/main/java/com/yj/earth/business/domain/ModelType.java +++ b/src/main/java/com/yj/earth/business/domain/ModelType.java @@ -13,6 +13,8 @@ public class ModelType { private String name; @Schema(description = "父级节点ID") private String parentId; + @Schema(description = "树状索引") + private Integer treeIndex; @Schema(description = "创建时间") private LocalDateTime createdAt; @Schema(description = "更新时间") diff --git a/src/main/java/com/yj/earth/common/util/CodeUtil.java b/src/main/java/com/yj/earth/common/util/CodeUtil.java index bd2a73b..55c10e7 100644 --- a/src/main/java/com/yj/earth/common/util/CodeUtil.java +++ b/src/main/java/com/yj/earth/common/util/CodeUtil.java @@ -34,7 +34,7 @@ public class CodeUtil { } // 传入需要生成代码的表名 - Generation("military_library"); + Generation("icon_library"); } public static void Generation(String... tableName) { diff --git a/src/main/java/com/yj/earth/common/util/JsonUtil.java b/src/main/java/com/yj/earth/common/util/JsonUtil.java index 37cdd8f..dab1bc7 100644 --- a/src/main/java/com/yj/earth/common/util/JsonUtil.java +++ b/src/main/java/com/yj/earth/common/util/JsonUtil.java @@ -41,7 +41,8 @@ public class JsonUtil { } try { - return objectMapper.readValue(json, new TypeReference>() {}); + return objectMapper.readValue(json, new TypeReference>() { + }); } catch (Exception e) { log.error("JSON转Map失败、JSON内容: {}", json, e); return new HashMap<>(0); @@ -67,7 +68,7 @@ public class JsonUtil { } try { - // 使用ObjectMapper将Map转换为指定类型对象 + // 使用 ObjectMapper 将 Map 转换为指定类型对象 return objectMapper.convertValue(map, clazz); } catch (IllegalArgumentException e) { log.error("Map转对象失败、目标类型: {}, Map内容: {}", clazz.getName(), map, e); @@ -86,4 +87,49 @@ public class JsonUtil { return null; } } + + /** + * 修改JSON字符串中指定键的值 + */ + public static String modifyJsonValue(String json, String key, Object value) { + if (json == null || json.trim().isEmpty() || key == null || key.trim().isEmpty()) { + return json; + } + + // 将JSON转换为Map + Map map = jsonToMap(json); + if (map == null) { + return json; + } + + // 解析键、支持嵌套 + String[] keyParts = key.split("\\."); + Map currentMap = map; + + // 遍历键的各个部分、处理嵌套结构 + for (int i = 0; i < keyParts.length; i++) { + String part = keyParts[i]; + + // 如果是最后一个部分、直接设置值 + if (i == keyParts.length - 1) { + currentMap.put(part, value); + break; + } + + // 如果不是最后一个部分、检查是否存在该键且对应的值是Map + Object nextObj = currentMap.get(part); + if (nextObj instanceof Map) { + currentMap = (Map) nextObj; + } else { + // 如果不存在或不是 Map、创建新的 Map + Map newMap = new HashMap<>(); + currentMap.put(part, newMap); + currentMap = newMap; + } + } + + // 将修改后的 Map 转换回 JSON + String result = mapToJson(map); + return result != null ? result : json; + } } diff --git a/src/main/java/com/yj/earth/common/util/SQLiteUtil.java b/src/main/java/com/yj/earth/common/util/SQLiteUtil.java index cd6b78d..e2dadb3 100644 --- a/src/main/java/com/yj/earth/common/util/SQLiteUtil.java +++ b/src/main/java/com/yj/earth/common/util/SQLiteUtil.java @@ -305,6 +305,7 @@ public class SQLiteUtil { "id" TEXT, "name" TEXT, "parent_id" TEXT, + "tree_index" INTEGER, "created_at" TEXT, "updated_at" TEXT, PRIMARY KEY ("id") @@ -341,6 +342,7 @@ public class SQLiteUtil { "id" TEXT, "name" TEXT, "parent_id" TEXT, + "tree_index" INTEGER, "created_at" TEXT, "updated_at" TEXT, PRIMARY KEY ("id") @@ -365,4 +367,35 @@ public class SQLiteUtil { executeDDL(modelPath, sql); } + public static void initializationIcon(String iconPath) { + // 创建图标类型表 + String sql = """ + CREATE TABLE "icon_type" ( + "id" TEXT, + "name" TEXT, + "parent_id" TEXT, + "tree_index" INTEGER, + "created_at" TEXT, + "updated_at" TEXT, + PRIMARY KEY ("id") + ); + """; + executeDDL(iconPath, sql); + + // 创建图标表 + sql = """ + CREATE TABLE "icon" ( + "id" TEXT, + "icon_type_id" TEXT, + "icon_name" TEXT, + "icon_type" TEXT, + "data" TEXT, + "view" TEXT, + "created_at" TEXT, + "updated_at" TEXT, + PRIMARY KEY ("id") + ); + """; + executeDDL(iconPath, sql); + } } diff --git a/src/main/java/com/yj/earth/datasource/DatabaseManager.java b/src/main/java/com/yj/earth/datasource/DatabaseManager.java index cd04349..6ac6d14 100644 --- a/src/main/java/com/yj/earth/datasource/DatabaseManager.java +++ b/src/main/java/com/yj/earth/datasource/DatabaseManager.java @@ -49,6 +49,7 @@ public class DatabaseManager { classes.add(FileInfo.class); classes.add(ModelLibrary.class); classes.add(MilitaryLibrary.class); + classes.add(IconLibrary.class); classes.add(BusinessConfig.class); ENTITY_CLASSES = Collections.unmodifiableList(classes); } diff --git a/src/main/java/com/yj/earth/design/IconLibrary.java b/src/main/java/com/yj/earth/design/IconLibrary.java new file mode 100644 index 0000000..d55ea6b --- /dev/null +++ b/src/main/java/com/yj/earth/design/IconLibrary.java @@ -0,0 +1,22 @@ +package com.yj.earth.design; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class IconLibrary { + @Schema(description = "主键") + private String id; + @Schema(description = "图标库路径") + private String path; + @Schema(description = "图标库名称") + private String name; + @Schema(description = "是否启用") + private Integer isEnable; + @Schema(description = "创建时间") + private LocalDateTime createdAt; + @Schema(description = "更新时间") + private LocalDateTime updatedAt; +} diff --git a/src/main/java/com/yj/earth/dto/iconLibrary/AddIconTypeDto.java b/src/main/java/com/yj/earth/dto/iconLibrary/AddIconTypeDto.java new file mode 100644 index 0000000..8ef285f --- /dev/null +++ b/src/main/java/com/yj/earth/dto/iconLibrary/AddIconTypeDto.java @@ -0,0 +1,12 @@ +package com.yj.earth.dto.iconLibrary; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class AddIconTypeDto { + @Schema(description = "图标类型名称") + private String name; + @Schema(description = "父级节点ID") + private String parentId; +} diff --git a/src/main/java/com/yj/earth/dto/iconLibrary/CreateIconLibraryDto.java b/src/main/java/com/yj/earth/dto/iconLibrary/CreateIconLibraryDto.java new file mode 100644 index 0000000..e4d22c3 --- /dev/null +++ b/src/main/java/com/yj/earth/dto/iconLibrary/CreateIconLibraryDto.java @@ -0,0 +1,12 @@ +package com.yj.earth.dto.iconLibrary; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class CreateIconLibraryDto { + @Schema(description = "图标库文件名称") + private String name; + @Schema(description = "生成文件夹路径") + private String path; +} diff --git a/src/main/java/com/yj/earth/dto/iconLibrary/DragIconTypeDto.java b/src/main/java/com/yj/earth/dto/iconLibrary/DragIconTypeDto.java new file mode 100644 index 0000000..c57f5ed --- /dev/null +++ b/src/main/java/com/yj/earth/dto/iconLibrary/DragIconTypeDto.java @@ -0,0 +1,14 @@ +package com.yj.earth.dto.iconLibrary; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class DragIconTypeDto { + @Schema(description = "图标类型ID") + private String id; + @Schema(description = "父级节点ID") + private String parentId; + @Schema(description = "树状索引") + private String treeIndex; +} diff --git a/src/main/java/com/yj/earth/dto/iconLibrary/UpdateIconTypeNameDto.java b/src/main/java/com/yj/earth/dto/iconLibrary/UpdateIconTypeNameDto.java new file mode 100644 index 0000000..1df6861 --- /dev/null +++ b/src/main/java/com/yj/earth/dto/iconLibrary/UpdateIconTypeNameDto.java @@ -0,0 +1,12 @@ +package com.yj.earth.dto.iconLibrary; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class UpdateIconTypeNameDto { + @Schema(description = "图标类型ID") + private String id; + @Schema(description = "图标类型名称") + private String name; +} diff --git a/src/main/java/com/yj/earth/dto/militaryLibrary/DragMilitaryTypeDto.java b/src/main/java/com/yj/earth/dto/militaryLibrary/DragMilitaryTypeDto.java new file mode 100644 index 0000000..f04b6b2 --- /dev/null +++ b/src/main/java/com/yj/earth/dto/militaryLibrary/DragMilitaryTypeDto.java @@ -0,0 +1,14 @@ +package com.yj.earth.dto.militaryLibrary; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class DragMilitaryTypeDto { + @Schema(description = "军标类型ID") + private String id; + @Schema(description = "父级节点ID") + private String parentId; + @Schema(description = "树状索引") + private String treeIndex; +} diff --git a/src/main/java/com/yj/earth/dto/militaryLibrary/UpdateMilitaryTypeNameDto.java b/src/main/java/com/yj/earth/dto/militaryLibrary/UpdateMilitaryTypeNameDto.java new file mode 100644 index 0000000..5cd28ec --- /dev/null +++ b/src/main/java/com/yj/earth/dto/militaryLibrary/UpdateMilitaryTypeNameDto.java @@ -0,0 +1,12 @@ +package com.yj.earth.dto.militaryLibrary; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class UpdateMilitaryTypeNameDto { + @Schema(description = "军标类型ID") + private String id; + @Schema(description = "军标类型名称") + private String name; +} diff --git a/src/main/java/com/yj/earth/dto/modelLibrary/DragModelTypeDto.java b/src/main/java/com/yj/earth/dto/modelLibrary/DragModelTypeDto.java new file mode 100644 index 0000000..25bda57 --- /dev/null +++ b/src/main/java/com/yj/earth/dto/modelLibrary/DragModelTypeDto.java @@ -0,0 +1,14 @@ +package com.yj.earth.dto.modelLibrary; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class DragModelTypeDto { + @Schema(description = "模型类型ID") + private String id; + @Schema(description = "父级节点ID") + private String parentId; + @Schema(description = "树状索引") + private String treeIndex; +} diff --git a/src/main/java/com/yj/earth/dto/modelLibrary/UpdateModelTypeNameDto.java b/src/main/java/com/yj/earth/dto/modelLibrary/UpdateModelTypeNameDto.java new file mode 100644 index 0000000..5dc4801 --- /dev/null +++ b/src/main/java/com/yj/earth/dto/modelLibrary/UpdateModelTypeNameDto.java @@ -0,0 +1,12 @@ +package com.yj.earth.dto.modelLibrary; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class UpdateModelTypeNameDto { + @Schema(description = "模型类型ID") + private String id; + @Schema(description = "模型类型名称") + private String name; +} diff --git a/src/main/java/com/yj/earth/dto/source/UpdateLevelDto.java b/src/main/java/com/yj/earth/dto/source/UpdateLevelDto.java new file mode 100644 index 0000000..f84be34 --- /dev/null +++ b/src/main/java/com/yj/earth/dto/source/UpdateLevelDto.java @@ -0,0 +1,12 @@ +package com.yj.earth.dto.source; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class UpdateLevelDto { + @Schema(description = "资源ID") + private String id; + @Schema(description = "层级索引") + private Integer layerIndex; +} diff --git a/src/main/java/com/yj/earth/params/EntityWall.java b/src/main/java/com/yj/earth/params/EntityWall.java new file mode 100644 index 0000000..113eda9 --- /dev/null +++ b/src/main/java/com/yj/earth/params/EntityWall.java @@ -0,0 +1,60 @@ +package com.yj.earth.params; + +import com.yj.earth.annotation.SourceType; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +@SourceType("entityWall") +public class EntityWall { + private String id; + private String name; + private List positions; + private Map customView; + private boolean show; + private String color; + private double width; + private boolean noseToTail; + private double extrudedHeight; + private int cornerType; + private int material; + private Label label; + private Attribute attribute; + private String richTextContent; + + @Data + public static class Position { + private double lng; + private double lat; + private double alt; + } + + @Data + public static class Label { + private String text; + private boolean show; + private int fontSize; + private int fontFamily; + private String color; + private int lineWidth; + private int pixelOffset; + private List backgroundColor; + private String lineColor; + private boolean scaleByDistance; + private int near; + private int far; + } + + @Data + public static class Attribute { + private Link link; + } + + @Data + public static class Link { + private List content; + } +} + diff --git a/src/main/java/com/yj/earth/params/Explosion.java b/src/main/java/com/yj/earth/params/Explosion.java new file mode 100644 index 0000000..d6f27fe --- /dev/null +++ b/src/main/java/com/yj/earth/params/Explosion.java @@ -0,0 +1,25 @@ +package com.yj.earth.params; + +import com.yj.earth.annotation.SourceType; +import lombok.Data; + +import java.util.Map; + +@Data +@SourceType("explosion") +public class Explosion { + private String id; + private String name; + private Position position; + private Map customView; + private boolean show; + private int size; + private boolean scaleByDistance; + + @Data + public static class Position { + private double lng; + private double lat; + private double alt; + } +} diff --git a/src/main/java/com/yj/earth/params/Fire.java b/src/main/java/com/yj/earth/params/Fire.java new file mode 100644 index 0000000..382de80 --- /dev/null +++ b/src/main/java/com/yj/earth/params/Fire.java @@ -0,0 +1,28 @@ +package com.yj.earth.params; + +import com.yj.earth.annotation.SourceType; +import lombok.Data; + +import java.util.Map; + +@Data +@SourceType("fire") +public class Fire { + private String id; + private String name; + private Map customView; + private double lng; + private double lat; + private double alt; + private boolean show; + private String startColor; + private String endColor; + private double startScale; + private double endScale; + private int minimumParticleLife; + private int maximumParticleLife; + private double minimumSpeed; + private double maximumSpeed; + private int emissionRate; + private double particleSize; +} diff --git a/src/main/java/com/yj/earth/params/FlyLine.java b/src/main/java/com/yj/earth/params/FlyLine.java new file mode 100644 index 0000000..77b897a --- /dev/null +++ b/src/main/java/com/yj/earth/params/FlyLine.java @@ -0,0 +1,32 @@ +package com.yj.earth.params; + +import com.yj.earth.annotation.SourceType; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +@SourceType("flyLine") +public class FlyLine { + private String id; + private String name; + private List positions; + private Map customView; + private boolean show; + private int pointNumber; + private int height; + private int heightDifference; + private int width; + private int duration; + private String color; + private double lineBackAlpha; + + @Data + public static class Position { + private double lng; + private double lat; + private double alt; + } +} + diff --git a/src/main/java/com/yj/earth/params/Fountain.java b/src/main/java/com/yj/earth/params/Fountain.java new file mode 100644 index 0000000..ca04685 --- /dev/null +++ b/src/main/java/com/yj/earth/params/Fountain.java @@ -0,0 +1,28 @@ +package com.yj.earth.params; + +import com.yj.earth.annotation.SourceType; +import lombok.Data; + +import java.util.Map; + +@Data +@SourceType("fountain") +public class Fountain { + private String id; + private String name; + private Map customView; + private double lng; + private double lat; + private double alt; + private boolean show; + private String startColor; + private String endColor; + private double startScale; + private double endScale; + private int minimumParticleLife; + private int maximumParticleLife; + private double minimumSpeed; + private double maximumSpeed; + private int emissionRate; + private double particleSize; +} diff --git a/src/main/java/com/yj/earth/params/Layer.java b/src/main/java/com/yj/earth/params/Layer.java index e9b220b..dd91d85 100644 --- a/src/main/java/com/yj/earth/params/Layer.java +++ b/src/main/java/com/yj/earth/params/Layer.java @@ -11,4 +11,5 @@ public class Layer { private Boolean show; private Integer alpha; private Integer brightness; + private Integer layerIndex; } diff --git a/src/main/java/com/yj/earth/params/Military.java b/src/main/java/com/yj/earth/params/Military.java new file mode 100644 index 0000000..b6130a1 --- /dev/null +++ b/src/main/java/com/yj/earth/params/Military.java @@ -0,0 +1,66 @@ +package com.yj.earth.params; + +import com.yj.earth.annotation.SourceType; +import lombok.Data; + +import java.util.List; + +@Data +@SourceType("military") +public class Military { + private String id; + private String url; + private Position position; + private String host; + private boolean show; + private String name; + private String color; + private String richTextContent; + private int angle; + private Scale scale; + private Flipe flipe; + private Attribute attribute; + private String attributeType; + private Text text; + + @Data + public static class Position { + private double lng; + private double lat; + private double alt; + } + + @Data + public static class Scale { + private double x; + private double y; + } + + @Data + public static class Flipe { + private boolean x; + private boolean y; + } + + @Data + public static class Attribute { + private Link link; + } + + @Data + public static class Link { + private List content; + } + + @Data + public static class Text { + private String value; + private boolean show; + private int fontSize; + private String color; + private boolean scaleByDistance; + private int near; + private int far; + private Position position; + } +} diff --git a/src/main/java/com/yj/earth/params/Model.java b/src/main/java/com/yj/earth/params/Model.java index ba9ea9c..6f06b61 100644 --- a/src/main/java/com/yj/earth/params/Model.java +++ b/src/main/java/com/yj/earth/params/Model.java @@ -3,7 +3,7 @@ package com.yj.earth.params; import com.yj.earth.annotation.SourceType; import lombok.Data; -import java.util.Map; +import java.util.List; @Data @SourceType("model") @@ -12,12 +12,17 @@ public class Model { private Position position; private String name; private boolean show; - private Rotate scale; - private String url; - private double maximumScale; + private Scale scale; private String host; + private String url; + private int maximumScale; private Rotate rotate; - private Map label; + private Label label; + private String color; + private int minimumPixelSize; + private boolean scaleByDistance; + private Attribute attribute; + private String richTextContent; @Data public static class Position { @@ -26,10 +31,43 @@ public class Model { private double alt; } + @Data + public static class Scale { + private double x; + private double y; + private double z; + } + @Data public static class Rotate { private double x; private double y; private double z; } + + @Data + public static class Label { + private String text; + private boolean show; + private int fontSize; + private int fontFamily; + private String color; + private int lineWidth; + private int pixelOffset; + private List backgroundColor; + private String lineColor; + private boolean scaleByDistance; + private int near; + private int far; + } + + @Data + public static class Attribute { + private Link link; + } + + @Data + public static class Link { + private List content; + } } diff --git a/src/main/java/com/yj/earth/params/Smoke.java b/src/main/java/com/yj/earth/params/Smoke.java new file mode 100644 index 0000000..44d4c37 --- /dev/null +++ b/src/main/java/com/yj/earth/params/Smoke.java @@ -0,0 +1,28 @@ +package com.yj.earth.params; + +import com.yj.earth.annotation.SourceType; +import lombok.Data; + +import java.util.Map; + +@Data +@SourceType("smoke") +public class Smoke { + private String id; + private String name; + private Map customView; + private double lng; + private double lat; + private double alt; + private boolean show; + private String startColor; + private String endColor; + private double startScale; + private double endScale; + private int minimumParticleLife; + private int maximumParticleLife; + private double minimumSpeed; + private double maximumSpeed; + private int emissionRate; + private double particleSize; +} diff --git a/src/main/java/com/yj/earth/params/WallStereoscopic.java b/src/main/java/com/yj/earth/params/WallStereoscopic.java index b8e1c94..693dfd8 100644 --- a/src/main/java/com/yj/earth/params/WallStereoscopic.java +++ b/src/main/java/com/yj/earth/params/WallStereoscopic.java @@ -4,6 +4,7 @@ import com.yj.earth.annotation.SourceType; import lombok.Data; import java.util.List; +import java.util.Map; @SourceType("wallStereoscopic") @Data @@ -20,6 +21,8 @@ public class WallStereoscopic { private Label label; private String instruct; private String operatingPoint; + private String richTextContent; + private CustomView customView; private Attribute attribute; @Data @@ -53,5 +56,25 @@ public class WallStereoscopic { public static class Link { private List content; } + + @Data + public static class CustomView { + private AttackArrow.CustomView.Orientation orientation; + private AttackArrow.CustomView.RelativePosition relativePosition; + + @Data + public static class Orientation { + private double heading; + private double pitch; + private double roll; + } + + @Data + public static class RelativePosition { + private double lng; + private double lat; + private double alt; + } + } } diff --git a/src/main/java/com/yj/earth/params/WaterL.java b/src/main/java/com/yj/earth/params/WaterL.java new file mode 100644 index 0000000..c40c9ff --- /dev/null +++ b/src/main/java/com/yj/earth/params/WaterL.java @@ -0,0 +1,35 @@ +package com.yj.earth.params; + +import com.yj.earth.annotation.SourceType; +import lombok.Data; + +import java.util.Map; + +@Data +@SourceType("waterL") +public class WaterL { + private String id; + private String name; + private Map customView; + private Position start; + private Position end; + private boolean show; + private String startColor; + private String endColor; + private double startScale; + private double endScale; + private int minimumParticleLife; + private int maximumParticleLife; + private int emissionRate; + private double particleSize; + private double heading; + private double pitch; + private double speed; + + @Data + public static class Position { + private double lng; + private double lat; + private double alt; + } +} diff --git a/src/main/java/com/yj/earth/vo/IconTypeVo.java b/src/main/java/com/yj/earth/vo/IconTypeVo.java new file mode 100644 index 0000000..d6f48af --- /dev/null +++ b/src/main/java/com/yj/earth/vo/IconTypeVo.java @@ -0,0 +1,47 @@ +package com.yj.earth.vo; + +import com.yj.earth.business.domain.IconType; +import com.yj.earth.business.domain.ModelType; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class IconTypeVo { + @Schema(description = "主键") + private String id; + + @Schema(description = "图标类型名称") + private String name; + + @Schema(description = "父级节点ID") + private String parentId; + + @Schema(description = "树形结构索引") + private Integer treeIndex; + + @Schema(description = "创建时间") + private LocalDateTime createdAt; + + @Schema(description = "更新时间") + private LocalDateTime updatedAt; + + @Schema(description = "子节点列表") + private List children = new ArrayList<>(); + + public IconTypeVo(IconType iconType) { + this.id = iconType.getId(); + this.name = iconType.getName(); + this.parentId = iconType.getParentId(); + this.treeIndex = iconType.getTreeIndex(); + this.createdAt = iconType.getCreatedAt(); + this.updatedAt = iconType.getUpdatedAt(); + } +} diff --git a/src/main/java/com/yj/earth/vo/IconVo.java b/src/main/java/com/yj/earth/vo/IconVo.java new file mode 100644 index 0000000..c31ccd1 --- /dev/null +++ b/src/main/java/com/yj/earth/vo/IconVo.java @@ -0,0 +1,10 @@ +package com.yj.earth.vo; + +import com.yj.earth.business.domain.Icon; +import com.yj.earth.business.domain.Military; +import lombok.Data; + +@Data +public class IconVo extends Icon { + private String iconTypeName; +} diff --git a/src/main/java/com/yj/earth/vo/MilitaryTypeVo.java b/src/main/java/com/yj/earth/vo/MilitaryTypeVo.java index 56e10f2..5bf355c 100644 --- a/src/main/java/com/yj/earth/vo/MilitaryTypeVo.java +++ b/src/main/java/com/yj/earth/vo/MilitaryTypeVo.java @@ -18,12 +18,15 @@ public class MilitaryTypeVo { @Schema(description = "主键") private String id; - @Schema(description = "模型类型名称") + @Schema(description = "军标类型名称") private String name; @Schema(description = "父级节点ID") private String parentId; + @Schema(description = "树形结构索引") + private Integer treeIndex; + @Schema(description = "创建时间") private LocalDateTime createdAt; @@ -36,6 +39,7 @@ public class MilitaryTypeVo { this.id = militaryType.getId(); this.name = militaryType.getName(); this.parentId = militaryType.getParentId(); + this.treeIndex = militaryType.getTreeIndex(); this.createdAt = militaryType.getCreatedAt(); this.updatedAt = militaryType.getUpdatedAt(); } diff --git a/src/main/java/com/yj/earth/vo/MilitaryVo.java b/src/main/java/com/yj/earth/vo/MilitaryVo.java index f905c9e..a39740e 100644 --- a/src/main/java/com/yj/earth/vo/MilitaryVo.java +++ b/src/main/java/com/yj/earth/vo/MilitaryVo.java @@ -6,5 +6,5 @@ import lombok.Data; @Data public class MilitaryVo extends Military { - private String modelTypeName; + private String militaryTypeName; } diff --git a/src/main/java/com/yj/earth/vo/ModelTypeVo.java b/src/main/java/com/yj/earth/vo/ModelTypeVo.java index 14d1bc7..f6ace7f 100644 --- a/src/main/java/com/yj/earth/vo/ModelTypeVo.java +++ b/src/main/java/com/yj/earth/vo/ModelTypeVo.java @@ -22,6 +22,9 @@ public class ModelTypeVo { @Schema(description = "父级节点ID") private String parentId; + @Schema(description = "树形结构索引") + private Integer treeIndex; + @Schema(description = "创建时间") private LocalDateTime createdAt; @@ -34,6 +37,7 @@ public class ModelTypeVo { this.id = modelType.getId(); this.name = modelType.getName(); this.parentId = modelType.getParentId(); + this.treeIndex = modelType.getTreeIndex(); this.createdAt = modelType.getCreatedAt(); this.updatedAt = modelType.getUpdatedAt(); }