Commit 0b913ddc authored by 郑建's avatar 郑建

你我贷

parent 2137f928
...@@ -20,6 +20,7 @@ import org.apache.http.protocol.HttpContext; ...@@ -20,6 +20,7 @@ import org.apache.http.protocol.HttpContext;
import org.apache.http.ssl.SSLContexts; import org.apache.http.ssl.SSLContexts;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.util.ClassUtils;
import javax.net.ssl.*; import javax.net.ssl.*;
import java.io.File; import java.io.File;
...@@ -124,10 +125,11 @@ public class HttpClientConfig { ...@@ -124,10 +125,11 @@ public class HttpClientConfig {
return null; return null;
} }
}; };
String classesPath= ClassUtils.getDefaultClassLoader().getResource("").getPath();
KeyStore keyStore = KeyStore.getInstance("PKCS12"); KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(new FileInputStream(new File("F:\\9_QFNEW\\data-export-platform\\src\\main\\resources\\niwodai\\qg-keystore.jks")), "password".toCharArray()); keyStore.load(new FileInputStream(new File(classesPath + "/niwodai/" + "qg-keystore.jks")), "password".toCharArray());
SSLContext sslcontext = SSLContexts.custom() SSLContext sslcontext = SSLContexts.custom()
.loadTrustMaterial(new File("F:\\9_QFNEW\\data-export-platform\\src\\main\\resources\\niwodai\\qg-truststore.jks"), "password".toCharArray(), new TrustSelfSignedStrategy()) .loadTrustMaterial(new File(classesPath + "/niwodai/" + "qg-truststore.jks"), "password".toCharArray(), new TrustSelfSignedStrategy())
.loadKeyMaterial(keyStore, "password".toCharArray()) .loadKeyMaterial(keyStore, "password".toCharArray())
.build(); .build();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory( SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
......
package com.quantgroup.asset.distribution.service.niwodai; package com.quantgroup.asset.distribution.service.niwodai;
import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiCostant; import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiDataImportCheckResponseVO;
import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiIncomingResponseVO; import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiIncomingResponseVO;
import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiIncomingResultResponseVO;
import java.util.Map; import java.util.Map;
public interface INiwodaiAssetService { public interface INiwodaiAssetService {
NiwodaiIncomingResponseVO incoming(String uuid, String orderId, String amount, Integer term, NiwodaiIncomingResultResponseVO incomingResult(String orderId);
NiwodaiCostant.MnoData mnoData);
NiwodaiDataImportCheckResponseVO dataCheck(String uuid);
NiwodaiIncomingResponseVO incoming(String uuid, String orderId, String amount, Integer term);
Map<String,Object> queryUserBasic2Info(String userId, String phoneNo, boolean isQuery); Map<String,Object> queryUserBasic2Info(String userId, String phoneNo, boolean isQuery);
} }
package com.quantgroup.asset.distribution.service.niwodai; package com.quantgroup.asset.distribution.service.niwodai;
import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiDataImportCheckRequestVO; import com.quantgroup.asset.distribution.service.niwodai.vo.*;
import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiDataImportCheckResponseVO;
import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiIncomingRequestVO;
import com.quantgroup.asset.distribution.service.niwodai.vo.NiwodaiIncomingResponseVO;
public interface INiwodaiService { public interface INiwodaiService {
...@@ -12,4 +9,6 @@ public interface INiwodaiService { ...@@ -12,4 +9,6 @@ public interface INiwodaiService {
NiwodaiIncomingResponseVO incoming(NiwodaiIncomingRequestVO niwodaiIncomingRequestVO); NiwodaiIncomingResponseVO incoming(NiwodaiIncomingRequestVO niwodaiIncomingRequestVO);
NiwodaiIncomingResultResponseVO incoingResult(NiwodaiIncomingResultRequestVO requestVO);
} }
package com.quantgroup.asset.distribution.service.niwodai.impl; package com.quantgroup.asset.distribution.service.niwodai.impl;
import cn.quantgroup.motan.bean.UserInfo; import cn.quantgroup.motan.bean.UserInfo;
import cn.quantgroup.motan.enums.EducationEnum;
import cn.quantgroup.motan.enums.IncomeRangeEnum;
import cn.quantgroup.motan.vo.UserSysResult; import cn.quantgroup.motan.vo.UserSysResult;
import cn.quantgroup.user.IUserSdkService; import cn.quantgroup.user.IUserSdkService;
import cn.quantgroup.user.UserSdkServiceFactory; import cn.quantgroup.user.UserSdkServiceFactory;
import com.alibaba.druid.sql.visitor.functions.If;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -19,7 +16,6 @@ import com.quantgroup.asset.distribution.service.httpclient.IHttpService; ...@@ -19,7 +16,6 @@ import com.quantgroup.asset.distribution.service.httpclient.IHttpService;
import com.quantgroup.asset.distribution.service.niwodai.INiwodaiAssetService; import com.quantgroup.asset.distribution.service.niwodai.INiwodaiAssetService;
import com.quantgroup.asset.distribution.service.niwodai.INiwodaiService; import com.quantgroup.asset.distribution.service.niwodai.INiwodaiService;
import com.quantgroup.asset.distribution.service.niwodai.vo.*; import com.quantgroup.asset.distribution.service.niwodai.vo.*;
import com.quantgroup.asset.distribution.util.AddressResolutionUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -30,7 +26,6 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -30,7 +26,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
...@@ -62,14 +57,48 @@ public class NiwodaiAssetServiceImpl implements INiwodaiAssetService { ...@@ -62,14 +57,48 @@ public class NiwodaiAssetServiceImpl implements INiwodaiAssetService {
} }
@Override @Override
public NiwodaiIncomingResponseVO incoming(String uuid, String orderId, String amount, Integer term, public NiwodaiIncomingResultResponseVO incomingResult(String orderId){
NiwodaiCostant.MnoData mnoData) { NiwodaiIncomingResultRequestVO vo = new NiwodaiIncomingResultRequestVO();
vo.setOrderId(orderId);
return niwodaiService.incoingResult(vo);
}
@Override
public NiwodaiDataImportCheckResponseVO dataCheck(String uuid){
NiwodaiDataImportCheckRequestVO requestVO = new NiwodaiDataImportCheckRequestVO();
requestVO.setExternalUserId(uuid);
UserSysResult<UserInfo> userInfoByUuid = userSdkService.findUserInfoByUuid(uuid);
if (!userInfoByUuid.isSuccess()){
log.error("准入检查获取用户中心信息失败 uuid : {}",uuid);
throw new QGException("获取用户中心信息失败", QGExceptionType.COMMON_ILLEGAL_PARAM);
}
requestVO.setPhone(userInfoByUuid.getData().getPhoneNo());
List<OCRIdCardRow> list = OCRIdCardDataService.get(uuid); List<OCRIdCardRow> list = OCRIdCardDataService.get(uuid);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
log.error("准入检查获取用户OCR信息失败 uuid : {}",uuid);
throw new QGException("没有相关用户信息", QGExceptionType.COMMON_ILLEGAL_PARAM);
}
OCRIdCardRow ocrIdCardRow = list.get(0);
IdCardA idCardFront = JSON.parseObject(ocrIdCardRow.getIdCardContentA(), IdCardA.class);
requestVO.setIdcardNumber(idCardFront.getCitizen_id());
requestVO.setRealName(idCardFront.getName());
return niwodaiService.dataImportCheck(requestVO);
}
@Override
public NiwodaiIncomingResponseVO incoming(String uuid, String orderId, String amount, Integer term) {
List<OCRIdCardRow> list = OCRIdCardDataService.get(uuid);
if (CollectionUtils.isEmpty(list)) {
log.error("进件申请获取用户OCR信息失败 uuid : {}",uuid);
throw new QGException("没有相关用户信息", QGExceptionType.COMMON_ILLEGAL_PARAM); throw new QGException("没有相关用户信息", QGExceptionType.COMMON_ILLEGAL_PARAM);
} }
OCRIdCardRow ocrIdCardRow = list.get(0); OCRIdCardRow ocrIdCardRow = list.get(0);
UserSysResult<UserInfo> userInfoByUuid = userSdkService.findUserInfoByUuid(uuid); UserSysResult<UserInfo> userInfoByUuid = userSdkService.findUserInfoByUuid(uuid);
if (!userInfoByUuid.isSuccess()){
log.error("进件申请获取用户中心信息失败 uuid : {}",uuid);
throw new QGException("获取用户中心信息失败", QGExceptionType.COMMON_ILLEGAL_PARAM);
}
IdCardA idCardFront = JSON.parseObject(ocrIdCardRow.getIdCardContentA(), IdCardA.class); IdCardA idCardFront = JSON.parseObject(ocrIdCardRow.getIdCardContentA(), IdCardA.class);
IdCardB idCardBack = JSON.parseObject(ocrIdCardRow.getIdCardContentB(), IdCardB.class); IdCardB idCardBack = JSON.parseObject(ocrIdCardRow.getIdCardContentB(), IdCardB.class);
Map<String,Object> infoMap = queryUserBasic2Info(uuid,userInfoByUuid.getData().getPhoneNo(),true); Map<String,Object> infoMap = queryUserBasic2Info(uuid,userInfoByUuid.getData().getPhoneNo(),true);
...@@ -116,7 +145,7 @@ public class NiwodaiAssetServiceImpl implements INiwodaiAssetService { ...@@ -116,7 +145,7 @@ public class NiwodaiAssetServiceImpl implements INiwodaiAssetService {
compnayInfo.setCity(userInfo.getCity()); compnayInfo.setCity(userInfo.getCity());
compnayInfo.setProvince(userInfo.getProvince()); compnayInfo.setProvince(userInfo.getProvince());
vo.setCompanyInfo(compnayInfo); vo.setCompanyInfo(compnayInfo);
vo.setMnoData(mnoData); vo.setMnoData(new NiwodaiCostant.MnoData());
return niwodaiService.incoming(vo); return niwodaiService.incoming(vo);
} }
......
...@@ -34,6 +34,7 @@ public class NiwodaiServiceImpl implements INiwodaiService { ...@@ -34,6 +34,7 @@ public class NiwodaiServiceImpl implements INiwodaiService {
private String authUrl; private String authUrl;
@Value("${niwodai.url.incoming}") @Value("${niwodai.url.incoming}")
private String incomingUrl; private String incomingUrl;
private static String getIncomingResult = "/std/v1/apply-result";
@Value("${niwodai.client.id}") @Value("${niwodai.client.id}")
private String clientId; private String clientId;
@Value("${niwodai.client.secret}") @Value("${niwodai.client.secret}")
...@@ -72,6 +73,21 @@ public class NiwodaiServiceImpl implements INiwodaiService { ...@@ -72,6 +73,21 @@ public class NiwodaiServiceImpl implements INiwodaiService {
return null; return null;
} }
@Override
public NiwodaiIncomingResultResponseVO incoingResult(NiwodaiIncomingResultRequestVO requestVO){
String token = getToken();
if (StringUtils.isEmpty(token)) {
log.error("你我贷获取进件结果时获取token失败,requestVO : {}", JSON.toJSONString(requestVO));
throw new QGException("你我贷获取进件结果时获取token失败", COMMON_THIRD_PARTY_TIMEOUT);
}
String result = iHttpService.postNiwodaiJson(domain2 + getIncomingResult, commonHeader(token), JSON.toJSONString(requestVO),true);
if (StringUtils.isNotEmpty(result)){
return JSON.parseObject(result, NiwodaiIncomingResultResponseVO.class);
}
return null;
}
public String getToken() { public String getToken() {
String token = iRedisService.getString(RedisKeyConstants.NI_WO_DAI_TOKEN_KEY); String token = iRedisService.getString(RedisKeyConstants.NI_WO_DAI_TOKEN_KEY);
if (StringUtils.isBlank(token)) { if (StringUtils.isBlank(token)) {
......
...@@ -3,8 +3,10 @@ package com.quantgroup.asset.distribution.service.niwodai.vo; ...@@ -3,8 +3,10 @@ package com.quantgroup.asset.distribution.service.niwodai.vo;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
@Data @Data
public class NiwodaiAccessTokenResponseVO { public class NiwodaiAccessTokenResponseVO implements Serializable {
@JsonProperty("access_token") @JsonProperty("access_token")
private String accessToken; private String accessToken;
......
package com.quantgroup.asset.distribution.service.niwodai.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class NiwodaiIncomingResultRequestVO implements Serializable {
private String orderId;
}
package com.quantgroup.asset.distribution.service.niwodai.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class NiwodaiIncomingResultResponseVO implements Serializable {
/**
* 300004:进件处理中; 300005:进件拒绝; 300006: 审批通过
*/
private String code;
/**
* 审批金额
*/
private BigDecimal approvedAmount;
/**
* 最小借款金额
*/
private BigDecimal minAmount;
/**
* 步长
*/
private BigDecimal step;
/**
* 额度有效期
*/
private Date validBefore;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment