遇到一个需求,就是我费率返回给前端的时候,多余的小数位不要展示
我对象转换全是使用的mapstruct,有兴趣的可以了解一下。就是只需要自定义接口,然后在编译时生成转换逻辑的代码
这次我只是简单记录一下,特殊逻辑的时候,怎么实现自定义转换
首先,是自定义的转换逻辑
public class ConvertExpression {
private ConvertExpression() {
}
public static String stripTrailingZeros(BigDecimal num){
return num.stripTrailingZeros().toString();
}
}
这段逻辑很简单,就只是把多余的0去掉
然后重点介绍,对应转换接口如何写
@Mapping(target = "mutableRation",expression = "java(com.fofund.oprmgt.bus.domain.convert.ConvertExpression.stripTrailingZeros(oprMgtManagerRationInfoDO.getMutableRation()))")
@Mapping(target = "immutableRation",expression = "java(com.fofund.oprmgt.bus.domain.convert.ConvertExpression.stripTrailingZeros(oprMgtManagerRationInfoDO.getImmutableRation()))")
ManagerDiscountBO oprMgtManagerRationInfoDOToManagerDiscountBO(OprMgtManagerRationInfoDO oprMgtManagerRationInfoDO);
划重点:expression一定要是全路径