From ac60f27814a8c5da7b7d36a8f878ba1d019cc56f Mon Sep 17 00:00:00 2001 From: paulGao Date: Wed, 22 Sep 2021 09:40:05 +0800 Subject: [PATCH 1/3] Article get content method by HTML unescape --- .../cn/lili/modules/page/entity/dos/Article.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/framework/src/main/java/cn/lili/modules/page/entity/dos/Article.java b/framework/src/main/java/cn/lili/modules/page/entity/dos/Article.java index c1a89b9a..7e65a45d 100644 --- a/framework/src/main/java/cn/lili/modules/page/entity/dos/Article.java +++ b/framework/src/main/java/cn/lili/modules/page/entity/dos/Article.java @@ -1,7 +1,9 @@ package cn.lili.modules.page.entity.dos; -import cn.lili.mybatis.BaseEntity; +import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.http.HtmlUtil; import cn.lili.modules.page.entity.enums.ArticleEnum; +import cn.lili.mybatis.BaseEntity; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -47,4 +49,12 @@ public class Article extends BaseEntity { */ @ApiModelProperty(value = "类型") private String type; + + public String getContent() { + if (CharSequenceUtil.isNotEmpty(content)) { + return HtmlUtil.unescape(content); + } + return content; + } + } \ No newline at end of file From d4c9b0f147f07f535ee04ee4b86cd82ceacd79a4 Mon Sep 17 00:00:00 2001 From: paulGao Date: Wed, 22 Sep 2021 09:43:11 +0800 Subject: [PATCH 2/3] fix promotion seckill for no join goods is not autostart --- .../serviceimpl/PromotionServiceImpl.java | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java index 8fccabc9..46ce984e 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java @@ -398,42 +398,42 @@ public class PromotionServiceImpl implements PromotionService { seckill.setPromotionStatus(promotionMessage.getPromotionStatus()); result = this.seckillService.update(updateWrapper(promotionMessage)); log.info("更新限时抢购活动状态:{}", seckill); - //判断参与活动的商品是否为空,如果为空则返回 - if (seckill.getSeckillApplyList() == null) { - return result; - } - //循环秒杀商品数据,将数据按照时间段进行存储 - for (SeckillApply seckillApply : seckill.getSeckillApplyList()) { - if (seckillApply.getPromotionApplyStatus().equals(PromotionApplyStatusEnum.PASS.name())) { - //下一个时间,默认为当天结束时间 - int nextHour = 23; - String[] split = seckill.getHours().split(","); - int[] hoursSored = Arrays.stream(split).mapToInt(Integer::parseInt).toArray(); - //排序时间段 - Arrays.sort(hoursSored); - for (int i : hoursSored) { - //如果当前时间段大于排序后的时间段的某个,当前时间段的下个时间段即为排序后的时间段的某个 - if (seckillApply.getTimeLine() < i) { - nextHour = i; - break; + //判断参与活动的商品是否为空 + if (seckill.getSeckillApplyList() != null && !seckill.getSeckillApplyList().isEmpty()) { + //循环秒杀商品数据,将数据按照时间段进行存储 + for (SeckillApply seckillApply : seckill.getSeckillApplyList()) { + if (seckillApply.getPromotionApplyStatus().equals(PromotionApplyStatusEnum.PASS.name())) { + //下一个时间,默认为当天结束时间 + int nextHour = 23; + String[] split = seckill.getHours().split(","); + int[] hoursSored = Arrays.stream(split).mapToInt(Integer::parseInt).toArray(); + //排序时间段 + Arrays.sort(hoursSored); + for (int i : hoursSored) { + //如果当前时间段大于排序后的时间段的某个,当前时间段的下个时间段即为排序后的时间段的某个 + if (seckillApply.getTimeLine() < i) { + nextHour = i; + break; + } } + Seckill seckill1 = JSONUtil.toBean(JSONUtil.toJsonStr(seckill), Seckill.class); + String format = DateUtil.format(seckill.getStartTime(), cn.lili.common.utils.DateUtil.STANDARD_DATE_FORMAT); + DateTime parseStartTime = DateUtil.parse((format + " " + seckillApply.getTimeLine()), "yyyy-MM-dd HH"); + DateTime parseEndTime = DateUtil.parse((format + " " + nextHour), "yyyy-MM-dd HH"); + //如果是当天最后的时间段则设置到当天结束时间的59分59秒 + if (nextHour == seckillApply.getTimeLine()) { + parseEndTime = DateUtil.parse((format + " " + nextHour + ":59:59"), cn.lili.common.utils.DateUtil.STANDARD_FORMAT); + } + seckill1.setStartTime(parseStartTime); + //当时商品的秒杀活动活动结束时间为下个时间段的开始 + seckill1.setEndTime(parseEndTime); + log.info("更新限时抢购商品状态:{}", seckill1); + this.goodsIndexService.updateEsGoodsIndex(seckillApply.getSkuId(), seckill1, promotionTypeEnum.name() + "-" + seckillApply.getTimeLine(), seckillApply.getPrice()); } - Seckill seckill1 = JSONUtil.toBean(JSONUtil.toJsonStr(seckill), Seckill.class); - String format = DateUtil.format(seckill.getStartTime(), cn.lili.common.utils.DateUtil.STANDARD_DATE_FORMAT); - DateTime parseStartTime = DateUtil.parse((format + " " + seckillApply.getTimeLine()), "yyyy-MM-dd HH"); - DateTime parseEndTime = DateUtil.parse((format + " " + nextHour), "yyyy-MM-dd HH"); - //如果是当天最后的时间段则设置到当天结束时间的59分59秒 - if (nextHour == seckillApply.getTimeLine()) { - parseEndTime = DateUtil.parse((format + " " + nextHour + ":59:59"), cn.lili.common.utils.DateUtil.STANDARD_FORMAT); - } - seckill1.setStartTime(parseStartTime); - //当时商品的秒杀活动活动结束时间为下个时间段的开始 - seckill1.setEndTime(parseEndTime); - log.info("更新限时抢购商品状态:{}", seckill1); - this.goodsIndexService.updateEsGoodsIndex(seckillApply.getSkuId(), seckill1, promotionTypeEnum.name() + "-" + seckillApply.getTimeLine(), seckillApply.getPrice()); } } + this.mongoTemplate.save(seckill); return result; } From e5e809ed72f6befcf8f69d0172e382624422133d Mon Sep 17 00:00:00 2001 From: paulGao Date: Wed, 22 Sep 2021 09:45:51 +0800 Subject: [PATCH 3/3] fix es goods search category name length does not match category path length --- .../serviceimpl/EsGoodsSearchServiceImpl.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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 99ec19a5..73792f46 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 @@ -164,15 +164,16 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { } String[] split = ArrayUtil.distinct(categoryPath.split(",")); String[] nameSplit = categoryNamePath.split(","); - for (int i = 0; i < split.length; i++) { - SelectorOptions so = new SelectorOptions(); - so.setName(nameSplit[i]); - so.setValue(split[i]); - if (!categoryOptions.contains(so)) { - categoryOptions.add(so); + if (split.length == nameSplit.length) { + for (int i = 0; i < split.length; i++) { + SelectorOptions so = new SelectorOptions(); + so.setName(nameSplit[i]); + so.setValue(split[i]); + if (!categoryOptions.contains(so)) { + categoryOptions.add(so); + } } } - } } esGoodsRelatedInfo.setCategories(categoryOptions);