Browse Source

教育培训任务代码,生成pdf代码提交

jingyuanchao 2 years ago
parent
commit
77fbe0a1d2

+ 1 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteFileService.java

@@ -37,5 +37,5 @@ public interface RemoteFileService {
      * @return 结果
      */
     @PostMapping(value = "/generateEduTrainingPdf")
-    R<String> generateEduTrainingPdf(@RequestParam Map<String, Object> data, @RequestParam String fileName);
+    R<String> generateEduTrainingPdf(@RequestParam(value = "data") Map<String, Object> data, @RequestParam(value = "fileName") String fileName);
 }

+ 35 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/json/FileListDeserializer.java

@@ -0,0 +1,35 @@
+package com.xunmei.common.core.json;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 文件前缀
+ */
+@Component
+public class FileListDeserializer extends JsonDeserializer<List<Map<String, Object>>> {
+
+    @Override
+    public List<Map<String, Object>> deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException, JsonProcessingException {
+        if (p.getCurrentToken() == JsonToken.START_ARRAY) {
+            List<Map<String, Object>> resourceList = (List<Map<String, Object>>) p.readValueAs(List.class);
+            resourceList = resourceList.stream().peek(r -> {
+                String url = r.get("url").toString();
+                //url = UploadProperties.INSTANCE.pureResource(url);
+                r.put("url", url);
+            }).collect(Collectors.toList());
+            return resourceList;
+        }
+        return Collections.emptyList();
+    }
+}

+ 33 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/json/FileListSerializer.java

@@ -0,0 +1,33 @@
+package com.xunmei.common.core.json;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * 文件前缀
+ */
+public class FileListSerializer extends JsonSerializer<List<Map<String, Object>>> {
+
+    @Override
+    public void serialize(final List<Map<String, Object>> value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException {
+        gen.writeStartArray();
+        for (Map<String, Object> s : (Iterable<Map<String, Object>>) Optional.<List>ofNullable(
+                value).orElse(Collections.emptyList())) {
+            final Object url = s.get("url");
+            if (ObjectUtil.isEmpty(url)) {
+                throw new RuntimeException("文件上传失败");
+            }
+            //s.put("url", UploadProperties.INSTANCE.getResource(url.toString()));
+            gen.writeObject(s);
+        }
+        gen.writeEndArray();
+    }
+}

+ 26 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/json/ImageDeserializer.java

@@ -0,0 +1,26 @@
+package com.xunmei.common.core.json;
+
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+
+/**
+ * 图片前缀
+ */
+@Component
+public class ImageDeserializer extends JsonDeserializer<String> {
+
+    @Override
+    public String deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException, JsonProcessingException {
+        final String text = p.getText();
+        /*if (StringUtils.isNotBlank(text)) {
+            return UploadProperties.INSTANCE.pureResource(text);
+        }*/
+        return text;
+    }
+}

+ 36 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/json/ImageListDeserializer.java

@@ -0,0 +1,36 @@
+package com.xunmei.common.core.json;
+
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 图片前缀
+ */
+public class ImageListDeserializer extends JsonDeserializer<List<String>> {
+
+    @Override
+    public List<String> deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException, JsonProcessingException {
+        if (p.getCurrentToken() == JsonToken.START_ARRAY) {
+            final List<String> resourceList = new ArrayList<>();
+            while (p.nextToken() != JsonToken.END_ARRAY) {
+                final String resource = p.getValueAsString();
+                if (StringUtils.isNotBlank(resource)) {
+                    resourceList.add(resource);
+//                    resourceList.add(UploadProperties.INSTANCE.pureResource(resource));
+                }
+            }
+            return resourceList;
+        }
+        return Collections.emptyList();
+    }
+}

+ 27 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/json/ImageListSerializer.java

@@ -0,0 +1,27 @@
+package com.xunmei.common.core.json;
+
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * 图片前缀
+ */
+public class ImageListSerializer extends JsonSerializer<List<String>> {
+
+    @Override
+    public void serialize(final List<String> value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException {
+        gen.writeStartArray();
+        for (final String s : Optional.ofNullable(value)
+                .orElse(Collections.emptyList())) {
+            gen.writeString(s);
+        }
+        gen.writeEndArray();
+    }
+}

+ 28 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/json/ImageSerializer.java

@@ -0,0 +1,28 @@
+package com.xunmei.common.core.json;
+
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+
+/**
+ * 图片前缀
+ */
+@Component
+public class ImageSerializer extends JsonSerializer<String> {
+
+    @Override
+    public void serialize(final String s, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
+        if (StringUtils.isBlank(s)) {
+            jsonGenerator.writeString("");
+            return;
+        }
+//        jsonGenerator.writeString(UploadProperties.INSTANCE.getResource(s));
+        jsonGenerator.writeString(s);
+    }
+}

+ 2 - 2
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/controller/SysFileController.java

@@ -112,9 +112,9 @@ public class SysFileController {
     }
 
     @PostMapping(value = "/generateEduTrainingPdf")
-    R<String> generateEduTrainingPdf(@RequestParam Map<String, Object> data, @RequestParam String cacheDir) throws Exception {
+    R<String> generateEduTrainingPdf(@RequestParam(value = "data") Map<String, Object> data, @RequestParam(value = "fileName") String fileName) throws Exception {
 
-        return R.ok(sysFileService.generateEduTrainingPdf(data, cacheDir));
+        return R.ok(sysFileService.generateEduTrainingPdf(data, fileName));
 
     }
 }