/* * Copyright 2019-2020 Zheng Jie * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package me.zhengjie.rest; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.Log; import me.zhengjie.domain.Picture; import me.zhengjie.service.PictureService; import me.zhengjie.service.dto.PictureQueryCriteria; import me.zhengjie.utils.SecurityUtils; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @author 郑杰 * @date 2018/09/20 14:13:32 */ @RestController @RequiredArgsConstructor @RequestMapping("/api/pictures") @Api(tags = "工具:免费图床管理") public class PictureController { private final PictureService pictureService; @Log("查询图片") @PreAuthorize("@el.check('pictures:list')") @GetMapping @ApiOperation("查询图片") public ResponseEntity query(PictureQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(pictureService.queryAll(criteria,pageable),HttpStatus.OK); } @Log("导出数据") @ApiOperation("导出数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('pictures:list')") public void download(HttpServletResponse response, PictureQueryCriteria criteria) throws IOException { pictureService.download(pictureService.queryAll(criteria), response); } @Log("上传图片") @PreAuthorize("@el.check('pictures:add')") @PostMapping @ApiOperation("上传图片") public ResponseEntity upload(@RequestParam MultipartFile file){ String userName = SecurityUtils.getCurrentUsername(); Picture picture = pictureService.upload(file,userName); return new ResponseEntity<>(picture,HttpStatus.OK); } @Log("同步图床数据") @ApiOperation("同步图床数据") @PostMapping(value = "/synchronize") public ResponseEntity synchronize(){ pictureService.synchronize(); return new ResponseEntity<>(HttpStatus.OK); } @Log("多选删除图片") @ApiOperation("多选删除图片") @PreAuthorize("@el.check('pictures:del')") @DeleteMapping public ResponseEntity delete(@RequestBody Long[] ids) { pictureService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } }