Commit 0eb0dfd2 authored by 刘基明's avatar 刘基明

话题排序

parent 6ac3f3bc
package com.tanpu.community.api.beans.qo;
import com.tanpu.biz.common.enums.community.TopicStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -41,4 +42,8 @@ public class TopicRankQo {
private Integer minutesTillNow;
private Double score;
public boolean judgeNewTopic(){
return TopicStatusEnum.NEWEST.getCode().equals(type);
}
}
......@@ -190,9 +190,21 @@ public class RankService {
.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
// 非“新”话题才能添加“热”标签
if (!TopicStatusEnum.NEWEST.getCode().equals(rankList.get(0).getType())) {
rankList.get(0).setType(TopicStatusEnum.HOTTEST.getCode());
}
this.rankTopicList = rankList;
this.rankTopicListTop4 = rankList.stream().limit(4).collect(Collectors.toList());
// 首页推荐话题
List<TopicRankQo> newest2Topic = rankList.stream().filter(TopicRankQo::judgeNewTopic).limit(2).collect(Collectors.toList());
List<TopicRankQo> top4Topic = rankList.stream()
.limit(6)
.filter(o -> !newest2Topic.contains(o))
.limit(4-newest2Topic.size())
.collect(Collectors.toList());
top4Topic.addAll(newest2Topic);
this.rankTopicListTop4 = top4Topic;
//落库
rankLogService.logTopicRank(rankList, start, TimeUtils.calMillisTillNow(start));
......
......@@ -101,8 +101,8 @@ public class ConvertUtil {
public static TopicRankQo topicEntityToHotQo(TopicEntity topicEntity) {
TopicRankQo topicRankQo = new TopicRankQo();
BeanUtils.copyProperties(topicEntity, topicRankQo);
//2小时内发帖,添加新话题标签
if (TimeUtils.calMinuteTillNow(topicEntity.getCreateTime()) < 120) {
// 24小时内发帖,添加新话题标签
if (TimeUtils.calMinuteTillNow(topicEntity.getCreateTime()) < 60 * 24) {
topicRankQo.setType(TopicStatusEnum.NEWEST.getCode());
}
topicRankQo.setMinutesTillNow((int) TimeUtils.calMinuteTillNow(topicEntity.getCreateTime()));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment