public Money convert()

in online_bontique_demo/currencyService/src/main/java/org/apache/dubbo/shop/currency/CurrencyServiceImpl.java [60:76]


    public Money convert(CurrencyConversionRequest request) {
        Map<String, Double> currencies = loadCurrencyData();
        
        Double fromCurrencyRate = currencies.get(request.getFrom().getCurrencyCode());
        Double toCurrencyRate = currencies.get(request.getToCode());
        if (fromCurrencyRate == null || toCurrencyRate == null) {
            throw new RuntimeException("Unsupported currency code");
        }
        Long totalNanos = request.getFrom().getUnits() * 1_000_000_000 + request.getFrom().getNanos();
        double convertedNanos = totalNanos * toCurrencyRate / fromCurrencyRate;
        
        Money response = new Money();
        response.setCurrencyCode(request.getToCode());
        response.setUnits((long) (convertedNanos / 1_000_000_000L));
        response.setNanos((int) (convertedNanos % 1_000_000_000L));
        return response;
    }