| | |
| | | throw new FebsException("用户没有创建房间的权限!"); |
| | | } |
| | | |
| | | QueryWrapper<GameRoomChild> roomChildQueryWrapper = new QueryWrapper<>(); |
| | | roomChildQueryWrapper.eq("member_id",memberId); |
| | | roomChildQueryWrapper.eq("state",GameRoomChild.OWNER_TRUE); |
| | | List<GameRoomChild> roomChildExists = gameRoomChildMapper.selectList(roomChildQueryWrapper); |
| | | if(CollUtil.isNotEmpty(roomChildExists)){ |
| | | List<Long> roomIds = roomChildExists.stream().map(GameRoomChild::getRoomId).collect(Collectors.toList()); |
| | | |
| | | QueryWrapper<GameRoom> roomQuery = new QueryWrapper<>(); |
| | | roomQuery.in("id",roomIds); |
| | | List<GameRoom> gameRooms = gameRoomMapper.selectList(roomQuery); |
| | | List<GameRoom> collect = gameRooms.stream().filter(room -> room.getState() != GameRoom.STATE_DONE).collect(Collectors.toList()); |
| | | if(CollUtil.isNotEmpty(collect)){ |
| | | if(collect.size() > 0){ |
| | | throw new FebsException("请退出房间,房间码:"+collect.get(0).getPassword()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | QueryWrapper<GameRoom> gameRoomQuery = new QueryWrapper<>(); |
| | | gameRoomQuery.eq("owner_member_id",memberId); |
| | | gameRoomQuery.ne("state",GameRoom.STATE_DONE); |
| | |
| | | gameRoom.setRoomType(roomType); |
| | | gameRoom.setState(GameRoom.STATE_READY); |
| | | gameRoom.setOwnerMemberId(memberId); |
| | | gameRoom.setRoomOwner(mallMember.getAccountLogin()); |
| | | gameRoom.setGameTime(gameTime); |
| | | gameRoomMapper.insert(gameRoom); |
| | | |
| | |
| | | gameRoomChild.setRoomId(gameRoom.getId()); |
| | | gameRoomChild.setOwnerState(GameRoomChild.OWNER_TRUE); |
| | | gameRoomChild.setMemberId(memberId); |
| | | gameRoomChild.setState(GameRoomChild.OWNER_TRUE); |
| | | gameRoomChildMapper.insert(gameRoomChild); |
| | | |
| | | ApiCreateRoomVo apiCreateRoomVo = new ApiCreateRoomVo(); |
| | |
| | | public void sendMsgByRoomId(Long roomId,String msg) { |
| | | QueryWrapper<GameRoomChild> gameRoomChildQueryWrapper = new QueryWrapper<>(); |
| | | gameRoomChildQueryWrapper.eq("room_id",roomId); |
| | | gameRoomChildQueryWrapper.eq("state",GameRoomChild.OWNER_TRUE); |
| | | List<GameRoomChild> gameRoomChildrens = gameRoomChildMapper.selectList(gameRoomChildQueryWrapper); |
| | | if(CollUtil.isEmpty(gameRoomChildrens)){ |
| | | return; |
| | |
| | | QueryWrapper<GameRoomChild> gameRoomChildQueryWrapper = new QueryWrapper<>(); |
| | | gameRoomChildQueryWrapper.eq("room_id",gameRoom.getId()); |
| | | gameRoomChildQueryWrapper.eq("member_id",memberId); |
| | | gameRoomChildQueryWrapper.eq("state",GameRoomChild.OWNER_TRUE); |
| | | GameRoomChild gameRoomChildExist = gameRoomChildMapper.selectOne(gameRoomChildQueryWrapper); |
| | | if(ObjectUtil.isEmpty(gameRoomChildExist)){ |
| | | throw new FebsException("请重新进入房间"); |
| | |
| | | throw new FebsException("余额不足"); |
| | | } |
| | | if(amount.compareTo(balance) > 0){ |
| | | throw new FebsException("请减小金额"); |
| | | throw new FebsException("余额不足"); |
| | | } |
| | | |
| | | GameRoomTypeEnum room = GameRoomTypeEnum.ROOM_ONE.getRoom(gameRoom.getRoomType()); |
| | |
| | | gameGameChildMapper.insert(gameGameChild); |
| | | |
| | | if(1 == chooseNum){ |
| | | BigDecimal add = gameGame.getPickOne().add(amount).setScale(2,BigDecimal.ROUND_DOWN); |
| | | gameGame.setPickOne(add); |
| | | QueryWrapper<GameGameChild> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("game_id",gameId); |
| | | objectQueryWrapper.eq("pick_num",chooseNum); |
| | | List<GameGameChild> gameGameChildren = gameGameChildMapper.selectList(objectQueryWrapper); |
| | | BigDecimal tzAmount = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren)){ |
| | | tzAmount = gameGameChildren.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | gameGame.setPickOne(tzAmount); |
| | | } |
| | | if(2 == chooseNum){ |
| | | BigDecimal add = gameGame.getPickTwo().add(amount).setScale(2,BigDecimal.ROUND_DOWN); |
| | | gameGame.setPickTwo(add); |
| | | QueryWrapper<GameGameChild> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("game_id",gameId); |
| | | objectQueryWrapper.eq("pick_num",chooseNum); |
| | | List<GameGameChild> gameGameChildren = gameGameChildMapper.selectList(objectQueryWrapper); |
| | | BigDecimal tzAmount = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren)){ |
| | | tzAmount = gameGameChildren.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | gameGame.setPickTwo(tzAmount); |
| | | } |
| | | if(3 == chooseNum){ |
| | | BigDecimal add = gameGame.getPickThree().add(amount).setScale(2,BigDecimal.ROUND_DOWN); |
| | | gameGame.setPickThree(add); |
| | | QueryWrapper<GameGameChild> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("game_id",gameId); |
| | | objectQueryWrapper.eq("pick_num",chooseNum); |
| | | List<GameGameChild> gameGameChildren = gameGameChildMapper.selectList(objectQueryWrapper); |
| | | BigDecimal tzAmount = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren)){ |
| | | tzAmount = gameGameChildren.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | gameGame.setPickThree(tzAmount); |
| | | } |
| | | if(4 == chooseNum){ |
| | | BigDecimal add = gameGame.getPickFour().add(amount).setScale(2,BigDecimal.ROUND_DOWN); |
| | | gameGame.setPickFour(add); |
| | | QueryWrapper<GameGameChild> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("game_id",gameId); |
| | | objectQueryWrapper.eq("pick_num",chooseNum); |
| | | List<GameGameChild> gameGameChildren = gameGameChildMapper.selectList(objectQueryWrapper); |
| | | BigDecimal tzAmount = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren)){ |
| | | tzAmount = gameGameChildren.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | gameGame.setPickFour(tzAmount); |
| | | } |
| | | if(5 == chooseNum){ |
| | | BigDecimal add = gameGame.getPickFive().add(amount).setScale(2,BigDecimal.ROUND_DOWN); |
| | | gameGame.setPickFive(add); |
| | | QueryWrapper<GameGameChild> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("game_id",gameId); |
| | | objectQueryWrapper.eq("pick_num",chooseNum); |
| | | List<GameGameChild> gameGameChildren = gameGameChildMapper.selectList(objectQueryWrapper); |
| | | BigDecimal tzAmount = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren)){ |
| | | tzAmount = gameGameChildren.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | gameGame.setPickFive(tzAmount); |
| | | } |
| | | if(6 == chooseNum){ |
| | | BigDecimal add = gameGame.getPickSix().add(amount).setScale(2,BigDecimal.ROUND_DOWN); |
| | | gameGame.setPickSix(add); |
| | | QueryWrapper<GameGameChild> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("game_id",gameId); |
| | | objectQueryWrapper.eq("pick_num",chooseNum); |
| | | List<GameGameChild> gameGameChildren = gameGameChildMapper.selectList(objectQueryWrapper); |
| | | BigDecimal tzAmount = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren)){ |
| | | tzAmount = gameGameChildren.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | gameGame.setPickSix(tzAmount); |
| | | } |
| | | gameGameMapper.updateById(gameGame); |
| | | |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse gameIn(ApiGameDto apiGameDto) { |
| | | |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | log.info("加入房间:"+memberId); |
| | | /** |
| | | * 验证唯一房间编码是否存在 |
| | | * 验证当前是否已经加入过该房间 |
| | |
| | | |
| | | QueryWrapper<GameRoomChild> roomChildQueryWrapper = new QueryWrapper<>(); |
| | | roomChildQueryWrapper.eq("member_id",memberId); |
| | | roomChildQueryWrapper.eq("state",GameRoomChild.OWNER_TRUE); |
| | | List<GameRoomChild> roomChildExists = gameRoomChildMapper.selectList(roomChildQueryWrapper); |
| | | if(CollUtil.isNotEmpty(roomChildExists)){ |
| | | List<Long> roomIds = roomChildExists.stream().map(GameRoomChild::getRoomId).collect(Collectors.toList()); |
| | | |
| | | QueryWrapper<GameRoom> roomQuery = new QueryWrapper<>(); |
| | | roomQuery.in("id",roomIds); |
| | | List<GameRoom> gameRooms = gameRoomMapper.selectList(roomQuery); |
| | | List<GameRoom> collect = gameRooms.stream().filter(room -> room.getState() != GameRoom.STATE_DONE).collect(Collectors.toList()); |
| | | if(CollUtil.isNotEmpty(collect)){ |
| | | if(collect.size() > 1){ |
| | | throw new FebsException("请回到房间,房间码:"+collect.get(0).getPassword()); |
| | | roomIds.remove(gameRoom.getId()); |
| | | if(CollUtil.isNotEmpty(roomIds)){ |
| | | QueryWrapper<GameRoom> roomQuery = new QueryWrapper<>(); |
| | | roomQuery.in("id",roomIds); |
| | | List<GameRoom> gameRooms = gameRoomMapper.selectList(roomQuery); |
| | | List<GameRoom> collect = gameRooms.stream().filter(room -> room.getState() != GameRoom.STATE_DONE).collect(Collectors.toList()); |
| | | if(CollUtil.isNotEmpty(collect)){ |
| | | if(collect.size() > 0){ |
| | | throw new FebsException("请退出房间,房间码:"+collect.get(0).getPassword()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | ApiGamePlayerVo apiGamePlayerVo = new ApiGamePlayerVo(); |
| | | |
| | | QueryWrapper<GameRoomChild> gameRoomChildQueryWrapper = new QueryWrapper<>(); |
| | | gameRoomChildQueryWrapper.eq("room_id",gameRoom.getId()); |
| | | gameRoomChildQueryWrapper.eq("member_id",memberId); |
| | | gameRoomChildQueryWrapper.eq("owner_state",GameRoomChild.OWNER_TRUE); |
| | | GameRoomChild gameRoomChildExist = gameRoomChildMapper.selectOne(gameRoomChildQueryWrapper); |
| | | |
| | | MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | BigDecimal balance = mallMemberWallet.getBalance(); |
| | | GameRoomTypeEnum room = GameRoomTypeEnum.ROOM_ONE.getRoom(gameRoom.getRoomType()); |
| | | if(ObjectUtil.isNotEmpty(gameRoomChildExist)){ |
| | | Integer ownerState = gameRoomChildExist.getOwnerState(); |
| | | if(GameRoomChild.OWNER_TRUE == ownerState){ |
| | | BigDecimal roomAmount = new BigDecimal(room.getRoomAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(roomAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("进入房间,需要"+roomAmount+",请先充值"); |
| | | } |
| | | }else{ |
| | | BigDecimal minAmount = new BigDecimal(room.getMinAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(minAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("继续游戏需要"+minAmount+",请先充值"); |
| | | } |
| | | BigDecimal roomAmount = new BigDecimal(room.getRoomAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(roomAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("进入房间,需要"+roomAmount+",请先充值"); |
| | | } |
| | | apiGamePlayerVo.setPlayerType(GameRoomChild.OWNER_TRUE); |
| | | }else{ |
| | | BigDecimal minAmount = new BigDecimal(room.getMinAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(minAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("继续游戏需要"+minAmount+",请先充值"); |
| | | } |
| | | apiGamePlayerVo.setPlayerType(GameRoomChild.OWNER_FALSE); |
| | | } |
| | | |
| | | if(ObjectUtil.isNotEmpty(gameRoomChildExist)){ |
| | | apiGamePlayerVo.setPlayerType(gameRoomChildExist.getOwnerState()); |
| | | }else{ |
| | | |
| | | |
| | | QueryWrapper<GameRoomChild> childQueryWrapper = new QueryWrapper<>(); |
| | | childQueryWrapper.eq("room_id",gameRoom.getId()); |
| | | childQueryWrapper.eq("member_id",memberId); |
| | | GameRoomChild childQueryWrapperExist = gameRoomChildMapper.selectOne(childQueryWrapper); |
| | | |
| | | if(ObjectUtil.isNotEmpty(childQueryWrapperExist)){ |
| | | childQueryWrapperExist.setState(GameRoomChild.OWNER_TRUE); |
| | | gameRoomChildMapper.updateById(childQueryWrapperExist); |
| | | }else{ |
| | | GameRoomChild gameRoomChild = new GameRoomChild(); |
| | | gameRoomChild.setRoomId(gameRoom.getId()); |
| | | gameRoomChild.setMemberId(memberId); |
| | | gameRoomChild.setOwnerState(GameRoomChild.OWNER_FALSE); |
| | | gameRoomChild.setState(GameRoomChild.OWNER_TRUE); |
| | | gameRoomChildMapper.insert(gameRoomChild); |
| | | apiGamePlayerVo.setPlayerType(gameRoomChild.getOwnerState()); |
| | | } |
| | | apiGamePlayerVo.setBalance(balance); |
| | | |
| | |
| | | gameRoomChildQueryWrapper.eq("room_id",roomId); |
| | | gameRoomChildQueryWrapper.eq("member_id",memberId); |
| | | gameRoomChildQueryWrapper.eq("owner_state",GameRoomChild.OWNER_TRUE); |
| | | gameRoomChildQueryWrapper.eq("state",GameRoomChild.OWNER_TRUE); |
| | | GameRoomChild gameRoomChildExist = gameRoomChildMapper.selectOne(gameRoomChildQueryWrapper); |
| | | if(ObjectUtil.isEmpty(gameRoomChildExist)){ |
| | | throw new FebsException("房间不存在"); |
| | |
| | | QueryWrapper<GameRoomChild> gameRoomChildQueryWrapper = new QueryWrapper<>(); |
| | | gameRoomChildQueryWrapper.eq("room_id",gameRoom.getId()); |
| | | gameRoomChildQueryWrapper.eq("member_id",memberId); |
| | | gameRoomChildQueryWrapper.eq("owner_state",GameRoomChild.OWNER_TRUE); |
| | | GameRoomChild gameRoomChildExist = gameRoomChildMapper.selectOne(gameRoomChildQueryWrapper); |
| | | |
| | | MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | BigDecimal balance = mallMemberWallet.getBalance(); |
| | | GameRoomTypeEnum room = GameRoomTypeEnum.ROOM_ONE.getRoom(gameRoom.getRoomType()); |
| | | if(ObjectUtil.isNotEmpty(gameRoomChildExist)){ |
| | | Integer ownerState = gameRoomChildExist.getOwnerState(); |
| | | if(GameRoomChild.OWNER_TRUE == ownerState){ |
| | | BigDecimal roomAmount = new BigDecimal(room.getRoomAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(roomAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("进入房间,需要"+roomAmount+",请先充值"); |
| | | } |
| | | }else{ |
| | | BigDecimal minAmount = new BigDecimal(room.getMinAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(minAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("继续游戏需要"+minAmount+",请先充值"); |
| | | } |
| | | BigDecimal roomAmount = new BigDecimal(room.getRoomAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(roomAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("进入房间,需要"+roomAmount+",请先充值"); |
| | | } |
| | | }else{ |
| | | BigDecimal minAmount = new BigDecimal(room.getMinAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | |
| | | } |
| | | } |
| | | |
| | | if(ObjectUtil.isNotEmpty(gameRoomChildExist)){ |
| | | apiGamePlayerVo.setPlayerType(gameRoomChildExist.getOwnerState()); |
| | | }else{ |
| | | GameRoomChild gameRoomChild = new GameRoomChild(); |
| | | gameRoomChild.setRoomId(gameRoom.getId()); |
| | | gameRoomChild.setMemberId(memberId); |
| | | gameRoomChild.setOwnerState(GameRoomChild.OWNER_FALSE); |
| | | gameRoomChildMapper.insert(gameRoomChild); |
| | | apiGamePlayerVo.setPlayerType(gameRoomChild.getOwnerState()); |
| | | } |
| | | apiGamePlayerVo.setPlayerType(ObjectUtil.isNotEmpty(gameRoomChildExist) ? GameRoomChild.OWNER_TRUE : GameRoomChild.OWNER_FALSE); |
| | | apiGamePlayerVo.setBalance(balance); |
| | | apiGamePlayerVo.setRoomType(gameRoom.getRoomType()); |
| | | apiGamePlayerVo.setRoomId(gameRoom.getId()); |
| | | apiGamePlayerVo.setRoomOwner(gameRoom.getRoomOwner()); |
| | | apiGamePlayerVo.setPassword(gameRoom.getPassword()); |
| | | apiGamePlayerVo.setState(gameRoom.getState()); |
| | | apiGamePlayerVo.setGameTime(gameRoom.getGameTime()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse existGame(ApiExistGameDto apiExistGameDto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | Long roomId = apiExistGameDto.getRoomId(); |
| | |
| | | if(ObjectUtil.isEmpty(gameRoomChildExist)){ |
| | | throw new FebsException("房间不存在"); |
| | | } |
| | | gameRoomChildExist.setState(GameRoomChild.OWNER_FALSE); |
| | | gameRoomChildMapper.updateById(gameRoomChildExist); |
| | | |
| | | Integer ownerState = gameRoomChildExist.getOwnerState(); |
| | | //如果退出的是房主,那么游戏结束 |
| | | if(GameRoomChild.OWNER_TRUE == ownerState){ |
| | |
| | | webSocketRes.setCode(200); |
| | | webSocketRes.setMsg("OVER"); |
| | | this.sendMsgByRoomId(roomId, JSONUtil.parse(webSocketRes).toString()); |
| | | // this.sendMsgByRoomId(roomId,"OVER"); |
| | | } |
| | | |
| | | QueryWrapper<GameGame> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("room_id",roomId); |
| | | objectQueryWrapper.eq("state",GameGame.STATE_READY); |
| | | List<GameGame> gameGames = gameGameMapper.selectList(objectQueryWrapper); |
| | | if(ObjectUtil.isNotEmpty(gameGames)){ |
| | | for(GameGame game :gameGames){ |
| | | ApiEndGameDto apiEndGameDto = new ApiEndGameDto(); |
| | | apiEndGameDto.setRoomId(roomId); |
| | | apiEndGameDto.setGameId(game.getId()); |
| | | this.endGame(apiEndGameDto); |
| | | } |
| | | } |
| | | |
| | | QueryWrapper<GameRoomChild> roomChildQueryWrapper = new QueryWrapper<>(); |
| | | roomChildQueryWrapper.eq("room_id",roomId); |
| | | List<GameRoomChild> gameRoomChildren = gameRoomChildMapper.selectList(roomChildQueryWrapper); |
| | | if(ObjectUtil.isNotEmpty(gameRoomChildren)){ |
| | | for(GameRoomChild child : gameRoomChildren){ |
| | | child.setState(GameRoomChild.OWNER_FALSE); |
| | | gameRoomChildMapper.updateById(child); |
| | | } |
| | | } |
| | | } |
| | | //断开websocket |
| | |
| | | apiFlashGameVo.setFirstNum(gameGame.getFirstNum()); |
| | | apiFlashGameVo.setSecondNum(gameGame.getSecondNum()); |
| | | apiFlashGameVo.setState(gameGame.getState()); |
| | | apiFlashGameVo.setPickOne(gameGame.getPickOne()); |
| | | apiFlashGameVo.setPickTwo(gameGame.getPickTwo()); |
| | | apiFlashGameVo.setPickThree(gameGame.getPickThree()); |
| | | apiFlashGameVo.setPickFour(gameGame.getPickFour()); |
| | | apiFlashGameVo.setPickFive(gameGame.getPickFive()); |
| | | apiFlashGameVo.setPickSix(gameGame.getPickSix()); |
| | | |
| | | QueryWrapper<GameGameChild> objectQueryWrapper1 = new QueryWrapper<>(); |
| | | objectQueryWrapper1.eq("game_id",gameId); |
| | | objectQueryWrapper1.eq("pick_num",1); |
| | | List<GameGameChild> gameGameChildren1 = gameGameChildMapper.selectList(objectQueryWrapper1); |
| | | BigDecimal tzAmount1 = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren1)){ |
| | | tzAmount1 = gameGameChildren1.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | apiFlashGameVo.setPickOne(tzAmount1); |
| | | |
| | | QueryWrapper<GameGameChild> objectQueryWrapper2 = new QueryWrapper<>(); |
| | | objectQueryWrapper2.eq("game_id",gameId); |
| | | objectQueryWrapper2.eq("pick_num",2); |
| | | List<GameGameChild> gameGameChildren2 = gameGameChildMapper.selectList(objectQueryWrapper2); |
| | | BigDecimal tzAmount2 = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren2)){ |
| | | tzAmount2 = gameGameChildren2.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | apiFlashGameVo.setPickTwo(tzAmount2); |
| | | |
| | | QueryWrapper<GameGameChild> objectQueryWrapper3 = new QueryWrapper<>(); |
| | | objectQueryWrapper3.eq("game_id",gameId); |
| | | objectQueryWrapper3.eq("pick_num",3); |
| | | List<GameGameChild> gameGameChildren3 = gameGameChildMapper.selectList(objectQueryWrapper3); |
| | | BigDecimal tzAmount3 = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren3)){ |
| | | tzAmount3 = gameGameChildren3.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | apiFlashGameVo.setPickThree(tzAmount3); |
| | | |
| | | QueryWrapper<GameGameChild> objectQueryWrapper4 = new QueryWrapper<>(); |
| | | objectQueryWrapper4.eq("game_id",gameId); |
| | | objectQueryWrapper4.eq("pick_num",4); |
| | | List<GameGameChild> gameGameChildren4 = gameGameChildMapper.selectList(objectQueryWrapper4); |
| | | BigDecimal tzAmount4 = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren4)){ |
| | | tzAmount4 = gameGameChildren4.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | apiFlashGameVo.setPickFour(tzAmount4); |
| | | |
| | | QueryWrapper<GameGameChild> objectQueryWrapper5 = new QueryWrapper<>(); |
| | | objectQueryWrapper5.eq("game_id",gameId); |
| | | objectQueryWrapper5.eq("pick_num",5); |
| | | List<GameGameChild> gameGameChildren5 = gameGameChildMapper.selectList(objectQueryWrapper5); |
| | | BigDecimal tzAmount5 = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren5)){ |
| | | tzAmount5 = gameGameChildren5.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | apiFlashGameVo.setPickFive(tzAmount5); |
| | | |
| | | QueryWrapper<GameGameChild> objectQueryWrapper6 = new QueryWrapper<>(); |
| | | objectQueryWrapper6.eq("game_id",gameId); |
| | | objectQueryWrapper6.eq("pick_num",6); |
| | | List<GameGameChild> gameGameChildren6 = gameGameChildMapper.selectList(objectQueryWrapper6); |
| | | BigDecimal tzAmount6 = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(gameGameChildren6)){ |
| | | tzAmount6 = gameGameChildren6.stream() |
| | | .map(GameGameChild::getAmount) // 映射amount到流中 |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | apiFlashGameVo.setPickSix(tzAmount6); |
| | | |
| | | return new FebsResponse().success().data(apiFlashGameVo); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse roomInfo(ApiRoomInfoDto apiRoomInfoDto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | Long roomId = apiRoomInfoDto.getRoomId(); |
| | | GameRoom gameRoom = gameRoomMapper.selectById(roomId); |
| | | if(ObjectUtil.isEmpty(gameRoom)){ |
| | | throw new FebsException("房间不存在"); |
| | | } |
| | | |
| | | if(GameRoom.STATE_DONE == gameRoom.getState()){ |
| | | throw new FebsException("房间已失效"); |
| | | } |
| | | |
| | | ApiRoomInfoVo apiRoomInfoVo = new ApiRoomInfoVo(); |
| | | |
| | | QueryWrapper<GameRoomChild> gameRoomChildQueryWrapper = new QueryWrapper<>(); |
| | | gameRoomChildQueryWrapper.eq("room_id",gameRoom.getId()); |
| | | gameRoomChildQueryWrapper.eq("member_id",memberId); |
| | | gameRoomChildQueryWrapper.eq("owner_state",GameRoomChild.OWNER_TRUE); |
| | | GameRoomChild gameRoomChildExist = gameRoomChildMapper.selectOne(gameRoomChildQueryWrapper); |
| | | |
| | | MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | BigDecimal balance = mallMemberWallet.getBalance(); |
| | | GameRoomTypeEnum room = GameRoomTypeEnum.ROOM_ONE.getRoom(gameRoom.getRoomType()); |
| | | if(ObjectUtil.isNotEmpty(gameRoomChildExist)){ |
| | | BigDecimal roomAmount = new BigDecimal(room.getRoomAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(roomAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("进入房间,需要"+roomAmount+",请先充值"); |
| | | } |
| | | apiRoomInfoVo.setPlayerType(GameRoomChild.OWNER_TRUE); |
| | | }else{ |
| | | BigDecimal minAmount = new BigDecimal(room.getMinAmount()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(minAmount.compareTo(balance) > 0){ |
| | | throw new FebsException("继续游戏需要"+minAmount+",请先充值"); |
| | | } |
| | | apiRoomInfoVo.setPlayerType(GameRoomChild.OWNER_FALSE); |
| | | } |
| | | |
| | | |
| | | |
| | | QueryWrapper<GameRoomChild> childQueryWrapper = new QueryWrapper<>(); |
| | | childQueryWrapper.eq("room_id",gameRoom.getId()); |
| | | childQueryWrapper.eq("member_id",memberId); |
| | | GameRoomChild childQueryWrapperExist = gameRoomChildMapper.selectOne(childQueryWrapper); |
| | | |
| | | if(ObjectUtil.isNotEmpty(childQueryWrapperExist)){ |
| | | childQueryWrapperExist.setState(GameRoomChild.OWNER_TRUE); |
| | | gameRoomChildMapper.updateById(childQueryWrapperExist); |
| | | } |
| | | apiRoomInfoVo.setBalance(balance); |
| | | |
| | | apiRoomInfoVo.setRoomType(gameRoom.getRoomType()); |
| | | apiRoomInfoVo.setRoomId(gameRoom.getId()); |
| | | apiRoomInfoVo.setPassword(gameRoom.getPassword()); |
| | | apiRoomInfoVo.setState(gameRoom.getState()); |
| | | apiRoomInfoVo.setGameTime(gameRoom.getGameTime()); |
| | | |
| | | Long ownerMemberId = gameRoom.getOwnerMemberId(); |
| | | MallMember mallMember = mallMemberMapper.selectById(ownerMemberId); |
| | | apiRoomInfoVo.setRoomOwner(mallMember.getAccountLogin()); |
| | | |
| | | QueryWrapper<GameGame> gameGameQueryWrapper = new QueryWrapper<>(); |
| | | gameGameQueryWrapper.eq("room_id",gameRoom.getId()); |
| | | gameGameQueryWrapper.orderByDesc("CREATED_TIME"); |
| | | gameGameQueryWrapper.last("limit 5"); |
| | | List<GameGame> gameGames = gameGameMapper.selectList(gameGameQueryWrapper); |
| | | List<ApiGameGameVo> apiGameGameVos = new ArrayList<>(); |
| | | if(CollUtil.isNotEmpty(gameGames)){ |
| | | for(GameGame gameGame : gameGames){ |
| | | ApiGameGameVo apiGameGameVo = new ApiGameGameVo(); |
| | | apiGameGameVo.setFirstNum(ObjectUtil.isEmpty(gameGame.getFirstNum()) ? 0 : gameGame.getFirstNum()); |
| | | apiGameGameVo.setSecondNum(ObjectUtil.isEmpty(gameGame.getSecondNum()) ? 0 : gameGame.getSecondNum()); |
| | | apiGameGameVo.setState(gameGame.getState()); |
| | | apiGameGameVo.setPerkTime(gameGame.getPerkTime()); |
| | | if(GameGame.STATE_READY == gameGame.getState()){ |
| | | apiRoomInfoVo.setGameId(gameGame.getId()); |
| | | apiRoomInfoVo.setCreatedTime(gameGame.getCreatedTime()); |
| | | } |
| | | apiGameGameVos.add(apiGameGameVo); |
| | | } |
| | | } |
| | | apiRoomInfoVo.setApiGameGameVos(apiGameGameVos); |
| | | |
| | | return new FebsResponse().success().data(apiRoomInfoVo); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | System.out.println(ShareCodeUtil.toSerialNumberCodeTwo(1L)); |
| | | List<GameRoomTypeEnum> roomLists = GameRoomTypeEnum.ROOM_ONE.getRoomList(); |