Эйч
Эйч
  • Все менторы
Задачи/Android-разработчик/Code Review

Code Review

Условие задачи

Представь, что ты Senior в финтехе и Junior прислал тебе задачу на проверку. Необходимо провести Code Review

kotlinconst val receiptRestClient = ReceiptRestClient()
const val cbrRestClient = CbrRestClient()

@Service
class PaymentService {
    
    @Autowired
    private var paymentRepository: PaymentRepository? = null

    @Autowired
    private lateinit var userRepository: UserRepository

    @Transactional
    fun doPayment(
        amount: Double,
        currency: Currency,
        recipientId: Long?,
        userId: Long
    ) {
        val amountInRub: Double = amount * cbrRestClient.getRates().get(currency.getCode())

        val user: User = userRepository.findUserById(userId)!!

        val payment: Payment = Payment(amountInRub, user, recipientId)
        paymentRepository!!.save(payment)

        if (amountInRub < 1000) {
            val fee = Fee(amountInRub * 0.015, user)
            paymentRepository!!.saveFee(fee)
        }

        if (amountInRub > 1000) {
            val fee = Fee(amountInRub * 0.01, user)
            paymentRepository!!.saveFee(fee)
        }

        if (amountInRub > 5000) {
            val fee = Fee(amountInRub * 0.005, user)
            paymentRepository!!.saveFee(fee)
        }

        try {
            receiptRestClient.notify(payment)
        } catch (t: Throwable) {
            // do nothing
        }
    }
}

Профессия

Android-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта