Просмотр исходного кода

'调整位置到通用controller'

Althars123 4 лет назад
Родитель
Сommit
4dc5f2afae

+ 135 - 62
hzgzpt-admin/src/main/java/com/miaxis/system/controller/common/CommonController.java

@@ -1,13 +1,20 @@
 package com.miaxis.system.controller.common;
 
+import com.miaxis.common.aliyunOSS.AliyunConfig;
+import com.miaxis.common.aliyunOSS.AliyunUpload;
+import com.miaxis.common.annotation.Log;
 import com.miaxis.common.config.MiaxisConfig;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.enums.BusinessTypeEnum;
+import com.miaxis.common.enums.FileUploadTypeEnum;
+import com.miaxis.common.exception.CustomException;
+import com.miaxis.common.utils.EnumUtils;
 import com.miaxis.common.utils.StringUtils;
-import com.miaxis.common.utils.file.FileUploadUtils;
 import com.miaxis.common.utils.file.FileUtils;
+import com.miaxis.file.domain.FileInfo;
+import com.miaxis.file.service.IFileInfoService;
 import com.miaxis.framework.config.ServerConfig;
-import com.miaxis.system.dto.common.UploadFileDTO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -22,6 +29,9 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 /**
  * 通用请求处理
@@ -37,73 +47,108 @@ public class CommonController
     @Autowired
     private ServerConfig serverConfig;
 
-    /**
-     * 通用下载请求
-     *
-     * @param fileName 文件名称
-     * @param delete 是否删除
-     */
-    @GetMapping("common/download")
-    @ApiOperation("通用下载请求")
-    public void fileDownload(
-            @ApiParam(name = "fileName", value = "文件名称")
-            @RequestParam(name = "fileName", required = true) String fileName,
-            @ApiParam(name = "delete", value = "是否删除")
-            @RequestParam(name = "delete", required = true) Boolean delete,
-            HttpServletResponse response,
-            HttpServletRequest request)
-    {
-        try
-        {
-            if (!FileUtils.isValidFilename(fileName))
-            {
-                throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
-            }
-            String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
-            String filePath = MiaxisConfig.getDownloadPath() + fileName;
-
-            response.setCharacterEncoding("utf-8");
-            response.setContentType("multipart/form-data");
-            response.setHeader("Content-Disposition",
-                    "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, realFileName));
-            FileUtils.writeBytes(filePath, response.getOutputStream());
-            if (delete)
-            {
-                FileUtils.deleteFile(filePath);
-            }
-        }
-        catch (Exception e)
-        {
-            log.error("下载文件失败", e);
-        }
-    }
+    @Autowired
+    private IFileInfoService fileInfoService;
+
+
 
     /**
-     * 通用上传请求
+     * 上传文件
      */
-    @PostMapping("/common/upload")
+    @Log(title = "上传文件", businessType = BusinessTypeEnum.INSERT)
+    @PostMapping(Constants.OPEN_PREFIX+"/common/file")
     @ApiOperation("通用上传请求")
-    public Response<UploadFileDTO> uploadFile(MultipartFile file) throws Exception
-    {
-        try
-        {
-            // 上传文件路径
-            String filePath = MiaxisConfig.getUploadPath();
-            // 上传并返回新文件名称
-            String fileName = FileUploadUtils.upload(filePath, file);
-            String url = serverConfig.getUrl() + fileName;
-            UploadFileDTO uploadFileDTO = new UploadFileDTO();
-            uploadFileDTO.setFileName(fileName);
-            uploadFileDTO.setUrl(url);
-
-            return Response.success(uploadFileDTO);
-        }
-        catch (Exception e)
-        {
-            return Response.error().setMsg(e.getMessage());
+    public Response<FileInfo> updateload(MultipartFile file, Integer fileType) throws IOException {
+        FileUploadTypeEnum fileUploadTypeEnum = getPathByType(fileType);
+        String originalFilename = file.getOriginalFilename();
+        //获取最后一个.的位置
+        int lastIndexOf = originalFilename.lastIndexOf(".");
+        //获取文件的后缀名
+        String suffix = originalFilename.substring(lastIndexOf);
+        if (!validateFileSuffix(suffix,fileUploadTypeEnum)){
+            throw new CustomException("文件类型不合法");
         }
+        //存储的文件名
+        String storagefileName = System.currentTimeMillis() + suffix;
+        String savePath = AliyunConfig.GZPT_PATH
+                + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) +"/"+
+                fileUploadTypeEnum.getFileType() +"/";
+        String fileUrl = AliyunUpload.uploadForStream(file.getInputStream(), savePath, storagefileName);
+        FileInfo fileInfo = new FileInfo();
+        fileInfo.setFileType(fileUploadTypeEnum.getFileType());
+        fileInfo.setFilePath(savePath+storagefileName);
+        fileInfo.setFileUrl(fileUrl);
+        fileInfoService.save(fileInfo);
+        return Response.success(fileInfo);
     }
 
+//    /**
+//     * 通用下载请求
+//     *
+//     * @param fileName 文件名称
+//     * @param delete 是否删除
+//     */
+//    @GetMapping("common/download")
+//    @ApiOperation("通用下载请求")
+//    public void fileDownload(
+//            @ApiParam(name = "fileName", value = "文件名称")
+//            @RequestParam(name = "fileName", required = true) String fileName,
+//            @ApiParam(name = "delete", value = "是否删除")
+//            @RequestParam(name = "delete", required = true) Boolean delete,
+//            HttpServletResponse response,
+//            HttpServletRequest request)
+//    {
+//        try
+//        {
+//            if (!FileUtils.isValidFilename(fileName))
+//            {
+//                throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
+//            }
+//            String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
+//            String filePath = MiaxisConfig.getDownloadPath() + fileName;
+//
+//            response.setCharacterEncoding("utf-8");
+//            response.setContentType("multipart/form-data");
+//            response.setHeader("Content-Disposition",
+//                    "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, realFileName));
+//            FileUtils.writeBytes(filePath, response.getOutputStream());
+//            if (delete)
+//            {
+//                FileUtils.deleteFile(filePath);
+//            }
+//        }
+//        catch (Exception e)
+//        {
+//            log.error("下载文件失败", e);
+//        }
+//    }
+
+//    /**
+//     * 通用上传请求
+//     */
+//    @PostMapping("/common/upload")
+//    @ApiOperation("通用上传请求")
+//    public Response<UploadFileDTO> uploadFile(MultipartFile file) throws Exception
+//    {
+//        try
+//        {
+//            // 上传文件路径
+//            String filePath = MiaxisConfig.getUploadPath();
+//            // 上传并返回新文件名称
+//            String fileName = FileUploadUtils.upload(filePath, file);
+//            String url = serverConfig.getUrl() + fileName;
+//            UploadFileDTO uploadFileDTO = new UploadFileDTO();
+//            uploadFileDTO.setFileName(fileName);
+//            uploadFileDTO.setUrl(url);
+//
+//            return Response.success(uploadFileDTO);
+//        }
+//        catch (Exception e)
+//        {
+//            return Response.error().setMsg(e.getMessage());
+//        }
+//    }
+
     /**
      * 本地资源通用下载
      */
@@ -126,4 +171,32 @@ public class CommonController
                 "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, downloadName));
         FileUtils.writeBytes(downloadPath, response.getOutputStream());
     }
+
+
+    private Boolean validateFileSuffix(String originalFilenamefile, FileUploadTypeEnum fileUploadTypeEnum) {
+        if (fileUploadTypeEnum == null){
+            throw new CustomException("fileType参数不合法");
+        }
+        if (StringUtils.isEmpty(originalFilenamefile)){
+            throw new CustomException("文件名不合法");
+        }
+        String[] allowSuffixs = fileUploadTypeEnum.getSuffix();
+        for(String suffix : allowSuffixs){
+            String fileSuffix = "."+suffix;
+            if (originalFilenamefile.equals(fileSuffix)){
+                return true;
+            }
+        }
+        return false;
+
+    }
+
+    private FileUploadTypeEnum getPathByType(Integer fileType) {
+        if (fileType == null){
+            throw new CustomException("文件类型不能为空");
+        }
+        return (FileUploadTypeEnum) EnumUtils.getEnumEntityByCode(FileUploadTypeEnum.class, fileType);
+
+    }
+
 }

