彻底铲除OSSUtil,抽象、修改

This commit is contained in:
2024-12-26 19:34:20 +08:00
parent 473e7080a1
commit 201a6617ac
45 changed files with 765 additions and 317 deletions

View File

@@ -0,0 +1,22 @@
package com.ycwl.basic.service.impl.pc;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycwl.basic.mapper.FaceDetectLogMapper;
import com.ycwl.basic.model.pc.faceDetectLog.entity.FaceDetectLog;
import com.ycwl.basic.service.pc.FaceDetectLogService;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service
public class FaceDetectLogServiceImpl extends ServiceImpl<FaceDetectLogMapper, FaceDetectLog> implements FaceDetectLogService {
@Override
public List<FaceDetectLog> listByTimeDesc() {
LambdaQueryWrapper<FaceDetectLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.orderByDesc(FaceDetectLog::getCreateTime);
return list(queryWrapper);
}
}

View File

@@ -16,6 +16,10 @@ import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
import com.ycwl.basic.service.pc.FaceService;
import com.ycwl.basic.service.task.TaskFaceService;
import com.ycwl.basic.service.task.TaskService;
import com.ycwl.basic.storage.StorageFactory;
import com.ycwl.basic.storage.adapters.IStorageAdapter;
import com.ycwl.basic.storage.enums.StorageType;
import com.ycwl.basic.storage.utils.StorageUtil;
import com.ycwl.basic.task.FaceCleaner;
import com.ycwl.basic.utils.*;
import lombok.extern.slf4j.Slf4j;
@@ -31,6 +35,7 @@ import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import java.util.stream.Collectors;
import static com.ycwl.basic.constant.FaceConstant.USER_FACE_DB_NAME;
@@ -45,8 +50,6 @@ public class FaceServiceImpl implements FaceService {
@Autowired
private FaceMapper faceMapper;
@Autowired
private OssUtil ossUtil;
@Autowired
private TaskFaceService faceService;
@Autowired
private StatisticsMapper statisticsMapper;
@@ -56,8 +59,6 @@ public class FaceServiceImpl implements FaceService {
private float strictScore = 90F;
@Autowired
private TaskService taskTaskService;
@Autowired
private FaceCleaner faceCleaner;
@Override
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
@@ -123,17 +124,21 @@ public class FaceServiceImpl implements FaceService {
log.info("当前登录用户信息:{}",worker);
//1、上传人脸照片
String faceUrl = uploadFileALiOss(file, userId);
IStorageAdapter adapter = StorageFactory.use("faces");
String filePath = StorageUtil.joinPath("user-faces", DateUtils.format(new Date(),"yyyy-MM-dd"));
String originalFilename = file.getOriginalFilename();
String suffix = originalFilename.split("\\.", 2)[1];
String fileName = UUID.randomUUID().toString() + "." + suffix;
String faceUrl = adapter.uploadFile(file, filePath, fileName);
SearchFaceRespVo scenicDbSearchResult = faceService.searchFace(scenicId, faceUrl);
if (scenicDbSearchResult == null) {
ossUtil.deleteFileByUrl(faceUrl);
adapter.deleteFile(filePath, fileName);
throw new BaseException("人脸照片校验失败,请重新上传");
}
float score = scenicDbSearchResult.getScore();
if (score<faceScore) {
//校验失败,删除,提示重新上传
ossUtil.deleteFileByUrl(faceUrl);
adapter.deleteFile(filePath, fileName);
throw new BaseException("人脸照片校验失败,请重新上传");
}
// 2、通过人脸查找用户库
@@ -194,37 +199,4 @@ public class FaceServiceImpl implements FaceService {
return ApiResponse.success(faceMapper.getByMemberId(memberId, 3928516560393736192L));
}
/**
* 阿里oss图片上传
*
* @param file file
* @param userId 用户id
* @return 地址
*/
private String uploadFileALiOss(MultipartFile file,Long userId) {
if (file.isEmpty()) {
throw new RuntimeException("文件不存在!");
}
String originalFilename = file.getOriginalFilename();
//获取文件名后缀
String suffix = originalFilename.split("\\.")[1];
if ("Jpeg".equals(suffix)) {
suffix = "jpg";
}
//文件储存路径
String filePath="";
String dateStr = DateUtils.format(new Date(),"yyyy-MM-dd");
filePath=filePath+dateStr+"/";
// 生成文件名
String fileName= userId+"." + suffix;
InputStream inputStream ;
try {
inputStream = file.getInputStream();
} catch (IOException e) {
log.error("文件上传失败!", e);
return null;
}
return ossUtil.uploadFile(inputStream,filePath+fileName) ;
}
}