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<DataCheckResult> 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);
|
}
|
}
|