validate( [ 'limit' => 'integer|nullable', 'since_id' => 'integer|nullable', ] ); $limit = !isset($validated['limit']) ? 10 : intval($validated['limit']); if ($limit > 100) { $limit = 100; } if (isset($validated['since_id']) && intval($validated['since_id']) > 0) { $pd_sql = Message::where('uid', $_SESSION['uid'])->where('id', '>', intval($validated['since_id'])); } else { $pd_sql = Message::where('uid', $_SESSION['uid']); } $pd_messages = $pd_sql->orderBy('id', 'DESC')->offset(0)->limit($limit)->get(['id', 'uid', 'text', 'desp', 'type','pushkey_name','created_at']); return http_result(['messages' => $pd_messages]); } // public function push(Request $request) { $validated = $request->validate( [ 'pushkey' => 'string|required', 'text' => 'string|required', 'desp' => 'string|nullable', 'type' => 'string|nullable', ] ); if (!isset($validated['desp'])) { $validated['desp'] = ''; } if (!isset($validated['type'])) { $validated['type'] = 'markdown'; } $key = PushDeerKey::where('key', $validated['pushkey'])->get()->first(); $result = false; if ($key) { $readkey = Str::random(32); $the_message = []; $the_message['uid'] = $key->uid; $the_message['text'] = $validated['text']; $the_message['desp'] = $validated['desp']; $the_message['type'] = $validated['type']; $the_message['readkey'] = $readkey; $the_message['pushkey_name'] = $key->name; $pd_message = Message::create($the_message); $devices = PushDeerDevice::where('uid', $key->uid)->get(); foreach ($devices as $device) { if ($device) { $result[] = ios_send($device->is_clip, $device->device_id, $validated['text']); } } } return http_result(['result'=>$result]); } public function remove(Request $request) { $validated = $request->validate( [ 'id' => 'integer', ] ); if ($pd_message = PushDeerMessage::where('id', $validated['id'])->get(['id', 'uid', 'text', 'desp', 'type','created_at'])->first()) { if ($pd_message->uid == $_SESSION['uid']) { $pd_message->delete(); return http_result(['message'=>'done']); } } return send_error('消息不存在或已删除', ErrorCode('ARGS')); } }