lyhzzz 6 달 전
부모
커밋
82ab82c3c4
38개의 변경된 파일776개의 추가작업 그리고 562개의 파일을 삭제
  1. 65 0
      doc/fd_fusion-local-jm.sql
  2. 18 0
      src/main/java/com/fdkankan/fusion/common/OssPath.java
  3. 6 1
      src/main/java/com/fdkankan/fusion/common/ResultCode.java
  4. 50 0
      src/main/java/com/fdkankan/fusion/common/enums/FileTypeEnum.java
  5. 8 0
      src/main/java/com/fdkankan/fusion/common/util/FileWriterUtil.java
  6. 21 3
      src/main/java/com/fdkankan/fusion/common/util/OBJToGLBUtil.java
  7. 0 33
      src/main/java/com/fdkankan/fusion/config/MenuInit.java
  8. 0 56
      src/main/java/com/fdkankan/fusion/config/OriginFilter.java
  9. 0 222
      src/main/java/com/fdkankan/fusion/config/SaTokenConfigure.java
  10. 0 51
      src/main/java/com/fdkankan/fusion/config/StpInterfaceImpl.java
  11. 0 37
      src/main/java/com/fdkankan/fusion/config/WebAppConfig.java
  12. 0 1
      src/main/java/com/fdkankan/fusion/controller/BaseController.java
  13. 0 1
      src/main/java/com/fdkankan/fusion/controller/CameraVersionController.java
  14. 21 0
      src/main/java/com/fdkankan/fusion/controller/CommonUploadController.java
  15. 50 0
      src/main/java/com/fdkankan/fusion/controller/DictController.java
  16. 45 0
      src/main/java/com/fdkankan/fusion/controller/DictFileController.java
  17. 1 1
      src/main/java/com/fdkankan/fusion/controller/LoginController.java
  18. 16 4
      src/main/java/com/fdkankan/fusion/controller/UploadController.java
  19. 8 3
      src/main/java/com/fdkankan/fusion/entity/CommonUpload.java
  20. 4 1
      src/main/java/com/fdkankan/fusion/entity/Dict.java
  21. 1 1
      src/main/java/com/fdkankan/fusion/entity/DictFile.java
  22. 2 2
      src/main/java/com/fdkankan/fusion/generate/AutoGenerate.java
  23. 0 90
      src/main/java/com/fdkankan/fusion/interceptor/TokenInterceptor.java
  24. 1 1
      src/main/java/com/fdkankan/fusion/mapper/ICommonUploadMapper.java
  25. 5 1
      src/main/java/com/fdkankan/fusion/mapper/IDictFileMapper.java
  26. 1 1
      src/main/java/com/fdkankan/fusion/mapper/IDictMapper.java
  27. 3 15
      src/main/java/com/fdkankan/fusion/mq/consumer/OsgbToB3dmConsumer.java
  28. 17 0
      src/main/java/com/fdkankan/fusion/request/DictFileParam.java
  29. 10 0
      src/main/java/com/fdkankan/fusion/request/DictParam.java
  30. 27 0
      src/main/java/com/fdkankan/fusion/response/DictFileVo.java
  31. 10 7
      src/main/java/com/fdkankan/fusion/service/ICommonUploadService.java
  32. 9 1
      src/main/java/com/fdkankan/fusion/service/IDictFileService.java
  33. 11 1
      src/main/java/com/fdkankan/fusion/service/IDictService.java
  34. 218 9
      src/main/java/com/fdkankan/fusion/service/impl/CommonUploadServiceImpl.java
  35. 52 1
      src/main/java/com/fdkankan/fusion/service/impl/DictFileServiceImpl.java
  36. 61 1
      src/main/java/com/fdkankan/fusion/service/impl/DictServiceImpl.java
  37. 0 17
      src/main/resources/application.yml
  38. 35 0
      src/main/resources/mapper/fusion/DictFileMapper.xml

+ 65 - 0
doc/fd_fusion-local-jm.sql

