'选择项', ]; } public function delete() { if (!$this->validate()) { return $this->getModelError(); } foreach ($this->ids as $item) { $model = BallCart::findOne([ 'id' => $item, 'is_delete' => 0 ]); if ($model == null) { break; } if ($model->is_delete == 1) { continue; } $model->is_delete = 1; $model->deleted_at = time(); if (!$model->save()) { return Model::getModelErrorInfo($model); } } return Model::asReturnSuccess('操作成功'); } public function status_yes() { if (!$this->validate()) { return $this->getModelError(); } foreach ($this->ids as $item) { $model = BallCart::findOne([ 'id' => $item, 'is_delete' => 0, ]); if ($model == null) { return Model::asReturnError('该球车不存在或已被清理'); } if ($model->status == 0) { continue; } $model->status = 0; $model->updated_at = time(); if (!$model->save()) { return Model::getModelErrorInfo($model); } } return Model::asReturnSuccess('操作成功'); } public function status_no() { if (!$this->validate()) { return $this->getModelError(); } foreach ($this->ids as $item) { $model = BallCart::findOne([ 'id' => $item, 'is_delete' => 0, ]); if ($model == null) { return Model::asReturnError('该球车不存在或已被清理'); } if ($model->status == 2) { continue; } if ($model->status == 1) { return Model::asReturnError('该球车正在租赁中,请等还车后在停用'); } $model->status = 2; $model->updated_at = time(); if (!$model->save()) { return Model::getModelErrorInfo($model); } // 写redis,变更当前状态未0 $redis_ball_cart_status_name = "api:cxaibc:ball_cart:{$model->ball_number}"; $get = \Yii::$app->redis->get($redis_ball_cart_status_name); $redis_value = "0:0:admin"; $OPERATION_ENABLE = 0; $OPERATION_LEVEL = 0; if (!empty($get)) { $explode = explode(':', $get); $explode[0] = "0"; $OPERATION_LEVEL = $explode[1]; $redis_value = implode(":", $explode); } \Yii::$app->redis->set($redis_ball_cart_status_name, $redis_value); } return Model::asReturnSuccess('操作成功'); } public function getBallQrcode() { $ball = BallCart::findOne($this->ids); if($ball == null){ return ['code' => 1,'msg' => '该球车不存在']; } $store = Store::findOne($ball->store_id); if($store == null){ return ['code' => 1,'msg' => '该球车所在门店不存在']; } return $this->getQrcode($store,$ball); } public function getQrcode($store,$ball) { $path = 'wxqrcode/ball_qrcode'; if(!is_dir($path)){ mkdir($path,0777,true); } $body['page'] = 'pages/hire/hiretwo'; $body['scene'] = "s={$store->id}&n={$ball->ball_number}"; $json_body = md5(json_encode($body)); $path.='/'.$json_body.'.png'; if(!file_exists($path)){ $res = self::wxmpQrcode($body); if (json_encode($res) !== false) { $res = json_decode($res,true); return ['code' => 1,'msg' => $res['errmsg']]; } else { $file = fopen($path, "w");//打开文件准备写入 fwrite($file, $res);//写入,$res为图片二进制内容 fclose($file);//关闭 //图片是否存在 if (!file_exists($path)) { return ['code' => 1,'msg' => '生成二维码失败']; } else { return ['code' => 0,'msg' => 'ok','data' => SiteHelper::getFullUrl($path)]; } } }else{ return ['code' => 0,'msg' => 'ok','data' => SiteHelper::getFullUrl($path)]; } } //获取小程序二维码 public function wxmpQrcode($body) { $plugin = new \app\models\common\PluginService(); $wxmpService = $plugin->getWxmpService(0); $accessToken = $wxmpService->getAccessToken(); if(empty($accessToken)){ $accessToken = $wxmpService->getAccessToken(true); } $body = json_encode($body); return $wxmpService->Qrcode->getWxappQrcode($accessToken,$body); } public function BatchQrcode() { $ball = BallCart::find()->select('id,store_id,name,ball_number')->where(['is_delete' => 0])->all(); if($ball == null){ return ['code' => 1,'msg' => '该球车不存在']; } $path = 'wxqrcode/ball_qrcode_zip'; if(!is_dir($path)){ mkdir($path,0777,true); } $paths = []; foreach ($ball as $value){ $store = Store::findOne($value->store_id); if($store == null){ return $value->ball_number.'编号球车所在门店不存在'; } $r = $this->getQrcode($store,$value); if($r['code'] != 0){ return $r['msg']; } $name = $store->name.'_'.$value->ball_number.'.png'; array_push($paths,['name'=>$name,'path' => $r['data']]); } if(empty($paths)){ return '无下载数据'; } $zipName = '球车二维码_'.date('Y年m月d日').'下载' . '.zip'; // 压缩包文件名 return (new ZipFile())->downloadZipImg($zipName,$path,$paths); } }