feat(message): 增加消息分类功能并优化消息列表
- 新增 msgGroup 方法实现消息分类功能 - 优化 msg 方法,支持分页并解析消息内容 - 修改 Circle 控制器中的消息发送逻辑
This commit is contained in:
@@ -318,18 +318,45 @@ class User extends Common
|
||||
}
|
||||
|
||||
|
||||
// 分类消息
|
||||
public function msgGroup()
|
||||
{
|
||||
$params = $this->request->param();
|
||||
|
||||
$query1 = Message::field('*,count(*) as num')->where('user_id', $this->auth->id);
|
||||
$query2 = Message::field('*,count(*) as num')->where('user_id', $this->auth->id);
|
||||
if (isset($params['type'])) {
|
||||
$query1->where('type', $params['type']);
|
||||
$query2->where('type', $params['type']);
|
||||
}
|
||||
$query1->group('from_id')->order('update_time', 'desc');
|
||||
$query2->group('from_id')->order('update_time', 'desc');
|
||||
$num = $query2->where('status', 0)->column('count(*) as num','from_id');// ->column('count(*) as num', 'gender');
|
||||
// dd($num);
|
||||
$res = $query1->paginate($params['pageSize'] ?? 10);
|
||||
$list = $res->items();
|
||||
foreach ($list as &$r) {
|
||||
$r['content'] = json_decode($r['content'], true);
|
||||
$r['num'] = $num[$r['from_id']] ?? 0;
|
||||
}
|
||||
$this->success('Success', ['list' => $list, 'count' => $res->total()]);
|
||||
}
|
||||
|
||||
// 用户消息
|
||||
public function msg()
|
||||
{
|
||||
$params = $this->request->param();
|
||||
|
||||
$model = Message::where('user_id', $this->auth->id);
|
||||
$query = Message::where('user_id', $this->auth->id);
|
||||
if (isset($params['type'])) {
|
||||
$model->where('type', $params['type']);
|
||||
$query->where('type', $params['type']);
|
||||
}
|
||||
$res = $model->select();
|
||||
|
||||
$this->success('Success', $res);
|
||||
$res = $query->paginate($params['pageSize'] ?? 10);
|
||||
$list = $res->items();
|
||||
foreach ($list as &$r) {
|
||||
$r['content'] = json_decode($r['content'], true);
|
||||
}
|
||||
$this->success('Success', ['list' => $list, 'count' => $res->total()]);
|
||||
}
|
||||
|
||||
// 消息读取
|
||||
@@ -341,6 +368,7 @@ class User extends Common
|
||||
$this->error(__('No rows were found'));
|
||||
}
|
||||
$model->save(['status' => 1]); //已读
|
||||
$model['content'] = json_decode($model['content'], true);
|
||||
|
||||
$this->success('Success', $model);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user