'选择项', ]; } 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'; // 压缩包文件名 var_dump($zipName); var_dump($path); var_dump($paths); die(); return (new ZipFile())->downloadZipImg($zipName, $path, $paths); } }