+ 7 - 7
hzgzpt-common/src/main/java/com/miaxis/common/enums/FileUploadTypeEnum.java

@@ -8,18 +8,18 @@ import com.miaxis.common.utils.file.MimeTypeUtils;
  */
 public enum FileUploadTypeEnum
 {
-    REPORT(1, "/report/", MimeTypeUtils.IMAGE_EXTENSION, "举报图片"),
-    OTHERS(99, "/others/", MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, "其他文件");
+    REPORT(1, "report", MimeTypeUtils.IMAGE_EXTENSION, "举报图片"),
+    OTHERS(99, "others", MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, "其他文件");
 
     private final Integer code;
-    private final String contentPath;//目录
+    private final String fileType;//文件类型
     private final String[] suffix;//后缀
     private final String info;
 
-    FileUploadTypeEnum(Integer code, String contentPath, String[] suffix, String info)
+    FileUploadTypeEnum(Integer code, String fileType, String[] suffix, String info)
     {
         this.code = code;
-        this.contentPath = contentPath;
+        this.fileType = fileType;
         this.suffix = suffix;
         this.info = info;
     }
@@ -34,9 +34,9 @@ public enum FileUploadTypeEnum
         return info;
     }
 
-    public String getContentPath()
+    public String getFileType()
     {
-        return this.contentPath;
+        return this.fileType;
     }
 
     public String[] getSuffix()

