From 61bf0fadf3ac1b56e4652e6f583d22f80b13ef70 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Thu, 21 Aug 2025 17:25:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=AB=AF=E5=9B=9E=E6=94=B6?= =?UTF-8?q?=E7=AB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CustomerController.php | 43 ++++++++++++++----- app/crmAdmin/service/CustomerService.php | 16 +++++-- config/route.php | 1 + 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/app/crmAdmin/controller/CustomerController.php b/app/crmAdmin/controller/CustomerController.php index 900046d..535726f 100644 --- a/app/crmAdmin/controller/CustomerController.php +++ b/app/crmAdmin/controller/CustomerController.php @@ -4,6 +4,7 @@ namespace app\crmAdmin\controller; use app\common\model\Corp; use app\crm\model\Customer; +use app\crm\utils\Util; use app\crmAdmin\service\CustomerService; use support\Request; @@ -148,19 +149,18 @@ class CustomerController extends BaseController } $customer_id = explode(',', $param['customer_id']); - $customer = Customer::whereIn('id',$customer_id)->withTrashed()->first(); - if(empty($customer)){ + $query = Customer::whereIn('id',$customer_id)->withTrashed(); + if(!$query->exists()){ return $this->error( trans('fail')); } - if($param['scene'] == 'list'){ //管理端客户列表移除 - $customer->status = 4; - - }else{ //公海软删除 - $customer->status = 3; - + $scene = $param['scene'] ?? ''; + if ($scene === 'list') { //管理端客户列表移除 + $res = $query->update(['status' => 4, 'deleted_at' => time()]); + } elseif ($scene === 'force') { //强删除 + $res = $query->forceDelete(); + } else { //公海软删除 + $res = $query->update(['status' => 3, 'deleted_at' => time()]); } - $res = $customer->save(); - $customer->delete(); return $this->success($res); } catch (\Throwable $th) { @@ -168,6 +168,29 @@ class CustomerController extends BaseController } } + + /** + * 客户恢复 + * @param Request $request + * @return \support\Response + */ + public function restore(Request $request) + { + $id = $request->input('id', ''); + if (Util::isEmpty($id)) { + return $this->error(trans('id_empty')); + } + $id = explode(',', $id); + $query = Customer::whereIn('id', $id); + //$res = $query->restore(); + $res = $query->update(['status' => 1, 'user_id' => 0]); + if($res){ + return $this->success($res, trans('success')); + }else{ + return $this->error(trans('fail')); + } + } + /** * 客户详情 * @param Request $request diff --git a/app/crmAdmin/service/CustomerService.php b/app/crmAdmin/service/CustomerService.php index 038a5e0..546bc7c 100644 --- a/app/crmAdmin/service/CustomerService.php +++ b/app/crmAdmin/service/CustomerService.php @@ -51,12 +51,14 @@ class CustomerService $follow_last = $params['follow_last'] ?? ''; $tagId = $params['tag_id'] ?? []; $user_id = $params['user_id'] ?? ''; - $seas = $params['seas'] ?? ''; + $seas = $params['seas'] ?? ''; //recyclea:管理端回收站,audit:待审核列表,seas:公海 $scene = $params['scene'] ?? ''; $where = []; if ($scene == 'audit') { $where[] = ['status', '=', 2]; + } elseif ($scene == 'recyclea') { + $where[] = ['status', '>', 2]; } else { $where[] = ['status', '=', 1]; } @@ -121,8 +123,8 @@ class CustomerService if ($recycle == 'recycle' || $scene == 'recycle' || $scene == 'audit') { $query->onlyTrashed(); } - if ($seas == 'seas' || $scene == 'seas') { - $query->withTrashed(); + if ($seas == 'seas' || $scene == 'recyclea') { + $query = $query->withTrashed(); } if (!$export) { @@ -153,6 +155,14 @@ class CustomerService } $item['audit'] = $audit; } + if ($scene == 'recyclea' && $item['status'] == 3) { //回收站删除来源 + $item['del_source'] = '公海'; + }elseif ($scene == 'recyclea' && $item['status'] == 4) { + $item['del_source'] = '管理端'; + }elseif ($scene == 'recyclea' && $item['status'] == 5) { + $source = (!empty($item['user_id'])) ? (':' . User::where('id',$item['user_id'])->value('name')) : ''; + $item['del_source'] = '业务员' . $source; + } } } unset($item); diff --git a/config/route.php b/config/route.php index 2abd88a..ec46cc4 100644 --- a/config/route.php +++ b/config/route.php @@ -157,6 +157,7 @@ Route::group('/admin', function () { Route::any('/transfer', [app\crmAdmin\controller\CustomerController::class, 'transfer']); Route::any('/detail', [app\crmAdmin\controller\CustomerController::class, 'detail']); Route::any('/delete', [app\crmAdmin\controller\CustomerController::class, 'delete']); + Route::any('/restore', [app\crmAdmin\controller\CustomerController::class, 'restore']); //恢复客户 Route::any('/cede', [app\crm\controller\CustomerController::class, 'cede']); Route::any('/follow', [app\crmAdmin\controller\CustomerController::class, 'follow']); Route::any('/allocation', [app\crmAdmin\controller\CustomerController::class, 'allocation']);