diff --git a/src/main/java/com/ycwl/basic/biz/FaceStatusManager.java b/src/main/java/com/ycwl/basic/biz/FaceStatusManager.java index a1e3de5f..f8d4103a 100644 --- a/src/main/java/com/ycwl/basic/biz/FaceStatusManager.java +++ b/src/main/java/com/ycwl/basic/biz/FaceStatusManager.java @@ -249,8 +249,7 @@ public class FaceStatusManager { return; } String key = String.format(FACE_TEMPLATE_RENDER_KEY, faceId, templateId); - // 渲染状态不设置过期时间,永久保存 - redisTemplate.opsForValue().set(key, String.valueOf(status.getCode())); + redisTemplate.opsForValue().set(key, String.valueOf(status.getCode()), DEFAULT_EXPIRE_SECONDS, TimeUnit.SECONDS); log.debug("设置模板渲染状态: faceId={}, templateId={}, status={}", faceId, templateId, status.getDescription()); } diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppTaskController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppTaskController.java index 0edab4b5..c61f1a92 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppTaskController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppTaskController.java @@ -27,7 +27,6 @@ public class AppTaskController { @GetMapping("/face/{faceId}") @IgnoreLogReq public ApiResponse getTaskStatusByFaceId(@PathVariable("faceId") Long faceId) { - JwtInfo worker = JwtTokenUtil.getWorker(); return ApiResponse.success(goodsService.getTaskStatusByFaceId(faceId)); } @GetMapping("/scenic/{scenicId}") @@ -49,7 +48,6 @@ public class AppTaskController { @GetMapping("/face/{faceId}/template/{templateId}") @IgnoreLogReq public ApiResponse getTemplateTaskStatus(@PathVariable("faceId") Long faceId, @PathVariable("templateId") Long templateId) { - JwtInfo worker = JwtTokenUtil.getWorker(); return ApiResponse.success(goodsService.getTaskStatusByTemplateId(faceId, templateId)); } diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java index 9ee5023e..9b8e28c7 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java @@ -356,7 +356,11 @@ public class GoodsServiceImpl implements GoodsService { if (status == FaceCutStatus.COMPLETED) { // 切片已完成,查询该人脸关联的视频信息 List taskList = videoMapper.listRelationByFace(faceId); - if (taskList == null || taskList.isEmpty() || taskList.getLast().getVideoId() == null) { + if (taskList == null || taskList.isEmpty()) { + response.setStatus(VideoTaskStatus.PENDING.getCode()); + return response; + } + if (taskList.getLast().getVideoId() == null) { response.setStatus(VideoTaskStatus.PROCESSING.getCode()); return response; } @@ -464,7 +468,7 @@ public class GoodsServiceImpl implements GoodsService { // 该模板已渲染完成,查询对应的视频信息 List taskList = videoMapper.listRelationByFaceAndTemplate(faceId, templateId); - if (taskList.isEmpty() || taskList.getLast().getVideoId() == null) { + if (taskList == null || taskList.isEmpty() || taskList.getLast().getVideoId() == null) { // 理论上不应该出现:渲染完成但无视频记录 // 可能是数据不一致,返回待制作状态 response.setStatus(VideoTaskStatus.PROCESSING.getCode());