diff --git a/src/main/java/com/ycwl/basic/controller/extern/LyCompatibleController.java b/src/main/java/com/ycwl/basic/controller/extern/LyCompatibleController.java index 3fc57d8..471ab8c 100644 --- a/src/main/java/com/ycwl/basic/controller/extern/LyCompatibleController.java +++ b/src/main/java/com/ycwl/basic/controller/extern/LyCompatibleController.java @@ -55,8 +55,6 @@ public class LyCompatibleController { @Autowired private FaceMapper faceMapper; @Autowired - private AppScenicService appScenicService; - @Autowired private VideoRepository videoRepository; @Autowired private VideoMapper videoMapper; @@ -193,7 +191,7 @@ public class LyCompatibleController { return R.error("用户没有上传过照片!"); } VideoTaskStatusVO taskStatusVO = goodsService.getTaskStatusByScenicId(member.getId(), member.getScenicId()); - List listApiResponse = appScenicService.faceContentList(faceVO.getId()); + List listApiResponse = faceService.faceContentList(faceVO.getId()); Map> collect = listApiResponse.stream() .filter(contentPageVO -> contentPageVO.getLockType() < 0) .collect(Collectors.groupingBy(ContentPageVO::getGoodsType)); diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java index 93ccfb8..eacff35 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java @@ -2,6 +2,7 @@ package com.ycwl.basic.controller.mobile; import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.face.FaceRecognizeResp; +import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.face.resp.FaceRespVO; import com.ycwl.basic.service.pc.FaceService; import com.ycwl.basic.utils.ApiResponse; @@ -69,4 +70,12 @@ AppFaceController { faceService.matchFaceId(faceId); return ApiResponse.success(""); } + + + @ApiOperation("景区视频源素材列表") + @GetMapping("/{faceId}/contentList") + public ApiResponse> contentList(@PathVariable Long faceId) { + List contentPageVOS = faceService.faceContentList(faceId); + return ApiResponse.success(contentPageVOS); + } } diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java index 782dbe8..83ac966 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java @@ -12,6 +12,7 @@ import com.ycwl.basic.model.pc.scenic.resp.ScenicConfigResp; import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.service.mobile.AppScenicService; +import com.ycwl.basic.service.pc.FaceService; import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.JwtTokenUtil; import io.swagger.annotations.Api; @@ -33,6 +34,8 @@ import java.util.List; @Api(tags = "景区相关接口") public class AppScenicController { + @Autowired + private FaceService faceService; @Autowired private AppScenicService appScenicService; @Autowired @@ -83,13 +86,13 @@ public class AppScenicController { @ApiOperation("景区视频源素材列表") @GetMapping("/contentList/") public ApiResponse> contentList() { - return appScenicService.contentListUseDefaultFace(); + return faceService.contentListUseDefaultFace(); } @ApiOperation("景区视频源素材列表") @GetMapping("/face/{faceId}/contentList") public ApiResponse> contentList(@PathVariable Long faceId) { - List contentPageVOS = appScenicService.faceContentList(faceId); + List contentPageVOS = faceService.faceContentList(faceId); return ApiResponse.success(contentPageVOS); } } diff --git a/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java b/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java index 9f9bab5..ae6c76d 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java @@ -5,7 +5,6 @@ import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO; -import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.device.resp.DeviceRespVO; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; @@ -24,12 +23,8 @@ public interface AppScenicService { ApiResponse getDetails(Long id); - List faceContentList(Long faceId); - ApiResponse login(ScenicLoginReq scenicLoginReq) throws Exception; - ApiResponse> contentListUseDefaultFace(); - ApiResponse getMyScenic(); ApiResponse> getMyDevices(); diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java index dbdbf40..14f5977 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java @@ -3,43 +3,25 @@ package com.ycwl.basic.service.mobile.impl; import cn.hutool.core.bean.BeanUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.ycwl.basic.biz.OrderBiz; -import com.ycwl.basic.biz.TemplateBiz; import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.mapper.*; import com.ycwl.basic.model.jwt.JwtInfo; -import com.ycwl.basic.model.mobile.order.IsBuyRespVO; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO; -import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.device.resp.DeviceRespVO; -import com.ycwl.basic.model.pc.face.resp.FaceRespVO; import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity; -import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; -import com.ycwl.basic.model.pc.source.entity.SourceEntity; -import com.ycwl.basic.model.pc.source.req.SourceReqQuery; -import com.ycwl.basic.model.pc.source.resp.SourceRespVO; -import com.ycwl.basic.model.pc.task.entity.TaskEntity; -import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity; -import com.ycwl.basic.model.pc.video.entity.VideoEntity; -import com.ycwl.basic.repository.ScenicRepository; -import com.ycwl.basic.repository.VideoRepository; -import com.ycwl.basic.repository.VideoTaskRepository; import com.ycwl.basic.service.mobile.AppScenicService; -import com.ycwl.basic.service.pc.SourceService; import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.JwtTokenUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; /** * @Author:longbinbin @@ -54,29 +36,9 @@ public class AppScenicServiceImpl implements AppScenicService { @Autowired private DeviceMapper deviceMapper; @Autowired - private FaceMapper faceMapper; - @Autowired - private SourceMapper sourceMapper; - @Autowired - private VideoMapper videoMapper; - @Autowired - private TemplateMapper templateMapper; - @Autowired private ScenicAccountMapper scenicAccountMapper; @Autowired private JwtTokenUtil jwtTokenUtil; - @Autowired - private OrderBiz orderBiz; - @Autowired - private ScenicRepository scenicRepository; - @Autowired - private TemplateBiz templateBiz; - @Autowired - private VideoTaskRepository videoTaskRepository; - @Autowired - private VideoRepository videoRepository; - @Autowired - private SourceService sourceService; @Override public ApiResponse> pageQuery(ScenicReqQuery scenicReqQuery) { @@ -101,115 +63,6 @@ public class AppScenicServiceImpl implements AppScenicService { return ApiResponse.success(scenicRespVO); } - @Override - public List faceContentList(Long faceId) { - FaceRespVO faceRespVO = faceMapper.getById(faceId); - Long userId = faceRespVO.getMemberId(); - if (faceRespVO == null) { - return Collections.emptyList(); - } - List contentList = templateMapper.listFor(faceRespVO.getScenicId()); - contentList.forEach(contentPageVO -> { - List memberVideoEntityList = videoMapper.userFaceTemplateVideo(userId, faceId, contentPageVO.getTemplateId()); - contentPageVO.setGoodsType(0); - contentPageVO.setContentType(1); - if (!memberVideoEntityList.isEmpty()) { - contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy()); - contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId()); - VideoEntity video = videoRepository.getVideo(contentPageVO.getContentId()); - if (video != null) { - contentPageVO.setDuration(video.getDuration()); - contentPageVO.setLockType(-1); - } else { - TaskEntity taskById = videoTaskRepository.getTaskById(memberVideoEntityList.get(0).getTaskId()); - if (taskById == null) { - contentPageVO.setLockType(0); - } else if (taskById.getStatus() == 3) { - contentPageVO.setLockType(2); - } else { - contentPageVO.setLockType(0); - } - contentPageVO.setContentType(0); - } - } else { - contentPageVO.setContentType(0); - boolean canGenerate = templateBiz.determineTemplateCanGenerate(contentPageVO.getTemplateId(), faceId); - if (canGenerate) { - contentPageVO.setLockType(0); - } else { - contentPageVO.setLockType(1); - } - } - }); - - SourceReqQuery sourceReqQuery = new SourceReqQuery(); - sourceReqQuery.setScenicId(faceRespVO.getScenicId()); - sourceReqQuery.setFaceId(faceId); - sourceReqQuery.setMemberId(userId); - //查询源素材 - List sourceList = sourceMapper.queryByRelation(sourceReqQuery); - ContentPageVO sourceVideoContent = new ContentPageVO(); - ContentPageVO sourceImageContent = new ContentPageVO(); - sourceVideoContent.setName("录像集"); - sourceImageContent.setName("照片集"); - sourceVideoContent.setScenicId(faceRespVO.getScenicId()); - sourceImageContent.setScenicId(faceRespVO.getScenicId()); - sourceVideoContent.setGoodsType(1); - sourceImageContent.setGoodsType(2); - sourceVideoContent.setContentType(2); - sourceImageContent.setContentType(2); - sourceVideoContent.setLockType(-1); - sourceImageContent.setLockType(-1); - ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId()); - if (!Integer.valueOf(1).equals(scenicConfig.getDisableSourceImage())) { - IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), 2, faceId); - sourceImageContent.setSourceType(isBuyRespVO.getGoodsType()); - sourceImageContent.setContentId(isBuyRespVO.getGoodsId()); - if (isBuyRespVO.isBuy()) { - sourceImageContent.setIsBuy(1); - } else { - sourceImageContent.setIsBuy(0); - } - List sourceEntities = sourceMapper.listImageByFaceRelation(faceRespVO.getMemberId(), faceId); - if (!sourceEntities.isEmpty()) { - sourceImageContent.setLockType(-1); - } else { - sourceImageContent.setLockType(1); - } - contentList.add(sourceImageContent); - } - if (!Integer.valueOf(1).equals(scenicConfig.getDisableSourceVideo())) { - IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), 1, faceId); - sourceVideoContent.setSourceType(isBuyRespVO.getGoodsType()); - sourceVideoContent.setContentId(isBuyRespVO.getGoodsId()); - if (isBuyRespVO.isBuy()) { - sourceVideoContent.setIsBuy(1); - } else { - sourceVideoContent.setIsBuy(0); - } - List sourceEntities = sourceMapper.listVideoByFaceRelation(faceRespVO.getMemberId(), faceId); - if (!sourceEntities.isEmpty()) { - sourceVideoContent.setLockType(-1); - } else { - sourceVideoContent.setLockType(1); - } - contentList.add(sourceVideoContent); - } - sourceList.stream().collect(Collectors.groupingBy(SourceRespVO::getType)).forEach((type, list) -> { - if (type == 1) { - sourceVideoContent.setSourceType(1); - sourceVideoContent.setLockType(-1); - sourceVideoContent.setTemplateCoverUrl(list.get(0).getUrl()); - } else { - sourceImageContent.setSourceType(2); - sourceImageContent.setLockType(-1); - sourceImageContent.setTemplateCoverUrl(list.get(0).getUrl()); - } - }); - - return contentList; - } - @Override public ApiResponse login(ScenicLoginReq scenicLoginReq) throws Exception { @@ -237,13 +90,6 @@ public class AppScenicServiceImpl implements AppScenicService { return ApiResponse.success(scenicLoginRespVO); } - @Override - public ApiResponse> contentListUseDefaultFace() { - FaceRespVO lastFaceByUserId = faceMapper.findLastFaceByUserId(BaseContextHandler.getUserId()); - List contentPageVOS = faceContentList(lastFaceByUserId.getId()); - return ApiResponse.success(contentPageVOS); - } - @Override public ApiResponse getMyScenic() { String userId = BaseContextHandler.getUserId(); diff --git a/src/main/java/com/ycwl/basic/service/pc/FaceService.java b/src/main/java/com/ycwl/basic/service/pc/FaceService.java index d2eb502..18faf64 100644 --- a/src/main/java/com/ycwl/basic/service/pc/FaceService.java +++ b/src/main/java/com/ycwl/basic/service/pc/FaceService.java @@ -2,6 +2,7 @@ package com.ycwl.basic.service.pc; import com.github.pagehelper.PageInfo; import com.ycwl.basic.model.mobile.face.FaceRecognizeResp; +import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.model.pc.face.req.FaceReqQuery; import com.ycwl.basic.model.pc.face.resp.FaceRespVO; @@ -31,4 +32,8 @@ public interface FaceService { SearchFaceRespVo matchFaceId(Long faceId, boolean isNew); ApiResponse deleteFace(Long faceId); + + List faceContentList(Long faceId); + + ApiResponse> contentListUseDefaultFace(); } 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 ac46b7f..cbfebf4 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 @@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ycwl.basic.biz.OrderBiz; +import com.ycwl.basic.biz.TemplateBiz; +import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.enums.StatisticEnum; import com.ycwl.basic.exception.BaseException; import com.ycwl.basic.facebody.FaceBodyFactory; @@ -13,9 +15,11 @@ import com.ycwl.basic.mapper.FaceSampleMapper; import com.ycwl.basic.mapper.SourceMapper; import com.ycwl.basic.mapper.StatisticsMapper; import com.ycwl.basic.mapper.FaceMapper; +import com.ycwl.basic.mapper.TemplateMapper; import com.ycwl.basic.mapper.VideoMapper; import com.ycwl.basic.model.mobile.face.FaceRecognizeResp; import com.ycwl.basic.model.mobile.order.IsBuyRespVO; +import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq; import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.model.pc.face.req.FaceReqQuery; @@ -24,9 +28,16 @@ import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity; import com.ycwl.basic.model.pc.source.entity.SourceEntity; +import com.ycwl.basic.model.pc.source.req.SourceReqQuery; +import com.ycwl.basic.model.pc.source.resp.SourceRespVO; +import com.ycwl.basic.model.pc.task.entity.TaskEntity; +import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity; +import com.ycwl.basic.model.pc.video.entity.VideoEntity; import com.ycwl.basic.model.task.resp.SearchFaceRespVo; import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.ScenicRepository; +import com.ycwl.basic.repository.VideoRepository; +import com.ycwl.basic.repository.VideoTaskRepository; import com.ycwl.basic.service.pc.FaceService; import com.ycwl.basic.service.pc.ScenicService; import com.ycwl.basic.service.task.TaskFaceService; @@ -41,6 +52,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; @@ -79,6 +91,14 @@ public class FaceServiceImpl implements FaceService { private ScenicRepository scenicRepository; @Autowired private ScenicService scenicService; + @Autowired + private TemplateMapper templateMapper; + @Autowired + private VideoRepository videoRepository; + @Autowired + private VideoTaskRepository videoTaskRepository; + @Autowired + private TemplateBiz templateBiz; @Override public ApiResponse> pageQuery(FaceReqQuery faceReqQuery) { @@ -303,4 +323,122 @@ public class FaceServiceImpl implements FaceService { return ApiResponse.success("删除成功"); } + + @Override + public List faceContentList(Long faceId) { + FaceRespVO faceRespVO = faceMapper.getById(faceId); + Long userId = faceRespVO.getMemberId(); + if (faceRespVO == null) { + return Collections.emptyList(); + } + List contentList = templateMapper.listFor(faceRespVO.getScenicId()); + contentList.forEach(contentPageVO -> { + List memberVideoEntityList = videoMapper.userFaceTemplateVideo(userId, faceId, contentPageVO.getTemplateId()); + contentPageVO.setGoodsType(0); + contentPageVO.setContentType(1); + if (!memberVideoEntityList.isEmpty()) { + contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy()); + contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId()); + VideoEntity video = videoRepository.getVideo(contentPageVO.getContentId()); + if (video != null) { + contentPageVO.setDuration(video.getDuration()); + contentPageVO.setLockType(-1); + } else { + TaskEntity taskById = videoTaskRepository.getTaskById(memberVideoEntityList.get(0).getTaskId()); + if (taskById == null) { + contentPageVO.setLockType(0); + } else if (taskById.getStatus() == 3) { + contentPageVO.setLockType(2); + } else { + contentPageVO.setLockType(0); + } + contentPageVO.setContentType(0); + } + } else { + contentPageVO.setContentType(0); + boolean canGenerate = templateBiz.determineTemplateCanGenerate(contentPageVO.getTemplateId(), faceId); + if (canGenerate) { + contentPageVO.setLockType(0); + } else { + contentPageVO.setLockType(1); + } + } + }); + + SourceReqQuery sourceReqQuery = new SourceReqQuery(); + sourceReqQuery.setScenicId(faceRespVO.getScenicId()); + sourceReqQuery.setFaceId(faceId); + sourceReqQuery.setMemberId(userId); + //查询源素材 + List sourceList = sourceMapper.queryByRelation(sourceReqQuery); + ContentPageVO sourceVideoContent = new ContentPageVO(); + ContentPageVO sourceImageContent = new ContentPageVO(); + sourceVideoContent.setName("录像集"); + sourceImageContent.setName("照片集"); + sourceVideoContent.setScenicId(faceRespVO.getScenicId()); + sourceImageContent.setScenicId(faceRespVO.getScenicId()); + sourceVideoContent.setGoodsType(1); + sourceImageContent.setGoodsType(2); + sourceVideoContent.setContentType(2); + sourceImageContent.setContentType(2); + sourceVideoContent.setLockType(-1); + sourceImageContent.setLockType(-1); + ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId()); + if (!Integer.valueOf(1).equals(scenicConfig.getDisableSourceImage())) { + IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), 2, faceId); + sourceImageContent.setSourceType(isBuyRespVO.getGoodsType()); + sourceImageContent.setContentId(isBuyRespVO.getGoodsId()); + if (isBuyRespVO.isBuy()) { + sourceImageContent.setIsBuy(1); + } else { + sourceImageContent.setIsBuy(0); + } + List sourceEntities = sourceMapper.listImageByFaceRelation(faceRespVO.getMemberId(), faceId); + if (!sourceEntities.isEmpty()) { + sourceImageContent.setLockType(-1); + } else { + sourceImageContent.setLockType(1); + } + contentList.add(sourceImageContent); + } + if (!Integer.valueOf(1).equals(scenicConfig.getDisableSourceVideo())) { + IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), 1, faceId); + sourceVideoContent.setSourceType(isBuyRespVO.getGoodsType()); + sourceVideoContent.setContentId(isBuyRespVO.getGoodsId()); + if (isBuyRespVO.isBuy()) { + sourceVideoContent.setIsBuy(1); + } else { + sourceVideoContent.setIsBuy(0); + } + List sourceEntities = sourceMapper.listVideoByFaceRelation(faceRespVO.getMemberId(), faceId); + if (!sourceEntities.isEmpty()) { + sourceVideoContent.setLockType(-1); + } else { + sourceVideoContent.setLockType(1); + } + contentList.add(sourceVideoContent); + } + sourceList.stream().collect(Collectors.groupingBy(SourceRespVO::getType)).forEach((type, list) -> { + if (type == 1) { + sourceVideoContent.setSourceType(1); + sourceVideoContent.setLockType(-1); + sourceVideoContent.setTemplateCoverUrl(list.get(0).getUrl()); + } else { + sourceImageContent.setSourceType(2); + sourceImageContent.setLockType(-1); + sourceImageContent.setTemplateCoverUrl(list.get(0).getUrl()); + } + }); + + return contentList; + } + + @Override + public ApiResponse> contentListUseDefaultFace() { + FaceRespVO lastFaceByUserId = faceMapper.findLastFaceByUserId(BaseContextHandler.getUserId()); + List contentPageVOS = faceContentList(lastFaceByUserId.getId()); + return ApiResponse.success(contentPageVOS); + } + + }