#161 Рефакторинг контроллера перевода денег
Сделать код-ревью:
@RestController
public class AccountController {
@Autowired
public AccountDAOImpl accountDAOImpl;
@Autowired
public KafkaNotificationService kafkaNotificationService;
@PutMapping("/transfer")
public Long transferMoney(@RequestParam Double money, @RequestParam long fromId, @RequestParam long toId) {
var accountFrom = accountDAOImpl.getAccountById(fromId);
var accountTo = accountDAOImpl.getAccountById(toId);
if (accountFrom.balance - money < 0) {
throw new RuntimeException();
}
accountFrom.balance = accountFrom.balance - money;
accountTo.balance = accountTo.balance + money;
long transactionId = accountDAOImpl.transfer(accountFrom, accountTo);
kafkaNotificationService.export(transactionId);
return transactionId;
}
}
Разбор вопроса
Войди, чтобы начать диалог
Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти
Доступно с Premium
Это лишь одно из решений, доступных с Premium. А ещё:
- 250+ продвинутых лекций
- 1300+ практических заданий
- 500+ решений задач с реальных собеседований
- Именные сертификаты Java Hub
- Расширенный доступ к AI-ментору