Browse Source

群聊清空还存在未读消息处理

master
wanghongjun 3 months ago
parent
commit
b92f4dd832
  1. 8
      app/common/task/ClearMessage.php
  2. 2
      app/common/task/UserClearMessage.php
  3. 1
      app/enterprise/controller/Group.php
  4. 1
      app/enterprise/model/Message.php

8
app/common/task/ClearMessage.php

@ -3,6 +3,7 @@
namespace app\common\task;
use app\enterprise\model\File;
use app\enterprise\model\GroupUser;
use yunwuxin\cron\Task;
use think\Exception;
use app\manage\model\{Config};
@ -58,9 +59,16 @@ class ClearMessage extends Task
$time=time() - ($days * $this->daytime);
$where[]=['create_time','<',$time];
$res = Message::where($where)->select();
$group_id_arr = [];
foreach ($res as $resRes) {
$resRes->force()->delete();
File::syncDelFile($resRes->file_id);
if ($resRes['is_group'] == 1) {
$group_id_arr[] = $resRes['to_user'];
}
}
if ($group_id_arr) {
GroupUser::editGroupUser([['group_id','in',array_unique($group_id_arr)]], ['unread' => 0]);
}
}
print "****************消息清理成功******************\n";

2
app/common/task/UserClearMessage.php

@ -5,6 +5,7 @@ namespace app\common\task;
use app\enterprise\model\File;
use app\enterprise\model\Friend;
use app\enterprise\model\Group as GroupModel;
use app\enterprise\model\GroupUser;
use app\enterprise\model\Message;
use app\manage\model\Config;
use yunwuxin\cron\Task;
@ -110,6 +111,7 @@ class UserClearMessage extends Task
$msg->force()->delete();
File::syncDelFile($msg->file_id);
}
GroupUser::editGroupUser(['group_id'=>$group_id], ['unread' => 0]);
wsSendMsg($group_id, 'delMessageAll', ['group_id' => $group_id], 1);
}
}

1
app/enterprise/controller/Group.php

@ -617,6 +617,7 @@ class Group extends BaseController
$msg->force()->delete();
File::syncDelFile($msg->file_id);
}
GroupUser::editGroupUser(['group_id'=>$group_id], ['unread' => 0]);
wsSendMsg($group_id, 'delMessageAll', ['group_id' => $group_id], 1);
return success('');
}

1
app/enterprise/model/Message.php

@ -427,6 +427,7 @@ class Message extends BaseModel
}
if ($is_group) {
$group_id_arr = (new Group())->column('group_id');
GroupUser::editGroupUser([['group_id','in',$group_id_arr]], ['unread' => 0]);
wsSendMsg($group_id_arr, 'delGroupAllMsg', [], 1);
} else {
$user_id_arr = (new User())->column('user_id');

Loading…
Cancel
Save