package com.ruoyi.mock.controller; import com.ruoyi.framework.web.domain.R; import com.ruoyi.mock.dto.DataCheckRequest; import com.ruoyi.mock.dto.DataGenerateRequest; import com.ruoyi.mock.service.DataCheckService; import com.ruoyi.mock.service.DataGenerateService; import com.ruoyi.mock.vo.DataCheckResult; import com.ruoyi.mock.vo.DataCheckResult.CheckItem; import com.ruoyi.mock.vo.DataGenerateResult; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/mock") @RequiredArgsConstructor @Tag(name = "数据模拟") public class DataCheckController { private final DataCheckService dataCheckService; private final DataGenerateService dataGenerateService; @PostMapping("/dataCheck") @Operation(summary = "检测基础数据") public R dataCheck(@RequestBody DataCheckRequest request) { DataCheckResult result = dataCheckService.check(request); return R.ok(result); } @PostMapping("/generate") @Operation(summary = "AI生成模拟数据") public R generate(@RequestBody DataGenerateRequest request) { // 先校验基础数据 DataCheckRequest checkRequest = new DataCheckRequest(); checkRequest.setModules(request.getModules()); DataCheckResult checkResult = dataCheckService.check(checkRequest); boolean allPassed = checkResult.getItems().stream().allMatch(CheckItem::isPassed); if (!allPassed) { DataGenerateResult failResult = new DataGenerateResult(); failResult.setStatus("CHECK_FAILED"); failResult.setCheckResult(checkResult); return R.fail(failResult, "基础数据不足,请先补充后再生成"); } DataGenerateResult result = dataGenerateService.generate(request); return R.ok(result); } }