Browse Source

暂时提交

ChenGanBin 2 năm trước cách đây
mục cha
commit
b9b67c8edb

+ 3 - 1
.gitignore

@@ -32,4 +32,6 @@ build/
 ### VS Code ###
 .vscode/
 
-logs/
+logs/
+tmp/
+db/

+ 159 - 117
pom.xml

@@ -1,124 +1,166 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.1</version>
-        <relativePath/> <!-- lookup parent from repository -->
-    </parent>
-    <groupId>com.zhixinghe1</groupId>
-    <artifactId>ots</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <name>ots</name>
-    <description>a online tool service</description>
-    <properties>
-        <java.version>17</java.version>
-        <mapstruct.version>1.5.5.Final</mapstruct.version>
-        <mybatis.plus.version>3.5.3.1</mybatis.plus.version>
-        <thumbnailator.version>0.4.20</thumbnailator.version>
-    </properties>
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-validation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-aop</artifactId>
-        </dependency>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-starter-parent</artifactId>
+    <version>3.1.1</version>
+    <relativePath/> <!-- lookup parent from repository -->
+  </parent>
+  <groupId>com.zhixinghe1</groupId>
+  <artifactId>ots</artifactId>
+  <version>0.0.1-SNAPSHOT</version>
+  <name>ots</name>
+  <description>a online tool service</description>
+  <properties>
+    <java.version>17</java.version>
+    <mapstruct.version>1.5.5.Final</mapstruct.version>
+    <mybatis.plus.version>3.5.3.1</mybatis.plus.version>
+    <thumbnailator.version>0.4.20</thumbnailator.version>
+    <org.mapstruct.extensions.spring.version>1.0.1</org.mapstruct.extensions.spring.version>
+    <lombok.mapstruct.binding.version>0.2.0</lombok.mapstruct.binding.version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-validation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-aop</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.projectlombok</groupId>
+      <artifactId>lombok</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <!--    <dependency>-->
+    <!--      <groupId>org.projectlombok</groupId>-->
+    <!--      <artifactId>lombok-mapstruct-binding</artifactId>-->
+    <!--      <version>${lombok.mapstruct.binding.version}</version>-->
+    <!--    </dependency>-->
 
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-test</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-        <dependency>
-            <groupId>org.springdoc</groupId>
-            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
-            <version>2.1.0</version>
-        </dependency>
-        <dependency>
-            <groupId>net.coobird</groupId>
-            <artifactId>thumbnailator</artifactId>
-            <version>${thumbnailator.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>${mybatis.plus.version}</version>
-        </dependency>
-        <dependency>
-            <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>
+    <dependency>
+      <groupId>org.springdoc</groupId>
+      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
+      <version>2.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>net.coobird</groupId>
+      <artifactId>thumbnailator</artifactId>
+      <version>${thumbnailator.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.baomidou</groupId>
+      <artifactId>mybatis-plus-boot-starter</artifactId>
+      <version>${mybatis.plus.version}</version>
+    </dependency>
+    <dependency>
+      <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>
+    <!--    <dependency>-->
+    <!--      <groupId>org.mapstruct.extensions.spring</groupId>-->
+    <!--      <artifactId>mapstruct-spring-annotations</artifactId>-->
+    <!--      <version>${org.mapstruct.extensions.spring.version}</version>-->
+    <!--    </dependency>-->
+  </dependencies>
 
-    <!-- 配置阿里云仓库 -->
-    <repositories>
-        <repository>
-            <id>aliyun-repos</id>
-            <url>https://maven.aliyun.com/repository/public</url>
-            <releases>
-                <enabled>true</enabled>
-            </releases>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-        </repository>
-    </repositories>
-    <pluginRepositories>
-        <pluginRepository>
-            <id>aliyun-repos</id>
-            <url>https://maven.aliyun.com/repository/public</url>
-            <releases>
-                <enabled>true</enabled>
-            </releases>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-        </pluginRepository>
-    </pluginRepositories>
+  <!-- 配置阿里云仓库 -->
+  <repositories>
+    <repository>
+      <id>aliyun-repos</id>
+      <url>https://maven.aliyun.com/repository/public</url>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+  <pluginRepositories>
+    <pluginRepository>
+      <id>aliyun-repos</id>
+      <url>https://maven.aliyun.com/repository/public</url>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </pluginRepository>
+  </pluginRepositories>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>
-                            <groupId>org.projectlombok</groupId>
-                            <artifactId>lombok</artifactId>
-                        </exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>
+              <groupId>org.projectlombok</groupId>
+              <artifactId>lombok</artifactId>
+            </exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <!--      <plugin>-->
+      <!--        <groupId>org.apache.maven.plugins</groupId>-->
+      <!--        <artifactId>maven-compiler-plugin</artifactId>-->
+      <!--        <configuration>-->
+      <!--          <annotationProcessorPaths>-->
+      <!--            <path>-->
+      <!--              <groupId>org.projectlombok</groupId>-->
+      <!--              <artifactId>lombok</artifactId>-->
+      <!--              <version>${lombok.version}</version>-->
+      <!--            </path>-->
+      <!--            <path>-->
+      <!--              <groupId>org.mapstruct</groupId>-->
+      <!--              <artifactId>mapstruct-processor</artifactId>-->
+      <!--              <version>${mapstruct.version}</version>-->
+      <!--            </path>-->
+      <!--            <path>-->
+      <!--              <groupId>org.projectlombok</groupId>-->
+      <!--              <artifactId>lombok-mapstruct-binding</artifactId>-->
+      <!--              <version>lombok.mapstruct.binding.version</version>-->
+      <!--            </path>-->
+      <!--            <path>-->
+      <!--              <groupId>org.mapstruct.extensions.spring</groupId>-->
+      <!--              <artifactId>mapstruct-spring-extensions</artifactId>-->
+      <!--              <version>${org.mapstruct.extensions.spring.version}</version>-->
+      <!--            </path>-->
+      <!--          </annotationProcessorPaths>-->
+      <!--        </configuration>-->
+      <!--      </plugin>-->
+    </plugins>
+  </build>
 
 </project>

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

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

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

@@ -1,39 +1,42 @@
 package com.zhixinghe1.ots.atomic.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.domain.converter.AttachmentConverter;
 import com.zhixinghe1.ots.domain.dto.AttachmentDto;
+import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.convert.ConversionService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 @Service
-public class AttachmentServiceImpl implements IAttachmentService {
+public class AttachmentServiceImpl extends ServiceImpl<AttachmentMapper, Attachment> implements
+    IAttachmentService {
 
-    @Autowired
-    private AttachmentMapper attachmentMapper;
+  @Autowired
+  private ConversionService conversionService;
 
-    @Autowired
-    private AttachmentConverter attachmentConverter;
-
-    @Override
-    public AttachmentDto selectById(Long id) {
-        if (id == null) {
-            return null;
-        }
-
-        Attachment attachment = attachmentMapper.selectById(id);
-        return attachmentConverter.convert2Dto(attachment);
+  @Override
+  public AttachmentDto selectById(Long id) {
+    if (id == null) {
+      return null;
     }
 
-    @Override
-    public int addAttachment(AttachmentDto attachmentDto) {
-        if (attachmentDto == null) {
-            return 0;
-        }
+    Attachment attachment = getById(id);
+    return conversionService.convert(attachment, AttachmentDto.class);
+  }
 
-        Attachment attachment = attachmentConverter.convert2Entity(attachmentDto);
-        return attachmentMapper.insert(attachment);
+  @Override
+  @Transactional
+  public boolean batchAddAttachment(List<AttachmentDto> attachmentDtoList) {
+    if (CollectionUtils.isEmpty(attachmentDtoList)) {
+      return true;
     }
+
+    List<Attachment> attachments = conversionService.convert(attachmentDtoList, List.class);
+    return saveBatch(attachments);
+  }
 }

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

@@ -0,0 +1,26 @@
+package com.zhixinghe1.ots.common.converter.mapstruct;
+
+import com.zhixinghe1.ots.domain.dto.Attach;
+import com.zhixinghe1.ots.domain.dto.AttachmentDto;
+import java.util.List;
+import org.mapstruct.Mapper;
+import org.springframework.core.convert.converter.Converter;
+
+public class BaseMapStruct<Entity, Dto> {
+
+  @Mapper(componentModel = "spring")
+  public interface AttachmentConverter extends Converter<Entity, Dto> {
+
+  }
+
+  @Mapper(componentModel = "spring")
+  public interface AttachListConverter extends Converter<List<Entity>, List<Dto>> {
+
+  }
+
+  @Mapper(componentModel = "spring")
+  public interface AttachConverter extends Converter<Attach, AttachmentDto> {
+
+  }
+
+}

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

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

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

@@ -1,14 +0,0 @@
-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> {
-}

+ 27 - 0
src/main/java/com/zhixinghe1/ots/domain/dto/Attach.java

@@ -0,0 +1,27 @@
+package com.zhixinghe1.ots.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class Attach {
+
+  /**
+   * 主键
+   */
+  private Long id;
+
+  /**
+   * 文件名
+   */
+  private String name;
+
+  /**
+   * 文件路径
+   */
+  private String path;
+
+  /**
+   * 使用状态
+   */
+  private Boolean status;
+}

+ 12 - 3
src/main/java/com/zhixinghe1/ots/service/controller/OssController.java

@@ -1,19 +1,28 @@
 package com.zhixinghe1.ots.service.controller;
 
+import com.zhixinghe1.ots.service.manager.IOssManager;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestPart;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 对象存储
  */
+@Validated
 @RestController
 @RequestMapping("/oss")
 public class OssController {
 
-    @PostMapping("/upload")
-    public void upload(MultipartFile[] files) {
+  @Autowired
+  private IOssManager ossManager;
 
-    }
+  @PostMapping("/upload")
+  public List<String> upload(@RequestPart("files") List<MultipartFile> multipartFiles) {
+    return ossManager.upload(multipartFiles);
+  }
 }

+ 42 - 32
src/main/java/com/zhixinghe1/ots/service/controller/WaterMarkController.java

@@ -2,50 +2,60 @@ package com.zhixinghe1.ots.service.controller;
 
 import com.zhixinghe1.ots.atomic.service.IAttachmentService;
 import com.zhixinghe1.ots.config.BizConfig;
+import com.zhixinghe1.ots.domain.dto.Attach;
 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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.convert.ConversionService;
 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;
-
-    @Autowired
-    private IAttachmentService attachmentService;
-
-    @GetMapping(value = "/make")
-    public WaterMarkRequest make(WaterMarkRequest request) throws UnsupportedEncodingException {
-        waterMarkManager.make(request);
-        return null;
-    }
-
-    @GetMapping("test2")
-    public AttachmentDto test2(Long id) {
-        System.out.println(("----- selectAll method test ------"));
-        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);
-    }
+  @Autowired
+  private BizConfig bizConfig;
+
+  @Autowired
+  private IWaterMarkManager waterMarkManager;
+
+  @Autowired
+  private IAttachmentService attachmentService;
+
+  @GetMapping(value = "/make")
+  public WaterMarkRequest make(WaterMarkRequest request) throws UnsupportedEncodingException {
+    waterMarkManager.make(request);
+    return null;
+  }
+
+  @GetMapping("test2")
+  public AttachmentDto test2(Long id) {
+    System.out.println(("----- selectAll method test ------"));
+    AttachmentDto attachmentDto = attachmentService.selectById(id);
+    return attachmentDto;
+  }
+
+  @Autowired
+  private ConversionService conversionService;
+
+//  @Autowired
+//  private ConversionServiceAdapter adapter;
+
+  @GetMapping("test3")
+  public Attach test3() {
+    AttachmentDto attachmentDto = new AttachmentDto();
+    attachmentDto.setPath("/12342");
+    attachmentDto.setStatus(true);
+    attachmentDto.setName("测试.jpg");
+    Attach convert = conversionService.convert(attachmentDto, Attach.class);
+//    Attachment convert = adapter.m
+    return convert;
+//    return null;
+  }
 }

+ 8 - 9
src/main/java/com/zhixinghe1/ots/service/manager/IOssManager.java

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

+ 49 - 19
src/main/java/com/zhixinghe1/ots/service/manager/impl/OssManagerImpl.java

@@ -1,17 +1,19 @@
 package com.zhixinghe1.ots.service.manager.impl;
 
+import com.zhixinghe1.ots.atomic.service.IAttachmentService;
 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.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 对象存储
@@ -20,21 +22,49 @@ import java.util.stream.Collectors;
 @Service
 public class OssManagerImpl implements IOssManager {
 
-    @Autowired
-    private BizConfig bizConfig;
+  @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) {
+  @Autowired
+  private IAttachmentService attachmentService;
 
-            }
-            return null;
-        }).collect(Collectors.toList());
-        return null;
+  @Override
+  public List<String> upload(List<MultipartFile> multipartFiles) {
+    if (CollectionUtils.isEmpty(multipartFiles)) {
+      return new ArrayList<>(0);
     }
+    List<AttachmentDto> attachmentDtoList = transfer(multipartFiles);
+    attachmentService.batchAddAttachment(attachmentDtoList);
+    return attachmentDtoList.stream().map(attachmentDto -> attachmentDto.getPath()).collect(
+        Collectors.toList());
+  }
+
+  /**
+   * 转存上传的文件
+   *
+   * @param multipartFiles
+   * @return
+   */
+  private List<AttachmentDto> transfer(List<MultipartFile> multipartFiles) {
+    return multipartFiles.stream().map(file -> {
+      try {
+        String originalFilename = file.getOriginalFilename();
+        int i = originalFilename.lastIndexOf(".");
+        String fileNamePrefix = originalFilename.substring(0, i);
+        String fileNameSuffix = originalFilename.substring(i + 1);
+        String fileName = String.format("%s_%d.%s", fileNamePrefix, System.currentTimeMillis(),
+            fileNameSuffix);
+        String filePath = String.format("%s%s", bizConfig.getFileTmpDir(), fileName);
+        file.transferTo(new File(filePath));
+        AttachmentDto attachmentDto = new AttachmentDto();
+        attachmentDto.setName(fileName);
+        attachmentDto.setPath(filePath);
+        attachmentDto.setStatus(false);
+        return attachmentDto;
+      } catch (IOException e) {
+        log.error("转存上传文件异常", e);
+      }
+      return null;
+    }).filter(dto -> dto != null).collect(Collectors.toList());
+  }
 }

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

