order('id desc')->find(); //最新收益通知 $earning = Notice::where([ ['user_id', '=', $user_id], ['send_type', '=', NoticeEnum::SYSTEM_NOTICE], ['scene', 'in', [NoticeEnum::GET_EARNINGS_NOTICE, NoticeEnum::GET_FUTURE_EARNINGS_NOTICE]], ])->order('id desc')->find(); $data['system'] = [ 'title' => '系统通知', 'content' => $server['content'] ?? '暂无系统消息', 'img' => UrlServer::getFileUrl(ConfigServer::get('website', 'system_notice')), 'type' => 'system', ]; $data['earning'] = [ 'title' => '收益通知', 'content' => $earning['content'] ?? '暂无收益消息', 'img' => UrlServer::getFileUrl(ConfigServer::get('website', 'earning_notice')), 'type' => 'earning', ]; $res = array_values($data); return $res; } /** * Notes: 消息列表 * @param $user_id * @param $type * @param $page * @param $size * @author 段誉(2021/6/22 1:18) * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public static function lists($user_id, $type, $page, $size) { $where = []; $where[] = ['user_id', '=', $user_id]; $where[] = ['send_type', '=', NoticeEnum::SYSTEM_NOTICE]; if ($type == 'earning') { $where[] = ['scene', 'in', [NoticeEnum::GET_EARNINGS_NOTICE, NoticeEnum::GET_FUTURE_EARNINGS_NOTICE]]; } else { $where[] = ['scene', 'not in', [NoticeEnum::GET_EARNINGS_NOTICE, NoticeEnum::GET_FUTURE_EARNINGS_NOTICE]]; } $count = Notice::where($where)->count(); $lists = Notice::where($where) ->order('id desc') ->page($page, $size) ->select(); //更新为已读 Notice::where($where) ->where('read', '<>', 1) ->update(['read' => 1]); return [ 'list' => $lists, 'page' => $page, 'size' => $size, 'count' => $count, 'more' => is_more($count, $page, $size) ]; } /** * Notes: 是否有未读的消息 * @param $user_id * @author 段誉(2021/6/22 1:17) * @return bool * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public static function unRead($user_id) { $un_read = Notice::where([ 'user_id' => $user_id, 'read' => 0, 'send_type' => NoticeEnum::SYSTEM_NOTICE ])->find(); if ($un_read) { return true; } return false; } }