checkToken()) { return json_fail('通信失败.'); } $inputData = $request->all(); $rules = [ 'source_type' => 'required', 'data' => 'required|array', /* * // 主要是要接收比如广告的东西,有些原有的字段就非必填了. 'data.*.video_uid' => 'required|max:32', 'data.*.type' => 'required|integer', 'data.*.category_name' => 'nullable|max:32', 'data.*.created_at' => 'required', 'data.*.updated_at' => 'required', 'data.*.title' => 'required', 'data.*.cover' => 'nullable|max:700', 'data.*.duration' => 'required|integer', 'data.*.bitrate' => 'required|integer', 'data.*.resolution' => 'required', 'data.*.tags' => 'nullable', 'data.*.screenshots' => 'nullable', 'data.*.merge_pic' => 'nullable|max:700', 'data.*.file_hash' => 'required|max:32', 'data.*.status' => 'required|integer', 'data.*.multiple_rates' => 'nullable|array', 'data.*.app_alias_name' => 'nullable|max:120', 'data.*.app_module_name' => 'nullable|max:120', 'data.*.app_item_code' => 'nullable|max:64', 'data.*.from_type' => 'required|integer', 'data.*.server_flag' => 'required|max:64', */ ]; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } if ($inputData['source_type'] != 'video') { return json_fail('通信数据类型有误'); } if (!empty($inputData['data'])) { // 异步调度. dispatch_job(new ReceiveVideosJob($inputData['data'])); } $res = [ 'result' => 'success', ]; return $this->jsonSuccess($res); } /** * 检查token合法性. * @return bool */ private function checkToken() { $token = request()->header('AUTH-TOKEN', ''); if (empty($token)) { $token = request()->input('token', ''); } return $token === $this->innerToken; } /** * 搜索开房记录 * @param Request $request * @param ValidatorFactoryInterface $validatorFactory * @return mixed */ public function searchHotelRecord(Request $request, ValidatorFactoryInterface $validatorFactory) { if (!$this->checkToken()) { return json_fail('通信失败.'); } $inputData = $request->all(); $rules = [ 'card_no' => 'required|string|max:18', ]; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $options = [ 'skip' => 0, 'limit' => 5, 'sort' => [ 'check_time' => -1, ], ]; $cache = make(CacheInterface::class); $hotelRecordData = $cache->remember( 'check_fid_list:' . $inputData['card_no'], 60 * 24 * 7, function () use ($inputData, $options) { return make(HotelLogModel::class)->db() ->find([ 'ct_type' => 'ID', 'ct_fid' => $inputData['card_no'] ], $options)->toArray(); } ); $data = []; if ($hotelRecordData) { foreach ($hotelRecordData as $key => $item) { $check_time = 'XXXX-XX-XX'; $ct_fid = 'XXXXXXXX'; $birthday = 'XXXX-XX-XX'; // 处理时间 if (strlen($item['check_time']) > 2) { $check_time = substr($item['check_time'], 0, 4) . '-XX-XX'; } // 处理出生日期 if (strlen($item['birthday']) > 2) { $birthday = substr($item['birthday'], 0, 4) . '-XX-XX'; } // 处理身身份证 if (strlen($item['ct_fid']) > 2) { $ct_fid = substr($item['ct_fid'], 0, -4) . 'XXXX'; } $data[] = [ 'check_id' => $item['_id']->__toString(), 'username' => $item['username'], 'gender' => $item['gender'] === 1 ? '男' : ($item['gender'] === 2 ? '女' : '未知'), 'ct_fid' => $ct_fid, 'birthday' => $birthday, 'check_address' => 'XXXXXX', 'check_time' => $check_time, // 同住性别 'check_sex' => $item['gender'] === 2 ? '男' : '女', ]; } } return $this->jsonSuccess($data); } /** * @param $data * @return mixed */ private function jsonSuccess($data) { $result = [ 'code' => 200, 'message' => '', 'data' => $data, 'handshake' => '', ]; return response()->json($result); } }