Commit 0c1f23b0 authored by 鹿朋's avatar 鹿朋

用户标签改为查询特征

parent dbfb2a03
...@@ -17,4 +17,9 @@ public class AssetAttributeConstants { ...@@ -17,4 +17,9 @@ public class AssetAttributeConstants {
*/ */
public static final String AUDIT_RESULT = "auditResult"; public static final String AUDIT_RESULT = "auditResult";
/**
* 用户标签(0:首申 1:复贷首申 2:复贷)
*/
public static final String USER_LOAN_TYPE_V4 = "user_loan_type_v4";
} }
...@@ -7,12 +7,15 @@ import com.alibaba.fastjson.JSONObject; ...@@ -7,12 +7,15 @@ import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.googlecode.aviator.AviatorEvaluator; import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.Expression; import com.googlecode.aviator.Expression;
import com.quantgroup.asset.distribution.constant.AssetAttributeConstants;
import com.quantgroup.asset.distribution.constant.CommonConstants; import com.quantgroup.asset.distribution.constant.CommonConstants;
import com.quantgroup.asset.distribution.exception.QGException; import com.quantgroup.asset.distribution.exception.QGException;
import com.quantgroup.asset.distribution.exception.QGExceptionType; import com.quantgroup.asset.distribution.exception.QGExceptionType;
import com.quantgroup.asset.distribution.model.form.AssetForm;
import com.quantgroup.asset.distribution.service.alarm.IAlarmService; import com.quantgroup.asset.distribution.service.alarm.IAlarmService;
import com.quantgroup.asset.distribution.service.alarm.impl.MarkdownMessage; import com.quantgroup.asset.distribution.service.alarm.impl.MarkdownMessage;
import com.quantgroup.asset.distribution.service.distribute.IDistributeFailLogService; import com.quantgroup.asset.distribution.service.distribute.IDistributeFailLogService;
import com.quantgroup.asset.distribution.service.feature.IFeatureService;
import com.quantgroup.asset.distribution.service.httpclient.IHttpService; import com.quantgroup.asset.distribution.service.httpclient.IHttpService;
import com.quantgroup.asset.distribution.service.jpa.entity.*; import com.quantgroup.asset.distribution.service.jpa.entity.*;
import com.quantgroup.asset.distribution.service.jpa.repository.IChannelRuleRepository; import com.quantgroup.asset.distribution.service.jpa.repository.IChannelRuleRepository;
...@@ -44,10 +47,7 @@ import shaded.com.google.common.collect.Lists; ...@@ -44,10 +47,7 @@ import shaded.com.google.common.collect.Lists;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream; import java.util.stream.IntStream;
/** /**
...@@ -83,6 +83,9 @@ public class CoreFilter { ...@@ -83,6 +83,9 @@ public class CoreFilter {
@Autowired @Autowired
private IDistributeFailLogService distributeFailLogService; private IDistributeFailLogService distributeFailLogService;
@Autowired
private IFeatureService featureService;
@Async @Async
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void coreHandle(AuditResponce auditResponce) { public void coreHandle(AuditResponce auditResponce) {
...@@ -227,11 +230,27 @@ public class CoreFilter { ...@@ -227,11 +230,27 @@ public class CoreFilter {
log.error("CreditLevel不符 userLevel:{}", auditResponce.getCreditLevel()); log.error("CreditLevel不符 userLevel:{}", auditResponce.getCreditLevel());
return Boolean.FALSE; return Boolean.FALSE;
} }
if (StringUtils.isNotBlank(channelRuleEntity.getUserTag()) String ruleUserTag = channelRuleEntity.getUserTag();
&& (StringUtils.isEmpty(auditResponce.getUserTag()) || !channelRuleEntity.getUserTag().contains(auditResponce.getUserTag()))) { if (StringUtils.isNotBlank(ruleUserTag)) {
log.error("UserTag不符, userTag:{}", auditResponce.getUserTag()); Set<String> keys = new HashSet<>();
keys.add(AssetAttributeConstants.USER_LOAN_TYPE_V4);
AssetForm assetForm = new AssetForm();
assetForm.setUuid(auditResponce.getUuid());
assetForm.setBizChannel(auditResponce.getBizChannel());
assetForm.setBizNo(auditResponce.getBizNo());
assetForm.setBizType(auditResponce.getBizType());
assetForm.setExData(auditResponce.getExData());
Map<String, Object> data = featureService.getFeatureData(keys, assetForm, 1);
if (Objects.isNull(data)) {
log.error("查询特征userTag为空.查询入参:{}",assetForm);
return Boolean.FALSE; return Boolean.FALSE;
} }
String userTag = String.valueOf(data.get(AssetAttributeConstants.USER_LOAN_TYPE_V4));
if (!ruleUserTag.contains(userTag)) {
log.error("UserTag不符, 特征userTag:{},配置userTag", userTag, ruleUserTag);
return Boolean.FALSE;
}
}
String basicRule = fundProduct.getBasicRule(); String basicRule = fundProduct.getBasicRule();
Expression compiledExp = AviatorEvaluator.compile(basicRule); Expression compiledExp = AviatorEvaluator.compile(basicRule);
List<ProductRuleEntity> ruleEntityList = productRuleService.getAll(); List<ProductRuleEntity> ruleEntityList = productRuleService.getAll();
......
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