webman_duanju/app/admin/model/MessageInfo.php

63 lines
1.6 KiB
PHP

<?php
namespace app\admin\model;
use app\common\library\DatabaseRoute;
use think\facade\Db;
use Throwable;
use think\Model;
use think\facade\Cache;
class MessageInfo extends Model
{
public static function selectMessageList($params)
{
// 解析查询参数
$userId = $params['userId'] ?? null;
$state = $params['state'] ?? null;
$type = $params['type'] ?? null;
$pageNum = $params['page'] ?? 1;
$pageSize = $params['limit'] ?? 10;
$query = Db::connect(get_slave_connect_name())->name('message_info');
// 添加条件(仅当参数不为空时)
if ($userId !== null) {
$query = $query->where('user_id', $userId);
}
if ($state !== null) {
$query = $query->where('state', $state);
}
if ($type !== null) {
$query = $query->where('type', $type);
}
$total = $query->count();
// 构建查询
$messageList = $query->order('create_at', 'desc')->limit(page($pageNum, $pageSize), $pageSize)->select()->toArray();
// 关联用户信息
foreach ($messageList as &$message) {
if ($message['user_id'] !== null) {
$user = DatabaseRoute::getDb('tb_user', $message['user_id'])->find();
$message['user_entity'] = $user ?: null;
}
}
return [
'list' => $messageList,
'totalCount' => $total,
'totalPage' => (int)ceil($total / $pageSize),
'currPage' => $pageNum,
'pageSize' => $pageSize,
];
}
}