Explorar o código

增加根据模板新建目录

wukai hai 1 ano
pai
achega
aef16885c9

+ 17 - 13
doc-admin/src/test/java/Test.java

@@ -1,6 +1,6 @@
-import java.io.File;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.doc.common.utils.StringUtils;
 
 /**
  * Test$
@@ -10,17 +10,21 @@ import java.math.RoundingMode;
  */
 public class Test {
     public static void main(String[] args) {
-        long l = 1024 * 1024 * 1024;
-        File[] roots = File.listRoots();
-        BigDecimal total = BigDecimal.ZERO;
-        BigDecimal used = BigDecimal.ZERO;
-        for (File f : roots) {
-            total = total.add(BigDecimal.valueOf(f.getTotalSpace()));
-            used = used.add(BigDecimal.valueOf(f.getUsableSpace()));
+        String content = "[{\"label\": \"一级二\", \"children\": [{\"label\": \"二级2\", \"children\": []}]}, {\"label\": \"一级一\", \"children\": [{\"label\": \"二级1\", \"children\": []}]}]";
+        if (StringUtils.isNotEmpty(content)) {
+            JSONArray jsonArray = JSONArray.parseArray(content);
+            children(jsonArray);
+
         }
+    }
 
-//        df.format(use);
-        System.err.println(used + "\t" + total);
-        System.err.println(used.multiply(BigDecimal.valueOf(100)).divide(total, 2, RoundingMode.HALF_UP));
+    public static void children(JSONArray jsonArray) {
+        for (int index = 0; index < jsonArray.size(); index++) {
+            JSONObject obj = jsonArray.getJSONObject(index);
+            String name = obj.getString("label");
+            System.err.println(name);
+            JSONArray arr = obj.getJSONArray("children");
+            children(arr);
+        }
     }
 }

+ 44 - 0
doc-biz/src/main/java/com/doc/biz/controller/DocDirController.java

@@ -1,6 +1,8 @@
 package com.doc.biz.controller;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.doc.biz.domain.*;
 import com.doc.biz.service.*;
 import com.doc.biz.vo.MatchVO;
@@ -13,6 +15,8 @@ import com.doc.common.core.page.TableDataInfo;
 import com.doc.common.enums.BusinessType;
 import com.doc.common.enums.EventLevel;
 import com.doc.common.utils.SecurityUtils;
+import com.doc.common.utils.StringUtils;
+import com.doc.common.utils.bean.BeanUtils;
 import com.doc.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.*;
 import org.springframework.web.bind.annotation.*;
@@ -46,6 +50,8 @@ public class DocDirController extends BaseController {
     private IDocFavoriteService favoriteService;
     @Resource
     private IDocRecentService recentService;
+    @Resource
+    private IDocDirTemplateService dirTemplateService;
 
     /**
      * 获取顶层目录
@@ -308,6 +314,44 @@ public class DocDirController extends BaseController {
     }
 
     /**
+     * 新建目录
+     */
+    @ApiOperation("根据模板新建目录")
+    @Log(title = "文档目录管理", businessType = BusinessType.INSERT)
+    @PostMapping("/tmpl/{tmplId}")
+    public AjaxResult tmpl(@PathVariable("tmplId") Long tmplId, @RequestBody DocDir docDir) {
+        AjaxResult result = add(docDir);
+        DocDirTemplate dirTemplate = dirTemplateService.selectDocDirTemplateByTmplId(tmplId);
+        String content = dirTemplate.getTmplContent();
+        if (StringUtils.isNotEmpty(content)) {
+            JSONArray jsonArray = JSONArray.parseArray(content);
+            children(jsonArray, docDir);
+        }
+        return result;
+    }
+
+    /**
+     * 根据模板新建目录
+     *
+     * @param jsonArray json数组
+     * @param dir       当前目录信息
+     */
+    private void children(JSONArray jsonArray, DocDir dir) {
+        for (int index = 0; index < jsonArray.size(); index++) {
+            JSONObject obj = jsonArray.getJSONObject(index);
+            String name = obj.getString("label");
+            DocDir newDir = new DocDir();
+            BeanUtils.copyProperties(dir, newDir);
+            newDir.setDirId(null);
+            newDir.setParentId(dir.getDirId());
+            newDir.setDirName(name);
+            docDirService.insertDocDir(newDir);
+            JSONArray arr = obj.getJSONArray("children");
+            children(arr, newDir);
+        }
+    }
+
+    /**
      * 检查重名
      *
      * @param docDir 目录信息