Merge branch 'feature/follow' into develop

This commit is contained in:
2025-03-26 11:48:57 +08:00
2 changed files with 65 additions and 28 deletions
+63 -28
View File
@@ -66,6 +66,41 @@ class CustomerController
} }
/**
* 待跟进客户列表
* @param Request $request
* @return \support\Response
*/
public function waitFollow(Request $request)
{
$userId = $request->user['id'];
$filter = Util::getParam($request, 'filter');
$page = $request->input('page', 1);
$perPage = $request->input('per_page', 10);
$where = [
['user_id', '=', $userId],
['follow_next', '<>', 0],
];
if($filter == 0){
$where[] = ['follow_next', '<=', time() + 3600 * 24];
}elseif($filter == 1){
$where[] = ['follow_next', '<=', time() + 3600 * 24*3];
}elseif($filter == 2){
$where[] = ['follow_next', '<=', time() + 3600 * 24*7];
}
$customer = Customer::where($where)
->whereNotNull('follow_next')
->orderBy('follow_next')
->paginate($perPage, ['*'], 'page', $page);
foreach ($customer as &$item) {
$item['follow_remaining'] = $item->follow_next-time();
$item['follow_next'] = date('Y-m-d H:i:s',$item->follow_next);
}
return Util::page($customer);
}
/** /**
* 客户列表 * 客户列表
* @param Request $request * @param Request $request
@@ -76,9 +111,9 @@ class CustomerController
$page = $request->input('page', 1); $page = $request->input('page', 1);
$perPage = $request->input('per_page', 10); $perPage = $request->input('per_page', 10);
$follow = $request->input('follow',''); //跟进状态 $follow = $request->input('follow', ''); //跟进状态
$keyword = $request->input('keyword',''); //follow_last $keyword = $request->input('keyword', ''); //follow_last
$follow_last = $request->input('follow_last',''); //最后跟进:1:当天跟进客户,2:近三天跟进客户,3:近七天跟进客户 $follow_last = $request->input('follow_last', ''); //最后跟进:1:当天跟进客户,2:近三天跟进客户,3:近七天跟进客户
$where = []; $where = [];
@@ -86,30 +121,29 @@ class CustomerController
if (Util::isEmpty($userId)) { if (Util::isEmpty($userId)) {
return Util::fail(['user_id' => $userId], trans('user_none')); return Util::fail(['user_id' => $userId], trans('user_none'));
} }
$where[] =['user_id',$userId] ; $where[] = ['user_id', $userId];
//验证权限 //验证权限
// if ($request->user['role'] != 1) { // if ($request->user['role'] != 1) {
// $where[] =['user_id',$userId] ; // $where[] =['user_id',$userId] ;
// } // }
$grade = []; $grade = [];
if (!Util::isEmpty($follow) && $follow == 0) { if (!Util::isEmpty($follow) && $follow == 0) {
$where[] = ['grade','<=', 2]; $where[] = ['grade', '<=', 2];
} elseif (!Util::isEmpty($follow) && $follow == 1) { } elseif (!Util::isEmpty($follow) && $follow == 1) {
$grade = [3, 4]; $grade = [3, 4];
} elseif (!Util::isEmpty($follow) && $follow == 2) { } elseif (!Util::isEmpty($follow) && $follow == 2) {
$where[] = ['grade','=', 5]; $where[] = ['grade', '=', 5];
} }
if (!Util::isEmpty($follow_last) && $follow_last == 0) { if (!Util::isEmpty($follow_last) && $follow_last == 0) {
$where[] = ['follow_last','>', strtotime('-1 day')]; $where[] = ['follow_last', '>', strtotime('-1 day')];
}elseif (!Util::isEmpty($follow_last) && $follow_last == 1) { } elseif (!Util::isEmpty($follow_last) && $follow_last == 1) {
$where[] = ['follow_last','>', strtotime('-3 day')]; $where[] = ['follow_last', '>', strtotime('-3 day')];
}elseif (!Util::isEmpty($follow_last) && $follow_last == 2) { } elseif (!Util::isEmpty($follow_last) && $follow_last == 2) {
$where[] = ['follow_last','>', strtotime('-7 day')]; $where[] = ['follow_last', '>', strtotime('-7 day')];
} }
// 执行分页查询 // 执行分页查询
$query = Customer::where($where) $query = Customer::where($where)
->orderBy('id', 'desc'); ->orderBy('id', 'desc');
@@ -184,7 +218,7 @@ class CustomerController
$email = Util::getParam($request, 'email'); $email = Util::getParam($request, 'email');
$phone = Util::getParam($request, 'phone'); $phone = Util::getParam($request, 'phone');
if (Util::isEmpty($contacts) && Util::isEmpty($email) && Util::isEmpty($phone)) { if (Util::isEmpty($contacts) && Util::isEmpty($email) && Util::isEmpty($phone)) {
return Util::fail([], trans('contacts_not_null')); return Util::fail([], trans('contacts_not_null'));
} }
$data = [ $data = [
@@ -264,10 +298,11 @@ class CustomerController
$data = [ $data = [
'follow_next' => Util::getParam($request, 'follow_next', 0), 'follow_next' => Util::getParam($request, 'follow_next', 0),
'follow_remark' => Util::getParam($request, 'follow_remark', 0), 'follow_remark' => Util::getParam($request, 'follow_remark', 0),
'warn' => 0,
]; ];
$res = Customer::where('id', $id) $res = Customer::where('id', $id)
->update($data); ->update($data);
if ($res) { if ($res) {
return Util::success($res, trans('save_success')); return Util::success($res, trans('save_success'));
@@ -306,19 +341,19 @@ class CustomerController
} }
$userId = $request->user['id']; $userId = $request->user['id'];
$created_at = $request->user['created_at']; $created_at = $request->user['created_at'];
$day = ceil((time()-$created_at+1)/60/60/24); $day = ceil((time() - $created_at + 1) / 60 / 60 / 24);
$where[] = ['user_id', '=', $userId]; $where[] = ['user_id', '=', $userId];
$start = strtotime($created.'-01'); $start = strtotime($created . '-01');
$year = date('Y', $start); $year = date('Y', $start);
$month = date('n',$start); //获取月份 $month = date('n', $start); //获取月份
$end = mktime(00, 00, 00, $month+1, 1, $year); $end = mktime(00, 00, 00, $month + 1, 1, $year);
$where[] = ['created_at', '>=', $start]; $where[] = ['created_at', '>=', $start];
$where[] = ['created_at', '<', $end]; $where[] = ['created_at', '<', $end];
$customer = Customer::where($where)->count(); $customer = Customer::where($where)->count();
//初步接触 //初步接触
$whereGrade = $where; $whereGrade = $where;
$whereGrade[] = ['grade','<=', 2]; $whereGrade[] = ['grade', '<=', 2];
$customerInit = Customer::where($whereGrade)->count(); $customerInit = Customer::where($whereGrade)->count();
//跟进中 //跟进中
@@ -326,7 +361,7 @@ class CustomerController
//已成交 //已成交
$whereGrade = $where; $whereGrade = $where;
$whereGrade[] = ['grade','=', 5]; $whereGrade[] = ['grade', '=', 5];
$customerDeal = Customer::where($whereGrade)->count(); $customerDeal = Customer::where($whereGrade)->count();
//拜访数 //拜访数
@@ -340,13 +375,13 @@ class CustomerController
$follow = Follow::where($whereVisit)->distinct('customer_id')->count(); $follow = Follow::where($whereVisit)->distinct('customer_id')->count();
$res = [ $res = [
'customer'=>$customer, //客户数 'customer' => $customer, //客户数
'visit'=>$visit, //拜访 'visit' => $visit, //拜访
'follow'=>$follow, //跟进 'follow' => $follow, //跟进
'day'=>$day, //注册天数 'day' => $day, //注册天数
'customer_init'=>$customerInit, //初步接触 'customer_init' => $customerInit, //初步接触
'customero_fllow'=>$customeroFllow, //跟进中 'customero_fllow' => $customeroFllow, //跟进中
'customer_deal'=>$customerDeal, //已成交 'customer_deal' => $customerDeal, //已成交
]; ];
if ($res) { if ($res) {
return Util::success($res, trans('success')); return Util::success($res, trans('success'));
+2
View File
@@ -146,6 +146,8 @@ class FollowController
$customer = Customer::find($customer_id); $customer = Customer::find($customer_id);
$customer->follow_last = strtotime($res->created_at); $customer->follow_last = strtotime($res->created_at);
$customer->follow_next = null;
$customer->warn = 0;
$customer->save(); $customer->save();
if ($res) { if ($res) {