diff --git a/src/main/java/com/ycwl/basic/repository/SourceRepository.java b/src/main/java/com/ycwl/basic/repository/SourceRepository.java index 1d1b9be..b0965dd 100644 --- a/src/main/java/com/ycwl/basic/repository/SourceRepository.java +++ b/src/main/java/com/ycwl/basic/repository/SourceRepository.java @@ -1,8 +1,13 @@ package com.ycwl.basic.repository; import com.ycwl.basic.mapper.SourceMapper; +import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity; import com.ycwl.basic.model.pc.source.entity.SourceEntity; +import com.ycwl.basic.pricing.dto.VoucherInfo; +import com.ycwl.basic.pricing.enums.VoucherDiscountType; +import com.ycwl.basic.pricing.service.IVoucherService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; @@ -10,12 +15,17 @@ import org.springframework.stereotype.Component; import java.util.List; import java.util.Objects; +@Slf4j @Component public class SourceRepository { @Autowired private SourceMapper sourceMapper; @Autowired private RedisTemplate redisTemplate; + @Autowired + private IVoucherService iVoucherService; + @Autowired + private FaceRepository faceRepository; public void addSource(SourceEntity source) { sourceMapper.add(source); @@ -42,6 +52,19 @@ public class SourceRepository { } public boolean getUserIsBuy(Long userId, int type, Long faceId) { + FaceEntity face = faceRepository.getFace(faceId); + if (face == null) { + log.info("faceId:{} is not exist", faceId); + return false; + } + // 确认人员faceId是否有券码 + List voucherDetails = iVoucherService.getVoucherDetails(faceId, face.getScenicId()); + if (voucherDetails != null && !voucherDetails.isEmpty()) { + VoucherInfo voucherInfo = voucherDetails.getFirst(); + if (voucherInfo.getDiscountType().equals(VoucherDiscountType.FREE_ALL)) { + return true; + } + } switch (type) { case 1: List videoSourceList = sourceMapper.listVideoByFaceRelation(userId, faceId);