From 40bc890870d4bc8fa2e4d793681bfe390a2fdb06 Mon Sep 17 00:00:00 2001 From: Chopper Date: Thu, 23 Dec 2021 15:27:06 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E7=A9=BA=E5=93=81=E7=89=8C=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../search/serviceimpl/EsGoodsIndexServiceImpl.java | 2 +- .../search/serviceimpl/EsGoodsSearchServiceImpl.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java index 67faf657..c74b7c56 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java @@ -314,7 +314,7 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements resultMap.put(KEY_SUCCESS, 0); resultMap.put(KEY_FAIL, 0); resultMap.put(KEY_PROCESSED, 0); - cache.put(CachePrefix.INIT_INDEX_PROCESS.getPrefix() + "", resultMap); + cache.put(CachePrefix.INIT_INDEX_PROCESS.getPrefix(), resultMap); if (!goodsIndexList.isEmpty()) { goodsIndexRepository.deleteAll(); for (EsGoodsIndex goodsIndex : goodsIndexList) { diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java index 755d445f..663babc8 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java @@ -15,6 +15,7 @@ import cn.lili.modules.search.entity.dto.HotWordsDTO; import cn.lili.modules.search.entity.dto.ParamOptions; import cn.lili.modules.search.entity.dto.SelectorOptions; import cn.lili.modules.search.service.EsGoodsSearchService; +import com.alibaba.druid.util.StringUtils; import lombok.extern.slf4j.Slf4j; import org.apache.lucene.search.join.ScoreMode; import org.elasticsearch.common.lucene.search.function.FieldValueFactorFunction; @@ -212,6 +213,7 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { for (int i = 0; i < brandBuckets.size(); i++) { String brandId = brandBuckets.get(i).getKey().toString(); //当商品品牌id为0时,代表商品没有选择品牌,所以过滤掉品牌选择器 + //当品牌id为空并且 if (brandId.equals("0") || (CharSequenceUtil.isNotEmpty(goodsSearch.getBrandId()) && Arrays.asList(goodsSearch.getBrandId().split("@")).contains(brandId))) { @@ -221,6 +223,9 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { String brandName = ""; if (brandBuckets.get(i).getAggregations() != null && brandBuckets.get(i).getAggregations().get(ATTR_BRAND_NAME) != null) { brandName = this.getAggregationsBrandOptions(brandBuckets.get(i).getAggregations().get(ATTR_BRAND_NAME)); + if (StringUtils.isEmpty(brandName)) { + continue; + } } String brandUrl = ""; @@ -228,6 +233,9 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { brandUrlBuckets.get(i).getAggregations() != null && brandUrlBuckets.get(i).getAggregations().get(ATTR_BRAND_URL) != null) { brandUrl = this.getAggregationsBrandOptions(brandUrlBuckets.get(i).getAggregations().get(ATTR_BRAND_URL)); + if (StringUtils.isEmpty(brandUrl)) { + continue; + } } SelectorOptions so = new SelectorOptions(); so.setName(brandName); From 3af00312141d636cb5153361178b6c5d85b5b795 Mon Sep 17 00:00:00 2001 From: Chopper Date: Fri, 24 Dec 2021 15:45:48 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E8=B5=A0=E5=88=B8?= =?UTF-8?q?=E5=8A=9F=E8=83=BDbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lili/event/impl/RegisteredCouponActivityExecute.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/consumer/src/main/java/cn/lili/event/impl/RegisteredCouponActivityExecute.java b/consumer/src/main/java/cn/lili/event/impl/RegisteredCouponActivityExecute.java index ca198508..75d2ad21 100644 --- a/consumer/src/main/java/cn/lili/event/impl/RegisteredCouponActivityExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/RegisteredCouponActivityExecute.java @@ -1,8 +1,10 @@ package cn.lili.event.impl; +import cn.hutool.core.date.DateUtil; import cn.lili.event.MemberRegisterEvent; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.promotion.entity.dos.CouponActivity; +import cn.lili.modules.promotion.entity.dto.BasePromotions; import cn.lili.modules.promotion.entity.enums.CouponActivityTypeEnum; import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum; import cn.lili.modules.promotion.service.CouponActivityService; @@ -10,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.Date; import java.util.List; /** @@ -34,8 +37,8 @@ public class RegisteredCouponActivityExecute implements MemberRegisterEvent { public void memberRegister(Member member) { List couponActivities = couponActivityService.list(new LambdaQueryWrapper() .eq(CouponActivity::getCouponActivityType, CouponActivityTypeEnum.REGISTERED.name()) - .eq(CouponActivity::getPromotionStatus, PromotionsStatusEnum.START.name())); + .ge(BasePromotions::getEndTime, new Date()) + .le(BasePromotions::getStartTime, new Date())); couponActivityService.registered(couponActivities, member); - } } From b1e70ebf12503f7cede463d8e8455566d7468f74 Mon Sep 17 00:00:00 2001 From: Chopper Date: Fri, 24 Dec 2021 15:46:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=83=E9=94=80=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E5=A4=A7=E4=BA=8E=E5=95=86=E5=93=81=E9=87=91=E9=A2=9D=E7=9A=84?= =?UTF-8?q?=E6=9E=81=E7=AB=AF=E6=83=85=E5=86=B5=E6=98=BE=E7=A4=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/order/entity/dto/PriceDetailDTO.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java index b03e1a51..15724eb7 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java @@ -349,14 +349,30 @@ public class PriceDetailDTO implements Serializable { public void setDiscountPrice(Double discountPrice) { this.discountPrice = discountPrice; + promotionPriceHandler(); this.recount(); } public void setCouponPrice(Double couponPrice) { this.couponPrice = couponPrice; + promotionPriceHandler(); this.recount(); } + /** + * 如果促销金额+优惠券金额大于商品金额问题处理 + */ + private void promotionPriceHandler() { + if (couponPrice == null || discountPrice == null) { + return; + } + //如果订单优惠总额>商品金额,则处理一下数据,使得两数相加<=商品金额 + if (CurrencyUtil.add(couponPrice, discountPrice) > goodsPrice) { + couponPrice = CurrencyUtil.sub(goodsPrice, discountPrice); + this.setCouponPrice(couponPrice); + } + } + public void setDistributionCommission(Double distributionCommission) { this.distributionCommission = distributionCommission; this.recount(); From ef31d6af8357e16985cba78499148b78d2aa62a0 Mon Sep 17 00:00:00 2001 From: Chopper Date: Fri, 24 Dec 2021 15:56:41 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=A0=8D=E4=BB=B7=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/KanjiaActivityGoodsServiceImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java index 219c8fc9..662853d5 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java @@ -11,6 +11,7 @@ import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods; import cn.lili.modules.promotion.entity.dos.PromotionGoods; +import cn.lili.modules.promotion.entity.dto.BasePromotions; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsOperationDTO; import cn.lili.modules.promotion.entity.enums.PromotionsScopeTypeEnum; @@ -23,6 +24,7 @@ import cn.lili.modules.promotion.service.KanjiaActivityGoodsService; import cn.lili.modules.promotion.service.PromotionGoodsService; import cn.lili.modules.promotion.tools.PromotionTools; import cn.lili.mybatis.util.PageUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.beans.BeanUtils; @@ -32,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; /** @@ -214,7 +217,11 @@ public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImp @Override public KanjiaActivityGoods getKanjiaGoodsBySkuId(String skuId) { - KanjiaActivityGoods kanjiaActivityGoods = this.getOne(new QueryWrapper().eq("sku_id", skuId), false); + KanjiaActivityGoods kanjiaActivityGoods = this.getOne( + new LambdaQueryWrapper() + .eq(KanjiaActivityGoods::getSkuId, skuId) + .ge(KanjiaActivityGoods::getEndTime, new Date()) + .le(KanjiaActivityGoods::getStartTime, new Date())); if (kanjiaActivityGoods != null && PromotionsStatusEnum.START.name().equals(kanjiaActivityGoods.getPromotionStatus())) { return kanjiaActivityGoods; }