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.util.servlet.ServletUtils;
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.FileRespVO;
import com.win.module.infra.controller.file.vo.file.FileUploadReqVO;
import com.win.module.infra.convert.file.FileConvert;
import com.win.module.infra.dal.dataobject.file.FileDO;
import com.win.module.infra.service.file.FileService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
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 org.springframework.http.HttpStatus;
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.HttpServletResponse;
import javax.validation.Valid;
import java.util.List;
import static com.win.framework.common.pojo.CommonResult.success;
@ -40,6 +44,9 @@ public class FileController {
@Resource
private FileService fileService;
@Resource
private AdminUserApi adminUserApi;
@PostMapping("/upload")
@Operation(summary = "上传文件")
@OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要
@ -89,4 +96,20 @@ public class FileController {
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)
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.factory.Mappers;
import java.util.List;
@Mapper
public interface FileConvert {
@ -15,4 +17,6 @@ public interface FileConvert {
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.mybatis.core.mapper.BaseMapperX;
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.dal.dataobject.file.FileDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 文件操作 Mapper
*
@ -23,4 +26,11 @@ public interface FileMapper extends BaseMapperX<FileDO> {
.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;
import com.win.module.infra.controller.file.vo.file.FilePageReqVO;
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 java.util.List;
/**
* 文件 Service 接口
*
@ -19,6 +22,12 @@ public interface FileService {
*/
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.file.core.client.FileClient;
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.dal.dataobject.file.FileDO;
import com.win.module.infra.dal.dataobject.trends.TrendsDO;
@ -16,6 +17,7 @@ import lombok.SneakyThrows;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS;
@ -42,6 +44,11 @@ public class FileServiceImpl implements FileService {
return fileMapper.selectPage(pageReqVO);
}
@Override
public List<FileDO> getFileList(FileListReqVO listReqVO) {
return fileMapper.selectList(listReqVO);
}
@Override
@SneakyThrows
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.setTableId(tableId);
trendsDO.setType(TrendsTypeEnum.UPLOAD_ANNEX.getType());
trendsDO.setContent("上传了附件");
trendsDO.setContent(name);
trendsMapper.insert(trendsDO);
return url;
}
@ -95,7 +102,7 @@ public class FileServiceImpl implements FileService {
trendsDO.setTableName(file.getTableName());
trendsDO.setTableId(file.getTableId());
trendsDO.setType(TrendsTypeEnum.DELETE_ANNEX.getType());
trendsDO.setContent("删除了附件");
trendsDO.setContent(file.getName());
trendsMapper.insert(trendsDO);
// 删除记录
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
public void createTrends(TrendsCreateReqDTO createReqDTO) {
TrendsDO trends = TrendsConvert.INSTANCE.convert(createReqDTO);
trends.setCreator(createReqDTO.getCreator());
trendsMapper.insert(trends);
}

Loading…
Cancel
Save