package cc.mrbird.febs.server.hr.controller; import cc.mrbird.febs.common.core.entity.FebsResponse; import cc.mrbird.febs.common.core.entity.QueryRequest; import cc.mrbird.febs.common.core.exception.FebsException; import cc.mrbird.febs.common.core.utils.FebsUtil; import cc.mrbird.febs.server.hr.entity.FilesUpload; import cc.mrbird.febs.server.hr.service.IFilesUploadService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.util.Map; /** * 文件上传 Controller * * @author yz * @date 2021-02-05 22:51:00 */ @Slf4j @Validated @RestController @RequestMapping("filesUpload") @RequiredArgsConstructor public class FilesUploadController { private final IFilesUploadService filesUploadService; @GetMapping @PreAuthorize("hasAuthority('filesUpload:list')") public FebsResponse getAllFilesUploads(FilesUpload filesUpload) { return new FebsResponse().data(filesUploadService.findFilesUploads(filesUpload)); } @GetMapping("list") @PreAuthorize("hasAuthority('filesUpload:list')") public FebsResponse filesUploadList(QueryRequest request, FilesUpload filesUpload) { Map dataTable = FebsUtil.getDataTable(this.filesUploadService.findFilesUploads(request, filesUpload)); return new FebsResponse().data(dataTable); } @PostMapping @PreAuthorize("hasAuthority('filesUpload:add')") public void addFilesUpload(@NotNull(message = "{required}") Long folderid, MultipartFile file, HttpServletRequest request) throws FebsException { try { this.filesUploadService.createFilesUpload(folderid, file); } catch (Exception e) { String message = "上传文件失败"; log.error(message, e); throw new FebsException(message); } } @PostMapping("/download") @PreAuthorize("hasAuthority('filesUpload:download')") public void download(@NotBlank(message = "{required}") String fileids,HttpServletRequest request, HttpServletResponse response) throws FebsException { try { this.filesUploadService.download(fileids,request,response); } catch (Exception e) { String message = "下载文件失败"; log.error(message, e); throw new FebsException(message); } } @DeleteMapping @PreAuthorize("hasAuthority('filesUpload:delete')") public void deleteFilesUpload(@NotBlank(message = "{required}") String fileids) throws FebsException { try { this.filesUploadService.deleteFilesUpload(fileids); } catch (Exception e) { String message = "删除FilesUpload失败"; log.error(message, e); throw new FebsException(message); } } @PutMapping @PreAuthorize("hasAuthority('filesUpload:update')") public void updateFilesUpload(FilesUpload filesUpload) throws FebsException { try { this.filesUploadService.updateFilesUpload(filesUpload); } catch (Exception e) { String message = "修改FilesUpload失败"; log.error(message, e); throw new FebsException(message); } } }