yeg
2026-09-09 a7e0026b5da9082dc6729aa2e610fec167340d9f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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) {}
}