|
@@ -1,6 +1,7 @@
|
|
package com.tzld.piaoquan.ad.engine.service.score.impl;
|
|
package com.tzld.piaoquan.ad.engine.service.score.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.tzld.piaoquan.ad.engine.service.score.container.AdCreativeFeatureContainer;
|
|
import com.tzld.piaoquan.ad.engine.service.score.container.PidLambdaContainer;
|
|
import com.tzld.piaoquan.ad.engine.service.score.container.PidLambdaContainer;
|
|
import com.tzld.piaoquan.ad.engine.service.score.dto.AdPlatformBidCreativeDTO;
|
|
import com.tzld.piaoquan.ad.engine.service.score.dto.AdPlatformBidCreativeDTO;
|
|
import com.tzld.piaoquan.ad.engine.service.score.param.BidRankRecommendRequestParam;
|
|
import com.tzld.piaoquan.ad.engine.service.score.param.BidRankRecommendRequestParam;
|
|
@@ -39,6 +40,9 @@ public class RankServiceImpl implements RankService {
|
|
FeatureRemoteService featureRemoteService;
|
|
FeatureRemoteService featureRemoteService;
|
|
@Autowired
|
|
@Autowired
|
|
RankServiceThompsonImpl rankServiceThompson;
|
|
RankServiceThompsonImpl rankServiceThompson;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ AdCreativeFeatureContainer adCreativeFeatureContainer;
|
|
@Value("${ad.model.cpm.max:200}")
|
|
@Value("${ad.model.cpm.max:200}")
|
|
Double cpmMax=200d;
|
|
Double cpmMax=200d;
|
|
@Value("${ad.model.cpm.min:30}")
|
|
@Value("${ad.model.cpm.min:30}")
|
|
@@ -59,10 +63,12 @@ public class RankServiceImpl implements RankService {
|
|
if(userAdFeature==null){
|
|
if(userAdFeature==null){
|
|
userAdFeature=new UserAdFeature();
|
|
userAdFeature=new UserAdFeature();
|
|
}
|
|
}
|
|
- List<AdRankItem> rankItems=featureRemoteService.
|
|
|
|
- getAllAdFeatureList(
|
|
|
|
- CommonCollectionUtils.toList(request.getAdIdList(),id->id.toString())
|
|
|
|
- );
|
|
|
|
|
|
+
|
|
|
|
+// List<AdRankItem> rankItems=featureRemoteService.
|
|
|
|
+// getAllAdFeatureList(
|
|
|
|
+// CommonCollectionUtils.toList(request.getAdIdList(),id->id.toString())
|
|
|
|
+// );
|
|
|
|
+ List<AdRankItem> rankItems=adCreativeFeatureContainer.getAll(request.getAdIdList());
|
|
//避免recommend-feature出问题
|
|
//避免recommend-feature出问题
|
|
if(rankItems==null|| rankItems.size()==0){
|
|
if(rankItems==null|| rankItems.size()==0){
|
|
rankItems=new LinkedList<>();
|
|
rankItems=new LinkedList<>();
|
|
@@ -123,19 +129,20 @@ public class RankServiceImpl implements RankService {
|
|
if(userAdFeature==null){
|
|
if(userAdFeature==null){
|
|
userAdFeature=new UserAdFeature();
|
|
userAdFeature=new UserAdFeature();
|
|
}
|
|
}
|
|
- Map<String,List<AdPlatformBidCreativeDTO>> groupMap=request
|
|
|
|
|
|
+ Map<Long,List<AdPlatformBidCreativeDTO>> groupMap=request
|
|
.getCreativeList()
|
|
.getCreativeList()
|
|
.stream()
|
|
.stream()
|
|
- .collect(Collectors.groupingBy(creativeDTO -> creativeDTO.getCreativeId()+""));
|
|
|
|
-
|
|
|
|
- List<AdRankItem> rankItems=featureRemoteService.
|
|
|
|
- getAllAdFeatureList(
|
|
|
|
- new ArrayList<>(groupMap.keySet())
|
|
|
|
- );
|
|
|
|
|
|
+ .collect(Collectors.groupingBy(creativeDTO -> creativeDTO.getCreativeId()));
|
|
|
|
|
|
|
|
+// List<AdRankItem> rankItems=featureRemoteService.
|
|
|
|
+// getAllAdFeatureList(
|
|
|
|
+// new ArrayList<>(groupMap.keySet())
|
|
|
|
+// );
|
|
|
|
+ List<AdRankItem> rankItems=adCreativeFeatureContainer.getAll(new ArrayList<>(groupMap.keySet()));
|
|
for(AdRankItem item:rankItems){
|
|
for(AdRankItem item:rankItems){
|
|
try {
|
|
try {
|
|
- AdPlatformBidCreativeDTO dto=groupMap.get(item.getAdId()+"").get(0);
|
|
|
|
|
|
+// AdPlatformBidCreativeDTO dto=groupMap.get(item.getAdId()+"").get(0);
|
|
|
|
+ AdPlatformBidCreativeDTO dto=groupMap.get(item.getAdId()).get(0);
|
|
item.setBid1(dto.getBid1());
|
|
item.setBid1(dto.getBid1());
|
|
item.setBid2(dto.getBid2());
|
|
item.setBid2(dto.getBid2());
|
|
item.setCpa(dto.getCpa());
|
|
item.setCpa(dto.getCpa());
|
|
@@ -171,7 +178,8 @@ public class RankServiceImpl implements RankService {
|
|
result.setCreativeId(topItem.getAdId());
|
|
result.setCreativeId(topItem.getAdId());
|
|
result.setPctr(topItem.getCtr());
|
|
result.setPctr(topItem.getCtr());
|
|
result.setPcvr(topItem.getCvr());
|
|
result.setPcvr(topItem.getCvr());
|
|
- result.setCreativeCode(groupMap.get(topItem.getAdId()+"").get(0).getCreativeCode());
|
|
|
|
|
|
+// result.setCreativeCode(groupMap.get(topItem.getAdId()+"").get(0).getCreativeCode());
|
|
|
|
+ result.setCreativeCode(groupMap.get(topItem.getAdId()).get(0).getCreativeCode());
|
|
double realECpm=0d;
|
|
double realECpm=0d;
|
|
//经验值 待定
|
|
//经验值 待定
|
|
realECpm=topItem.getEcpm1();
|
|
realECpm=topItem.getEcpm1();
|