/**
  * 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();
     }
 }
示例#2
0
 /**
  * 以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();
     }
 }
示例#4
0
 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]);
 }
示例#5
0
文件: MStaff.php 项目: noikiy/wowewe
 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;
 }
示例#6
0
 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');
         }
     }
 }
示例#7
0
文件: MUser.php 项目: noikiy/wowewe
 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();
 }
示例#8
0
文件: MOffice.php 项目: noikiy/wowewe
 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');
             }
         }
     }
 }