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);
|
|
}
|
|
}
|