...
|
...
|
@@ -109,6 +109,11 @@ class MailListV2Es2 extends Base { |
|
|
if($keyword){
|
|
|
$where['subject'] = $keyword;
|
|
|
}
|
|
|
$query = [
|
|
|
'bool'=>[
|
|
|
'must' => []
|
|
|
]
|
|
|
];
|
|
|
// 联系人
|
|
|
$address = app()->request('address');
|
|
|
if($address){
|
...
|
...
|
@@ -121,6 +126,13 @@ class MailListV2Es2 extends Base { |
|
|
$where['from.email'] = $address['from'];
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
|
$query['bool']['must'][] = [
|
|
|
"bool" => ["should"=>[
|
|
|
["match_phrase" => ["from.email"=>$address]],
|
|
|
["match_phrase" => ["to"=>$address]],
|
|
|
]]
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
|
...
|
...
|
@@ -140,11 +152,7 @@ class MailListV2Es2 extends Base { |
|
|
unset($where['is_hots'],$where['is_auto'],$where['deleted']);
|
|
|
}
|
|
|
|
|
|
$query = [
|
|
|
'bool'=>[
|
|
|
'must' => []
|
|
|
]
|
|
|
];
|
|
|
|
|
|
foreach ($where as $k=>$v){
|
|
|
if($k=='subject'){
|
|
|
if($v){
|
...
|
...
|
@@ -235,7 +243,7 @@ class MailListV2Es2 extends Base { |
|
|
|
|
|
// 手动触发同步es
|
|
|
// 手动触发同步es
|
|
|
if(empty($v['is_auto']) && $v['folder_name']=='收件箱' && isAiAutoMail($v['from'],$v['subject'])) redis()->rPush('sync_to_es',$v['id'].'.1');
|
|
|
if(empty($v['is_auto']) && $v['folder_name']=='收件箱' && isAiAutoMail($v['from'],$v['subject'])) redis()->rPush('sync_to_es',$v['id'].'.1');
|
|
|
|
|
|
|
|
|
return $v;
|
...
|
...
|
@@ -262,10 +270,10 @@ class MailListV2Es2 extends Base { |
|
|
if(!empty($assign['assign'])){
|
|
|
if(!empty($assign['from'])){
|
|
|
$f = [
|
|
|
'query_string'=>[
|
|
|
'query'=>(str_contains($folder, '发件箱')?'to':'from.email').':('.implode(' OR ',array_map(function($e){return '"'.$e.'"';},$assign['from'])).')'
|
|
|
]
|
|
|
];
|
|
|
'query_string'=>[
|
|
|
'query'=>(str_contains($folder, '发件箱')?'to':'from.email').':('.implode(' OR ',array_map(function($e){return '"'.$e.'"';},$assign['from'])).')'
|
|
|
]
|
|
|
];
|
|
|
}
|
|
|
$r = [
|
|
|
'bool' => [
|
...
|
...
|
@@ -443,9 +451,9 @@ class MailListV2Es2 extends Base { |
|
|
if($seen!==null){
|
|
|
$body['query']['bool']['must'][] = ['term'=>['seen'=>$seen]];
|
|
|
}
|
|
|
|
|
|
|
|
|
$body['query']['bool']['must'][] = ['term'=>['is_hots'=>0]];
|
|
|
|
|
|
|
|
|
$body['query']['bool']['must'][] = ['term'=>['folder_as_int'=>folder2int($folder)]];
|
|
|
if($this->assignSql($folder)) $body['query']['bool']['must'][] = $this->assignSql($folder);
|
|
|
// logs('count :'.json_encode($body));
|
...
|
...
|
@@ -471,7 +479,7 @@ class MailListV2Es2 extends Base { |
|
|
private function countFlagged($body){
|
|
|
$body['query']['bool']['must'][] = ['term'=>['flagged'=>1]];
|
|
|
$body['query']['bool']['must'][] = ['terms'=>['folder_as_int'=>[1,2,3,4,5]]];
|
|
|
|
|
|
|
|
|
if($this->assignSql('收件箱'))
|
|
|
$body['query']['bool']['must'][] = $this->assignSql('收件箱');
|
|
|
|
...
|
...
|
|