package com.nova.sankuai.domain.api.yangqianguan.response; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.fasterxml.jackson.annotation.JsonProperty; import com.nova.sankuai.domain.entity.CustomerCapitalResult; import com.nova.sankuai.domain.enums.capitalInfo.CapitalApprovalResultEnum; import com.nova.sankuai.infra.utils.ConstantsUtil; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.commons.lang.StringUtils; /** * @author weikangdi * @create 2022/5/17 */ @Data @ApiModel(value = "授信结果查询响应参数") public class CreditResultResponse { @ApiModelProperty(value = "授信中") public static final Integer STATUS_WAIT = 0; @ApiModelProperty(value = "授信通过") public static final Integer STATUS_SUCCESS = 1; @ApiModelProperty(value = "授信失败") public static final Integer STATUS_FAIL = 2; @ApiModelProperty(value = "授信取消") public static final Integer STATUS_CANCEL = 3; @JsonProperty("credit_no") @ApiModelProperty(value = "授信编号") private String creditNo; @ApiModelProperty(value = "授信结果") private Integer status; /** * 1:普通额度, 2:循环额度(需重新授信), 3:循环额度(无需重新授信) */ @JsonProperty("limit_type") @ApiModelProperty(value = "额度类型") private Integer limitType; @JsonProperty("credit_limit") @ApiModelProperty(value = "授信总额度") private Double creditLimit; @JsonProperty("available_credit_limit") @ApiModelProperty(value = "可用额度") private Double availableCreditLimit; @JsonProperty("expire_time") @ApiModelProperty(value = "授信结果失效时间") private Long expireTime; @JsonProperty("process_time") @ApiModelProperty(value = "授信结果处理时间") private Long processTime; @ApiModelProperty(value = "授信结果说明") private String remark; public static CreditResultResponse parse(CustomerCapitalResult capitalResult) { DateTime nextApplyTime = DateUtil.beginOfDay(DateUtil.offsetDay(capitalResult.getCreationDate(), 30)); nextApplyTime = DateUtil.endOfDay(nextApplyTime); CreditResultResponse response = new CreditResultResponse(); response.setCreditNo(capitalResult.getCreditNo()); response.setRemark(""); //设置授信结果处理时间 if (StringUtils.isNotEmpty(capitalResult.getCreditApplyTime())) { response.setProcessTime(DateUtil.parse(capitalResult.getCreditApplyTime()).getTime()); } else { response.setProcessTime(capitalResult.getLastUpdatedDate().getTime()); } if (CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode().equals(capitalResult.getApprovalResult())) { response.setStatus(CreditResultResponse.STATUS_SUCCESS); response.setLimitType(1); response.setAvailableCreditLimit(Double.valueOf(capitalResult.getAvailableAmount())); response.setCreditLimit(Double.valueOf(capitalResult.getTotalCredit())); response.setExpireTime(ConstantsUtil.parseEndDate(capitalResult.getSubExpDate())); return response; } else if (CapitalApprovalResultEnum.APPROVAL_REFUSE.getCode().equals(capitalResult.getApprovalResult()) || CapitalApprovalResultEnum.APPROVAL_REQUEST_FAIL.getCode().equals(capitalResult.getApprovalResult())) { response.setExpireTime(nextApplyTime.getTime()); response.setStatus(CreditResultResponse.STATUS_FAIL); if (StringUtils.isNotEmpty(capitalResult.getFailedReason())) { response.setRemark(capitalResult.getFailedReason()); } else { response.setRemark("审批拒绝"); } return response; } else { response.setExpireTime(nextApplyTime.getTime()); response.setStatus(CreditResultResponse.STATUS_WAIT); return response; } } }