@@ -6,13 +6,16 @@ logging:
 spring:
   datasource:
     driver-class-name: org.h2.Driver
+    url: jdbc:h2:file:./db/ots
     username: root
     password: test
   sql:
     init:
       schema-locations: classpath:db/schema-h2.sql
-#      data-locations: classpath:db/data-h2.sql
+  h2:
+    console:
+      enabled: true
 
 file:
   tmp:
-    dir: E:\Documents\Code\OnlineToolService\tmp
+    dir: E:\Documents\Code\OnlineToolService\tmp\

+ 0 - 8
src/main/resources/db/data-h2.sql

@@ -1,8 +0,0 @@
-DELETE FROM sys_user;
-
-INSERT INTO sys_user (id, name, age, email) VALUES
-(1, 'Jone', 18, 'test1@baomidou.com'),
-(2, 'Jack', 20, 'test2@baomidou.com'),
-(3, 'Tom', 28, 'test3@baomidou.com'),
-(4, 'Sandy', 21, 'test4@baomidou.com'),
-(5, 'Billie', 24, 'test5@baomidou.com');

+ 0 - 22
src/test/java/com/zhixinghe1/ots/mapper/SysAttachmentMapperTest.java

@@ -1,22 +0,0 @@
-package com.zhixinghe1.ots.mapper;
-
-import com.zhixinghe1.ots.atomic.entity.Attachment;
-import com.zhixinghe1.ots.atomic.entity.mapper.UserMapper;
-import java.util.List;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-public class SysAttachmentMapperTest {
-
-  @Autowired
-  private UserMapper userMapper;
-
-  @Test
-  public void testSelect() {
-    System.out.println(("----- selectAll method test ------"));
-    List<Attachment> attachmentList = userMapper.selectList(null);
-    attachmentList.forEach(System.out::println);
-  }
-}