瀏覽代碼

Merge branch 'feature_20250814_user_layer_4l' of algorithm/ad-engine into master

zhaohaipeng 5 天之前
父節點
當前提交
ddcc77100b

+ 5 - 24
ad-engine-server/src/main/java/com/tzld/piaoquan/ad/engine/server/controller/AdRecommendController.java

@@ -10,6 +10,7 @@ import com.tzld.piaoquan.ad.engine.commons.param.RankRecommendRequestParam;
 import com.tzld.piaoquan.ad.engine.commons.redis.AlgorithmRedisHelper;
 import com.tzld.piaoquan.ad.engine.service.score.RankService;
 import com.tzld.piaoquan.ad.engine.service.score.deprecated.BidRankRecommendRequestParam;
+import com.tzld.piaoquan.ad.engine.service.user.UserService;
 import com.tzld.piaoquan.recommend.feature.domain.ad.base.AdRankItem;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -33,7 +34,7 @@ public class AdRecommendController {
     RankService rankService;
 
     @Autowired
-    protected AlgorithmRedisHelper algRedisHelper;
+    private UserService userService;
 
     @RequestMapping("/top1/basic")
     public Map<String, Object> adRecommendTop1Basic(@RequestBody RankRecommendRequestParam request) {
@@ -136,29 +137,9 @@ public class AdRecommendController {
         }
         map.put("code", "0");
         map.put("msg", "success");
-        Map<String, Object> result = new HashMap<>();
-        map.put("content", result);
-        String key = String.format("ad:engine:mid:layer:%s", request.getMid());
-        String value = algRedisHelper.get(key);
-        if (StringUtils.isEmpty(value)) {
-            result.put("layer", "无曝光");
-            return map;
-        }
-        try {
-            Map<String, String> layerMap = JSON.parseObject(value, new TypeReference<Map<String, String>>() {
-            });
-            String layer = layerMap.getOrDefault("layer", "无曝光");
-            if (Objects.equals(layer, "已转化")) {
-                layer = "有转化";
-            }
-            result.put("layer", layer);
-            return map;
-        } catch (Exception e) {
-            log.error("getMidWithLayer error. mid: {}, \n", request.getMid(), e);
-            map.put("code", "1");
-            map.put("msg", "get mid layer error");
-            return map;
-        }
+        Map<String, String> userLayer = userService.getUserLayer(request.getMid());
+        map.put("content", userLayer);
+        return map;
     }
 
 

+ 1 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/impl/PredictModelServiceImpl.java

@@ -275,7 +275,7 @@ public class PredictModelServiceImpl implements PredictModelService {
             setExtraParam(modelParam);
 
             requestParam.setShareType(shareType);
-            String userLayer = userService.getUserLayerByMid(requestParam.getMid());
+            String userLayer = userService.getUserLayer4Level(requestParam.getMid());
             requestParam.setUserLayer(userLayer);
 
             // 先走rootSessionId 实验

+ 5 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/user/UserService.java

@@ -1,5 +1,9 @@
 package com.tzld.piaoquan.ad.engine.service.user;
 
+import java.util.Map;
+
 public interface UserService {
-    String getUserLayerByMid(String mid);
+    String getUserLayer4Level(String mid);
+
+    Map<String, String> getUserLayer(String mid);
 }

+ 37 - 8
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/user/impl/UserServiceImpl.java

@@ -5,10 +5,12 @@ import com.alibaba.fastjson.TypeReference;
 import com.tzld.piaoquan.ad.engine.commons.redis.AlgorithmRedisHelper;
 import com.tzld.piaoquan.ad.engine.service.user.UserService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.Map;
 
 @Slf4j
@@ -19,24 +21,51 @@ public class UserServiceImpl implements UserService {
     protected AlgorithmRedisHelper algRedisHelper;
 
     @Override
-    public String getUserLayerByMid(String mid) {
+    public String getUserLayer4Level(String mid) {
+
+        Map<String, String> userLayer = this.getUserLayer(mid);
+        if (MapUtils.isEmpty(userLayer)) {
+            return "无曝光";
+        }
+
+        return userLayer.getOrDefault("layer_l4", "无曝光");
+    }
+
+    @Override
+    public Map<String, String> getUserLayer(String mid) {
+
+        Map<String, String> resultMap = new HashMap<>();
+
+        if (StringUtils.isEmpty(mid)) {
+            return resultMap;
+        }
+
         String key = String.format("ad:engine:mid:layer:%s", mid);
         String value = algRedisHelper.get(key);
         if (StringUtils.isEmpty(value)) {
-            return "无曝光";
+            return resultMap;
         }
+
         try {
             Map<String, String> layerMap = JSON.parseObject(value, new TypeReference<Map<String, String>>() {
             });
-            String layer = layerMap.getOrDefault("layer", "无曝光");
-            if (StringUtils.equals(layer, "已转化")) {
-                layer = "有转化";
+            String layer3L = layerMap.getOrDefault("layer", "无曝光");
+            if (StringUtils.equals(layer3L, "已转化")) {
+                layer3L = "有转化";
             }
-            return layer;
+
+            Map<String, String> basic4lMap = JSON.parseObject(layerMap.getOrDefault("basic_l4", "{}"), new TypeReference<Map<String, String>>() {
+            });
+
+            String layer4L = basic4lMap.getOrDefault("level", "无曝光");
+
+            resultMap.put("layer", layer3L);
+            resultMap.put("layer_l4", layer4L);
+            return resultMap;
         } catch (Exception e) {
-            log.error("UserServiceImpl getUserLayerByMi error: ", e);
+            log.error("UserServiceImpl getUserLayer error: ", e);
         }
 
-        return "无曝光";
+        return resultMap;
     }
 }