!33 修复文章获取内容转义,限时抢购无参加商品不开启,商品搜索报错

Merge pull request !33 from OceansDeep/feature/pg
This commit is contained in:
OceansDeep 2021-09-22 01:51:12 +00:00 committed by Gitee
commit 1de4dea1fb
3 changed files with 50 additions and 39 deletions

View File

@ -1,7 +1,9 @@
package cn.lili.modules.page.entity.dos; 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.modules.page.entity.enums.ArticleEnum;
import cn.lili.mybatis.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -47,4 +49,12 @@ public class Article extends BaseEntity {
*/ */
@ApiModelProperty(value = "类型") @ApiModelProperty(value = "类型")
private String type; private String type;
public String getContent() {
if (CharSequenceUtil.isNotEmpty(content)) {
return HtmlUtil.unescape(content);
}
return content;
}
} }

View File

@ -398,42 +398,42 @@ public class PromotionServiceImpl implements PromotionService {
seckill.setPromotionStatus(promotionMessage.getPromotionStatus()); seckill.setPromotionStatus(promotionMessage.getPromotionStatus());
result = this.seckillService.update(updateWrapper(promotionMessage)); result = this.seckillService.update(updateWrapper(promotionMessage));
log.info("更新限时抢购活动状态:{}", seckill); log.info("更新限时抢购活动状态:{}", seckill);
//判断参与活动的商品是否为空如果为空则返回
if (seckill.getSeckillApplyList() == null) {
return result;
}
//循环秒杀商品数据将数据按照时间段进行存储 //判断参与活动的商品是否为空
for (SeckillApply seckillApply : seckill.getSeckillApplyList()) { if (seckill.getSeckillApplyList() != null && !seckill.getSeckillApplyList().isEmpty()) {
if (seckillApply.getPromotionApplyStatus().equals(PromotionApplyStatusEnum.PASS.name())) { //循环秒杀商品数据将数据按照时间段进行存储
//下一个时间默认为当天结束时间 for (SeckillApply seckillApply : seckill.getSeckillApplyList()) {
int nextHour = 23; if (seckillApply.getPromotionApplyStatus().equals(PromotionApplyStatusEnum.PASS.name())) {
String[] split = seckill.getHours().split(","); //下一个时间默认为当天结束时间
int[] hoursSored = Arrays.stream(split).mapToInt(Integer::parseInt).toArray(); int nextHour = 23;
//排序时间段 String[] split = seckill.getHours().split(",");
Arrays.sort(hoursSored); int[] hoursSored = Arrays.stream(split).mapToInt(Integer::parseInt).toArray();
for (int i : hoursSored) { //排序时间段
//如果当前时间段大于排序后的时间段的某个当前时间段的下个时间段即为排序后的时间段的某个 Arrays.sort(hoursSored);
if (seckillApply.getTimeLine() < i) { for (int i : hoursSored) {
nextHour = i; //如果当前时间段大于排序后的时间段的某个当前时间段的下个时间段即为排序后的时间段的某个
break; 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); this.mongoTemplate.save(seckill);
return result; return result;
} }

View File

@ -164,15 +164,16 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
} }
String[] split = ArrayUtil.distinct(categoryPath.split(",")); String[] split = ArrayUtil.distinct(categoryPath.split(","));
String[] nameSplit = categoryNamePath.split(","); String[] nameSplit = categoryNamePath.split(",");
for (int i = 0; i < split.length; i++) { if (split.length == nameSplit.length) {
SelectorOptions so = new SelectorOptions(); for (int i = 0; i < split.length; i++) {
so.setName(nameSplit[i]); SelectorOptions so = new SelectorOptions();
so.setValue(split[i]); so.setName(nameSplit[i]);
if (!categoryOptions.contains(so)) { so.setValue(split[i]);
categoryOptions.add(so); if (!categoryOptions.contains(so)) {
categoryOptions.add(so);
}
} }
} }
} }
} }
esGoodsRelatedInfo.setCategories(categoryOptions); esGoodsRelatedInfo.setCategories(categoryOptions);