Browse Source

上传文件接口

master
刘忱 2 years ago
parent
commit
1895246241
  1. 27
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/file/FileController.java
  2. 18
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/file/vo/file/FileListReqVO.java
  3. 9
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/file/vo/file/FileRespVO.java
  4. 4
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/convert/file/FileConvert.java
  5. 10
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/dal/mysql/file/FileMapper.java
  6. 11
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/file/FileService.java
  7. 11
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/file/FileServiceImpl.java
  8. 1
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/trends/TrendsServiceImpl.java

27
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/file/FileController.java

@ -6,15 +6,18 @@ import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.servlet.ServletUtils; import com.win.framework.common.util.servlet.ServletUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.infra.controller.file.vo.file.FileListReqVO;
import com.win.module.infra.controller.file.vo.file.FilePageReqVO; import com.win.module.infra.controller.file.vo.file.FilePageReqVO;
import com.win.module.infra.controller.file.vo.file.FileRespVO; import com.win.module.infra.controller.file.vo.file.FileRespVO;
import com.win.module.infra.controller.file.vo.file.FileUploadReqVO; import com.win.module.infra.controller.file.vo.file.FileUploadReqVO;
import com.win.module.infra.convert.file.FileConvert; import com.win.module.infra.convert.file.FileConvert;
import com.win.module.infra.dal.dataobject.file.FileDO; import com.win.module.infra.dal.dataobject.file.FileDO;
import com.win.module.infra.service.file.FileService; import com.win.module.infra.service.file.FileService;
import io.swagger.v3.oas.annotations.tags.Tag; import com.win.module.system.api.user.AdminUserApi;
import io.swagger.v3.oas.annotations.Parameter; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -27,6 +30,7 @@ import javax.annotation.security.PermitAll;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
@ -40,6 +44,9 @@ public class FileController {
@Resource @Resource
private FileService fileService; private FileService fileService;
@Resource
private AdminUserApi adminUserApi;
@PostMapping("/upload") @PostMapping("/upload")
@Operation(summary = "上传文件") @Operation(summary = "上传文件")
@OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要 @OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要
@ -89,4 +96,20 @@ public class FileController {
return success(FileConvert.INSTANCE.convertPage(pageResult)); return success(FileConvert.INSTANCE.convertPage(pageResult));
} }
@GetMapping("/list")
@Operation(summary = "获得文件分页")
@PreAuthorize("@ss.hasPermission('infra:file:query')")
public CommonResult<List<FileRespVO>> getFilePage(@Valid FileListReqVO listVO) {
List<FileDO> listResult = fileService.getFileList(listVO);
List<FileRespVO> fileRespVOList = FileConvert.INSTANCE.convertList(listResult);
for(FileRespVO fileRespVO : fileRespVOList) {
AdminUserRespDTO user = adminUserApi.getUser(Long.parseLong(fileRespVO.getCreator()));
if(user != null) {
fileRespVO.setNickname(user.getNickname());
fileRespVO.setAvatar(user.getAvatar());
}
}
return success(fileRespVOList);
}
} }

18
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/file/vo/file/FileListReqVO.java

@ -0,0 +1,18 @@
package com.win.module.infra.controller.file.vo.file;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
@Schema(description = "管理后台 - 文件分页 Request VO")
@Data
@ToString(callSuper = true)
public class FileListReqVO {
@Schema(description = "表名", example = "infraTrends")
private String tableName;
@Schema(description = "表数据id", example = "9210")
private Long tableId;
}

9
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/file/vo/file/FileRespVO.java

@ -39,4 +39,13 @@ public class FileRespVO {
@Schema(description = "表数据id", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "表数据id", requiredMode = Schema.RequiredMode.REQUIRED)
private Long tableId; private Long tableId;
@Schema(description = "用户id")
private String creator;
@Schema(description = "用户昵称")
private String nickname;
@Schema(description = "用户头像")
private String avatar;
} }

4
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/convert/file/FileConvert.java

@ -6,6 +6,8 @@ import com.win.module.infra.dal.dataobject.file.FileDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper @Mapper
public interface FileConvert { public interface FileConvert {
@ -15,4 +17,6 @@ public interface FileConvert {
PageResult<FileRespVO> convertPage(PageResult<FileDO> page); PageResult<FileRespVO> convertPage(PageResult<FileDO> page);
List<FileRespVO> convertList(List<FileDO> list);
} }

10
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/dal/mysql/file/FileMapper.java

@ -3,10 +3,13 @@ package com.win.module.infra.dal.mysql.file;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.infra.controller.file.vo.file.FileListReqVO;
import com.win.module.infra.controller.file.vo.file.FilePageReqVO; import com.win.module.infra.controller.file.vo.file.FilePageReqVO;
import com.win.module.infra.dal.dataobject.file.FileDO; import com.win.module.infra.dal.dataobject.file.FileDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* 文件操作 Mapper * 文件操作 Mapper
* *
@ -23,4 +26,11 @@ public interface FileMapper extends BaseMapperX<FileDO> {
.orderByDesc(FileDO::getId)); .orderByDesc(FileDO::getId));
} }
default List<FileDO> selectList(FileListReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<FileDO>()
.eqIfPresent(FileDO::getTableName, reqVO.getTableName())
.eqIfPresent(FileDO::getTableId, reqVO.getTableId())
.orderByDesc(FileDO::getId));
}
} }

