package com.nq.service.impl; import com.nq.enums.EStockType; import com.nq.service.IRateServices; import com.nq.service.ISiteAdminService; import com.nq.service.ISiteSettingService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; @Service public class RateServicesImpl implements IRateServices { @Resource ISiteSettingService iSiteSettingService; @Override public BigDecimal currencyRate(EStockType fromStockType, EStockType tofromStockType) { if(fromStockType == null || tofromStockType == null){ return new BigDecimal(1); } BigDecimal rate = iSiteSettingService.getSiteSetting().getExchangeRate(); BigDecimal rate1 = new BigDecimal(83.5); if(fromStockType==EStockType.US){ if(tofromStockType==EStockType.IN){ return rate; } }if(fromStockType==EStockType.IN){ if(tofromStockType==EStockType.US){ return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN).multiply(rate); }else if(tofromStockType==EStockType.US){ return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN); } } else { if(tofromStockType==EStockType.US){ return new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN); }else{ return new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN).multiply(rate1); } } return new BigDecimal(1); } }