xushiting 3 years ago
parent
commit
cf668b365a

+ 2 - 0
src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/UserEntity.java

@@ -35,4 +35,6 @@ public class UserEntity extends BaseEntity {
     private PointPO playerPosition;
 
     private String skinDataVersion;
+
+    private double horizontalMove;
 }

+ 23 - 2
src/main/java/com/fdkk/fdkkmeta/grpcService/sceneGrpcServer.java

@@ -206,8 +206,25 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 			rotateRequestPO.setTrace_id(trace_id);
 			rotateRequestPO.setUser_id(user_id);
 
-			double hAngle = rotationAction.getHorizontalMove() * 90;
+			double horizontalMove = user.getHorizontalMove();
+			horizontalMove += rotationAction.getHorizontalMove();
+			double hAngle = horizontalMove * 90;
+			log.info("旋转的角度:"+hAngle+",旋转距离:"+rotationAction.getHorizontalMove()+",积累的距离:"+horizontalMove);
 			int offFrameIndex = (int)Math.ceil(hAngle);
+			if(Math.abs(offFrameIndex)<1){
+
+				user.setHorizontalMove(horizontalMove);
+				userService.updateById(user);
+				log.info("没有旋转,更新了user表");
+				NormalReply.Builder builder = NormalReply.newBuilder();
+				builder.setCode(200);
+				responseObserver.onNext(builder.build());
+				responseObserver.onCompleted();
+				return;
+			}
+			else{
+				user.setHorizontalMove(0);
+			}
 			int currentFrame = rotateFrameEntity.getFrameIndex();      //从数据库里读取
 			currentFrame +=offFrameIndex;
 			if(currentFrame<0){
@@ -219,9 +236,13 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 
 			rotateFrameEntity = rotateFrameService.findByAppIdAndBreakPointIdAndFrameIndex(user.getAppId(),user.getBreakPointId(),currentFrame);
 			rotateRequestPO.setFrameId(rotateFrameEntity.getId());
+			log.info("存储请求:"+rotateFrameEntity.getId());
 			//每次存一帧
 			redisCache.setCacheList("setCacheRequest:"+user_id, Arrays.asList(rotateRequestPO));
-			//没有更新user表中的frame_id,因为这样太慢了,后续再处理
+
+			//更新user表中的frame_id
+			userService.updateById(user);
+
 			NormalReply.Builder builder = NormalReply.newBuilder();
 			builder.setCode(200);
 			responseObserver.onNext(builder.build());

+ 4 - 3
src/main/java/com/fdkk/fdkkmeta/task/UpdateFrameMetaTask.java

@@ -26,6 +26,7 @@ import org.springframework.stereotype.Component;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -254,7 +255,7 @@ public class UpdateFrameMetaTask {
         builder.setMsg("ok");
         //newUserStates
 
-        String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+rotateFrameEntity.getBreakPointId()+"/"+rotateFrameEntity.getDirectory()+"/"+rotateFrameEntity.getFileName();
+        String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+rotateFrameEntity.getBreakPointId()+"/"+rotateFrameEntity.getDirectory()+"/"+rotateFrameEntity.getFileName()+"?m="+new Date().getTime();
         builder.setMediaSrc(mediaSrc);
 
         redisCache.lLeftPush("updateFrameMetadata:"+user.getUserId(), ProtoJsonUtils.toJson(builder));
@@ -297,7 +298,7 @@ public class UpdateFrameMetaTask {
         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()+"?m="+new Date().getTime();
         builder.setMediaSrc(mediaSrc);
         redisCache.lLeftPush("updateFrameMetadata:"+user_id,ProtoJsonUtils.toJson(builder));
     }
@@ -350,7 +351,7 @@ public class UpdateFrameMetaTask {
         builder.setCode(200);
         builder.setMsg("ok");
 
-        String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+rotateFrameEntity.getBreakPointId()+"/"+rotateFrameEntity.getDirectory()+"/"+rotateFrameEntity.getFileName();
+        String mediaSrc = metaConfig.getVideoFramePath()+"/"+"0000000001"+"/"+rotateFrameEntity.getBreakPointId()+"/"+rotateFrameEntity.getDirectory()+"/"+rotateFrameEntity.getFileName()+"?m="+new Date().getTime();
         builder.setMediaSrc(mediaSrc);
         redisCache.lLeftPush("updateFrameMetadata:"+user.getUserId(),ProtoJsonUtils.toJson(builder));