Browse Source

Merge branch 'master' of http://192.168.0.115:3000/xiewenjie/fdkk_meta

# Conflicts:
#	src/main/java/com/fdkk/fdkkmeta/task/UpdateFrameMetaTask.java
xushiting 3 years ago
parent
commit
b83020e7c4

+ 4 - 0
src/main/java/com/fdkk/fdkkmeta/redis/RedisCache.java

@@ -2,6 +2,7 @@ package com.fdkk.fdkkmeta.redis;
 
 
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.support.spring.PropertyPreFilters;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.connection.*;
 import org.springframework.data.redis.connection.*;
 import org.springframework.data.redis.core.*;
 import org.springframework.data.redis.core.*;
@@ -47,6 +48,9 @@ public class RedisCache
      */
      */
     public <T> void setJsonStrObject(final String key, final T value)
     public <T> void setJsonStrObject(final String key, final T value)
     {
     {
+        PropertyPreFilters filters = new PropertyPreFilters();
+        PropertyPreFilters.MySimplePropertyPreFilter excludefilter = filters.addFilter();
+        excludefilter.addExcludes("@ref");
         stringRedisTemplate.opsForValue().set(key, JSON.toJSONString(value));
         stringRedisTemplate.opsForValue().set(key, JSON.toJSONString(value));
     }
     }
     /**
     /**

+ 45 - 44
src/main/java/com/fdkk/fdkkmeta/task/UpdateFrameMetaTask.java

@@ -17,11 +17,14 @@ import com.fdkk.fdkkmeta.service.BreakpointsService;
 import com.fdkk.fdkkmeta.service.MoveFrameService;
 import com.fdkk.fdkkmeta.service.MoveFrameService;
 import com.fdkk.fdkkmeta.service.UserService;
 import com.fdkk.fdkkmeta.service.UserService;
 import com.fdkk.fdkkmeta.service.RotateFrameService;
 import com.fdkk.fdkkmeta.service.RotateFrameService;
+import com.fdkk.fdkkmeta.util.ProtoJsonUtils;
+import com.google.protobuf.util.JsonFormat;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
@@ -217,7 +220,7 @@ public class UpdateFrameMetaTask {
         }
         }
     }
     }
 
 
-    private void createDefaultFrameMetadata(UserEntity user){
+    private void createDefaultFrameMetadata(UserEntity user) throws IOException {
         String[] traceIds = new String[1];
         String[] traceIds = new String[1];
         traceIds[0] = "";
         traceIds[0] = "";
         JSONArray actionResponses = new JSONArray();
         JSONArray actionResponses = new JSONArray();
@@ -235,30 +238,29 @@ public class UpdateFrameMetaTask {
         AngleUe4 cameraAngle = sceneGrpcService.createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
         AngleUe4 cameraAngle = sceneGrpcService.createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
         Space camera = sceneGrpcService.createSpace(cameraPosition,cameraAngle);
         Space camera = sceneGrpcService.createSpace(cameraPosition,cameraAngle);
 
 
-        MetaDataFramePO metaDataFramePO = new MetaDataFramePO();
-        metaDataFramePO.setTraceIds(traceIds);
-        metaDataFramePO.setVehicle(null);
+        MetaDataFrameReply.Builder builder = MetaDataFrameReply.newBuilder();
+        for(int i=0;i<traceIds.length;++i){
+            builder.addTraceIds(traceIds[i]);
+        }
         State playerState = sceneGrpcService.createPlayerState2(player,camera,playerPt);
         State playerState = sceneGrpcService.createPlayerState2(player,camera,playerPt);
 
 
         RenderInfo renderInfo = sceneGrpcService.createRenderInfo();
         RenderInfo renderInfo = sceneGrpcService.createRenderInfo();
         UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
         UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
 
 
+        builder.addNewUserStates(userState);
+
+        builder.setGetStateType(0);
+        builder.setCode(200);
+        builder.setMsg("ok");
         //newUserStates
         //newUserStates
-        UserState[] newUserStates = new UserState[1];
-        newUserStates[0] = userState;
-        metaDataFramePO.setNewUserStates(newUserStates);
-        metaDataFramePO.setActionResponses(actionResponses);
-        metaDataFramePO.setGetStateType(0);
-        metaDataFramePO.setCode(0);
-        metaDataFramePO.setMsg("");
 
 
         String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+rotateFrameEntity.getBreakPointId()+"/"+rotateFrameEntity.getDirectory()+"/"+rotateFrameEntity.getFileName();
         String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+rotateFrameEntity.getBreakPointId()+"/"+rotateFrameEntity.getDirectory()+"/"+rotateFrameEntity.getFileName();
-        metaDataFramePO.setMediaSrc(mediaSrc);
+        builder.setMediaSrc(mediaSrc);
 
 
-        redisCache.setJsonStrObject("updateFrameMetadata:"+user.getUserId(), metaDataFramePO);
+        redisCache.lLeftPush("updateFrameMetadata:"+user.getUserId(), ProtoJsonUtils.toJson(builder));
     }
     }
 
 
-    private void createMoveFrameMetadata(String user_id,AnglePO playerAngle,PointPO playerPosition,MoveFrameEntity moveFrameEntity,String traceId){
+    private void createMoveFrameMetadata(String user_id,AnglePO playerAngle,PointPO playerPosition,MoveFrameEntity moveFrameEntity,String traceId) throws IOException {
         String[] traceIds = new String[1];
         String[] traceIds = new String[1];
         traceIds[0] = traceId;
         traceIds[0] = traceId;
         JSONArray actionResponses = new JSONArray();
         JSONArray actionResponses = new JSONArray();
@@ -276,31 +278,31 @@ public class UpdateFrameMetaTask {
         AngleUe4 cameraAngle = sceneGrpcService.createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
         AngleUe4 cameraAngle = sceneGrpcService.createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
         Space camera = sceneGrpcService.createSpace(cameraPosition,cameraAngle);
         Space camera = sceneGrpcService.createSpace(cameraPosition,cameraAngle);
 
 
-        MetaDataFramePO metaDataFramePO = new MetaDataFramePO();
-        metaDataFramePO.setTraceIds(traceIds);
-        metaDataFramePO.setVehicle(null);
+
+        MetaDataFrameReply.Builder builder = MetaDataFrameReply.newBuilder();
+        for(int i=0;i<traceIds.length;++i){
+            builder.addTraceIds(traceIds[i]);
+        }
+
         State playerState = sceneGrpcService.createPlayerState2(player,camera,playerPt);
         State playerState = sceneGrpcService.createPlayerState2(player,camera,playerPt);
 
 
         RenderInfo renderInfo = sceneGrpcService.createRenderInfo();
         RenderInfo renderInfo = sceneGrpcService.createRenderInfo();
         UserState userState = sceneGrpcService.createUserState( user_id, playerState, renderInfo, null);
         UserState userState = sceneGrpcService.createUserState( user_id, playerState, renderInfo, null);
 
 
-        //newUserStates
-//        JSONArray newUserStates = new JSONArray();
-//        newUserStates.add(userState);
-        UserState[] newUserStates = new UserState[1];
-        newUserStates[0] = userState;
-        metaDataFramePO.setNewUserStates(newUserStates);
-        metaDataFramePO.setActionResponses(actionResponses);
-        metaDataFramePO.setGetStateType(0);
-        metaDataFramePO.setCode(0);
-        metaDataFramePO.setMsg("");
+
+        builder.addNewUserStates(userState);
+
+        builder.setGetStateType(0);
+        builder.setCode(200);
+        builder.setMsg("ok");
+
 
 
         String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+moveFrameEntity.getStartBreakPointId()+"/"+moveFrameEntity.getDirectory()+"/"+moveFrameEntity.getFileName();
         String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+moveFrameEntity.getStartBreakPointId()+"/"+moveFrameEntity.getDirectory()+"/"+moveFrameEntity.getFileName();
-        metaDataFramePO.setMediaSrc(mediaSrc);
-        redisCache.setJsonStrObject("updateFrameMetadata:"+user_id,metaDataFramePO);
+        builder.setMediaSrc(mediaSrc);
+        redisCache.lLeftPush("updateFrameMetadata:"+user_id,ProtoJsonUtils.toJson(builder));
     }
     }
 
 
-    private void createRotateFrameMetadata(UserEntity user,List<ActionPO> rotateJoystickList,int firstActionType){
+    private void createRotateFrameMetadata(UserEntity user,List<ActionPO> rotateJoystickList,int firstActionType) throws IOException {
         JSONArray actionResponses = new JSONArray();
         JSONArray actionResponses = new JSONArray();
         String[] traceIds = new String[rotateJoystickList.size()];
         String[] traceIds = new String[rotateJoystickList.size()];
         if(rotateJoystickList.size()>0){
         if(rotateJoystickList.size()>0){
@@ -330,25 +332,24 @@ public class UpdateFrameMetaTask {
         AngleUe4 cameraAngle = sceneGrpcService.createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
         AngleUe4 cameraAngle = sceneGrpcService.createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
         Space camera = sceneGrpcService.createSpace(cameraPosition,cameraAngle);
         Space camera = sceneGrpcService.createSpace(cameraPosition,cameraAngle);
 
 
-        MetaDataFramePO metaDataFramePO = new MetaDataFramePO();
-        metaDataFramePO.setTraceIds(traceIds);
-        metaDataFramePO.setVehicle(null);
+
+        MetaDataFrameReply.Builder builder = MetaDataFrameReply.newBuilder();
+        for(int i=0;i<traceIds.length;++i){
+            builder.addTraceIds(traceIds[i]);
+        }
         State playerState = sceneGrpcService.createPlayerState2(player,camera,playerPt);
         State playerState = sceneGrpcService.createPlayerState2(player,camera,playerPt);
 
 
         RenderInfo renderInfo = sceneGrpcService.createRenderInfo();
         RenderInfo renderInfo = sceneGrpcService.createRenderInfo();
         UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
         UserState userState = sceneGrpcService.createUserState( user.getUserId(), playerState, renderInfo, null);
 
 
-        //newUserStates
-//        JSONArray newUserStates = new JSONArray();
-////        newUserStates.add(userState);
-        UserState[] newUserStates = new UserState[1];
-        newUserStates[0] = userState;
-        metaDataFramePO.setNewUserStates(newUserStates);
-        metaDataFramePO.setActionResponses(actionResponses);
-        metaDataFramePO.setGetStateType(0);
-        metaDataFramePO.setCode(0);
-        metaDataFramePO.setMsg("");
-        redisCache.setJsonStrObject("updateFrameMetadata:"+user.getUserId(),metaDataFramePO);
+
+        builder.addNewUserStates(userState);
+
+        builder.setGetStateType(0);
+        builder.setCode(200);
+        builder.setMsg("ok");
+
+        redisCache.lLeftPush("updateFrameMetadata:"+user.getUserId(),ProtoJsonUtils.toJson(builder));
 
 
         //更新user表
         //更新user表
         user.setFrameId(lastActionPO.getFrameId());
         user.setFrameId(lastActionPO.getFrameId());

+ 8 - 3
src/main/java/com/fdkk/fdkkmeta/util/ProtoJsonUtils.java

@@ -1,6 +1,7 @@
 package com.fdkk.fdkkmeta.util;
 package com.fdkk.fdkkmeta.util;
 import com.google.gson.Gson;
 import com.google.gson.Gson;
 import com.google.protobuf.Message;
 import com.google.protobuf.Message;
+import com.google.protobuf.MessageOrBuilder;
 import com.google.protobuf.util.JsonFormat;
 import com.google.protobuf.util.JsonFormat;
 import com.google.protobuf.Message;
 import com.google.protobuf.Message;
 
 
@@ -18,10 +19,14 @@ import java.io.IOException;
  */
  */
 public class ProtoJsonUtils {
 public class ProtoJsonUtils {
 
 
-    public static String toJson(Message sourceMessage)
+    public static String toJson(MessageOrBuilder sourceMessage)
             throws IOException {
             throws IOException {
-        String json = JsonFormat.printer().print(sourceMessage);
-        return json;
+        String json = JsonFormat.printer()
+                .includingDefaultValueFields()
+                .printingEnumsAsInts()
+                .preservingProtoFieldNames()
+                .print(sourceMessage);
+        return json.replaceAll("\\n","");
     }
     }
 
 
     public static Message toProtoBean(Message.Builder targetBuilder, String json){
     public static Message toProtoBean(Message.Builder targetBuilder, String json){

+ 21 - 1
src/main/proto/scene.proto

@@ -7,6 +7,7 @@ option java_package = "com.fdkk.fdkkmeta.grpc";
 
 
 // grpc的方法
 // grpc的方法
 service SceneGrpcService {
 service SceneGrpcService {
+  rpc test (TestRequest) returns (TestReply){}
   rpc getRoute (RouteRequest) returns (RouteReply){}
   rpc getRoute (RouteRequest) returns (RouteReply){}
   rpc init (InitRequest) returns (CommonReply){}
   rpc init (InitRequest) returns (CommonReply){}
   rpc rotate (RotateRequest) returns (NormalReply){}
   rpc rotate (RotateRequest) returns (NormalReply){}
@@ -19,6 +20,12 @@ service SceneGrpcService {
   rpc joystick (JoystickRequest) returns (NormalReply){} //操作杆
   rpc joystick (JoystickRequest) returns (NormalReply){} //操作杆
   rpc exit(ExitRequest) returns (NormalReply){}
   rpc exit(ExitRequest) returns (NormalReply){}
 }
 }
+message TestRequest {
+  string name=3;
+}
+message TestReply {
+  bool msg=3;
+}
 // 全局对象
 // 全局对象
 message Point {
 message Point {
   string x=1;
   string x=1;
@@ -234,6 +241,19 @@ message RotateRequest {
   string user_id=4;
   string user_id=4;
 }
 }
 /**********************************************************/
 /**********************************************************/
+
+//正常的反馈
+message MetaDataFrameReply {
+  repeated string traceIds=1;
+  string vehicle=2;
+  repeated UserState newUserStates=3;
+  repeated int32 actionResponses=4;
+  int32 getStateType=5;
+  int32 code=6;
+  string msg=7;
+  string mediaSrc=8;
+}
+
 //正常的反馈
 //正常的反馈
 message CommonReply {
 message CommonReply {
    repeated string traceIds=1;
    repeated string traceIds=1;
@@ -348,4 +368,4 @@ message ExitRequest{
   int32 action_type=1;                                           //1002
   int32 action_type=1;                                           //1002
   string user_id=2;
   string user_id=2;
   string trace_id=3;
   string trace_id=3;
-}
+}