Browse Source

修改 mybatisplus

xiewj 1 year ago
parent
commit
c28b2284ba
24 changed files with 815 additions and 135 deletions
  1. 1 1
      720yun_fd_consumer/pom.xml
  2. 140 32
      720yun_fd_manage/.gitignore
  3. 11 1
      720yun_fd_manage/gis_application/src/main/resources/application.yml
  4. 0 95
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/config/Swagger2.java
  5. 129 0
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/config/SwaggerConfig.java
  6. 9 0
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/config/WebMvcConfig.java
  7. 2 0
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/shiro/ShiroConfig.java
  8. 1 2
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WordAllDto.java
  9. 36 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkCustomMaskDto.java
  10. 3 3
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkCustomMaskDTO.java
  11. 34 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkNavigationDTO.java
  12. 34 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkNavigationEntity.java
  13. 44 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkSceneEntity.java
  14. 66 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/NavigationTreeSelect.java
  15. 43 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkNavigationVo.java
  16. 42 0
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkSceneVo.java
  17. 25 0
      720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkNavigationMapper.java
  18. 17 0
      720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkSceneMapper.java
  19. 31 0
      720yun_fd_manage/gis_mapper/src/main/resources/mapper/WorkNavigationMapper.xml
  20. 21 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkNavigationService.java
  21. 14 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkSceneService.java
  22. 93 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkNavigationServiceImpl.java
  23. 18 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkSceneServiceImpl.java
  24. 1 1
      720yun_fd_manage/pom.xml

+ 1 - 1
720yun_fd_consumer/pom.xml

@@ -42,7 +42,7 @@
         <tk.mybatis.version>2.0.2</tk.mybatis.version>
         <tk.mapper.version>4.0.3</tk.mapper.version>
         <pagehelper.version>1.2.5</pagehelper.version>
-        <knife4j.version>2.0.2</knife4j.version>
+        <knife4j.version>3.0.3</knife4j.version>
         <junit.version>4.12</junit.version>
     </properties>
 

+ 140 - 32
720yun_fd_manage/.gitignore

