package com.oying.modules.maint.rest; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.oying.modules.maint.domain.App; import com.oying.modules.maint.domain.dto.AppQueryCriteria; import com.oying.modules.maint.service.AppService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import com.oying.annotation.Log; import com.oying.utils.PageResult; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Set; /** * @author Z * @date 2019-08-24 */ @RestController @RequiredArgsConstructor @Api(tags = "运维:应用管理") @RequestMapping("/api/app") public class AppController { private final AppService appService; @ApiOperation("导出应用数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('app:list')") public void exportApp(HttpServletResponse response, AppQueryCriteria criteria) throws IOException { appService.download(appService.queryAll(criteria), response); } @ApiOperation(value = "查询应用") @GetMapping @PreAuthorize("@el.check('app:list')") public ResponseEntity> queryApp(AppQueryCriteria criteria){ Page page = new Page<>(criteria.getPage(), criteria.getSize()); return new ResponseEntity<>(appService.queryAll(criteria, page),HttpStatus.OK); } @Log("新增应用") @ApiOperation(value = "新增应用") @PostMapping @PreAuthorize("@el.check('app:add')") public ResponseEntity createApp(@Validated @RequestBody App resources){ appService.create(resources); return new ResponseEntity<>(HttpStatus.CREATED); } @Log("修改应用") @ApiOperation(value = "修改应用") @PutMapping @PreAuthorize("@el.check('app:edit')") public ResponseEntity updateApp(@Validated @RequestBody App resources){ appService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @Log("删除应用") @ApiOperation(value = "删除应用") @DeleteMapping @PreAuthorize("@el.check('app:del')") public ResponseEntity deleteApp(@RequestBody Set ids){ appService.delete(ids); return new ResponseEntity<>(HttpStatus.OK); } }