|
|
@@ -18,6 +18,7 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
@Component
|
|
|
@@ -31,8 +32,8 @@ public class ViewCountRateStrategy implements ScoreStrategy {
|
|
|
@Autowired
|
|
|
AccountAvgInfoRepository accountAvgInfoRepository;
|
|
|
|
|
|
- @Value("${view.count.rate.his.first.publish.time.config:5}")
|
|
|
- private int hisFirstPublishTimeConfig;
|
|
|
+ @Value("${view.count.rate.account.his.filter.days:{}}")
|
|
|
+ private Map<String, Integer> accountHisFilterDaysConfig;
|
|
|
|
|
|
@Override
|
|
|
public List<Score> score(ScoreParam param) {
|
|
|
@@ -77,12 +78,17 @@ public class ViewCountRateStrategy implements ScoreStrategy {
|
|
|
if (CollectionUtils.isEmpty(content.getHisPublishArticleList())) {
|
|
|
continue;
|
|
|
}
|
|
|
- int hisFirstPublishTime = 0;
|
|
|
for (ContentHisPublishArticle hisItem : content.getHisPublishArticleList()) {
|
|
|
// 过滤掉发布时间晚于19点数据
|
|
|
if (ScoreStrategy.hisContentLateFilter(hisItem.getPublishTimestamp())) {
|
|
|
continue;
|
|
|
}
|
|
|
+ // 过滤掉历史数据中,阅读量为0的文章
|
|
|
+ Integer hisFilterDays = accountHisFilterDaysConfig.get(param.getGhId());
|
|
|
+ if (Objects.nonNull(hisFilterDays)
|
|
|
+ && hisItem.getPublishTimestamp() < System.currentTimeMillis() / 1000 - hisFilterDays * 24 * 60 * 60) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
if (hisItem.isInnerAccount() && Objects.nonNull(hisItem.getViewCount())
|
|
|
&& hisItem.getViewCount() > 0 && Objects.nonNull(hisItem.getReadAvgCiUpper())
|
|
|
&& hisItem.getReadAvgCiUpper() > 0) {
|
|
|
@@ -90,7 +96,6 @@ public class ViewCountRateStrategy implements ScoreStrategy {
|
|
|
if (hisItem.getItemIndex() == 1) {
|
|
|
showViewCountSumFirst += hisItem.getViewCount();
|
|
|
readAvgCiUpperSumFirst += hisItem.getReadAvgCiUpper();
|
|
|
- hisFirstPublishTime++;
|
|
|
} else if (hisItem.getItemIndex() == 2) {
|
|
|
if (Objects.nonNull(hisItem.getFirstViewCount()) && hisItem.getFirstViewCount() > 0 &&
|
|
|
Objects.nonNull(hisItem.getFirstViewCountRate()) && hisItem.getFirstViewCountRate() > 0) {
|
|
|
@@ -122,14 +127,8 @@ public class ViewCountRateStrategy implements ScoreStrategy {
|
|
|
double bigRateW = 1D;
|
|
|
// 如果有头条反馈数据,优先选取头条反馈数据;
|
|
|
if (showViewCountSumFirst > 0) {
|
|
|
- // 如果历史头条发布次数小于x次,将次条数据也加入计算
|
|
|
- if (hisFirstPublishTime < hisFirstPublishTimeConfig) {
|
|
|
- showViewCountSum = showViewCountSumFirst + showViewCountSumSecond;
|
|
|
- readAvgCiUpperSum = readAvgCiUpperSumFirst + readAvgCiUpperSumSecond;
|
|
|
- } else {
|
|
|
- showViewCountSum = showViewCountSumFirst;
|
|
|
- readAvgCiUpperSum = readAvgCiUpperSumFirst;
|
|
|
- }
|
|
|
+ showViewCountSum = showViewCountSumFirst;
|
|
|
+ readAvgCiUpperSum = readAvgCiUpperSumFirst;
|
|
|
} else if (showViewCountSumSecond > 0) {
|
|
|
showViewCountSum = showViewCountSumSecond;
|
|
|
readAvgCiUpperSum = readAvgCiUpperSumSecond;
|