package com.dl.web.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; import com.dl.common.annotation.Log; import com.dl.common.constant.UserConstants; import com.dl.common.core.controller.BaseController; import com.dl.common.core.domain.PageQuery; import com.dl.common.core.domain.R; import com.dl.common.core.page.TableDataInfo; import com.dl.common.enums.BusinessType; import com.dl.common.utils.poi.ExcelUtil; import com.dl.system.domain.SysPost; import com.dl.system.service.ISysPostService; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 岗位信息操作处理 * * @author Lion Li */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/system/post") public class SysPostController extends BaseController { private final ISysPostService postService; /** * 获取岗位列表 */ @SaCheckPermission("system:post:list") @GetMapping("/list") public TableDataInfo list(SysPost post, PageQuery pageQuery) { return postService.selectPagePostList(post, pageQuery); } /** * 导出岗位列表 */ @Log(title = "岗位管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:post:export") @PostMapping("/export") public void export(SysPost post, HttpServletResponse response) { List list = postService.selectPostList(post); ExcelUtil.exportExcel(list, "岗位数据", SysPost.class, response); } /** * 根据岗位编号获取详细信息 * * @param postId 岗位ID */ @SaCheckPermission("system:post:query") @GetMapping(value = "/{postId}") public R getInfo(@PathVariable String postId) { return R.ok(postService.selectPostById(postId)); } /** * 新增岗位 */ @SaCheckPermission("system:post:add") @Log(title = "岗位管理", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated @RequestBody SysPost post) { if (!postService.checkPostNameUnique(post)) { return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } else if (!postService.checkPostCodeUnique(post)) { return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } return toAjax(postService.insertPost(post)); } /** * 修改岗位 */ @SaCheckPermission("system:post:edit") @Log(title = "岗位管理", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated @RequestBody SysPost post) { if (!postService.checkPostNameUnique(post)) { return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } else if (!postService.checkPostCodeUnique(post)) { return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } return toAjax(postService.updatePost(post)); } /** * 删除岗位 * * @param postIds 岗位ID串 */ @SaCheckPermission("system:post:remove") @Log(title = "岗位管理", businessType = BusinessType.DELETE) @DeleteMapping("/{postIds}") public R remove(@PathVariable String[] postIds) { return toAjax(postService.deletePostByIds(postIds)); } /** * 获取岗位选择框列表 */ @GetMapping("/optionselect") public R> optionselect() { List posts = postService.selectPostAll(); return R.ok(posts); } }