package me.zhengjie.rest; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import me.zhengjie.aop.log.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; import java.util.HashMap; import java.util.Map; /** * @author 郑杰 * @date 2018/09/20 14:13:32 */ @RestController @RequestMapping("/api/pictures") @Api(tags = "工具:免费图床管理") public class PictureController { private final PictureService pictureService; public PictureController(PictureService pictureService) { this.pictureService = pictureService; } @Log("查询图片") @PreAuthorize("@el.check('pictures:list')") @GetMapping @ApiOperation("查询图片") public ResponseEntity getRoles(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.getUsername(); Picture picture = pictureService.upload(file,userName); Map map = new HashMap<>(3); map.put("errno",0); map.put("id",picture.getId()); map.put("data",new String[]{picture.getUrl()}); return new ResponseEntity<>(map,HttpStatus.OK); } @Log("删除图片") @ApiOperation("删除图片") @PreAuthorize("@el.check('pictures:del')") @DeleteMapping(value = "/{id}") public ResponseEntity delete(@PathVariable Long id) { pictureService.delete(pictureService.findById(id)); return new ResponseEntity(HttpStatus.OK); } @Log("多选删除图片") @ApiOperation("多选删除图片") @PreAuthorize("@el.check('pictures:del')") @DeleteMapping public ResponseEntity deleteAll(@RequestBody Long[] ids) { pictureService.deleteAll(ids); return new ResponseEntity(HttpStatus.OK); } }