package com.fdkankan.fusion.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fdkankan.fusion.common.ResultCode; import com.fdkankan.fusion.common.ResultData; import com.fdkankan.fusion.common.util.Openai; import com.fdkankan.fusion.common.util.UploadToOssUtil; import com.fdkankan.fusion.config.FusionConfig; import com.fdkankan.fusion.entity.CaseFiles; import com.fdkankan.fusion.entity.CaseFilesType; import com.fdkankan.fusion.entity.CaseInquestInfo; import com.fdkankan.fusion.entity.CaseNumEntity; import com.fdkankan.fusion.exception.BusinessException; import com.fdkankan.fusion.request.AiParam; import com.fdkankan.fusion.response.FloorPathVo; import com.fdkankan.fusion.service.ICaseFilesService; import com.fdkankan.fusion.service.ICaseFilesTypeService; import com.fdkankan.fusion.service.ICaseInquestInfoService; import com.fdkankan.fusion.service.ICaseNumService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import scala.Int; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** *

* 前端控制器 *

* * @author * @since 2024-12-10 */ @RestController @RequestMapping("/ai") @Slf4j public class AiController { @Autowired FusionConfig fusionConfig; @PostMapping("/getByImage") public ResultData getByImage(@RequestBody AiParam param){ if(StringUtils.isBlank(param.getImageUrl())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } try { return ResultData.ok(Openai.gptVision(param.getImageUrl(),fusionConfig.getAiUrl(),null)); } catch (Exception e) { log.info("Openai-error:{}",e); throw new BusinessException(ResultCode.AI_ERROR); } } @Autowired ICaseNumService caseNumService; @GetMapping("/getFloor/{caseId}") public ResultData getFloor(@PathVariable Integer caseId){ String foorPath = "/oss/4dkankan/scene_view_data/%s/user"; String fileName = "cad"; String extName = "jpg"; List byCaseId = caseNumService.getByCaseId(caseId); List pathVos = new ArrayList<>(); for (CaseNumEntity caseNumEntity : byCaseId) { if(caseNumEntity.getNumType() == 3){ continue; } FloorPathVo pathVo = new FloorPathVo(); pathVo.setNum(caseNumEntity.getNum()); String path = String.format(foorPath, caseNumEntity.getNum()); File file = new File(path); File[] files = file.listFiles(); if(files == null || files.length <=0){ continue; } for (File file1 : files) { if(file1.getName().contains(fileName) && file1.getName().contains(extName)){ pathVo.getUrls().add(file1.getPath().replace("4dkankan/","")); } } pathVos.add(pathVo); } return ResultData.ok(pathVos); } // @Autowired // ICaseFilesService caseFilesService; // @Autowired // ICaseFilesTypeService caseFilesTypeService; // // @GetMapping("/getFloor/{caseId}") // public ResultData getFloor(@PathVariable Integer caseId){ // List pathVos = new ArrayList<>(); // CaseFilesType caseFilesType = caseFilesTypeService.getByName("平面图"); // if(caseFilesType == null){ // return ResultData.ok(pathVos); // } // List list = caseFilesService.getByCaseIdAndTypeId(caseId,caseFilesType.getFilesTypeId()); // for (CaseFiles caseFiles : list) { // FloorPathVo pathVo = new FloorPathVo(); // pathVo.setNum(caseFiles.getFilesTitle()); // pathVo.getUrls().add(caseFiles.getFilesUrl()); // pathVos.add(pathVo); // } // // return ResultData.ok(pathVos); // } }