package com.ruoyi.web.controller.system;
|
|
import org.springframework.http.MediaType;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.system.service.ITestLiveService;
|
|
/** 测试控制台实时 REST/SSE 入口,仅负责鉴权和协议转发。 */
|
@RestController
|
@RequestMapping("/system/test")
|
public class TTestLiveController extends BaseController
|
{
|
private final ITestLiveService liveService;
|
public TTestLiveController(ITestLiveService liveService)
|
{ this.liveService = liveService; }
|
|
@PreAuthorize("@ss.hasPermi('system:test:query')")
|
@GetMapping("/{testId}/live-state")
|
public AjaxResult liveState(@PathVariable Long testId) { return success(liveService.current(testId)); }
|
|
/** 查询测试完整性问题和可追溯的历史异常事实。 */
|
@PreAuthorize("@ss.hasPermi('system:test:query')")
|
@GetMapping(value = "/{testId}/live", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
|
public SseEmitter live(@PathVariable Long testId) { return liveService.stream(testId); }
|
}
|