11
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/file/FileService.java

@ -1,9 +1,12 @@
package com.win.module.infra.service.file; package com.win.module.infra.service.file;
import com.win.module.infra.controller.file.vo.file.FilePageReqVO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.infra.controller.file.vo.file.FileListReqVO;
import com.win.module.infra.controller.file.vo.file.FilePageReqVO;
import com.win.module.infra.dal.dataobject.file.FileDO; import com.win.module.infra.dal.dataobject.file.FileDO;
import java.util.List;
/** /**
* 文件 Service 接口 * 文件 Service 接口
* *
@ -19,6 +22,12 @@ public interface FileService {
*/ */
PageResult<FileDO> getFilePage(FilePageReqVO pageReqVO); PageResult<FileDO> getFilePage(FilePageReqVO pageReqVO);
/**
* 列表查询
* @param listReqVO
* @return
*/
List<FileDO> getFileList(FileListReqVO listReqVO);
/** /**
* 保存文件并返回文件的访问路径 * 保存文件并返回文件的访问路径
* *

11
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/file/FileServiceImpl.java

@ -6,6 +6,7 @@ import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.io.FileUtils; import com.win.framework.common.util.io.FileUtils;
import com.win.framework.file.core.client.FileClient; import com.win.framework.file.core.client.FileClient;
import com.win.framework.file.core.utils.FileTypeUtils; import com.win.framework.file.core.utils.FileTypeUtils;
import com.win.module.infra.controller.file.vo.file.FileListReqVO;
import com.win.module.infra.controller.file.vo.file.FilePageReqVO; import com.win.module.infra.controller.file.vo.file.FilePageReqVO;
import com.win.module.infra.dal.dataobject.file.FileDO; import com.win.module.infra.dal.dataobject.file.FileDO;
import com.win.module.infra.dal.dataobject.trends.TrendsDO; import com.win.module.infra.dal.dataobject.trends.TrendsDO;
@ -16,6 +17,7 @@ import lombok.SneakyThrows;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; import static com.win.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS;
@ -42,6 +44,11 @@ public class FileServiceImpl implements FileService {
return fileMapper.selectPage(pageReqVO); return fileMapper.selectPage(pageReqVO);
} }
@Override
public List<FileDO> getFileList(FileListReqVO listReqVO) {
return fileMapper.selectList(listReqVO);
}
@Override @Override
@SneakyThrows @SneakyThrows
public String createFile(String name, String path, byte[] content, String tableName, Long tableId) { public String createFile(String name, String path, byte[] content, String tableName, Long tableId) {
@ -76,7 +83,7 @@ public class FileServiceImpl implements FileService {
trendsDO.setTableName(tableName); trendsDO.setTableName(tableName);
trendsDO.setTableId(tableId); trendsDO.setTableId(tableId);
trendsDO.setType(TrendsTypeEnum.UPLOAD_ANNEX.getType()); trendsDO.setType(TrendsTypeEnum.UPLOAD_ANNEX.getType());
trendsDO.setContent("上传了附件"); trendsDO.setContent(name);
trendsMapper.insert(trendsDO); trendsMapper.insert(trendsDO);
return url; return url;
} }
@ -95,7 +102,7 @@ public class FileServiceImpl implements FileService {
trendsDO.setTableName(file.getTableName()); trendsDO.setTableName(file.getTableName());
trendsDO.setTableId(file.getTableId()); trendsDO.setTableId(file.getTableId());
trendsDO.setType(TrendsTypeEnum.DELETE_ANNEX.getType()); trendsDO.setType(TrendsTypeEnum.DELETE_ANNEX.getType());
trendsDO.setContent("删除了附件"); trendsDO.setContent(file.getName());
trendsMapper.insert(trendsDO); trendsMapper.insert(trendsDO);
// 删除记录 // 删除记录
fileMapper.deleteById(id); fileMapper.deleteById(id);

1
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/trends/TrendsServiceImpl.java

@ -29,7 +29,6 @@ public class TrendsServiceImpl implements TrendsService {
@Override @Override
public void createTrends(TrendsCreateReqDTO createReqDTO) { public void createTrends(TrendsCreateReqDTO createReqDTO) {
TrendsDO trends = TrendsConvert.INSTANCE.convert(createReqDTO); TrendsDO trends = TrendsConvert.INSTANCE.convert(createReqDTO);
trends.setCreator(createReqDTO.getCreator());
trendsMapper.insert(trends); trendsMapper.insert(trends);
} }

Loading…
Cancel
Save