@@ -1,16 +1,152 @@
-# Created by .ignore support plugin (hsz.mobi)
-### Java template
+## .gitignore for Grails 1.2 and 1.3
+
+# .gitignore for maven
+target/
+*.releaseBackup
+
+# web application files
+#/web-app/WEB-INF
+
+# IDE support files
+/.classpath
+/.launch
+/.project
+/.settings
+/*.launch
+/*.tmproj
+/ivy*
+/eclipse
+
+# default HSQL database files for production mode
+/prodDb.*
+
+# general HSQL database files
+*Db.properties
+*Db.script
+
+# logs
+/stacktrace.log
+/test/reports
+/logs
+*.log
+*.log.*
+
+# project release file
+/*.war
+
+# plugin release file
+/*.zip
+/*.zip.sha1
+
+# older plugin install locations
+/plugins
+/web-app/plugins
+/web-app/WEB-INF/classes
+
+# "temporary" build files
+target/
+out/
+build/
+
+# other
+*.iws
+
+#.gitignore for java
+*.class
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+## .gitignore for eclipse
+
+*.pydevproject
+.project
+.metadata
+bin/**
+tmp/**
+tmp/**/*
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.classpath
+.settings/
+.loadpath
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# CDT-specific
+.cproject
+
+# PDT-specific
+.buildpath
+
+## .gitignore for intellij
+
+*.iml
+*.ipr
+*.iws
+.idea/
+
+## .gitignore for linux
+.*
+!.gitignore
+!.gitattributes
+!.editorconfig
+!.eslintrc
+!.travis.yml
+*~
+
+## .gitignore for windows
+
+# Windows image file caches
+Thumbs.db
+ehthumbs.db
+
+# Folder config file
+Desktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+## .gitignore for mac os x
+
+.DS_Store
+.AppleDouble
+.LSOverride
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+## hack for graddle wrapper
+!wrapper/*.jar
+!**/wrapper/*.jar
+
 # Compiled class file
 *.class
 
 # Log file
-*.sysLog
+*.log
 
 # BlueJ files
 *.ctxt
 
 # Mobile Tools for Java (J2ME)
 .mtj.tmp/
+
 # Package Files #
 *.jar
 *.war
@@ -18,32 +154,4 @@
 *.ear
 *.zip
 *.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-
-### Example user template template
-### Example user template
-
-# IntelliJ project files
-../.idea
-*.iml
-out
-gen
-rebel.xml
-!/target/
-
-
-*.iws
-*.ipr
-!/.gitignore
-!/logs/
-/gis_application/target/
-/gis_common/target/
-/gis_domain/target/
-/gis_mapper/target/
-/gis_oss/target/
-/gis_service/target/
-/gis_web/target/
-target/
+*.rar

+ 11 - 1
720yun_fd_manage/gis_application/src/main/resources/application.yml

@@ -32,7 +32,17 @@ spring:
       max-file-size: 256MB
       max-request-size: 256MB
 swagger:
+  # 鏄�惁寮€鍚痵wagger
+  enabled: true
+  # 璇锋眰鍓嶇紑
+  pathMapping: /
+  production: false
   description: ${swagger.title}
   package: com.gis.web.controller
-  title: 全景看看-${spring.profiles.active}
+  title: 鍏ㄦ櫙鐪嬬湅-${spring.profiles.active}
   version: 1.3.0
+knife4j:
+  # 开启增强配置
+  enable: true
+  # 开启生产环境屏蔽
+  production: false

+ 0 - 95
720yun_fd_manage/gis_common/src/main/java/com/gis/common/config/Swagger2.java

@@ -1,95 +0,0 @@
-package com.gis.common.config;
-
-import com.gis.common.constant.ConfigConstant;
-import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
-import com.google.common.collect.Lists;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.service.ApiKey;
-import springfox.documentation.service.AuthorizationScope;
-import springfox.documentation.service.SecurityReference;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spi.service.contexts.SecurityContext;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by owen on 2020/2/18
- *
- * 集成Swagger有3步:
- * 1.pom.xml添加依赖
- * 2.添加Swagger2.class
- * 3.Application.class 加上注解@EnableSwagger2 表示开启Swagger
- * 4.http://localhost:8080/doc.html#/
- *
- * 2.9.2 不需要字启动类配置注解
- */
-@Slf4j
-@Configuration
-@EnableSwagger2
-@EnableKnife4j
-public class Swagger2 {
-
-    @Autowired
-    ConfigConstant configConstant;
-
-    @Bean
-    public Docket createRestApi() {
-        return new Docket(DocumentationType.SWAGGER_2)
-                .apiInfo(apiInfo())
-                .select()
-                .apis(RequestHandlerSelectors.basePackage(configConstant.swaggerPackage))
-                .paths(PathSelectors.any())
-                .build()
-                //添加登录认证,可以使用token
-                .securityContexts(securityContexts())
-                .securitySchemes(securitySchemes())
-                ;
-    }
-
-    private ApiInfo apiInfo() {
-        return new ApiInfoBuilder()
-                .title(configConstant.swaggerTitle)
-                .description(configConstant.swaggerDescription)
-                .version(configConstant.swaggerVersion)
-                .build();
-    }
-
-    private List<ApiKey> securitySchemes() {
-        //设置请求头信息
-        List<ApiKey> result = new ArrayList<>();
-        ApiKey apiKey = new ApiKey("Authorization", "token", "header");
-        result.add(apiKey);
-        return result;
-
-    }
-
-
-    private List<SecurityContext> securityContexts() {
-
-        SecurityContext context = SecurityContext.builder()
-                .securityReferences(defaultAuth())
-                .build();
-
-        return Lists.newArrayList(context);
-
-    }
-
-    private List<SecurityReference> defaultAuth() {
-        List<SecurityReference> result = new ArrayList<>();
-        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
-        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
-        authorizationScopes[0] = authorizationScope;
-        result.add(new SecurityReference("Authorization", authorizationScopes));
-        return result;
-    }
-}

+ 129 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/config/SwaggerConfig.java

