diff --git a/src/main/java/com/ycwl/basic/biz/PriceBiz.java b/src/main/java/com/ycwl/basic/biz/PriceBiz.java index a5988a0..60df028 100644 --- a/src/main/java/com/ycwl/basic/biz/PriceBiz.java +++ b/src/main/java/com/ycwl/basic/biz/PriceBiz.java @@ -9,6 +9,8 @@ import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity; import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.template.resp.TemplateRespVO; +import com.ycwl.basic.pricing.entity.PriceOnePriceConfig; +import com.ycwl.basic.pricing.service.IOnePricePurchaseService; import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.PriceRepository; import com.ycwl.basic.repository.ScenicRepository; @@ -37,6 +39,8 @@ public class PriceBiz { private FaceRepository faceRepository; @Autowired private CouponBiz couponBiz; + @Autowired + private IOnePricePurchaseService onePricePurchaseService; public List listGoodsByScenic(Long scenicId) { List goodsList = new ArrayList<>(); @@ -139,7 +143,7 @@ public class PriceBiz { } } respVO.setShare(false); - if (face != null && face.getMemberId().equals(userId)) { + if (face == null || !face.getMemberId().equals(userId)) { respVO.setShare(true); } return respVO; diff --git a/src/main/java/com/ycwl/basic/repository/PriceRepository.java b/src/main/java/com/ycwl/basic/repository/PriceRepository.java index 6c212f3..c3a66d2 100644 --- a/src/main/java/com/ycwl/basic/repository/PriceRepository.java +++ b/src/main/java/com/ycwl/basic/repository/PriceRepository.java @@ -1,5 +1,7 @@ package com.ycwl.basic.repository; +import com.ycwl.basic.pricing.entity.PriceOnePriceConfig; +import com.ycwl.basic.pricing.service.IOnePricePurchaseService; import com.ycwl.basic.utils.JacksonUtil; import com.ycwl.basic.mapper.PriceConfigMapper; import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity; @@ -7,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; -import java.math.BigDecimal; +import java.util.Collections; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -19,8 +21,24 @@ public class PriceRepository { private RedisTemplate redisTemplate; public static final String PRICE_SCENIC_TYPE_GOODS_CACHE = "price:s%s:t%s:g%s"; public static final String PRICE_ID_CACHE = "price:%s"; + @Autowired + private IOnePricePurchaseService onePricePurchaseService; public PriceConfigEntity getPriceConfigByScenicTypeGoods(Long scenicId, Integer type, String goodsId) { + if (type == -1) { + PriceOnePriceConfig config = onePricePurchaseService.getActiveConfigByScenic(scenicId); + if (config == null || !config.isTimeValid() || !config.isScenicMatch(scenicId)) { + return null; + } + PriceConfigEntity entity = new PriceConfigEntity(); + entity.setId(config.getId().intValue()); + entity.setScenicId(config.getScenicId()); + entity.setType(type); + entity.setSlashPrice(config.getOriginalPrice()); + entity.setPrice(config.getOnePrice()); + entity.setGoodsIds(goodsId); + return entity; + } String cacheKey = String.format(PRICE_SCENIC_TYPE_GOODS_CACHE, scenicId, type, goodsId); PriceConfigEntity priceConfigEntity = null; if (redisTemplate.hasKey(cacheKey)) { @@ -37,6 +55,17 @@ public class PriceRepository { } public PriceConfigEntity getPriceConfig(Integer id) { + PriceOnePriceConfig config = onePricePurchaseService.getConfigById(Long.valueOf(id)); + if (config != null && config.isTimeValid() && config.getIsActive()) { + PriceConfigEntity priceConfig = new PriceConfigEntity(); + priceConfig.setId(config.getId().intValue()); + priceConfig.setScenicId(config.getScenicId()); + priceConfig.setType(-1); + priceConfig.setGoodsIds(""); + priceConfig.setSlashPrice(config.getOriginalPrice()); + priceConfig.setPrice(config.getOnePrice()); + return priceConfig; + } String cacheKey = String.format(PRICE_ID_CACHE, id); PriceConfigEntity priceConfigEntity = null; if (redisTemplate.hasKey(cacheKey)) {