package com.oying.modules.system.rest; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.oying.modules.system.domain.Job; import com.oying.modules.system.domain.dto.JobQueryCriteria; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import com.oying.annotation.Log; import com.oying.exception.BadRequestException; import com.oying.modules.system.service.JobService; 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-03-29 */ @RestController @RequiredArgsConstructor @Api(tags = "系统:岗位管理") @RequestMapping("/api/job") public class JobController { private final JobService jobService; private static final String ENTITY_NAME = "job"; @ApiOperation("导出岗位数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('job:list')") public void exportJob(HttpServletResponse response, JobQueryCriteria criteria) throws IOException { jobService.download(jobService.queryAll(criteria), response); } @ApiOperation("查询岗位") @GetMapping @PreAuthorize("@el.check('job:list','user:list')") public ResponseEntity> queryJob(JobQueryCriteria criteria){ Page page = new Page<>(criteria.getPage(), criteria.getSize()); return new ResponseEntity<>(jobService.queryAll(criteria, page),HttpStatus.OK); } @Log("新增岗位") @ApiOperation("新增岗位") @PostMapping @PreAuthorize("@el.check('job:add')") public ResponseEntity createJob(@Validated @RequestBody Job resources){ if (resources.getId() != null) { throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID"); } jobService.create(resources); return new ResponseEntity<>(HttpStatus.CREATED); } @Log("修改岗位") @ApiOperation("修改岗位") @PutMapping @PreAuthorize("@el.check('job:edit')") public ResponseEntity updateJob(@Validated(Job.Update.class) @RequestBody Job resources){ jobService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @Log("删除岗位") @ApiOperation("删除岗位") @DeleteMapping @PreAuthorize("@el.check('job:del')") public ResponseEntity deleteJob(@RequestBody Set ids){ // 验证是否被用户关联 jobService.verification(ids); jobService.delete(ids); return new ResponseEntity<>(HttpStatus.OK); } }