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 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 items) { Stream 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 items) { Stream 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 items) { Stream 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 items) { Stream 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 items) { Stream 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"; } }