Bladeren bron

model def

丁云鹏 1 jaar geleden
bovenliggende
commit
bc0d501ad2

+ 0 - 83
recommend-feature-service/src/main/java/com/tzld/piaoquan/recommend/feature/model/UserActionFeature.java

@@ -17,87 +17,4 @@ public class UserActionFeature {
     private double rov;
     private double ros;
 
-    private double ceilLog(Double key) {
-        return Math.ceil(Math.log(key));
-    }
-
-    private double bucketRatioFeature(Double key) {
-        long bucket = Math.round(Math.log(key * 100));
-        if (bucket > 100)
-            bucket = 100;
-        return (double) bucket;
-    }
-
-
-    public void setExp_cnt(Object key) {
-        if (key == null) {
-            this.exp_cnt = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "-1");
-            this.exp_cnt = ceilLog(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setClick_cnt(Object key) {
-        if (key == null) {
-            this.click_cnt = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "-1");
-            this.click_cnt = ceilLog(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setShare_cnt(Object key) {
-        if (key == null) {
-            this.share_cnt = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "-1");
-            this.share_cnt = ceilLog(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setReturn_cnt(Object key) {
-        if (key == null) {
-            this.return_cnt = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "-1");
-            this.return_cnt = ceilLog(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setCtr(Object key) {
-        if (key == null) {
-            this.ctr = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "-1");
-            this.ctr = bucketRatioFeature(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setStr(Object key) {
-        if (key == null) {
-            this.str = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "-1");
-            this.str = bucketRatioFeature(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setRov(Object key) {
-        if (key == null) {
-            this.rov = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "-1");
-            this.rov = bucketRatioFeature(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setRos(Object key) {
-        if (key == null) {
-            this.ros = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "-1");
-            this.ros = bucketRatioFeature(Double.valueOf(formateKey));
-        }
-    }
 }

+ 45 - 19
recommend-feature-service/src/main/java/com/tzld/piaoquan/recommend/feature/service/FeatureConverter.java

@@ -13,34 +13,52 @@ import com.tzld.piaoquan.recommend.feature.model.feature.VideoFeatureProto;
  */
 public class FeatureConverter {
     public static UserFeatureProto convert(UserFeature userFeature) {
+        if (userFeature == null) {
+            return null;
+        }
         UserFeatureProto.Builder builder = UserFeatureProto.newBuilder();
-        builder.setMid(Strings.nullToEmpty(userFeature.getMid()))
-                .setUid(Strings.nullToEmpty(userFeature.getUid()))
-                .setUserCycleBucket7Day(Strings.nullToEmpty(userFeature.getUserCycleBucket7days()))
-                .setUserCycleBucket30Day(Strings.nullToEmpty(userFeature.getUserCycleBucket30days()))
-                .setUserShareBucket30Day(Strings.nullToEmpty(userFeature.getUserShareBucket30days()))
-                .setDay1CntFeature(convert(userFeature.getDay1CntFeature()))
-                .setDay3CntFeature(convert(userFeature.getDay3CntFeature()))
-                .setDay7CntFeature(convert(userFeature.getDay7CntFeature()))
-                .setMonth3CntFeature(convert(userFeature.getMonth3CntFeature()));
+        builder.setUid(Strings.nullToEmpty(userFeature.getUid()))
+                .setUserCycleBucket7Day(Strings.nullToEmpty(userFeature.getUser_cycle_bucket_7days()))
+                .setUserCycleBucket30Day(Strings.nullToEmpty(userFeature.getUser_cycle_bucket_30days()))
+                .setUserShareBucket30Day(Strings.nullToEmpty(userFeature.getUser_share_bucket_30days()));
+
+        if (userFeature.getDay1_cnt_features() != null) {
+            builder.setDay1CntFeature(convert(userFeature.getDay1_cnt_features()));
+        }
+        if (userFeature.getDay3_cnt_features() != null) {
+            builder.setDay3CntFeature(convert(userFeature.getDay3_cnt_features()));
+        }
+        if (userFeature.getDay7_cnt_features() != null) {
+            builder.setDay7CntFeature(convert(userFeature.getDay7_cnt_features()));
+        }
+        if (userFeature.getMonth3_cnt_features() != null) {
+            builder.setMonth3CntFeature(convert(userFeature.getMonth3_cnt_features()));
+        }
+
         return builder.build();
     }
 
     private static UserActionFeatureProto convert(UserActionFeature feature) {
+        if (feature == null) {
+            return null;
+        }
         UserActionFeatureProto.Builder builder = UserActionFeatureProto.newBuilder();
         builder.setCtr(feature.getCtr())
                 .setStr(feature.getStr())
                 .setRov(feature.getRov())
-                .setShareCnt(feature.getShareCnt())
-                .setReturnCnt(feature.getReturnCnt())
-                .setClickCnt(feature.getClickCnt())
-                .setExpCnt(feature.getExpCnt());
+                .setShareCnt(Math.round(feature.getShare_cnt()))
+                .setReturnCnt(Math.round(feature.getReturn_cnt()))
+                .setClickCnt(Math.round(feature.getClick_cnt()))
+                .setExpCnt(Math.round(feature.getExp_cnt()));
 
         return builder.build();
     }
 
 
     public static VideoFeatureProto convert(VideoFeature videoFeature) {
+        if (videoFeature == null) {
+            return null;
+        }
         VideoFeatureProto.Builder builder = VideoFeatureProto.newBuilder();
 
         builder.setVideoId(Strings.nullToEmpty(videoFeature.getVideoId()))
@@ -48,13 +66,21 @@ public class FeatureConverter {
                 .setTags(Strings.nullToEmpty(videoFeature.getTags()))
                 .setPlayLength(Strings.nullToEmpty(videoFeature.getPlayLength()))
                 .setTotalTime(Strings.nullToEmpty(videoFeature.getTotalTime()))
-                .setDaysSinceUpload(Strings.nullToEmpty(videoFeature.getDaysSinceUpload()))
-                .setVideoDay1CntFeature(convert(videoFeature.getVideoDay1CntFeature()))
-                .setVideoDay3CntFeature(convert(videoFeature.getVideoDay3CntFeature()))
-                .setVideoDay7CntFeature(convert(videoFeature.getVideoDay7CntFeature()))
-                .setVideoMonth3CntFeature(convert(videoFeature.getVideoMonth3CntFeature()));
+                .setDaysSinceUpload(Strings.nullToEmpty(videoFeature.getDaysSinceUpload()));
+
+        if (videoFeature.getDay1_cnt_features() != null) {
+            builder.setVideoDay1CntFeature(convert(videoFeature.getDay1_cnt_features()));
+        }
+        if (videoFeature.getDay3_cnt_features() != null) {
+            builder.setVideoDay3CntFeature(convert(videoFeature.getDay3_cnt_features()));
+        }
+        if (videoFeature.getDay7_cnt_features() != null) {
+            builder.setVideoDay7CntFeature(convert(videoFeature.getDay7_cnt_features()));
+        }
+        if (videoFeature.getMonth3_cnt_features() != null) {
+            builder.setVideoMonth3CntFeature(convert(videoFeature.getMonth3_cnt_features()));
+        }
 
-        // TODO
         return builder.build();
     }
 }

+ 6 - 4
recommend-feature-service/src/main/java/com/tzld/piaoquan/recommend/feature/service/UserFeatureService.java

@@ -41,10 +41,12 @@ public class UserFeatureService extends AbstractFeatureService<String, UserFeatu
                     .build();
         }
         UserFeature userFeature = super.get(uid);
-        return GetUserFeatureResponse.newBuilder()
-                .setResult(Result.newBuilder().setCode(1))
-                .setUserFeature(FeatureConverter.convert(userFeature))
-                .build();
+        GetUserFeatureResponse.Builder builder = GetUserFeatureResponse.newBuilder();
+        builder.setResult(Result.newBuilder().setCode(1));
+        if (userFeature != null) {
+            builder.setUserFeature(FeatureConverter.convert(userFeature));
+        }
+        return builder.build();
     }
 
     public void saveUserFeature(String jsonValue) {

+ 6 - 5
recommend-feature-service/src/main/java/com/tzld/piaoquan/recommend/feature/service/VideoFeatureService.java

@@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
 
 import java.util.List;
 import java.util.Map;
@@ -50,10 +49,12 @@ public class VideoFeatureService extends AbstractFeatureService<String, VideoFea
                     .build();
         }
         VideoFeature videoFeature = super.get(videoId);
-        return GetVideoFeatureResponse.newBuilder()
-                .setResult(Result.newBuilder().setCode(1))
-                .setVideoFeature(FeatureConverter.convert(videoFeature))
-                .build();
+        GetVideoFeatureResponse.Builder builder = GetVideoFeatureResponse.newBuilder();
+        builder.setResult(Result.newBuilder().setCode(1));
+        if (videoFeature != null) {
+            builder.setVideoFeature(FeatureConverter.convert(videoFeature));
+        }
+        return builder.build();
     }
 
     public void saveVideoFeature(String jsonValue) {