'选择项', ]; } public function delete() { if(!$this->validate()){ return $this->getModelError(); } $t = \Yii::$app->db->beginTransaction(); foreach ($this->ids as $item){ $model = Store::findOne([ 'id' => $item, 'is_delete' => 0 ]); if($model == null){ return Model::asReturnError('该门店不存在或已被清理'); } if($model->is_delete == 1){ continue; } $model->is_delete = 1; $model->deleted_at = time(); if(!$model->save()){ $t->rollBack(); return Model::getModelErrorInfo($model); } Admin::updateAll(['is_delete' => 1],['is_delete' => 0, 'user_id' => $item]); // 删除数据表 $redis_name = \Yii::$app->params['cacheKeyPrefix'].":api:store:zset"; try{ $res = \Yii::$app->redis->ZREM($redis_name,$model->id); }catch (\Exception $e){ } $exists = StoreUser::find()->where(['store_id' => $model->id, 'is_delete' => 0,])->exists(); if($exists){ $is_update = StoreUser::updateAll(['is_delete' => 1],['store_id' => $model->id, 'is_delete' => 0,]); if(!$is_update){ $t->rollBack(); return Model::asReturnError('清理门店操作失败'); } } } $t->commit(); // 删除城市缓存 $obj = new StoreCityForm(); $cache_name = $obj->getCacheName(); FlashStorage::deleteCache($cache_name); return Model::asReturnSuccess('操作成功'); } public function status_yes() { if(!$this->validate()){ return $this->getModelError(); } foreach ($this->ids as $item){ $model = Store::findOne([ 'id' => $item, 'is_delete' => 0, 'status' => 0 ]); if($model == null){ return Model::asReturnError('该门店不存在或已被清理'); } if($model->status == 1){ continue; } $model->status = 1; $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 = Store::findOne([ 'id' => $item, 'is_delete' => 0, 'status' => 1 ]); 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 getStoreQrcode() { $store = Store::findOne($this->ids); if($store == null){ return ['code' => 1,'msg' => '门店不存在']; } return $this->getQrcode($store); } public function getQrcode($store) { $path = 'wxqrcode/store_qrcode'; if(!is_dir($path)){ mkdir($path,0777,true); } $body['page'] = 'pages/index/indexTwo'; $body['scene'] = "store_id={$store->id}"; $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() { $store = Store::find()->select('id,name')->where(['is_delete' => 0])->all(); if($store == null){ return ['code' => 1,'msg' => '门店不存在']; } $path = 'wxqrcode/store_qrcode_zip'; if(!is_dir($path)){ mkdir($path,0777,true); } $paths = []; foreach ($store as $value){ $r = $this->getQrcode($value); if($r['code'] != 0){ return $r['msg']; } array_push($paths,['name'=>$value->name.'.png','path' => $r['data']]); } if(empty($paths)){ return '无下载数据'; } $zipName = '门店二维码_'.date('Y年m月d日').'下载' . '.zip'; // 压缩包文件名 return (new ZipFile())->downloadZipImg($zipName,$path,$paths); } }