/** * Reorder the tickets of one column per ajax * @return mixed * @throws MethodNotAllowedHttpException (405) when not called via ajax */ public function actionReorder() { $request = Yii::$app->request; if ($request->isAjax) { $columnId = $request->post('columnId'); $ticketOrder = $request->post('ticketOrder'); foreach ($ticketOrder as $ticketOrderKey => $ticketId) { $ticket = Ticket::findOne($ticketId); $ticket->ticket_order = $ticketOrderKey; $ticket->column_id = $columnId; if ($ticket->update() === false) { yii::error("Ticket Reordering Error: Column:{$columnId}, Ticket:{$ticketId}, Order:{$ticketOrderKey}"); } } } else { throw new MethodNotAllowedHttpException(); } }
/** * 以post形式发送数据$data到$url指定的网址 */ public static function httpPost($url, $data, $timeout = 30) { // if (is_array($data)) { // $data = http_build_query($data); // } // dd($url,$data); $ch = curl_init(); //考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传 //http://segmentfault.com/a/1190000000725185 if (class_exists('CURLFile', false)) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); } else { if (defined('CURLOPT_SAFE_UPLOAD')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); } } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_HEADER, 0); //返回数据不包含头信息 curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); //刷新链接 curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //POST提交的数据 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'TEST PHP5 Client 1.1 (curl) ' . phpversion()); $result = curl_exec($ch); // $http_code = curl_getinfo ( $ch, CURLINFO_HTTP_CODE ); $err = curl_error($ch); if (false === $result || !empty($err)) { $errno = curl_errno($ch); $info = curl_getinfo($ch); curl_close($ch); $data = Json::encode($data); $log = "get remote api error {$url}-{$data}-response code is {$errno} and result " . VarDumper::dumpAsString($info); \yii::error($log, 'getremoteapi'); return array('result' => $result, 'errno' => $errno, 'msg' => $err, 'info' => $info); } curl_close($ch); return $result; }
/** * Reorder the columns display order per ajax * @return mixed * @throws MethodNotAllowedHttpException (405) when not called via ajax */ public function actionReorder() { $request = Yii::$app->request; if ($request->isAjax) { $displayOrder = $request->post('displayOrder'); $newColumnOrder = 1; foreach ($displayOrder as $displayOrderKey => $columnId) { $column = Column::findOne($columnId); $column->display_order = $newColumnOrder; //$junk = $column->name; //$column->name = $junk; if ($column->update() === false) { yii::error("Ticket Reordering Error: Column:{$columnId}, Ticket:{$ticketId}, Order:{$ticketOrderKey}"); } $newColumnOrder++; } } else { throw new MethodNotAllowedHttpException(); } }
public function actionLogin() { $this->layout = false; if (!\Yii::$app->user->isGuest) { return $this->goHome(); } $message = ''; $model = new LoginForm(); if ($model->load(yii::$app->request->post())) { if ($model->login()) { if ($this->rbacService->checkPermission('manager_admin')) { return $this->goBack(); } else { yii::$app->user->logout(); $message = '您没有权限登录管理系统'; yii::error("用户名:{$model->username},密码:{$model->password},{$message}", '登录后台'); } } else { yii::error("用户名:{$model->username},密码:{$model->password},{$message}", '登录后台'); } } return $this->render('login', ['model' => $model]); }
public function getQrImageUrl2() { $gh_id = $this->gh_id; if (empty($this->scene_id)) { // hbhe if (yii::$app->mutex->acquire(MStaff::SCENE_LOCK, MStaff::SCENE_LOCK_WAIT_TIME_SECOND)) { $this->scene_id = MStaff::newSceneId($this->gh_id); $this->save(false); //yii::$app->mutex->release($lock); yii::$app->mutex->release(MStaff::SCENE_LOCK); } else { yii::error('acquire lock error'); } } $scene_id = $this->scene_id; $office_id = $this->office_id; $office = MOffice::findOne(['office_id' => $office_id]); $office_title = $office->title; //$log_file_path = Yii::$app->getRuntimePath().DIRECTORY_SEPARATOR.'qr'.DIRECTORY_SEPARATOR."{$gh_id}_{$scene_id}.jpg"; $log_file_path = Yii::$app->getRuntimePath() . DIRECTORY_SEPARATOR . 'qr-all-offices' . DIRECTORY_SEPARATOR . "{$scene_id}_{$office_title}.jpg"; if (!file_exists($log_file_path) || filesize($log_file_path) == 0) { Yii::$app->wx->setGhId($gh_id); $arr = Yii::$app->wx->WxgetQRCode($scene_id, true); $url = Yii::$app->wx->WxGetQRUrl($arr['ticket']); Wechat::downloadFile($url, $log_file_path); } //$url = Yii::$app->getRequest()->baseUrl."/../runtime/qr/{$gh_id}_{$scene_id}.jpg"; //return $url; }
public function actionR2() { $lock = 'LOCK#1'; $gh_id = 'G'; $office_id = rand(1, 100000); for ($i = 0; $i < 10000; $i++) { if (yii::$app->mutex->acquire($lock, 10)) { $staff = new MStaff(); $staff->gh_id = $gh_id; $staff->office_id = $office_id; $staff->scene_id = MStaff::newSceneId($gh_id); $staff->name = 'office-' . $office_id; $staff->cat = MStaff::SCENE_CAT_OFFICE; if (!$staff->save(false)) { U::W(['error', __METHOD__, $staff]); } yii::$app->mutex->release($lock); } else { yii::error('acquire lock error in R2'); } } }
public function getQrImageUrl() { // hbhe if (yii::$app->mutex->acquire(MStaff::SCENE_LOCK, MStaff::SCENE_LOCK_WAIT_TIME_SECOND)) { $staff = MStaff::findOne(['gh_id' => $this->gh_id, 'openid' => $this->openid]); if (empty($staff)) { $staff = $this->newSceneIdForOpenid(); } //yii::$app->mutex->release($lock); yii::$app->mutex->release(MStaff::SCENE_LOCK); } else { yii::error('acquire lock error'); } return $staff->getQrImageUrl(); }
public function afterSave($insert, $changedAttributes) { if ($insert) { if ($this->need_scene_id) { //hbhe if (yii::$app->mutex->acquire(MStaff::SCENE_LOCK, MStaff::SCENE_LOCK_WAIT_TIME_SECOND)) { $staff = new MStaff(); $staff->gh_id = $this->gh_id; $staff->office_id = $this->office_id; $staff->scene_id = MStaff::newSceneId($this->gh_id); $staff->name = $this->title; $staff->cat = MStaff::SCENE_CAT_OFFICE; if (!$staff->save(false)) { U::W(['error', __METHOD__, $staff]); } //yii::$app->mutex->release($lock); yii::$app->mutex->release(MStaff::SCENE_LOCK); } else { yii::error('acquire lock error'); } } } }