xushiting 3 gadi atpakaļ
vecāks
revīzija
fea4f4c76b

+ 2 - 0
src/main/java/com/fdkk/fdkkmeta/domain/po/MetaDataFramePO.java

@@ -13,4 +13,6 @@ public class MetaDataFramePO {
     private int getStateType = 0;
     private int code = 0;
     private String msg = "OK";
+
+    private String mediaSrc;
 }

+ 20 - 13
src/main/java/com/fdkk/fdkkmeta/grpcService/sceneGrpcServer.java

@@ -1,6 +1,7 @@
 package com.fdkk.fdkkmeta.grpcService;
 
 import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -120,17 +121,21 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             //保存user
             UserEntity userEntity=new UserEntity();
 
+			long firstFrameId = 1081L;
+			long firstBreakPointId = 100L;
+
             userEntity.setAppId(app_id);
 			userEntity.setUserId(user_id);
             userEntity.setAvatarId(avatar_id);
             userEntity.setNickName(nick_name);
             userEntity.setRoomId(room_id);
             userEntity.setSkinId(skin_id);
-			userEntity.setFrameId(1081L);
-			userEntity.setBreakPointId(100L);
+			userEntity.setFrameId(firstFrameId);
+			userEntity.setBreakPointId(firstBreakPointId);
 			userEntity.setOnline(true);
 
-			Point playerPoint = player.getPosition();
+			//Point playerPoint = player.getPosition();
+			BreakpointsEntity breakpointsEntity = breakpointsService.findById(firstBreakPointId);
 			AngleUe4 playerAngle = player.getAngle();
 			//初始化的时候可以写死
             AnglePO player_angle = new AnglePO();
@@ -140,9 +145,9 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             userEntity.setPlayerAngle(player_angle);
 
 			PointPO player_position = new PointPO();
-			player_position.setX(Double.parseDouble(playerPoint.getX()));
-			player_position.setY(Double.parseDouble(playerPoint.getY()));
-			player_position.setZ(Double.parseDouble(playerPoint.getZ()));
+			player_position.setX(breakpointsEntity.getPosition().getX());
+			player_position.setY(breakpointsEntity.getPosition().getY());
+			player_position.setZ(breakpointsEntity.getPosition().getZ());
 			userEntity.setPlayerPosition(player_position);
             //数据库user表中创建用户记录
             userService.save(userEntity);
@@ -155,13 +160,15 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 			MetaDataFramePO metaDataFramePO = createDefaultFrameMetadata(userEntity);
 			//返回
 			CommonReply.Builder builder = CommonReply.newBuilder();
-			String[] traceIds = metaDataFramePO.getTraceIds();
-			for(int i=0;i<traceIds.length;++i){
-				builder.addTraceIds(traceIds[i]);
+			//初始化的情况下,没有traceId
+//			String[] traceIds = metaDataFramePO.getTraceIds();
+//			for(int i=0;i<traceIds.length;++i){
+//				builder.addTraceIds(traceIds[i]);
+//			}
+			if (ObjectUtil.isNotNull(metaDataFramePO.getVehicle())){
+				builder.setVehicle(metaDataFramePO.getVehicle());
 			}
 
-			builder.setVehicle(metaDataFramePO.getVehicle());
-
 			UserState[] userStates = metaDataFramePO.getNewUserStates();
 			for(int i=0;i<userStates.length;++i){
 				builder.addNewUserStates(userStates[i]);
@@ -175,7 +182,7 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 			responseObserver.onCompleted();
 		}
     	catch(Exception e) {
-//    		e.printStackTrace();
+    		e.printStackTrace();
 //			responseObserver.onNext(NormalReply.newBuilder().setCode(500).build());
 //			responseObserver.onCompleted();
 			log.error("initException{}",e.getMessage());
@@ -210,7 +217,7 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 				currentFrame = currentFrame % 359;
 			}
 
-			rotateFrameEntity = rotateFrameService.findByAppIdAndBreakPointIdAndFrameIndex(user_id,user.getBreakPointId(),currentFrame);
+			rotateFrameEntity = rotateFrameService.findByAppIdAndBreakPointIdAndFrameIndex(user.getAppId(),user.getBreakPointId(),currentFrame);
 			rotateRequestPO.setFrameId(rotateFrameEntity.getId());
 			//每次存一帧
 			redisCache.setCacheList("setCacheRequest:"+user_id, Arrays.asList(rotateRequestPO));

+ 12 - 1
src/main/java/com/fdkk/fdkkmeta/task/UpdateFrameMetaTask.java

@@ -1,8 +1,10 @@
 package com.fdkk.fdkkmeta.task;
 
 import cn.hutool.core.util.ArrayUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.fdkk.fdkkmeta.config.MetaConfig;
 import com.fdkk.fdkkmeta.domain.entity.mysql.BreakpointsEntity;
 import com.fdkk.fdkkmeta.domain.entity.mysql.MoveFrameEntity;
 import com.fdkk.fdkkmeta.domain.entity.mysql.RotateFrameEntity;
@@ -34,6 +36,8 @@ import java.util.List;
 @Slf4j
 public class UpdateFrameMetaTask {
     @Autowired
+    MetaConfig metaConfig;
+    @Autowired
     RedisCache redisCache;
     @Autowired
     UserService userService;
@@ -250,7 +254,11 @@ public class UpdateFrameMetaTask {
         metaDataFramePO.setGetStateType(0);
         metaDataFramePO.setCode(0);
         metaDataFramePO.setMsg("");
-        redisCache.setCacheObject("updateFrameMetadata:"+user.getUserId(),metaDataFramePO);
+
+        String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+rotateFrameEntity.getBreakPointId()+"/"+rotateFrameEntity.getDirectory()+"/"+rotateFrameEntity.getFileName();
+        metaDataFramePO.setMediaSrc(mediaSrc);
+
+        redisCache.setCacheObject("updateFrameMetadata:"+user.getUserId(), JSON.toJSONString(metaDataFramePO));
     }
 
     private void createMoveFrameMetadata(String user_id,AnglePO playerAngle,PointPO playerPosition,MoveFrameEntity moveFrameEntity,String traceId){
@@ -289,6 +297,9 @@ public class UpdateFrameMetaTask {
         metaDataFramePO.setGetStateType(0);
         metaDataFramePO.setCode(0);
         metaDataFramePO.setMsg("");
+
+        String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+moveFrameEntity.getStartBreakPointId()+"/"+moveFrameEntity.getDirectory()+"/"+moveFrameEntity.getFileName();
+        metaDataFramePO.setMediaSrc(mediaSrc);
         redisCache.setCacheObject("updateFrameMetadata:"+user_id,metaDataFramePO);
     }