|
@@ -71,15 +71,6 @@ public class RecommendService {
|
|
@ApolloJsonValue("${city_code:[]}")
|
|
@ApolloJsonValue("${city_code:[]}")
|
|
private Set<String> cityCodes;
|
|
private Set<String> cityCodes;
|
|
|
|
|
|
- @ApolloJsonValue("${new.exp.list:[6]}")
|
|
|
|
- private Set<Integer> newExpList;
|
|
|
|
-
|
|
|
|
- @ApolloJsonValue("${new.exp,config.v2:[]}")
|
|
|
|
- private List<ExpConfig> expConfigs;
|
|
|
|
-
|
|
|
|
- @Value("${new.exp.abtest.service.switch:true}")
|
|
|
|
- private boolean newExpABTestServiceSwitch;
|
|
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private FlowPoolConfigService flowPoolConfigService;
|
|
private FlowPoolConfigService flowPoolConfigService;
|
|
@Autowired
|
|
@Autowired
|
|
@@ -431,40 +422,6 @@ public class RecommendService {
|
|
param.setMachineInfo(machineInfo);
|
|
param.setMachineInfo(machineInfo);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- // TODO:hard code 为了快速做AB验证,应该由AB系统支持
|
|
|
|
- if (newExpList.contains(param.getAppType())) {
|
|
|
|
- if (newExpABTestServiceSwitch) {
|
|
|
|
- param.setExpIdMap(abTestRemoteService.getExp(param.getMid(), param.getUid(), param.getAppType(),
|
|
|
|
- request.getNewExpGroup()));
|
|
|
|
- } else {
|
|
|
|
- Map<String, List<Layer>> layerMap = CommonCollectionUtils.toMap(expConfigs, c -> c.getAppType(),
|
|
|
|
- c -> c.getLayers());
|
|
|
|
- if (MapUtils.isNotEmpty(layerMap)) {
|
|
|
|
- Map<String, Integer> bucketMap = JSONUtils.fromJson(request.getNewExpGroup(),
|
|
|
|
- new TypeToken<Map<String, Integer>>() {
|
|
|
|
- }, Collections.emptyMap());
|
|
|
|
- if (MapUtils.isNotEmpty(bucketMap)) {
|
|
|
|
- List<Layer> layers = layerMap.get(param.getAppType() + "");
|
|
|
|
-
|
|
|
|
- if (CollectionUtils.isNotEmpty(layers)) {
|
|
|
|
- Map<String, String> expIdMap = new HashMap<>();
|
|
|
|
- for (Layer layer : layers) {
|
|
|
|
- for (Exp exp : layer.getExps()) {
|
|
|
|
- if (bucketMap.containsKey(layer.getLayerId())
|
|
|
|
- && exp.getRange().length == 2
|
|
|
|
- && exp.getRange()[0] <= bucketMap.get(layer.getLayerId())
|
|
|
|
- && exp.getRange()[1] >= bucketMap.get(layer.getLayerId())) {
|
|
|
|
- expIdMap.put(layer.getLayerId(), exp.getExpId());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- param.setExpIdMap(expIdMap);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
if (StringUtils.isNotBlank(request.getCategoryId()) && StringUtils.isNumeric(request.getCategoryId())) {
|
|
if (StringUtils.isNotBlank(request.getCategoryId()) && StringUtils.isNumeric(request.getCategoryId())) {
|
|
param.setCategoryId(Integer.parseInt(request.getCategoryId()));
|
|
param.setCategoryId(Integer.parseInt(request.getCategoryId()));
|
|
}
|
|
}
|
|
@@ -521,19 +478,6 @@ public class RecommendService {
|
|
recallParam.setDataKey(param.getDataKey());
|
|
recallParam.setDataKey(param.getDataKey());
|
|
recallParam.setHRuleKey(param.getHRuleKey());
|
|
recallParam.setHRuleKey(param.getHRuleKey());
|
|
recallParam.setHDataKey(param.getHDataKey());
|
|
recallParam.setHDataKey(param.getHDataKey());
|
|
- if (newExpList.contains(param.getAppType())) {
|
|
|
|
- recallParam.setAbCode("");
|
|
|
|
- if (MapUtils.isNotEmpty(param.getExpIdMap()) && param.getExpIdMap().containsKey("recall")) {
|
|
|
|
- String expId = param.getExpIdMap().get("recall");
|
|
|
|
- if (abExpCodeMap.containsKey(expId)) {
|
|
|
|
- recallParam.setAbCode(abExpCodeMap.get(expId).get("ab_code"));
|
|
|
|
- recallParam.setRuleKey(abExpCodeMap.get(expId).get("rule_key"));
|
|
|
|
- recallParam.setDataKey(abExpCodeMap.get(expId).get("data_key"));
|
|
|
|
- recallParam.setHDataKey(abExpCodeMap.get(expId).get("h_data_key"));
|
|
|
|
- recallParam.setHRuleKey(abExpCodeMap.get(expId).get("h_rule_key"));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
recallParam.setVideoId(param.getVideoId());
|
|
recallParam.setVideoId(param.getVideoId());
|
|
recallParam.setFlowPoolAbtestGroup(param.getFlowPoolAbtestGroup());
|
|
recallParam.setFlowPoolAbtestGroup(param.getFlowPoolAbtestGroup());
|
|
@@ -554,7 +498,6 @@ public class RecommendService {
|
|
recallParam.setAbExpCodes(param.getAbExpCodes());
|
|
recallParam.setAbExpCodes(param.getAbExpCodes());
|
|
|
|
|
|
recallParam.setProvince(param.getProvince());
|
|
recallParam.setProvince(param.getProvince());
|
|
- recallParam.setExpIdMap(param.getExpIdMap());
|
|
|
|
recallParam.setCategoryId(param.getCategoryId());
|
|
recallParam.setCategoryId(param.getCategoryId());
|
|
|
|
|
|
recallParam.setCityCode(param.getCityCode());
|
|
recallParam.setCityCode(param.getCityCode());
|
|
@@ -576,23 +519,6 @@ public class RecommendService {
|
|
// note 避免非实验产品被覆盖
|
|
// note 避免非实验产品被覆盖
|
|
rankParam.setAbCode(param.getAbCode());
|
|
rankParam.setAbCode(param.getAbCode());
|
|
rankParam.setRankKeyPrefix(param.getRankKeyPrefix());
|
|
rankParam.setRankKeyPrefix(param.getRankKeyPrefix());
|
|
- if (newExpList.contains(param.getAppType())) {
|
|
|
|
- rankParam.setAbCode("");
|
|
|
|
-// if (MapUtils.isNotEmpty(param.getExpIdMap())
|
|
|
|
-// && param.getExpIdMap().containsKey("rank")) {
|
|
|
|
-// String expId = param.getExpIdMap().get("rank");
|
|
|
|
- // TODO hard code MVP版本 为了快速验证,对rank强制染色,不做实验编排
|
|
|
|
- if (MapUtils.isNotEmpty(param.getExpIdMap())
|
|
|
|
- && param.getExpIdMap().containsKey("recall")) {
|
|
|
|
- String expId = param.getExpIdMap().get("recall");
|
|
|
|
- if (abExpCodeMap.containsKey(expId)) {
|
|
|
|
- rankParam.setAbCode(abExpCodeMap.get(expId).get("ab_code"));
|
|
|
|
- rankParam.setRankKeyPrefix(StringUtils.isNotBlank(abExpCodeMap.get(expId).get("rank_key_prefix"))
|
|
|
|
- ? abExpCodeMap.get(expId).get("rank_key_prefix")
|
|
|
|
- : "rank:score1:");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
rankParam.setSize(param.getSize());
|
|
rankParam.setSize(param.getSize());
|
|
rankParam.setFlowPoolP(param.getFlowPoolP());
|
|
rankParam.setFlowPoolP(param.getFlowPoolP());
|
|
@@ -603,7 +529,6 @@ public class RecommendService {
|
|
rankParam.setCity(param.getCity());
|
|
rankParam.setCity(param.getCity());
|
|
rankParam.setMachineInfo(param.getMachineInfo());
|
|
rankParam.setMachineInfo(param.getMachineInfo());
|
|
rankParam.setAbExpCodes(param.getAbExpCodes());
|
|
rankParam.setAbExpCodes(param.getAbExpCodes());
|
|
- rankParam.setExpIdMap(param.getExpIdMap());
|
|
|
|
rankParam.setCategoryId(param.getCategoryId());
|
|
rankParam.setCategoryId(param.getCategoryId());
|
|
rankParam.setHeadVid(param.getVideoId());
|
|
rankParam.setHeadVid(param.getVideoId());
|
|
rankParam.setHotSceneType(param.getHotSceneType());
|
|
rankParam.setHotSceneType(param.getHotSceneType());
|
|
@@ -674,85 +599,4 @@ public class RecommendService {
|
|
consumer.accept(RegionHWithoutDupRecallStrategy.PUSH_FORM);
|
|
consumer.accept(RegionHWithoutDupRecallStrategy.PUSH_FORM);
|
|
}
|
|
}
|
|
|
|
|
|
- public static class ExpConfig {
|
|
|
|
- private String appType;
|
|
|
|
- private List<Layer> layers;
|
|
|
|
-
|
|
|
|
- public String getAppType() {
|
|
|
|
- return appType;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void setAppType(String appType) {
|
|
|
|
- this.appType = appType;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public List<Layer> getLayers() {
|
|
|
|
- return layers;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void setLayers(List<Layer> layers) {
|
|
|
|
- this.layers = layers;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static class Layer {
|
|
|
|
- private String layerId;
|
|
|
|
- private int bucketNum;
|
|
|
|
- private List<Exp> exps;
|
|
|
|
- private Map<String, String> groupRule;
|
|
|
|
-
|
|
|
|
- public String getLayerId() {
|
|
|
|
- return layerId;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void setLayerId(String layerId) {
|
|
|
|
- this.layerId = layerId;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public int getBucketNum() {
|
|
|
|
- return bucketNum;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void setBucketNum(int bucketNum) {
|
|
|
|
- this.bucketNum = bucketNum;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public List<Exp> getExps() {
|
|
|
|
- return exps;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void setExps(List<Exp> exps) {
|
|
|
|
- this.exps = exps;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public Map<String, String> getGroupRule() {
|
|
|
|
- return groupRule;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void setGroupRule(Map<String, String> groupRule) {
|
|
|
|
- this.groupRule = groupRule;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static class Exp {
|
|
|
|
- private String expId;
|
|
|
|
- private int[] range;
|
|
|
|
-
|
|
|
|
- public String getExpId() {
|
|
|
|
- return expId;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void setExpId(String expId) {
|
|
|
|
- this.expId = expId;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public int[] getRange() {
|
|
|
|
- return range;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void setRange(int[] range) {
|
|
|
|
- this.range = range;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
}
|
|
}
|