field('updated_at, live_json')->where($where)->find(); if ($live_room) { if (time() > $live_room['updated_at'] + 60) { // 2020-05-08 1分钟左右更新一次 $this->ajaxReturn($this->requestProgramApi(1)); } $this->ajaxReturn(array( 'status' => 1, 'msg' => '获取成功1', 'data' => json_decode($live_room['live_json'], true), )); } else { $this->ajaxReturn($this->requestProgramApi()); } } // 获取直播间--单个 public function getLiveRoomFind() { $liveModel = M('mini_program_list'); $merchant_id = self::$merchant_id; $where['merchant_id'] = $merchant_id; $live_room = $liveModel->field('updated_at, live_json')->where($where)->find(); if ($live_room) { if (time() > $live_room['updated_at'] + 60) { // 2020-05-08 1分钟左右更新一次 $result = $this->requestProgramApi(1); $result['data'] = $result['data'][0]; $this->ajaxReturn($result); } $this->ajaxReturn(array( 'status' => 1, 'msg' => '获取成功1', 'data' => json_decode($live_room['live_json'], true)[0], )); } else { $this->ajaxReturn($this->requestProgramApi()); $this->requestProgramApi(); } } // 直播间列表数据--时间更新频次限制 protected function requestProgramApi($type) { $liveModel = M('mini_program_list'); $merchant_id = self::$merchant_id; $access_token = get_authorizer_access_tokens($merchant_id);//获取token if (empty($access_token)) { $result['status'] = 0; $result['msg'] = '未获取到有效token'; $this->ajaxReturn($result); } $url = "https://api.weixin.qq.com/wxa/business/getliveinfo?access_token={$access_token}"; $data = array( 'start' => 0, 'limit' => 30, ); $res = http_request($url, json_encode($data));//获取用户openid $res = json_decode($res, true); if (isset($res['errcode']) && $res['errcode'] != 0) { $this->ajaxReturn(array( 'status' => 0, 'msg' => '授权信息有误,请稍后重试!' )); } if ($res && isset($res['errcode']) && $res['errcode'] == 0) { if ($type == 1) { // 更新数据 $data['updated_at'] = time(); $data['live_json'] = json_encode($res['room_info']); $liveModel->where(['merchant_id' => $merchant_id])->save($data); } else { $data['merchant_id'] = $merchant_id; $data['updated_at'] = time(); $data['live_json'] = json_encode($res['room_info']); $liveModel->data($data)->add(); } } return array( 'status' => 1, 'msg' => '获取成功', 'data' => $res['room_info'], ); } }