package com.battery.business.web;
|
|
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; }
|
/** 仅查询自己的待办,不开放按其他负责人 ID 查询。 */
|
@GetMapping("/list") @PreAuthorize("@ss.hasAnyPermi('todo:list:list,todo:list:query')")
|
public AjaxResult list() { return success().put("rows", service.list(getUserId())); }
|
/** 返回新增待办可选的启用用户。 */
|
@GetMapping("/owners") @PreAuthorize("@ss.hasPermi('todo:list:add')")
|
public AjaxResult owners() { return success(service.owners()); }
|
/** 校验负责人后创建,返回主键确认,不泄露别人待办的详情。 */
|
@PostMapping @PreAuthorize("@ss.hasPermi('todo:list:add')")
|
public AjaxResult create(@RequestBody CreateRequest request) {
|
if (request == null || request.ownerId() == null) return error("负责人不能为空");
|
return success(service.create(request.content(), request.ownerId(), getUserId(), getUsername()));
|
}
|
/** 仅负责人可处理自己的待办,已处理不能再次修改。 */
|
@PutMapping("/{id}/handle") @PreAuthorize("@ss.hasPermi('todo:list:handle')")
|
public AjaxResult complete(@PathVariable long id, @RequestBody(required = false) HandleRequest request) {
|
service.completeTodo(id, getUserId(), request == null ? null : request.remark()); return success();
|
}
|
/** 删除只作用于当前负责人自己的记录。 */
|
@DeleteMapping("/{id}") @PreAuthorize("@ss.hasPermi('todo:list:remove')")
|
public AjaxResult remove(@PathVariable long id) { service.remove(id, getUserId()); return success(); }
|
public record CreateRequest(String content, Long ownerId) {}
|
public record HandleRequest(String remark) {}
|
}
|