Commit 2b6f44e9 authored by liwenbin's avatar liwenbin

新诚导流联系人缺失判断条件前置

parent 630a4027
package com.quantgroup.asset.distribution.service.funding.impl; package com.quantgroup.asset.distribution.service.funding.impl;
import cn.quantgroup.motan.bean.UserInfo;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.google.common.base.Stopwatch; import com.google.common.base.Stopwatch;
import com.quantgroup.asset.distribution.constant.AidFundStatus; import com.quantgroup.asset.distribution.constant.AidFundStatus;
...@@ -7,6 +8,7 @@ import com.quantgroup.asset.distribution.constant.aid.AidRiskInfoConstants; ...@@ -7,6 +8,7 @@ import com.quantgroup.asset.distribution.constant.aid.AidRiskInfoConstants;
import com.quantgroup.asset.distribution.enums.UserLoanType; import com.quantgroup.asset.distribution.enums.UserLoanType;
import com.quantgroup.asset.distribution.exception.QGExceptionType; import com.quantgroup.asset.distribution.exception.QGExceptionType;
import com.quantgroup.asset.distribution.exception.QGPreconditions; import com.quantgroup.asset.distribution.exception.QGPreconditions;
import com.quantgroup.asset.distribution.model.entity.user.SDKUserInfo;
import com.quantgroup.asset.distribution.model.form.AssetForm; import com.quantgroup.asset.distribution.model.form.AssetForm;
import com.quantgroup.asset.distribution.model.response.GlobalResponse; import com.quantgroup.asset.distribution.model.response.GlobalResponse;
import com.quantgroup.asset.distribution.service.feature.IFeatureService; import com.quantgroup.asset.distribution.service.feature.IFeatureService;
...@@ -19,6 +21,7 @@ import com.quantgroup.asset.distribution.service.jpa.repository.ICustomerTypeRul ...@@ -19,6 +21,7 @@ import com.quantgroup.asset.distribution.service.jpa.repository.ICustomerTypeRul
import com.quantgroup.asset.distribution.service.niwodai.INiwodaiAssetService; import com.quantgroup.asset.distribution.service.niwodai.INiwodaiAssetService;
import com.quantgroup.asset.distribution.service.redis.IRedisService; import com.quantgroup.asset.distribution.service.redis.IRedisService;
import com.quantgroup.asset.distribution.service.rule.IRuleService; import com.quantgroup.asset.distribution.service.rule.IRuleService;
import com.quantgroup.asset.distribution.service.user.IUserCenterService;
import com.quantgroup.asset.distribution.util.DateUtil; import com.quantgroup.asset.distribution.util.DateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
...@@ -48,17 +51,16 @@ public class AidFundRouteServiceImpl implements IAidFundRouteService { ...@@ -48,17 +51,16 @@ public class AidFundRouteServiceImpl implements IAidFundRouteService {
@Autowired @Autowired
private IRedisService<String> redisService; private IRedisService<String> redisService;
@Autowired @Autowired
private IRedisService<AidLoanFundRouteRecord> redisRouteRecord;
@Autowired
private IRuleService ruleService; private IRuleService ruleService;
@Autowired @Autowired
private ICustomerTypeRuleConfigRepository iCustomerTypeRuleConfigRepository;
@Autowired
private IAidFundAssetService aidFundAssetService; private IAidFundAssetService aidFundAssetService;
@Autowired @Autowired
private IAidFundAuditOrderService aidFundAuditOrderService; private IAidFundAuditOrderService aidFundAuditOrderService;
@Autowired @Autowired
private IFeatureService featureService; private IFeatureService featureService;
@Autowired
private IUserCenterService userCenterService;
/** /**
* 助贷资金路由 * 助贷资金路由
...@@ -270,6 +272,22 @@ public class AidFundRouteServiceImpl implements IAidFundRouteService { ...@@ -270,6 +272,22 @@ public class AidFundRouteServiceImpl implements IAidFundRouteService {
asset.getUuid(), aidLoanFundConfig.getFundId(), aidLoanFundConfig.getFundProductId(), age, province, qgScore3); asset.getUuid(), aidLoanFundConfig.getFundId(), aidLoanFundConfig.getFundProductId(), age, province, qgScore3);
} }
} }
return valid;
if (!valid) { return false; }
// 通用, 用户联系人缺失的不导, md,这是用户中心的bug, 要在这里做兼容
UserInfo userInfo = userCenterService.getUserInfoByUuid(assetForm.getUuid());
if (userInfo == null || StringUtils.isEmpty(userInfo.getPhoneNo())) {
log.info("助贷资方导流, 用户手机号缺失, 不进行导流, uuid : {}, fundId : {}, fundProductId : {}", asset.getUuid(), aidLoanFundConfig.getFundId(), aidLoanFundConfig.getFundProductId());
return false;
}
SDKUserInfo sdkUserInfo = userCenterService.getSDKUserExtInfo(userInfo.getPhoneNo(), assetForm.getUuid());
if (sdkUserInfo == null || sdkUserInfo.getContactList() == null || sdkUserInfo.getContactList().size() == 0) {
log.info("助贷资方导流, 用户联系人缺失, 不进行导流, uuid : {}, fundId : {}, fundProductId : {}, contactList : {}",
assetForm.getUuid(), aidLoanFundConfig.getFundId(), aidLoanFundConfig.getFundProductId(), 0);
return false;
}
return true;
} }
} }
...@@ -9,55 +9,55 @@ import java.sql.Timestamp; ...@@ -9,55 +9,55 @@ import java.sql.Timestamp;
/** /**
* Created by renfeng on 2020/3/24. * Created by renfeng on 2020/3/24.
*/ */
@Entity //@Entity
@Table(name="customer_type_rule_config") //@Table(name="customer_type_rule_config")
@Data @Data
public class CustomerTypeRuleConfig implements Serializable{ public class CustomerTypeRuleConfig implements Serializable{
private static final long serialVersionUID = -1L; private static final long serialVersionUID = -1L;
//
@Id // @Id
@Column(name = "id") // @Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY) // @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; // private Long id;
//
@Column(name="customer_type_rule_no") // @Column(name="customer_type_rule_no")
private String customerTypeRuleNo; // private String customerTypeRuleNo;
//
@Column(name="customer_type_rule_desc") // @Column(name="customer_type_rule_desc")
private String customerTypeRuleDesc; // private String customerTypeRuleDesc;
//
@Column(name="customer_type") // @Column(name="customer_type")
private Integer customerType; // private Integer customerType;
//
@Column(name="customer_type_rule_el") // @Column(name="customer_type_rule_el")
private String customerTypeRuleEl; // private String customerTypeRuleEl;
//
@Column(name = "enable") // @Column(name = "enable")
private Boolean enable; // private Boolean enable;
//
@Column(name="created_by") // @Column(name="created_by")
private String createdBy; // private String createdBy;
//
@Column(name="updated_by") // @Column(name="updated_by")
private String updatedBy; // private String updatedBy;
//
@Column(name = "created_at") // @Column(name = "created_at")
private Timestamp createdAt; // private Timestamp createdAt;
//
@Column(name = "updated_at") // @Column(name = "updated_at")
private Timestamp updatedAt; // private Timestamp updatedAt;
//
//
@PrePersist // @PrePersist
public void prePersist() { // public void prePersist() {
Timestamp timestamp = new Timestamp(System.currentTimeMillis()); // Timestamp timestamp = new Timestamp(System.currentTimeMillis());
createdAt = timestamp; // createdAt = timestamp;
updatedAt = timestamp; // updatedAt = timestamp;
} // }
//
@PreUpdate // @PreUpdate
public void preUpdate() { // public void preUpdate() {
updatedAt = new Timestamp(System.currentTimeMillis()); // updatedAt = new Timestamp(System.currentTimeMillis());
} // }
} }
...@@ -8,7 +8,8 @@ import java.util.List; ...@@ -8,7 +8,8 @@ import java.util.List;
/** /**
* Created by renfeng on 2019/7/17. * Created by renfeng on 2019/7/17.
*/ */
public interface ICustomerTypeRuleConfigRepository extends JpaRepository<CustomerTypeRuleConfig, Long>{ public interface ICustomerTypeRuleConfigRepository {
//public interface ICustomerTypeRuleConfigRepository extends JpaRepository<CustomerTypeRuleConfig, Long>{
......
...@@ -43,6 +43,8 @@ public class UserCenterServiceImpl implements IUserCenterService { ...@@ -43,6 +43,8 @@ public class UserCenterServiceImpl implements IUserCenterService {
@Autowired @Autowired
private IRedisService<UserInfo> redisService; private IRedisService<UserInfo> redisService;
@Autowired @Autowired
private IRedisService<SDKUserInfo> sdkUserInfoRedisService;
@Autowired
private IHttpService httpService; private IHttpService httpService;
...@@ -51,6 +53,11 @@ public class UserCenterServiceImpl implements IUserCenterService { ...@@ -51,6 +53,11 @@ public class UserCenterServiceImpl implements IUserCenterService {
*/ */
private static final String USER_INFO_PRE_FIX = "ASSET_DISTRIBUTION:GET_USER_INFO_BY_UUID:MMNACH99:"; private static final String USER_INFO_PRE_FIX = "ASSET_DISTRIBUTION:GET_USER_INFO_BY_UUID:MMNACH99:";
/**
* SDKUserInfo redisKey前缀
*/
private static final String SDK_USER_INFO_PREFIX = "ASSET_DISTRIBUTION:GET_SDK_USER_INFO_BY_PHONE_NO:AMMVYY16:";
@PostConstruct @PostConstruct
private void init() { private void init() {
userSdkService = UserSdkServiceFactory.generateSDKService(userSysUrl, httpClient); userSdkService = UserSdkServiceFactory.generateSDKService(userSysUrl, httpClient);
...@@ -75,7 +82,24 @@ public class UserCenterServiceImpl implements IUserCenterService { ...@@ -75,7 +82,24 @@ public class UserCenterServiceImpl implements IUserCenterService {
@Override @Override
public SDKUserInfo getSDKUserExtInfo(String phoneNo, String uuid) { public SDKUserInfo getSDKUserExtInfo(String phoneNo, String uuid) {
// 这个暂时就先不做缓存了,如果后续有需求用到,再加上缓存,目前是一次性使用 final String cacheKey = getSdkUserInfoCacheKey(phoneNo);
SDKUserInfo sdkUserInfo = sdkUserInfoRedisService.getEntity(cacheKey);
if (sdkUserInfo == null) {
sdkUserInfo = getSDKUserInfoFromUserCenter(phoneNo, uuid);
if (sdkUserInfo != null) {
sdkUserInfoRedisService.setEntityEx(cacheKey, sdkUserInfo, 5, TimeUnit.MINUTES);
}
}
return sdkUserInfo;
}
/**
* 从用户中心获取SDKUserInfo
* @param uuid
* @param phoneNo
* @return
*/
private SDKUserInfo getSDKUserInfoFromUserCenter(String phoneNo, String uuid) {
String url = userSysUrl + "/innerapi/user-association/search/userId"; String url = userSysUrl + "/innerapi/user-association/search/userId";
Map<String, String> params = new HashMap<>(); Map<String, String> params = new HashMap<>();
params.put("phoneNo", phoneNo); params.put("phoneNo", phoneNo);
...@@ -85,7 +109,7 @@ public class UserCenterServiceImpl implements IUserCenterService { ...@@ -85,7 +109,7 @@ public class UserCenterServiceImpl implements IUserCenterService {
Boolean success = data.getBoolean("success"); Boolean success = data.getBoolean("success");
if (!(success != null && success.booleanValue() && "0000".equals(data.getString("code")) if (!(success != null && success.booleanValue() && "0000".equals(data.getString("code"))
&& "0000".equals(data.getString("businessCode")))) { && "0000".equals(data.getString("businessCode")))) {
log.info("用户中心根据phoneNo查询用户全量信息失败, phone : {}, result : {}", phoneNo, result); log.info("用户中心根据phoneNo查询用户全量信息失败, uuid : {}, phone : {}, result : {}", uuid, phoneNo, result);
return null; return null;
} }
...@@ -102,4 +126,13 @@ public class UserCenterServiceImpl implements IUserCenterService { ...@@ -102,4 +126,13 @@ public class UserCenterServiceImpl implements IUserCenterService {
return USER_INFO_PRE_FIX + uuid; return USER_INFO_PRE_FIX + uuid;
} }
/**
* 获取SDKUserInfo缓存key前缀
* @param phoneNo
* @return
*/
private static final String getSdkUserInfoCacheKey(String phoneNo) {
return SDK_USER_INFO_PREFIX + phoneNo;
}
} }
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