ChenGanBin vor 2 Jahren
Ursprung
Commit
85eb560095
27 geänderte Dateien mit 284 neuen und 129 gelöschten Zeilen
  1. 7 0
      pom.xml
  2. 16 16
      src/main/java/com/zhixinghe1/ots/atomic/entity/Attachment.java
  3. 15 13
      src/main/java/com/zhixinghe1/ots/atomic/service/IAttachmentService.java
  4. 22 18
      src/main/java/com/zhixinghe1/ots/atomic/service/impl/AttachmentServiceImpl.java
  5. 0 12
      src/main/java/com/zhixinghe1/ots/common/BaseOperate.java
  6. 1 1
      src/main/java/com/zhixinghe1/ots/common/converter/enumconverter/IJsonEnum.java
  7. 1 1
      src/main/java/com/zhixinghe1/ots/common/converter/enumconverter/IntegerToEnumConverter.java
  8. 2 2
      src/main/java/com/zhixinghe1/ots/common/converter/enumconverter/IntegerToEnumConverterFactory.java
  9. 26 0
      src/main/java/com/zhixinghe1/ots/common/converter/mapstruct/BaseEntityConverter.java
  10. 11 0
      src/main/java/com/zhixinghe1/ots/config/BizConfig.java
  11. 2 2
      src/main/java/com/zhixinghe1/ots/config/WebMvcConfig.java
  12. 14 0
      src/main/java/com/zhixinghe1/ots/domain/converter/AttachmentConverter.java
  13. 2 1
      src/main/java/com/zhixinghe1/ots/domain/dto/AttachmentDto.java
  14. 2 1
      src/main/java/com/zhixinghe1/ots/domain/dto/WaterMarkFormat.java
  15. 2 1
      src/main/java/com/zhixinghe1/ots/domain/dto/WaterMarkLayout.java
  16. 2 1
      src/main/java/com/zhixinghe1/ots/domain/dto/WaterMarkRequest.java
  17. 2 1
      src/main/java/com/zhixinghe1/ots/domain/dto/WaterMarkStyle.java
  18. 15 15
      src/main/java/com/zhixinghe1/ots/service/constant/FontEnum.java
  19. 16 15
      src/main/java/com/zhixinghe1/ots/service/constant/FontStyleEnum.java
  20. 1 1
      src/main/java/com/zhixinghe1/ots/service/constant/PositionEnum.java
  21. 19 0
      src/main/java/com/zhixinghe1/ots/service/controller/OssController.java
  22. 19 8
      src/main/java/com/zhixinghe1/ots/service/controller/WaterMarkController.java
  23. 19 0
      src/main/java/com/zhixinghe1/ots/service/manager/IOssManager.java
  24. 4 1
      src/main/java/com/zhixinghe1/ots/service/manager/IWaterMarkManager.java
  25. 40 0
      src/main/java/com/zhixinghe1/ots/service/manager/impl/OssManagerImpl.java
  26. 19 18
      src/main/java/com/zhixinghe1/ots/service/manager/impl/WaterMarkManagerImpl.java
  27. 5 1
      src/main/resources/application.yml

+ 7 - 0
pom.xml

