package com.nova.sankuai.domain.api.hengyidai.response; import com.nova.sankuai.domain.vo.capitalflow.CapitalLoanTrialVo; import com.nova.sankuai.domain.vo.RepayPlanVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @Data @ApiModel("试算查询响应参数") public class HyGetTrialInfoResponse { @ApiModelProperty("进件单号") private String orderNo; @ApiModelProperty("申请金额 单位:分。取的是平台合同金额的值") private Long applyAmount; @ApiModelProperty("申请期数") private Integer applyPeriodNum; @ApiModelProperty("申请期限单位 1:天,2:月,暂时只支持:月") private Integer applyPeriodNumUnit; @ApiModelProperty("实际到账金额 单位:分。取的是平 台的放款金额") private Long actualAmount; @ApiModelProperty("应还总金额 单位:分。") private Long totalRepayAmount; @ApiModelProperty("应还总利息 单位:分。") private Long totalInterestAmount; @ApiModelProperty("应还总服务费 单位:分。") private Long totalFeeAmount; @ApiModelProperty("应还其他总费用 单位:分。默认0") private Long totalOtherAmount; @ApiModelProperty("年化利率 例如:12.23") private BigDecimal yearRate; @ApiModelProperty("金额说明 展示给用户看。如:本金 10000元 , 利 息 600元,服务费 2000") private String remark; @ApiModelProperty("还款计划 按时 间顺序 从早到完,单期产品按 1 期") private List repayPlans; public static CapitalLoanTrialVo parseVo(HyGetTrialInfoResponse response) { CapitalLoanTrialVo capitalLoanTrialVo = new CapitalLoanTrialVo(); capitalLoanTrialVo.setPeriodNumUnit(response.getApplyPeriodNumUnit()); capitalLoanTrialVo.setActualAmount(response.getActualAmount()); capitalLoanTrialVo.setTotalRepayAmount(response.getTotalRepayAmount()); capitalLoanTrialVo.setTotalFeeAmount(response.getTotalFeeAmount()); capitalLoanTrialVo.setTotalOtherAmount(response.getTotalOtherAmount()); capitalLoanTrialVo.setYearRate(response.getYearRate()); capitalLoanTrialVo.setRemark(response.getRemark()); List repayPlans = response.getRepayPlans(); if (repayPlans != null && repayPlans.size() > 0) { List repayPlanVos = new ArrayList<>(); for (RepayPlans repayPlan : repayPlans) { RepayPlanVo repayPlanVo = repayPlan.parseVo(); repayPlanVos.add(repayPlanVo); } capitalLoanTrialVo.setRepayPlans(repayPlanVos); } return capitalLoanTrialVo; } }