|
@@ -3,13 +3,16 @@ package com.tzld.piaoquan.recommend.server.service.rank;
|
|
|
|
|
|
import com.tzld.piaoquan.recommend.server.common.base.ItemFeature;
|
|
|
import com.tzld.piaoquan.recommend.server.common.base.RankItem;
|
|
|
+import com.tzld.piaoquan.recommend.server.common.base.RequestContext;
|
|
|
import com.tzld.piaoquan.recommend.server.common.base.UserFeature;
|
|
|
import com.tzld.piaoquan.recommend.server.common.enums.AppTypeEnum;
|
|
|
+import com.tzld.piaoquan.recommend.server.model.MachineInfo;
|
|
|
import com.tzld.piaoquan.recommend.server.model.Video;
|
|
|
import com.tzld.piaoquan.recommend.server.remote.FeatureRemoteService;
|
|
|
import com.tzld.piaoquan.recommend.server.service.flowpool.FlowPoolConstants;
|
|
|
import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
|
|
|
import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
|
|
|
+import com.tzld.piaoquan.recommend.server.service.score.ScoreParam;
|
|
|
import com.tzld.piaoquan.recommend.server.service.score.ScorerUtils;
|
|
|
import com.tzld.piaoquan.recommend.server.util.CommonCollectionUtils;
|
|
|
import com.tzld.piaoquan.recommend.server.util.JSONUtils;
|
|
@@ -21,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -164,7 +168,7 @@ public class RankService {
|
|
|
|
|
|
// TODO
|
|
|
List<RankItem> rovRecallScore = ScorerUtils.getScorerPipeline(ScorerUtils.BASE_CONF)
|
|
|
- .scoring(param, userFeature, rankItems);
|
|
|
+ .scoring(convert(param), userFeature, rankItems);
|
|
|
log.info("mergeAndRankRovRecall rovRecallScore={}", JSONUtils.toJson(rovRecallScore));
|
|
|
|
|
|
return CommonCollectionUtils.toList(rovRecallScore, i -> {
|
|
@@ -175,6 +179,35 @@ public class RankService {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ private ScoreParam convert(RankParam param) {
|
|
|
+ ScoreParam scoreParam = new ScoreParam();
|
|
|
+ // TODO hardcode 为了兼容写入逻辑
|
|
|
+ RequestContext context = new RequestContext();
|
|
|
+ context.setApptype(param.getAppType() + "");
|
|
|
+
|
|
|
+ // TODO 地域转换
|
|
|
+// context.setRegion();
|
|
|
+// context.setCity();
|
|
|
+
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ context.setWeek((calendar.get(Calendar.DAY_OF_WEEK) + 6) % 7 + "");
|
|
|
+ context.setDay(new SimpleDateFormat("yyyyMMdd").format(calendar.getTime()));
|
|
|
+ context.setHour(new SimpleDateFormat("HH").format(calendar.getTime()));
|
|
|
+
|
|
|
+ MachineInfo machineInfo = param.getMachineInfo();
|
|
|
+ if (machineInfo != null) {
|
|
|
+ context.setMachineinfo_brand(machineInfo.getBrand());
|
|
|
+ context.setMachineinfo_model(machineInfo.getModel());
|
|
|
+ context.setMachineinfo_platform(machineInfo.getPlatform());
|
|
|
+ context.setMachineinfo_sdkversion(machineInfo.getSdkVersion());
|
|
|
+ context.setMachineinfo_system(machineInfo.getSystem());
|
|
|
+ context.setMachineinfo_wechatversion(machineInfo.getWechatVersion());
|
|
|
+ }
|
|
|
+
|
|
|
+ scoreParam.setRequestContext(context);
|
|
|
+ return scoreParam;
|
|
|
+ }
|
|
|
+
|
|
|
private List<Video> mergeAndRankFlowPoolRecall(RankParam param) {
|
|
|
if (param.getAppType() == AppTypeEnum.LAO_HAO_KAN_VIDEO.getCode()
|
|
|
|| param.getAppType() == AppTypeEnum.ZUI_JING_QI.getCode()) {
|