@@ -68,6 +68,13 @@
             <groupId>org.mapstruct</groupId>
             <artifactId>mapstruct</artifactId>
             <version>${mapstruct.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct-processor</artifactId>
+            <version>${mapstruct.version}</version>
+            <scope>compile</scope>
         </dependency>
     </dependencies>
 

+ 16 - 16
src/main/java/com/zhixinghe1/ots/atomic/entity/Attachment.java

@@ -8,23 +8,23 @@ import lombok.Data;
 @Data
 public class Attachment {
 
-  /**
-   * 主键
-   */
-  private Long id;
+    /**
+     * 主键
+     */
+    private Long id;
 
-  /**
-   * 文件名
-   */
-  private String name;
+    /**
+     * 文件名
+     */
+    private String name;
 
-  /**
-   * 文件路径
-   */
-  private String path;
+    /**
+     * 文件路径
+     */
+    private String path;
 
-  /**
-   * 使用状态
-   */
-  private Boolean status;
+    /**
+     * 使用状态
+     */
+    private Boolean status;
 }

+ 15 - 13
src/main/java/com/zhixinghe1/ots/atomic/service/IAttachmentService.java

@@ -1,23 +1,25 @@
 package com.zhixinghe1.ots.atomic.service;
 
-import com.zhixinghe1.ots.dto.AttachmentDto;
+import com.zhixinghe1.ots.domain.dto.AttachmentDto;
 
 /**
  * 附件服务
  */
 public interface IAttachmentService {
 
-  /**
-   * 根据id查找附件记录
-   * @param id
-   * @return
-   */
-  AttachmentDto selectById(Long id);
+    /**
+     * 根据id查找附件记录
+     *
+     * @param id
+     * @return
+     */
+    AttachmentDto selectById(Long id);
 
-  /**
-   * 增加附件记录
-   * @param attachment
-   * @return
-   */
-  int addAttachment(AttachmentDto attachment);
+    /**
+     * 增加附件记录
+     *
+     * @param attachmentDto
+     * @return
+     */
+    int addAttachment(AttachmentDto attachmentDto);
 }

+ 22 - 18
src/main/java/com/zhixinghe1/ots/atomic/service/impl/AttachmentServiceImpl.java

@@ -3,33 +3,37 @@ package com.zhixinghe1.ots.atomic.service.impl;
 import com.zhixinghe1.ots.atomic.entity.Attachment;
 import com.zhixinghe1.ots.atomic.mapper.AttachmentMapper;
 import com.zhixinghe1.ots.atomic.service.IAttachmentService;
-import com.zhixinghe1.ots.dto.AttachmentDto;
-import org.springframework.beans.BeanUtils;
+import com.zhixinghe1.ots.domain.converter.AttachmentConverter;
+import com.zhixinghe1.ots.domain.dto.AttachmentDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 public class AttachmentServiceImpl implements IAttachmentService {
 
-  @Autowired
-  private AttachmentMapper attachmentMapper;
+    @Autowired
+    private AttachmentMapper attachmentMapper;
 
-  @Override
-  public AttachmentDto selectById(Long id) {
-    if (id == null) {
-      return null;
-    }
+    @Autowired
+    private AttachmentConverter attachmentConverter;
 
-    Attachment attachment = attachmentMapper.selectById(id);
-    return null;
-  }
+    @Override
+    public AttachmentDto selectById(Long id) {
+        if (id == null) {
+            return null;
+        }
 
-  @Override
-  public int addAttachment(AttachmentDto attachment) {
-    if (attachment == null) {
-      return 0;
+        Attachment attachment = attachmentMapper.selectById(id);
+        return attachmentConverter.convert2Dto(attachment);
     }
 
-    return attachmentMapper.insert(attachmentMapper.toEntity(attachment));
-  }
+    @Override
+    public int addAttachment(AttachmentDto attachmentDto) {
+        if (attachmentDto == null) {
+            return 0;
+        }
+
+        Attachment attachment = attachmentConverter.convert2Entity(attachmentDto);
+        return attachmentMapper.insert(attachment);
+    }
 }

+ 0 - 12
src/main/java/com/zhixinghe1/ots/common/BaseOperate.java

@@ -1,12 +0,0 @@
-package com.zhixinghe1.ots.common;
-
-import org.mapstruct.Mapper;
-import org.mapstruct.MappingConstants.ComponentModel;
-
-@Mapper(componentModel = ComponentModel.SPRING)
-public interface BaseOperate<E, D> {
-
-  D toDto(E entity);
-
-  E toEntity(D dto);
-}

+ 1 - 1
src/main/java/com/zhixinghe1/ots/common/converter/IJsonEnum.java → src/main/java/com/zhixinghe1/ots/common/converter/enumconverter/IJsonEnum.java

@@ -1,4 +1,4 @@
-package com.zhixinghe1.ots.common.converter;
+package com.zhixinghe1.ots.common.converter.enumconverter;
 
 import com.fasterxml.jackson.annotation.JsonValue;
 

+ 1 - 1
src/main/java/com/zhixinghe1/ots/common/converter/IntegerToEnumConverter.java → src/main/java/com/zhixinghe1/ots/common/converter/enumconverter/IntegerToEnumConverter.java

@@ -1,4 +1,4 @@
-package com.zhixinghe1.ots.common.converter;
+package com.zhixinghe1.ots.common.converter.enumconverter;
 
 import org.springframework.core.convert.converter.Converter;
 

+ 2 - 2
src/main/java/com/zhixinghe1/ots/common/converter/IntegerCodeToEnumConverterFactory.java → src/main/java/com/zhixinghe1/ots/common/converter/enumconverter/IntegerToEnumConverterFactory.java

@@ -1,4 +1,4 @@
-package com.zhixinghe1.ots.common.converter;
+package com.zhixinghe1.ots.common.converter.enumconverter;
 
 import org.springframework.core.convert.converter.Converter;
 import org.springframework.core.convert.converter.ConverterFactory;
@@ -6,7 +6,7 @@ import org.springframework.core.convert.converter.ConverterFactory;
 import java.util.HashMap;
 import java.util.Map;
 
-public class IntegerCodeToEnumConverterFactory implements ConverterFactory<Integer, IJsonEnum> {
+public class IntegerToEnumConverterFactory implements ConverterFactory<Integer, IJsonEnum> {
 
     private static final Map<Class, Converter> CONVERTERS = new HashMap<>();
 

+ 26 - 0
src/main/java/com/zhixinghe1/ots/common/converter/mapstruct/BaseEntityConverter.java

@@ -0,0 +1,26 @@
+package com.zhixinghe1.ots.common.converter.mapstruct;
+
+/**
+ * 对象转换工具
+ *
+ * @param <Entity>
+ * @param <Dto>
+ */
+public interface BaseEntityConverter<Entity, Dto> {
+
+    /**
+     * 实体对象转换为DTO对象
+     *
+     * @param entity
+     * @return
+     */
+    Dto convert2Dto(Entity entity);
+
+    /**
+     * DTO对象转换为实体对象
+     *
+     * @param dto
+     * @return
+     */
+    Entity convert2Entity(Dto dto);
+}

+ 11 - 0
src/main/java/com/zhixinghe1/ots/config/BizConfig.java

@@ -0,0 +1,11 @@
+package com.zhixinghe1.ots.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class BizConfig {
+
+    @Value("${file.tmp.dir}")
+    private String fileTmpDir;
+}

+ 2 - 2
src/main/java/com/zhixinghe1/ots/config/WebMvcConfig.java

@@ -1,6 +1,6 @@
 package com.zhixinghe1.ots.config;
 
-import com.zhixinghe1.ots.common.converter.IntegerCodeToEnumConverterFactory;
+import com.zhixinghe1.ots.common.converter.enumconverter.IntegerToEnumConverterFactory;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@@ -9,6 +9,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 public class WebMvcConfig implements WebMvcConfigurer {
     @Override
     public void addFormatters(FormatterRegistry registry) {
-        registry.addConverterFactory(new IntegerCodeToEnumConverterFactory());
+        registry.addConverterFactory(new IntegerToEnumConverterFactory());
     }
 }

+ 14 - 0
src/main/java/com/zhixinghe1/ots/domain/converter/AttachmentConverter.java

@@ -0,0 +1,14 @@
+package com.zhixinghe1.ots.domain.converter;
+
+import com.zhixinghe1.ots.atomic.entity.Attachment;
+import com.zhixinghe1.ots.common.converter.mapstruct.BaseEntityConverter;
+import com.zhixinghe1.ots.domain.dto.AttachmentDto;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingConstants;
+
+/**
+ * 附件对象转换工具
+ */
+@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
+public interface AttachmentConverter extends BaseEntityConverter<Attachment, AttachmentDto> {
+}

+ 2 - 1
src/main/java/com/zhixinghe1/ots/dto/AttachmentDto.java → src/main/java/com/zhixinghe1/ots/domain/dto/AttachmentDto.java

@@ -1,4 +1,4 @@
-package com.zhixinghe1.ots.dto;
+package com.zhixinghe1.ots.domain.dto;
 
 import com.zhixinghe1.ots.atomic.entity.Attachment;
 import lombok.Data;
@@ -11,4 +11,5 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class AttachmentDto extends Attachment {
 
+
 }

+ 2 - 1
src/main/java/com/zhixinghe1/ots/dto/WaterMarkFormat.java → src/main/java/com/zhixinghe1/ots/domain/dto/WaterMarkFormat.java

@@ -1,9 +1,10 @@
-package com.zhixinghe1.ots.dto;
+package com.zhixinghe1.ots.domain.dto;
 
 import lombok.Data;
 
 /**
  * 水印文件格式
+ *
  * @author ChenGanBin
  */
 @Data

+ 2 - 1
src/main/java/com/zhixinghe1/ots/dto/WaterMarkLayout.java → src/main/java/com/zhixinghe1/ots/domain/dto/WaterMarkLayout.java

@@ -1,10 +1,11 @@
-package com.zhixinghe1.ots.dto;
+package com.zhixinghe1.ots.domain.dto;
 
 import com.zhixinghe1.ots.service.constant.PositionEnum;
 import lombok.Data;
 
 /**
  * 水印布局
+ *
  * @author ChenGanBin
  */
 @Data

+ 2 - 1
src/main/java/com/zhixinghe1/ots/dto/WaterMarkRequest.java → src/main/java/com/zhixinghe1/ots/domain/dto/WaterMarkRequest.java

@@ -1,9 +1,10 @@
-package com.zhixinghe1.ots.dto;
+package com.zhixinghe1.ots.domain.dto;
 
 import lombok.Data;
 
 /**
  * 水印请求
+ *
  * @author ChenGanBin
  */
 @Data

+ 2 - 1
src/main/java/com/zhixinghe1/ots/dto/WaterMarkStyle.java → src/main/java/com/zhixinghe1/ots/domain/dto/WaterMarkStyle.java

@@ -1,4 +1,4 @@
-package com.zhixinghe1.ots.dto;
+package com.zhixinghe1.ots.domain.dto;
 
 import com.zhixinghe1.ots.service.constant.FontEnum;
 import com.zhixinghe1.ots.service.constant.FontStyleEnum;
@@ -6,6 +6,7 @@ import lombok.Data;
 
 /**
  * 水印样式
+ *
  * @author ChenGanBin
  */
 @Data

+ 15 - 15
src/main/java/com/zhixinghe1/ots/service/constant/FontEnum.java

@@ -1,6 +1,6 @@
 package com.zhixinghe1.ots.service.constant;
 
-import com.zhixinghe1.ots.common.converter.IJsonEnum;
+import com.zhixinghe1.ots.common.converter.enumconverter.IJsonEnum;
 
 /**
  * 字体
@@ -8,23 +8,23 @@ import com.zhixinghe1.ots.common.converter.IJsonEnum;
 public enum FontEnum implements IJsonEnum<Integer> {
 
 
-  SIMSUN("宋体", 0);
+    SIMSUN("宋体", 0);
 
-  private String name;
+    private String name;
 
-  private Integer code;
+    private Integer code;
 
-  FontEnum(String name, Integer code) {
-    this.name = name;
-    this.code = code;
-  }
+    FontEnum(String name, Integer code) {
+        this.name = name;
+        this.code = code;
+    }
 
-  public String getName() {
-    return name;
-  }
+    public String getName() {
+        return name;
+    }
 
-  @Override
-  public Integer getCode() {
-    return null;
-  }
+    @Override
+    public Integer getCode() {
+        return null;
+    }
 }

+ 16 - 15
src/main/java/com/zhixinghe1/ots/service/constant/FontStyleEnum.java

@@ -1,25 +1,26 @@
 package com.zhixinghe1.ots.service.constant;
 
-import com.zhixinghe1.ots.common.converter.IJsonEnum;
-import java.awt.Font;
+import com.zhixinghe1.ots.common.converter.enumconverter.IJsonEnum;
+
+import java.awt.*;
 
 public enum FontStyleEnum implements IJsonEnum<Integer> {
 
-  PLAIN("普通", Font.PLAIN),
-  BOLD("粗体", Font.BOLD),
-  ITALIC("斜体", Font.ITALIC);
+    PLAIN("普通", Font.PLAIN),
+    BOLD("粗体", Font.BOLD),
+    ITALIC("斜体", Font.ITALIC);
 
-  private final String name;
+    private final String name;
 
-  private final Integer code;
+    private final Integer code;
 
-  FontStyleEnum(String name, Integer code) {
-    this.name = name;
-    this.code = code;
-  }
+    FontStyleEnum(String name, Integer code) {
+        this.name = name;
+        this.code = code;
+    }
 
-  @Override
-  public Integer getCode() {
-    return null;
-  }
+    @Override
+    public Integer getCode() {
+        return null;
+    }
 }

+ 1 - 1
src/main/java/com/zhixinghe1/ots/service/constant/PositionEnum.java

@@ -1,6 +1,6 @@
 package com.zhixinghe1.ots.service.constant;
 
-import com.zhixinghe1.ots.common.converter.IJsonEnum;
+import com.zhixinghe1.ots.common.converter.enumconverter.IJsonEnum;
 import net.coobird.thumbnailator.geometry.Position;
 import net.coobird.thumbnailator.geometry.Positions;
 

+ 19 - 0
src/main/java/com/zhixinghe1/ots/service/controller/OssController.java

@@ -0,0 +1,19 @@
+package com.zhixinghe1.ots.service.controller;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 对象存储
+ */
+@RestController
+@RequestMapping("/oss")
+public class OssController {
+
+    @PostMapping("/upload")
+    public void upload(MultipartFile[] files) {
+
+    }
+}

+ 19 - 8
src/main/java/com/zhixinghe1/ots/service/controller/WaterMarkController.java

@@ -1,24 +1,26 @@
 package com.zhixinghe1.ots.service.controller;
 
-import com.zhixinghe1.ots.atomic.entity.Attachment;
-import com.zhixinghe1.ots.atomic.mapper.AttachmentMapper;
 import com.zhixinghe1.ots.atomic.service.IAttachmentService;
-import com.zhixinghe1.ots.dto.AttachmentDto;
-import com.zhixinghe1.ots.dto.WaterMarkRequest;
+import com.zhixinghe1.ots.config.BizConfig;
+import com.zhixinghe1.ots.domain.dto.AttachmentDto;
+import com.zhixinghe1.ots.domain.dto.WaterMarkRequest;
 import com.zhixinghe1.ots.service.manager.IWaterMarkManager;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import java.io.UnsupportedEncodingException;
-import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.UnsupportedEncodingException;
+
 @Tag(name = "水印")
 @RestController
 @RequestMapping("/watermark")
 public class WaterMarkController {
 
+    @Autowired
+    private BizConfig bizConfig;
+
     @Autowired
     private IWaterMarkManager waterMarkManager;
 
@@ -32,9 +34,18 @@ public class WaterMarkController {
     }
 
     @GetMapping("test2")
-    public AttachmentDto test2() {
+    public AttachmentDto test2(Long id) {
         System.out.println(("----- selectAll method test ------"));
-        AttachmentDto attachmentDto = attachmentService.selectById(1L);
+        AttachmentDto attachmentDto = attachmentService.selectById(id);
         return attachmentDto;
     }
+
+    @GetMapping("test3")
+    public Integer test3() {
+        AttachmentDto attachmentDto = new AttachmentDto();
+        attachmentDto.setPath("/12342");
+        attachmentDto.setStatus(true);
+        attachmentDto.setName("测试.jpg");
+        return attachmentService.addAttachment(attachmentDto);
+    }
 }

+ 19 - 0
src/main/java/com/zhixinghe1/ots/service/manager/IOssManager.java

@@ -0,0 +1,19 @@
+package com.zhixinghe1.ots.service.manager;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * 对象存储
+ */
+public interface IOssManager {
+
+    /**
+     * 上传
+     *
+     * @param files
+     * @return
+     */
+    List<String> upload(List<MultipartFile> files);
+}

+ 4 - 1
src/main/java/com/zhixinghe1/ots/service/manager/IWaterMarkManager.java

@@ -1,16 +1,19 @@
 package com.zhixinghe1.ots.service.manager;
 
-import com.zhixinghe1.ots.dto.WaterMarkRequest;
+import com.zhixinghe1.ots.domain.dto.WaterMarkRequest;
+
 import java.io.UnsupportedEncodingException;
 
 /**
  * 水印服务类
+ *
  * @author ChenGanBin
  */
 public interface IWaterMarkManager {
 
     /**
      * 添加水印
+     *
      * @param request
      */
     void make(WaterMarkRequest request) throws UnsupportedEncodingException;

+ 40 - 0
src/main/java/com/zhixinghe1/ots/service/manager/impl/OssManagerImpl.java

@@ -0,0 +1,40 @@
+package com.zhixinghe1.ots.service.manager.impl;
+
+import com.zhixinghe1.ots.config.BizConfig;
+import com.zhixinghe1.ots.domain.dto.AttachmentDto;
+import com.zhixinghe1.ots.service.manager.IOssManager;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 对象存储
+ */
+@Slf4j
+@Service
+public class OssManagerImpl implements IOssManager {
+
+    @Autowired
+    private BizConfig bizConfig;
+
+    @Override
+    public List<String> upload(List<MultipartFile> files) {
+        List<AttachmentDto> attachmentDtoList = files.stream().map(file -> {
+            try {
+                file.transferTo(new File(""));
+                AttachmentDto attachmentDto = new AttachmentDto();
+                return attachmentDto;
+            } catch (IOException e) {
+
+            }
+            return null;
+        }).collect(Collectors.toList());
+        return null;
+    }
+}

+ 19 - 18
src/main/java/com/zhixinghe1/ots/service/manager/WaterMarkManagerImpl.java → src/main/java/com/zhixinghe1/ots/service/manager/impl/WaterMarkManagerImpl.java

@@ -1,26 +1,27 @@
-package com.zhixinghe1.ots.service.manager;
+package com.zhixinghe1.ots.service.manager.impl;
 
+import com.zhixinghe1.ots.domain.dto.WaterMarkLayout;
+import com.zhixinghe1.ots.domain.dto.WaterMarkRequest;
+import com.zhixinghe1.ots.domain.dto.WaterMarkStyle;
 import com.zhixinghe1.ots.service.constant.PositionEnum;
 import com.zhixinghe1.ots.service.core.TileImageFilter;
-import com.zhixinghe1.ots.dto.WaterMarkLayout;
-import com.zhixinghe1.ots.dto.WaterMarkRequest;
-import com.zhixinghe1.ots.dto.WaterMarkStyle;
+import com.zhixinghe1.ots.service.manager.IWaterMarkManager;
 import jakarta.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.Optional;
 import lombok.extern.slf4j.Slf4j;
 import net.coobird.thumbnailator.Thumbnails;
 import net.coobird.thumbnailator.filters.Caption;
 import net.coobird.thumbnailator.filters.ImageFilter;
 import org.springframework.stereotype.Service;
-
-import java.awt.*;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
+import java.awt.*;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Optional;
+
 @Slf4j
 @Service
 public class WaterMarkManagerImpl implements IWaterMarkManager {
@@ -33,24 +34,24 @@ public class WaterMarkManagerImpl implements IWaterMarkManager {
 
         ImageFilter imageFilter = null;
         if (PositionEnum.TILE.equals(layout.getPosition())) {
-            imageFilter = new TileImageFilter(request.getContent(), font, Color.WHITE, style.getAlpha(),  layout.getDegree(),
-                layout.getInterval(), layout.getInterval(), layout.getCriscross());
+            imageFilter = new TileImageFilter(request.getContent(), font, Color.WHITE, style.getAlpha(), layout.getDegree(),
+                    layout.getInterval(), layout.getInterval(), layout.getCriscross());
         } else {
             imageFilter = new Caption(request.getContent(), font, Color.BLUE, style.getAlpha(), layout.getPosition().getPosition(), 5);
         }
 
         HttpServletResponse response = Optional.ofNullable(
-                ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse())
-            .orElseThrow();
+                        ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse())
+                .orElseThrow();
         response.setContentType("application/force-download");
         response.setCharacterEncoding("UTF-8");
         response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("测试123.jpg", "UTF-8"));
 
         try (OutputStream outputStream = response.getOutputStream()) {
             Thumbnails.of("C:\\Users\\tyuio\\Desktop\\捕获(1).jpg")
-                .scale(1, 1)
-                .addFilter(imageFilter)
-                .toOutputStream(outputStream);
+                    .scale(1, 1)
+                    .addFilter(imageFilter)
+                    .toOutputStream(outputStream);
         } catch (IOException e) {
             log.error("导出水印时发生异常", e);
         }

+ 5 - 1
src/main/resources/application.yml

@@ -11,4 +11,8 @@ spring:
   sql:
     init:
       schema-locations: classpath:db/schema-h2.sql
-#      data-locations: classpath:db/data-h2.sql
+#      data-locations: classpath:db/data-h2.sql
+
+file:
+  tmp:
+    dir: E:\Documents\Code\OnlineToolService\tmp