package com.nova.sankuai.domain.api.shanghaizhongzan;
|
|
import com.alibaba.fastjson.JSON;
|
import com.nova.sankuai.domain.entity.Customer;
|
import com.nova.sankuai.domain.enums.customerinfo.*;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.stereotype.Component;
|
|
import java.util.*;
|
import java.util.stream.Stream;
|
|
/**
|
* @author Gmw
|
*/
|
@Data
|
@Component
|
@ConfigurationProperties(prefix = "shanghaizhongzan")
|
public class ShangHaiZhongZanUtil {
|
|
@ApiModelProperty(value = "上海中赞接口调用地址")
|
//private String url = "http://ali1.zhonganjf.com/big/data/rcvbaidu";
|
private String url = "http://ali1.zhongzanjf.com/big/data/rcvbaidu";
|
|
public static String parseParam(Customer customer) {
|
ShangHaiZhongZanRequestDto req = new ShangHaiZhongZanRequestDto();
|
req.setUcid(ucid());
|
req.setClueId(clueId());
|
req.setFormDetail(Arrays.asList(
|
new ShangHaiZhongZanRequestDto.FormDetailItem("姓名", "name", customer.getName()),
|
new ShangHaiZhongZanRequestDto.FormDetailItem("手机", "name", customer.getPhone()),
|
new ShangHaiZhongZanRequestDto.FormDetailItem("申请金额", "name", amountApplication(customer)),
|
new ShangHaiZhongZanRequestDto.FormDetailItem("城市", "name", customer.getCityName()),
|
new ShangHaiZhongZanRequestDto.FormDetailItem("提高额度资料", "name", increaseQuotaData(customer))));
|
return JSON.toJSONString(req);
|
}
|
|
private static String amountApplication(Customer customer) {
|
return Optional.ofNullable(customer.getLoanAmount()).map(Object::toString).orElse("");
|
}
|
|
private static String increaseQuotaData(Customer customer) {
|
List<String> items = new ArrayList<>();
|
houseStatus(customer, items);
|
carStatus(customer, items);
|
insurancePolicy(customer, items);
|
providentFund(customer, items);
|
socialSecurity(customer, items);
|
return String.join(",", items);
|
}
|
|
private static void socialSecurity(Customer customer, List<String> items) {
|
Stream<Integer> condition = Stream.of(
|
SocialSecurityStatusEnum.SocialSecurity_2.getCode(),
|
SocialSecurityStatusEnum.SocialSecurity_3.getCode(),
|
SocialSecurityStatusEnum.SocialSecurity_4.getCode());
|
if (condition.anyMatch(t -> Objects.equals(t, customer.getSocialSecurity()))) {
|
items.add("有社保");
|
}
|
}
|
|
private static void providentFund(Customer customer, List<String> items) {
|
Stream<Integer> condition = Stream.of(
|
ProvidentFundStatusEnum.ProvidentFund_2.getCode(),
|
ProvidentFundStatusEnum.ProvidentFund_3.getCode(),
|
ProvidentFundStatusEnum.ProvidentFund_4.getCode());
|
if (condition.anyMatch(t -> Objects.equals(t, customer.getProvidentFund()))) {
|
items.add("有公积金");
|
}
|
}
|
|
private static void insurancePolicy(Customer customer, List<String> items) {
|
Stream<Integer> condition = Stream.of(
|
InsuranceStatusEnum.BusinessInsurance_2.getCode(),
|
InsuranceStatusEnum.BusinessInsurance_3.getCode(),
|
InsuranceStatusEnum.BusinessInsurance_4.getCode(),
|
InsuranceStatusEnum.BusinessInsurance_5.getCode(),
|
InsuranceStatusEnum.BusinessInsurance_6.getCode());
|
if (condition.anyMatch(t -> Objects.equals(t, customer.getInsurancePolicy()))) {
|
items.add("有保单");
|
}
|
}
|
|
private static void carStatus(Customer customer, List<String> items) {
|
Stream<Integer> condition = Stream.of(
|
CarStatusEnum.Car_2.getCode(),
|
CarStatusEnum.Car_3.getCode(),
|
CarStatusEnum.Car_4.getCode());
|
if (condition.anyMatch(t -> Objects.equals(t, customer.getCarStatus()))) {
|
items.add("有车");
|
}
|
}
|
|
private static void houseStatus(Customer customer, List<String> items) {
|
Stream<Integer> condition = Stream.of(
|
HouseStatusEnum.House_2.getCode(),
|
HouseStatusEnum.House_3.getCode(),
|
HouseStatusEnum.House_4.getCode());
|
if (condition.anyMatch(t -> Objects.equals(t, customer.getHouseStatus()))) {
|
items.add("有房");
|
}
|
}
|
|
private static String clueId() {
|
return "220120194957800810";
|
}
|
|
private static String ucid() {
|
return "32917327";
|
}
|
}
|