作者 邓超

同步邮箱,当没有返回未读时,去库里面统计

@@ -198,9 +198,14 @@ class Mail { @@ -198,9 +198,14 @@ class Mail {
198 } 198 }
199 199
200 // 更新数量 200 // 更新数量
  201 + $upFolderData = ['exsts'=>$status['EXISTS'],'last_sync_time' => time()];
  202 + // 谷歌 不返未读数量 谢特
  203 + if(isset($status['UNSEEN'])){
  204 + $upFolderData['unseen'] = $status['UNSEEN'];
  205 + }
201 $db->update( 206 $db->update(
202 folderSql::$table, 207 folderSql::$table,
203 - ['exsts'=>$status['EXISTS'],'unseen'=>$status['UNSEEN']??0], 208 + $upFolderData,
204 dbWhere(['id'=>$folder_id]), 209 dbWhere(['id'=>$folder_id]),
205 false 210 false
206 ); 211 );
@@ -262,12 +267,22 @@ class Mail { @@ -262,12 +267,22 @@ class Mail {
262 } 267 }
263 268
264 // 更新数量 269 // 更新数量
265 - $db->update(  
266 - folderSql::$table,  
267 - ['last_sync_time' => time()],  
268 - dbWhere(['id'=>$folder_id]),  
269 - false  
270 - ); 270 + if(!isset($status['UNSEEN'])){
  271 + // 统计未读数量
  272 + $unseen = $db->count(listsSql::listCount(dbWhere([
  273 + 'seen' => 0,
  274 + 'deleted' => 0,
  275 + 'email_id' => $email_id,
  276 + 'folder_id' => $folder_id,
  277 + ])));
  278 + $db->update(
  279 + folderSql::$table,
  280 + ['unseen' => $unseen],
  281 + dbWhere(['id'=>$folder_id]),
  282 + false
  283 + );
  284 + }
  285 +
271 286
272 return $success_uid; 287 return $success_uid;
273 288