AiController.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.fdkankan.fusion.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.fdkankan.fusion.common.ResultCode;
  4. import com.fdkankan.fusion.common.ResultData;
  5. import com.fdkankan.fusion.common.util.Openai;
  6. import com.fdkankan.fusion.common.util.UploadToOssUtil;
  7. import com.fdkankan.fusion.config.FusionConfig;
  8. import com.fdkankan.fusion.entity.CaseFiles;
  9. import com.fdkankan.fusion.entity.CaseFilesType;
  10. import com.fdkankan.fusion.entity.CaseInquestInfo;
  11. import com.fdkankan.fusion.entity.CaseNumEntity;
  12. import com.fdkankan.fusion.exception.BusinessException;
  13. import com.fdkankan.fusion.request.AiParam;
  14. import com.fdkankan.fusion.response.FloorPathVo;
  15. import com.fdkankan.fusion.service.ICaseFilesService;
  16. import com.fdkankan.fusion.service.ICaseFilesTypeService;
  17. import com.fdkankan.fusion.service.ICaseInquestInfoService;
  18. import com.fdkankan.fusion.service.ICaseNumService;
  19. import lombok.extern.slf4j.Slf4j;
  20. import org.apache.commons.lang3.StringUtils;
  21. import org.apache.ibatis.annotations.Param;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.web.bind.annotation.*;
  24. import scala.Int;
  25. import java.io.File;
  26. import java.io.IOException;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29. /**
  30. * <p>
  31. * 前端控制器
  32. * </p>
  33. *
  34. * @author
  35. * @since 2024-12-10
  36. */
  37. @RestController
  38. @RequestMapping("/ai")
  39. @Slf4j
  40. public class AiController {
  41. @Autowired
  42. FusionConfig fusionConfig;
  43. @PostMapping("/getByImage")
  44. public ResultData getByImage(@RequestBody AiParam param){
  45. if(StringUtils.isBlank(param.getImageUrl())){
  46. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  47. }
  48. try {
  49. return ResultData.ok(Openai.gptVision(param.getImageUrl(),fusionConfig.getAiUrl(),null));
  50. } catch (Exception e) {
  51. log.info("Openai-error:{}",e);
  52. throw new BusinessException(ResultCode.AI_ERROR);
  53. }
  54. }
  55. @Autowired
  56. ICaseNumService caseNumService;
  57. @GetMapping("/getFloor/{caseId}")
  58. public ResultData getFloor(@PathVariable Integer caseId){
  59. String foorPath = "/oss/4dkankan/scene_view_data/%s/user";
  60. String fileName = "cad";
  61. String extName = "jpg";
  62. List<CaseNumEntity> byCaseId = caseNumService.getByCaseId(caseId);
  63. List<FloorPathVo> pathVos = new ArrayList<>();
  64. for (CaseNumEntity caseNumEntity : byCaseId) {
  65. if(caseNumEntity.getNumType() == 3){
  66. continue;
  67. }
  68. FloorPathVo pathVo = new FloorPathVo();
  69. pathVo.setNum(caseNumEntity.getNum());
  70. String path = String.format(foorPath, caseNumEntity.getNum());
  71. File file = new File(path);
  72. File[] files = file.listFiles();
  73. if(files == null || files.length <=0){
  74. continue;
  75. }
  76. for (File file1 : files) {
  77. if(file1.getName().contains(fileName) && file1.getName().contains(extName)){
  78. pathVo.getUrls().add(file1.getPath().replace("4dkankan/",""));
  79. }
  80. }
  81. pathVos.add(pathVo);
  82. }
  83. return ResultData.ok(pathVos);
  84. }
  85. // @Autowired
  86. // ICaseFilesService caseFilesService;
  87. // @Autowired
  88. // ICaseFilesTypeService caseFilesTypeService;
  89. //
  90. // @GetMapping("/getFloor/{caseId}")
  91. // public ResultData getFloor(@PathVariable Integer caseId){
  92. // List<FloorPathVo> pathVos = new ArrayList<>();
  93. // CaseFilesType caseFilesType = caseFilesTypeService.getByName("平面图");
  94. // if(caseFilesType == null){
  95. // return ResultData.ok(pathVos);
  96. // }
  97. // List<CaseFiles> list = caseFilesService.getByCaseIdAndTypeId(caseId,caseFilesType.getFilesTypeId());
  98. // for (CaseFiles caseFiles : list) {
  99. // FloorPathVo pathVo = new FloorPathVo();
  100. // pathVo.setNum(caseFiles.getFilesTitle());
  101. // pathVo.getUrls().add(caseFiles.getFilesUrl());
  102. // pathVos.add(pathVo);
  103. // }
  104. //
  105. // return ResultData.ok(pathVos);
  106. // }
  107. }