@@ -0,0 +1,129 @@
+package com.gis.common.config;
+
+import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.oas.annotations.EnableOpenApi;
+import springfox.documentation.service.*;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Swagger2的接口配置
+ *
+ * @author fdkk
+ */
+@Configuration
+@EnableOpenApi
+@EnableKnife4j
+public class SwaggerConfig {
+
+    /**
+     * 是否开启swagger
+     */
+    @Value("${swagger.enabled}")
+    private boolean enabled;
+    /**
+     * title
+     */
+    @Value("${swagger.title}")
+    private String title;
+    /**
+     * version
+     */
+    @Value("${swagger.version}")
+    private String version;
+
+    /**
+     * 设置请求的统一前缀
+     */
+    @Value("${swagger.pathMapping}")
+    private String pathMapping;
+
+    /**
+     * 创建API
+     */
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.OAS_30)
+                // 是否启用Swagger
+                .enable(enabled)
+                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
+                .apiInfo(apiInfo())
+                // 设置哪些接口暴露给Swagger展示
+                .select()
+                // 扫描所有有注解的api,用这种方式更灵活
+                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+                // 扫描指定包中的swagger注解
+                // .apis(RequestHandlerSelectors.basePackage("com.fdkk.project.tool.swagger"))
+                // 扫描所有 .apis(RequestHandlerSelectors.any())
+                .paths(PathSelectors.any())
+                .build()
+                /* 设置安全模式,swagger可以设置访问token */
+                .securitySchemes(securitySchemes())
+                .securityContexts(securityContexts())
+                .pathMapping(pathMapping);
+    }
+
+    /**
+     * 安全模式,这里指定token通过Authorization头请求头传递
+     */
+    private List<SecurityScheme> securitySchemes() {
+        List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
+        apiKeyList.add(new ApiKey("token", "token", In.HEADER.toValue()));
+        return apiKeyList;
+    }
+
+    /**
+     * 安全上下文
+     */
+    private List<SecurityContext> securityContexts() {
+        List<SecurityContext> securityContexts = new ArrayList<>();
+        securityContexts.add(
+                SecurityContext.builder()
+                        .securityReferences(defaultAuth())
+                        .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
+                        .build());
+        return securityContexts;
+    }
+
+    /**
+     * 默认的安全上引用
+     */
+    private List<SecurityReference> defaultAuth() {
+        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+        authorizationScopes[0] = authorizationScope;
+        List<SecurityReference> securityReferences = new ArrayList<>();
+        securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
+        return securityReferences;
+    }
+
+    /**
+     * 添加摘要信息
+     */
+    private ApiInfo apiInfo() {
+        // 用ApiInfoBuilder进行定制
+        return new ApiInfoBuilder()
+                // 设置标题
+                .title(title)
+                // 描述
+                .description(title+"描述:接口信息查看...")
+                // 作者信息
+                .contact(new Contact(title, null, null))
+//                // 版本
+                .version("版本号:" + version)
+                .build();
+    }
+}

+ 9 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/config/WebMvcConfig.java

@@ -13,6 +13,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import java.util.ArrayList;
@@ -60,7 +61,15 @@ public class WebMvcConfig implements WebMvcConfigurer {
         registry.addInterceptor(apiInterceptor).addPathPatterns("/api/**");
 
     }
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+
+        /** swagger配置 */
+        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
+        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
+        registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
 
+    }
 
     /**
      * fastJson相关设置

+ 2 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/shiro/ShiroConfig.java

@@ -73,7 +73,9 @@ public class ShiroConfig {
         filterRuleMap.put("/swagger-resources/**", "anon");
         filterRuleMap.put("/webjars/**", "anon");
         filterRuleMap.put("/v2/**", "anon");
+        filterRuleMap.put("/doc.html", "anon");
         filterRuleMap.put("/swagger-ui.html/**", "anon");
+        filterRuleMap.put("/swagger-resources/**", "anon");
 
 
         // 所有请求通过我们自己的JWT Filter

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

@@ -1,6 +1,5 @@
 package com.gis.domain.dto;
 
-import com.gis.domain.entity.*;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -30,7 +29,7 @@ public class WordAllDto {
     private WorkLogoDto workLogoInfo;
 
     @ApiModelProperty(value = "自定义遮罩")
-    private WorkCustomMaskDTO customMaskInfo;
+    private WorkCustomMaskInfoDto customMaskInfo;
 
     @ApiModelProperty(value = "自定义按钮")
     private WorkCustomButtonDto workCustomButtonInfo;

+ 36 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkCustomMaskDto.java

@@ -0,0 +1,36 @@
+package com.gis.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.gis.domain.entity.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 遮罩设置表
+ *
+ * @author Xiewj
+ * @since 2023-09-06 14:37
+ */
+@Data
+@ApiModel("遮罩设置表")
+public class WorkCustomMaskDto   {
+
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty("wordid")
+    private String workId;
+
+    @ApiModelProperty("图片地址	")
+    private String icon;
+
+    @ApiModelProperty("开关 默认false")
+    private Boolean isShow;
+
+    @ApiModelProperty("类型 earth sky")
+    private String type;
+}

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

