From 7b0930afc4835053a7a2d8addf0d429f435aa52c Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Tue, 7 Jan 2025 17:49:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=85=8D=E8=B4=B9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ycwl/basic/biz/OrderBiz.java | 3 ++- .../basic/model/mobile/order/IsBuyRespVO.java | 3 ++- .../pc/scenic/entity/ScenicConfigEntity.java | 4 +++- .../service/impl/pc/FaceServiceImpl.java | 13 +++++++++++- .../impl/task/TaskTaskServiceImpl.java | 17 +++++++++++++-- .../com/ycwl/basic/task/VideoPieceGetter.java | 21 +++++++++++++++++-- src/main/resources/mapper/ScenicMapper.xml | 2 ++ 7 files changed, 55 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index f05c956..ccd5a65 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -37,7 +37,7 @@ public class OrderBiz { priceObj.setGoodsId(goodsId); ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId); if (scenicConfig != null) { - if (0 != scenicConfig.getAllFree()) { + if (Integer.valueOf(1).equals(scenicConfig.getAllFree())) { // 景区全免 priceObj.setFree(true); priceObj.setPrice(BigDecimal.ZERO); @@ -98,6 +98,7 @@ public class OrderBiz { if (priceObj == null) { return respVO; } + respVO.setFree(priceObj.isFree()); respVO.setGoodsType(goodsType); respVO.setGoodsId(goodsId); respVO.setPrice(priceObj.getPrice()); diff --git a/src/main/java/com/ycwl/basic/model/mobile/order/IsBuyRespVO.java b/src/main/java/com/ycwl/basic/model/mobile/order/IsBuyRespVO.java index 89ace22..4dd2af3 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/order/IsBuyRespVO.java +++ b/src/main/java/com/ycwl/basic/model/mobile/order/IsBuyRespVO.java @@ -6,7 +6,8 @@ import java.math.BigDecimal; @Data public class IsBuyRespVO { - private boolean isBuy; + private boolean buy; + private boolean free; private Long orderId; private int goodsType; private Long goodsId; diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicConfigEntity.java b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicConfigEntity.java index 5e95ba9..441773a 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicConfigEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicConfigEntity.java @@ -33,7 +33,6 @@ public class ScenicConfigEntity { * 是否为默认 */ private Integer isDefault; - private Integer allFree; /** * 创建时间 */ @@ -56,4 +55,7 @@ public class ScenicConfigEntity { * 最大行程时长 */ private Integer maxJourneyHour; + private Integer allFree; + private Integer disableSourceVideo; + private Integer disableSourceImage; } diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java index 612a7f3..7750dbe 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java @@ -2,6 +2,7 @@ package com.ycwl.basic.service.impl.pc; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.enums.StatisticEnum; import com.ycwl.basic.exception.BaseException; import com.ycwl.basic.mapper.FaceSampleMapper; @@ -10,6 +11,7 @@ import com.ycwl.basic.mapper.StatisticsMapper; import com.ycwl.basic.mapper.FaceMapper; import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.face.FaceRecognizeResp; +import com.ycwl.basic.model.mobile.order.IsBuyRespVO; 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; @@ -62,6 +64,8 @@ public class FaceServiceImpl implements FaceService { private SourceMapper sourceMapper; @Autowired private FaceSampleMapper faceSampleMapper; + @Autowired + private OrderBiz orderBiz; @Override public ApiResponse> pageQuery(FaceReqQuery faceReqQuery) { @@ -200,7 +204,14 @@ public class FaceServiceImpl implements FaceService { memberSourceEntity.setMemberId(userId); memberSourceEntity.setSourceId(sourceEntity.getId()); memberSourceEntity.setType(sourceEntity.getType()); - memberSourceEntity.setIsBuy(0); + IsBuyRespVO isBuy = orderBiz.isBuy(userId, scenicId, sourceEntity.getType(), sourceEntity.getId()); + if (isBuy.isBuy()) { // 如果用户买过 + memberSourceEntity.setIsBuy(1); + } else if (isBuy.isFree()) { // 全免费逻辑 + memberSourceEntity.setIsBuy(1); + } else { + memberSourceEntity.setIsBuy(0); + } return memberSourceEntity; }).collect(Collectors.toList()); sourceMapper.addRelations(memberSourceEntityList); diff --git a/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java index 2647a93..e59589f 100644 --- a/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java @@ -20,6 +20,7 @@ import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO; import com.ycwl.basic.model.pc.member.resp.MemberRespVO; import com.ycwl.basic.model.pc.mp.MpConfigEntity; import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity; +import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity; import com.ycwl.basic.model.pc.source.entity.SourceEntity; import com.ycwl.basic.model.pc.source.resp.SourceRespVO; @@ -223,11 +224,18 @@ public class TaskTaskServiceImpl implements TaskService { if (faceSampleList.isEmpty()) { return; } + ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId()); List templateList = templateRepository.getTemplateListByScenicId(faceRespVO.getScenicId()); if (templateList == null || templateList.isEmpty()) { return; } - createTaskByFaceIdAndTempalteId(faceId, templateList.get(0).getId(), 1); + if (Integer.valueOf(3).equals(scenicConfig.getBookRoutine())) { + templateList.forEach(template -> { + createTaskByFaceIdAndTempalteId(faceId, template.getId(), 1); + }); + } else { + createTaskByFaceIdAndTempalteId(faceId, templateList.get(0).getId(), 1); + } } @Override public void createTaskByFaceIdAndTempalteId(Long faceId, Long templateId) { @@ -237,6 +245,7 @@ public class TaskTaskServiceImpl implements TaskService { @Override public void createTaskByFaceIdAndTempalteId(Long faceId, Long templateId, int automatic) { FaceRespVO faceRespVO = faceMapper.getById(faceId); + ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId()); List faceSampleList = faceSampleMapper.listByIds(Arrays.stream(faceRespVO.getMatchSampleIds().split(",")).map(Long::valueOf).collect(Collectors.toList())); if (faceSampleList.isEmpty()) { return; @@ -260,7 +269,11 @@ public class TaskTaskServiceImpl implements TaskService { memberVideo.setScenicId(task.getScenicId()); memberVideo.setFaceId(faceId); memberVideo.setTemplateId(task.getTemplateId()); - memberVideo.setIsBuy(0); + if (Integer.valueOf(1).equals(scenicConfig.getAllFree())) { + memberVideo.setIsBuy(1); + } else { + memberVideo.setIsBuy(0); + } memberVideo.setTaskId(task.getId()); VideoEntity video = videoMapper.findByTaskId(task.getId()); if (video != null) { diff --git a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java index 7b11cb3..fa7bf8d 100644 --- a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java +++ b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java @@ -1,5 +1,6 @@ package com.ycwl.basic.task; +import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.device.DeviceFactory; import com.ycwl.basic.device.entity.common.FileObject; import com.ycwl.basic.device.operator.IDeviceStorageOperator; @@ -7,6 +8,7 @@ import com.ycwl.basic.device.repository.DeviceRepository; import com.ycwl.basic.mapper.DeviceMapper; import com.ycwl.basic.mapper.FaceSampleMapper; import com.ycwl.basic.mapper.SourceMapper; +import com.ycwl.basic.model.mobile.order.IsBuyRespVO; import com.ycwl.basic.model.pc.device.entity.DeviceConfigEntity; import com.ycwl.basic.model.pc.device.entity.DeviceEntity; import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO; @@ -48,6 +50,8 @@ public class VideoPieceGetter { private DeviceRepository deviceRepository; @Autowired private SourceMapper sourceMapper; + @Autowired + private OrderBiz orderBiz; @Data public static class Task { @@ -89,6 +93,7 @@ public class VideoPieceGetter { DeviceConfigEntity config = deviceRepository.getDeviceConfig(faceSample.getDeviceId()); SourceEntity source = sourceMapper.querySameVideo(faceSample.getId(), device.getId()); + IsBuyRespVO isBuy = orderBiz.isBuy(task.getMemberId(), faceSample.getScenicId(), 1, faceSample.getId()); if (source != null) { // 有原视频 int count = sourceMapper.hasRelationTo(task.getMemberId(), source.getId(), 1); @@ -101,7 +106,13 @@ public class VideoPieceGetter { videoSource.setFaceId(task.getFaceId()); videoSource.setMemberId(task.getMemberId()); videoSource.setType(1); - videoSource.setIsBuy(0); + if (isBuy.isBuy()) { // 如果用户买过 + videoSource.setIsBuy(1); + } else if (isBuy.isFree()) { // 全免费逻辑 + videoSource.setIsBuy(1); + } else { + videoSource.setIsBuy(0); + } videoSource.setSourceId(source.getId()); sourceMapper.addRelation(videoSource); return; @@ -155,7 +166,6 @@ public class VideoPieceGetter { MemberSourceEntity videoSource = new MemberSourceEntity(); videoSource.setMemberId(task.getMemberId()); videoSource.setType(1); - videoSource.setIsBuy(0); videoSource.setFaceId(task.getFaceId()); videoSource.setScenicId(faceSample.getScenicId()); videoSource.setSourceId(sourceEntity.getId()); @@ -168,6 +178,13 @@ public class VideoPieceGetter { sourceEntity.setScenicId(faceSample.getScenicId()); sourceEntity.setDeviceId(faceSample.getDeviceId()); sourceEntity.setType(1); + if (isBuy.isBuy()) { // 如果用户买过 + videoSource.setIsBuy(1); + } else if (isBuy.isFree()) { // 全免费逻辑 + videoSource.setIsBuy(1); + } else { + videoSource.setIsBuy(0); + } sourceMapper.add(sourceEntity); sourceMapper.addRelation(videoSource); }); diff --git a/src/main/resources/mapper/ScenicMapper.xml b/src/main/resources/mapper/ScenicMapper.xml index 8c5edd1..4f69104 100644 --- a/src/main/resources/mapper/ScenicMapper.xml +++ b/src/main/resources/mapper/ScenicMapper.xml @@ -84,6 +84,8 @@ sample_store_day=#{sampleStoreDay}, video_store_day=#{videoStoreDay}, max_journey_hour=#{maxJourneyHour}, + disable_source_video=#{disableSourceVideo}, + disable_source_image=#{disableSourceImage} where id = #{id}