From f2771f7ea42cb961aa488dd7df204b7518be37f8 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Fri, 13 Nov 2020 12:14:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=88=86=E4=BA=AB--?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BF=9D=E5=AD=98=E5=A4=B1=E8=B4=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E5=92=8C=E5=8A=A0=E5=88=A0=E9=99=A4=E6=BA=90?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Actions/Grid/v3/ShareCardDelete.php | 11 ++++++++++- app/Admin/Common/CustomFileController.php | 15 +++++++++++++++ app/Admin/Forms/v3/ShareCardCreateForm.php | 19 ++++++++++++++++--- app/Admin/Forms/v3/ShareCardEditForm.php | 7 ++++--- 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/app/Admin/Actions/Grid/v3/ShareCardDelete.php b/app/Admin/Actions/Grid/v3/ShareCardDelete.php index 16dc535..c868a03 100644 --- a/app/Admin/Actions/Grid/v3/ShareCardDelete.php +++ b/app/Admin/Actions/Grid/v3/ShareCardDelete.php @@ -2,6 +2,7 @@ namespace App\Admin\Actions\Grid\v3; +use App\Admin\Common\CustomFileController; use Dcat\Admin\Grid\RowAction; use Illuminate\Support\Facades\Redis; use App\Libs\Redis\RedisKey; @@ -17,9 +18,17 @@ class ShareCardDelete extends RowAction public function handle(Request $request) { $id = $request->get('id'); + + $redisData = Redis::hget(RedisKey::PROGRAM_SHARE_CARD, $id); + $data = json_decode($redisData,true); + if(isset($data['relative_path']) && isset($data['image']) && @getimagesize($data['image'])){ + $customFile = new CustomFileController(); + $customFile->autoDeleteFile($data['relative_path']); + } + $res = Redis::hdel(RedisKey::PROGRAM_SHARE_CARD ,$id); if($res !== false){ - return $this->response()->success('删除成功!','/share_card_setting'); + return $this->response()->success('删除成功!','/share_card_setting')->refresh(); }else{ return $this->response()->error('删除失败!'); } diff --git a/app/Admin/Common/CustomFileController.php b/app/Admin/Common/CustomFileController.php index 2fad113..c47a490 100644 --- a/app/Admin/Common/CustomFileController.php +++ b/app/Admin/Common/CustomFileController.php @@ -97,4 +97,19 @@ class CustomFileController ? ['status' => true , 'msg' => '文件上传成功', 'path' => $path, 'url' => $disk->url($path)] : ['status' => false , 'msg' => '文件上传失败']; } + + /** + * 删除文件 + * @param $filePath 文件路径 + */ + public function autoDeleteFile($file) + { + $disk = $this->disk('oss'); + + $result = $disk->delete($file); + + return $result + ? ['status' => true , 'msg' => '文件删除成功', 'path' => $file,'result' =>$result] + : ['status' => false , 'msg' => '文件删除失败','result' =>$result]; + } } \ No newline at end of file diff --git a/app/Admin/Forms/v3/ShareCardCreateForm.php b/app/Admin/Forms/v3/ShareCardCreateForm.php index 9188845..b85a5d0 100644 --- a/app/Admin/Forms/v3/ShareCardCreateForm.php +++ b/app/Admin/Forms/v3/ShareCardCreateForm.php @@ -20,11 +20,24 @@ class ShareCardCreateForm extends Form public function handle(array $input) { $list = Redis::hgetall(RedisKey::PROGRAM_SHARE_CARD); + $id = count($list) + 1; + if(key_exists($id,$list)){ + $rand = []; + for($i = 1; $i <= $id; $i++){ + $rand[] = $i; + } + $keyExist = array_keys($list); + $vacant = array_diff($rand,$keyExist); + $id = array_shift($vacant) ?? time(); + } + $ossImageDir = config('filesystems.disks.oss.img_host'); + $data = [ 'id' => $id, 'title' => $input['title'], - 'image' => $input['image'] + 'image' => $ossImageDir.'/'.$input['image'], + 'relative_path' => $input['image'], ]; $data = json_encode($data); @@ -33,7 +46,7 @@ class ShareCardCreateForm extends Form if($res){ return $this->success('添加成功','/share_card_setting'); }else{ - return $this->error('添加失败'); + return $this->error('添加失败或被替换'); } } @@ -45,7 +58,7 @@ class ShareCardCreateForm extends Form $this->display('setting' , ' ')->value('小程序分享卡片设置'); $this->text('title','标题')->required(); - $this->image('image','图片')->required()->autoUpload()->saveFullUrl()->width(3); + $this->image('image','图片')->required()->autoUpload()->width(3); } /** diff --git a/app/Admin/Forms/v3/ShareCardEditForm.php b/app/Admin/Forms/v3/ShareCardEditForm.php index 0fb9dac..0800a06 100644 --- a/app/Admin/Forms/v3/ShareCardEditForm.php +++ b/app/Admin/Forms/v3/ShareCardEditForm.php @@ -22,10 +22,12 @@ class ShareCardEditForm extends Form implements LazyRenderable public function handle(array $input) { $id = $input['id']; + $ossImageDir = config('filesystems.disks.oss.img_host'); $data = [ 'id' => $id, 'title' => $input['title'], - 'image' => $input['image'] + 'image' => $ossImageDir.'/'.$input['image'], + 'relative_path' => $input['image'], ]; $data = json_encode($data); @@ -52,8 +54,7 @@ class ShareCardEditForm extends Form implements LazyRenderable $this->image('image','图片')->required()->autoUpload() ->customFormat(function() use($image){ return [$image]; - }) - ->saveFullUrl()->width(3); + })->width(3); } /**