123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- package com.fdkankan.fusion.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.fdkankan.fusion.common.FilePath;
- import com.fdkankan.fusion.common.util.OBJToGLBUtil;
- import com.fdkankan.fusion.entity.CaseNumEntity;
- import com.fdkankan.fusion.mapper.ICaseNumMapper;
- import com.fdkankan.fusion.request.SceneNumParam;
- import com.fdkankan.fusion.service.ICaseNumService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.fyun.oss.UploadToOssUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import java.io.File;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author
- * @since 2022-07-27
- */
- @Service
- public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntity> implements ICaseNumService {
- @Autowired
- UploadToOssUtil uploadToOssUtil;
- @Value("${local.obj_path}")
- private String OBJ_PATH;
- @Value("${local.glb_path}")
- private String GLB_PATH;
- @Override
- public List<CaseNumEntity> getByCaseId(Integer caseId) {
- LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(CaseNumEntity::getCaseId,caseId);
- return this.list(wrapper);
- }
- @Override
- public void addBatch(Integer caseId, SceneNumParam sceneNumParam) {
- List<CaseNumEntity> caseNumEntityList = this.getByCaseId(caseId);
- List<CaseNumEntity> newCaseNums = new ArrayList<>();
- for (String num : sceneNumParam.getNumList()) {
- if(caseNumEntityList.size() >0){
- List<String> inNums = caseNumEntityList.parallelStream().map(CaseNumEntity::getNum).collect(Collectors.toList());
- if(inNums.contains(num)){
- continue;
- }
- }
- CaseNumEntity caseNumEntity = new CaseNumEntity();
- caseNumEntity.setCaseId(caseId);
- caseNumEntity.setNumType(sceneNumParam.getType());
- caseNumEntity.setNum(num);
- caseNumEntity.setGlbUrl(getGlbUrl(sceneNumParam.getType(),num));
- newCaseNums.add(caseNumEntity);
- }
- if(newCaseNums.size() >0){
- this.saveBatch(newCaseNums);
- }
- }
- private String getGlbUrl(Integer type, String num) {
- if(type == 0 || type == 1){ //看看,看见
- String objPath = String.format(OBJ_PATH ,num);
- String glbPath = String.format(GLB_PATH,num);
- String glbOssPath = FilePath.GLB_OSS_PATH +"/" + num;
- List<String> fileList = uploadToOssUtil.listKeysFromAli(String.format(FilePath.OBJ_OSS_PATH, num));
- for (String fileName : fileList) {
- File file = new File(objPath);
- if(!file.exists()){
- file.mkdirs();
- }
- String[] split = fileName.split("/");
- uploadToOssUtil.downFormAli(fileName,objPath +"/"+split[split.length-1]);
- }
- OBJToGLBUtil.objToGlb(objPath,glbPath);
- uploadToOssUtil.upload(glbPath,glbOssPath);
- return glbOssPath;
- }
- return null;
- }
- @Override
- public void deleteByCaseId(Integer caseId) {
- LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(CaseNumEntity::getCaseId,caseId);
- this.remove(wrapper);
- }
- @Override
- public HashMap<Integer, List<String>> getTypeMap(Integer caseId) {
- List<CaseNumEntity> caseNumList = this.getByCaseId(caseId);
- HashMap<Integer,List<String>> typeMap = new HashMap<>();
- for (CaseNumEntity caseNumEntity : caseNumList) {
- List<String> numList ;
- if(typeMap.get(caseNumEntity.getNumType()) == null){
- numList = new ArrayList<>();
- }else {
- numList = typeMap.get(caseNumEntity.getNumType());
- }
- numList.add(caseNumEntity.getNum());
- typeMap.put(caseNumEntity.getNumType(),numList);
- }
- return typeMap;
- }
- @Override
- public List<CaseNumEntity> getByNum(String num) {
- LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(CaseNumEntity::getNum,num);
- return this.list(wrapper);
- }
- }
|