package com.nova.sankuai.domain.api.yangqianguan.vo;
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.nova.sankuai.domain.api.yangqianguan.YqgUtil;
|
import com.nova.sankuai.domain.api.yixin.vo.YxpkgListVo;
|
import com.nova.sankuai.infra.utils.ConstantsUtil;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
|
@ApiModel(value = "还款明细")
|
@Data
|
public class RepayDetailVo {
|
|
@ApiModelProperty(value = "期号")
|
@JsonProperty("period_no")
|
private Integer periodNo;
|
|
@ApiModelProperty(value = "当期还款类型 1:整期还款 2:部分还款")
|
private Integer type;
|
|
@ApiModelProperty(value = "当期还款金额")
|
private Double amount;
|
|
@ApiModelProperty(value = "当期还款本金")
|
private Double principal;
|
|
@ApiModelProperty(value = "当期还款利息")
|
private Double interest;
|
|
@ApiModelProperty(value = "当期还款罚息")
|
@JsonProperty("overdue_interest")
|
private Double overdueInterest;
|
|
@ApiModelProperty(value = "当期还款服务费")
|
@JsonProperty("service_fee")
|
private Double serviceFee;
|
|
@ApiModelProperty(value = "其他费用")
|
@JsonProperty("other_fee")
|
private Double otherFee;
|
|
@ApiModelProperty(value = "特殊情况 0:无 1:线下减免")
|
private Integer tag;
|
|
@ApiModelProperty(value = "减免金额 tag为1时非空")
|
@JsonProperty("reduce_fee")
|
private Double reduceFee;
|
|
@ApiModelProperty(value = "备注")
|
private String remark;
|
|
public Double calculateAmount() {
|
Double amount = this.principal + this.interest + this.serviceFee + this.overdueInterest + this.otherFee;
|
return amount;
|
}
|
|
public static RepayDetailVo parseVo(YxpkgListVo yxpkgListVo) {
|
RepayDetailVo repayDetailVo = new RepayDetailVo();
|
repayDetailVo.setPeriodNo(Integer.valueOf(yxpkgListVo.getRepayTerm()));
|
repayDetailVo.setType(1);
|
repayDetailVo.setPrincipal(ConstantsUtil.formatPrice(yxpkgListVo.getTermRetPrin()));
|
repayDetailVo.setInterest(ConstantsUtil.formatPrice(yxpkgListVo.getTermRetInt()));
|
repayDetailVo.setOverdueInterest(ConstantsUtil.formatPrice(yxpkgListVo.getTermRetFint()));
|
repayDetailVo.setServiceFee(ConstantsUtil.formatPrice(yxpkgListVo.getServiceReFee()));
|
repayDetailVo.setOtherFee(ConstantsUtil.formatPrice(yxpkgListVo.getGuarantorReAmt()) + ConstantsUtil.formatPrice(yxpkgListVo.getSpeaccountRe()));
|
repayDetailVo.setTag(0);
|
repayDetailVo.setRemark(YqgUtil.parseRemark(repayDetailVo.getPrincipal(), repayDetailVo.getInterest(), repayDetailVo.getServiceFee(), repayDetailVo.getOverdueInterest(), repayDetailVo.getOtherFee()));
|
repayDetailVo.setAmount(repayDetailVo.calculateAmount());
|
return repayDetailVo;
|
}
|
}
|