|
|
@@ -28,25 +28,23 @@ public class HouseInfoServiceImpl implements HouseInfoService {
|
|
|
private static Logger logger = Logger.getLogger(HouseInfoServiceImpl.class);
|
|
|
|
|
|
@Autowired
|
|
|
- private HouseInfoMapper houseInfoMapper;
|
|
|
-
|
|
|
+ private HouseInfoMapper houseInfoMapper;
|
|
|
@Autowired
|
|
|
- private CompetitionSeasonMapper competitionSeasonMapper;
|
|
|
-
|
|
|
+ private CompetitionSeasonMapper competitionSeasonMapper;
|
|
|
@Autowired
|
|
|
- private UserInfoService userInfoService;
|
|
|
-
|
|
|
+ private UserInfoService userInfoService;
|
|
|
@Autowired
|
|
|
- private MemberCoinService memberCoinService;
|
|
|
-
|
|
|
+ private MemberCoinService memberCoinService;
|
|
|
@Autowired
|
|
|
- private PlayerInfoService playerInfoService;
|
|
|
-
|
|
|
+ private PlayerInfoService playerInfoService;
|
|
|
@Autowired
|
|
|
- private SystemNoticeService systemNoticeService;
|
|
|
-
|
|
|
+ private SystemNoticeService systemNoticeService;
|
|
|
+ @Autowired
|
|
|
+ private BonusRecordService bonusRecordService;
|
|
|
@Autowired
|
|
|
- private BonusRecordService bonusRecordService;
|
|
|
+ private CompetitionService competitionService;
|
|
|
+ @Autowired
|
|
|
+ private ParticipatingInfoService participatingInfoService;
|
|
|
|
|
|
@Override
|
|
|
public List<HouseInfo> getHouseInfoList(HouseInfo record) {
|
|
|
@@ -193,213 +191,282 @@ public class HouseInfoServiceImpl implements HouseInfoService {
|
|
|
*/
|
|
|
@Override
|
|
|
public boolean settlementHouse(HouseInfo record) {
|
|
|
-
|
|
|
logger.info("settlementHouse");
|
|
|
-
|
|
|
-
|
|
|
try {
|
|
|
-
|
|
|
HouseInfo houseInfo = new HouseInfo();
|
|
|
houseInfo.setId(record.getId());
|
|
|
houseInfo = houseInfoMapper.queryHouseInfo(houseInfo);
|
|
|
|
|
|
- if (houseInfo != null) {
|
|
|
+ if (houseInfo == null || !houseInfo.getStatusFlag().equals(AppConstant.HouseStatus.ANALYSIS)) {
|
|
|
+ //只有结束比赛的才能结算
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- if (houseInfo.getStatusFlag() == AppConstant.HouseStatus.ANALYSIS) {//只有结束比赛的才能结算
|
|
|
+ List<PlayerInfo> playerInfos = playerInfoService.getHouseRank(record.getId());
|
|
|
+ if (CollectionUtils.isEmpty(playerInfos)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- HouseLevel houseLevel = houseInfo.getHouseLevelInfo();
|
|
|
+ // Competition competition = competitionService.getCompetitionById(record.getCompetitionId().toString());
|
|
|
+
|
|
|
+ for (PlayerInfo playerInfo : playerInfos) {
|
|
|
+ double rankRate = playerInfo.getRank() * 100 / (double) playerInfos.size();
|
|
|
+ double points = 0;
|
|
|
+ if (playerInfo.getRank() == 1) {
|
|
|
+ points = 40;
|
|
|
+ } else if (rankRate <= 10) {
|
|
|
+ points = 20;
|
|
|
+ } else if (rankRate <= 20) {
|
|
|
+ points = 10;
|
|
|
+ } else if (rankRate <= 30) {
|
|
|
+ points = 0;
|
|
|
+ } else {
|
|
|
+ points = -10;
|
|
|
+ }
|
|
|
+ if (playerInfo.getRanking() != null && playerInfo.getRanking() == 1) {
|
|
|
+ points += 10;
|
|
|
+ }
|
|
|
+ playerInfo.setPoints(new BigDecimal(points));
|
|
|
+ playerInfo.setHouseRank(playerInfo.getRank());
|
|
|
|
|
|
- BigDecimal firstRatio = houseLevel.getFirstRatio();
|
|
|
- BigDecimal secondRatio = houseLevel.getSecondRatio();
|
|
|
- BigDecimal thirdRatio = houseLevel.getThirdRatio();
|
|
|
- BigDecimal poolRatio = houseLevel.getPoolRatio();
|
|
|
- BigDecimal avgRatio = houseLevel.getAvgRatio();
|
|
|
+ String content = "你在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
+ + "开始的比赛\"" + houseInfo.getHouseName() + "\"中获得了第" + playerInfo.getHouseRank()
|
|
|
+ + "名," + (points >= 0 ? "获得" : "扣除") + points + "积分。";
|
|
|
+ SystemNotice systemNotice = new SystemNotice();
|
|
|
+ systemNotice.setGameId(playerInfo.getGameId());
|
|
|
+ systemNotice.setHouseId(playerInfo.getHouseId());
|
|
|
+ systemNotice.setUserId(playerInfo.getUserId());
|
|
|
+ systemNotice.setSeasonId(playerInfo.getSeasonId());
|
|
|
+ systemNotice.setPlayerId(playerInfo.getId());
|
|
|
+ systemNotice.setRemark("定时任务");
|
|
|
|
|
|
- int winNum = 0;//吃鸡人数
|
|
|
+ systemNotice.setContent(content);
|
|
|
+ systemNotice.setTypeFlag(AppConstant.NoticeType.RESULT);
|
|
|
|
|
|
+ systemNoticeService.createSystemNotice(systemNotice);
|
|
|
|
|
|
- PlayerInfo param = new PlayerInfo();
|
|
|
- if (houseInfo.getScoreType() > 0) {
|
|
|
- param.setScoreType(1);
|
|
|
+ //推送
|
|
|
+ try {
|
|
|
+ UserInfo userInfo = new UserInfo();
|
|
|
+ userInfo.setId(playerInfo.getUserId());
|
|
|
+ userInfo = userInfoService.getSingleUserInfo(userInfo);
|
|
|
+ if (userInfo != null) {
|
|
|
+ if ("Y".equals(userInfo.getNoticeFlag())) {
|
|
|
+ PushUtil.pushMsg(userInfo.getId().toString(), content);
|
|
|
+ }
|
|
|
}
|
|
|
- param.setHouseId(record.getId());
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("结算推送消息异常。", e);
|
|
|
+ }
|
|
|
|
|
|
- List<PlayerInfo> playerInfoList = playerInfoService.getSettlementPlayer(param);
|
|
|
+ if (AppConstant.PlayerStatus.PROCESSED == playerInfo.getStatusFlag()) {//如果正常结束的则更新状态
|
|
|
+ playerInfo.setStatusFlag(AppConstant.PlayerStatus.SETTLEMENT);
|
|
|
|
|
|
- if (CollectionUtils.isNotEmpty(playerInfoList)) {
|
|
|
+ }
|
|
|
+ playerInfoService.updatePlayerInfo(playerInfo);
|
|
|
+ }
|
|
|
|
|
|
- if (houseInfo.getScoreType() > 0) {//如果是平分模式,获取吃鸡人数。
|
|
|
- param.setRanking(1);
|
|
|
- List<PlayerInfo> winList = playerInfoService.getSettlementPlayer(param);
|
|
|
- winNum = winList.size();
|
|
|
- }
|
|
|
+ //更新为结算完成状态。
|
|
|
+ houseInfo.setStatusFlag(AppConstant.HouseStatus.SETTLEMENT);
|
|
|
+ houseInfoMapper.updateByPrimaryKeySelective(houseInfo);
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error(e);
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- for (int i = 0; i < playerInfoList.size(); i++) {
|
|
|
- PlayerInfo playerInfo = playerInfoList.get(i);
|
|
|
- playerInfo.setHouseRank(i + 1);
|
|
|
- BigDecimal bonus = BigDecimal.ZERO;
|
|
|
- String content = "";
|
|
|
- int typeFlag = AppConstant.NoticeType.RECEIVE;
|
|
|
+ public boolean settlementHouse_bak(HouseInfo record) {
|
|
|
|
|
|
- if (AppConstant.PlayerStatus.PROCESSED_FAIL == playerInfo.getStatusFlag()) {
|
|
|
+ logger.info("settlementHouse");
|
|
|
+ try {
|
|
|
|
|
|
- content = "很遗憾,你在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
- + "开始的游戏竞赛 " + houseInfo.getHouseName()
|
|
|
- + ",未解析到结果,无法获得奖励。";
|
|
|
- typeFlag = AppConstant.NoticeType.RESULT;
|
|
|
- } else if (AppConstant.PlayerStatus.OVERTIME == playerInfo.getStatusFlag()) {
|
|
|
- content = "很遗憾,你在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
- + "开始的游戏竞赛 " + houseInfo.getHouseName()
|
|
|
- + ",比赛超时,无法获得奖励。";
|
|
|
- typeFlag = AppConstant.NoticeType.RESULT;
|
|
|
- } else {
|
|
|
- if (houseInfo.getScoreType() == 0) {//吃鸡模式
|
|
|
- if (playerInfo.getRanking() != null && 1 == playerInfo.getRanking()) {//只有吃鸡才能获得奖励
|
|
|
-
|
|
|
- if (i == 0) {//第一名
|
|
|
- bonus = BigDecimal.valueOf((firstRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue());
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- if (i == 1) {//第二名
|
|
|
- bonus = BigDecimal.valueOf((secondRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue());
|
|
|
- }
|
|
|
- if (i == 2) {//第三名
|
|
|
- bonus = BigDecimal.valueOf((thirdRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue());
|
|
|
- }
|
|
|
-
|
|
|
- content = "恭喜你,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
- + "开始的游戏竞赛 " + houseInfo.getHouseName() + "(吃鸡模式)获得了第" + playerInfo.getHouseRank()
|
|
|
- + "名,获得" + bonus + "积分,赶快领取你的奖励吧。";
|
|
|
- } else {
|
|
|
-
|
|
|
- content = "很遗憾,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
- + "开始的游戏竞赛 " + houseInfo.getHouseName() + "(吃鸡模式)获得了第" + playerInfo.getHouseRank()
|
|
|
- + "名,但未能吃鸡,因此无法获得奖励。";
|
|
|
- typeFlag = AppConstant.NoticeType.RESULT;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (playerInfo.getRanking() != null && 1 == playerInfo.getRanking()) {//只有评分大于0才能获得奖励
|
|
|
-
|
|
|
- if (winNum > 0) {//吃鸡人数大于0
|
|
|
- bonus = BigDecimal.valueOf(((avgRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue()) / winNum);
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- content = "恭喜你,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
- + "开始的游戏竞赛 " + houseInfo.getHouseName() + "(平分模式)获得了第" + playerInfo.getHouseRank()
|
|
|
- + "名,获得" + bonus + "积分,赶快领取你的奖励吧。";
|
|
|
- } else {
|
|
|
- content = "很遗憾,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
- + "开始的游戏竞赛 " + houseInfo.getHouseName() + "(平分模式)获得了第" + playerInfo.getHouseRank()
|
|
|
- + "名,但未吃鸡,因此无法获得奖励。";
|
|
|
- typeFlag = AppConstant.NoticeType.RESULT;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ HouseInfo houseInfo = new HouseInfo();
|
|
|
+ houseInfo.setId(record.getId());
|
|
|
+ houseInfo = houseInfoMapper.queryHouseInfo(houseInfo);
|
|
|
|
|
|
+ if (houseInfo == null || !houseInfo.getStatusFlag().equals(AppConstant.HouseStatus.ANALYSIS)) {
|
|
|
+ //只有结束比赛的才能结算
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- playerInfo.setBonus(bonus);
|
|
|
+ HouseLevel houseLevel = houseInfo.getHouseLevelInfo();
|
|
|
|
|
|
+ BigDecimal firstRatio = houseLevel.getFirstRatio();
|
|
|
+ BigDecimal secondRatio = houseLevel.getSecondRatio();
|
|
|
+ BigDecimal thirdRatio = houseLevel.getThirdRatio();
|
|
|
+ BigDecimal poolRatio = houseLevel.getPoolRatio();
|
|
|
+ BigDecimal avgRatio = houseLevel.getAvgRatio();
|
|
|
|
|
|
- SystemNotice systemNotice = new SystemNotice();
|
|
|
- systemNotice.setGameId(playerInfo.getGameId());
|
|
|
- systemNotice.setHouseId(playerInfo.getHouseId());
|
|
|
- systemNotice.setUserId(playerInfo.getUserId());
|
|
|
- systemNotice.setSeasonId(playerInfo.getSeasonId());
|
|
|
- systemNotice.setPlayerId(playerInfo.getId());
|
|
|
- systemNotice.setRemark("定时任务");
|
|
|
+ int winNum = 0;//吃鸡人数
|
|
|
|
|
|
- systemNotice.setContent(content);
|
|
|
- systemNotice.setTypeFlag(typeFlag);
|
|
|
+ PlayerInfo param = new PlayerInfo();
|
|
|
+ if (houseInfo.getScoreType() > 0) {
|
|
|
+ param.setScoreType(1);
|
|
|
+ }
|
|
|
+ param.setHouseId(record.getId());
|
|
|
|
|
|
- systemNoticeService.createSystemNotice(systemNotice);
|
|
|
+ List<PlayerInfo> playerInfoList = playerInfoService.getSettlementPlayer(param);
|
|
|
|
|
|
- //推送
|
|
|
- try {
|
|
|
- UserInfo userInfo = new UserInfo();
|
|
|
- userInfo.setId(playerInfo.getUserId());
|
|
|
- userInfo = userInfoService.getSingleUserInfo(userInfo);
|
|
|
- if (userInfo != null) {
|
|
|
- if ("Y".equals(userInfo.getNoticeFlag())) {
|
|
|
- String[] ids = new String[]{userInfo.getId().toString()};
|
|
|
+ if (CollectionUtils.isNotEmpty(playerInfoList)) {
|
|
|
|
|
|
- PushUtil.pushMsg(ids, content);
|
|
|
- }
|
|
|
+ if (houseInfo.getScoreType() > 0) {//如果是平分模式,获取吃鸡人数。
|
|
|
+ param.setRanking(1);
|
|
|
+ List<PlayerInfo> winList = playerInfoService.getSettlementPlayer(param);
|
|
|
+ winNum = winList.size();
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ for (int i = 0; i < playerInfoList.size(); i++) {
|
|
|
+ PlayerInfo playerInfo = playerInfoList.get(i);
|
|
|
+ playerInfo.setHouseRank(i + 1);
|
|
|
+ BigDecimal bonus = BigDecimal.ZERO;
|
|
|
+ String content = "";
|
|
|
+ int typeFlag = AppConstant.NoticeType.RECEIVE;
|
|
|
|
|
|
+ if (AppConstant.PlayerStatus.PROCESSED_FAIL == playerInfo.getStatusFlag()) {
|
|
|
|
|
|
- } catch (Exception e) {
|
|
|
- logger.error("结算推送消息异常。", e);
|
|
|
- }
|
|
|
+ content = "很遗憾,你在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
+ + "开始的游戏竞赛 " + houseInfo.getHouseName()
|
|
|
+ + ",未解析到结果,无法获得奖励。";
|
|
|
+ typeFlag = AppConstant.NoticeType.RESULT;
|
|
|
+ } else if (AppConstant.PlayerStatus.OVERTIME == playerInfo.getStatusFlag()) {
|
|
|
+ content = "很遗憾,你在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
+ + "开始的游戏竞赛 " + houseInfo.getHouseName()
|
|
|
+ + ",比赛超时,无法获得奖励。";
|
|
|
+ typeFlag = AppConstant.NoticeType.RESULT;
|
|
|
+ } else {
|
|
|
+ if (houseInfo.getScoreType() == 0) {//吃鸡模式
|
|
|
+ if (playerInfo.getRanking() != null && 1 == playerInfo.getRanking()) {//只有吃鸡才能获得奖励
|
|
|
+
|
|
|
+ if (i == 0) {//第一名
|
|
|
+ bonus = BigDecimal.valueOf((firstRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue());
|
|
|
|
|
|
- if (AppConstant.PlayerStatus.PROCESSED == playerInfo.getStatusFlag()) {//如果正常结束的则更新状态
|
|
|
- playerInfo.setStatusFlag(AppConstant.PlayerStatus.SETTLEMENT);
|
|
|
|
|
|
+ }
|
|
|
+ if (i == 1) {//第二名
|
|
|
+ bonus = BigDecimal.valueOf((secondRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue());
|
|
|
+ }
|
|
|
+ if (i == 2) {//第三名
|
|
|
+ bonus = BigDecimal.valueOf((thirdRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ content = "恭喜你,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
+ + "开始的游戏竞赛 " + houseInfo.getHouseName() + "(吃鸡模式)获得了第" + playerInfo.getHouseRank()
|
|
|
+ + "名,获得" + bonus + "积分,赶快领取你的奖励吧。";
|
|
|
+ } else {
|
|
|
+
|
|
|
+ content = "很遗憾,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
+ + "开始的游戏竞赛 " + houseInfo.getHouseName() + "(吃鸡模式)获得了第" + playerInfo.getHouseRank()
|
|
|
+ + "名,但未能吃鸡,因此无法获得奖励。";
|
|
|
+ typeFlag = AppConstant.NoticeType.RESULT;
|
|
|
}
|
|
|
- playerInfoService.updatePlayerInfo(playerInfo);
|
|
|
+ } else {
|
|
|
+ if (playerInfo.getRanking() != null && 1 == playerInfo.getRanking()) {//只有评分大于0才能获得奖励
|
|
|
|
|
|
+ if (winNum > 0) {//吃鸡人数大于0
|
|
|
+ bonus = BigDecimal.valueOf(((avgRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue()) / winNum);
|
|
|
+ }
|
|
|
|
|
|
+ content = "恭喜你,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
+ + "开始的游戏竞赛 " + houseInfo.getHouseName() + "(平分模式)获得了第" + playerInfo.getHouseRank()
|
|
|
+ + "名,获得" + bonus + "积分,赶快领取你的奖励吧。";
|
|
|
+ } else {
|
|
|
+ content = "很遗憾,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
|
|
|
+ + "开始的游戏竞赛 " + houseInfo.getHouseName() + "(平分模式)获得了第" + playerInfo.getHouseRank()
|
|
|
+ + "名,但未吃鸡,因此无法获得奖励。";
|
|
|
+ typeFlag = AppConstant.NoticeType.RESULT;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (poolRatio.doubleValue() > 0) {
|
|
|
- //加入到赛季奖金池中
|
|
|
- try {
|
|
|
+ //todo: 这里临时改成了积分
|
|
|
+ playerInfo.setPoints(bonus);
|
|
|
|
|
|
- BigDecimal pool = BigDecimal.valueOf((poolRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue());
|
|
|
+ SystemNotice systemNotice = new SystemNotice();
|
|
|
+ systemNotice.setGameId(playerInfo.getGameId());
|
|
|
+ systemNotice.setHouseId(playerInfo.getHouseId());
|
|
|
+ systemNotice.setUserId(playerInfo.getUserId());
|
|
|
+ systemNotice.setSeasonId(playerInfo.getSeasonId());
|
|
|
+ systemNotice.setPlayerId(playerInfo.getId());
|
|
|
+ systemNotice.setRemark("定时任务");
|
|
|
|
|
|
- CompetitionSeason competitionSeason = competitionSeasonMapper.selectByPrimaryKey(houseInfo.getSeasonId());
|
|
|
+ systemNotice.setContent(content);
|
|
|
+ systemNotice.setTypeFlag(typeFlag);
|
|
|
|
|
|
- if (competitionSeason != null) {
|
|
|
+ systemNoticeService.createSystemNotice(systemNotice);
|
|
|
|
|
|
+ //推送
|
|
|
+ try {
|
|
|
+ UserInfo userInfo = new UserInfo();
|
|
|
+ userInfo.setId(playerInfo.getUserId());
|
|
|
+ userInfo = userInfoService.getSingleUserInfo(userInfo);
|
|
|
+ if (userInfo != null) {
|
|
|
+ if ("Y".equals(userInfo.getNoticeFlag())) {
|
|
|
+ String[] ids = new String[]{userInfo.getId().toString()};
|
|
|
|
|
|
- double balance = competitionSeason.getBonus().doubleValue();
|
|
|
- double moneyCoin = balance + pool.doubleValue();
|
|
|
+ PushUtil.pushMsg(ids, content);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- BonusRecord bonusRecord = new BonusRecord();
|
|
|
- bonusRecord.setMoney(pool);
|
|
|
- bonusRecord.setBonus(BigDecimal.valueOf(moneyCoin));
|
|
|
- bonusRecord.setSeasonId(houseInfo.getSeasonId());
|
|
|
- bonusRecord.setGameId(houseInfo.getGameId());
|
|
|
- bonusRecord.setHouseId(houseInfo.getId());
|
|
|
- bonusRecord.setTypeFlag(0);
|
|
|
- bonusRecord.setRemark(houseInfo.getHouseName() + "比赛结算," + pool.doubleValue() + " 积分");
|
|
|
- bonusRecordService.createBonusRecord(bonusRecord);
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("结算推送消息异常。", e);
|
|
|
+ }
|
|
|
|
|
|
- CompetitionSeason addBonus = new CompetitionSeason();
|
|
|
- addBonus.setId(competitionSeason.getId());
|
|
|
- addBonus.setBonus(pool);
|
|
|
+ if (AppConstant.PlayerStatus.PROCESSED == playerInfo.getStatusFlag()) {//如果正常结束的则更新状态
|
|
|
+ playerInfo.setStatusFlag(AppConstant.PlayerStatus.SETTLEMENT);
|
|
|
|
|
|
- competitionSeasonMapper.addBonus(addBonus);
|
|
|
+ }
|
|
|
+ playerInfoService.updatePlayerInfo(playerInfo);
|
|
|
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ if (poolRatio.doubleValue() > 0) {
|
|
|
+ //加入到赛季奖金池中
|
|
|
+ try {
|
|
|
|
|
|
- } catch (Exception e) {
|
|
|
- logger.error("赛季奖金池添加奖金异常!", e);
|
|
|
- }
|
|
|
+ BigDecimal pool = BigDecimal.valueOf((poolRatio.doubleValue() / 100) * houseInfo.getBonus().doubleValue());
|
|
|
|
|
|
- }
|
|
|
+ CompetitionSeason competitionSeason = competitionSeasonMapper.selectByPrimaryKey(houseInfo.getSeasonId());
|
|
|
|
|
|
+ if (competitionSeason != null) {
|
|
|
|
|
|
- //更新为结算完成状态。
|
|
|
- houseInfo.setStatusFlag(AppConstant.HouseStatus.SETTLEMENT);
|
|
|
- houseInfoMapper.updateByPrimaryKeySelective(houseInfo);
|
|
|
|
|
|
- return true;
|
|
|
- }
|
|
|
+ double balance = competitionSeason.getBonus().doubleValue();
|
|
|
+ double moneyCoin = balance + pool.doubleValue();
|
|
|
+
|
|
|
+ BonusRecord bonusRecord = new BonusRecord();
|
|
|
+ bonusRecord.setMoney(pool);
|
|
|
+ bonusRecord.setBonus(BigDecimal.valueOf(moneyCoin));
|
|
|
+ bonusRecord.setSeasonId(houseInfo.getSeasonId());
|
|
|
+ bonusRecord.setGameId(houseInfo.getGameId());
|
|
|
+ //todo: 这里临时改成了比赛id
|
|
|
+ bonusRecord.setCompetitionId(houseInfo.getId());
|
|
|
+ bonusRecord.setTypeFlag(0);
|
|
|
+ bonusRecord.setRemark(houseInfo.getHouseName() + "比赛结算," + pool.doubleValue() + " 积分");
|
|
|
+ bonusRecordService.createBonusRecord(bonusRecord);
|
|
|
+
|
|
|
+ CompetitionSeason addBonus = new CompetitionSeason();
|
|
|
+ addBonus.setId(competitionSeason.getId());
|
|
|
+ addBonus.setBonus(pool);
|
|
|
+
|
|
|
+ competitionSeasonMapper.addBonus(addBonus);
|
|
|
+
|
|
|
|
|
|
+ }
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("赛季奖金池添加奖金异常!", e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ //更新为结算完成状态。
|
|
|
+ houseInfo.setStatusFlag(AppConstant.HouseStatus.SETTLEMENT);
|
|
|
+ houseInfoMapper.updateByPrimaryKeySelective(houseInfo);
|
|
|
|
|
|
+ return true;
|
|
|
} catch (Exception e) {
|
|
|
logger.error("settlementHouse", e);
|
|
|
}
|
|
|
-
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
@@ -423,7 +490,6 @@ public class HouseInfoServiceImpl implements HouseInfoService {
|
|
|
return new Result(false, "加入失败,房间不存在!");
|
|
|
}
|
|
|
|
|
|
-
|
|
|
UserInfo userInfo = new UserInfo();
|
|
|
userInfo.setId(record.getUserId());
|
|
|
userInfo = userInfoService.getSingleUserInfo(userInfo);
|
|
|
@@ -466,7 +532,6 @@ public class HouseInfoServiceImpl implements HouseInfoService {
|
|
|
return new Result(false, "加入失败,余额不足");
|
|
|
}
|
|
|
|
|
|
-
|
|
|
record.setGameId(houseInfo.getGameId());
|
|
|
record.setHouseId(houseInfo.getId());
|
|
|
record.setJoinTime(new Date());
|
|
|
@@ -617,18 +682,12 @@ public class HouseInfoServiceImpl implements HouseInfoService {
|
|
|
List<HouseInfo> houseInfoList = houseInfoMapper.queryAllHouseInfo(record);
|
|
|
|
|
|
for (HouseInfo houseInfo : houseInfoList) {
|
|
|
-
|
|
|
-
|
|
|
settlementHouse(houseInfo);//比赛结果结算。
|
|
|
}
|
|
|
-
|
|
|
return new Result(true, "结束成功");
|
|
|
-
|
|
|
-
|
|
|
} catch (Exception e) {
|
|
|
logger.error("autoSettlement", e);
|
|
|
}
|
|
|
-
|
|
|
return new Result(false, "结束失败");
|
|
|
}
|
|
|
|