Преглед на файлове

Merge branch 'refs/heads/master' into dev-xym-extract-public-methods

xueyiming преди 4 дни
родител
ревизия
06db1db82e

+ 24 - 0
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/enums/GuaranteedTypeEnum.java

@@ -0,0 +1,24 @@
+package com.tzld.piaoquan.ad.engine.commons.enums;
+
+public enum GuaranteedTypeEnum {
+
+    IS_GUARANTEED(1, "保量广告"),
+    NOT_GUARANTEED(0, "非保量广告"),
+
+    ;
+    private final Integer type;
+    private final String desc;
+
+    GuaranteedTypeEnum(Integer type, String desc) {
+        this.type = type;
+        this.desc = desc;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+}

+ 10 - 0
ad-engine-server/src/main/java/com/tzld/piaoquan/ad/engine/server/controller/AdRecommendController.java

@@ -1,5 +1,6 @@
 package com.tzld.piaoquan.ad.engine.server.controller;
 
+import com.tzld.piaoquan.ad.engine.commons.enums.GuaranteedTypeEnum;
 import com.tzld.piaoquan.ad.engine.service.score.RankService;
 import com.tzld.piaoquan.ad.engine.commons.dto.AdPlatformCreativeDTO;
 import com.tzld.piaoquan.ad.engine.service.score.deprecated.BidRankRecommendRequestParam;
@@ -43,6 +44,15 @@ public class AdRecommendController {
                 Map<String, Object> contentMap = new HashMap<>();
                 contentMap.put("adId", rankResult.getAdId());
                 contentMap.put("adScore", rankResult.getScore());
+                Double ctcvrScore = rankResult.getScoreMap().get("ctcvrScore");
+                if (ctcvrScore != null) {
+                    contentMap.put("ecpm", ctcvrScore * rankResult.getCpa() * 1000);
+                }
+                if (rankResult.getExt().get("isGuaranteed") != null && rankResult.getExt().get("isGuaranteed").equals(true)) {
+                    contentMap.put("type", GuaranteedTypeEnum.IS_GUARANTEED.getType());
+                } else {
+                    contentMap.put("type", GuaranteedTypeEnum.NOT_GUARANTEED.getType());
+                }
                 map.put("content", contentMap);
                 return map;
             }

+ 10 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBasic.java

@@ -258,8 +258,10 @@ public abstract class RankStrategyBasic implements RankStrategy {
             GuaranteeView guaranteeView = map.get(adVerId);
             if (guaranteeView != null) {
                 double guaranteeWeight = calculateGuaranteedWeight(guaranteeView);
+                boolean isGuaranteed = isGuaranteed(guaranteeView);
                 ext.put("guaranteeView", guaranteeView.toString());
                 ext.put("guaranteeWeight", guaranteeWeight);
+                ext.put("isGuaranteed", isGuaranteed);
             }
         }
     }
@@ -294,6 +296,14 @@ public abstract class RankStrategyBasic implements RankStrategy {
         return guaranteeWeight;
     }
 
+    protected boolean isGuaranteed(GuaranteeView guaranteeView) {
+        if (guaranteeView == null) {
+            return false;
+        }
+        return guaranteeView.getGuaranteeNum() != null && guaranteeView.getGuaranteeNum() != 0
+                && guaranteeView.getGuaranteeRate() != null && guaranteeView.getGuaranteeRate() != 0.0;
+    }
+
     protected double getGuaranteeScoreCoefficient(ScoreParam scoreParam, Map<String, Object> ext) {
         if (scoreParam.getExpCodeSet().contains(guaranteeExp)) {
             if (ext.get("guaranteeWeight") == null) {