+ 0 - 164
hzgzpt-service/src/main/java/com/miaxis/file/controller/FileInfoController.java

@@ -1,164 +0,0 @@
-package com.miaxis.file.controller;
-
-import com.miaxis.common.aliyunOSS.AliyunConfig;
-import com.miaxis.common.aliyunOSS.AliyunUpload;
-import com.miaxis.common.annotation.Log;
-import com.miaxis.common.core.controller.BaseController;
-import com.miaxis.common.core.domain.Response;
-import com.miaxis.common.core.page.ResponsePageInfo;
-import com.miaxis.common.enums.BusinessTypeEnum;
-import com.miaxis.common.enums.FileUploadTypeEnum;
-import com.miaxis.common.exception.CustomException;
-import com.miaxis.common.utils.EnumUtils;
-import com.miaxis.common.utils.StringUtils;
-import com.miaxis.common.utils.poi.ExcelUtil;
-import com.miaxis.file.domain.FileInfo;
-import com.miaxis.file.service.IFileInfoService;
-import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-/**
- * 【文件】Controller
- *
- * @author miaxis
- * @date 2021-01-22
- */
-@RestController
-@RequestMapping("/file/info")
-@Api(tags={"【公共-文件服务】"})
-public class FileInfoController extends BaseController{
-    @Autowired
-    private IFileInfoService fileInfoService;
-
-
-
-    /**
-     * 上传文件
-     */
-    @Log(title = "上传文件", businessType = BusinessTypeEnum.INSERT)
-    @PostMapping
-    @ApiOperation("上传文件")
-    public Response<FileInfo> updateload(MultipartFile file, Integer fileType) throws IOException {
-        FileUploadTypeEnum fileUploadTypeEnum = getPathByType(fileType);
-        String originalFilename = file.getOriginalFilename();
-        //获取最后一个.的位置
-        int lastIndexOf = originalFilename.lastIndexOf(".");
-        //获取文件的后缀名
-        String suffix = originalFilename.substring(lastIndexOf);
-        if (!validateFileSuffix(suffix,fileUploadTypeEnum)){
-            throw new CustomException("文件类型不合法");
-        }
-        //存储的文件名
-        String storagefileName = System.currentTimeMillis() + suffix;
-        String savePath = AliyunConfig.GZPT_PATH
-                + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) +fileUploadTypeEnum.getContentPath();
-        String fileUrl = AliyunUpload.uploadForStream(file.getInputStream(), savePath, storagefileName);
-        FileInfo fileInfo = new FileInfo();
-        fileInfo.setFilePath(savePath+storagefileName);
-        fileInfo.setFileUrl(fileUrl);
-        fileInfoService.save(fileInfo);
-        return Response.success(fileInfo);
-    }
-
-    private Boolean validateFileSuffix(String originalFilenamefile, FileUploadTypeEnum fileUploadTypeEnum) {
-        if (fileUploadTypeEnum == null){
-            throw new CustomException("fileType参数不合法");
-        }
-        if (StringUtils.isEmpty(originalFilenamefile)){
-            throw new CustomException("文件名不合法");
-        }
-        String[] allowSuffixs = fileUploadTypeEnum.getSuffix();
-        for(String suffix : allowSuffixs){
-            String fileSuffix = "."+suffix;
-            if (originalFilenamefile.equals(fileSuffix)){
-                return true;
-            }
-        }
-        return false;
-
-    }
-
-    private FileUploadTypeEnum getPathByType(Integer fileType) {
-        if (fileType == null){
-            throw new CustomException("文件类型不能为空");
-        }
-        return (FileUploadTypeEnum) EnumUtils.getEnumEntityByCode(FileUploadTypeEnum.class, fileType);
-
-    }
-
-    /**
-     * 查询文件列表
-     */
-    @PreAuthorize("@ss.hasPermi('file:info:list')")
-    @GetMapping("/list")
-    @ApiOperation("查询文件列表")
-        @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
-    })
-    public ResponsePageInfo<FileInfo> list(@ModelAttribute FileInfo fileInfo){
-        startPage();
-        List<FileInfo> list = fileInfoService.selectFileInfoList(fileInfo);
-        return toResponsePageInfo(list);
-    }
-
-    /**
-     * 导出文件列表
-     */
-    @PreAuthorize("@ss.hasPermi('file:info:export')")
-    @Log(title = "文件", businessType = BusinessTypeEnum.EXPORT)
-    @GetMapping("/export")
-    @ApiOperation("导出文件列表Excel")
-    public Response<String> export(@ModelAttribute FileInfo fileInfo){
-        List<FileInfo> list = fileInfoService.selectFileInfoList(fileInfo);
-        ExcelUtil<FileInfo> util = new ExcelUtil<FileInfo>(FileInfo.class);
-        return util.exportExcel(list, "info");
-    }
-
-    /**
-     * 获取文件详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('file:info:query')")
-    @GetMapping(value = "/{fileId}")
-    @ApiOperation("获取文件详细信息")
-    public Response<FileInfo> getInfo(
-            @ApiParam(name = "fileId", value = "文件参数", required = true)
-            @PathVariable("fileId") Long fileId
-    ){
-        return Response.success(fileInfoService.getById(fileId));
-    }
-
-    /**
-     * 修改文件
-     */
-    @PreAuthorize("@ss.hasPermi('file:info:edit')")
-    @Log(title = "文件", businessType = BusinessTypeEnum.UPDATE)
-    @PutMapping
-    @ApiOperation("修改文件")
-    public Response<Integer> edit(@RequestBody FileInfo fileInfo){
-        return toResponse(fileInfoService.updateById(fileInfo) ? 1 : 0);
-    }
-
-    /**
-     * 删除文件
-     */
-    @PreAuthorize("@ss.hasPermi('file:info:remove')")
-    @Log(title = "文件", businessType = BusinessTypeEnum.DELETE)
-	@DeleteMapping("/{fileIds}")
-    @ApiOperation("删除文件")
-    public  Response<Integer> remove(
-            @ApiParam(name = "fileIds", value = "文件ids参数", required = true)
-            @PathVariable Long[] fileIds
-    ){
-        return toResponse(fileInfoService.removeByIds(Arrays.asList(fileIds)) ? 1 : 0);
-    }
-}

