@ -1,23 +1,19 @@
package com.biutag.supervision.controller.sensitivePerception ;
package com.biutag.supervision.controller.sensitivePerception ;
import cn.hutool.core.bean.BeanUtil ;
import cn.hutool.core.bean.BeanUtil ;
import cn.hutool.core.collection.CollectionUtil ;
import cn.hutool.core.util.StrUtil ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.biutag.supervision.constants.AppConstants ;
import com.biutag.supervision.constants.AppConstants ;
import com.biutag.supervision.mapper.RiskModelTaskClueMapper ;
import com.biutag.supervision.mapper.RiskModelTaskClueMapper ;
import com.biutag.supervision.mapper.RiskPersonalMapper ;
import com.biutag.supervision.pojo.Result ;
import com.biutag.supervision.pojo.Result ;
import com.biutag.supervision.pojo.domain.RiskPersonalDetail ;
import com.biutag.supervision.pojo.domain.RiskPersonalDetail ;
import com.biutag.supervision.pojo.entity.* ;
import com.biutag.supervision.pojo.entity.* ;
import com.biutag.supervision.pojo.param.RiskPersonalQueryParam ;
import com.biutag.supervision.pojo.param.RiskPersonalQueryParam ;
import com.biutag.supervision.pojo.vo.RiskModelTaskClueVo ;
import com.biutag.supervision.pojo.vo.RiskModelTaskClueVo ;
import com.biutag.supervision.pojo.vo.RiskPersonalVo ;
import com.biutag.supervision.pojo.vo.RiskPersonalVo ;
import com.biutag.supervision.service.ModelService ;
import com.biutag.supervision.service.* ;
import com.biutag.supervision.service.RiskPersonalService ;
import com.biutag.supervision.service.RiskPersonalTagService ;
import com.biutag.supervision.service.RiskScoreRuleService ;
import lombok.RequiredArgsConstructor ;
import lombok.RequiredArgsConstructor ;
import lombok.extern.slf4j.Slf4j ;
import lombok.extern.slf4j.Slf4j ;
import org.springframework.web.bind.annotation.GetMapping ;
import org.springframework.web.bind.annotation.GetMapping ;
@ -27,7 +23,6 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.List ;
import java.util.Objects ;
import java.util.stream.Collectors ;
import java.util.stream.Collectors ;
/ * *
/ * *
@ -42,63 +37,32 @@ public class RiskPersonalController {
private final RiskPersonalService riskPersonalService ;
private final RiskPersonalService riskPersonalService ;
private final RiskPersonalMapper riskPersonalMapper ;
private final RiskPersonalTagService riskPersonalTagService ;
private final RiskScoreRuleService riskScoreRuleService ;
private final RiskScoreRuleService riskScoreRuleService ;
private final ModelService modelService ;
private final ModelService modelService ;
private final RiskPersonalTagService riskPersonalTagService ;
private final RiskModelTaskClueMapper riskModelTaskClueMapper ;
private final RiskModelTaskClueMapper riskModelTaskClueMapper ;
private final RiskPersonInfoService riskPersonInfoService ;
@GetMapping
@GetMapping
public Result < Page < RiskPersonalVo > > list ( RiskPersonalQueryParam param ) {
public Result < Page < RiskPersonalVo > > list ( RiskPersonalQueryParam param ) {
LambdaQueryWrapper < RiskPersonal > queryWrapper = new LambdaQueryWrapper < > ( ) ;
Page < RiskPersonalVo > page = riskPersonalMapper . queryPage ( Page . of ( param . getCurrent ( ) , param . getSize ( ) ) , param ) ;
queryWrapper
List < RiskPersonalVo > records = page . getRecords ( ) ;
. eq ( RiskPersonal : : getDel , AppConstants . UN_DEL )
if ( records . isEmpty ( ) ) {
. like ( StrUtil . isNotBlank ( param . getName ( ) ) , RiskPersonal : : getName , param . getName ( ) )
return Result . success ( page ) ;
. like ( StrUtil . isNotBlank ( param . getMobileNumber ( ) ) , RiskPersonal : : getMobileNumber , param . getMobileNumber ( ) )
. like ( StrUtil . isNotBlank ( param . getIdCode ( ) ) , RiskPersonal : : getIdCode , param . getIdCode ( ) )
. eq ( Objects . nonNull ( param . getAge ( ) ) , RiskPersonal : : getAge , param . getAge ( ) )
. and ( CollectionUtil . isNotEmpty ( param . getTags ( ) ) , ( query ) - > {
for ( int i = 0 ; i < param . getTags ( ) . size ( ) ; i + + ) {
query . like ( RiskPersonal : : getTags , param . getTags ( ) . get ( i ) ) . or ( i ! = param . getTags ( ) . size ( ) - 1 ) ;
}
} ) ;
if ( CollectionUtil . isNotEmpty ( param . getSmallTags ( ) ) | | CollectionUtil . isNotEmpty ( param . getEducationTags ( ) ) | | CollectionUtil . isNotEmpty ( param . getAgeTags ( ) ) ) {
LambdaQueryWrapper < RiskPersonalTag > tagQueryWrapper = new LambdaQueryWrapper < > ( ) ;
tagQueryWrapper . and ( CollectionUtil . isNotEmpty ( param . getSmallTags ( ) ) , ( query ) - > {
for ( int i = 0 ; i < param . getSmallTags ( ) . size ( ) ; i + + ) {
query . like ( RiskPersonalTag : : getSmallTag , param . getSmallTags ( ) . get ( i ) ) . or ( i ! = param . getSmallTags ( ) . size ( ) - 1 ) ;
}
} ) . and ( CollectionUtil . isNotEmpty ( param . getAgeTags ( ) ) , ( query ) - > {
for ( int i = 0 ; i < param . getAgeTags ( ) . size ( ) ; i + + ) {
query . like ( RiskPersonalTag : : getSmallTag , param . getAgeTags ( ) . get ( i ) ) . or ( i ! = param . getAgeTags ( ) . size ( ) - 1 ) ;
}
} ) . and ( CollectionUtil . isNotEmpty ( param . getEducationTags ( ) ) , ( query ) - > {
for ( int i = 0 ; i < param . getEducationTags ( ) . size ( ) ; i + + ) {
query . like ( RiskPersonalTag : : getSmallTag , param . getEducationTags ( ) . get ( i ) ) . or ( i ! = param . getEducationTags ( ) . size ( ) - 1 ) ;
}
}
List < String > idCodes = records . stream ( ) . map ( RiskPersonalVo : : getIdCode ) . toList ( ) ;
List < RiskPersonalTag > smallTags = riskPersonalTagService . list ( new LambdaQueryWrapper < RiskPersonalTag > ( ) . in ( RiskPersonalTag : : getIdCode , idCodes ) ) ;
records . forEach ( item - > {
item . setSmallTags ( smallTags . stream ( ) . filter ( smallTag - > smallTag . getIdCode ( ) . equals ( item . getIdCode ( ) ) ) . map ( RiskPersonalTag : : getSmallTag ) . collect ( Collectors . joining ( "," ) ) ) ;
} ) ;
} ) ;
List < RiskPersonalTag > list = riskPersonalTagService . list ( tagQueryWrapper ) ;
return Result . success ( page ) ;
if ( list . isEmpty ( ) ) {
return Result . success ( new Page < RiskPersonalVo > ( ) . setTotal ( 0 ) . setRecords ( new ArrayList < > ( ) ) ) ;
}
queryWrapper . in ( RiskPersonal : : getIdCode , list . stream ( ) . map ( RiskPersonalTag : : getIdCode ) . collect ( Collectors . toSet ( ) ) ) ;
}
queryWrapper . orderByDesc ( RiskPersonal : : getRiskScore ) . orderByDesc ( RiskPersonal : : getCreateTime ) ;
Page < RiskPersonal > page = riskPersonalService . page ( Page . of ( param . getCurrent ( ) , param . getSize ( ) ) , queryWrapper ) ;
if ( page . getRecords ( ) . isEmpty ( ) ) {
return Result . success ( new Page < RiskPersonalVo > ( ) . setTotal ( 0 ) . setRecords ( new ArrayList < > ( ) ) ) ;
}
List < RiskPersonalTag > tags = riskPersonalTagService . list ( new LambdaQueryWrapper < RiskPersonalTag > ( )
. in ( RiskPersonalTag : : getIdCode , page . getRecords ( ) . stream ( ) . map ( RiskPersonal : : getIdCode ) . toList ( ) ) ) ;
List < RiskPersonalVo > list = page . getRecords ( ) . stream ( ) . map ( item - > {
RiskPersonalVo riskPersonalVo = new RiskPersonalVo ( ) ;
BeanUtil . copyProperties ( item , riskPersonalVo ) ;
riskPersonalVo . setSmallTags ( tags . stream ( ) . filter ( j - > item . getIdCode ( ) . equals ( j . getIdCode ( ) ) ) . map ( RiskPersonalTag : : getSmallTag ) . collect ( Collectors . toSet ( ) ) ) ;
return riskPersonalVo ;
} ) . toList ( ) ;
return Result . success ( new Page < RiskPersonalVo > ( ) . setTotal ( page . getTotal ( ) ) . setRecords ( list ) ) ;
}
}
/ * *
/ * *
@ -109,7 +73,15 @@ public class RiskPersonalController {
@GetMapping ( "{id}" )
@GetMapping ( "{id}" )
public Result < RiskPersonalDetail > get ( @PathVariable Integer id ) {
public Result < RiskPersonalDetail > get ( @PathVariable Integer id ) {
List < RiskScoreRule > rules1 = riskScoreRuleService . list ( new LambdaQueryWrapper < RiskScoreRule > ( ) . eq ( RiskScoreRule : : getLevel , 1 ) ) ;
List < RiskScoreRule > rules1 = riskScoreRuleService . list ( new LambdaQueryWrapper < RiskScoreRule > ( ) . eq ( RiskScoreRule : : getLevel , 1 ) ) ;
RiskPersonal riskPersonal = riskPersonalService . getById ( id ) ;
RiskPersonal riskPersonal = riskPersonalService . getById ( id ) ;
RiskPersonalVo vo = new RiskPersonalVo ( ) ;
BeanUtil . copyProperties ( riskPersonal , vo ) ;
RiskPersonInfo info = riskPersonInfoService . getById ( riskPersonal . getIdCode ( ) ) ;
if ( info ! = null ) {
vo . setAvatar ( info . getImageBase64 ( ) ) ;
}
List < RiskPersonalDetail . RiskRule > list = rules1 . stream ( ) . map ( rule - > {
List < RiskPersonalDetail . RiskRule > list = rules1 . stream ( ) . map ( rule - > {
RiskPersonalDetail . RiskRule riskRule = new RiskPersonalDetail . RiskRule ( ) ;
RiskPersonalDetail . RiskRule riskRule = new RiskPersonalDetail . RiskRule ( ) ;
riskRule . setRiskName ( rule . getRiskName ( ) ) ;
riskRule . setRiskName ( rule . getRiskName ( ) ) ;
@ -122,6 +94,7 @@ public class RiskPersonalController {
QueryWrapper < RiskModelTaskClue > queryWrapper = new QueryWrapper < RiskModelTaskClue > ( )
QueryWrapper < RiskModelTaskClue > queryWrapper = new QueryWrapper < RiskModelTaskClue > ( )
. eq ( "mc.id_code" , riskPersonal . getIdCode ( ) )
. eq ( "mc.id_code" , riskPersonal . getIdCode ( ) )
. in ( "mc.model_id" , models . stream ( ) . map ( Model : : getId ) . toList ( ) )
. in ( "mc.model_id" , models . stream ( ) . map ( Model : : getId ) . toList ( ) )
. eq ( "mc.del" , AppConstants . UN_DEL )
. orderByAsc ( "r.sort_id" )
. orderByAsc ( "r.sort_id" )
. orderByDesc ( "mc.score_result" ) ;
. orderByDesc ( "mc.score_result" ) ;
List < RiskModelTaskClueVo > records = models . isEmpty ( ) ? new ArrayList < > ( ) : riskModelTaskClueMapper . queryPage ( Page . of ( 1 , 100 ) , queryWrapper ) . getRecords ( ) ;
List < RiskModelTaskClueVo > records = models . isEmpty ( ) ? new ArrayList < > ( ) : riskModelTaskClueMapper . queryPage ( Page . of ( 1 , 100 ) , queryWrapper ) . getRecords ( ) ;
@ -129,7 +102,7 @@ public class RiskPersonalController {
return riskRule ;
return riskRule ;
} ) . toList ( ) ;
} ) . toList ( ) ;
RiskPersonalDetail riskPersonalDetail = new RiskPersonalDetail ( ) ;
RiskPersonalDetail riskPersonalDetail = new RiskPersonalDetail ( ) ;
riskPersonalDetail . setRiskPersonal ( riskPersonal ) ;
riskPersonalDetail . setRiskPersonal ( vo ) ;
riskPersonalDetail . setRiskClueList ( list ) ;
riskPersonalDetail . setRiskClueList ( list ) ;
return Result . success ( riskPersonalDetail ) ;
return Result . success ( riskPersonalDetail ) ;
}
}