xushiting 3 năm trước cách đây
mục cha
commit
2168737527

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

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

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

@@ -154,6 +154,10 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 
 
 			JSONObject myState = new JSONObject();
 			JSONObject myState = new JSONObject();
 			myState.put("isMoving",0);
 			myState.put("isMoving",0);
+			myState.put("horizontalMove",0);
+			myState.put("frameId",firstFrameId);
+			myState.put("breakPointId",firstBreakPointId);
+			myState.put("appId",app_id);
 			//redis中写入用户状态信息
 			//redis中写入用户状态信息
 			redisCache.setCacheObject("UserState:"+userEntity.getUserId(),myState);
 			redisCache.setCacheObject("UserState:"+userEntity.getUserId(),myState);
 
 
@@ -199,23 +203,24 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     		String user_id = request.getUserId();
     		String user_id = request.getUserId();
     		RotationAction rotationAction = request.getRotationAction();
     		RotationAction rotationAction = request.getRotationAction();
 
 
-			UserEntity user = userService.findUserId(user_id);
-			RotateFrameEntity rotateFrameEntity = rotateFrameService.findById(user.getFrameId());
+			JSONObject myState = redisCache.getCacheObject("UserState:"+user_id);
+			//UserEntity user = userService.findUserId(user_id);
+			RotateFrameEntity rotateFrameEntity = rotateFrameService.findById(myState.getLong("frameId"));
 
 
 			rotateRequestPO.setAction_type(action_type);
 			rotateRequestPO.setAction_type(action_type);
 			rotateRequestPO.setTrace_id(trace_id);
 			rotateRequestPO.setTrace_id(trace_id);
 			rotateRequestPO.setUser_id(user_id);
 			rotateRequestPO.setUser_id(user_id);
 
 
-			double horizontalMove = user.getHorizontalMove();
+			double horizontalMove = myState.getDouble("horizontalMove");
 			horizontalMove += rotationAction.getHorizontalMove();
 			horizontalMove += rotationAction.getHorizontalMove();
 			double hAngle = horizontalMove * 90;
 			double hAngle = horizontalMove * 90;
 			log.info("旋转的角度:"+hAngle+",旋转距离:"+rotationAction.getHorizontalMove()+",积累的距离:"+horizontalMove);
 			log.info("旋转的角度:"+hAngle+",旋转距离:"+rotationAction.getHorizontalMove()+",积累的距离:"+horizontalMove);
 			int offFrameIndex = (int)Math.ceil(hAngle);
 			int offFrameIndex = (int)Math.ceil(hAngle);
 			if(Math.abs(offFrameIndex)<1){
 			if(Math.abs(offFrameIndex)<1){
-
-				user.setHorizontalMove(horizontalMove);
-				userService.updateById(user);
-				log.info("没有旋转,更新了user表");
+				myState.put("horizontalMove",horizontalMove);
+				//redis中写入用户状态信息
+				redisCache.setCacheObject("UserState:"+user_id,myState);
+				log.info("没有旋转,更新了redis的UserState表");
 				NormalReply.Builder builder = NormalReply.newBuilder();
 				NormalReply.Builder builder = NormalReply.newBuilder();
 				builder.setCode(200);
 				builder.setCode(200);
 				responseObserver.onNext(builder.build());
 				responseObserver.onNext(builder.build());
@@ -223,7 +228,7 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 				return;
 				return;
 			}
 			}
 			else{
 			else{
-				user.setHorizontalMove(0);
+				myState.put("horizontalMove",0);
 			}
 			}
 			int currentFrame = rotateFrameEntity.getFrameIndex();      //从数据库里读取
 			int currentFrame = rotateFrameEntity.getFrameIndex();      //从数据库里读取
 			currentFrame +=offFrameIndex;
 			currentFrame +=offFrameIndex;
@@ -234,15 +239,14 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 				currentFrame = currentFrame % 359;
 				currentFrame = currentFrame % 359;
 			}
 			}
 
 
-			rotateFrameEntity = rotateFrameService.findByAppIdAndBreakPointIdAndFrameIndex(user.getAppId(),user.getBreakPointId(),currentFrame);
+			rotateFrameEntity = rotateFrameService.findByAppIdAndBreakPointIdAndFrameIndex(myState.getString("appId"),myState.getLong("breakPointId"),currentFrame);
 			rotateRequestPO.setFrameId(rotateFrameEntity.getId());
 			rotateRequestPO.setFrameId(rotateFrameEntity.getId());
 			log.info("存储请求:"+rotateFrameEntity.getId());
 			log.info("存储请求:"+rotateFrameEntity.getId());
 			//每次存一帧
 			//每次存一帧
 			redisCache.setCacheList("setCacheRequest:"+user_id, Arrays.asList(rotateRequestPO));
 			redisCache.setCacheList("setCacheRequest:"+user_id, Arrays.asList(rotateRequestPO));
-
-			//更新user表中的frame_id
-			userService.updateById(user);
-
+			//redis中写入用户状态信息
+			myState.put("frameId",rotateFrameEntity.getId());
+			redisCache.setCacheObject("UserState:"+user_id,myState);
 			NormalReply.Builder builder = NormalReply.newBuilder();
 			NormalReply.Builder builder = NormalReply.newBuilder();
 			builder.setCode(200);
 			builder.setCode(200);
 			responseObserver.onNext(builder.build());
 			responseObserver.onNext(builder.build());