|
@@ -0,0 +1,54 @@
|
|
|
+package com.tzld.piaoquan.recommend.server.client;
|
|
|
+
|
|
|
+import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendRequest;
|
|
|
+import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendResponse;
|
|
|
+import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendServiceGrpc;
|
|
|
+import com.tzld.piaoquan.recommend.server.gen.recommend.VideoProto;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import net.devh.boot.grpc.client.inject.GrpcClient;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.List;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author dyp
|
|
|
+ */
|
|
|
+@Component
|
|
|
+@Slf4j
|
|
|
+public class RecommendClient {
|
|
|
+ @GrpcClient("recommend-server")
|
|
|
+ private RecommendServiceGrpc.RecommendServiceBlockingStub client;
|
|
|
+
|
|
|
+ public List<VideoProto> homepageRecommend(RecommendRequest request, long duration, TimeUnit unit) {
|
|
|
+
|
|
|
+ RecommendResponse response = client.homepageRecommend(request);
|
|
|
+ if (response == null
|
|
|
+ || !response.hasResult()) {
|
|
|
+ log.info("homepageRecommend grpc error");
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ if (response.getResult().getCode() != 1) {
|
|
|
+ log.info("homepageRecommend grpc code={}, msg={}", response.getResult().getCode(),
|
|
|
+ response.getResult().getMessage());
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ return response.getVideoCount() > 0 ? response.getVideoList() : Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<VideoProto> relevantRecommend(RecommendRequest request) {
|
|
|
+ RecommendResponse response = client.relevantRecommend(request);
|
|
|
+ if (response == null
|
|
|
+ || !response.hasResult()) {
|
|
|
+ log.info("relevantRecommend grpc error");
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ if (response.getResult().getCode() != 1) {
|
|
|
+ log.info("relevantRecommend grpc code={}, msg={}", response.getResult().getCode(),
|
|
|
+ response.getResult().getMessage());
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ return response.getVideoCount() > 0 ? response.getVideoList() : Collections.emptyList();
|
|
|
+ }
|
|
|
+}
|