| | |
| | | |
| | | @RabbitListener(queues = RabbitMqConfig.QUEUE_FISH_HIT) |
| | | public void fishHit(String content) { |
| | | log.info("收到打渔消息:{}", content); |
| | | MsgModel msg = JSONObject.parseObject(content, MsgModel.class); |
| | | |
| | | synchronized (this) { |
| | | List<CannonOwnRecord> forts = cannonOwnRecordDao.selectCannonOwnRecordsByMemberIdAndCannonCode(msg.getMemberId(), msg.getFortCode()); |
| | | if (CollUtil.isEmpty(forts)) { |
| | | log.info("未拥有该炮台"); |
| | | log.info("未拥有该炮台:{}", content); |
| | | return; |
| | | } |
| | | |
| | |
| | | BigDecimal available = accountGold.getAvailableBalance(); |
| | | |
| | | BigDecimal gold; |
| | | // 由于前端打渔实现逻辑为,点击炮台发射子弹时触发一次,打中鱼再触发一次,所以,扣减和增加分开算 |
| | | if (msg.getObtain() == 0) { |
| | | gold = msg.getConsume().negate(); |
| | | } else { |
| | |
| | | } |
| | | |
| | | if (msg.getConsume().compareTo(available) > 0) { |
| | | log.info("余额不足"); |
| | | log.info("余额不足:{}", content); |
| | | return; |
| | | } |
| | | |