作者 邓超

星标

... ... @@ -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?:[]);
... ...