소스 검색

1、基础设置
2、导航设置
3、作品查看

dengsixing 1 년 전
부모
커밋
7fc1bcdbd4
56개의 변경된 파일1457개의 추가작업 그리고 226개의 파일을 삭제
  1. 8 0
      .idea/.gitignore
  2. 16 0
      720yun_fd_manage/gis_application/src/main/resources/application-locSit.yml
  3. 29 0
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/constant/NavigationTypeEnum.java
  4. 12 10
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/generate/AutoGenerate.java
  5. 104 0
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/ResultData.java
  6. 46 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/AddWorkNavigationSceneDTO.java
  7. 35 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/MoveWorkNavigationDTO.java
  8. 1 1
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WordAllDto.java
  9. 12 1
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkBaseSettingDto.java
  10. 4 3
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkCoverTypeDto.java
  11. 11 11
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkDto.java
  12. 7 6
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkNavigationDTO.java
  13. 12 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkNavigationSettingDto.java
  14. 1 9
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkOpeningAnimationdDto.java
  15. 3 7
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkCoverTypeEntity.java
  16. 17 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkNavigationEntity.java
  17. 0 66
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/NavigationTreeSelect.java
  18. 31 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkBackgroundMusicVo.java
  19. 24 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkBaseSettingVo.java
  20. 100 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkCoverTypeVo.java
  21. 37 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkCustomButtonVo.java
  22. 32 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkLogoVo.java
  23. 12 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkNavigationSettingVo.java
  24. 12 8
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkNavigationVo.java
  25. 27 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkOpeningAnimationVo.java
  26. 38 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkOpeningTipVo.java
  27. 7 1
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkSceneVo.java
  28. 49 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkViewVo.java
  29. 32 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkVo.java
  30. 1 1
      720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkNavigationMapper.java
  31. 24 24
      720yun_fd_manage/gis_mapper/src/main/resources/mapper/WorkNavigationMapper.xml
  32. 2 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkBackgroundMusicService.java
  33. 10 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkBaseSettingService.java
  34. 2 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkCoverTypeService.java
  35. 4 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkCustomButtonService.java
  36. 2 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkLogoService.java
  37. 7 5
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkNavigationService.java
  38. 34 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkNavigationSettingService.java
  39. 2 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkOpeningAnimationService.java
  40. 2 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkOpeningTipService.java
  41. 11 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkViewService.java
  42. 5 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkBackgroundMusicServiceImpl.java
  43. 115 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkBaseSettingServiceImpl.java
  44. 5 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkCoverTypeServiceImpl.java
  45. 7 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkCustomButtonServiceImpl.java
  46. 5 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkLogoServiceImpl.java
  47. 29 52
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkNavigationServiceImpl.java
  48. 176 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkNavigationSettingServiceImpl.java
  49. 6 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkOpeningAnimationServiceImpl.java
  50. 5 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkOpeningTipServiceImpl.java
  51. 74 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkViewServiceImpl.java
  52. 0 21
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkBaseSettingController.java
  53. 37 0
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkEditBaseController.java
  54. 95 0
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkEditNavigationController.java
  55. 35 0
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkEditVisualAngleBaseController.java
  56. 43 0
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkViewController.java

+ 8 - 0
.idea/.gitignore

@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml

+ 16 - 0
720yun_fd_manage/gis_application/src/main/resources/application-locSit.yml

@@ -106,3 +106,19 @@ mybatis-plus:
             table-underline: true
     mapper-locations: classpath*:mapper/**/*Mapper.xml
     typeAliasesPackage: com.gis.**.domain
+
+swagger:
+    # 是否开启swagger
+    enabled: true
+    # 请求前缀
+    pathMapping: /
+    production: false
+    description: ${swagger.title}
+    package: com.gis.web.controller
+    title: 全景看看-${spring.profiles.active}
+    version: 1.3.0
+knife4j:
+    # 开启增强配置
+    enable: true
+    # 开启生产环境屏蔽
+    production: false

+ 29 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/constant/NavigationTypeEnum.java

