package com.java110.api.controller.component; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.java110.api.controller.Result; import com.java110.dto.org.JobRank; import com.java110.intf.user.JobRankService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 职级管理控制器 * 提供 RESTful 风格的增删改查接口 */ @RestController @RequestMapping("/api/jobRank") public class JobRankController { @Autowired private JobRankService jobRankService; /** * 新增职级 */ @PostMapping public Result add(@RequestBody JobRank jobRank) { boolean save = jobRankService.save(jobRank); return save ? Result.success("新增成功") : Result.error("新增失败"); } /** * 修改职级 */ @PutMapping public Result update(@RequestBody JobRank jobRank) { if (jobRank.getId() == null) { return Result.error("ID不能为空"); } boolean update = jobRankService.updateById(jobRank); return update ? Result.success("修改成功") : Result.error("修改失败"); } /** * 删除职级(物理删除,逻辑删除可修改为更新 is_active 状态) */ @DeleteMapping("/{id}") public Result delete(@PathVariable Integer id) { boolean remove = jobRankService.removeById(id); return remove ? Result.success("删除成功") : Result.error("删除失败"); } /** * 逻辑删除(将状态改为无效) */ @PutMapping("/disable/{id}") public Result disable(@PathVariable Integer id) { JobRank jobRank = new JobRank(); jobRank.setId(id); jobRank.setIsActive(0); // 0 表示无效 boolean update = jobRankService.updateById(jobRank); return update ? Result.success("禁用成功") : Result.error("禁用失败"); } /** * 根据ID查询职级 */ @GetMapping("/{id}") public Result getById(@PathVariable Integer id) { JobRank jobRank = jobRankService.getById(id); return jobRank != null ? Result.success(jobRank) : Result.error("数据不存在"); } /** * 按组织编码查询职级列表 */ @GetMapping("/org/{orgCode}") public Result getByOrgCode(@PathVariable String orgCode) { List list = jobRankService.getByOrgCode(orgCode); return Result.success(list); } /** * 分页查询所有职级 * 示例:/api/jobRank?pageNum=1&pageSize=10 */ @GetMapping public Result page( @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize ) { IPage page = new Page<>(pageNum, pageSize); IPage resultPage = jobRankService.page(page); return Result.success(resultPage); } }