Parcourir la source

homepage recommend

丁云鹏 il y a 1 an
Parent
commit
04c5ea6bc1

+ 5 - 0
recommend-server-client/pom.xml

@@ -28,6 +28,11 @@
             <artifactId>lombok</artifactId>
             <version>1.16.8</version>
         </dependency>
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java-util</artifactId>
+            <version>3.6.0</version>
+        </dependency>
     </dependencies>
     <build>
         <extensions>

+ 34 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/client/ProtobufUtils.java

@@ -0,0 +1,34 @@
+package com.tzld.piaoquan.recommend.server.client;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import com.google.protobuf.Message;
+import com.google.protobuf.MessageOrBuilder;
+import com.google.protobuf.util.JsonFormat;
+
+/**
+ * @author dyp
+ */
+public class ProtobufUtils {
+    public static String toJson(MessageOrBuilder message) throws InvalidProtocolBufferException {
+        if (message == null) {
+            return "";
+        }
+        return JsonFormat.printer().includingDefaultValueFields().print(message);
+    }
+
+    public static void fromJson(String json, Message.Builder builder) throws InvalidProtocolBufferException {
+        JsonFormat.parser().merge(json, builder);
+    }
+
+//
+//    public static void main(String[] args) throws InvalidProtocolBufferException {
+//        RecommendResponse.Builder builder = RecommendResponse.newBuilder();
+//        builder.setResult(Result.newBuilder().setCode(6).setMessage("success"));
+//        String json = JsonFormat.printer().includingDefaultValueFields().print(builder);
+//        System.out.println(json);
+//
+//        RecommendResponse.Builder builder2 = RecommendResponse.newBuilder();
+//        JsonFormat.parser().merge(json, builder2);
+//        System.out.println(JsonFormat.printer().print(builder2));
+//    }
+}

+ 1 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/client/RecommendHttpRequest.java

@@ -115,4 +115,5 @@ public class RecommendHttpRequest {
     public void setVideoId(long videoId) {
         this.videoId = videoId;
     }
+
 }

+ 18 - 3
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/web/RecommendController.java

@@ -1,11 +1,13 @@
 package com.tzld.piaoquan.recommend.server.web;
 
 import com.google.common.base.Strings;
+import com.google.protobuf.InvalidProtocolBufferException;
+import com.tzld.piaoquan.recommend.server.client.ProtobufUtils;
 import com.tzld.piaoquan.recommend.server.client.RecommendHttpRequest;
 import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendRequest;
 import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendResponse;
 import com.tzld.piaoquan.recommend.server.service.RecommendService;
-import com.tzld.piaoquan.recommend.server.util.JSONUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @author dyp
  */
 @RestController
+@Slf4j
 public class RecommendController {
     @Autowired
     private RecommendService recommendService;
@@ -32,13 +35,25 @@ public class RecommendController {
     @RequestMapping("/homepage/recommend")
     public String homepageRecommend(@RequestBody RecommendHttpRequest httpRequest) {
         RecommendResponse response = recommendService.homepageRecommend(generate(httpRequest));
-        return JSONUtils.toJson(response);
+        String result = "";
+        try {
+            result = ProtobufUtils.toJson(response);
+        } catch (InvalidProtocolBufferException e) {
+            log.error("homepageRecommend ProtobufUtils.toJson", e);
+        }
+        return result;
     }
 
     @RequestMapping("/relevant/recommend")
     public String relevantRecommend(@RequestBody RecommendHttpRequest httpRequest) {
         RecommendResponse response = recommendService.relevantRecommend(generate(httpRequest));
-        return JSONUtils.toJson(response);
+        String result = "";
+        try {
+            result = ProtobufUtils.toJson(response);
+        } catch (InvalidProtocolBufferException e) {
+            log.error("relevantRecommend ProtobufUtils.toJson", e);
+        }
+        return result;
     }
 
     private RecommendRequest generate(RecommendHttpRequest httpRequest) {