|
...
|
...
|
@@ -202,14 +202,51 @@ class HomeEs extends Base { |
|
|
|
|
|
|
|
// 超迹 带标签搜索
|
|
|
|
if(app()->request('search_tags') && $ids){
|
|
|
|
// 钉钉 @胡淑芬(胡淑芬) 时间 2026-09-01 17:56 提出修改
|
|
|
|
// 查询id对应的发件人
|
|
|
|
$search_lists = $this->es->search(['query'=>['bool'=>["must"=>[["terms"=>['uuid'=>$ids]]]]],"_source" => ["from.email"]],0,10000);
|
|
|
|
$search_lists = $this->es->search(['query'=>['bool'=>["must"=>[["terms"=>['uuid'=>$ids]]]]],"_source" => ["from.email",'to','folder_as_int']],0,10000);
|
|
|
|
if(!empty($search_lists['hits']['hits'])){
|
|
|
|
$query['query']['bool']['must'][] = ['query_string'=>[
|
|
|
|
'query'=>'from.email:('.implode(' OR ',array_map(function($e){
|
|
|
|
return '"'.$e['_source']['from']['email'].'"';
|
|
|
|
},$search_lists['hits']['hits'])).')']
|
|
|
|
];
|
|
|
|
$from_emails = [];
|
|
|
|
$to_emails = [];
|
|
|
|
foreach($search_lists['hits']['hits'] as $hit){
|
|
|
|
$folder_as_int = isset($hit['_source']['folder_as_int'])?(int)$hit['_source']['folder_as_int']:0;
|
|
|
|
if(in_array($folder_as_int,[2,3])){
|
|
|
|
$tos = explode(',',$hit['_source']['to']);
|
|
|
|
foreach($tos as $to){
|
|
|
|
if($to){
|
|
|
|
$to_emails[] = $to;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
if(!empty($hit['_source']['from']['email'])){
|
|
|
|
$from_emails[] = $hit['_source']['from']['email'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$from_emails = array_unique($from_emails);
|
|
|
|
$to_emails = array_unique($to_emails);
|
|
|
|
$tag_query = ['bool'=>['should'=>[],'minimum_should_match'=>1]];
|
|
|
|
if($from_emails){
|
|
|
|
$tag_query['bool']['should'][] = ['query_string'=>[
|
|
|
|
'query'=>'from.email:('.implode(' OR ',array_map(function($e){
|
|
|
|
return '"'.$e.'"';
|
|
|
|
},$from_emails)).')']
|
|
|
|
];
|
|
|
|
}
|
|
|
|
if($to_emails){
|
|
|
|
$tag_query['bool']['should'][] = ['query_string'=>[
|
|
|
|
'query'=>'to:('.implode(' OR ',array_map(function($e){
|
|
|
|
return '"'.$e.'"';
|
|
|
|
},$to_emails)).')']
|
|
|
|
];
|
|
|
|
}
|
|
|
|
if(empty($tag_query['bool']['should'])){
|
|
|
|
$query['query']['bool']['must'][] = ['term'=>[
|
|
|
|
'uuid'=> 0
|
|
|
|
]];
|
|
|
|
}else{
|
|
|
|
$query['query']['bool']['must'][] = $tag_query;
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
$query['query']['bool']['must'][] = ['term'=>[
|
|
|
|
'uuid'=> 0
|
...
|
...
|
|