package com.zy.ai.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.annotations.ManagerAuth; import com.core.common.R; import com.zy.ai.entity.LlmCallLog; import com.zy.ai.service.LlmCallLogService; import com.zy.common.web.BaseController; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/ai/llm/log") @RequiredArgsConstructor public class LlmCallLogController extends BaseController { private final LlmCallLogService llmCallLogService; @GetMapping("/list/auth") @ManagerAuth public R list(@RequestParam(defaultValue = "1") Integer curr, @RequestParam(defaultValue = "20") Integer limit, @RequestParam(required = false) String scene, @RequestParam(required = false) Integer success, @RequestParam(required = false) Long routeId, @RequestParam(required = false) String traceId) { QueryWrapper wrapper = new QueryWrapper<>(); if (!isBlank(scene)) { wrapper.eq("scene", scene.trim()); } if (success != null) { wrapper.eq("success", success); } if (routeId != null) { wrapper.eq("route_id", routeId); } if (!isBlank(traceId)) { wrapper.eq("trace_id", traceId.trim()); } wrapper.orderBy(true, false, "id"); return R.ok(llmCallLogService.page(new Page<>(curr, limit), wrapper)); } @PostMapping("/delete/auth") @ManagerAuth public R delete(@RequestParam("id") Long id) { if (id == null) { return R.error("id不能为空"); } llmCallLogService.removeById(id); return R.ok(); } @PostMapping("/clear/auth") @ManagerAuth public R clear() { llmCallLogService.remove(new QueryWrapper()); return R.ok(); } private boolean isBlank(String s) { return s == null || s.trim().isEmpty(); } }