|
|
@@ -5,6 +5,7 @@ namespace App\Service;
|
|
|
use App\Model\Construction;
|
|
|
use App\Model\ConstructionInfo;
|
|
|
use App\Model\Customer;
|
|
|
+use App\Model\CustomerAccessFlat;
|
|
|
use App\Model\CustomerInfo;
|
|
|
use App\Model\Depart;
|
|
|
use App\Model\Employee;
|
|
|
@@ -147,6 +148,8 @@ class DeleteService extends Service
|
|
|
if(! is_array($data['id'])) $data_id = [$data['id']];
|
|
|
else $data_id = $data['id'];
|
|
|
|
|
|
+ $top_depart_id_map = Customer::whereIn('id', $data_id)->pluck('top_depart_id','id')->all();
|
|
|
+
|
|
|
$time = time();
|
|
|
if(! empty($data['man'])){
|
|
|
$insert = [];
|
|
|
@@ -156,21 +159,23 @@ class DeleteService extends Service
|
|
|
->whereIn('customer_id',$data_id)
|
|
|
->where('type',CustomerInfo::type_three)
|
|
|
->where('data_id',$user['id'])
|
|
|
- ->select('customer_id')->get()->toArray();
|
|
|
- $xt = array_column($xt,'customer_id');
|
|
|
+ ->pluck('customer_id')->all();
|
|
|
|
|
|
- $customer_map = Customer::whereIn('id', $data_id)
|
|
|
- ->pluck('title','id')
|
|
|
- ->toArray();
|
|
|
$emp_map = Employee::whereIn('id',$data['man'])
|
|
|
->pluck('emp_name','id')
|
|
|
->toArray();
|
|
|
+ //获取删除id
|
|
|
+ $source_id = CustomerInfo::where('del_time',0)
|
|
|
+ ->whereIn('customer_id',$data_id)
|
|
|
+ ->where('type',CustomerInfo::type_two)
|
|
|
+ ->pluck('id')
|
|
|
+ ->all();
|
|
|
//负责人清除
|
|
|
CustomerInfo::where('del_time',0)
|
|
|
->whereIn('customer_id',$data_id)
|
|
|
->where('type', CustomerInfo::type_two)
|
|
|
->update(['del_time' => $time]);
|
|
|
- $send_data = [];
|
|
|
+ $send_data = $added_xt = [];
|
|
|
foreach ($data['man'] as $value){
|
|
|
$emp_tmp = $emp_map[$value] ?? "";
|
|
|
if($emp_tmp) $emp_tmp .= "(负责人)";
|
|
|
@@ -182,18 +187,19 @@ class DeleteService extends Service
|
|
|
'type' => CustomerInfo::type_two,
|
|
|
'crt_time' => $time,
|
|
|
];
|
|
|
- if(! in_array($c, $xt)){
|
|
|
- //协同人累加
|
|
|
+
|
|
|
+ if(!in_array($c, $xt) && !in_array($c, $added_xt)){
|
|
|
+ // 协同人累加
|
|
|
$insert[] = [
|
|
|
'customer_id' => $c,
|
|
|
'data_id' => $user['id'],
|
|
|
'type' => CustomerInfo::type_three,
|
|
|
'crt_time' => $time,
|
|
|
];
|
|
|
+ // 记录一下,防止下一个负责人循环时再次进入
|
|
|
+ $added_xt[] = $c;
|
|
|
}
|
|
|
|
|
|
-// $customer_tmp = $customer_map[$c] ?? "";
|
|
|
-
|
|
|
$send_data[] = [
|
|
|
'employee_id' => $value,
|
|
|
'type' => 2,
|
|
|
@@ -211,7 +217,28 @@ class DeleteService extends Service
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- CustomerInfo::insert($insert);
|
|
|
+ if(! empty($insert)){
|
|
|
+ CustomerInfo::insert($insert);
|
|
|
+
|
|
|
+ // 新增
|
|
|
+ $insertArray = CustomerInfo::whereIn('customer_id', $data_id)
|
|
|
+ ->where('crt_time', $time)
|
|
|
+ ->whereIn('type', [CustomerInfo::type_two,CustomerInfo::type_three])
|
|
|
+ ->select('id as source_id',DB::raw(CustomerAccessFlat::source_type_one .' as source_type'), 'customer_id','data_id as target_id',DB::raw(CustomerAccessFlat::source_type_one .' as type'))
|
|
|
+ ->get()
|
|
|
+ ->toArray();
|
|
|
+ foreach ($insertArray as $key => $value){
|
|
|
+ $insertArray[$key]['top_depart_id'] = $top_depart_id_map[$value['customer_id']];
|
|
|
+ }
|
|
|
+
|
|
|
+ if(! empty($insertArray)) CustomerAccessFlat::insert($insertArray);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(! empty($source_id)) {
|
|
|
+ CustomerAccessFlat::where('source_type', CustomerAccessFlat::source_type_one)
|
|
|
+ ->whereIn('source_id', $source_id)
|
|
|
+ ->delete();
|
|
|
+ }
|
|
|
|
|
|
if(! is_array($data['id'])){
|
|
|
$title = Customer::where('id',$data['id'])->value('title') ?? "";
|
|
|
@@ -237,6 +264,18 @@ class DeleteService extends Service
|
|
|
(new OaService())->sendWxOaCheckMessage($send_data);
|
|
|
}
|
|
|
|
|
|
+ $see_id = SeeRange::where('del_time',0)
|
|
|
+ ->whereIn('data_id', $data_id)
|
|
|
+ ->where('data_type',SeeRange::type_one)
|
|
|
+ ->where('type',SeeRange::data_three)
|
|
|
+ ->pluck('id')
|
|
|
+ ->all();
|
|
|
+ if(! empty($see_id)) {
|
|
|
+ CustomerAccessFlat::where('source_type', CustomerAccessFlat::source_type_two)
|
|
|
+ ->whereIn('source_id', $see_id)
|
|
|
+ ->delete();
|
|
|
+ }
|
|
|
+
|
|
|
//客户被指派的门店 先清空
|
|
|
SeeRange::where('del_time',0)
|
|
|
->whereIn('data_id', $data_id)
|
|
|
@@ -265,7 +304,23 @@ class DeleteService extends Service
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
- if(! empty($insert)) SeeRange::insert($insert);
|
|
|
+ if(! empty($insert)) {
|
|
|
+ SeeRange::insert($insert);
|
|
|
+
|
|
|
+ // 新增
|
|
|
+ $insertArray2 = SeeRange::whereIn('data_id', $data_id)
|
|
|
+ ->where('crt_time', $time)
|
|
|
+ ->where('type', SeeRange::data_three)
|
|
|
+ ->where('data_type', SeeRange::type_one)
|
|
|
+ ->select('id as source_id',DB::raw(CustomerAccessFlat::source_type_two .' as source_type'), 'data_id as customer_id','param_id as target_id',DB::raw(CustomerAccessFlat::type_three .' as type'))
|
|
|
+ ->get()
|
|
|
+ ->toArray();
|
|
|
+ foreach ($insertArray2 as $key => $value){
|
|
|
+ $insertArray2[$key]['top_depart_id'] = $top_depart_id_map[$value['customer_id']];
|
|
|
+ }
|
|
|
+
|
|
|
+ if(! empty($insertArray2)) CustomerAccessFlat::insert($insertArray2);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return [true, ''];
|
|
|
@@ -399,6 +454,21 @@ class DeleteService extends Service
|
|
|
if(! is_array($data['id'])) $data_id = [$data['id']];
|
|
|
else $data_id = $data['id'];
|
|
|
|
|
|
+ $top_depart_id_map = Customer::whereIn('id', $data_id)->pluck('top_depart_id','id')->all();
|
|
|
+
|
|
|
+ //获取删除id
|
|
|
+ $source_id = CustomerInfo::where('del_time',0)
|
|
|
+ ->whereIn('customer_id',$data_id)
|
|
|
+ ->where('type',CustomerInfo::type_two)
|
|
|
+ ->pluck('id')
|
|
|
+ ->all();
|
|
|
+
|
|
|
+ if(! empty($source_id)) {
|
|
|
+ CustomerAccessFlat::where('source_type', CustomerAccessFlat::source_type_one)
|
|
|
+ ->whereIn('source_id', $source_id)
|
|
|
+ ->delete();
|
|
|
+ }
|
|
|
+
|
|
|
CustomerInfo::where('del_time',0)
|
|
|
->whereIn('customer_id', $data_id)
|
|
|
->where('type', CustomerInfo::type_two)
|
|
|
@@ -415,7 +485,23 @@ class DeleteService extends Service
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
- CustomerInfo::insert($insert);
|
|
|
+
|
|
|
+ if(! empty($insert)){
|
|
|
+ CustomerInfo::insert($insert);
|
|
|
+
|
|
|
+ // 新增
|
|
|
+ $insertArray = CustomerInfo::whereIn('customer_id', $data_id)
|
|
|
+ ->where('crt_time', $time)
|
|
|
+ ->whereIn('type', [CustomerInfo::type_two])
|
|
|
+ ->select('id as source_id',DB::raw(CustomerAccessFlat::source_type_one .' as source_type'), 'customer_id','data_id as target_id',DB::raw(CustomerAccessFlat::type_one .' as type'))
|
|
|
+ ->get()
|
|
|
+ ->toArray();
|
|
|
+ foreach ($insertArray as $key => $value){
|
|
|
+ $insertArray[$key]['top_depart_id'] = $top_depart_id_map[$value['customer_id']];
|
|
|
+ }
|
|
|
+
|
|
|
+ if(! empty($insertArray)) CustomerAccessFlat::insert($insertArray);
|
|
|
+ }
|
|
|
|
|
|
if(! is_array($data['id'])){
|
|
|
$title = Customer::where('id',$data['id'])->value('title') ?? "";
|
|
|
@@ -439,6 +525,18 @@ class DeleteService extends Service
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $see_id = SeeRange::where('del_time',0)
|
|
|
+ ->whereIn('data_id', $data_id)
|
|
|
+ ->where('data_type',SeeRange::type_one)
|
|
|
+ ->where('type',SeeRange::data_three)
|
|
|
+ ->pluck('id')
|
|
|
+ ->all();
|
|
|
+ if(! empty($see_id)) {
|
|
|
+ CustomerAccessFlat::where('source_type', CustomerAccessFlat::source_type_two)
|
|
|
+ ->whereIn('source_id', $see_id)
|
|
|
+ ->delete();
|
|
|
+ }
|
|
|
+
|
|
|
//客户被移交的门店 先清空
|
|
|
SeeRange::where('del_time',0)
|
|
|
->whereIn('data_id', $data_id)
|
|
|
@@ -467,7 +565,23 @@ class DeleteService extends Service
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
- if(! empty($insert)) SeeRange::insert($insert);
|
|
|
+ if(! empty($insert)) {
|
|
|
+ SeeRange::insert($insert);
|
|
|
+
|
|
|
+ // 新增
|
|
|
+ $insertArray2 = SeeRange::whereIn('data_id', $data_id)
|
|
|
+ ->where('crt_time', $time)
|
|
|
+ ->where('type', SeeRange::data_three)
|
|
|
+ ->where('data_type', SeeRange::type_one)
|
|
|
+ ->select('id as source_id',DB::raw(CustomerAccessFlat::source_type_two .' as source_type'), 'data_id as customer_id','param_id as target_id',DB::raw(CustomerAccessFlat::type_three .' as type'))
|
|
|
+ ->get()
|
|
|
+ ->toArray();
|
|
|
+ foreach ($insertArray2 as $key => $value){
|
|
|
+ $insertArray2[$key]['top_depart_id'] = $top_depart_id_map[$value['customer_id']];
|
|
|
+ }
|
|
|
+
|
|
|
+ if(! empty($insertArray2)) CustomerAccessFlat::insert($insertArray2);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return [true, ''];
|