@@ -0,0 +1,29 @@
+package com.gis.common.constant;
+
+/**
+ * 切图方式
+ */
+public enum NavigationTypeEnum {
+
+    GROUP("group", "分组"),
+    PANO("pano", "全景图"),
+    FDKK("4dkk", "官网场景"),
+    ;
+
+    private String code;
+    private String message;
+
+    private NavigationTypeEnum(String code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public String code() {
+        return code;
+    }
+
+    public String message() {
+        return message;
+    }
+
+}

+ 12 - 10
720yun_fd_manage/gis_common/src/main/java/com/gis/common/generate/AutoGenerate.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.generator.FastAutoGenerator;
 import com.baomidou.mybatisplus.generator.config.OutputFile;
 import com.baomidou.mybatisplus.generator.config.rules.DateType;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -15,7 +16,8 @@ public class AutoGenerate {
 
     public static void main(String[] args) {
 
-        String path =System.getProperty("user.dir");
+        String path =System.getProperty("user.dir") + File.separator + "720yun_fd_manage";
+        System.out.println(path);
 
         generate(path,"", getTables(new String[]{
                 "t_scene_cold_storage"
@@ -46,8 +48,8 @@ public class AutoGenerate {
 
 
     public static void  generate(String path,String moduleName,  List<String> tables){
-        FastAutoGenerator.create("jdbc:mysql://120.24.144.164:3306/4dkankan_v4",
-            "root","4Dage@4Dage#@168")
+        FastAutoGenerator.create("jdbc:mysql://120.25.146.52:3306/720yun_fd_manage",
+            "root","4dkk2020test%")
                 .globalConfig(builder -> {
                     builder.author("")               //作者
                             .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)
@@ -58,27 +60,27 @@ public class AutoGenerate {
 
                 })
                 .packageConfig(builder -> {
-                    builder.parent("com.fdkankan")
+                    builder.parent("com.gis")
                             .moduleName(moduleName)
-                            .entity("entity")
+                            .entity("domain.entity")
                             .service("service")
                             .serviceImpl("service.impl")
-                            .controller("controller")
+                            .controller("web.controller")
                             .mapper("mapper")
                             .xml("test.mapper")
                             .pathInfo(Collections.singletonMap(OutputFile.xml,path+"\\src\\main\\resources\\mapper\\"+moduleName));
                 })
                 .strategyConfig(builder -> {
                     builder.addInclude(tables)
-                            .addTablePrefix("t_")
+                            .addTablePrefix("tb_")
 
                             .serviceBuilder()
-                            .formatServiceFileName("I%sService")
+                            .formatServiceFileName("%sService")
                             .formatServiceImplFileName("%sServiceImpl")
 
                             .entityBuilder()
                             .enableLombok()
-                            .logicDeleteColumnName("rec_status")
+                            .logicDeleteColumnName("is_delete")
                             .enableTableFieldAnnotation()
 //                            .superClass(BaseEntity.class)
 
@@ -88,7 +90,7 @@ public class AutoGenerate {
 
                             .mapperBuilder()
                             .superClass(BaseMapper.class)
-                            .formatMapperFileName("I%sMapper")
+                            .formatMapperFileName("%sMapper")
                             .enableMapperAnnotation()
                             .formatXmlFileName("%sMapper");
                 })

+ 104 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/ResultData.java

@@ -0,0 +1,104 @@
+package com.gis.common.util;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 通用返回类
+ *
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ResultData implements Serializable {
+    private static final long serialVersionUID = -1491499610244557029L;
+    public static final String SUCCESS_MSG = "操作成功";
+    public static int CODE_SUCCESS = 0;
+    public static int CODE_FAILURE = -1;
+    public static String[] NOOP = new String[]{};
+
+    /**
+     * 处理状态:0: 成功, 1: 失败
+     */
+    @ApiModelProperty(value = "处理状态:0: 成功, -1: 失败", name = "code")
+    private int code;
+    /**
+     * 消息
+     */
+    @ApiModelProperty(value = "消息", name = "msg")
+    private String msg;
+    /**
+     * 返回数据
+     */
+    @ApiModelProperty(value = "返回数据", name = "data")
+    private Object data;
+
+    @ApiModelProperty(value = "时间戳", name = "timestamp")
+    private LocalDateTime timestamp;
+    /**
+     * 处理成功,并返回数据
+     *
+     * @param data 数据对象
+     * @return data
+     */
+    public static ResultData success(Object data) {
+        return new ResultData(CODE_SUCCESS, SUCCESS_MSG, data, LocalDateTime.now());
+    }
+    /**
+     * 处理成功
+     *
+     * @return data
+     */
+    public static ResultData success() {
+        return new ResultData(CODE_SUCCESS, SUCCESS_MSG, NOOP, LocalDateTime.now());
+    }
+    /**
+     * 处理成功
+     *
+     * @param msg 消息
+     * @return data
+     */
+    public static ResultData success(String msg) {
+        return new ResultData(CODE_SUCCESS, msg, NOOP, LocalDateTime.now());
+    }
+    /**
+     * 处理成功
+     *
+     * @param msg  消息
+     * @param data 数据对象
+     * @return data
+     */
+    public static ResultData success(String msg, Object data) {
+        return new ResultData(CODE_SUCCESS, msg, data, LocalDateTime.now());
+    }
+    /**
+     * 处理失败,并返回数据(一般为错误信息)
+     *
+     * @param code 错误代码
+     * @param msg  消息
+     * @return data
+     */
+    public static ResultData failure(int code, String msg) {
+        return new ResultData(code, msg, NOOP , LocalDateTime.now());
+    }
+    /**
+     * 处理失败
+     *
+     * @param msg 消息
+     * @return data
+     */
+    public static ResultData failure(String msg) {
+        return failure(CODE_FAILURE, msg);
+    }
+
+    @Override
+    public String toString() {
+        return "JsonResult [code=" + code + ", msg=" + msg + ", data="
+                + data + ", timestamp="+ timestamp + "]";
+    }
+}

+ 46 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/AddWorkNavigationSceneDTO.java

@@ -0,0 +1,46 @@
+package com.gis.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 作品导航表
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@Data
+@ApiModel("添加导航实体")
+public class AddWorkNavigationSceneDTO extends WorkIdDto implements Serializable {
+
+    @ApiModelProperty("父菜单ID")
+    @NotNull(message = "父菜单ID不能为空")
+    private Long parentId;
+
+    @NotBlank(message = "name不能为空")
+    @ApiModelProperty("名称")
+    private String name;
+
+    @ApiModelProperty("素材id,当type=pano时不能为空")
+    private Long fodderId;
+
+    @NotBlank(message = "type不能为空")
+    @ApiModelProperty("场景类型,pano-全景图,4dkk-官网场景")
+    private String type;
+
+    @NotBlank(message = "sceneCode不能为空")
+    @ApiModelProperty("场景码")
+    private String sceneCode;
+
+    @ApiModelProperty("官网场景版本")
+    private String version;
+
+    @ApiModelProperty("icon")
+    private String icon;
+
+}

+ 35 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/MoveWorkNavigationDTO.java

@@ -0,0 +1,35 @@
+package com.gis.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 作品导航表
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@Data
+public class MoveWorkNavigationDTO implements Serializable {
+
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty("id")
+    private Long id;
+
+    @ApiModelProperty("父菜单ID")
+    private Long parentId;
+
+    @ApiModelProperty("名称")
+    private String name;
+
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+
+
+
+}

+ 1 - 1
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WordAllDto.java

@@ -17,7 +17,7 @@ public class WordAllDto {
     private WorkOpeningTipDTO workOpeningTipInfo;
 
     @ApiModelProperty(value = "开场动画")
-    private WorkOpeningAnimationdDto workOpeningAnimationInfo;
+    private WorkOpeningAnimationDto workOpeningAnimationInfo;
 
     @ApiModelProperty(value = "开场封面")
     private WorkCoverTypeDto workCoverTypeInfo;

+ 12 - 1
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkBaseSettingDto.java

@@ -2,12 +2,23 @@ package com.gis.domain.dto;
 
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class WorkBaseSettingDto extends WorkIdDto{
 
-//    private
+    private WorkDto work;
+
+    private WorkOpeningTipDTO workOpeningTip;
+
+    private WorkOpeningAnimationDto workOpeningAnimation;
+
+    private WorkCoverTypeDto workCoverType;
 
+    private WorkBackgroundMusicDto workBackgroundMusic;
 
+    private WorkLogoDto workLogo;
 
+    private List<WorkCustomButtonDto> workCustomButton;
 
 }

+ 4 - 3
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkCoverTypeDto.java

@@ -88,6 +88,7 @@ public class WorkCoverTypeDto {
 
     @ApiModelProperty("关联fodderId")
     private int videoMoId;
+
     @ApiModelProperty("关联fodderId")
     private int cover_mo_id;
 
@@ -97,8 +98,8 @@ public class WorkCoverTypeDto {
     @ApiModelProperty("关联fodderId")
     private int cover_pc_id;
 
-    @ApiModelProperty("fodderId集合 ")
-    //string fodderId = string.Join(",", myList.Select(x => x.ToString()).ToArray());
-    private List<String> fodderId;
+//    @ApiModelProperty("fodderId集合 ")
+//    //string fodderId = string.Join(",", myList.Select(x => x.ToString()).ToArray());
+//    private List<String> fodderId;
 
 }

+ 11 - 11
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkDto.java

@@ -11,17 +11,17 @@ import javax.validation.constraints.NotBlank;
 @Data
 public class WorkDto {
 
-    @ApiModelProperty(value = "id, 修改时必须传,新增忽略", name = "id")
+    @ApiModelProperty(value = "id", name = "id")
     private String id;
 
-//    @ApiModelProperty(value = "名称")
-//    private String name;
-//
-//    @ApiModelProperty(value = "简介")
-//    private String description;
-//
-//    @ApiModelProperty(value = "封面图")
-//    private String icon;
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "简介")
+    private String description;
+
+    @ApiModelProperty(value = "封面图")
+    private String icon;
 
     @ApiModelProperty(value = "场景密码")
     private String password;
@@ -44,8 +44,8 @@ public class WorkDto {
 //    @ApiModelProperty(value = "显示logo, 0:关,1:开")
 //    private Integer isLogo;
 //
-//    @ApiModelProperty(value = "自动巡游, 0:关,1:开")
-//    private Integer isAuto;
+    @ApiModelProperty(value = "自动巡游, 0:关,1:开")
+    private Integer isAuto;
 //
 //    @NotBlank(message = "someData不能为空")
 //    @ApiModelProperty(value = "静态文件信息", required = true)

+ 7 - 6
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkNavigationDTO.java

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * 作品导航表
@@ -16,19 +17,19 @@ import java.io.Serializable;
  */
 @Data
 @ApiModel("作品导航表")
-public class WorkNavigationDTO   implements Serializable {
+public class WorkNavigationDTO  extends WorkIdDto implements Serializable {
 
-
-    @ApiModelProperty(value = "对象ID")
+    @ApiModelProperty("id")
     private Long id;
 
-    @ApiModelProperty("wordid")
-    private String workId;
-
     @ApiModelProperty("父菜单ID")
     private Long parentId;
 
     @ApiModelProperty("名称")
     private String name;
 
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+
 }

+ 12 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkNavigationSettingDto.java

@@ -0,0 +1,12 @@
+package com.gis.domain.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WorkNavigationSettingDto extends WorkIdDto{
+
+    private List<MoveWorkNavigationDTO> list;
+
+}

+ 1 - 9
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkOpeningAnimationdDto.java

@@ -1,16 +1,8 @@
 package com.gis.domain.dto;
 
-import com.gis.domain.entity.BaseEntity;
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import javax.persistence.Column;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import java.io.Serializable;
-
 /**
  * 开场动画表
  *
@@ -18,7 +10,7 @@ import java.io.Serializable;
  * @since 2023-09-05 19:21
  */
 @Data
-public class WorkOpeningAnimationdDto   {
+public class WorkOpeningAnimationDto {
 
     @ApiModelProperty(value = "对象ID")
     private Long id;

+ 3 - 7
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkCoverTypeEntity.java

@@ -88,16 +88,12 @@ public class WorkCoverTypeEntity extends BaseEntity implements Serializable {
     @ApiModelProperty("关联fodderId")
     private int videoMoId;
     @ApiModelProperty("关联fodderId")
-    private int cover_mo_id;
+    private int coverMoId;
 
     @ApiModelProperty("关联fodderId")
-    private int video_pc_id;
+    private int videoPcId;
 
     @ApiModelProperty("关联fodderId")
-    private int cover_pc_id;
-
-    @ApiModelProperty("fodderId集合 ")
-    //string fodderId = string.Join(",", myList.Select(x => x.ToString()).ToArray());
-    private String fodderId;
+    private int coverPcId;
 
 }

+ 17 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkNavigationEntity.java

@@ -31,4 +31,21 @@ public class WorkNavigationEntity extends BaseEntity  implements Serializable {
     @ApiModelProperty("名称")
     private String name;
 
+    @ApiModelProperty("素材id")
+    private Long fodderId;
+
+    @ApiModelProperty("是否初始场景")
+    private Integer isFirstScene;
+
+    private String type;
+
+    private String sceneCode;
+
+    private String icon;
+
+    private String version;
+
+    private Integer sort;
+
+
 }

+ 0 - 66
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/NavigationTreeSelect.java

@@ -1,66 +0,0 @@
-package com.gis.domain.vo;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * Treeselect树结构实体类
- *
- * @author fdkk
- */
-public class NavigationTreeSelect implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 节点ID
-     */
-    private Long id;
-
-    /**
-     * 节点名称
-     */
-    private String label;
-
-    /**
-     * 子节点
-     */
-    @JsonInclude(JsonInclude.Include.NON_EMPTY)
-    private List<NavigationTreeSelect> children;
-
-    public NavigationTreeSelect() {
-
-    }
-
-    public NavigationTreeSelect(WorkNavigationVo navigationVo) {
-        id = navigationVo.getId();
-        label = navigationVo.getName();
-        children = navigationVo.getChildren().stream().map(NavigationTreeSelect::new).collect(Collectors.toList());
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getLabel() {
-        return label;
-    }
-
-    public void setLabel(String label) {
-        this.label = label;
-    }
-
-    public List<NavigationTreeSelect> getChildren() {
-        return children;
-    }
-
-    public void setChildren(List<NavigationTreeSelect> children) {
-        this.children = children;
-    }
-}

+ 31 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkBackgroundMusicVo.java

@@ -0,0 +1,31 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 背景音乐表
+ *
+ * @author Xiewj
+ * @since 2023-09-05 20:57
+ */
+@Data
+@ApiModel("背景音乐表")
+public class WorkBackgroundMusicVo {
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty("wordid")
+    private String workId;
+
+    @ApiModelProperty("名称")
+    private String name;
+
+    @ApiModelProperty("oss 路径 ")
+    private String ossPath;
+
+    @ApiModelProperty("fodder_id")
+    private String fodderId;
+}

+ 24 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkBaseSettingVo.java

@@ -0,0 +1,24 @@
+package com.gis.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WorkBaseSettingVo {
+
+    private WorkVo work;
+
+    private WorkOpeningTipVo workOpeningTip;
+
+    private WorkOpeningAnimationVo workOpeningAnimation;
+
+    private WorkCoverTypeVo workCoverType;
+
+    private WorkBackgroundMusicVo workBackgroundMusic;
+
+    private WorkLogoVo workLogo;
+
+    private List<WorkCustomButtonVo> workCustomButtonList;
+
+}

+ 100 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkCoverTypeVo.java

@@ -0,0 +1,100 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 开场动画表
+ *
+ * @author Xiewj
+ * @since 2023-09-05 19:21
+ */
+@Data
+@ApiModel("开场封面表")
+public class WorkCoverTypeVo {
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+    @ApiModelProperty(value = "关联作品id")
+    private String workId;
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty("pc视频封面")
+    private String videoPcIcon;
+
+    @ApiModelProperty("pc视频地址")
+    private String videoPc;
+
+    @ApiModelProperty("移动视频地址")
+    private String videoMo;
+
+    @ApiModelProperty("移动视频封面")
+    private String videoMoIcon;
+
+    @ApiModelProperty("(center,full) PC端视频位置 默认center")
+    private String videoPcLoc;
+
+    @ApiModelProperty("(center,full) 移动端视频位置 默认center")
+    private String videoMoLoc;
+
+    @ApiModelProperty("(imgTile, colorFill)(图片填充或纯色) 视频背景显示方式 默认colorFill")
+    private String coverVideoBac;
+
+    @ApiModelProperty("视频填充背景图片")
+    private String videoBacImg;
+
+    @ApiModelProperty("(0/1) 视频3秒开关 默认:1")
+    private int coverVideoInWay;
+
+    @ApiModelProperty(" 原生视频开关  默认:0")
+    private int coverVideoControl;
+
+    @ApiModelProperty("(video,image,videoAndImg) 类型 默认 img ")
+    private String coverSelect;
+
+    @ApiModelProperty("(center,full) PC端位置 默认center")
+    private String coverPcLoc;
+
+    @ApiModelProperty("(before,later) 出现顺序 默认 before")
+    private String coverImageOrder;
+
+    @ApiModelProperty("移动封面地址")
+    private String coverMo;
+
+    @ApiModelProperty("pc封面地址")
+    private String coverPc;
+
+    @ApiModelProperty("(center,full) 移动端位置 默认center")
+    private String coverMoLoc;
+
+    @ApiModelProperty("(imgTile,colorFill) (图片填充或纯色)封面图片方式 默认colorFill")
+    private String coverImgBac;
+
+    @ApiModelProperty("封面背景填充颜色 默认#000000")
+    private String imgColorSelec;
+
+    @ApiModelProperty("(0/1)图片3秒开关 默认1")
+    private int coverImageInWay;
+
+    @ApiModelProperty("是否显示开关 默认 0")
+    private int isShowCover;
+
+    @ApiModelProperty("视频背景填充颜色 默认#000000")
+    private String videoColorSelec;
+
+    @ApiModelProperty("关联fodderId")
+    private int videoMoId;
+
+    @ApiModelProperty("关联fodderId")
+    private int cover_mo_id;
+
+    @ApiModelProperty("关联fodderId")
+    private int video_pc_id;
+
+    @ApiModelProperty("关联fodderId")
+    private int cover_pc_id;
+
+//    @ApiModelProperty("fodderId集合 ")
+//    //string fodderId = string.Join(",", myList.Select(x => x.ToString()).ToArray());
+//    private List<String> fodderId;
+
+}

+ 37 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkCustomButtonVo.java

@@ -0,0 +1,37 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 自定义按钮设置表
+ *
+ * @author Xiewj
+ * @since 2023-09-06 14:50
+ */
+@Data
+@ApiModel("自定义按钮设置表")
+public class WorkCustomButtonVo {
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty("wordid")
+    private String workId;
+
+    @ApiModelProperty("开关 默认false")
+    private Integer isShow;
+
+    @ApiModelProperty("名称 电话 链接	")
+    private String name;
+
+    @ApiModelProperty("_self _blank 默认_self	")
+    private String openMethod;
+
+    @ApiModelProperty("value")
+    private String value;
+
+    @ApiModelProperty("phone link	")
+    private String type;
+}

+ 32 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkLogoVo.java

@@ -0,0 +1,32 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * logo表
+ *
+ * @author Xiewj
+ * @since 2023-09-06 10:21
+ */
+@Data
+@ApiModel("logo表")
+public class WorkLogoVo {
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty(value = "关联作品id")
+    private String workId;
+
+    @ApiModelProperty("wordid")
+    private String logo;
+
+    @ApiModelProperty("开关 默认1")
+    private Integer isLogo;
+
+    @ApiModelProperty(" 默认false")
+    private Boolean logoChange;
+
+}

+ 12 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkNavigationSettingVo.java

@@ -0,0 +1,12 @@
+package com.gis.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WorkNavigationSettingVo {
+
+    private List<WorkNavigationVo> work;
+
+}

+ 12 - 8
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkNavigationVo.java

@@ -2,7 +2,10 @@ package com.gis.domain.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -14,6 +17,10 @@ import java.util.List;
  * @author Xiewj
  * @since 2023-09-08 18:13
  */
+
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
 @Data
 @ApiModel("作品导航表")
 public class WorkNavigationVo implements Serializable {
@@ -31,13 +38,10 @@ public class WorkNavigationVo implements Serializable {
     @ApiModelProperty("名称")
     private String name;
 
-    /**
-     * 子菜单
-     */
-    private List<WorkNavigationVo> children = new ArrayList<>();
+    private String type;
+
+    private String icon;
+
+    private String sceneCode;
 
-    /**
-     * 包含场景
-     */
-    private List<WorkSceneVo> scenes = new ArrayList<>();
 }

+ 27 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkOpeningAnimationVo.java

@@ -0,0 +1,27 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 开场动画表
+ *
+ * @author Xiewj
+ * @since 2023-09-05 19:21
+ */
+@Data
+public class WorkOpeningAnimationVo {
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty("显示开场动画按钮 默认 true ")
+    private Integer openingAnimationType;
+
+    @ApiModelProperty("小行星开场:1,小行星巡游开场 :2,小行星缩放开场:3,水平巡游开场:4,水晶球开场:5 默认1")
+    private Boolean isShowOpeningAnimation;
+
+    @ApiModelProperty(value = "关联作品id")
+    private String workId;
+
+}

+ 38 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkOpeningTipVo.java

@@ -0,0 +1,38 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 作品表
+ */
+@Data
+public class WorkOpeningTipVo {
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty(value = "关联作品id")
+    private String workId;
+
+    @ApiModelProperty(value = "PC端 icon")
+    private String pcIcon;
+
+    @ApiModelProperty(value = "PC端 iconId")
+    private String pcIconId;
+
+    @ApiModelProperty(value = "PC端 appIcon")
+    private String appIcon;
+
+    @ApiModelProperty(value = "PC端 appIconId")
+    private String appIconId;
+
+    @ApiModelProperty(value = "仅首次打开链接时,提示  默认1 ")
+    private Integer isRemind;
+
+    @ApiModelProperty(value = "显示秒数 (0-3) 默认 1")
+    private Integer remindTime;
+
+
+
+}

+ 7 - 1
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkSceneVo.java

@@ -31,7 +31,7 @@ import java.io.Serializable;
     private String sceneCode;
 
     @ApiModelProperty("场景名称")
-    private String sceneTitle;
+    private String name;
 
     @ApiModelProperty("类型")
     private String type;
@@ -39,4 +39,10 @@ import java.io.Serializable;
     @ApiModelProperty("所属菜单Id")
     private Long parentId;
 
+   @ApiModelProperty("官网场景版本")
+   private String version;
+
+   @ApiModelProperty("素材id")
+   private Long fodderId;
+
 }

+ 49 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkViewVo.java

@@ -0,0 +1,49 @@
+package com.gis.domain.vo;
+
+import cn.hutool.core.lang.tree.Tree;
+import com.gis.domain.dto.WorkCoverTypeDto;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel
+public class WorkViewVo {
+
+    @ApiModelProperty(value = "作品id")
+    private String workId;
+
+    private WorkVo work;
+
+    private WorkOpeningTipVo workOpeningTip;
+
+    private WorkOpeningAnimationVo WorkOpeningAnimation;
+
+    private WorkCoverTypeVo workCoverType;
+
+    private WorkBackgroundMusicVo workBackgroundMusic;
+
+    private WorkLogoVo workLogo;
+
+    private List<WorkCustomButtonVo> workCustomButtonVoList;
+
+    private List<Tree<Long>> navigationTrees;
+
+    private WorkSceneVo firstScene;
+
+
+
+
+
+
+}

+ 32 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkVo.java

@@ -0,0 +1,32 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/2/22 0028 16:36
+ */
+@Data
+public class WorkVo {
+
+    @ApiModelProperty(value = "id", name = "id")
+    private String id;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "简介")
+    private String description;
+
+    @ApiModelProperty(value = "封面图")
+    private String icon;
+
+    @ApiModelProperty(value = "场景密码")
+    private String password;
+
+    @ApiModelProperty(value = "自动巡游, 0:关,1:开")
+    private Integer isAuto;
+
+
+
+}

+ 1 - 1
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkNavigationMapper.java

@@ -20,6 +20,6 @@ import java.util.List;
 @Mapper
 public interface WorkNavigationMapper extends BaseMapper<WorkNavigationEntity> {
 
-    List<WorkNavigationVo> selectList(@Param("dto") WorkNavigationDTO dto,@Param("workId")  String workId);
+//    List<WorkNavigationVo> selectList(@Param("dto") WorkNavigationDTO dto,@Param("workId")  String workId);
 
 }

+ 24 - 24
720yun_fd_manage/gis_mapper/src/main/resources/mapper/WorkNavigationMapper.xml

@@ -2,30 +2,30 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.gis.mapper.WorkNavigationMapper">
 
-  <resultMap id="BaseResultMap" type="com.gis.domain.entity.WorkNavigationEntity">
-    <id column="id" jdbcType="BIGINT" property="id"/>
-    <result column="work_id" jdbcType="VARCHAR" property="workId"/>
-    <result column="parent_id" jdbcType="BIGINT" property="parentId"/>
-    <result column="name" jdbcType="VARCHAR" property="name"/>
-    <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
-    <result column="is_delete" jdbcType="VARCHAR" property="isDelete"/>
-    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
-  </resultMap>
-  <sql id="Base_Column_List">
-    id, work_id, parent_id, name, create_time, is_delete, update_time
-  </sql>
-  <select id="selectList" resultType="com.gis.domain.vo.WorkNavigationVo">
-    select
-    <include refid="Base_Column_List"/>
-  <where>
+<!--  <resultMap id="BaseResultMap" type="com.gis.domain.entity.WorkNavigationEntity">-->
+<!--    <id column="id" jdbcType="BIGINT" property="id"/>-->
+<!--    <result column="work_id" jdbcType="VARCHAR" property="workId"/>-->
+<!--    <result column="parent_id" jdbcType="BIGINT" property="parentId"/>-->
+<!--    <result column="name" jdbcType="VARCHAR" property="name"/>-->
+<!--    <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>-->
+<!--    <result column="is_delete" jdbcType="VARCHAR" property="isDelete"/>-->
+<!--    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>-->
+<!--  </resultMap>-->
+<!--  <sql id="Base_Column_List">-->
+<!--    id, work_id, parent_id, name, create_time, is_delete, update_time-->
+<!--  </sql>-->
+<!--  <select id="selectList" resultType="com.gis.domain.vo.WorkNavigationVo">-->
+<!--    select-->
+<!--    <include refid="Base_Column_List"/>-->
+<!--  <where>-->
 
-    <if test="dto.name != null and dto.name != ''">
-      AND  name like concat('%', #{menu.name}, '%')
-    </if>
-    <if test="menu.status != null and menu.status != ''">
-      AND  work_id = #{workId}
-    </if>
+<!--    <if test="dto.name != null and dto.name != ''">-->
+<!--      AND  name like concat('%', #{menu.name}, '%')-->
+<!--    </if>-->
+<!--    <if test="menu.status != null and menu.status != ''">-->
+<!--      AND  work_id = #{workId}-->
+<!--    </if>-->
 
-  </where>
-  </select>
+<!--  </where>-->
+<!--  </select>-->
 </mapper>

+ 2 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkBackgroundMusicService.java

@@ -11,4 +11,6 @@ import com.gis.domain.entity.WorkBackgroundMusicEntity;
  */
 public interface WorkBackgroundMusicService extends IService<WorkBackgroundMusicEntity> {
 
+    WorkBackgroundMusicEntity getByWorkId(String workId);
+
 }

+ 10 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkBaseSettingService.java

@@ -0,0 +1,10 @@
+package com.gis.service;
+
+import com.gis.domain.dto.WorkBaseSettingDto;
+import com.gis.domain.vo.WorkBaseSettingVo;
+
+public interface WorkBaseSettingService {
+
+    WorkBaseSettingVo save(WorkBaseSettingDto dto);
+
+}

+ 2 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkCoverTypeService.java

@@ -11,4 +11,6 @@ import com.gis.domain.entity.WorkCoverTypeEntity;
  */
 public interface WorkCoverTypeService extends IService<WorkCoverTypeEntity> {
 
+    WorkCoverTypeEntity getByWorkId(String workId);
+
 }

+ 4 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkCustomButtonService.java

@@ -3,6 +3,8 @@ package com.gis.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.domain.entity.WorkCustomButtonEntity;
 
+import java.util.List;
+
 /**
  * 自定义按钮设置表 服务类接口
  *
@@ -11,4 +13,6 @@ import com.gis.domain.entity.WorkCustomButtonEntity;
  */
 public interface WorkCustomButtonService extends IService<WorkCustomButtonEntity> {
 
+    List<WorkCustomButtonEntity> listByWorkId(String workId);
+
 }

+ 2 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkLogoService.java

@@ -11,4 +11,6 @@ import com.gis.domain.entity.WorkLogoEntity;
  */
 public interface WorkLogoService extends IService<WorkLogoEntity> {
 
+    WorkLogoEntity getByWorkId(String workId);
+
 }

+ 7 - 5
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkNavigationService.java

@@ -1,10 +1,7 @@
 package com.gis.service;
 
-import com.gis.domain.dto.WorkNavigationDTO;
 import com.gis.domain.entity.WorkNavigationEntity;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.gis.domain.vo.NavigationTreeSelect;
-import com.gis.domain.vo.WorkNavigationVo;
 
 import java.util.List;
 
@@ -15,7 +12,12 @@ import java.util.List;
  * @since 2023-09-08 18:13
  */
 public interface WorkNavigationService extends IService<WorkNavigationEntity> {
-    List<WorkNavigationVo> selectList(WorkNavigationDTO navigationDTO, String workId);
-    List<NavigationTreeSelect> buildMenuTreeSelect(List<WorkNavigationVo> navigationDTO);
+    List<WorkNavigationEntity> selectByParentId(long parentId);
+
+    List<WorkNavigationEntity> selectScenes(String workId);
+
+    List<WorkNavigationEntity> selectByWorkId(String workId);
+
+    void reSetFistSceneByWorkId(String workId);
 
 }

+ 34 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkNavigationSettingService.java

@@ -0,0 +1,34 @@
+package com.gis.service;
+
+import cn.hutool.core.lang.tree.Tree;
+import com.gis.domain.dto.AddWorkNavigationSceneDTO;
+import com.gis.domain.dto.WorkNavigationDTO;
+import com.gis.domain.dto.WorkNavigationSettingDto;
+import com.gis.domain.vo.WorkNavigationVo;
+import com.gis.domain.vo.WorkSceneVo;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+public interface WorkNavigationSettingService {
+
+    WorkNavigationVo addGroup(WorkNavigationDTO dto);
+
+    void updateNavigation(WorkNavigationDTO dto);
+
+    void deleteNavigation(long id, String workId);
+
+    Map<String, List<WorkSceneVo>> listScene(String workId);
+
+    WorkSceneVo addScene(AddWorkNavigationSceneDTO dto);
+
+    WorkSceneVo setInitialScene(long id, String workId);
+
+    List<Tree<Long>> queryNavigation(String workId);
+
+    void noveNavigation(WorkNavigationSettingDto dto);
+
+    WorkSceneVo getInitialScene(String workId);
+
+}

+ 2 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkOpeningAnimationService.java

@@ -11,4 +11,6 @@ import com.gis.domain.entity.WorkOpeningAnimationEntity;
  */
 public interface WorkOpeningAnimationService extends IService<WorkOpeningAnimationEntity> {
 
+    WorkOpeningAnimationEntity getByWorkId(String workId);
+
 }

+ 2 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkOpeningTipService.java

@@ -9,4 +9,6 @@ import com.gis.domain.entity.WorkOpeningTipEntity;
  */
 public interface WorkOpeningTipService extends IService<WorkOpeningTipEntity> {
 
+    WorkOpeningTipEntity getByWorkId(String workId);
+
 }

+ 11 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkViewService.java

@@ -0,0 +1,11 @@
+package com.gis.service;
+
+import com.gis.common.util.Result;
+import com.gis.domain.vo.WorkViewVo;
+import org.springframework.web.bind.annotation.RequestParam;
+
+public interface WorkViewService {
+
+    WorkViewVo getViewInfo(String workId);
+
+}

+ 5 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkBackgroundMusicServiceImpl.java

@@ -1,5 +1,6 @@
 package com.gis.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.mapper.WorkBackgroundMusicMapper;
 import com.gis.service.WorkBackgroundMusicService;
@@ -15,4 +16,8 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class WorkBackgroundMusicServiceImpl extends ServiceImpl<WorkBackgroundMusicMapper,WorkBackgroundMusicEntity> implements WorkBackgroundMusicService {
+    @Override
+    public WorkBackgroundMusicEntity getByWorkId(String workId) {
+        return getOne(new LambdaQueryWrapper<WorkBackgroundMusicEntity>().eq(WorkBackgroundMusicEntity::getWorkId, workId));
+    }
 }

+ 115 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkBaseSettingServiceImpl.java

@@ -0,0 +1,115 @@
+package com.gis.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.gis.domain.dto.WorkBackgroundMusicDto;
+import com.gis.domain.dto.WorkBaseSettingDto;
+import com.gis.domain.entity.*;
+import com.gis.domain.vo.*;
+import com.gis.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class WorkBaseSettingServiceImpl implements WorkBaseSettingService {
+
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private WorkOpeningTipService workOpeningTipService;
+    @Autowired
+    private WorkOpeningAnimationService workOpeningAnimationService;
+    @Autowired
+    private WorkCoverTypeService workCoverTypeService;
+    @Autowired
+    private WorkBackgroundMusicService workBackgroundMusicService;
+    @Autowired
+    private WorkLogoService workLogoService;
+    @Autowired
+    private WorkCustomButtonService workCustomButtonService;
+
+    @Override
+    public WorkBaseSettingVo save(WorkBaseSettingDto dto) {
+
+        WorkBaseSettingVo vo = new WorkBaseSettingVo();
+
+        //作品设置、访问密码、自动迅游
+        if(Objects.nonNull(dto.getWork())){
+            WorkEntity work = BeanUtil.toBean(dto.getWork(), WorkEntity.class);
+            work.setId(dto.getWorkId());
+            workService.saveOrUpdate(work);
+            vo.setWork(BeanUtil.toBean(work, WorkVo.class));
+        }
+
+        //开场提示
+        if(Objects.nonNull(dto.getWorkOpeningTip())){
+            WorkOpeningTipEntity workOpeningTip = BeanUtil.toBean(dto.getWorkOpeningTip(), WorkOpeningTipEntity.class);
+            workOpeningTip.setWorkId(dto.getWorkId());
+            WorkOpeningTipEntity WorkOpeningTipDb = workOpeningTipService.getByWorkId(dto.getWorkId());
+            if(Objects.nonNull(WorkOpeningTipDb)){
+                workOpeningTip.setId(WorkOpeningTipDb.getId());
+            }
+            workOpeningTipService.saveOrUpdate(workOpeningTip);
+            vo.setWorkOpeningTip(BeanUtil.toBean(workOpeningTip, WorkOpeningTipVo.class));
+        }
+
+        //开场动画
+        if(Objects.nonNull(dto.getWorkOpeningAnimation())){
+            WorkOpeningAnimationEntity workOpeningAnimation = BeanUtil.toBean(dto.getWorkOpeningAnimation(), WorkOpeningAnimationEntity.class);
+            workOpeningAnimation.setWorkId(dto.getWorkId());;
+            WorkOpeningAnimationEntity WorkOpeningAnimationDB = workOpeningAnimationService.getByWorkId(dto.getWorkId());
+            if(Objects.nonNull(WorkOpeningAnimationDB)){
+                workOpeningAnimation.setId(WorkOpeningAnimationDB.getId());
+            }
+            workOpeningAnimationService.saveOrUpdate(workOpeningAnimation);
+            vo.setWorkOpeningAnimation(BeanUtil.toBean(workOpeningAnimation, WorkOpeningAnimationVo.class));
+        }
+
+        //开场封面
+        if(Objects.nonNull(dto.getWorkCoverType())){
+            WorkCoverTypeEntity workCoverType = BeanUtil.toBean(dto.getWorkCoverType(), WorkCoverTypeEntity.class);
+            workCoverType.setWorkId(dto.getWorkId());
+            WorkCoverTypeEntity workCoverTypeDB = workCoverTypeService.getByWorkId(dto.getWorkId());
+            if(Objects.nonNull(workCoverTypeDB)){
+                workCoverType.setId(workCoverTypeDB.getId());
+            }
+            workCoverTypeService.saveOrUpdate(workCoverType);
+            vo.setWorkCoverType(BeanUtil.toBean(workCoverType, WorkCoverTypeVo.class));
+        }
+
+        //背景音乐
+        if(Objects.nonNull(dto.getWorkBackgroundMusic())){
+            WorkBackgroundMusicEntity workBackgroundMusic = BeanUtil.toBean(dto.getWorkBackgroundMusic(), WorkBackgroundMusicEntity.class);
+            WorkBackgroundMusicEntity workBackgroundMusicDB = workBackgroundMusicService.getByWorkId(dto.getWorkId());
+            if(Objects.nonNull(workBackgroundMusicDB)){
+                workBackgroundMusic.setId(workBackgroundMusicDB.getId());
+            }
+            workBackgroundMusicService.saveOrUpdate(workBackgroundMusic);
+            vo.setWorkBackgroundMusic(BeanUtil.toBean(workBackgroundMusic, WorkBackgroundMusicVo.class));
+        }
+
+        //自定义logo
+        if(Objects.nonNull(dto.getWorkLogo())){
+            WorkLogoEntity workLogo = BeanUtil.toBean(dto.getWorkLogo(), WorkLogoEntity.class);
+            WorkLogoEntity workLogoDB = workLogoService.getByWorkId(dto.getWorkId());
+            if(Objects.nonNull(workLogoDB)){
+                workLogo.setId(workLogoDB.getId());
+            }
+            workLogoService.saveOrUpdate(workLogo);
+            vo.setWorkLogo(BeanUtil.toBean(workLogo, WorkLogoVo.class));
+        }
+
+        //自定义按钮
+        if(CollUtil.isNotEmpty(dto.getWorkCustomButton())){
+            List<WorkCustomButtonEntity> workCustomButtonList = BeanUtil.copyToList(dto.getWorkCustomButton(), WorkCustomButtonEntity.class);
+            workCustomButtonList.stream().forEach(v->v.setWorkId(dto.getWorkId()));
+            workCustomButtonService.saveOrUpdateBatch(workCustomButtonList);
+            vo.setWorkCustomButtonList(BeanUtil.copyToList(workCustomButtonList, WorkCustomButtonVo.class));
+        }
+
+        return vo;
+    }
+}

+ 5 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkCoverTypeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.gis.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.domain.entity.WorkCoverTypeEntity;
 import com.gis.service.WorkCoverTypeService;
@@ -15,4 +16,8 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class WorkCoverTypeServiceImpl extends ServiceImpl<WorkCoverTypeMapper,WorkCoverTypeEntity > implements WorkCoverTypeService {
+    @Override
+    public WorkCoverTypeEntity getByWorkId(String workId) {
+        return getOne(new LambdaQueryWrapper<WorkCoverTypeEntity>().eq(WorkCoverTypeEntity::getWorkId, workId));
+    }
 }

+ 7 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkCustomButtonServiceImpl.java

@@ -1,5 +1,6 @@
 package com.gis.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.mapper.WorkCustomButtonMapper;
 import com.gis.service.WorkCustomButtonService;
@@ -7,6 +8,8 @@ import com.gis.domain.entity.WorkCustomButtonEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 自定义按钮设置表 服务实现类
  *
@@ -15,4 +18,8 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class WorkCustomButtonServiceImpl extends ServiceImpl<WorkCustomButtonMapper, WorkCustomButtonEntity> implements WorkCustomButtonService {
+    @Override
+    public List<WorkCustomButtonEntity> listByWorkId(String workId) {
+        return list(new LambdaQueryWrapper<WorkCustomButtonEntity>().eq(WorkCustomButtonEntity::getWorkId, workId));
+    }
 }

+ 5 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkLogoServiceImpl.java

@@ -1,5 +1,6 @@
 package com.gis.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.mapper.WorkLogoMapper;
 import com.gis.service.WorkLogoService;
@@ -15,4 +16,8 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class WorkLogoServiceImpl extends ServiceImpl<WorkLogoMapper,WorkLogoEntity> implements WorkLogoService {
+    @Override
+    public WorkLogoEntity getByWorkId(String workId) {
+        return getOne(new LambdaQueryWrapper<WorkLogoEntity>().eq(WorkLogoEntity::getWorkId, workId));
+    }
 }

+ 29 - 52
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkNavigationServiceImpl.java

@@ -1,18 +1,18 @@
 package com.gis.service.impl;
 
-import com.gis.domain.dto.WorkNavigationDTO;
-import com.gis.domain.vo.NavigationTreeSelect;
-import com.gis.domain.vo.WorkNavigationVo;
-import com.gis.service.WorkNavigationService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gis.common.constant.NavigationTypeEnum;
 import com.gis.domain.entity.WorkNavigationEntity;
+import com.gis.domain.vo.WorkNavigationVo;
 import com.gis.mapper.WorkNavigationMapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gis.service.WorkNavigationService;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * 作品导航表 服务实现类
@@ -23,52 +23,6 @@ import java.util.stream.Collectors;
 @Service
 public class WorkNavigationServiceImpl extends ServiceImpl<WorkNavigationMapper, WorkNavigationEntity> implements WorkNavigationService {
 
-    @Override
-    public List<WorkNavigationVo> selectList(WorkNavigationDTO menu, String workId) {
-        return  getBaseMapper().selectList(menu,workId);
-    }
-
-    @Override
-    public List<NavigationTreeSelect> buildMenuTreeSelect(List<WorkNavigationVo> workNavigations) {
-        List<WorkNavigationVo> menuTrees = buildTree(workNavigations);
-        return menuTrees.stream().map(NavigationTreeSelect::new).collect(Collectors.toList());
-    }
-
-    private List<WorkNavigationVo> buildTree(List<WorkNavigationVo> menus) {
-        List<WorkNavigationVo> returnList = new ArrayList<>();
-        List<Long> tempList = new ArrayList<Long>();
-        for (WorkNavigationVo dept : menus) {
-            tempList.add(dept.getId());
-        }
-        for (Iterator<WorkNavigationVo> iterator = menus.iterator(); iterator.hasNext(); ) {
-            WorkNavigationVo menu = iterator.next();
-            // 如果是顶级节点, 遍历该父节点的所有子节点
-            if (!tempList.contains(menu.getParentId())) {
-                recursionFn(menus, menu);
-                returnList.add(menu);
-            }
-        }
-        if (returnList.isEmpty()) {
-            returnList = menus;
-        }
-        return returnList;
-    }
-    /**
-     * 递归列表
-     *
-     * @param list
-     * @param t
-     */
-    private void recursionFn(List<WorkNavigationVo> list, WorkNavigationVo t) {
-        // 得到子节点列表
-        List<WorkNavigationVo> childList = getChildList(list, t);
-        t.setChildren(childList);
-        for (WorkNavigationVo tChild : childList) {
-            if (hasChild(list, tChild)) {
-                recursionFn(list, tChild);
-            }
-        }
-    }
     /**
      * 得到子节点列表
      */
@@ -90,4 +44,27 @@ public class WorkNavigationServiceImpl extends ServiceImpl<WorkNavigationMapper,
     private boolean hasChild(List<WorkNavigationVo> list, WorkNavigationVo t) {
         return getChildList(list, t).size() > 0;
     }
+
+    @Override
+    public List<WorkNavigationEntity> selectByParentId(long parentId) {
+        return this.list(new LambdaQueryWrapper<WorkNavigationEntity>().eq(WorkNavigationEntity::getParentId, parentId));
+    }
+
+    @Override
+    public List<WorkNavigationEntity> selectScenes(String workId) {
+        List<WorkNavigationEntity> list = this.list(new LambdaQueryWrapper<WorkNavigationEntity>()
+                .eq(WorkNavigationEntity::getWorkId, workId)
+                .in(WorkNavigationEntity::getType, NavigationTypeEnum.FDKK.code(), NavigationTypeEnum.PANO.code()));
+        return list;
+    }
+
+    @Override
+    public List<WorkNavigationEntity> selectByWorkId(String workId) {
+        return this.list(new LambdaQueryWrapper<WorkNavigationEntity>().eq(WorkNavigationEntity::getWorkId, workId));
+    }
+
+    @Override
+    public void reSetFistSceneByWorkId(String workId) {
+        this.update(new LambdaUpdateWrapper<WorkNavigationEntity>().set(WorkNavigationEntity::getIsFirstScene, 0).eq(WorkNavigationEntity::getWorkId, workId));
+    }
 }

+ 176 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkNavigationSettingServiceImpl.java

@@ -0,0 +1,176 @@
+package com.gis.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.lang.tree.TreeNode;
+import cn.hutool.core.lang.tree.TreeNodeConfig;
+import cn.hutool.core.lang.tree.TreeUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.gis.common.constant.NavigationTypeEnum;
+import com.gis.common.exception.BaseRuntimeException;
+import com.gis.domain.dto.AddWorkNavigationSceneDTO;
+import com.gis.domain.dto.MoveWorkNavigationDTO;
+import com.gis.domain.dto.WorkNavigationDTO;
+import com.gis.domain.dto.WorkNavigationSettingDto;
+import com.gis.domain.entity.WorkNavigationEntity;
+import com.gis.domain.vo.WorkNavigationVo;
+import com.gis.domain.vo.WorkSceneVo;
+import com.gis.service.WorkNavigationService;
+import com.gis.service.WorkNavigationSettingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+public class WorkNavigationSettingServiceImpl implements WorkNavigationSettingService {
+
+    @Autowired
+    private WorkNavigationService workNavigationService;
+
+    @Override
+    public WorkNavigationVo addGroup(WorkNavigationDTO dto) {
+
+        WorkNavigationEntity entity = BeanUtil.toBean(dto, WorkNavigationEntity.class);
+        entity.setType(NavigationTypeEnum.GROUP.code());
+        workNavigationService.save(entity);
+
+        return BeanUtil.toBean(entity, WorkNavigationVo.class);
+    }
+
+    @Override
+    public void updateNavigation(WorkNavigationDTO dto) {
+        WorkNavigationEntity entity = BeanUtil.toBean(dto, WorkNavigationEntity.class);
+        workNavigationService.updateById(entity);
+    }
+
+    @Override
+    public void deleteNavigation(long id, String workId) {
+
+        List<Long> ids = new ArrayList<>();
+        ids.add(id);
+        WorkNavigationEntity entity = workNavigationService.getById(id);
+        if(Objects.isNull(entity)){
+            return;
+        }
+        String type = entity.getType();
+        if(type.equals(NavigationTypeEnum.GROUP.code())){
+            List<WorkNavigationEntity> workNavigationEntities = workNavigationService.selectByParentId(id);
+            if(CollUtil.isNotEmpty(workNavigationEntities)){
+                workNavigationEntities.forEach(v->ids.add(v.getId()));
+            }
+        }
+
+        workNavigationService.removeByIds(ids);
+    }
+
+    @Override
+    public Map<String, List<WorkSceneVo>> listScene(String workId) {
+        List<WorkNavigationEntity> workNavigationEntities = workNavigationService.selectScenes(workId);
+        List<WorkSceneVo> panoList = new ArrayList<>();
+        List<WorkSceneVo> fdkkList = new ArrayList<>();
+        workNavigationEntities.stream().forEach(v->{
+            if(v.getType().equals(NavigationTypeEnum.FDKK.code())) fdkkList.add(BeanUtil.toBean(v, WorkSceneVo.class));
+            if(v.getType().equals(NavigationTypeEnum.PANO.code())) panoList.add(BeanUtil.toBean(v, WorkSceneVo.class));
+        });
+
+        Map<String, List<WorkSceneVo>> result = new HashMap<>();
+        result.put("panoList", panoList);
+        result.put("fdkkList", fdkkList);
+
+        return result;
+    }
+
+    @Override
+    public WorkSceneVo addScene(AddWorkNavigationSceneDTO dto) {
+        this.checkAddScene(dto);
+        WorkNavigationEntity workNavigationEntity = BeanUtil.toBean(dto, WorkNavigationEntity.class);
+        workNavigationService.save(workNavigationEntity);
+        return BeanUtil.toBean(workNavigationEntity, WorkSceneVo.class);
+    }
+
+    private void checkAddScene(AddWorkNavigationSceneDTO dto){
+        if(dto.getType().equals(NavigationTypeEnum.PANO.code()) && Objects.isNull(dto.getFodderId())){
+            throw new BaseRuntimeException("素材id不能为空");
+        }
+    }
+
+    @Override
+    public WorkSceneVo setInitialScene(long id, String workId) {
+
+        WorkNavigationEntity workNavigationEntity = workNavigationService.getById(id);
+        if(Objects.isNull(workNavigationEntity) || !workId.equals(workNavigationEntity.getWorkId())){
+            throw new BaseRuntimeException("查询不到场景");
+        }
+
+        //重置初始场景
+        workNavigationService.reSetFistSceneByWorkId(workId);
+
+        workNavigationEntity.setIsFirstScene(1);
+        workNavigationService.updateById(workNavigationEntity);
+
+        return BeanUtil.toBean(workNavigationEntity, WorkSceneVo.class);
+    }
+
+    @Override
+    public List<Tree<Long>> queryNavigation(String workId) {
+        List<WorkNavigationEntity> workNavigationEntities = workNavigationService.selectByWorkId(workId);
+
+        // 0表示最顶层的id是0
+        // 构建node列表
+        List<TreeNode> nodeList = workNavigationEntities.stream().map(v -> {
+            TreeNode<Long> node = new TreeNode<>(v.getId(), v.getParentId(), v.getName(), v.getSort());
+            Map<String, Object> extra = new HashMap<>();
+            extra.put("type", v.getType());
+            node.setExtra(extra);
+            if (!v.getType().equals(NavigationTypeEnum.GROUP.code())) {
+                extra.put("fodderId", v.getFodderId());
+                extra.put("sceneCode", v.getSceneCode());
+                extra.put("version", v.getVersion());
+                extra.put("icon", v.getIcon());
+            }
+            return node;
+        }).collect(Collectors.toList());
+
+
+        //配置
+        TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
+        // 自定义属性名 都有默认值的
+        treeNodeConfig.setWeightKey("sort");
+        treeNodeConfig.setIdKey("id");
+        // 最大递归深度
+//        treeNodeConfig.setDeep(2);
+
+        // 构建node列表
+        List<Tree<Long>> treeNodes = TreeUtil.build(nodeList, 0L, treeNodeConfig,
+                (treeNode, tree) -> {
+                    tree.setId((Long) treeNode.getId());
+                    tree.setParentId((Long)treeNode.getParentId());
+                    tree.setWeight(treeNode.getWeight());
+                    tree.setName(treeNode.getName());
+                    Map<String, Object> extra = treeNode.getExtra();
+                    extra.keySet().stream().forEach(v->{
+                        tree.putExtra(v, extra.get(v));
+                    });
+                });
+
+        return treeNodes;
+    }
+
+    @Override
+    public void noveNavigation(WorkNavigationSettingDto dto) {
+        List<MoveWorkNavigationDTO> list = dto.getList();
+        List<WorkNavigationEntity> workNavigationEntities = BeanUtil.copyToList(list, WorkNavigationEntity.class);
+        workNavigationService.updateBatchById(workNavigationEntities);
+    }
+
+    @Override
+    public WorkSceneVo getInitialScene(String workId) {
+        WorkNavigationEntity workNavigationEntity = workNavigationService.getOne(new LambdaQueryWrapper<WorkNavigationEntity>().eq(WorkNavigationEntity::getWorkId, workId).eq(WorkNavigationEntity::getIsFirstScene, 1));
+        WorkSceneVo vo = BeanUtil.toBean(workNavigationEntity, WorkSceneVo.class);
+        return vo;
+    }
+}

+ 6 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkOpeningAnimationServiceImpl.java

@@ -1,5 +1,7 @@
 package com.gis.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.domain.entity.WorkOpeningAnimationEntity;
 import com.gis.mapper.WorkOpeningAnimationMapper;
@@ -15,4 +17,8 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class WorkOpeningAnimationServiceImpl extends ServiceImpl<WorkOpeningAnimationMapper,WorkOpeningAnimationEntity> implements WorkOpeningAnimationService {
+    @Override
+    public WorkOpeningAnimationEntity getByWorkId(String workId) {
+        return this.getOne(new LambdaQueryWrapper<WorkOpeningAnimationEntity>().eq(WorkOpeningAnimationEntity::getWorkId, workId));
+    }
 }

+ 5 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkOpeningTipServiceImpl.java

@@ -1,5 +1,6 @@
 package com.gis.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.domain.entity.WorkOpeningTipEntity;
 import com.gis.mapper.WorkOpeningTipMapper;
@@ -13,6 +14,10 @@ import org.springframework.stereotype.Service;
 @Service
 public class WorkOpeningTipServiceImpl extends ServiceImpl<WorkOpeningTipMapper,WorkOpeningTipEntity> implements WorkOpeningTipService {
 
+    @Override
+    public WorkOpeningTipEntity getByWorkId(String workId) {
+        return getOne(new LambdaQueryWrapper<WorkOpeningTipEntity>().eq(WorkOpeningTipEntity::getWorkId, workId));
+    }
 }
 
 

+ 74 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkViewServiceImpl.java

@@ -0,0 +1,74 @@
+package com.gis.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.tree.Tree;
+import com.gis.common.util.Result;
+import com.gis.domain.entity.*;
+import com.gis.domain.vo.*;
+import com.gis.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class WorkViewServiceImpl implements WorkViewService {
+
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private WorkOpeningTipService workOpeningTipService;
+    @Autowired
+    private WorkOpeningAnimationService workOpeningAnimationService;
+    @Autowired
+    private WorkCoverTypeService workCoverTypeService;
+    @Autowired
+    private WorkBackgroundMusicService workBackgroundMusicService;
+    @Autowired
+    private WorkLogoService workLogoService;
+    @Autowired
+    private WorkCustomButtonService workCustomButtonService;
+    @Autowired
+    private WorkNavigationSettingService workNavigationSettingService;
+
+    @Override
+    public WorkViewVo getViewInfo(String workId) {
+        WorkEntity work = workService.getById(workId);
+        WorkVo workVo = BeanUtil.toBean(work, WorkVo.class);
+
+        WorkOpeningTipEntity workOpeningTip = workOpeningTipService.getByWorkId(workId);
+        WorkOpeningTipVo workOpeningTipVo = BeanUtil.toBean(workOpeningTip, WorkOpeningTipVo.class);
+
+        WorkOpeningAnimationEntity workOpeningAnimation = workOpeningAnimationService.getByWorkId(workId);
+        WorkOpeningAnimationVo workOpeningAnimationVo = BeanUtil.toBean(workOpeningAnimation, WorkOpeningAnimationVo.class);
+
+        WorkCoverTypeEntity WorkCoverType = workCoverTypeService.getByWorkId(workId);
+        WorkCoverTypeVo workCoverTypeVo = BeanUtil.toBean(WorkCoverType, WorkCoverTypeVo.class);
+
+        WorkBackgroundMusicEntity workBackgroundMusic = workBackgroundMusicService.getByWorkId(workId);
+        WorkBackgroundMusicVo workBackgroundMusicVo = BeanUtil.toBean(workBackgroundMusic, WorkBackgroundMusicVo.class);
+
+        WorkLogoEntity workLogo = workLogoService.getByWorkId(workId);
+        WorkLogoVo workLogoVo = BeanUtil.toBean(workLogo, WorkLogoVo.class);
+
+        List<WorkCustomButtonEntity> workCustomButtonList = workCustomButtonService.listByWorkId(workId);
+        List<WorkCustomButtonVo> workCustomButtonVos = BeanUtil.copyToList(workCustomButtonList, WorkCustomButtonVo.class);
+
+        List<Tree<Long>> navigationTrees = workNavigationSettingService.queryNavigation(workId);
+
+        WorkSceneVo initialScene = workNavigationSettingService.getInitialScene(workId);
+
+        return WorkViewVo.builder()
+                .workId(workId)
+                .work(workVo)
+                .workOpeningTip(workOpeningTipVo)
+                .WorkOpeningAnimation(workOpeningAnimationVo)
+                .workCoverType(workCoverTypeVo)
+                .workBackgroundMusic(workBackgroundMusicVo)
+                .workLogo(workLogoVo)
+                .workCustomButtonVoList(workCustomButtonVos)
+                .navigationTrees(navigationTrees)
+                .firstScene(initialScene)
+                .build();
+    }
+}

+ 0 - 21
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkBaseSettingController.java

@@ -1,21 +0,0 @@
-package com.gis.web.controller;
-
-import com.gis.common.util.Result;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping("/work/edit/base")
-public class WorkBaseSettingController {
-
-    public Result saveBaseSetting(){
-
-
-
-
-
-        return  Result.success();
-    }
-
-
-}

+ 37 - 0
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkEditBaseController.java

@@ -0,0 +1,37 @@
+package com.gis.web.controller;
+
+import com.gis.common.constant.ErrorEnum;
+import com.gis.common.util.Result;
+import com.gis.domain.dto.AddWorkNavigationSceneDTO;
+import com.gis.domain.dto.WorkBaseSettingDto;
+import com.gis.domain.dto.WorkNavigationDTO;
+import com.gis.domain.dto.WorkNavigationSettingDto;
+import com.gis.service.WorkBaseSettingService;
+import com.gis.service.WorkNavigationSettingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+@Api(tags = "作品编辑-基础")
+@RestController
+@RequestMapping("/work/edit/base")
+public class WorkEditBaseController {
+
+    @Autowired
+    private WorkBaseSettingService workBaseSettingService;
+    @Autowired
+    private WorkNavigationSettingService workNavigationSettingService;
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "保存基础设置", position = 1)
+    @PostMapping("/save")
+    public Result saveBaseSetting(@RequestBody @Valid WorkBaseSettingDto dto){
+        return  Result.success(workBaseSettingService.save(dto));
+    }
+
+}

+ 95 - 0
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkEditNavigationController.java

@@ -0,0 +1,95 @@
+package com.gis.web.controller;
+
+import com.gis.common.constant.ErrorEnum;
+import com.gis.common.util.Result;
+import com.gis.domain.dto.AddWorkNavigationSceneDTO;
+import com.gis.domain.dto.WorkBaseSettingDto;
+import com.gis.domain.dto.WorkNavigationDTO;
+import com.gis.domain.dto.WorkNavigationSettingDto;
+import com.gis.service.WorkBaseSettingService;
+import com.gis.service.WorkNavigationSettingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+@Api(tags = "作品编辑-导航")
+@RestController
+@RequestMapping("/work/edit/navigation")
+public class WorkEditNavigationController {
+
+    @Autowired
+    private WorkBaseSettingService workBaseSettingService;
+    @Autowired
+    private WorkNavigationSettingService workNavigationSettingService;
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "新增分组", position = 1)
+    @PostMapping("/group/add")
+    public Result addGroup(@RequestBody @Valid WorkNavigationDTO dto){
+        return  Result.success(workNavigationSettingService.addGroup(dto));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "修改导航", position = 1)
+    @PostMapping("/navigation/update")
+    public Result updateNavigation(@RequestBody @Valid WorkNavigationDTO dto){
+        if(Objects.isNull(dto.getId())) return Result.failure(ErrorEnum.FAILURE_CODE_3031.code(), ErrorEnum.FAILURE_CODE_3031.message());
+        workNavigationSettingService.updateNavigation(dto);
+        return  Result.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "删除导航", position = 1)
+    @DeleteMapping("/navigation/delete")
+    public Result updateNavigation(@RequestParam("id") long id, @RequestParam("workId") String workId){
+        workNavigationSettingService.deleteNavigation(id, workId);
+        return  Result.success();
+    }
+
+    @ApiOperation(value = "查询导航场景", position = 1)
+    @GetMapping("/scene/list")
+    public Result listScene(@RequestParam("workId") String workId){
+        return  Result.success(workNavigationSettingService.listScene(workId));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "添加三维场景或者全景图", position = 1)
+    @PostMapping("/scene/add")
+    public Result addScene(@RequestBody @Valid AddWorkNavigationSceneDTO dto){
+        return  Result.success(workNavigationSettingService.addScene(dto));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "设置初始场景", position = 1)
+    @PostMapping("/scene/initial/set")
+    public Result setInitialScene(@RequestParam("id") long id, @RequestParam("workId") String workId){
+        return  Result.success(workNavigationSettingService.setInitialScene(id, workId));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "查询初始场景", position = 1)
+    @GetMapping("/scene/initial/get")
+    public Result getInitialScene(@RequestParam("workId") String workId){
+        return  Result.success(workNavigationSettingService.getInitialScene(workId));
+    }
+
+    @ApiOperation(value = "查询导航树", position = 1)
+    @GetMapping("/navigation/query")
+    public Result queryNavigation(@RequestParam("workId") String workId){
+        return  Result.success(workNavigationSettingService.queryNavigation(workId));
+    }
+
+    @ApiOperation(value = "移动导航", position = 1)
+    @GetMapping("/navigation/move")
+    public Result moveNavigation(@RequestBody @Valid WorkNavigationSettingDto dto){
+        workNavigationSettingService.noveNavigation(dto);
+        return  Result.success();
+    }
+
+
+}

+ 35 - 0
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkEditVisualAngleBaseController.java

@@ -0,0 +1,35 @@
+package com.gis.web.controller;
+
+import com.gis.common.util.Result;
+import com.gis.domain.dto.WorkBaseSettingDto;
+import com.gis.service.WorkBaseSettingService;
+import com.gis.service.WorkNavigationSettingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+@Api(tags = "作品编辑-视角")
+@RestController
+@RequestMapping("/work/edit/visual")
+public class WorkEditVisualAngleBaseController {
+
+    @Autowired
+    private WorkBaseSettingService workBaseSettingService;
+    @Autowired
+    private WorkNavigationSettingService workNavigationSettingService;
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "保存基础设置", position = 1)
+    @PostMapping("/save")
+    public Result save(@RequestBody @Valid WorkBaseSettingDto dto){
+        return  Result.success(workBaseSettingService.save(dto));
+    }
+
+}

+ 43 - 0
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkViewController.java

@@ -0,0 +1,43 @@
+package com.gis.web.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.gis.common.util.Result;
+import com.gis.common.util.ResultData;
+import com.gis.domain.entity.*;
+import com.gis.domain.vo.*;
+import com.gis.service.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 作品查看
+ */
+@Api(tags = "作品查看")
+@RestController
+@RequestMapping("/work/view")
+public class WorkViewController {
+
+    @Autowired
+    private WorkViewService workViewService;
+
+    /**
+     * 作品查看信息
+     * @return
+     */
+    @ApiOperation(value = "作品查看信息", position = 1)
+    @GetMapping()
+    public Result<WorkViewVo> getViewInfo(@RequestParam("workId") String workId){
+        return Result.success(workViewService.getViewInfo(workId));
+    }
+
+
+}