|
...
|
...
|
@@ -212,8 +212,46 @@ class MailListV2Es2 extends Base { |
|
|
|
|
|
|
|
$total = $result['hits']['total']['value']??0;
|
|
|
|
$lists = $result['hits']['hits']??[];
|
|
|
|
|
|
|
|
|
|
|
|
// 查询这批列表中的发件人是否存在星标邮件
|
|
|
|
$flaggedLists = $this->es->search([
|
|
|
|
"_source" => ["from.email"],
|
|
|
|
'query'=>[
|
|
|
|
'constant_score'=>[
|
|
|
|
'filter'=>[
|
|
|
|
"bool" => [
|
|
|
|
"must" => [
|
|
|
|
["term"=>["deleted"=>0]],// 没有删除
|
|
|
|
["term"=>["flagged"=>1]],//星标
|
|
|
|
["term"=>["source"=>2]],//ai邮箱
|
|
|
|
[
|
|
|
|
'query_string' => [
|
|
|
|
'query'=> implode(" OR ",array_map_unique_filter($lists,function ($v){
|
|
|
|
$v = $v['_source']['from']['email']??'';
|
|
|
|
return $v ? '"'.$v.'"' : '';
|
|
|
|
})),
|
|
|
|
"default_field"=> "from.email"
|
|
|
|
]
|
|
|
|
]
|
|
|
|
]
|
|
|
|
]
|
|
|
|
]
|
|
|
|
]
|
|
|
|
]
|
|
|
|
],0,count($lists));
|
|
|
|
|
|
|
|
|
|
|
|
if(empty($flaggedLists['hits']['hits'])){
|
|
|
|
$flaggedLists = [];
|
|
|
|
}else{
|
|
|
|
$flaggedLists = array_map(function ($v){
|
|
|
|
return $v['_source']['from']['email']??'';
|
|
|
|
},$flaggedLists['hits']['hits']);
|
|
|
|
}
|
|
|
|
|
|
|
|
// map
|
|
|
|
$lists = array_map(function ($v){
|
|
|
|
$lists = array_map(function ($v) use ($flaggedLists){
|
|
|
|
$v = $v['_source'];
|
|
|
|
$v['id'] = $v['uuid'];
|
|
|
|
|
|
...
|
...
|
@@ -250,6 +288,8 @@ class MailListV2Es2 extends Base { |
|
|
|
// 手动触发同步es
|
|
|
|
if(empty($v['is_auto']) && $v['folder_name']=='收件箱' && isAiAutoMail($v['from'],$v['subject'])) redis()->rPush('sync_to_es',$v['id'].'.1');
|
|
|
|
|
|
|
|
// 这个联系人是否有邮件被星标了
|
|
|
|
$v['email_flagged'] = ($v['from']&&in_array($v['from'],$flaggedLists)) ? 1 : 0;
|
|
|
|
|
|
|
|
return $v;
|
|
|
|
},$lists?:[]);
|
...
|
...
|
|