package com.battery.business.web; import java.util.List; import com.battery.business.service.TodoService; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; /** 待办列表接口;负责人身份由服务端从当前登录会话取得。 */ @RestController @RequestMapping("/system/todo") public class TodoController extends BaseController { private final TodoService service; public TodoController(TodoService service) { this.service = service; } @GetMapping("/list") @PreAuthorize("@ss.hasPermi('todo:list:query')") public AjaxResult list() { return success().put("rows", service.list(getUserId())); } @PostMapping @PreAuthorize("@ss.hasPermi('todo:list:add')") public AjaxResult create(@RequestBody CreateRequest request) { if (request == null || request.content() == null || request.content().trim().isEmpty() || request.ownerId() == null || request.ownerName() == null) return error("待办内容和负责人不能为空"); return success(service.create(request.content(), request.ownerId(), request.ownerName(), getUserId(), getUsername())); } @PutMapping("/{id}/handle") @PreAuthorize("@ss.hasPermi('todo:list:handle')") public AjaxResult handle(@PathVariable long id,@RequestBody HandleRequest request) { if (request == null || request.remark() == null || request.remark().trim().isEmpty()) return error("处理说明不能为空"); return service.handle(id,getUserId(),request.remark()) ? success() : error("待办不存在、已处理或无权处理"); } @DeleteMapping("/{id}") @PreAuthorize("@ss.hasPermi('todo:list:remove')") public AjaxResult remove(@PathVariable long id) { return service.remove(id,getUserId()) ? success() : error("待办不存在或无权删除"); } public record CreateRequest(String content, Long ownerId, String ownerName) {} public record HandleRequest(String remark) {} }