ludo-匹配-门票从金币改成钻石,可配置赢家没收益
This commit is contained in:
@@ -139,7 +139,8 @@ public class MiniGameForNavSettleListener implements ApplicationListener<MiniGam
|
||||
|
||||
//ai赢了不发奖励
|
||||
Users winUser = usersBaseService.getUsersByUid(winUid);
|
||||
if (null != winUser && !Constant.DefUser.GAME_MANAGE_ROBOT.equals(winUser.getDefUser())){
|
||||
if (null != winUser && !Constant.DefUser.GAME_MANAGE_ROBOT.equals(winUser.getDefUser())
|
||||
&& winner > 0d){
|
||||
userPurseService.addDiamond(winUid, winner, BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(userPurse.getUid(), miniGameMatchRound.getId().toString(),
|
||||
BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN, winner, userPurse)));
|
||||
|
@@ -145,7 +145,7 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
List<GameModePlayVo> gameModes = new ArrayList<>();
|
||||
|
||||
Map<Integer, GameModeDto> gameModeMap = config.getGameModeMap();
|
||||
List<Integer> gameModeList = gameModeMap.keySet().stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
|
||||
List<Integer> gameModeList = gameModeMap.keySet().stream().sorted(Comparator.reverseOrder()).toList();
|
||||
for (Integer gameMode : gameModeList) {
|
||||
GameModeDto gameModeDto = gameModeMap.get(gameMode);
|
||||
Double winner = gameModeDto.getWinner();
|
||||
@@ -203,11 +203,12 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
Integer partitionId = users.getPartitionId();
|
||||
|
||||
//入场费
|
||||
Double diamondNum = gameModeConfig.getTicket();
|
||||
Double goldNum = gameModeConfig.getTicket();
|
||||
Date now = new Date();
|
||||
|
||||
//扣减钱包,创建完轮次后再插入账单
|
||||
UserPurse afterPurse = userPurseService.subDiamond(uid, diamondNum, BillObjTypeEnum.MINI_GAME_MATCH_ENTER_OUT, BusiStatus.DIAMONDNUMNOTENOUGH, UserPurse::getDiamonds);
|
||||
UserPurse afterPurse = userPurseService.subGold(uid, goldNum, BillObjTypeEnum.MINI_GAME_LUDO_TICKET_IN, BusiStatus.DIAMONDNUMNOTENOUGH, UserPurse::getGolds);
|
||||
//UserPurse afterPurse = userPurseService.subDiamond(uid, diamondNum, BillObjTypeEnum.MINI_GAME_MATCH_ENTER_OUT, BusiStatus.DIAMONDNUMNOTENOUGH, UserPurse::getDiamonds);
|
||||
|
||||
//别的玩家已经发起等待的房间
|
||||
MiniGameMatch fromMiniGameMatch = null;
|
||||
@@ -253,7 +254,7 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
toMiniGameMatch.setMgId(mgId);
|
||||
toMiniGameMatch.setGameMode(gameMode);
|
||||
toMiniGameMatch.setMatchStatus(NavGameMatchStatusEnum.WAIT.ordinal());
|
||||
toMiniGameMatch.setTicket(diamondNum);
|
||||
toMiniGameMatch.setTicket(goldNum);
|
||||
toMiniGameMatch.setPartitionId(partitionId);
|
||||
toMiniGameMatch.setCreateTime(now);
|
||||
toMiniGameMatch.setUpdateTime(now);
|
||||
@@ -271,7 +272,7 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
miniGameMatchService.save(toMiniGameMatch);
|
||||
}
|
||||
|
||||
billRecordService.insertGeneralBillRecord(uid, toMiniGameMatch.getId().toString(), BillObjTypeEnum.MINI_GAME_MATCH_ENTER_OUT, diamondNum, afterPurse);
|
||||
billRecordService.insertGeneralBillRecord(uid, toMiniGameMatch.getId().toString(), BillObjTypeEnum.MINI_GAME_LUDO_TICKET_OUT, goldNum, afterPurse);
|
||||
|
||||
if (fromMiniGameMatch != null) {
|
||||
//匹配
|
||||
@@ -392,7 +393,7 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
Long uid = miniGameMatch.getUid();
|
||||
Long roomId = miniGameMatch.getRoomId();
|
||||
//入场费
|
||||
Double diamondNum = miniGameMatch.getTicket();
|
||||
Double goldNum = miniGameMatch.getTicket();
|
||||
|
||||
//聊天室
|
||||
ChatRoom chatRoom = chatRoomService.getByRoomId(roomId);
|
||||
@@ -404,8 +405,8 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
//匹配失败
|
||||
sendSysMsgService.sendSingleRoomMessage(roomId, chatRoom.getChatRoomId().toString(), Constant.DefMsgType.MINI_GAME_MATCH, Constant.DefMsgType.MINI_GAME_MATCH_FOR_FAIL, new MiniGameMatchRoundDto());
|
||||
//增加钱包
|
||||
userPurseService.addDiamond(uid, diamondNum, BillObjTypeEnum.MINI_GAME_MATCH_REFUND_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(uid, miniGameMatch.getId().toString(), BillObjTypeEnum.MINI_GAME_MATCH_REFUND_IN, diamondNum, userPurse)));
|
||||
userPurseService.addGold(uid, goldNum, BillObjTypeEnum.MINI_GAME_MATCH_REFUND_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(uid, miniGameMatch.getId().toString(), BillObjTypeEnum.MINI_GAME_LUDO_TICKET_IN, goldNum, userPurse)));
|
||||
|
||||
log.error("[ludo] 匹配失败 已清除等待 和 退款 roomId {} fromMatchId {} fromUid {}",
|
||||
miniGameMatch.getRoomId(), miniGameMatch.getId(), miniGameMatch.getUid());
|
||||
@@ -455,8 +456,8 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
//机器人不退款
|
||||
if (isRefund && matchStatus == NavGameMatchStatusEnum.SUCCESS.ordinal() && ticket > 0D) {
|
||||
//增加钱包
|
||||
userPurseService.addDiamond(fromUid, ticket, BillObjTypeEnum.MINI_GAME_MATCH_REFUND_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(fromUid, gameMatchRound.getId().toString(), BillObjTypeEnum.MINI_GAME_MATCH_REFUND_IN, ticket, userPurse)));
|
||||
userPurseService.addGold(fromUid, ticket, BillObjTypeEnum.MINI_GAME_LUDO_TICKET_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(fromUid, gameMatchRound.getId().toString(), BillObjTypeEnum.MINI_GAME_LUDO_TICKET_IN, ticket, userPurse)));
|
||||
}
|
||||
fromMatch.setMatchStatus(NavGameMatchStatusEnum.FINISH.ordinal());
|
||||
miniGameMatchService.updateById(fromMatch);
|
||||
@@ -467,8 +468,8 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
//机器人不退款
|
||||
if (isRefund && matchStatus == NavGameMatchStatusEnum.SUCCESS.ordinal() && ticket > 0D) {
|
||||
//增加钱包
|
||||
userPurseService.addDiamond(toUid, ticket, BillObjTypeEnum.MINI_GAME_MATCH_REFUND_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(toUid, gameMatchRound.getId().toString(), BillObjTypeEnum.MINI_GAME_MATCH_REFUND_IN, ticket, userPurse)));
|
||||
userPurseService.addGold(toUid, ticket, BillObjTypeEnum.MINI_GAME_LUDO_TICKET_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(toUid, gameMatchRound.getId().toString(), BillObjTypeEnum.MINI_GAME_LUDO_TICKET_IN, ticket, userPurse)));
|
||||
}
|
||||
toMatch.setMatchStatus(NavGameMatchStatusEnum.FINISH.ordinal());
|
||||
miniGameMatchService.updateById(toMatch);
|
||||
@@ -641,9 +642,9 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
miniGameMatchRound.setWinNum(winner);
|
||||
miniGameMatchRound.setPlatformNum(platform);
|
||||
|
||||
userPurseService.addDiamond(fromUid, winner, BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(fromUid, miniGameMatchRound.getId().toString(),
|
||||
BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN, winner, userPurse)));
|
||||
//userPurseService.addDiamond(fromUid, winner, BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN,
|
||||
// (userPurse -> billRecordService.insertGeneralBillRecord(fromUid, miniGameMatchRound.getId().toString(),
|
||||
// BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN, winner, userPurse)));
|
||||
|
||||
//榜单
|
||||
Map<String, IRank> rankMap = RankServiceFactory.getServiceByType(RedisKey.mini_game_rank.name());
|
||||
@@ -673,9 +674,9 @@ public class MiniGameForNavServiceImpl implements MiniGameForNavService {
|
||||
miniGameMatchRound.setWinNum(winner);
|
||||
miniGameMatchRound.setPlatformNum(platform);
|
||||
|
||||
userPurseService.addDiamond(toUid, winner, BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN,
|
||||
(userPurse -> billRecordService.insertGeneralBillRecord(toUid, miniGameMatchRound.getId().toString(),
|
||||
BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN, winner, userPurse)));
|
||||
//userPurseService.addDiamond(toUid, winner, BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN,
|
||||
// (userPurse -> billRecordService.insertGeneralBillRecord(toUid, miniGameMatchRound.getId().toString(),
|
||||
// BillObjTypeEnum.MINI_GAME_MATCH_WINNER_IN, winner, userPurse)));
|
||||
|
||||
//榜单
|
||||
Map<String, IRank> rankMap = RankServiceFactory.getServiceByType(RedisKey.mini_game_rank.name());
|
||||
|
Reference in New Issue
Block a user