|
|
@@ -1,16 +1,29 @@
|
|
|
package shop.alien.second.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import shop.alien.entity.second.SecondRiskControlRecord;
|
|
|
+import shop.alien.entity.second.vo.SecondRiskControlRecordVo;
|
|
|
+import shop.alien.entity.store.LifeBrandedCard;
|
|
|
+import shop.alien.entity.store.LifeClassManage;
|
|
|
+import shop.alien.entity.store.LifeUser;
|
|
|
+import shop.alien.entity.store.vo.LifeUserVo;
|
|
|
+import shop.alien.mapper.LifeUserMapper;
|
|
|
import shop.alien.mapper.second.SecondRiskControlRecordMapper;
|
|
|
import shop.alien.second.service.RiskControlService;
|
|
|
+import shop.alien.util.common.Constants;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 风控服务实现类
|
|
|
@@ -22,6 +35,8 @@ public class RiskControlServiceImpl extends ServiceImpl<SecondRiskControlRecordM
|
|
|
|
|
|
private final SecondRiskControlRecordMapper secondRiskControlRecordMapper;
|
|
|
|
|
|
+ private final LifeUserMapper lifeUserMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 记录风控数据
|
|
|
*
|
|
|
@@ -72,4 +87,68 @@ public class RiskControlServiceImpl extends ServiceImpl<SecondRiskControlRecordM
|
|
|
log.info("查询条件: {}", queryWrapper.getSqlSegment());
|
|
|
return secondRiskControlRecordMapper.selectList(queryWrapper);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SecondRiskControlRecordVo> queryRiskControlRecords(Integer page, Integer size) {
|
|
|
+ try {
|
|
|
+ List<SecondRiskControlRecordVo> list = new ArrayList<>();
|
|
|
+ IPage<SecondRiskControlRecord> brandedPage = new Page<>(page, size);
|
|
|
+
|
|
|
+ // 获取风险管控信息
|
|
|
+ QueryWrapper<SecondRiskControlRecord> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("delete_flag", Constants.DeleteFlag.NOT_DELETED);
|
|
|
+ queryWrapper.orderByDesc("created_time");
|
|
|
+ IPage<SecondRiskControlRecord> brandedCards = secondRiskControlRecordMapper.selectPage(brandedPage, queryWrapper);
|
|
|
+
|
|
|
+ for (SecondRiskControlRecord card : brandedCards.getRecords()) {
|
|
|
+ SecondRiskControlRecordVo vo = new SecondRiskControlRecordVo();
|
|
|
+ if (1 == card.getRuleType()) {
|
|
|
+ vo.setRuleTypeName("洗钱嫌疑");
|
|
|
+ vo.setRuleName("高频高价交易");
|
|
|
+ vo.setRuleRisk("中风险");
|
|
|
+ vo.setCreatedTime(card.getCreatedTime());
|
|
|
+ } else if (2 == card.getRuleType()) {
|
|
|
+ vo.setRuleTypeName("账号异常");
|
|
|
+ vo.setRuleName("同一设备/mac 24小时内注册超过3个账号");
|
|
|
+ vo.setRuleRisk("中风险");
|
|
|
+ vo.setCreatedTime(card.getCreatedTime());
|
|
|
+ } else if (3 == card.getRuleType()) {
|
|
|
+ vo.setRuleTypeName("交易欺诈");
|
|
|
+ vo.setRuleName("用户频繁修改商品价格");
|
|
|
+ vo.setRuleRisk("高风险");
|
|
|
+ vo.setCreatedTime(card.getCreatedTime());
|
|
|
+ } else if (4 == card.getRuleType()) {
|
|
|
+ vo.setRuleTypeName("异常发布");
|
|
|
+ vo.setRuleName("短时间大量发布同类商品");
|
|
|
+ vo.setRuleRisk("高风险");
|
|
|
+ vo.setCreatedTime(card.getCreatedTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( 2 != card.getRuleType()) {
|
|
|
+ // 根据ID查询用户信息
|
|
|
+ QueryWrapper<LifeUserVo> queryWrapperUser = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("delete_flag", Constants.DeleteFlag.NOT_DELETED)
|
|
|
+ .eq("id", card.getUserId());
|
|
|
+ LifeUserVo userInfoList = lifeUserMapper.getUserById(queryWrapperUser);
|
|
|
+ // 用户手机号
|
|
|
+ vo.setUserPhone(userInfoList.getUserPhone());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理结果
|
|
|
+ if (card.getRiskStatus().equals(0)) {
|
|
|
+ vo.setRiskStatusName("待处理");
|
|
|
+ } else if (card.getRiskStatus().equals(1)) {
|
|
|
+ vo.setRiskStatusName("已处理");
|
|
|
+ } else if (card.getRiskStatus().equals(2)) {
|
|
|
+ vo.setRiskStatusName("已忽略");
|
|
|
+ }
|
|
|
+ list.add(vo);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("记录风控数据时发生异常: 用户ID={}, 规则类型={},业务id={}", e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|