@@ -11,10 +11,10 @@ import lombok.Data;
  */
 @Data
 @ApiModel("CustomMask")
-public class WorkCustomMaskDTO {
+public class WorkCustomMaskInfoDto {
 
    @ApiModelProperty(value = "下层")
-   WorkCustomMaskEntity earth;
+   WorkCustomMaskDto earth;
    @ApiModelProperty(value = "上层")
-   WorkCustomMaskEntity sky;
+   WorkCustomMaskDto sky;
 }

+ 34 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/WorkNavigationDTO.java

@@ -0,0 +1,34 @@
+package com.gis.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.gis.domain.entity.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 作品导航表
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@Data
+@ApiModel("作品导航表")
+public class WorkNavigationDTO   implements Serializable {
+
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty("wordid")
+    private String workId;
+
+    @ApiModelProperty("父菜单ID")
+    private Long parentId;
+
+    @ApiModelProperty("名称")
+    private String name;
+
+}

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

@@ -0,0 +1,34 @@
+package com.gis.domain.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.IdType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 作品导航表
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@Data
+@ApiModel("作品导航表")
+@TableName("tb_work_navigation")
+public class WorkNavigationEntity extends BaseEntity  implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("wordid")
+    private String workId;
+
+    @ApiModelProperty("父菜单ID")
+    private Long parentId;
+
+    @ApiModelProperty("名称")
+    private String name;
+
+}

+ 44 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkSceneEntity.java

@@ -0,0 +1,44 @@
+package com.gis.domain.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.IdType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 作品场景表
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@Data
+@ApiModel("作品场景表")
+@TableName("tb_work_scene")
+public class WorkSceneEntity extends BaseEntity  implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty("wordid")
+    private String workId;
+
+    @ApiModelProperty("封面")
+    private String icon;
+
+    @ApiModelProperty("场景码")
+    private String sceneCode;
+
+    @ApiModelProperty("场景名称")
+    private String sceneTitle;
+
+    @ApiModelProperty("类型")
+    private String type;
+
+    @ApiModelProperty("所属菜单Id")
+    private Long parentId;
+
+}

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

@@ -0,0 +1,66 @@
+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;
+    }
+}

+ 43 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkNavigationVo.java

@@ -0,0 +1,43 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 作品导航表
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@Data
+@ApiModel("作品导航表")
+public class WorkNavigationVo implements Serializable {
+
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty("wordid")
+    private String workId;
+
+    @ApiModelProperty("父菜单ID")
+    private Long parentId;
+
+    @ApiModelProperty("名称")
+    private String name;
+
+    /**
+     * 子菜单
+     */
+    private List<WorkNavigationVo> children = new ArrayList<>();
+
+    /**
+     * 包含场景
+     */
+    private List<WorkSceneVo> scenes = new ArrayList<>();
+}

+ 42 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkSceneVo.java

@@ -0,0 +1,42 @@
+package com.gis.domain.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.gis.domain.entity.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 作品场景表
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@Data
+@ApiModel("作品场景表")
+ public class WorkSceneVo implements Serializable {
+
+    @ApiModelProperty(value = "对象ID")
+    private Long id;
+
+    @ApiModelProperty("wordid")
+    private String workId;
+
+    @ApiModelProperty("封面")
+    private String icon;
+
+    @ApiModelProperty("场景码")
+    private String sceneCode;
+
+    @ApiModelProperty("场景名称")
+    private String sceneTitle;
+
+    @ApiModelProperty("类型")
+    private String type;
+
+    @ApiModelProperty("所属菜单Id")
+    private Long parentId;
+
+}

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

