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(7.35); if(fromStockType==EStockType.US){ if(tofromStockType==EStockType.MAS){ return rate; }else if(tofromStockType==EStockType.HK){ return rate1; } }if(fromStockType==EStockType.HK){ if(tofromStockType==EStockType.MAS){ 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); } }