diff --git a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java index ab056c47..8d55ce85 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java +++ b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java @@ -25,6 +25,7 @@ public class ContentPageVO { private int lockType; // 内容id contentType为0或1时才有值 private Long contentId; + private String origUrl; private String videoUrl; // 模版id private Long templateId; diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index 949cb38e..bb51e748 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -12,6 +12,7 @@ import com.ycwl.basic.face.pipeline.enums.FaceMatchingScene; import com.ycwl.basic.face.pipeline.factory.FaceMatchingPipelineFactory; import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter; import com.ycwl.basic.facebody.entity.SearchFaceResultItem; +import com.ycwl.basic.integration.device.dto.device.DeviceV2DTO; import com.ycwl.basic.mapper.FaceSampleMapper; import com.ycwl.basic.mapper.ProjectMapper; import com.ycwl.basic.mapper.SourceMapper; @@ -60,6 +61,7 @@ import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.MemberRelationRepository; import com.ycwl.basic.repository.OrderRepository; import com.ycwl.basic.repository.ScenicRepository; +import com.ycwl.basic.repository.SourceRepository; import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.repository.VideoRepository; import com.ycwl.basic.repository.VideoTaskRepository; @@ -210,6 +212,8 @@ public class FaceServiceImpl implements FaceService { private OrderRepository orderRepository; @Autowired private com.ycwl.basic.biz.FaceStatusManager faceStatusManager; + @Autowired + private SourceRepository sourceRepository; @Override public ApiResponse> pageQuery(FaceReqQuery faceReqQuery) { @@ -472,7 +476,47 @@ public class FaceServiceImpl implements FaceService { if (face == null) { return Collections.emptyList(); } - Long userId = face.getMemberId(); + Long userId = Long.parseLong(BaseContextHandler.getUserId()); + ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(face.getScenicId()); + if (Integer.valueOf(2).equals(scenicConfig.getInteger("scenic_mode", 0))) { + List result = new ArrayList<>(); + // 摄影师拍照 + List deviceList = deviceRepository.getAllDeviceByScenicId(face.getScenicId()); + List sourceEntityList = sourceMapper.listSourceByFaceRelation(face.getId(), 2); + for (SourceEntity sourceEntity : sourceEntityList) { + ContentPageVO content = new ContentPageVO(); + content.setName("摄影师拍照"); + deviceList.stream().filter(device -> device.getId().equals(sourceEntity.getDeviceId())).findFirst().ifPresent(device -> { + content.setGroup(device.getName()); + }); + content.setContentId(sourceEntity.getId()); + content.setGoodsType(2); + content.setContentType(2); + content.setScenicId(sourceEntity.getScenicId()); + content.setSourceType(2); + content.setOrigUrl(sourceEntity.getUrl()); + content.setTemplateCoverUrl(sourceEntity.getThumbUrl()); + content.setIsBuy(sourceEntity.getIsBuy()); + content.setLockType(-1); + result.add(content); + } + List containedDeviceId = sourceEntityList.stream().map(SourceEntity::getDeviceId).filter(Objects::nonNull).distinct().toList(); + deviceList.stream().filter(device -> !containedDeviceId.contains(device.getId())).forEach(device -> { + ContentPageVO content = new ContentPageVO(); + content.setName(device.getName()); + content.setGroup(device.getName()); + content.setContentId(device.getId()); + content.setGoodsType(2); + content.setContentType(2); + content.setScenicId(face.getScenicId()); + content.setSourceType(2); + content.setTemplateCoverUrl(""); + content.setIsBuy(0); + content.setLockType(1); + result.add(content); + }); + return result; + } List templateList = templateRepository.getTemplateListByScenicId(face.getScenicId()); List contentList = templateList.stream().map(template -> { /// select t.id templateId, t.scenic_id, t.`group`, t.`name`, pid, t.cover_url templateCoverUrl, @@ -607,7 +651,6 @@ public class FaceServiceImpl implements FaceService { sourceVideoContent.setGroup("直出原片"); sourceImageContent.setGroup("直出原片"); sourceAiCamContent.setGroup("智能连连拍"); - ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId()); if (!scenicConfigFacade.isDisableSourceImage(face.getScenicId())) { IsBuyRespVO isBuyRespVO = orderBiz.isBuy(face.getScenicId(), userId, faceId, SourceType.IMAGE.getCode(), faceId); sourceImageContent.setSourceType(isBuyRespVO.getGoodsType()); @@ -679,7 +722,7 @@ public class FaceServiceImpl implements FaceService { } else if (type == 3) { sourceAiCamContent.setSourceType(13); sourceAiCamContent.setLockType(-1); - sourceAiCamContent.setTemplateCoverUrl(configManager.getString("ai_camera_cover_url")); + sourceAiCamContent.setTemplateCoverUrl(scenicConfig.getString("ai_camera_cover_url")); } }); return contentList; @@ -793,18 +836,31 @@ public class FaceServiceImpl implements FaceService { } return statusResp; } - VideoTaskStatusVO taskStatusByFaceId = goodsService.getTaskStatusByFaceId(faceId); - if (Integer.valueOf(1).equals(taskStatusByFaceId.getStatus())) { - if (taskStatusByFaceId.getCount() > 0) { + if (Integer.valueOf(2).equals(scenicConfig.getInteger("scenic_mode", 0))) { + // 摄影模式 + if (!countUser.isEmpty()) { statusResp.setStep3Status(true); - statusResp.setDisplayText("帧途AI已为您渲染"+ taskStatusByFaceId.getCount() +"个vlog"); + statusResp.setDisplayText("帧途AI已为您记录" + countUser.size() + "张大片"); + return statusResp; } else { statusResp.setStep3Status(false); - statusResp.setDisplayText("帧途AI将会为您渲染vlog,请稍候"); + statusResp.setDisplayText("Hey,去拍摄点免费拍照吧"); + return statusResp; } } else { - statusResp.setStep3Status(false); - statusResp.setDisplayText("帧途AI正在为您渲染vlog,请稍候"); + VideoTaskStatusVO taskStatusByFaceId = goodsService.getTaskStatusByFaceId(faceId); + if (Integer.valueOf(1).equals(taskStatusByFaceId.getStatus())) { + if (taskStatusByFaceId.getCount() > 0) { + statusResp.setStep3Status(true); + statusResp.setDisplayText("帧途AI已为您渲染"+ taskStatusByFaceId.getCount() +"个vlog"); + } else { + statusResp.setStep3Status(false); + statusResp.setDisplayText("帧途AI将会为您渲染vlog,请稍候"); + } + } else { + statusResp.setStep3Status(false); + statusResp.setDisplayText("帧途AI正在为您渲染vlog,请稍候"); + } } return statusResp; }