@@ -0,0 +1,25 @@
+package com.gis.mapper;
+
+import com.gis.domain.dto.WorkNavigationDTO;
+import com.gis.domain.vo.WorkNavigationVo;
+import org.apache.ibatis.annotations.Mapper;
+import com.gis.domain.entity.WorkNavigationEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+* 作品导航表 Mapper
+*
+* @author Xiewj
+* @since 2023-09-08 18:13
+*/
+@Component("WorkNavigationMapper")
+@Mapper
+public interface WorkNavigationMapper extends BaseMapper<WorkNavigationEntity> {
+
+    List<WorkNavigationVo> selectList(@Param("dto") WorkNavigationDTO dto,@Param("workId")  String workId);
+
+}

+ 17 - 0
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkSceneMapper.java

@@ -0,0 +1,17 @@
+package com.gis.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import com.gis.domain.entity.WorkSceneEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Component;
+
+/**
+* 作品场景表 Mapper
+*
+* @author Xiewj
+* @since 2023-09-08 18:13
+*/
+@Component("WorkSceneMapper")
+@Mapper
+public interface WorkSceneMapper extends BaseMapper<WorkSceneEntity> {
+}

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

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!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>
+
+    <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>
+</mapper>

+ 21 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkNavigationService.java

@@ -0,0 +1,21 @@
+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;
+
+/**
+ * 作品导航表 服务类接口
+ *
+ * @author Xiewj
+ * @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);
+
+}

+ 14 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkSceneService.java

@@ -0,0 +1,14 @@
+package com.gis.service;
+
+import com.gis.domain.entity.WorkSceneEntity;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 作品场景表 服务类接口
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+public interface WorkSceneService extends IService<WorkSceneEntity> {
+
+}

+ 93 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkNavigationServiceImpl.java

@@ -0,0 +1,93 @@
+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.gis.domain.entity.WorkNavigationEntity;
+import com.gis.mapper.WorkNavigationMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 作品导航表 服务实现类
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@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);
+            }
+        }
+    }
+    /**
+     * 得到子节点列表
+     */
+    private List<WorkNavigationVo> getChildList(List<WorkNavigationVo> list, WorkNavigationVo t) {
+        List<WorkNavigationVo> tlist = new ArrayList<WorkNavigationVo>();
+        Iterator<WorkNavigationVo> it = list.iterator();
+        while (it.hasNext()) {
+            WorkNavigationVo n = it.next();
+            if (n.getParentId().longValue() == t.getId().longValue()) {
+                tlist.add(n);
+            }
+        }
+        return tlist;
+    }
+
+    /**
+     * 判断是否有子节点
+     */
+    private boolean hasChild(List<WorkNavigationVo> list, WorkNavigationVo t) {
+        return getChildList(list, t).size() > 0;
+    }
+}

+ 18 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkSceneServiceImpl.java

@@ -0,0 +1,18 @@
+package com.gis.service.impl;
+
+import com.gis.service.WorkSceneService;
+import com.gis.domain.entity.WorkSceneEntity;
+import com.gis.mapper.WorkSceneMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 作品场景表 服务实现类
+ *
+ * @author Xiewj
+ * @since 2023-09-08 18:13
+ */
+@Service
+public class WorkSceneServiceImpl extends ServiceImpl<WorkSceneMapper, WorkSceneEntity> implements WorkSceneService {
+
+}

+ 1 - 1
720yun_fd_manage/pom.xml

@@ -48,7 +48,7 @@
         <aliyun.oss.version>2.5.0</aliyun.oss.version>
         <mybatisPlus.version>3.5.3.2</mybatisPlus.version>
         <pagehelper.version>1.4.6</pagehelper.version>
-        <knife4j.version>2.0.2</knife4j.version>
+        <knife4j.version>3.0.3</knife4j.version>
         <junit.version>4.12</junit.version>
         <zxing.version>3.3.3</zxing.version>