Commit 44f27804 authored by 王向伟's avatar 王向伟

添加风控数据接口

parent 685353ae
...@@ -80,7 +80,7 @@ public class CustomerInfo { ...@@ -80,7 +80,7 @@ public class CustomerInfo {
@Data @Data
class RiskInfo{ public class RiskInfo{
private String key; private String key;
private String name; private String name;
private String value; private String value;
......
...@@ -2,8 +2,11 @@ package cn.quantgroup.cashloanflowboss.api.customer.service.impl; ...@@ -2,8 +2,11 @@ package cn.quantgroup.cashloanflowboss.api.customer.service.impl;
import cn.quantgroup.cashloanflowboss.api.customer.entity.CustomerInfo; import cn.quantgroup.cashloanflowboss.api.customer.entity.CustomerInfo;
import cn.quantgroup.cashloanflowboss.api.customer.service.ICustomerService; import cn.quantgroup.cashloanflowboss.api.customer.service.ICustomerService;
import cn.quantgroup.cashloanflowboss.component.route.ServiceRoute;
import cn.quantgroup.cashloanflowboss.core.base.ServiceResult;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping; import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping;
import cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingRepository; import cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingRepository;
import cn.quantgroup.cashloanflowboss.spi.spiderCenter.SpiderCenter;
import cn.quantgroup.cashloanflowboss.spi.user.service.UserSysService; import cn.quantgroup.cashloanflowboss.spi.user.service.UserSysService;
import cn.quantgroup.user.retbean.*; import cn.quantgroup.user.retbean.*;
import cn.quantgroup.user.vo.UserSysResult; import cn.quantgroup.user.vo.UserSysResult;
...@@ -13,7 +16,9 @@ import org.apache.commons.lang3.StringUtils; ...@@ -13,7 +16,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -26,73 +31,121 @@ public class CustomerService implements ICustomerService { ...@@ -26,73 +31,121 @@ public class CustomerService implements ICustomerService {
@Autowired @Autowired
private UserSysService userSysService; private UserSysService userSysService;
@Autowired
private ServiceRoute serviceRoute;
@Autowired @Autowired
private ClfOrderMappingRepository clfOrderMappingRepository; private ClfOrderMappingRepository clfOrderMappingRepository;
@Autowired
private SpiderCenter spiderCenter;
@Override @Override
public CustomerInfo getCustomerInfo(String phoneNo, String channelOrderNo) { public CustomerInfo getCustomerInfo(String phoneNo, String channelOrderNo) {
String logPre = "CustomerService.getCustomerInfo"; String logPre = "CustomerService.getCustomerInfo";
log.info("{} 查询客户信息 phoneNo={},channelOrderNo={}",logPre,phoneNo,channelOrderNo); log.info("{} 查询客户信息 phoneNo={},channelOrderNo={}", logPre, phoneNo, channelOrderNo);
if(StringUtils.isAllBlank(phoneNo,channelOrderNo)){ if (StringUtils.isAllBlank(phoneNo, channelOrderNo)) {
log.error("{} 查询客户信息失败 参数为空phoneNo={},channelOrderNo={}",logPre,phoneNo,channelOrderNo); log.error("{} 查询客户信息失败 参数为空phoneNo={},channelOrderNo={}", logPre, phoneNo, channelOrderNo);
return null; return null;
} }
Long userId = getUserId(phoneNo, channelOrderNo); Long userId = getUserId(phoneNo, channelOrderNo);
if(userId == null){ if (userId == null) {
return null; return null;
} }
UserSysResult<XUser> xUserResult = userSysService.getService().findUserByUserId(userId); UserSysResult<XUser> xUserResult = userSysService.getService().findUserByUserId(userId);
if(!xUserResult.isSuccess()){ if (!xUserResult.isSuccess()) {
log.error("{} 查询用户信息失败 userId={} userResult={}",logPre,userId,xUserResult); log.error("{} 查询用户信息失败 userId={} userResult={}", logPre, userId, xUserResult);
return null; return null;
} }
CustomerInfo info = new CustomerInfo(); CustomerInfo info = new CustomerInfo();
populateUser(info,xUserResult.getData()); populateUser(info, xUserResult.getData());
UserSysResult<XUserDetail> userDetailResult = userSysService.getService().findUserDetailByUserId(userId); UserSysResult<XUserDetail> userDetailResult = userSysService.getService().findUserDetailByUserId(userId);
if(!userDetailResult.isSuccess()){ if (!userDetailResult.isSuccess()) {
log.error("{} 查询用户详细信息失败 userId={} userDetailResult={}",logPre,userId,userDetailResult); log.error("{} 查询用户详细信息失败 userId={} userDetailResult={}", logPre, userId, userDetailResult);
return null; return null;
} }
populateDetail(info,userDetailResult.getData()); populateDetail(info, userDetailResult.getData());
UserSysResult<XUserExtInfo> userExtInfoResult = userSysService.getService().findUserExtInfoByUserId(userId); UserSysResult<XUserExtInfo> userExtInfoResult = userSysService.getService().findUserExtInfoByUserId(userId);
if(!userExtInfoResult.isSuccess()){ if (!userExtInfoResult.isSuccess()) {
log.error("{} 查询用户扩展信息失败 userId={} userExtInfoResult={}",logPre,userId,userExtInfoResult); log.error("{} 查询用户扩展信息失败 userId={} userExtInfoResult={}", logPre, userId, userExtInfoResult);
return null; return null;
} }
populateExtInfo(info,userExtInfoResult.getData()); populateExtInfo(info, userExtInfoResult.getData());
UserSysResult<List<XContact>> contactsResult = userSysService.getService().findContactsByUserId(userId); UserSysResult<List<XContact>> contactsResult = userSysService.getService().findContactsByUserId(userId);
if(!contactsResult.isSuccess()){ if (!contactsResult.isSuccess()) {
log.error("{} 查询用户紧急联系人失败 userId={} contactsResult={}",logPre,userId,contactsResult); log.error("{} 查询用户紧急联系人失败 userId={} contactsResult={}", logPre, userId, contactsResult);
return null; return null;
} }
populateContact(info,contactsResult.getData()); populateContact(info, contactsResult.getData());
UserSysResult<XAddress> addressResult = userSysService.getService().findAddressByUserId(userId); UserSysResult<XAddress> addressResult = userSysService.getService().findAddressByUserId(userId);
if(!addressResult.isSuccess()){ if (!addressResult.isSuccess()) {
log.error("{}查询用户地址失败 userId={} addressResult={}",logPre,userId,addressResult); log.error("{}查询用户地址失败 userId={} addressResult={}", logPre, userId, addressResult);
return null; return null;
} }
populateAddress(info,addressResult.getData()); populateAddress(info, addressResult.getData());
Map<String, Object> param = getParam(channelOrderNo);
ServiceResult<List<CustomerInfo.RiskInfo>> riskInfoData = spiderCenter.getRiskInfoData(param);
if (!riskInfoData.isSuccess()) {
log.error("{}查询风控信息失败 channelOrderNo={} riskInfoData={}", logPre, channelOrderNo, riskInfoData);
return null;
}
info.setRiskInfoList(riskInfoData.getData());
return info; return info;
} }
private Map<String, Object> getParam(String channelOrderNo) {
String logPre = "CustomerService.getParam";
//优先使用渠道订单号查询userId
if (StringUtils.isBlank(channelOrderNo)) {
log.error("{} 查询客户信息失败 参数为空 channelOrderNo={}", logPre, channelOrderNo);
return null;
}
ClfOrderMapping orderMapping = clfOrderMappingRepository.findByChannelOrderNoLastOne(channelOrderNo);
if (orderMapping == null) {
log.error("{} 查询客户信息失败 未查到对应的order_mapping channelOrderNo={}", logPre, channelOrderNo);
return null;
}
Map<String,Object> param = new HashMap<>();
List<String> middleStageChannel = serviceRoute.getMiddleStageChannel();
if(middleStageChannel.contains(orderMapping.getRegisteredFrom().toString())){
param.put("type",2);
}else {
param.put("type",1);
}
Long qgUserId = orderMapping.getQgUserId();
UserSysResult<XUser> userByUserId = userSysService.getService().findUserByUserId(qgUserId);
if (!userByUserId.isSuccess()) {
log.error("{} 查询用户信息失败 userId={} userResult={}", logPre, qgUserId, userByUserId);
return null;
}
param.put("uuid",userByUserId.getData().getUuid());
param.put("channelId",userByUserId.getData().getRegisteredFrom());
param.put("applyNo",orderMapping.getApplyNo());
return param;
}
private void populateAddress(CustomerInfo info, XAddress xAddress) { private void populateAddress(CustomerInfo info, XAddress xAddress) {
String logStr = "CustomerService.populateAddress"; String logStr = "CustomerService.populateAddress";
log.info("{} xAddress 填充客户信息 xAddress={}",logStr,xAddress); log.info("{} xAddress 填充客户信息 xAddress={}", logStr, xAddress);
if(Objects.isNull(xAddress)){ if (Objects.isNull(xAddress)) {
log.error("{} xAddress填充客户地址失败 xAddress为空",logStr); log.error("{} xAddress填充客户地址失败 xAddress为空", logStr);
return; return;
} }
info.setAddress(xAddress.getAddress()); info.setAddress(xAddress.getAddress());
...@@ -101,13 +154,13 @@ public class CustomerService implements ICustomerService { ...@@ -101,13 +154,13 @@ public class CustomerService implements ICustomerService {
private void populateContact(CustomerInfo info, List<XContact> contacts) { private void populateContact(CustomerInfo info, List<XContact> contacts) {
String logStr = "CustomerService.populateContact"; String logStr = "CustomerService.populateContact";
log.info("{} contacts填充客户信息 contacts={}",logStr,contacts); log.info("{} contacts填充客户信息 contacts={}", logStr, contacts);
if(CollectionUtils.isEmpty(contacts)){ if (CollectionUtils.isEmpty(contacts)) {
log.error("{} contacts填充客户紧急联系人失败 contacts为空",logStr); log.error("{} contacts填充客户紧急联系人失败 contacts为空", logStr);
return; return;
} }
if(contacts.size() != 2){ if (contacts.size() != 2) {
log.error("{} 紧急联系人个数错误 contacts={}",logStr,contacts); log.error("{} 紧急联系人个数错误 contacts={}", logStr, contacts);
return; return;
} }
info.setContactNameA(contacts.get(0).getName()); info.setContactNameA(contacts.get(0).getName());
...@@ -122,9 +175,9 @@ public class CustomerService implements ICustomerService { ...@@ -122,9 +175,9 @@ public class CustomerService implements ICustomerService {
private void populateExtInfo(CustomerInfo info, XUserExtInfo xUserExtInfo) { private void populateExtInfo(CustomerInfo info, XUserExtInfo xUserExtInfo) {
String logStr = "CustomerService.populateExtInfo"; String logStr = "CustomerService.populateExtInfo";
log.info("{} xUserExtInfo填充客户信息 xUserExtInfo={}",logStr,xUserExtInfo); log.info("{} xUserExtInfo填充客户信息 xUserExtInfo={}", logStr, xUserExtInfo);
if(Objects.isNull(xUserExtInfo)){ if (Objects.isNull(xUserExtInfo)) {
log.error("{} xUserExtInfo填充客户扩展信息失败 xUserExtInfo为空",logStr); log.error("{} xUserExtInfo填充客户扩展信息失败 xUserExtInfo为空", logStr);
return; return;
} }
...@@ -141,9 +194,9 @@ public class CustomerService implements ICustomerService { ...@@ -141,9 +194,9 @@ public class CustomerService implements ICustomerService {
private void populateDetail(CustomerInfo info, XUserDetail xUserDetail) { private void populateDetail(CustomerInfo info, XUserDetail xUserDetail) {
String logStr = "CustomerService.populateDetail"; String logStr = "CustomerService.populateDetail";
log.info("{} xUser填充客户信息 xUser={}",logStr,xUserDetail); log.info("{} xUser填充客户信息 xUser={}", logStr, xUserDetail);
if(Objects.isNull(xUserDetail)){ if (Objects.isNull(xUserDetail)) {
log.error("{} xUserDetail填充客户信息失败 xUserDetail为空",logStr); log.error("{} xUserDetail填充客户信息失败 xUserDetail为空", logStr);
return; return;
} }
info.setName(xUserDetail.getName()); info.setName(xUserDetail.getName());
...@@ -154,9 +207,9 @@ public class CustomerService implements ICustomerService { ...@@ -154,9 +207,9 @@ public class CustomerService implements ICustomerService {
private void populateUser(CustomerInfo info, XUser xUser) { private void populateUser(CustomerInfo info, XUser xUser) {
String logStr = "CustomerService.populateUser"; String logStr = "CustomerService.populateUser";
log.info("{} xUser填充客户信息 xUser={}",logStr,xUser); log.info("{} xUser填充客户信息 xUser={}", logStr, xUser);
if(Objects.isNull(xUser)){ if (Objects.isNull(xUser)) {
log.error("{} xUser填充客户信息失败 xUser为空",logStr); log.error("{} xUser填充客户信息失败 xUser为空", logStr);
return; return;
} }
info.setUserId(xUser.getId()); info.setUserId(xUser.getId());
...@@ -168,19 +221,19 @@ public class CustomerService implements ICustomerService { ...@@ -168,19 +221,19 @@ public class CustomerService implements ICustomerService {
private Long getUserId(String phoneNo, String channelOrderNo) { private Long getUserId(String phoneNo, String channelOrderNo) {
String logPre = "CustomerService.getUserId"; String logPre = "CustomerService.getUserId";
//优先使用渠道订单号查询userId //优先使用渠道订单号查询userId
if(StringUtils.isNotBlank(channelOrderNo)){ if (StringUtils.isNotBlank(channelOrderNo)) {
ClfOrderMapping orderMapping = clfOrderMappingRepository.findByChannelOrderNoLastOne(channelOrderNo); ClfOrderMapping orderMapping = clfOrderMappingRepository.findByChannelOrderNoLastOne(channelOrderNo);
if(orderMapping == null){ if (orderMapping == null) {
log.error("{} 查询客户信息失败 未查到对应的order_mapping channelOrderNo={}",logPre,channelOrderNo); log.error("{} 查询客户信息失败 未查到对应的order_mapping channelOrderNo={}", logPre, channelOrderNo);
return null; return null;
} }
return orderMapping.getQgUserId(); return orderMapping.getQgUserId();
} else { } else {
UserSysResult<XUser> user = UserSysResult<XUser> user =
userSysService.getService().findUserByPhoneNo(phoneNo); userSysService.getService().findUserByPhoneNo(phoneNo);
if(!user.isSuccess()){ if (!user.isSuccess()) {
log.error("{} 查询客户信息失败 phoneNo={},result={}",logPre,phoneNo,user); log.error("{} 查询客户信息失败 phoneNo={},result={}", logPre, phoneNo, user);
return null; return null;
} }
return user.getData().getId(); return user.getData().getId();
......
package cn.quantgroup.cashloanflowboss.spi.spiderCenter;
import cn.quantgroup.cashloanflowboss.api.customer.entity.CustomerInfo;
import cn.quantgroup.cashloanflowboss.core.base.ServiceResult;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* @author Wang Xiangwei
* @version 2020/7/22
*/
@Component
@FeignClient(name = "OPCenter", url = "${spider.api-host}", fallback = SpiderCenter.Fallback.class)
public interface SpiderCenter {
@PostMapping(value = "/spider-center/middle_office/ex/import/check_risk_info_data", consumes = "application/x-www-form-urlencoded")
ServiceResult<List<CustomerInfo.RiskInfo>> getRiskInfoData(@RequestParam Map paramMap);
@Component
class Fallback implements SpiderCenter {
@Override
public ServiceResult<List<CustomerInfo.RiskInfo>> getRiskInfoData(Map paramMap) {
return ServiceResult.buildFial();
}
}
}
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