CaseNumServiceImpl.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package com.fdkankan.fusion.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.fdkankan.fusion.common.FilePath;
  4. import com.fdkankan.fusion.common.util.OBJToGLBUtil;
  5. import com.fdkankan.fusion.entity.CaseNumEntity;
  6. import com.fdkankan.fusion.mapper.ICaseNumMapper;
  7. import com.fdkankan.fusion.request.SceneNumParam;
  8. import com.fdkankan.fusion.service.ICaseNumService;
  9. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10. import com.fdkankan.fyun.oss.UploadToOssUtil;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.stereotype.Service;
  14. import java.io.File;
  15. import java.util.ArrayList;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.stream.Collectors;
  19. /**
  20. * <p>
  21. * 服务实现类
  22. * </p>
  23. *
  24. * @author
  25. * @since 2022-07-27
  26. */
  27. @Service
  28. public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntity> implements ICaseNumService {
  29. @Autowired
  30. UploadToOssUtil uploadToOssUtil;
  31. @Value("${local.obj_path}")
  32. private String OBJ_PATH;
  33. @Value("${local.glb_path}")
  34. private String GLB_PATH;
  35. @Override
  36. public List<CaseNumEntity> getByCaseId(Integer caseId) {
  37. LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
  38. wrapper.eq(CaseNumEntity::getCaseId,caseId);
  39. return this.list(wrapper);
  40. }
  41. @Override
  42. public void addBatch(Integer caseId, SceneNumParam sceneNumParam) {
  43. List<CaseNumEntity> caseNumEntityList = this.getByCaseId(caseId);
  44. List<CaseNumEntity> newCaseNums = new ArrayList<>();
  45. for (String num : sceneNumParam.getNumList()) {
  46. if(caseNumEntityList.size() >0){
  47. List<String> inNums = caseNumEntityList.parallelStream().map(CaseNumEntity::getNum).collect(Collectors.toList());
  48. if(inNums.contains(num)){
  49. continue;
  50. }
  51. }
  52. CaseNumEntity caseNumEntity = new CaseNumEntity();
  53. caseNumEntity.setCaseId(caseId);
  54. caseNumEntity.setNumType(sceneNumParam.getType());
  55. caseNumEntity.setNum(num);
  56. caseNumEntity.setGlbUrl(getGlbUrl(sceneNumParam.getType(),num));
  57. newCaseNums.add(caseNumEntity);
  58. }
  59. if(newCaseNums.size() >0){
  60. this.saveBatch(newCaseNums);
  61. }
  62. }
  63. private String getGlbUrl(Integer type, String num) {
  64. if(type == 0 || type == 1){ //看看,看见
  65. String objPath = String.format(OBJ_PATH ,num);
  66. String glbPath = String.format(GLB_PATH,num);
  67. String glbOssPath = FilePath.GLB_OSS_PATH +"/" + num;
  68. List<String> fileList = uploadToOssUtil.listKeysFromAli(String.format(FilePath.OBJ_OSS_PATH, num));
  69. for (String fileName : fileList) {
  70. File file = new File(objPath);
  71. if(!file.exists()){
  72. file.mkdirs();
  73. }
  74. String[] split = fileName.split("/");
  75. uploadToOssUtil.downFormAli(fileName,objPath +"/"+split[split.length-1]);
  76. }
  77. OBJToGLBUtil.objToGlb(objPath,glbPath);
  78. uploadToOssUtil.upload(glbPath,glbOssPath);
  79. return glbOssPath;
  80. }
  81. return null;
  82. }
  83. @Override
  84. public void deleteByCaseId(Integer caseId) {
  85. LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
  86. wrapper.eq(CaseNumEntity::getCaseId,caseId);
  87. this.remove(wrapper);
  88. }
  89. @Override
  90. public HashMap<Integer, List<String>> getTypeMap(Integer caseId) {
  91. List<CaseNumEntity> caseNumList = this.getByCaseId(caseId);
  92. HashMap<Integer,List<String>> typeMap = new HashMap<>();
  93. for (CaseNumEntity caseNumEntity : caseNumList) {
  94. List<String> numList ;
  95. if(typeMap.get(caseNumEntity.getNumType()) == null){
  96. numList = new ArrayList<>();
  97. }else {
  98. numList = typeMap.get(caseNumEntity.getNumType());
  99. }
  100. numList.add(caseNumEntity.getNum());
  101. typeMap.put(caseNumEntity.getNumType(),numList);
  102. }
  103. return typeMap;
  104. }
  105. @Override
  106. public List<CaseNumEntity> getByNum(String num) {
  107. LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
  108. wrapper.eq(CaseNumEntity::getNum,num);
  109. return this.list(wrapper);
  110. }
  111. }