@@ -888,4 +888,69 @@ CREATE TABLE `tm_user_role`  (
   INDEX `fk_user_id_1`(`user_id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户角色关系表' ROW_FORMAT = DYNAMIC;
 
+
+
+
+
+
+DROP TABLE IF EXISTS `t_common_upload`;
+CREATE TABLE `t_common_upload`  (
+                                    `id` int NOT NULL AUTO_INCREMENT,
+                                    `file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `file_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `file_size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `new_file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `file_type_str` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `file_format` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `result_file_format` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `rec_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'A',
+                                    `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+                                    `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+                                    `status` int NULL DEFAULT 0,
+                                    `unzip_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `file_type` int NULL DEFAULT NULL,
+                                    `wgs84` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    `gcj02` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                    PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 723 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Table structure for t_dict
+-- ----------------------------
+DROP TABLE IF EXISTS `t_dict`;
+CREATE TABLE `t_dict`  (
+                           `id` int NOT NULL AUTO_INCREMENT,
+                           `dict_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                           `dict_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                           `sort` int NULL DEFAULT 1,
+                           `rec_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'A',
+                           `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+                           `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+                           `sys_user_id` int NULL DEFAULT NULL,
+                           `parent_id` int NULL DEFAULT NULL,
+                           PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 130 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Table structure for t_dict_file
+-- ----------------------------
+DROP TABLE IF EXISTS `t_dict_file`;
+CREATE TABLE `t_dict_file`  (
+                                `id` int NOT NULL AUTO_INCREMENT,
+                                `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                `type_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+                                `dict_id` int NULL DEFAULT NULL,
+                                `rec_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'A',
+                                `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+                                `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+                                `sys_user_id` int NULL DEFAULT NULL,
+                                `upload_id` int NULL DEFAULT NULL,
+                                PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 718 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+
+
+
+
+
+
 SET FOREIGN_KEY_CHECKS = 1;

+ 18 - 0
src/main/java/com/fdkankan/fusion/common/OssPath.java

@@ -0,0 +1,18 @@
+package com.fdkankan.fusion.common;
+
+public class OssPath {
+
+    public final static String localPath = "/mnt/";
+    public final static String MANAGE_FILE_PATH = "manage/file/%s/%s";
+    public final static String invoiceOssDir = "manage/invoice/";
+    public final static String v3_statusPath = "data/data%s/status.json";
+    public final static String v4_statusPath = "scene_view_data/%s/data/status.json";
+    public final static String localStatusPath = System.getProperty("java.io.tmpdir") +"status.json";   //获取临时文件目录
+
+    public final static String default_head ="manage/user/newHead.png";
+
+    public final static String MANAGE_MODEL_FILE_PATH = "manage/media-library/%s";
+
+
+
+}

+ 6 - 1
src/main/java/com/fdkankan/fusion/common/ResultCode.java

@@ -79,7 +79,12 @@ public enum ResultCode {
     AUTH_ERROR(8029, "授权访问失败"),
     DEL_NUM_ERROR(8030, "无法移除,场景已加入多元融合,请进入多元融合删除场景后再试"),
 
-    ;
+    FILE_TYPE_ERROR2(8031, "文件类型不符合规则"),
+
+
+    UPLOAD_FILE_ERROR(8032, "上传失败,请检查文件格式。" ),
+    FILE_TYPE_ERROR23(8033, "文件名不得含有中文"),
+    UNZIP_ERROR(8034, "解压失败");
 
 
 

+ 50 - 0
src/main/java/com/fdkankan/fusion/common/enums/FileTypeEnum.java

@@ -0,0 +1,50 @@
+package com.fdkankan.fusion.common.enums;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Arrays;
+import java.util.List;
+
+public enum FileTypeEnum {
+    IMAGE(0,"图片", Arrays.asList("jpg","png","jpeg")),
+    VIDEO(1,"视频",Arrays.asList("mp4")),
+    MUSIC(2,"音频",Arrays.asList("wav","mp3")),
+    MODEL(3,"模型",Arrays.asList("obj","osgb","b3dm","ply","las","laz")),
+    OTHER(4,"其他",Arrays.asList("shp")),
+    DOC(5,"文档",Arrays.asList("doc","docx","pdf")),
+
+    ;
+    int code;
+    String msg;
+    List<String> typeList;
+
+    FileTypeEnum(int code, String msg, List<String> typeList) {
+        this.code = code;
+        this.msg = msg;
+        this.typeList = typeList;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public List<String> getTypeList() {
+        return typeList;
+    }
+
+    public static FileTypeEnum getByType(String fileType){
+        if(StringUtils.isNotBlank(fileType)){
+            FileTypeEnum[] values = FileTypeEnum.values();
+            for (FileTypeEnum value : values) {
+                if(value.typeList.contains(fileType)){
+                    return value;
+                }
+            }
+        }
+        return null;
+    }
+}

+ 8 - 0
src/main/java/com/fdkankan/fusion/common/util/FileWriterUtil.java

@@ -6,6 +6,8 @@ import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
 import java.util.List;
 import java.util.Objects;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import static cn.hutool.core.util.ClassUtil.getClassLoader;
 
@@ -96,4 +98,10 @@ public class FileWriterUtil {
         return null;
     }
 
+    public static boolean isChinese(String str) {
+        String regEx = "[\\u4e00-\\u9fa5]+";
+        Pattern p = Pattern.compile(regEx);
+        Matcher m = p.matcher(str);
+        return m.find();
+    }
 }

+ 21 - 3
src/main/java/com/fdkankan/fusion/common/util/OBJToGLBUtil.java

@@ -1,6 +1,7 @@
 package com.fdkankan.fusion.common.util;
 
 import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.io.file.FileReader;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.fusion.common.FilePath;
 import com.fdkankan.fusion.common.ResultCode;
@@ -180,21 +181,38 @@ public class OBJToGLBUtil {
         return imgName;
     }
 
-    public static File lasOrPlyToBin(File srcFile) throws IOException {
+    public final static String LAS_TO_BIN = "bash  /home/ubuntu/bin/PotreeConverter.sh @inPath @outPath ''";
+
+    public static File lasOrPlyToBin(File srcFile){
         if(!srcFile.exists()){
             srcFile.mkdirs();
         }
-        String cmd = ShellUtil.LAS_TO_BIN;
+        String cmd = LAS_TO_BIN;
         cmd =  cmd.replace("@inPath",srcFile.getPath());
         cmd = cmd.replace("@outPath",srcFile.getParentFile().getPath());
         ShellUtil.execCmd(cmd);
         log.info("lasOrPlyToBin---------cmd-over");
         String cloudJs = srcFile.getParentFile().getPath() +"/webcloud/"+ "cloud.js";
-        JSONObject jsonObject = ShellUtil.fixCloud(cloudJs);
+        JSONObject jsonObject = fixCloud(cloudJs);
         FileWriterUtil.writerJson(srcFile.getParentFile().getPath() +"/webcloud/","cloud.js",jsonObject.toJSONString());
         return srcFile.getParentFile();
     }
 
+    public static JSONObject fixCloud(String path)  {
+        cn.hutool.core.io.file.FileReader fileReader = new FileReader(path);
+        String str = fileReader.readString();
+        JSONObject json = JSONObject.parseObject(str);
+
+        String[] pointAttributes = {
+                "POSITION_CARTESIAN",
+                "COLOR_PACKED",
+                "NORMAL_OCT16"
+        };
+
+        json.put("pointAttributes", pointAttributes);
+        return json;
+    }
+
     public static String OsgbToB3dm(File objPathFile) {
         String targetPath = FilePath.MNT_BASE_PATH +"osgb"  +"/" + objPathFile.getName();
         String sourcePath = FilePath.MNT_BASE_PATH +"b3dm"  +"/" + objPathFile.getName();

+ 0 - 33
src/main/java/com/fdkankan/fusion/config/MenuInit.java

@@ -1,33 +0,0 @@
-package com.fdkankan.fusion.config;
-
-import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.fusion.common.util.RedisKeyUtil;
-import com.fdkankan.fusion.entity.TmPermission;
-import com.fdkankan.fusion.service.ITmPermissionService;
-import com.fdkankan.redis.constant.RedisKey;
-import com.fdkankan.redis.util.RedisUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import java.util.List;
-
-@Component
-@Slf4j
-public class MenuInit {
-
-    @Autowired
-    ITmPermissionService tmPermissionService;
-
-    @Autowired
-    RedisUtil redisUtil;
-
-    @PostConstruct
-    public void initMenu(){
-        List<TmPermission> list = tmPermissionService.list();
-        String result = JSONObject.toJSONString(list);
-        redisUtil.set(RedisKeyUtil.MANAGE_MENU,result );
-        log.info("项目启动加载系统菜单权限至redis:{}",result);
-    }
-}

+ 0 - 56
src/main/java/com/fdkankan/fusion/config/OriginFilter.java

@@ -1,56 +0,0 @@
-//package com.fdkankan.fusion.config;
-//
-//import org.apache.commons.lang3.StringUtils;
-//import org.springframework.boot.web.servlet.ServletComponentScan;
-//import org.springframework.stereotype.Component;
-//
-//import javax.servlet.*;
-//import javax.servlet.annotation.WebFilter;
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.IOException;
-//
-//
-//@Component("originFilter")
-//@ServletComponentScan
-//@WebFilter(urlPatterns = "/*", filterName = "shiroLoginFilter")
-//public class OriginFilter implements Filter {
-//
-//	private FilterConfig config = null;
-//
-//	@Override
-//	public void init(FilterConfig config) throws ServletException {
-//		this.config = config;
-//	}
-//
-//	@Override
-//	public void destroy() {
-//		this.config = null;
-//	}
-//
-//	@Override
-//	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
-//
-//		HttpServletRequest request = (HttpServletRequest) servletRequest;
-//		HttpServletResponse response = (HttpServletResponse) servletResponse;
-//		response.setHeader("x-frame-options", "SAMEORIGIN");
-//		// 不使用*,自动适配跨域域名,避免携带Cookie时失效
-//		String origin = request.getHeader("Origin");
-//		if (StringUtils.isNotBlank(origin)) {
-//			response.setHeader("Access-Control-Allow-Origin", origin); }
-//		// 自适应所有自定义头
-//		String headers = request.getHeader("Access-Control-Request-Headers");
-//		if(StringUtils.isNotBlank(headers)) {
-//			response.setHeader("Access-Control-Allow-Headers", headers);
-//			response.setHeader("Access-Control-Expose-Headers", headers);
-//		}
-//		// 允许跨域的请求方法类型
-//		response.setHeader("Access-Control-Allow-Methods", "*");
-//		// 预检命令(OPTIONS)缓存时间,单位:秒
-//		response.setHeader("Access-Control-Max-Age", "3600");
-//		// 明确许可客户端发送Cookie,不允许删除字段即可
-//		response.setHeader("Access-Control-Allow-Credentials", "true");
-//		filterChain.doFilter(request, response);
-//	}
-//}
-//

+ 0 - 222
src/main/java/com/fdkankan/fusion/config/SaTokenConfigure.java

@@ -1,222 +0,0 @@
-package com.fdkankan.fusion.config;
-
-import cn.dev33.satoken.context.SaHolder;
-import cn.dev33.satoken.exception.NotLoginException;
-import cn.dev33.satoken.exception.NotPermissionException;
-import cn.dev33.satoken.exception.NotRoleException;
-import cn.dev33.satoken.filter.SaServletFilter;
-import cn.dev33.satoken.jwt.StpLogicJwtForMixin;
-import cn.dev33.satoken.router.SaRouter;
-import cn.dev33.satoken.spring.SpringMVCUtil;
-import cn.dev33.satoken.stp.StpLogic;
-import cn.dev33.satoken.stp.StpUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.servlet.ServletUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.aliyun.oss.HttpMethod;
-import com.fdkankan.fusion.common.ResultCode;
-import com.fdkankan.fusion.common.ResultData;
-import com.fdkankan.fusion.common.util.AesUtil;
-import com.fdkankan.fusion.common.util.RedisKeyUtil;
-import com.fdkankan.fusion.common.util.SignUtil;
-import com.fdkankan.fusion.controller.LoginController;
-import com.fdkankan.fusion.exception.BusinessException;
-import com.fdkankan.fusion.httpClient.FdService;
-import com.fdkankan.fusion.httpClient.response.FdkkLoginVo;
-import com.fdkankan.fusion.response.ManageLoginResponse;
-import com.fdkankan.fusion.service.ITmPermissionService;
-import com.fdkankan.fusion.service.ITmUserService;
-import com.fdkankan.redis.constant.RedisKey;
-import com.fdkankan.redis.util.RedisUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Objects;
-
-@Configuration
-@Slf4j
-public class SaTokenConfigure {
-
-    @Autowired
-    RedisUtil redisUtil;
-    @Autowired
-    FdService fdService;
-    // 注册Sa-Token的拦截器
-    @Bean
-    public SaServletFilter getSaServletFilter() {
-        return new SaServletFilter()
-                // 指定 拦截路由 与 放行路由
-                .addInclude("/**").addExclude("/**/test/**","/**/inner/**","/**/notAuth/**","/**/systemSetting/**","/**/downMD5/**","/**/downDocx/**","/**ws/**")
-                // 认证函数: 每次请求执行
-                .setAuth(obj -> {
-                    String sign = SaHolder.getRequest().getHeader("sign");
-                    String pageType = SaHolder.getRequest().getHeader("page-type");
-                    String caseId = SaHolder.getRequest().getHeader("caseId");
-                    if(StringUtils.isNotBlank(sign)){
-                        String clientIP = ServletUtil.getClientIP(SpringMVCUtil.getRequest());
-                        SaRouter.match("/**", "/case/addScene", r -> checkSign(sign,clientIP));
-                    }else {
-                        SaRouter.match("/**", "/case/addScene", r ->checkCaseAuth(caseId,pageType));
-                        SaRouter.match("/**", "/fdLogin", r ->checkLogin() );
-                    }
-
-
-                    SaRouter.match("/sceneDownLog/list", r -> StpUtil.checkRoleOr("admin-super","admin-system","admin") );
-
-                    // 登录认证 -- 拦截所有路由,并排除/user/doLogin 用于开放登录
-                    String menu = redisUtil.get(RedisKey.MANAGE_MENU);
-                    if(StringUtils.isBlank(menu)){
-                        SaRouter.match("/**", r -> StpUtil.checkRole("admin-super"));
-                        return;
-                    }
-
-                    JSONArray menuArray = JSONObject.parseArray(menu);
-                    for (Object o : menuArray) {
-                        JSONObject jsonObject = (JSONObject)  o;
-                        String url = jsonObject.getString("url");
-                        String perm = jsonObject.getString("perms");
-                        if(StringUtils.isEmpty(url) || StringUtils.isEmpty(perm)){
-                            continue;
-                        }
-                        if(StpUtil.hasRole("admin-super")){
-                            continue;
-                        }
-                        SaRouter.match(url, r -> StpUtil.checkPermission(perm));
-                    }
-                })
-
-                // 异常处理函数:每次认证函数发生异常时执行此函数
-                .setError(e -> {
-                    SaHolder.getResponse().setHeader("Content-Type", "application/json;charset=UTF-8");
-                    ResultData aj ;
-                    if (e instanceof NotLoginException) {	// 如果是未登录异常
-                        NotLoginException ee = (NotLoginException) e;
-                        aj = ResultData.error(ResultCode.USER_NOT_LOGIN);
-                    }
-                    else if(e instanceof NotRoleException) {		// 如果是角色异常
-                        NotRoleException ee = (NotRoleException) e;
-                        aj =  ResultData.error(ResultCode.NOT_PERMISSION);
-                    }
-                    else if(e instanceof NotPermissionException) {	// 如果是权限异常
-                        NotPermissionException ee = (NotPermissionException) e;
-                        aj =  ResultData.error(ResultCode.NOT_PERMISSION);
-                    }
-                    else if(e instanceof BusinessException) {	// 如果是权限异常
-                        BusinessException ee = (BusinessException) e;
-                        aj = ResultData.error(ee.getCode(),ee.getMessage());
-                    }
-                    else {	// 普通异常, 输出:500 + 异常信息
-                        log.info("500",e);
-                        aj = ResultData.error(ResultCode.SYSTEM_ERROR);
-                    }
-                    return JSONObject.toJSONString(aj);
-                })
-                // 前置函数:在每次认证函数之前执行
-                .setBeforeAuth(r -> {
-                    // ---------- 设置一些安全响应头 ----------
-                    SaHolder.getResponse()
-                            .setHeader("Access-Control-Allow-Origin", "*")
-                            .setHeader("Access-Control-Allow-Methods", "*")
-                            .setHeader("Access-Control-Max-Age", "3600")
-                            .setHeader("Access-Control-Allow-Headers", "*")
-                            .setServer("4dkk");
-
-                    // 跳过对 OPTIONS 请求的检查,否则这里会鉴权失败,导致 springboot 配置的 addCorsMappings 跨域不执行
-                    if (SaHolder.getRequest().getMethod().equals(HttpMethod.OPTIONS.toString())) {
-                        SaRouter.back();
-                    }
-                });
-
-    }
-
-
-
-    private void checkLogin(){
-        String redisKey = String.format(RedisKeyUtil.loginToken,StpUtil.getTokenValue());
-        if(!redisUtil.hasKey(redisKey)){
-            throw new BusinessException(ResultCode.USER_NOT_LOGIN);
-        }
-        String userStr = redisUtil.get(redisKey);
-        ManageLoginResponse result = JSONObject.parseObject(userStr,ManageLoginResponse.class);
-        Long userId = result.getUserId();
-        if(userId == null || result.getStatus() == 0){
-            String redisKey2 = String.format(RedisKeyUtil.loginUserName,result.getUserName());
-            redisUtil.del(redisKey);
-            redisUtil.del(redisKey2);
-            throw new BusinessException(ResultCode.USERNAME_ERROR);
-        }
-
-        redisUtil.expire(redisKey,2 * 60 * 60);
-    }
-
-    private void checkCaseAuth(String caseId,String pageType) {
-
-        fdService.checkCaseAuth(caseId,pageType,StpUtil.getTokenValue());
-    }
-
-
-    public   void  checkSign(String sign,String remoteIp){
-        if(StringUtils.isBlank(sign)){
-            throw new BusinessException(ResultCode.AUTH_ERROR.code, "签名为空");
-        }
-        String userName = null, ip = null, timestamp = null;
-
-        if(StrUtil.isNotEmpty(sign)){
-            sign = sign.replaceAll("%2B", "+").replaceAll(" ", "+");
-            String[] split = null;
-            try {
-                String decode = AesUtil.decryptECB(sign, SignUtil.ENCRYPT_KEY, "AES/ECB/PKCS5Padding");
-                split = decode.split("@");
-
-            }catch (Exception e){
-                log.info("签名解密失败", e);
-                throw new BusinessException(ResultCode.AUTH_ERROR.code, "签名解密失败");
-            }
-
-            if(Objects.isNull(split) || split.length == 1){
-                throw new BusinessException(ResultCode.AUTH_ERROR.code, "签名参数错误");
-            }else{
-                for (int i = 0; i < split.length; i++){
-                    if(i == 0){
-                        userName = split[i];
-                    }
-                    if(i == 1){
-                        ip = split[i];
-                    }
-                    if(i == 2){
-                        timestamp = split[i];
-                    }
-                }
-
-                log.info("请求ip:{}", remoteIp);
-                log.info("参数ip:{}", ip);
-                if(StrUtil.isNotEmpty(ip) && !ip.equals(remoteIp)){
-                    throw new BusinessException(ResultCode.AUTH_ERROR.code, "ip不匹配");
-                }
-
-                if(StrUtil.isNotEmpty(timestamp) && Calendar.getInstance().getTime().after(new Date(Long.valueOf(timestamp) * 1000))){
-                    throw new BusinessException(ResultCode.AUTH_ERROR.code, "超出访问截止时间");
-                }
-            }
-        }
-    }
-
-
-    //Sa-Token    整合 jwt
-    //Stateless   无状态模式 纯jwt
-    //Mixin       混入模式 jwt 与 Redis 逻辑混合
-    //Simple      简单模式   Token风格替换
-    @Bean
-    public StpLogic getStpLogicJwt() {
-        return new StpLogicJwtForMixin();
-    }
-}
-

+ 0 - 51
src/main/java/com/fdkankan/fusion/config/StpInterfaceImpl.java

@@ -1,51 +0,0 @@
-package com.fdkankan.fusion.config;
-
-import cn.dev33.satoken.stp.StpInterface;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.fusion.common.ResultCode;
-import com.fdkankan.fusion.common.util.RedisKeyUtil;
-import com.fdkankan.fusion.exception.BusinessException;
-import com.fdkankan.redis.constant.RedisKey;
-import com.fdkankan.redis.util.RedisUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Component
-public class StpInterfaceImpl implements StpInterface {
-
-    @Autowired
-    RedisUtil redisUtil;
-
-    @Override
-    public List<String> getPermissionList(Object loginId, String loginType) {
-        String redisKey = String.format(RedisKeyUtil.MANAGE_PERM_USER, loginId);
-        String permString = redisUtil.get(redisKey);
-        if(StringUtils.isBlank(permString)){
-            throw new BusinessException(ResultCode.USER_NOT_LOGIN);
-        }
-        JSONArray jsonArray = JSONObject.parseArray(permString);
-        List<String> permList = jsonArray.toJavaList(String.class)
-                .parallelStream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
-        //从redis 中获取登录用户权限
-        return permList;
-    }
-
-    @Override
-    public List<String> getRoleList(Object loginId, String loginType) {
-        //从redis 中获取登录用户角色
-        String redisKey = String.format(RedisKeyUtil.MANAGE_ROLE_USER, loginId);
-        String roleString = redisUtil.get(redisKey);
-        if(StringUtils.isBlank(roleString)){
-            throw new BusinessException(ResultCode.USER_NOT_LOGIN);
-        }
-        JSONArray jsonArray = JSONObject.parseArray(roleString);
-        List<String> roleList = jsonArray.toJavaList(String.class)
-                .parallelStream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
-        return roleList;
-    }
-}

+ 0 - 37
src/main/java/com/fdkankan/fusion/config/WebAppConfig.java

@@ -1,37 +0,0 @@
-//package com.fdkankan.fusion.config;
-//
-//import com.fdkankan.fusion.interceptor.TokenInterceptor;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.context.annotation.Configuration;
-//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;
-//
-//
-//@Configuration
-//public class WebAppConfig implements WebMvcConfigurer {
-//
-//	@Autowired
-//	TokenInterceptor tokenInterceptor;
-//
-//	@Override
-//	public void addCorsMappings(CorsRegistry registry) {
-//		registry.addMapping("/**").allowCredentials(true).allowedHeaders("*").allowedOrigins("*").allowedMethods("*");
-//
-//	}
-//
-//	@Override
-//	public void addInterceptors(InterceptorRegistry registry) {
-//		registry.addInterceptor(tokenInterceptor).addPathPatterns("/**")
-//				.excludePathPatterns("/**/fdLogin/**","/test/**","/**/api/**");
-//		WebMvcConfigurer.super.addInterceptors(registry);
-//	}
-//
-//	@Override
-//	public void addResourceHandlers(ResourceHandlerRegistry registry) {
-//		WebMvcConfigurer.super.addResourceHandlers(registry);
-//	}
-//
-//}
-//

+ 0 - 1
src/main/java/com/fdkankan/fusion/controller/BaseController.java

@@ -1,6 +1,5 @@
 package com.fdkankan.fusion.controller;
 
-import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.jwt.JWT;
 import cn.hutool.jwt.JWTUtil;
 import com.alibaba.fastjson.JSONObject;

+ 0 - 1
src/main/java/com/fdkankan/fusion/controller/CameraVersionController.java

@@ -1,7 +1,6 @@
 package com.fdkankan.fusion.controller;
 
 
-import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.fusion.common.PageInfo;
 import com.fdkankan.fusion.common.ResultCode;

+ 21 - 0
src/main/java/com/fdkankan/fusion/controller/CommonUploadController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.fusion.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2025-02-10
+ */
+@RestController
+@RequestMapping("/fusion/commonUpload")
+public class CommonUploadController {
+
+}
+

+ 50 - 0
src/main/java/com/fdkankan/fusion/controller/DictController.java

@@ -0,0 +1,50 @@
+package com.fdkankan.fusion.controller;
+
+
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.entity.Dict;
+import com.fdkankan.fusion.request.DictParam;
+import com.fdkankan.fusion.service.IDictService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-02
+ */
+@RestController
+@RequestMapping("/dict")
+public class DictController extends BaseController{
+
+    @Autowired
+    IDictService dictService;
+
+    @GetMapping("/getByKey/{dictKey}")
+    public ResultData getByKey(@PathVariable String dictKey){
+        return ResultData.ok(dictService.getByKey(dictKey));
+    }
+
+    @PostMapping("/pageList/{dictKey}")
+    public ResultData pageList(@RequestBody DictParam param, @PathVariable String dictKey){
+        param.setDictKey(dictKey);
+        return ResultData.ok(dictService.pageList(param));
+    }
+
+    @PostMapping("/addOrUpdate/{dictKey}")
+    public ResultData addOrUpdate(@RequestBody Dict dict, @PathVariable String dictKey){
+        dict.setDictKey(dictKey);
+        dictService.addOrUpdate(dict);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/del/{dictKey}")
+    public ResultData del(@RequestBody Dict dict,@PathVariable String dictKey){
+        dictService.del(dict);
+        return ResultData.ok();
+    }
+}
+

+ 45 - 0
src/main/java/com/fdkankan/fusion/controller/DictFileController.java

@@ -0,0 +1,45 @@
+package com.fdkankan.fusion.controller;
+
+
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.entity.DictFile;
+import com.fdkankan.fusion.request.DictFileParam;
+import com.fdkankan.fusion.service.IDictFileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-02
+ */
+@RestController
+@RequestMapping("/service/manage/dictFile")
+public class DictFileController extends BaseController{
+
+    @Autowired
+    IDictFileService dictFileService;
+
+    @PostMapping("/pageList/{typeKey}")
+    public ResultData pageList(@RequestBody DictFileParam param, @PathVariable String typeKey){
+        param.setTypeKey(typeKey);
+        return ResultData.ok(dictFileService.pageList(param));
+    }
+
+    @PostMapping("/addOrUpdate/{typeKey}")
+    public ResultData addOrUpdate(@RequestBody DictFile dictFile, @PathVariable String typeKey){
+        dictFile.setTypeKey(typeKey);
+        dictFileService.addOrUpdate(dictFile);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/del/{typeKey}")
+    public ResultData del(@RequestBody DictFile dictFile,@PathVariable String typeKey){
+        dictFileService.del(dictFile);
+        return ResultData.ok();
+    }
+}
+

+ 1 - 1
src/main/java/com/fdkankan/fusion/controller/LoginController.java

@@ -101,7 +101,7 @@ public class LoginController extends BaseController{
 
     @PostMapping("/fdLogout")
     public ResultData fdLogout(){
-        String fusionLoginToken = String.format(RedisKeyUtil.fusionLoginToken,StpUtil.getTokenValue());
+        String fusionLoginToken = String.format(RedisKeyUtil.fusionLoginToken, StpUtil.getTokenValue());
         String fdToken = String.format(RedisKey.TOKEN_V3,fdService.getFdToken());
         redisUtil.del(fusionLoginToken);
         redisUtil.del(fdToken);

+ 16 - 4
src/main/java/com/fdkankan/fusion/controller/UploadController.java

@@ -5,14 +5,12 @@ import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.common.ResultData;
 import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.service.ICommonUploadService;
 import com.fdkankan.fusion.service.impl.UploadService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
@@ -27,10 +25,24 @@ public class UploadController {
     UploadService uploadService;
     @Value("${spring.profiles.active}")
     private String environment;
+    @Autowired
+    ICommonUploadService commonUploadService;
 
     @PostMapping("/file")
     public ResultData file(@RequestParam(required = false) MultipartFile file) throws Exception {
 
         return ResultData.ok( uploadService.uploadFile(file,true,String.format(FilePath.File_OSS_PATH,environment,"")));
     }
+
+
+    /**
+     * 文件上传
+     * @param file 文件
+     */
+    @RequestMapping(value = "/fileNew", method = RequestMethod.POST)
+    public ResultData uploadNew(
+            @RequestParam(value = "file") MultipartFile file,@RequestParam(value = "dictId",required = false) Integer dictId) {
+
+        return commonUploadService.uploadFileNew(file,dictId);
+    }
 }

+ 8 - 3
src/main/java/com/fdkankan/fusion/entity/CommonUpload.java

@@ -13,7 +13,7 @@ import lombok.Setter;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Getter
 @Setter
@@ -37,8 +37,8 @@ public class CommonUpload implements Serializable {
     @TableField("new_file_name")
     private String newFileName;
 
-    @TableField("file_type")
-    private Integer fileType;
+    @TableField("file_type_str")
+    private String fileTypeStr;
 
     @TableField("file_format")
     private String fileFormat;
@@ -62,9 +62,14 @@ public class CommonUpload implements Serializable {
     @TableField("unzip_path")
     private String unzipPath;
 
+    @TableField("file_type")
+    private Integer fileType;
+
     @TableField("wgs84")
     private String wgs84;
 
     @TableField("gcj02")
     private String gcj02;
+
+
 }

+ 4 - 1
src/main/java/com/fdkankan/fusion/entity/Dict.java

@@ -13,7 +13,7 @@ import lombok.Setter;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Getter
 @Setter
@@ -47,5 +47,8 @@ public class Dict implements Serializable {
     @TableField("sys_user_id")
     private Integer sysUserId;
 
+    @TableField("parent_id")
+    private Integer parentId;
+
 
 }

+ 1 - 1
src/main/java/com/fdkankan/fusion/entity/DictFile.java

@@ -13,7 +13,7 @@ import lombok.Setter;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Getter
 @Setter

+ 2 - 2
src/main/java/com/fdkankan/fusion/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") ;
 
         generate(path,"fusion", getTables(new String[]{
-               "t_case_inquest_file"
+               "t_common_upload","t_dict","t_dict_file"
         }));
 
 //        generate(path,"goods", getTables(new String[]{
@@ -48,7 +48,7 @@ public class AutoGenerate {
     public static void  generate(String path,String moduleName,  List<String> tables){
 //        FastAutoGenerator.create("jdbc:mysql://192.168.0.25:3306/fd_fusion_xj",
 //                "root","mysql123!ROOT.")
-        FastAutoGenerator.create("jdbc:mysql://192.168.0.25:3306/fd_fusion",
+        FastAutoGenerator.create("jdbc:mysql://192.168.0.25:3306/4dkankan_v4",
                 "root","4dkk2023cuikuan%")
                 .globalConfig(builder -> {
                     builder.author("")               //作者

+ 0 - 90
src/main/java/com/fdkankan/fusion/interceptor/TokenInterceptor.java

@@ -1,90 +0,0 @@
-//package com.fdkankan.fusion.interceptor;
-//
-//
-//import com.alibaba.fastjson.JSONObject;
-//import com.fdkankan.fusion.common.ResultCode;
-//import com.fdkankan.fusion.common.ResultData;
-//import com.fdkankan.fusion.common.util.RedisKeyUtil;
-//import com.fdkankan.redis.constant.RedisKey;
-//import com.fdkankan.redis.util.RedisUtil;
-//import lombok.extern.slf4j.Slf4j;
-//import org.apache.commons.lang3.StringUtils;
-//import org.apache.tomcat.util.http.MimeHeaders;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.stereotype.Component;
-//import org.springframework.web.servlet.HandlerInterceptor;
-//
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletRequestWrapper;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.IOException;
-//import java.lang.reflect.Field;
-//import java.util.Enumeration;
-//
-//@Component
-//@Slf4j
-//public class TokenInterceptor implements HandlerInterceptor {
-//
-//	@Autowired
-//	private RedisUtil redisUtil;
-//
-//	@Override
-//	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-//		response.setContentType("text/html;charset=UTF-8");
-//		String token = request.getHeader("token");
-//		if(StringUtils.isEmpty(token)){
-//			String share = request.getHeader("share");
-//			if(StringUtils.isNotBlank(share) && "1".equals(share) && request.getMethod().equals("GET")){
-//				return true;
-//			}
-//			this.needLogin(request,response);
-//			return false;
-//		}
-//		try {
-//			String fdToken = String.format(RedisKey.TOKEN_V3,token);
-//			if( redisUtil.hasKey(fdToken)){
-//				redisUtil.expire(fdToken,6 * 60 * 60);
-//				return true;
-//			}
-//		}catch (Exception e){
-//			e.printStackTrace();
-//		}
-//		this.needLogin(request,response);
-//		return false;
-//	}
-//
-//	private void needLogin(HttpServletRequest request, HttpServletResponse response) {
-//		try {
-//			String result = JSONObject.toJSONString(ResultData.error(ResultCode.USER_NOT_LOGIN));
-//			response.getWriter().append(result);
-//		} catch (IOException e) {
-//			log.info("LoginInterceptor|needLogin|IOException|" + e);
-//			e.printStackTrace();
-//		}
-//	}
-//
-//
-//	/**
-//	 * 修改header信息,key-value键值对儿加入到header中
-//	 */
-//	private void reflectSetparam(HttpServletRequest request,String key,String value){
-//		Class<? extends HttpServletRequest> requestClass = request.getClass();
-//		System.out.println("request实现类="+requestClass.getName());
-//		try {
-//			Field request1 = requestClass.getDeclaredField("request");
-//			request1.setAccessible(true);
-//			Object o = request1.get(request);
-//			Field coyoteRequest = o.getClass().getDeclaredField("coyoteRequest");
-//			coyoteRequest.setAccessible(true);
-//			Object o1 = coyoteRequest.get(o);
-//			System.out.println("coyoteRequest实现类="+o1.getClass().getName());
-//			Field headers = o1.getClass().getDeclaredField("headers");
-//			headers.setAccessible(true);
-//			MimeHeaders o2 = (MimeHeaders)headers.get(o1);
-//			o2.addValue(key).setString(value);
-//		} catch (Exception e) {
-//			e.printStackTrace();
-//		}
-//	}
-//}
-//

+ 1 - 1
src/main/java/com/fdkankan/fusion/mapper/ICommonUploadMapper.java

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Mapper
 public interface ICommonUploadMapper extends BaseMapper<CommonUpload> {

+ 5 - 1
src/main/java/com/fdkankan/fusion/mapper/IDictFileMapper.java

@@ -1,7 +1,10 @@
 package com.fdkankan.fusion.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.fusion.entity.DictFile;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.fusion.request.DictFileParam;
+import com.fdkankan.fusion.response.DictFileVo;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -10,9 +13,10 @@ import org.apache.ibatis.annotations.Mapper;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Mapper
 public interface IDictFileMapper extends BaseMapper<DictFile> {
 
+    Page<DictFileVo> pageList(Page<Object> objectPage, DictFileParam param);
 }

+ 1 - 1
src/main/java/com/fdkankan/fusion/mapper/IDictMapper.java

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Mapper
 public interface IDictMapper extends BaseMapper<Dict> {

+ 3 - 15
src/main/java/com/fdkankan/fusion/mq/consumer/OsgbToB3dmConsumer.java

@@ -39,24 +39,12 @@ public class OsgbToB3dmConsumer {
     ICommonUploadService commonUploadService;
     @Value("${upload.query-path}")
     private String ossUrlPrefix;
-    @RabbitListener(
-            queuesToDeclare = @Queue("${queue.model.osgbToB3dm:queue-model-osgbToB3dm}")
-            ,concurrency = "1"
-    )
-    public void consumerQueue(Channel channel, Message message)  {
-        String localPath = null;
+    public void consumerQueue(String localPath)  {
         try {
-            String messageId = message.getMessageProperties().getMessageId();
-            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
-            log.info("osgbToB3dm-mq--messageId:{},msg:{}",messageId,msg);
-
-            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
-            JSONObject jsonObject = JSONObject.parseObject(msg);
-            localPath = jsonObject.getString("path");
 
             File file = new File(localPath);
             if(!file.exists()){
-                log.info("osgbToB3dm-mq--messageId:{},msg:{},文件不存在",messageId,localPath);
+                log.info("osgbToB3dm-mq--,msg:{},文件不存在",localPath);
                 return;
             }
             commonUploadService.updateStatus(localPath,0);
@@ -66,7 +54,7 @@ public class OsgbToB3dmConsumer {
             OBJToGLBUtil.OsgbToB3dm(localPath,sourcePath);
             String b3dmJsonPath =  FileWriterUtil.checkB3dmTileset(new File(sourcePath));
             if(b3dmJsonPath == null){
-                log.info("osgbToB3dm-mq--messageId:{},msg:{},转化失败tileset.json不存在",messageId,localPath);
+                log.info("osgbToB3dm-mq,msg:{},转化失败tileset.json不存在",localPath);
                 throw new BusinessException(-1,"转化失败tileset.json不存在");
             }
             String ossPath = sourcePath.replace("/mnt/","");

+ 17 - 0
src/main/java/com/fdkankan/fusion/request/DictFileParam.java

@@ -0,0 +1,17 @@
+package com.fdkankan.fusion.request;
+
+import com.fdkankan.fusion.common.RequestBase;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class DictFileParam extends RequestBase {
+    private String name;
+    private Integer dictId;
+    private String typeKey;
+    private Integer fileType;
+    private List<String> fileFormats;
+    private List<Integer> dictIds;
+    private Long sysUserId;
+}

+ 10 - 0
src/main/java/com/fdkankan/fusion/request/DictParam.java

@@ -0,0 +1,10 @@
+package com.fdkankan.fusion.request;
+
+import com.fdkankan.fusion.common.RequestBase;
+import lombok.Data;
+
+@Data
+public class DictParam extends RequestBase {
+    private String dictName;
+    private String dictKey;
+}

+ 27 - 0
src/main/java/com/fdkankan/fusion/response/DictFileVo.java

@@ -0,0 +1,27 @@
+package com.fdkankan.fusion.response;
+
+import com.fdkankan.fusion.entity.DictFile;
+import lombok.Data;
+
+@Data
+public class DictFileVo extends DictFile {
+
+    private String fileName;
+
+    private String fileUrl;
+
+    private String fileSize;
+
+    private String newFileName;
+
+    private Integer fileType;
+    private String fileTypeStr;
+
+    private String fileFormat;
+
+    private Integer status;
+
+    private String unzipPath;
+
+    private String dictName;
+}

+ 10 - 7
src/main/java/com/fdkankan/fusion/service/ICommonUploadService.java

@@ -1,9 +1,10 @@
 package com.fdkankan.fusion.service;
 
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.common.enums.FileTypeEnum;
 import com.fdkankan.fusion.entity.CommonUpload;
 import com.baomidou.mybatisplus.extension.service.IService;
-
-import java.util.List;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -11,14 +12,16 @@ import java.util.List;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 public interface ICommonUploadService extends IService<CommonUpload> {
 
-    List<CommonUpload> getByStatus(Integer status);
+    ResultData uploadFileNew(MultipartFile file, Integer dictId);
+
+    CommonUpload add(String replace, String url, String s, String uuid, FileTypeEnum fileTypeEnum,String resultFormat, String replace1, Integer status, String unzipPath, Integer dictId);
 
-    void updateByPath(String msg, String url);
-    void updateByPath(String msg, String url,String wgs84 ,String gcj02);
+    void updateStatus(String localPath, Integer i);
 
-    void updateStatus(String localPath,Integer status);
+    void updateByPath(String localPath, String url, String wgs84, String gcj02);
+    void updateByPath(String localPath, String url);
 }

+ 9 - 1
src/main/java/com/fdkankan/fusion/service/IDictFileService.java

@@ -2,6 +2,7 @@ package com.fdkankan.fusion.service;
 
 import com.fdkankan.fusion.entity.DictFile;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.fusion.request.DictFileParam;
 
 /**
  * <p>
@@ -9,8 +10,15 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 public interface IDictFileService extends IService<DictFile> {
 
+    Object pageList(DictFileParam param);
+
+    void addOrUpdate(DictFile dictFile);
+
+    void del(DictFile dictFile);
+
+    void updateDictId(Integer dictId, Integer UpDictId);
 }

+ 11 - 1
src/main/java/com/fdkankan/fusion/service/IDictService.java

@@ -2,6 +2,9 @@ package com.fdkankan.fusion.service;
 
 import com.fdkankan.fusion.entity.Dict;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.fusion.request.DictParam;
+
+import java.util.List;
 
 /**
  * <p>
@@ -9,8 +12,15 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 public interface IDictService extends IService<Dict> {
 
+    List<Dict> getByKey(String dictKey);
+
+    void addOrUpdate(Dict dict);
+
+    void del(Dict dict);
+
+    Object pageList(DictParam param);
 }

+ 218 - 9
src/main/java/com/fdkankan/fusion/service/impl/CommonUploadServiceImpl.java

@@ -1,16 +1,36 @@
 package com.fdkankan.fusion.service.impl;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.io.FileUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.fusion.common.OssPath;
+import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.common.enums.FileTypeEnum;
+import com.fdkankan.fusion.common.util.FileWriterUtil;
+import com.fdkankan.fusion.common.util.OBJToGLBUtil;
+import com.fdkankan.fusion.common.util.ShellUtil;
+import com.fdkankan.fusion.common.util.UploadToOssUtil;
 import com.fdkankan.fusion.entity.CommonUpload;
+import com.fdkankan.fusion.entity.DictFile;
+import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.mapper.ICommonUploadMapper;
+import com.fdkankan.fusion.mq.consumer.OsgbToB3dmConsumer;
 import com.fdkankan.fusion.service.ICommonUploadService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.fusion.service.IDictFileService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.UUID;
 
 /**
  * <p>
@@ -18,17 +38,206 @@ import java.util.List;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Service
-@DS("db2")
+@Slf4j
 public class CommonUploadServiceImpl extends ServiceImpl<ICommonUploadMapper, CommonUpload> implements ICommonUploadService {
 
+
+    @Autowired
+    ICommonUploadService commonUploadService;
+    @Autowired
+    IDictFileService dictFileService;
+    @Autowired
+    UploadToOssUtil uploadToOssUtil;
+    
+    @Value("${fyun.host:https://4dkk.4dage.com/}")
+    private String ossUrlPrefix;
+    
+
     @Override
-    public List<CommonUpload> getByStatus(Integer status) {
-        LambdaQueryWrapper<CommonUpload> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(CommonUpload::getStatus,status);
-        return this.list(wrapper);
+    public ResultData uploadFileNew(MultipartFile file, Integer dictId) {
+        if(file.isEmpty() ){
+            throw new BusinessException(ResultCode.UPLOAD_ERROR);
+        }
+        File tempFile = null;
+        try {
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            String originalFilename = file.getOriginalFilename();
+            String extName = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
+            String ossPath = String.format(OssPath.MANAGE_MODEL_FILE_PATH, uuid + extName);
+
+            tempFile = new File(OssPath.localPath + ossPath);
+            if(!tempFile.getParentFile().exists()){
+                tempFile.getParentFile().mkdirs();
+            }
+            file.transferTo(tempFile);
+            if(extName.equals(".zip")){
+                return uploadModelZip(originalFilename.replace(extName, ""),tempFile,dictId);
+            }
+
+            uploadToOssUtil.uploadOss(tempFile.getPath(), ossPath);
+            String url = this.ossUrlPrefix + ossPath;
+
+            FileTypeEnum fileTypeEnum = FileTypeEnum.getByType(extName.replace(".", ""));
+            if(fileTypeEnum == null){
+                throw new BusinessException(ResultCode.FILE_TYPE_ERROR2);
+            }
+            String format = extName.replace(".", "");
+            CommonUpload commonUpload = commonUploadService.add(originalFilename.replace(extName, ""), url, String.valueOf(file.getSize()), uuid, fileTypeEnum, format,format,1,null,dictId);
+            tempFile.delete();
+            return ResultData.ok(commonUpload);
+        }catch ( BusinessException e){
+            log.info("upload-file-error:{}",e);
+            throw e;
+        }catch (Exception e){
+            log.info("upload-file-error:{}",e);
+            throw new BusinessException(ResultCode.UPLOAD_ERROR);
+        }
+    }
+
+    private ResultData uploadModelZip(String oldName,File tempFile,Integer dictId) {
+        String unzipPath = tempFile.getParentFile().getPath() +"/result/"+UUID.randomUUID().toString().replace("-","");
+        ShellUtil.unZip(tempFile.getPath(),unzipPath);
+
+        File unZipFile = new File(unzipPath);
+        if(!unZipFile.exists() || !unZipFile.isDirectory()){
+            throw new BusinessException(ResultCode.UNZIP_ERROR);
+        }
+        List<File> fileList = new ArrayList<>();
+        FileWriterUtil.getCanRunList(fileList,unZipFile);
+        if(fileList.size() <=0){
+            throw new BusinessException(ResultCode.UPLOAD_FILE_ERROR);
+        }
+        File modelFile = fileList.get(0);
+
+        if(FileWriterUtil.isChinese(modelFile.getName())){
+            throw new BusinessException(ResultCode.FILE_TYPE_ERROR23);
+        }
+        if(FileWriterUtil.isChinese(modelFile.getPath())){
+            throw new BusinessException(ResultCode.FILE_TYPE_ERROR23);
+        }
+        String modelFileFormat = modelFile.getName().split("\\.")[1].toLowerCase();
+        String url = null;
+        String resultFormat = modelFileFormat;
+        switch (modelFileFormat){
+            case "obj" :  resultFormat = "glb";
+                url = uploadObjOss(unzipPath,modelFile);break;
+            case "laz" :    url = uploadLazOss(unzipPath,modelFile); break;
+            case "shp" :   url = uploadOss(unzipPath,modelFile); break;
+            case "b3dm" :  url = uploadB3dm(unzipPath,modelFile); break;
+            case "las" :
+            case "ply" :  url = uploadLasOrPly(unzipPath,modelFile);break;
+            case "osgb":  resultFormat = "b3dm";
+                uploadOsgb(unzipPath,modelFile) ;break;
+            default: break;
+        }
+        FileTypeEnum fileTypeEnum = FileTypeEnum.getByType(modelFileFormat);
+        if(fileTypeEnum == null){
+            throw new BusinessException(ResultCode.FILE_TYPE_ERROR2);
+        }
+        Integer status = StringUtils.isNotBlank(url) ?1:-1;
+        CommonUpload commonUpload = commonUploadService.add(oldName,url, String.valueOf(tempFile.length()),
+                null, fileTypeEnum, modelFileFormat,resultFormat,status,unzipPath,dictId);
+        tempFile.delete();
+        return ResultData.ok(commonUpload);
+    }
+
+    private String uploadObjOss(String unzipPath, File modelFile) {
+        OBJToGLBUtil.checkObj(modelFile.getPath());
+        String localGlbPath = modelFile.getPath().replace(".obj",".glb");
+        OBJToGLBUtil.objToGlb2(modelFile.getPath(),localGlbPath);
+        String ossPath = unzipPath.replace(OssPath.localPath,"");
+        ShellUtil.yunUpload(unzipPath,ossPath);
+        if(!uploadToOssUtil.existKey(localGlbPath.replace(OssPath.localPath,""))){
+            throw new BusinessException(ResultCode.UPLOAD_FILE_ERROR);
+        }
+        FileUtil.del(unzipPath);
+        return  ossUrlPrefix +  localGlbPath.replace(OssPath.localPath,"");
+    }
+
+    private String uploadB3dm(String unzipPath, File modelFile) {
+        String b3dmJsonPath = FileWriterUtil.checkB3dmTileset(new File(unzipPath));
+        if(b3dmJsonPath == null){
+            throw new BusinessException(ResultCode.UPLOAD_FILE_OBJ_ERROR);
+        }
+        String ossPath = b3dmJsonPath.replace(OssPath.localPath, "");
+        uploadOss(unzipPath,modelFile);
+        if(!uploadToOssUtil.existKey(ossPath)){
+            throw new BusinessException(ResultCode.UPLOAD_FILE_ERROR);
+        }
+        FileUtil.del(unzipPath);
+        return ossUrlPrefix +  ossPath;
+    }
+
+    @Autowired
+    OsgbToB3dmConsumer osgbToB3dmConsumer;
+
+    private void uploadOsgb(String unzipPath, File modelFile) {
+        osgbToB3dmConsumer.consumerQueue(unzipPath);
+    }
+
+    private String uploadLazOss(String unzipPath,File modelFile) {
+        String ossPath = unzipPath.replace(OssPath.localPath,"");
+        String modelOssPath = modelFile.getPath().replace(OssPath.localPath, "");
+        ShellUtil.yunUpload(unzipPath,ossPath);
+        if(!uploadToOssUtil.existKey(modelOssPath)){
+            throw new BusinessException(ResultCode.UPLOAD_FILE_ERROR);
+        }
+        FileUtil.del(unzipPath);
+        return ossUrlPrefix +  ossPath;
+    }
+
+    private String uploadOss(String unzipPath,File modelFile) {
+        String ossPath = unzipPath.replace(OssPath.localPath,"");
+        String modelOssPath = modelFile.getPath().replace(OssPath.localPath, "");
+        ShellUtil.yunUpload(unzipPath,ossPath);
+        if(!uploadToOssUtil.existKey(modelOssPath)){
+            throw new BusinessException(ResultCode.UPLOAD_FILE_ERROR);
+        }
+        FileUtil.del(unzipPath);
+        return ossUrlPrefix +  modelOssPath;
+    }
+
+    private String uploadLasOrPly(String unzipPath ,File modelFile) {
+        File mntFile = OBJToGLBUtil.lasOrPlyToBin(modelFile);
+        String ossPath = mntFile.getPath().replace(OssPath.localPath,"");
+        ShellUtil.yunUpload(mntFile.getPath(),ossPath);
+        if(!uploadToOssUtil.existKey(ossPath+"/webcloud/cloud.js")){
+            throw new BusinessException(-1,"缺少cloud.js文件");
+        }
+        FileUtil.del(unzipPath);
+        return ossUrlPrefix +  ossPath + "/webcloud";
+    }
+
+
+
+
+
+    @Override
+    public CommonUpload add(String fileName, String url, String fileSize, String uuid, FileTypeEnum fileTypeEnum, String resultFormat,String replace1, Integer status, String unzipPath, Integer dictId) {
+        CommonUpload upload = new CommonUpload();
+        upload.setFileName(fileName);
+        upload.setFileUrl(url);
+        upload.setFileSize(fileSize);
+        upload.setNewFileName(uuid);
+        upload.setFileType(fileTypeEnum.getCode());
+        upload.setFileTypeStr(fileTypeEnum.getMsg());
+        upload.setFileFormat(resultFormat);
+        upload.setResultFileFormat(replace1);
+        upload.setStatus(status);
+        upload.setUnzipPath(unzipPath);
+        this.save(upload);
+
+        DictFile dictFile = new DictFile();
+        dictFile.setName(fileName);
+        dictFile.setTypeKey("media-library");
+        dictFile.setUploadId(upload.getId());
+        dictFile.setDictId(dictId);
+        dictFileService.saveOrUpdate(dictFile);
+
+        return upload;
     }
 
     @Override

+ 52 - 1
src/main/java/com/fdkankan/fusion/service/impl/DictFileServiceImpl.java

@@ -1,9 +1,21 @@
 package com.fdkankan.fusion.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.fusion.common.PageInfo;
+import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.entity.DictFile;
+import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.mapper.IDictFileMapper;
+import com.fdkankan.fusion.request.DictFileParam;
+import com.fdkankan.fusion.response.DictFileVo;
+import com.fdkankan.fusion.service.ICommonUploadService;
 import com.fdkankan.fusion.service.IDictFileService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.fusion.service.IDictService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -12,9 +24,48 @@ import org.springframework.stereotype.Service;
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Service
 public class DictFileServiceImpl extends ServiceImpl<IDictFileMapper, DictFile> implements IDictFileService {
 
+    @Autowired
+    ICommonUploadService commonUploadService;
+    @Autowired
+    IDictService dictService;
+
+
+    @Override
+    public Object pageList(DictFileParam param) {
+        if(StringUtils.isBlank(param.getTypeKey())){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Page<DictFileVo> pageVo = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+        return PageInfo.PageInfo(pageVo);
+    }
+
+    @Override
+    public void addOrUpdate(DictFile dictFile) {
+        if(StringUtils.isBlank(dictFile.getTypeKey())
+                || dictFile.getDictId() == null ){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        this.saveOrUpdate(dictFile);
+    }
+
+    @Override
+    public void del(DictFile dictFile) {
+        if(dictFile.getId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        this.removeById(dictFile.getId());
+    }
+
+    @Override
+    public void updateDictId(Integer dictId, Integer UpDictId) {
+        LambdaUpdateWrapper<DictFile> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(DictFile::getDictId,dictId);
+        wrapper.set(DictFile::getDictId,UpDictId);
+        this.update(wrapper);
+    }
 }

+ 61 - 1
src/main/java/com/fdkankan/fusion/service/impl/DictServiceImpl.java

@@ -1,20 +1,80 @@
 package com.fdkankan.fusion.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.fusion.common.PageInfo;
+import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.entity.Dict;
+import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.mapper.IDictMapper;
+import com.fdkankan.fusion.request.DictParam;
+import com.fdkankan.fusion.service.IDictFileService;
 import com.fdkankan.fusion.service.IDictService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
  * </p>
  *
  * @author 
- * @since 2024-12-06
+ * @since 2025-02-10
  */
 @Service
 public class DictServiceImpl extends ServiceImpl<IDictMapper, Dict> implements IDictService {
 
+    @Autowired
+    IDictFileService dictFileService;
+
+    @Override
+    public List<Dict> getByKey(String dictKey) {
+        if(StringUtils.isBlank(dictKey)){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        LambdaQueryWrapper<Dict> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Dict::getDictKey,dictKey);
+        wrapper.orderByAsc(Dict::getSort);
+        wrapper.orderByDesc(Dict::getId);
+        return list(wrapper);
+    }
+
+    @Override
+    public Object pageList(DictParam param) {
+        if(StringUtils.isBlank(param.getDictKey())){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        LambdaQueryWrapper<Dict> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Dict::getDictKey,param.getDictKey());
+        if(StringUtils.isNotBlank(param.getDictName())){
+            wrapper.like(Dict::getDictName,param.getDictName());
+        }
+        wrapper.orderByAsc(Dict::getSort);
+        wrapper.orderByDesc(Dict::getId);
+        Page<Dict> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
+        return PageInfo.PageInfo(page);
+    }
+
+    @Override
+    public void addOrUpdate(Dict dict) {
+        if(StringUtils.isBlank(dict.getDictName()) || StringUtils.isBlank(dict.getDictKey())){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        this.saveOrUpdate(dict);
+    }
+
+    @Override
+    public void del(Dict dict) {
+        if(dict.getId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        dictFileService.updateDictId(dict.getId(),null);
+        this.removeById(dict.getId());
+
+    }
 }

+ 0 - 17
src/main/resources/application.yml

@@ -104,23 +104,6 @@ oss:
   small:
   basePath: /oss/
 
-# Sa-Token配置
-sa-token:
-  # token名称 (同时也是cookie名称)
-  token-name: token
-  # token有效期,单位s 默认30天, -1代表永不过期
-  timeout: -1
-  # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
-  activity-timeout: -1
-  # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
-  is-concurrent: true
-  # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
-  is-share: false
-  # token风格
-  token-style: uuid
-  jwt-secret-key: XX#$%()(#*!()!KL<><MQLMNQNQJQK&sdfkjsdrow32234545fdf>?N<:{LWPW
-  # 是否输出操作日志
-  is-log: false
 
 fdkk:
   register:

+ 35 - 0
src/main/resources/mapper/fusion/DictFileMapper.xml

@@ -1,5 +1,40 @@
 <?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.fdkankan.fusion.mapper.IDictFileMapper">
+    <select id="pageList" resultType="com.fdkankan.fusion.response.DictFileVo">
+        SELECT * from t_dict_file df
+        LEFT JOIN t_dict d on df.dict_id = d.id
+        LEFT JOIN t_common_upload cu on df.upload_id = cu.id
+        where df.rec_status = 'A'
+        <if test="param.sysUserId != null">
+            and df.sys_user_id = #{param.sysUserId}
+        </if>
+        <if test="param.name != null and param.name !=''">
+            and df.name like concat('%',#{param.name}, '%')
+        </if>
+        <if test="param.typeKey != null and param.typeKey !=''">
+            and df.type_key = #{param.typeKey}
+        </if>
+        <if test="param.fileType != null">
+            and cu.file_type = #{param.fileType}
+        </if>
+        <if test="param.dictId != null">
+            and df.dict_id = #{param.dictId}
+        </if>
+        <if test="param.fileFormats != null and param.fileFormats.size>0">
+            and cu.file_format in
+            <foreach collection="param.fileFormats" item="fileFormat" open="(" separator="," close=")">
+                #{fileFormat}
+            </foreach>
+        </if>
+        <if test="param.dictIds != null and param.dictIds.size>0">
+            and df.dict_id in
+            <foreach collection="param.dictIds" item="dict" open="(" separator="," close=")">
+                #{dict}
+            </foreach>
+        </if>
 
+        order by df.id desc
+
+    </select>
 </mapper>