package com.nova.sankuai.infra.utils.qinghuayoupin;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONObject;
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.nova.sankuai.domain.api.hengyidai.response.HyGetOrderStatusResponse;
|
import com.nova.sankuai.domain.api.qinghuayoupin.QingHuaYouPinResponse;
|
import com.nova.sankuai.domain.api.zhongzan.RbResponse;
|
import com.nova.sankuai.domain.dto.qinghuayoupin.*;
|
|
import com.nova.sankuai.domain.dto.rongbei.ApplyDto;
|
import com.nova.sankuai.domain.dto.rongbei.ContactListDto;
|
import com.nova.sankuai.domain.dto.rongbei.DeviceInfoDto;
|
import com.nova.sankuai.domain.dto.rongbei.ProfileDictDto;
|
import com.nova.sankuai.domain.entity.*;
|
import com.nova.sankuai.domain.enums.capitalInfo.CapitalApprovalResultEnum;
|
import com.nova.sankuai.domain.enums.capitalInfo.CapitalResultStatusEnum;
|
import com.nova.sankuai.infra.mapper.CustomerApplyOrderMapper;
|
import com.nova.sankuai.infra.mapper.CustomerCapitalResultMapper;
|
import com.nova.sankuai.infra.mapper.CustomerMapper;
|
import com.nova.sankuai.infra.mapper.CustomerUserMapper;
|
import com.nova.sankuai.infra.utils.ConstantsUtil;
|
import com.nova.sankuai.infra.utils.SpringUtils;
|
import com.nova.sankuai.security.HttpClientUtil;
|
import com.nova.sankuai.service.ICapitalResultCommonService;
|
import com.nova.sankuai.service.ICustomerCapitalResultService;
|
import com.nova.sankuai.service.ICustomerScyIncomeService;
|
import com.nova.sankuai.service.IRepayRecord;
|
import com.nova.sankuai.service.impl.CustomerCapitalResultServiceImpl;
|
import com.nova.sankuai.service.impl.VipCardOrderServiceImpl;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.http.ResponseEntity;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.DigestUtils;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.nio.charset.StandardCharsets;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
|
@Component
|
@RequiredArgsConstructor
|
public class QingHuaYouPinUtil {
|
private static final Logger log = LoggerFactory.getLogger("capitalLogger");
|
private final CustomerApplyOrderMapper customerApplyOrderMapper;
|
|
@Value("${rongbei.qingHuaYouPin.orgCode}")
|
private String orgCode;
|
|
@Value("${rongbei.qingHuaYouPin.productCode}")
|
private String productCode;
|
|
@Value("${rongbei.qingHuaYouPin.publicKey}")
|
private String publicKey;
|
|
@Value("${rongbei.qingHuaYouPin.privateKey}")
|
private String privateKey;
|
@Value("${rongbei.qingHuaYouPin.publicKeySelf}")
|
private String publicKeySelf;
|
@Value("${rongbei.qingHuaYouPin.privateKeySelf}")
|
private String privateKeySelf;
|
@Value("${rongbei.qingHuaYouPin.basicUrl}")
|
private String basicUrl;
|
private final ICapitalResultCommonService capitalResultCommonService;
|
private final CustomerCapitalResultMapper capitalResultMapper;
|
private final HttpServletRequest request;
|
private final CustomerMapper customerMapper;
|
private final CustomerUserMapper customerUserMapper;
|
private final ICustomerScyIncomeService customerZcyIncomeService;
|
|
/**
|
* 用户准入接口
|
* @param capitalInfo
|
* @param customer
|
* @param customerUser
|
* @return
|
*/
|
public RbResponse checkUser(CapitalInfo capitalInfo, Customer customer, CustomerUser customerUser) {
|
String logNumber = IdUtil.randomUUID();
|
RbResponse resp = new RbResponse();
|
log.info("日志编号:" + logNumber + "【轻花优品】用户准入接口开始");
|
CustomerCapitalResult capitalResult = CustomerCapitalResult.initResult(capitalInfo, customerUser.getId(), customer.getId());
|
capitalResult.setStatus(CapitalResultStatusEnum.CHECK.getCode());
|
CustomerCapitalResult filterResult = capitalResultCommonService.filterCustomer(customer, capitalInfo, capitalResult, logNumber);
|
if (filterResult != null) {
|
log.info("日志编号:" + logNumber + capitalInfo.getName() + "撞库时不满足资方信息筛选条件,撞库失败");
|
}
|
JSONObject param = new JSONObject();
|
param.putOpt("certNoMd5", DigestUtils.md5DigestAsHex(customer.getIdCard().getBytes(StandardCharsets.UTF_8)));
|
param.putOpt("phoneMd5", DigestUtils.md5DigestAsHex(customer.getPhone().getBytes(StandardCharsets.UTF_8)));
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,param.toString(),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:" + logNumber + " 手机号为:{},【轻花优品】用户准入接口参数:{}, data加密 {},desKey{}", customer.getPhone(), param, jsonData,desKey);
|
String result = null;
|
try {
|
log.info("日志编号:" + logNumber + " 请求地址 {}", basicUrl + "/qhyp/api/userCheck/checkUser");
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/userCheck/checkUser", jsonData);
|
} catch (Exception ex) {
|
capitalResult.setCheckResult(CustomerCapitalResult.CHECK_FAIL);
|
log.error("日志编号:" + logNumber + " 手机号为:{},【轻花优品】用户准入接口推送失败,传参:{} ex:{}", customer.getPhone(), jsonData, ex, "");
|
}
|
try {
|
log.error("日志编号:" + logNumber + " 用户准入接口回传数据{}", result);
|
getQhypResponse(resp, logNumber, jsonData, result, "用户准入接口",desKey.toString());
|
log.error("日志编号:" + logNumber + " 用户准入接口回传数据解密后{}", resp);
|
if ("200".equals(resp.getCode())) {//准入成功
|
capitalResult.setCheckResult(CustomerCapitalResult.CHECK_SUCCESS);
|
}else {
|
capitalResult.setCheckResult(CustomerCapitalResult.CHECK_FAIL);
|
}
|
} catch (Exception ex) {
|
capitalResult.setCheckResult(CustomerCapitalResult.CHECK_FAIL);
|
log.error("日志编号:" + logNumber + " 手机号为:{},【轻花优品】用户准入接口推送原始返回参数转换失败,jsonData:{} ex:{}", customer.getPhone(), jsonData, ex, "");
|
}
|
// capitalResultMapper.insert(capitalResult);
|
return resp;
|
}
|
public RbResponse getContract(Integer type) {
|
RbResponse resp = new RbResponse();
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:" + logNumber + "【轻花优品】获取协议接口开始");
|
JSONObject param = new JSONObject();
|
param.putOpt("scene", type);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,param.toString(),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:" + logNumber + " 【轻花优品】获取协议接口参数:{}, data加密 {}", param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/contract/getContract", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + "【轻花优品】获取协议接口推送失败,传参:{} ex:{}", jsonData, ex, "");
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "获取协议接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + " 【轻花优品】获取协议接口推送原始返回参数转换失败,jsonData:{} ex:{}", jsonData, ex, "");
|
}
|
return resp;
|
}
|
/**
|
* 3.进件接口
|
*/
|
public RbResponse pushProfile(Customer customer) {
|
RbResponse resp = new RbResponse();
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:" + logNumber + "【轻花优品】进件接口开始"+customer.toString());
|
Random random = new Random();
|
int[] values;
|
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyyMMdd");
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
UserProfile userProfile = new UserProfile();
|
userProfile.setImageFormat("LINK");
|
userProfile.setPartnerOrderNo(customer.getCreditNo());
|
userProfile.setMobile(customer.getPhone());
|
userProfile.setUserName(customer.getName());
|
userProfile.setIdCard(customer.getIdCard());
|
// 照片 photos
|
Photos photos = new Photos();
|
photos.setNationalEmblemImage(StringUtils.isEmpty(customer.getIdCardFrontPath())? "https://zhitech18967.itech-zwbbg.cn/api/upload_img/20240923/2ba1d26c0bc94bd7ad61e399c77168d5.png" :customer.getIdCardFrontPath());
|
photos.setHeadImage(StringUtils.isEmpty(customer.getIdCardBackPath())? "https://zhitech18967.itech-zwbbg.cn/api/upload_img/20240923/2ba1d26c0bc94bd7ad61e399c77168d5.png" :customer.getIdCardBackPath());
|
photos.setName(customer.getName());
|
photos.setCertNo(customer.getIdCard());
|
try {
|
photos.setCertValidStart(StringUtils.isEmpty(customer.getIdValidDateBegin())? "2011-10-10":simpleDateFormat.format(inputFormat.parse(customer.getIdValidDateBegin())));
|
photos.setCertValidEnd(StringUtils.isEmpty(customer.getIdValidDateEnd())? "2031-10-10":simpleDateFormat.format(inputFormat.parse(customer.getIdValidDateEnd())));
|
} catch (ParseException e) {
|
log.error("日期转换异常{}",e);
|
}
|
photos.setCertAddress(StringUtils.isEmpty(customer.getIdAddress())? "测试测试测试测试测试测试测试测试":customer.getIdAddress());
|
photos.setGender(StringUtils.isEmpty(customer.getSex())? "男":customer.getSex());
|
photos.setNation(StringUtils.isEmpty(customer.getNation())?"汉":customer.getNation());
|
photos.setCertSignOrg(StringUtils.isEmpty(customer.getSignOrganization()) ? "测试机关测试机关测试机关":customer.getSignOrganization());
|
photos.setFaceImageUrl(StringUtils.isEmpty(customer.getFacePhotoPath())? "https://zhitech18967.itech-zwbbg.cn/api/upload_img/20240923/2ba1d26c0bc94bd7ad61e399c77168d5.png":customer.getFacePhotoPath());
|
photos.setFaceScore(StringUtils.isEmpty(customer.getVerifySimilarity())? "99.555554":customer.getVerifySimilarity());
|
photos.setFaceImage(StringUtils.isEmpty(customer.getFacePhotoPath())? "https://zhitech18967.itech-zwbbg.cn/api/upload_img/20240923/2ba1d26c0bc94bd7ad61e399c77168d5.png":customer.getFacePhotoPath());
|
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
photos.setFaceCollectTime(simpleDateFormat2.format(new Date()));
|
photos.setFaceSource(StringUtils.isEmpty(customer.getVerifySimilarity())?"测试测试测试测试测试测试":customer.getVerifySimilarity());
|
userProfile.setPhotos(photos);
|
// 基础信息baseInfo
|
BaseInfo baseInfo = new BaseInfo();
|
/**
|
* 学历
|
* 5:博士及以上, 4:硕士, 3:本科, 2:专科, 1:高中/中专, 0:初中及以下
|
*/
|
String eduction = customer.getEducation();
|
if ("0".equals(eduction)) {
|
eduction = "PRIMARY_SCHOOL";
|
}else if ("01".equals(eduction)) {
|
eduction = "HIGH_SCHOOL";
|
}if ("02".equals(eduction)) {
|
eduction = "JUNIOR_COLLEGE";
|
} else if ("03".equals(eduction)) {
|
eduction = "COLLEGE";
|
} else if ("04".equals(eduction)) {
|
eduction = "MASTER";
|
} else if ("05".equals(eduction)) {
|
eduction = "DOCTOR";
|
}else {
|
eduction = "UNKNOWN";
|
}
|
baseInfo.setEducation(eduction);
|
|
/**
|
* 有按揭车: 4,全款车: 5,无: 0
|
*/
|
Integer carStatus = customer.getCarStatus();
|
if (Objects.isNull(carStatus)){
|
baseInfo.setCar("NO_CAR");
|
}else {
|
if (carStatus == 0){
|
baseInfo.setCar("NO_CAR");
|
}else if (carStatus == 4){
|
baseInfo.setCar("MORTGAGED_CAR");
|
}else if (carStatus == 5){
|
baseInfo.setCar("OWNED_CAR");
|
}
|
}
|
|
/**
|
* "01:未婚,
|
* 02:已婚,
|
* 03:离异,
|
* 04:丧偶
|
*/
|
String maritalStatus = customer.getMaritalStatus();
|
if ("04".equals(maritalStatus)) {
|
maritalStatus = "WIDOWED";
|
} else if ("03".equals(maritalStatus)) {
|
maritalStatus = "DIVORCED";
|
} else if ("02".equals(maritalStatus)) {
|
maritalStatus = "MARRIED";
|
}else if ("01".equals(maritalStatus)) {
|
maritalStatus = "UNMARRIED";
|
} else {
|
maritalStatus = "UNKNOWN";
|
}
|
baseInfo.setMarriage(maritalStatus);
|
/**
|
* ⽉收⼊
|
INCOME_3Q_UNDER(0, "3000以下"),
|
Income_3Q_6Q(1, "3000-6000"),
|
Income_6Q_1W(2, "6000-10000"),
|
Income_1W_3W(3, "10000-30000"),
|
Income_3W_UPPER(4, "30000以上"),
|
Income_6(5, "未知"),
|
Income_5Q_UNDER(6, "5000元以下"),
|
Income_5Q_1W(7, "5000 - 10000元"),
|
Income_1W_1W5(8, "10001 - 15000元"),
|
Income_1W5_2W(9, "15001 - 20000元"),
|
Income_2W_2W5(10, "20001 - 25000元"),
|
Income_2W5_3W(11, "25001 - 30000元"),
|
Income_3W_UPPER_1(12, "30000元以上"),
|
Income_1W_UNDER(13, "10000以下");
|
*/
|
int monthlySalary = customer.getMonthlyIncome();
|
if (monthlySalary == 3) { // 10000-30000
|
values = new int[]{10000, 20000}; // 指定的字符集合
|
monthlySalary = values[random.nextInt(values.length)];
|
} else if (monthlySalary == 4) { // 30000以上
|
monthlySalary = 20000;
|
} else { // 10000以下
|
values = new int[]{3000, 6000}; // 指定的字符集合
|
monthlySalary = values[random.nextInt(values.length)];
|
}
|
baseInfo.setIncome(monthlySalary);
|
/**
|
* (0:批发/零售, 1:制造业, 2:金融/保险/证券, 3:住宿/餐饮/旅游, 4:商业服务/娱乐/艺术/体育, 5:计算机/互联网, 6:通讯电子, 7:建筑/房地产, 8:法律/咨询, 9:卫生/教育/社会服务, 10:公共事业/社会团体, 11:生物/制药, 12:广告/媒体, 13:能源, 14:贸易, 15:交通运输/仓储/物流, 16:农业/化工/金属冶炼, 17:其他行业)所属行业 --> 融呗( (A:农、林、牧、渔业,B:采矿业,C:制造业,D:电力、热力、燃气及水生产和供应业,E:建筑业,F:批发和零售业,G:交通运输、仓储和邮储业,H:住宿和餐饮业,I:信息传输、软件和信息技术服务,J:金融业,K:房地产业,L:租赁和商务服务业,M:科学研究和技术服务业,N:水利、环境和公共设施管理业,O:居民服务、修理和其他服务业,P:教育,Q:卫生和社会工作,R:文化、体育和娱乐业,S:公共管理、社会保障和社会组织,T:国际组织,9:未知))
|
* 1. 建筑业 -->(E)
|
* 2. 电力,热力,燃气及水生产和供应业 -->(D)
|
* 3. 交通运输、仓储和邮政业 -->(G)
|
* 4. 教育 -->(P)
|
* 5. 房地产业 -->(K)
|
* 6. 住宿和餐饮业 -->(H)
|
* 7. 批发和零售业 -->(F)
|
* 8. 租赁和商务服务业 -->(L)
|
* 9. 信息传输、软件和信息技术服务业 -->(I)
|
* 10. 金融业 -->(J)
|
* 11. 文化、体育和娱乐业 -->(R)
|
* 12. 制造业 -->(1)
|
* 13. 水利、环境和公共设施管理业 -->(N)
|
* 14. 采矿业 -->(B)
|
* 15. 农、林、牧、渔业 -->(A)
|
* 16. 居民服务、修理和其他服务业 -->(O)
|
* 17. 卫生和社会工作 -->(Q)
|
* 18. 科学研究和技术服务业 -->(M)
|
* 19. 公共管理、社会保障和社会组织 -->(S)
|
*/
|
String companyTrade = customer.getCompanyTrade();
|
if ("E".equals(companyTrade) ) { //建筑业
|
companyTrade = "ONE";
|
}else if ("D".equals(companyTrade)) { //电力、热力、燃气及水生产和供应业
|
companyTrade = "TWO";
|
}else if ("G".equals(companyTrade)) { //交通运输、仓储和邮政业
|
companyTrade = "THREE";
|
}else if ("P".equals(companyTrade)) { //教育
|
companyTrade = "FOUR";
|
} else if ("K".equals(companyTrade)) { //房地产业
|
companyTrade = "FIVE";
|
} else if ("H".equals(companyTrade)) { //住宿和餐饮业
|
companyTrade = "SIX";
|
} else if ("F".equals(companyTrade)) { //批发和零售业
|
companyTrade = "SEVEN";
|
}else if ("L".equals(companyTrade)) { //租赁和商务服务业
|
companyTrade = "EIGHT";
|
} else if ("I".equals(companyTrade)) { //信息传输、软件和信息技术服务业
|
companyTrade = "NINE";
|
} else if ("J".equals(companyTrade)) { //金融业
|
companyTrade = "TEN";
|
} else if ("R".equals(companyTrade)) { //文化、体育和娱乐业
|
companyTrade = "ELEVEN";
|
} else if ("C".equals(companyTrade)) { //制造业
|
companyTrade = "TWELVE";
|
}else if ("N".equals(companyTrade)) { //水利、环境和公共设施管理业
|
companyTrade = "THIRTEEN";
|
}else if ("B".equals(companyTrade)) { //采矿业
|
companyTrade = "FOURTEEN";
|
}else if ("A".equals(companyTrade)) { //农、林、牧、渔业
|
companyTrade = "FIFTEEN";
|
}else if ("O".equals(companyTrade)) { //居民服务、修理和其他服务业
|
companyTrade = "SIXTEEN";
|
}else if ("Q".equals(companyTrade)) { //卫生和社会工作
|
companyTrade = "SEVENTEEN";
|
}else if ("M".equals(companyTrade)) { //科学研究和技术服务业
|
companyTrade = "EIGHTEEN";
|
}else if ("S".equals(companyTrade)) { //公共管理、社会保障和社会组织
|
companyTrade = "NINETEEN";
|
}else {
|
companyTrade = "TWENTY";
|
}
|
baseInfo.setIndustry(companyTrade);
|
/**
|
*职业类别
|
*/
|
int professionInfo = customer.getProfessionInfo();
|
if (professionInfo == 1 || professionInfo == 3){//自由职业 企业主
|
baseInfo.setPosition("SIXTEEN");
|
}else if (professionInfo == 0){
|
java.lang.String[] professions = new java.lang.String[]{"EIGHTEEN", "FIFTEEN", "FOURTEEN", "FOURTEEN"}; // 上班族
|
java.lang.String profession = professions[random.nextInt(professions.length)];
|
baseInfo.setPosition(profession);
|
}else if (professionInfo == 4){
|
baseInfo.setPosition("NINETEEN");
|
java.lang.String[] professions = new java.lang.String[]{"NINETEEN", "TWENTY"}; // 公职人员
|
java.lang.String profession = professions[random.nextInt(professions.length)];
|
baseInfo.setPosition(profession);
|
}else {
|
baseInfo.setPosition("SIXTEEN");
|
}
|
|
/**
|
* 有按揭商品房: 4,有全款商品房: 5,仅外地有房: 6,无: 0
|
*/
|
Integer housePayment = customer.getHouseStatus();
|
if (housePayment == 0){
|
baseInfo.setHouse("RENTED_HOUSING");//租房
|
}else if (housePayment == 4){
|
baseInfo.setHouse("MORTGAGED_HOUSING");
|
}else if (housePayment == 5){
|
baseInfo.setHouse("OWNED_HOUSING");
|
}else if (housePayment == 6){
|
baseInfo.setHouse("SELF_BUILT_HOUSING");
|
}
|
baseInfo.setEmail(customer.getEmail());
|
baseInfo.setLivingAddress(customer.getLiveProvince()+customer.getLiveCity()+customer.getLiveArea()+customer.getAddress());
|
baseInfo.setLivingStreet(customer.getLiveProvince()+customer.getLiveCity()+customer.getLiveArea());
|
baseInfo.setCompany(customer.getCompanyName());
|
baseInfo.setCompanyPhone(customer.getCompanyPhone());
|
baseInfo.setCompanyAddress(customer.getCompanyProvince()+customer.getCompanyCity()+customer.getCompanyArea()+customer.getCompanyAddress());
|
baseInfo.setCompanyStreet(customer.getCompanyProvince()+customer.getCompanyCity()+customer.getCompanyArea());
|
/**
|
* 借款⽤途
|
* 0:日常消费, 1:装修, 2:医疗, 3:教育, 4:旅游, 5:其他
|
*/
|
String useOfLoan = customer.getUseOfLoan();
|
if ("DEC".equals(useOfLoan)) { //装修
|
useOfLoan = "DECORATION";
|
} else if ("TRA".equals(useOfLoan)) { // 旅游
|
useOfLoan = "TOUR";
|
} else if ("EDU".equals(useOfLoan)) { // 教育
|
useOfLoan = "EDUCATION";
|
}else if ("MAR".equals(useOfLoan)) { // 婚庆
|
useOfLoan = "MARRIAGE";
|
} else if ("OTH".equals(useOfLoan)) { //其他
|
String[] valueStr = new String[]{"SHOPPING","HEALTH","OTHER"};
|
useOfLoan = valueStr[random.nextInt(valueStr.length)];
|
}
|
baseInfo.setLoanPurpose(useOfLoan);
|
userProfile.setBaseInfo(baseInfo);
|
// GPS
|
Gps gps = new Gps();
|
gps.setLatitude(new BigDecimal(customer.getLat()));
|
gps.setLongitude(new BigDecimal(customer.getLng()));
|
userProfile.setGps(gps);
|
// 联系人 relations
|
Relation relation = new Relation();
|
List<Relation> relations = new ArrayList<>();
|
relation.setName(customer.getRelationshipName());
|
/**
|
* 1:父亲、
|
* 2:母亲、
|
* 3:配偶、
|
* 4:儿子、
|
* 5:女儿、
|
* 6:哥哥、
|
* 7:弟弟、
|
* 8:姐姐、
|
* 9:妹妹
|
* 01: 配偶, 02: 父母, 03: 子女, 04: 兄弟姐妹
|
*/
|
String relationShip = customer.getRelationship();
|
if ("01".equals(relationShip)) {
|
relationShip = "SPOUSE";
|
} else if ("02".equals(relationShip)) {
|
relationShip = "PARENTS";
|
} else if ("03".equals(relationShip)) {
|
relationShip = "CHILDREN";
|
} else if ("04".equals(relationShip)) {
|
relationShip = "SIBLING";
|
}else {
|
String[] valuesStr = new String[]{"FRIEND", "COLLEAGUE", "RELATIVE", "OTHER"}; // 指定的字符集合
|
// 随机选取一个字符
|
relationShip = valuesStr[random.nextInt(valuesStr.length)];
|
}
|
relation.setRelation(relationShip);
|
relation.setPhone(customer.getRelationshipPhone());
|
relations.add(relation);
|
relation = new Relation();
|
/**
|
* 紧急联系人
|
* 10:同事,
|
* 11:朋友,
|
* 12:同学,
|
* 13:其他
|
*/
|
String concatRelation = customer.getContactRelation();
|
if ("05".equals(concatRelation)) {
|
concatRelation = "OTHER";
|
}else if ("06".equals(concatRelation)) {
|
concatRelation = "FRIEND";
|
}else if ("07".equals(concatRelation)) {
|
concatRelation = "COLLEAGUE";
|
}else {
|
concatRelation = "OTHER";
|
}
|
relation.setRelation(concatRelation);
|
relation.setName(customer.getContactName());
|
relation.setPhone(customer.getContactPhone());
|
relations.add(relation);
|
userProfile.setRelations(relations);
|
// 设备信息 deviceInfo
|
DeviceInfo deviceInfo = new DeviceInfo();
|
deviceInfo.setDeviceType("");
|
deviceInfo.setOaId(customer.getAndroidId());
|
deviceInfo.setIdfa(customer.getIdfa());
|
deviceInfo.setOsType(customer.getOs());
|
deviceInfo.setIp(customer.getIpAddres());
|
deviceInfo.setModel("");
|
deviceInfo.setIsSimulator(customer.getIsEmulator());
|
deviceInfo.setUa("");
|
userProfile.setDeviceInfo(deviceInfo);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectNode param = objectMapper.createObjectNode();
|
// 将 UserProfile 对象转换为 JSON Node
|
ObjectNode userNode = objectMapper.valueToTree(userProfile);
|
param.setAll(userNode);
|
log.info("日志编号:" + logNumber + " 【轻花优品】进件接口参数:{}", String.valueOf(param));
|
StringBuilder desKey = new StringBuilder();
|
String sendData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:" + logNumber + " 【轻花优品】进件接口参数:{}, data加密 {}", userProfile, sendData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/process/approval", sendData);
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + "【轻花优品】进件接口推送失败,传参:{} ex:{}", sendData, ex, "");
|
}
|
try {
|
getQhypResponse(resp, logNumber, sendData, result, "进件接口",desKey.toString());
|
JSONObject data = resp.getData();
|
data.putOpt("orderNo", userProfile.getPartnerOrderNo());
|
resp.setData(data);
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + " 【轻花优品】进件接口推送原始返回参数转换失败,jsonData:{} ex:{}", sendData, ex, "");
|
}
|
|
return resp;
|
}
|
private void getQhypResponse(RbResponse resp, String logNumber, String jsonData, String result, String trips,String desKey) {
|
QingHuaYouPinResponse qingHuaYouPinResponse = JSON.parseObject(result, QingHuaYouPinResponse.class);
|
if ("1000".equals(qingHuaYouPinResponse.getRespCode())) {
|
resp.setCode("200");
|
String decryptStr = QhypUtil.decrypt(jsonData, qingHuaYouPinResponse.getSignature(), qingHuaYouPinResponse.getData(), publicKey, privateKey,desKey);
|
resp.setData(JSON.parseObject(decryptStr, JSONObject.class));
|
log.info("日志编号:" + logNumber + " 【轻花优品】"+trips+"接口解析之后的响应数据:{}, 解密数据 {}", JSON.toJSONString(qingHuaYouPinResponse), JSON.parseObject(decryptStr, JSONObject.class));
|
} else {
|
resp.setCode("201");
|
log.error("日志编号:{} 【轻花优品】{}失败:{},jsonData:{}", logNumber, trips, result, jsonData);
|
}
|
}
|
/**
|
* 4.查询进件结果
|
*/
|
public RbResponse queryApproval(CustomerCapitalResult capitalResult) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", capitalResult.getCreditNo());
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:" + logNumber + "【轻花优品】查询进件结果接口开始");
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:" + logNumber + " 【轻花优品】查询进件结果接口参数:{}, data加密 {}", param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/process/queryApproval", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + "【轻花优品】查询进件结果推送失败,传参:{} ex:{}", jsonData, ex, "");
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "查询进件申请结果接口",desKey.toString());
|
JSONObject data = resp.getData();
|
String approvalStatus = (String) data.get("approvalStatus");
|
if ("AUDIT_PASS".equals(approvalStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_SUCCESS);
|
}else if ("AUDITING".equals(approvalStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_WAIT.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_WAIT);
|
}else if ("AUDIT_REJECT".equals(approvalStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REFUSE.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_FAIL);
|
}
|
CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class);
|
customerCapitalResultService.updateById(capitalResult);
|
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + " 【轻花优品】查询进件申请结果接口推送原始返回参数转换失败,jsonData:{} ex:{}", jsonData, ex, "");
|
}
|
return resp;
|
}
|
|
/**
|
* 5.支持银行列表接口
|
*/
|
public RbResponse getBankList() {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
// param.putOpt("orderNo", orderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】支持银行列表接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】支持银行列表接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/process/getBankList", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】支持银行列表接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "支持银行列表接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【众攒】支持银行列表接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 6.已经绑定银行卡信息查询
|
*/
|
public RbResponse getBankCardList(String orderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", orderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】已经绑定银行卡信息查询接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】已经绑定银行卡信息查询接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/process/getUserBank", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】已经绑定银行卡信息查询接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "支持银行列表接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】已经绑定银行卡信息查询接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 7.绑卡申请
|
*/
|
public RbResponse bindCardApply(String cardNo,String phone,
|
String certNo,String bankCode,
|
String cardName, String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("cardNo", cardNo);
|
param.putOpt("phone", phone);
|
param.putOpt("certNo", certNo);
|
param.putOpt("bankCode", bankCode);
|
param.putOpt("cardName", cardName);
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】绑卡申请接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】绑卡申请接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/bankCard/bindCardApply", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】绑卡申请接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "绑卡申请接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】绑卡申请接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 8.绑卡确认
|
*/
|
public RbResponse bindCardConfirm(String confirmNo,String smsCode,
|
String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("confirmNo", confirmNo);
|
param.putOpt("smsCode", smsCode);
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】绑卡确认接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】绑卡确认接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/bankCard/bindCardConfirm", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】绑卡确认接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "绑卡确认接口",desKey.toString());
|
if ("200".equals(resp.getCode())){
|
CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class);
|
CustomerUser customerUser = customerCapitalResultService.checkUser(this.request);
|
Customer customer = this.customerMapper.getLatestCustomerRecord(customerUser.getPhone());
|
List<CustomerCapitalResult> capitalResultList = new ArrayList();
|
if (customer != null) {
|
capitalResultList = customerCapitalResultService.lambdaQuery()
|
.eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCapitalInfoId, 4l)
|
.list();
|
}
|
log.info("日志编号:{}【轻花优品】绑卡确认成功,修改状态为已绑卡{}", logNumber,capitalResultList);
|
if (!(capitalResultList).isEmpty()){
|
CustomerCapitalResult customerCapitalResult = capitalResultList.get(0);
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_BINDCARD_SECCESS.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_BIND_CARD_SUCCESS);
|
customerCapitalResultService.updateById(customerCapitalResult);
|
log.info("日志编号:{}【轻花优品】绑卡确认成功,修改状态为已绑卡完成", logNumber);
|
}
|
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】绑卡确认接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 9.借款申请链接
|
*/
|
public RbResponse getLoanUrl(String redirectUrl,
|
String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("redirectUrl", redirectUrl);
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】借款申请链接接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】借款申请链接接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/loan/getLoanUrl", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】借款申请链接接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "借款申请链接接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】借款申请链接接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 10.还款链接
|
*/
|
public RbResponse getRepayUrl(String redirectUrl,
|
String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("redirectUrl", redirectUrl);
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】还款链接接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】还款链接接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/repay/getRepayUrl", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】还款链接接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "还款链接接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】还款链接接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
|
/**
|
* 11.要款试算
|
*/
|
public RbResponse trial( String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】要款试算接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】要款试算接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/loan/trial", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】要款试算接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "还款链接接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】要款试算接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
|
|
/**
|
* 12.提交要款
|
*/
|
public RbResponse submitLoan(String partnerOrderNo,
|
String rightsMarking) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("rightsMarking", rightsMarking);
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】提交要款接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】提交要款接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/loan/submitLoan", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】提交要款接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "提交要款接口",desKey.toString());
|
if ("200".equals(resp.getCode())){
|
CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class);
|
CustomerUser customerUser = customerCapitalResultService.checkUser(this.request);
|
Customer customer = this.customerMapper.getLatestCustomerRecord(customerUser.getPhone());
|
List<CustomerCapitalResult> capitalResultList = new ArrayList();
|
if (customer != null) {
|
capitalResultList = customerCapitalResultService.lambdaQuery()
|
.eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCapitalInfoId, 4l)
|
.list();
|
}
|
log.info("日志编号:{}【轻花优品】提交要款成功,{}", logNumber,capitalResultList);
|
if (!(capitalResultList).isEmpty()){
|
CustomerCapitalResult customerCapitalResult = capitalResultList.get(0);
|
JSONObject data = resp.getData();
|
String orderState = (String) data.get("orderState");
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
if ("LOAN_FAIL".equals(orderState)){//放款失败
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_FAIL);
|
}else if ("LOANING".equals(orderState)){//放款中
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_SUCCESS);
|
}else if ("LOAN_PASS".equals(orderState)){//放款成功
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REPAY.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_SUCCESS);
|
}else if ("CLEAR".equals(orderState)){//结清
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_CLEAN_NORMAL);
|
}else if ("SUBMIT_LOAN".equals(orderState)){//已经提交要款
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_WAIT);
|
}
|
customerCapitalResultService.updateById(customerCapitalResult);
|
log.info("日志编号:{}【轻花优品】提交要款成功,修改状态为已完成", logNumber);
|
}
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】提交要款接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 13.借款查询
|
*/
|
public RbResponse queryLoan(String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】借款查询接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】借款查询接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/loan/queryLoan", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】借款查询接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "借款查询接口",desKey.toString());
|
if ("200".equals(resp.getCode())){
|
CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class);
|
CustomerUser customerUser = customerCapitalResultService.checkUser(this.request);
|
Customer customer = this.customerMapper.getLatestCustomerRecord(customerUser.getPhone());
|
List<CustomerCapitalResult> capitalResultList = new ArrayList();
|
if (customer != null) {
|
capitalResultList = customerCapitalResultService.lambdaQuery()
|
.eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCapitalInfoId, 4l)
|
.list();
|
}
|
log.info("日志编号:{}【轻花优品】还款计划查询capitalResultList成功,{}", logNumber,capitalResultList);
|
if (!(capitalResultList).isEmpty()){
|
CustomerCapitalResult customerCapitalResult = capitalResultList.get(0);
|
JSONObject data = resp.getData();
|
String orderState = (String) data.get("orderState");
|
if ("LOAN_FAIL".equals(orderState)){//放款失败
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_FAIL);
|
}else if ("LOANING".equals(orderState)){//放款中
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_SUCCESS);
|
}else if ("LOAN_PASS".equals(orderState)){//放款成功
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REPAY.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_SUCCESS);
|
customerCapitalResult.setQuotaRate((String) data.get("rate"));
|
customerCapitalResult.setLoanTime((String) data.get("modifyTime"));
|
customerCapitalResult.setLoanAmount((Long) data.get("loanAmount"));
|
customerCapitalResult.setPeriods((String) data.get("period"));
|
}else if ("CLEAR".equals(orderState)){//结清
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_CLEAN_NORMAL);
|
}else if ("SUBMIT_LOAN".equals(orderState)){//已经提交要款
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_WAIT);
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
}
|
customerCapitalResult.setFreezeTime((String) data.get("freezeTime"));
|
customerCapitalResultService.updateById(customerCapitalResult);
|
log.info("日志编号:{}【轻花优品】还款计划查询capitalResultList成功,修改状态为已完成", logNumber);
|
}
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】借款查询接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 14.还款计划查询
|
*/
|
public RbResponse queryRepayPlan(String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】还款计划查询接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】还款计划查询接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/repay/queryRepayPlan", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】还款计划查询接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "还款计划查询接口",desKey.toString());
|
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】还款计划查询接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 15.查询权益包详情
|
*/
|
public RbResponse detail(String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】查询权益包详情接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】查询权益包详情接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/rights/detail", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】查询权益包详情接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "查询权益包详情接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】查询权益包详情接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 16.获取权益兑换地址
|
*/
|
public RbResponse benefitExchange(String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】获取权益兑换地址接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】获取权益兑换地址接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/rights/benefitExchange", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】获取权益兑换地址接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "获取权益兑换地址接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】获取权益兑换地址接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 17.查询权益扣款结果
|
*/
|
public RbResponse deductionResult(String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】查询权益扣款结果接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】查询权益扣款结果接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/rights/deductionResult", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】查询权益扣款结果接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "查询权益扣款结果接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】查询权益扣款结果接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 18.还款试算
|
*/
|
public RbResponse repayTrial(String partnerOrderNo,String repayPurpose,String period) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
param.putOpt("repayPurpose", repayPurpose);
|
param.putOpt("period", period);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】还款试算接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】还款试算接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/repay/repayTrial", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】还款试算接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "还款试算接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】还款试算接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 19.提交还款
|
*/
|
public RbResponse repay(String partnerOrderNo,String repayPurpose,String period,String partnerRepayNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
param.putOpt("partnerRepayNo", partnerRepayNo);
|
param.putOpt("repayPurpose", repayPurpose);
|
param.putOpt("period", period);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】提交还款接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】提交还款接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/repay/repay", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】提交还款接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "提交还款接口",desKey.toString());
|
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】提交还款接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 20.还款结果查询
|
*/
|
public RbResponse queryRepayResult(String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【轻花优品】还款结果查询接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【轻花优品】还款结果查询接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/repay/queryRepayResult", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【轻花优品】还款结果查询接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "还款结果查询接口",desKey.toString());
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】还款结果查询接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
return resp;
|
}
|
/**
|
* 根据身份证号码判断性别
|
*
|
* @param idCard
|
* @return
|
*/
|
public String getGenderByIDCard(String idCard) {
|
if (idCard == null || (idCard.length() != 18 && idCard.length() != 15)) {
|
throw new IllegalArgumentException("身份证号码长度不正确");
|
}
|
char sex = idCard.charAt(idCard.length() - 2);
|
return (sex % 2 == 0) ? "女" : "男";
|
}
|
/**
|
* 身份证地址提取省市区
|
*
|
* @param fullAddress 身份证完整地址
|
*/
|
private static Map<String, String> addressResolution(String fullAddress) {
|
// 定义正则
|
String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<area>[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
|
|
Matcher matcher = Pattern.compile(regex).matcher(fullAddress);
|
String province, city, area, town, detail;
|
Map<String, String> map = new LinkedHashMap<>();
|
|
while (matcher.find()) {
|
province = matcher.group("province");
|
map.put("province", StringUtils.isEmpty(province) ? "" : province.trim());
|
|
city = matcher.group("city");
|
map.put("city", StringUtils.isEmpty(city) ? "" : city.trim());
|
|
area = matcher.group("area");
|
map.put("area", StringUtils.isEmpty(area) ? "" : area.trim());
|
|
town = matcher.group("town");
|
map.put("town", StringUtils.isEmpty(town) ? "" : town.trim());
|
|
detail = matcher.group("detail");
|
map.put("detail", StringUtils.isEmpty(detail) ? "" : detail.trim());
|
}
|
return map;
|
}
|
|
/**
|
* 我来贷数据推送到青花优品操作
|
*/
|
public boolean wldPushToQHYP(CapitalInfo capitalInfo,ApplyDto applyDto,Customer customer,String logNumber) {
|
boolean isSucc = false;
|
log.info("日志编号:{},手机号:{},【我来贷】数据推送到青花优品流程开始", logNumber, customer.getPhone());
|
try {
|
//进件成功后注册账户 并保存资方信息
|
CustomerUser customerUser = initCustomer(capitalInfo, customer, logNumber);
|
JSONObject param = new JSONObject();
|
// RbResponse rbResponse = checkUser(capitalInfo, customer, customerUser);
|
isSucc = push(customer, param, logNumber);
|
// if (Objects.equals("200",rbResponse.getCode())){
|
// isSucc = true;
|
// }
|
Integer qhyp = 0;
|
if (!isSucc) {
|
log.error("日志编号:{},手机号:{},【我来贷】数据推送到青花优品失败", logNumber, customer.getPhone());
|
} else {
|
qhyp = 1;
|
}
|
saveStatus(customer, qhyp);
|
if (isSucc) {
|
isSucc = wldIncomeToQHYP(applyDto,customer, logNumber);
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:{},手机号:{},【我来贷】数据推送到青花优品失败:{}", logNumber, customer.getPhone(), ex.getMessage());
|
isSucc = false;
|
}
|
|
return isSucc;
|
|
}
|
|
public CustomerUser initCustomer(CapitalInfo capitalInfo, Customer customer,String logNumber) {
|
LambdaQueryWrapper<CustomerUser> customerUserLambdaQueryWrapper = Wrappers.lambdaQuery();
|
customerUserLambdaQueryWrapper.eq(CustomerUser::getPhone,customer.getPhone());
|
List<CustomerUser> customerUserList = customerUserMapper.selectList(customerUserLambdaQueryWrapper);
|
CustomerUser customerUser;
|
if (CollUtil.isNotEmpty(customerUserList)) {
|
customerUser = customerUserList.get(0);
|
}else {
|
customerUser = new CustomerUser();
|
}
|
|
LambdaQueryWrapper<Customer> customerLambdaQueryWrapper = Wrappers.lambdaQuery();
|
customerLambdaQueryWrapper.eq(Customer::getPhone,customer.getPhone());
|
List<Customer> customerList = customerMapper.selectList(customerLambdaQueryWrapper);
|
|
//注册用户信息-基本资料
|
customerUser.setName(customer.getName());
|
customerUser.setPhone(customer.getPhone());
|
customerUser.setCreationDate(customer.getApplyDate());
|
customerUser.setSourceChannel(customer.getSourceChannel());
|
customerUser.setPhoneMd5(DigestUtils.md5DigestAsHex(customer.getPhone().getBytes()));
|
customerUser.setNameMd5(DigestUtils.md5DigestAsHex(customer.getName().getBytes()));
|
customerUser.setIdCardMd5(DigestUtils.md5DigestAsHex(customer.getIdCard().getBytes()));
|
//注册用户信息-更新用户审核时间
|
DateTime approvalTime = DateUtil.offsetMinute(new Date(), 300);
|
DateTime nextApplyTime = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), Customer.VALID_DAY));
|
customerUser.setApprovalTime(approvalTime);
|
customerUser.setNextApplyTime(nextApplyTime);
|
customerUser.setFirstQuota(VipCardOrderServiceImpl.randomQuota());
|
customerUser.setVipQuota(VipCardOrderServiceImpl.randomVipQuota(customerUser.getFirstQuota()));
|
customerUser.setShowActivationPage(true);
|
customerUser.setCreditNo(customer.getCreditNo());
|
customerUser.setThirdUserId(customer.getYqgUserId());
|
//注册用户信息-保存用户
|
if (customerUser.getId() != null) {
|
customerUserMapper.updateById(customerUser);
|
}else {
|
customerUserMapper.insert(customerUser);
|
}
|
customer.setCustomerUserId(customerUser.getId());
|
if (CollUtil.isEmpty(customerList)) {
|
customerMapper.insert(customer);
|
}
|
CustomerCapitalResult capitalResult = CustomerCapitalResult.initResult(capitalInfo, customerUser.getId(), customer.getId());
|
capitalResult.setStatus(CapitalResultStatusEnum.CHECK.getCode());
|
capitalResult.setCreditNo(customer.getCreditNo());
|
CustomerCapitalResult filterResult = capitalResultCommonService.filterCustomer(customer, capitalInfo, capitalResult, logNumber);
|
if (filterResult != null) {
|
log.info("日志编号:" + logNumber + capitalInfo.getName() + "撞库时不满足资方信息筛选条件,撞库失败");
|
}
|
return customerUser;
|
}
|
|
private boolean wldIncomeToQHYP(ApplyDto applyDto,Customer customer, String logNumber) {
|
boolean isSucc = false;
|
log.info("日志编号:{},手机号:{},【我来贷】数据进件到【青花优品】流程开始", logNumber, customer.getPhone());
|
try {
|
int qhyp = 3;
|
UserProfile userProfile = initUserProfile(applyDto, customer);
|
log.info("日志编号:" + logNumber + " 【青花优品】进件接口参数:{}", userProfile);
|
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectNode param = objectMapper.createObjectNode();
|
// 将 UserProfile 对象转换为 JSON Node
|
ObjectNode userNode = objectMapper.valueToTree(userProfile);
|
param.setAll(userNode);
|
log.info("日志编号:" + logNumber + " 【青花优品】进件接口参数:{}", param);
|
StringBuilder desKey = new StringBuilder();
|
String sendData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:" + logNumber + " 【青花优品】进件接口参数:{}, data加密 {}", userProfile, sendData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/process/approval", sendData);
|
QingHuaYouPinResponse qingHuaYouPinResponse = JSON.parseObject(result, QingHuaYouPinResponse.class);
|
if ("1000".equals(qingHuaYouPinResponse.getRespCode())) {
|
String decryptStr = QhypUtil.decrypt(sendData, qingHuaYouPinResponse.getSignature(), qingHuaYouPinResponse.getData(), publicKey, privateKey,desKey.toString());
|
log.info("日志编号:" + logNumber + " 【青花优品】进件接口解析之后的响应数据:{}, 解密数据 {}", JSON.toJSONString(qingHuaYouPinResponse), JSON.parseObject(decryptStr, JSONObject.class));
|
JSONObject data = JSON.parseObject(decryptStr, JSONObject.class);
|
String approvalStatus = (String) data.get("approvalStatus");
|
if (!"AUDIT_REJECT".equals(approvalStatus)){
|
isSucc = true;
|
}
|
} else {
|
log.error("日志编号:{} 【青花优品】{}失败:{},jsonData:{}", logNumber, "进件接口", result, sendData);
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + "【青花优品】进件接口推送失败,传参:{} ex:{}", sendData, ex, "");
|
}
|
if (!isSucc) {
|
log.error("日志编号:{},手机号:{},【我来贷】数据进件到【青花优品】失败", logNumber, customer.getPhone());
|
} else {
|
qhyp = 4;
|
log.info("日志编号:{},手机号:{},【我来贷】数据进件到【青花优品】成功", logNumber, customer.getPhone());
|
}
|
saveStatus(customer, qhyp);
|
} catch (Exception ex) {
|
ex.printStackTrace();
|
log.error("日志编号:{},手机号:{},【我来贷】数据进件到【青花优品】失败: {}", logNumber, customer.getPhone(), ex.getMessage());
|
}
|
return isSucc;
|
}
|
|
public boolean push(Customer customer, JSONObject param, String logNumber) {
|
param.putOpt("certNoMd5", DigestUtils.md5DigestAsHex(customer.getIdCard().getBytes(StandardCharsets.UTF_8)));
|
param.putOpt("phoneMd5", DigestUtils.md5DigestAsHex(customer.getPhone().getBytes(StandardCharsets.UTF_8)));
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,param.toString(),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:" + logNumber + " 手机号为:{},【青花优品(我来贷)】用户准入接口参数:{}, data加密 {}", customer.getPhone(), param, jsonData);
|
String result = null;
|
RbResponse resp = new RbResponse();
|
try {
|
log.info("日志编号:" + logNumber + " 请求地址 {}", basicUrl + "/qhyp/api/userCheck/checkUser");
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/userCheck/checkUser", jsonData);
|
log.error("日志编号:" + logNumber + " 用户准入接口回传数据{}", result);
|
|
QingHuaYouPinResponse qingHuaYouPinResponse = JSON.parseObject(result, QingHuaYouPinResponse.class);
|
if ("1000".equals(qingHuaYouPinResponse.getRespCode())) {
|
resp.setCode("200");
|
String decryptStr = QhypUtil.decrypt(jsonData, qingHuaYouPinResponse.getSignature(), qingHuaYouPinResponse.getData(), publicKey, privateKey,desKey.toString());
|
resp.setData(JSON.parseObject(decryptStr, JSONObject.class));
|
log.info("日志编号:" + logNumber + " 【青花优品(我来贷)】用户准入接口接口解析之后的响应数据:{}, 解密数据 {}", JSON.toJSONString(qingHuaYouPinResponse), JSON.parseObject(decryptStr, JSONObject.class));
|
return true;
|
} else {
|
resp.setCode("201");
|
log.error("日志编号:{} 【青花优品(我来贷)】{}失败:{},jsonData:{}", logNumber, "用户准入接口", result, jsonData);
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + " 手机号为:{},【青花优品(我来贷)】用户准入接口推送失败,传参:{} ex:{}", customer.getPhone(), jsonData, ex, "");
|
}
|
return false;
|
}
|
|
/**
|
* 我来贷数据推送录入或更新到customer_scy_income表
|
*/
|
public void saveStatus(Customer customer, Integer qhyp) {
|
// 录入或更新到customer_scy_income表
|
LambdaQueryWrapper<CustomerScyIncome> wr = new LambdaQueryWrapper<>();
|
wr.eq(CustomerScyIncome::getCustomerZcyId, customer.getId());
|
wr.last(" limit 1 ");
|
CustomerScyIncome csi = customerZcyIncomeService.getOne(wr);
|
if (Objects.isNull(csi)) {
|
csi = new CustomerScyIncome();
|
}
|
csi.setCustomerZcyId(customer.getId());
|
csi.setQhyp(qhyp);
|
customerZcyIncomeService.saveOrUpdate(csi);
|
}
|
|
public UserProfile initUserProfile(ApplyDto applyDto,Customer customer) {
|
UserProfile userProfile = new UserProfile();
|
ProfileDictDto profileDict = applyDto.getProfile_dict();
|
userProfile.setImageFormat("LINK");
|
userProfile.setPartnerOrderNo(customer.getCreditNo());
|
userProfile.setMobile(customer.getPhone());
|
userProfile.setUserName(customer.getName());
|
userProfile.setIdCard(customer.getIdCard());
|
// 照片 photos
|
Photos photos = new Photos();
|
List<String> validDate = null;
|
if (StrUtil.isNotEmpty(profileDict.getValid_date())){
|
validDate = Arrays.asList(profileDict.getValid_date().split("-"));
|
}
|
photos.setNationalEmblemImage("https://zhitech18967.itech-zwbbg.cn/api/upload_img/20240923/2ba1d26c0bc94bd7ad61e399c77168d5.png");
|
photos.setHeadImage("https://zhitech18967.itech-zwbbg.cn/api/upload_img/20240923/2ba1d26c0bc94bd7ad61e399c77168d5.png");
|
photos.setName(customer.getName());
|
photos.setCertNo(customer.getIdCard());
|
photos.setCertValidStart(CollUtil.isEmpty(validDate)? "2011-10-10":validDate.get(0).replace(".","-"));
|
photos.setCertValidEnd(CollUtil.isEmpty(validDate)? "2031-10-10":validDate.get(1).replace(".","-"));
|
photos.setCertAddress(StringUtils.isEmpty(customer.getIdAddress())? "测试测试测试测试测试测试测试测试":customer.getIdAddress());
|
photos.setGender(StringUtils.isEmpty(customer.getSex())? "男":customer.getSex());
|
photos.setNation(StringUtils.isEmpty(customer.getNation())?"汉":customer.getNation());
|
photos.setCertSignOrg(StringUtils.isEmpty(customer.getSignOrganization()) ? "测试机关测试机关测试机关":customer.getSignOrganization());
|
photos.setFaceImageUrl("https://zhitech18967.itech-zwbbg.cn/api/upload_img/20240923/2ba1d26c0bc94bd7ad61e399c77168d5.png");
|
photos.setFaceScore(StringUtils.isEmpty(customer.getVerifySimilarity())? "99.555554":customer.getVerifySimilarity());
|
photos.setFaceImage("https://zhitech18967.itech-zwbbg.cn/api/upload_img/20240923/2ba1d26c0bc94bd7ad61e399c77168d5.png");
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
photos.setFaceCollectTime(simpleDateFormat.format(new Date()));
|
photos.setFaceSource(StringUtils.isEmpty(customer.getVerifySimilarity())?"测试测试测试测试测试测试":customer.getVerifySimilarity());
|
userProfile.setPhotos(photos);
|
|
BaseInfo baseInfo = new BaseInfo();
|
|
//教育程度
|
switch (profileDict.getEducation()) {
|
//默认最高学历
|
//青花 初中及以下
|
case "1": baseInfo.setEducation("JUNIOR_HIGH_SCHOOL");
|
break;
|
case "2": baseInfo.setEducation("HIGH_SCHOOL");
|
break;
|
case "3": baseInfo.setEducation("JUNIOR_COLLEGE");
|
break;
|
case "4": baseInfo.setEducation("COLLEGE");
|
break;
|
case "5": baseInfo.setEducation("MASTER");
|
break;
|
case "6": baseInfo.setEducation("DOCTOR");
|
break;
|
default: baseInfo.setEducation("UNKNOWN");
|
}
|
//职业类型与青花字典完全对不上 默认其他
|
baseInfo.setPosition("ELEVEN");
|
//婚姻
|
switch (profileDict.getMarital_status()) {
|
case 1: baseInfo.setMarriage("UNMARRIED");
|
break;
|
case 2: baseInfo.setMarriage("DIVORCED");
|
break;
|
case 3:
|
case 4:
|
case 5:
|
case 7: baseInfo.setMarriage("MARRIED");
|
break;
|
case 6: baseInfo.setMarriage("WIDOWED");
|
break;
|
case 8: baseInfo.setMarriage("UNKNOWN");
|
break;
|
}
|
//月收入
|
baseInfo.setIncome(profileDict.getMonthly_income());
|
|
//行业
|
switch (profileDict.getIndustry()) {
|
case "1": baseInfo.setIndustry("ONE");
|
break;
|
case "2": baseInfo.setIndustry("TWO");
|
break;
|
case "3": baseInfo.setIndustry("THREE");
|
break;
|
case "4": baseInfo.setIndustry("FOUR");
|
break;
|
case "5": baseInfo.setIndustry("FIVE");
|
break;
|
case "6": baseInfo.setIndustry("SIX");
|
break;
|
case "7": baseInfo.setIndustry("SEVEN");
|
break;
|
case "8": baseInfo.setIndustry("EIGHT");
|
break;
|
case "9": baseInfo.setIndustry("NINE");
|
break;
|
case "10": baseInfo.setIndustry("TEN");
|
break;
|
case "11": baseInfo.setIndustry("ELEVEN");
|
break;
|
case "12": baseInfo.setIndustry("TWELVE");
|
break;
|
case "13": baseInfo.setIndustry("THIRTEEN");
|
break;
|
case "14": baseInfo.setIndustry("FOURTEEN");
|
break;
|
case "15": baseInfo.setIndustry("FIFTEEN");
|
break;
|
case "16": baseInfo.setIndustry("SIXTEEN");
|
break;
|
case "17": baseInfo.setIndustry("SEVENTEEN");
|
break;
|
case "18": baseInfo.setIndustry("EIGHTEEN");
|
break;
|
case "19": baseInfo.setIndustry("NINETEEN");
|
break;
|
default: baseInfo.setIndustry("TWENTY");
|
}
|
//居住地址
|
baseInfo.setLivingAddress(profileDict.getResidential_address());
|
//工作单位
|
baseInfo.setCompany(profileDict.getOrganize_name());
|
//工作地址
|
baseInfo.setCompanyAddress(profileDict.getCompany_address());
|
//工作单位街道
|
baseInfo.setCompanyStreet(profileDict.getCompany_address_detail());
|
//借款用途
|
switch (profileDict.getLoan_usage()) {
|
//匹配不上的 默认都是其他
|
case "1": baseInfo.setLoanPurpose("SHOPPING");
|
break;
|
case "2": baseInfo.setLoanPurpose("DECORATION");
|
break;
|
case "3": baseInfo.setLoanPurpose("TOUR");
|
break;
|
case "5": baseInfo.setLoanPurpose("EDUCATION");
|
break;
|
case "6":
|
case "14": baseInfo.setLoanPurpose("MARRIAGE");
|
break;
|
case "7": baseInfo.setLoanPurpose("HEALTH");
|
break;
|
default: baseInfo.setLoanPurpose("OTHER");
|
}
|
userProfile.setBaseInfo(baseInfo);
|
// GPS
|
Gps gps = new Gps();
|
DeviceInfoDto deviceInfoDto = applyDto.getDevice_info();
|
if (StrUtil.isNotEmpty(deviceInfoDto.getGps())){
|
List<String> gpsList = Arrays.asList(deviceInfoDto.getGps().split(","));
|
gps.setLongitude(new BigDecimal(gpsList.get(0)));
|
gps.setLatitude(new BigDecimal(gpsList.get(1)));
|
userProfile.setGps(gps);
|
}
|
// 联系人 relations
|
List<ContactListDto> contactList = applyDto.getContact_list();
|
List<Relation> relationList = new ArrayList<>();
|
for (ContactListDto contactListDto : contactList) {
|
Relation relation = new Relation();
|
relation.setName(contactListDto.getName());
|
relation.setPhone(contactListDto.getPhone());
|
switch (contactListDto.getRelation()) {
|
case 1: relation.setRelation("PARENTS");
|
break;
|
case 2: relation.setRelation("SPOUSE");
|
break;
|
case 3: relation.setRelation("CHILDREN");
|
break;
|
case 4: relation.setRelation("RELATIVE");
|
break;
|
case 5: relation.setRelation("COLLEAGUE");
|
break;
|
case 6: relation.setRelation("FRIEND");
|
break;
|
case 7: relation.setRelation("OTHER");
|
break;
|
}
|
relationList.add(relation);
|
}
|
userProfile.setRelations(relationList);
|
// 设备信息 deviceInfo
|
DeviceInfo deviceInfo = new DeviceInfo();
|
deviceInfo.setDeviceType("");
|
deviceInfo.setOaId(customer.getAndroidId());
|
deviceInfo.setIdfa(customer.getIdfa());
|
deviceInfo.setOsType(customer.getOs());
|
deviceInfo.setIp(customer.getIpAddres());
|
deviceInfo.setModel("");
|
deviceInfo.setIsSimulator(customer.getIsEmulator());
|
deviceInfo.setUa("");
|
userProfile.setDeviceInfo(deviceInfo);
|
return userProfile;
|
}
|
|
public ResponseEntity<RbResponse> bindCardApplyToWoLaiDai(String cardNo, String phone, String certNo, String bankCode, String cardName, String creditNo) {
|
log.debug("7.1:绑卡申请");
|
RbResponse result = bindCardApply(cardNo, phone, certNo, bankCode, cardName, creditNo);;
|
if (!Objects.equals("200",result.getCode())) {
|
result.setMsg("绑卡申请失败");
|
result.setCode("1");
|
}
|
return ResponseEntity.ok(result);
|
|
}
|
|
public ResponseEntity<RbResponse> bindCardConfirmToWoLaiDai(String confirmNo, String smsCode, String creditNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("confirmNo", confirmNo);
|
param.putOpt("smsCode", smsCode);
|
param.putOpt("partnerOrderNo", creditNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【青花优品】绑卡确认接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【青花优品】绑卡确认接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/bankCard/bindCardConfirm", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【青花优品】绑卡确认接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "绑卡确认接口",desKey.toString());
|
if ("200".equals(resp.getCode())){
|
CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class);
|
LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(Customer::getCertNo,creditNo);
|
List<Customer> customerList = customerMapper.selectList(queryWrapper);
|
Customer customer = null;
|
if (CollUtil.isNotEmpty(customerList)){
|
customer = customerList.get(0);
|
}
|
List<CustomerCapitalResult> capitalResultList = new ArrayList();
|
if (customer != null) {
|
capitalResultList = customerCapitalResultService.lambdaQuery()
|
.eq(CustomerCapitalResult::getCustomerUserId, customer.getCustomerUserId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCapitalInfoId, 4l)
|
.list();
|
}
|
log.info("日志编号:{}【青花优品】绑卡确认成功,修改状态为已绑卡{}", logNumber,capitalResultList);
|
if (!(capitalResultList).isEmpty()){
|
CustomerCapitalResult customerCapitalResult = capitalResultList.get(0);
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_BINDCARD_SECCESS.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_BIND_CARD_SUCCESS);
|
customerCapitalResultService.updateById(customerCapitalResult);
|
log.info("日志编号:{}【青花优品】绑卡确认成功,修改状态为已绑卡完成", logNumber);
|
}
|
if (customer != null){
|
customer.setRepayApplyDate(new Date());
|
customerMapper.updateById(customer);
|
}
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【青花优品】绑卡确认接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
if(!Objects.equals(resp.getCode(),"200")) {
|
resp.setMsg("绑卡确认失败");
|
resp.setCode("201");
|
}
|
return ResponseEntity.ok(resp);
|
}
|
|
public ResponseEntity<RbResponse> submitLoanToWoLaiDai(String creditNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("rightsMarking", "N");
|
param.putOpt("partnerOrderNo", creditNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【青花优品】提交要款接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【青花优品】提交要款接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/loan/submitLoan", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【青花优品】提交要款接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "提交要款接口",desKey.toString());
|
if ("200".equals(resp.getCode())){
|
CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class);
|
LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(Customer::getCertNo,creditNo);
|
List<Customer> customerList = customerMapper.selectList(queryWrapper);
|
Customer customer = null;
|
if (CollUtil.isNotEmpty(customerList)){
|
customer = customerList.get(0);
|
}
|
List<CustomerCapitalResult> capitalResultList = new ArrayList();
|
if (customer != null) {
|
capitalResultList = customerCapitalResultService.lambdaQuery()
|
.eq(CustomerCapitalResult::getCustomerUserId, customer.getCustomerUserId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCapitalInfoId, 4l)
|
.list();
|
}
|
log.info("日志编号:{}【青花优品】提交要款成功,{}", logNumber,capitalResultList);
|
if (!(capitalResultList).isEmpty()){
|
CustomerCapitalResult customerCapitalResult = capitalResultList.get(0);
|
JSONObject data = resp.getData();
|
String orderState = (String) data.get("orderState");
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
if ("LOAN_FAIL".equals(orderState)){//放款失败
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_FAIL);
|
}else if ("LOANING".equals(orderState)){//放款中
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_SUCCESS);
|
}else if ("LOAN_PASS".equals(orderState)){//放款成功
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REPAY.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_SUCCESS);
|
}else if ("CLEAR".equals(orderState)){//结清
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_CLEAN_NORMAL);
|
}else if ("SUBMIT_LOAN".equals(orderState)){//已经提交要款
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_WAIT);
|
}
|
customerCapitalResult.setLoanApplyDate(new Date());
|
customerCapitalResultService.updateById(customerCapitalResult);
|
log.info("日志编号:{}【青花优品】提交要款成功,修改状态为已完成", logNumber);
|
}
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【青花优品】提交要款接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
if(!Objects.equals(resp.getCode(),"200")) {
|
resp.setMsg("提交要款接失败");
|
resp.setCode("201");
|
}
|
return ResponseEntity.ok(resp);
|
}
|
|
public ResponseEntity<RbResponse> queryLoanToWolaidai(String partnerOrderNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", partnerOrderNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:{}【青花优品】借款查询接口开始", logNumber);
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:{} 【青花优品】借款查询接口参数:{}, data加密 {}", logNumber, param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/loan/queryLoan", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:{}【青花优品】借款查询接口推送失败,传参:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
Customer customer = null;
|
CustomerCapitalResult customerCapitalResult = null;
|
try {
|
// JSONObject.JSON.parseObject(result);
|
// if ("1000".equals(qingHuaYouPinResponse.getRespCode())) {
|
// resp.setCode("200");
|
// String decryptStr = QhypUtil.decrypt(jsonData, qingHuaYouPinResponse.getSignature(), qingHuaYouPinResponse.getData(), publicKey, privateKey,desKey);
|
// resp.setData(JSON.parseObject(decryptStr, JSONObject.class));
|
// log.info("日志编号:" + logNumber + " 【轻花优品】"+trips+"接口解析之后的响应数据:{}, 解密数据 {}", JSON.toJSONString(qingHuaYouPinResponse), JSON.parseObject(decryptStr, JSONObject.class));
|
// } else {
|
// resp.setCode("201");
|
// log.error("日志编号:{} 【轻花优品】{}失败:{},jsonData:{}", logNumber, trips, result, jsonData);
|
// }
|
getQhypResponse(resp, logNumber, jsonData, result, "借款查询接口",desKey.toString());
|
if ("200".equals(resp.getCode())){
|
CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class);
|
LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(Customer::getCertNo,partnerOrderNo);
|
List<Customer> customerList = customerMapper.selectList(queryWrapper);
|
if (CollUtil.isNotEmpty(customerList)){
|
customer = customerList.get(0);
|
}
|
List<CustomerCapitalResult> capitalResultList = new ArrayList();
|
if (customer != null) {
|
capitalResultList = customerCapitalResultService.lambdaQuery()
|
.eq(CustomerCapitalResult::getCustomerUserId, customer.getCustomerUserId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCapitalInfoId, 4l)
|
.list();
|
}
|
log.info("日志编号:{}【青花优品】查询capitalResultList成功,{}", logNumber,capitalResultList);
|
if (!(capitalResultList).isEmpty()){
|
customerCapitalResult = capitalResultList.get(0);
|
JSONObject data = resp.getData();
|
String orderState = (String) data.get("orderState");
|
if ("LOAN_FAIL".equals(orderState)){//放款失败
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_FAIL);
|
}else if ("LOANING".equals(orderState)){//放款中
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_SUCCESS);
|
}else if ("LOAN_PASS".equals(orderState)){//放款成功
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REPAY.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_SUCCESS);
|
}else if ("CLEAR".equals(orderState)){//结清
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_CLEAN_NORMAL);
|
}else if ("SUBMIT_LOAN".equals(orderState)){//已经提交要款
|
customerCapitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_WAIT);
|
customerCapitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
}
|
customerCapitalResultService.updateById(customerCapitalResult);
|
log.info("日志编号:{}【轻花优品】还款计划查询capitalResultList成功,修改状态为已完成", logNumber);
|
}
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:{} 【轻花优品】借款查询接口推送原始返回参数转换失败,jsonData:{} ex:{}", logNumber, jsonData, ex.getMessage());
|
}
|
if(!Objects.equals(resp.getCode(),"200") && customerCapitalResult == null) {
|
resp.setMsg("借款查询失败");
|
resp.setCode("201");
|
}
|
LambdaQueryWrapper<CustomerApplyOrder> customerApplyOrderLambdaQueryWrapper = Wrappers.lambdaQuery();
|
customerApplyOrderLambdaQueryWrapper.eq(CustomerApplyOrder::getChnOrderId,partnerOrderNo);
|
List<CustomerApplyOrder> customerApplyOrders = customerApplyOrderMapper.selectList(customerApplyOrderLambdaQueryWrapper);
|
CustomerApplyOrder customerApplyOrder = null;
|
if (CollUtil.isNotEmpty(customerApplyOrders)){
|
customerApplyOrder = customerApplyOrders.get(0);
|
}
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
JSONObject data = resp.getData();
|
if (data != null) {
|
JSONObject jsonObject = new JSONObject();
|
//合作机构单号
|
jsonObject.putOpt("partnerOrderNo", data.get("partnerOrderNo"));
|
//我方单号
|
jsonObject.putOpt("orderId", data.get("orderId") == null ? "" : data.get("orderId"));
|
//放款金额
|
jsonObject.putOpt("loanAmount", data.get("loanAmount") == null ? "" : data.get("loanAmount"));
|
//到账卡
|
jsonObject.putOpt("bankCardNo", data.get("bankCardNo") == null ? "" : data.get("bankCardNo"));
|
//借款期限
|
jsonObject.putOpt("period", data.get("period") == null ? "" : data.get("period"));
|
//等待放款中的时间:
|
jsonObject.putOpt("loanApplyDate", customerCapitalResult == null ? "" : customerCapitalResult.getLoanApplyDate() == null ? "" : simpleDateFormat.format(customerCapitalResult.getLoanApplyDate()));
|
//资金方匹配中的时间
|
jsonObject.putOpt("repayApplyDate", customer == null ? "" : customer.getRepayApplyDate() == null ? "" : simpleDateFormat.format(customer.getRepayApplyDate()));
|
//额度审批通过中的时间
|
jsonObject.putOpt("approvalDate", customerApplyOrder == null ? "" : customerApplyOrder.getCreateDate() == null ? "" : simpleDateFormat.format(customerApplyOrder.getCreateDate()));
|
//额度已提交中的时间
|
jsonObject.putOpt("checkDate", customerCapitalResult == null ? "" : customerCapitalResult.getCreationDate() == null ? "" : simpleDateFormat.format(customerCapitalResult.getCreationDate()));
|
resp.setData(jsonObject);
|
}
|
return ResponseEntity.ok(resp);
|
}
|
|
/**
|
* 4.1 返回查询进件结果
|
*/
|
public RbResponse queryApprovalToWolaidai(String creditNo) {
|
RbResponse resp = new RbResponse();
|
JSONObject param = new JSONObject();
|
param.putOpt("partnerOrderNo", creditNo);
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:" + logNumber + "【青花优品】查询进件结果接口开始");
|
StringBuilder desKey = new StringBuilder();
|
String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey);
|
log.info("日志编号:" + logNumber + " 【青花优品】查询进件结果接口参数:{}, data加密 {}", param, jsonData);
|
String result = null;
|
try {
|
result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/process/queryApproval", jsonData);
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + "【青花优品】查询进件结果推送失败,传参:{} ex:{}", jsonData, ex, "");
|
}
|
try {
|
getQhypResponse(resp, logNumber, jsonData, result, "查询进件申请结果接口",desKey.toString());
|
JSONObject data = resp.getData();
|
String approvalStatus = (String) data.get("approvalStatus");
|
CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class);
|
List<CustomerCapitalResult> capitalResultList = customerCapitalResultService.lambdaQuery()
|
.eq(CustomerCapitalResult::getCreditNo, creditNo)
|
.eq(CustomerCapitalResult::getCapitalInfoId, 4l)
|
.list();
|
|
if (CollUtil.isNotEmpty(capitalResultList)){
|
CustomerCapitalResult capitalResult = capitalResultList.get(0);
|
if ("AUDIT_PASS".equals(approvalStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_SUCCESS);
|
}else if ("AUDITING".equals(approvalStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_WAIT.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_WAIT);
|
}else if ("AUDIT_REJECT".equals(approvalStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REFUSE.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_FAIL);
|
}
|
customerCapitalResultService.updateById(capitalResult);
|
}
|
} catch (Exception ex) {
|
log.error("日志编号:" + logNumber + " 【青花优品】查询进件申请结果接口推送原始返回参数转换失败,jsonData:{} ex:{}", jsonData, ex, "");
|
}
|
return resp;
|
}
|
}
|