+ 14 - 8
hzgzpt-service/src/main/java/com/miaxis/file/domain/FileInfo.java

@@ -1,17 +1,15 @@
 package com.miaxis.file.domain;
 
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.miaxis.common.annotation.Excel;
-import com.miaxis.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
+import com.miaxis.common.annotation.Excel;
 import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
 /**
  * 文件对象 file_info
  *
@@ -35,6 +33,14 @@ public class FileInfo extends BaseBusinessEntity{
     @ApiModelProperty(value = "顺序")
     private Long seq;
 
+    /** 文件业务类型 */
+    @Excel(name = "文件业务类型")
+    @TableField("file_type")
+    @ApiModelProperty(value = "文件业务类型")
+    private String fileType;
+
+
+
     /** 文件url(访问地址) */
     @Excel(name = "文件url(访问地址)")
     @TableField("file_url")

+ 2 - 0
hzgzpt-service/src/main/resources/mapper/file/FileInfoMapper.xml

@@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="FileInfo" id="FileInfoResult">
         <result property="fileId"    column="file_id"    />
         <result property="seq"    column="seq"    />
+        <result property="fileType"    column="file_type"    />
         <result property="fileUrl"    column="file_url"    />
         <result property="filePath"    column="file_path"    />
         <result property="createTime"    column="create_time"    />
@@ -21,6 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectFileInfoVo"/>
         <where>
             <if test="seq != null "> and seq = #{seq}</if>
+            <if test="fileType != null  and fileType != ''"> and file_type = #{fileType}</if>
             <if test="fileUrl != null  and fileUrl != ''"> and file_url = #{fileUrl}</if>
             <if test="filePath != null  and filePath != ''"> and file_path = #{filePath}</if>
         </where>