diff --git a/api/controllers/plan/Temp.php b/api/controllers/plan/Temp.php
index 9e8fb04e..3589a653 100644
--- a/api/controllers/plan/Temp.php
+++ b/api/controllers/plan/Temp.php
@@ -16,6 +16,58 @@ class Temp extends HD_Controller
$this->log_file = 'temp.log';
}
+ /**
+ * Notes:更新战败客户信息
+ * Created on: 2022/3/09 11:58
+ * Created by: dengbw
+ * https://liche-api-dev.xiaoyu.com/plan/temp/receiver_customer_defeat
+ * https://api.liche.cn/plan/temp/receiver_customer_defeat
+ */
+ public function receiver_customer_defeat()
+ {
+ $this->load->model('receiver/receiver_customers_model', 'mdCustomers');
+ $param = $this->input->get();
+ $param['page'] = intval($param['page']);
+ $param['size'] = intval($param['size']);
+ !$param['size'] && $param['size'] = 50;
+ !$param['page'] && $param['page'] = 1;
+ $counts = intval($param['counts']);
+ ob_start(); //打开缓冲区
+ $where = ["status=3 OR defeat_time<>0" => null];
+ $res = $this->mdCustomers->select($where, 'id ASC', $param['page'], $param['size'], 'id,jsondata,status,defeat_time');
+ if (!$res) {
+ echo '
本次更新战败客户信息完成了:';
+ echo '
成功更新 ' . $counts . ' 条';
+ echo '
点击将再次更新战败客户信息>>>';
+ exit;
+ }
+ $log = array();
+ foreach ($res as $key => $value) {
+ $upDate = [];
+ if ($value['status'] == 3) {
+ $jsondata = $value['jsondata'] ? json_decode($value['jsondata'], true) : [];
+ if ($jsondata['defeat']['pass_time']) {
+ $upDate = ['def_time' => $jsondata['defeat']['pass_time']];//更新战败时间
+ }
+ } else if ($value['defeat_time'] > 0) {//申请中
+ $upDate = ['if_defeat' => 1];
+ } else if ($value['defeat_time'] == -1) {//再战
+ $upDate = ['if_defeat' => 2];
+ }
+ if ($upDate) {
+ $this->mdCustomers->update($upDate, ['id' => $value['id']]);
+ $log[] = ['id' => $value['id'], 'upDate' => $upDate];
+ $counts++;
+ }
+ }
+ echo '
成功更新:';
+ $log && print_r($log);
+ echo '
数据库获取:';
+ echo json_encode($res, JSON_UNESCAPED_UNICODE);
+ header('refresh:3;url=/plan/temp/receiver_customer_defeat?counts=' . $counts . '&size=' . $param['size'] . '&page=' . ($param['page'] + 1));
+ ob_end_flush();//输出全部内容到浏览器
+ }
+
/**
* Notes:更新车辆调拨状态
* Created on: 2022/2/28 17:15
diff --git a/api/controllers/wxapp/licheb/Customers.php b/api/controllers/wxapp/licheb/Customers.php
index 37d28b36..94804b72 100644
--- a/api/controllers/wxapp/licheb/Customers.php
+++ b/api/controllers/wxapp/licheb/Customers.php
@@ -319,9 +319,9 @@ class Customers extends Wxapp
$uid = $this->session['uid'];
$uname = $this->session['uname'];
$this->load->library('receiver/customers_entity');
- $this->customers_entity->add_log($id, $uid, $uname, "创建客户");
+ $this->customers_entity->add_log($id, $uid, $uname, "创建客户档案", 3);
if ($status == 1) {//到店客户加日志
- $this->customers_entity->add_log($id, $uid, $uname, "到店+1");
+ $this->customers_entity->add_log($id, $uid, $uname, "客户到店", 4);
}
throw new Exception('创建成功', API_CODE_SUCCESS);
} else {
@@ -333,7 +333,7 @@ class Customers extends Wxapp
protected function put()
{
$uid = $this->session['uid'];
-
+ $uname = $this->session['uname'];
$id = $this->input_param('id');
$status = $this->input_param('status');
$t_num = $this->input_param('t_num');
@@ -345,7 +345,6 @@ class Customers extends Wxapp
if (!$row) {
throw new Exception('数据不存在', ERR_PARAMS_ERROR);
}
- $log = '';
$up_data = [];
//变成到店
if (!$row['admin_id'] && $status == 1) {
@@ -354,22 +353,22 @@ class Customers extends Wxapp
if ($row['admin_id'] != $uid) {
throw new Exception('无法操作该客户', ERR_PARAMS_ERROR);
}
+ $d_log = $a_log = '';
if ($status == 3) {
if (!$defeat_reason) {
throw new Exception('请输入战败理由', ERR_PARAMS_ERROR);
}
- $defeat_time = date("Y-m-d H:i:s");
$jsondata = $row['jsondata'] ? json_decode($row['jsondata'], true) : array();
- $jsondata['defeat']['time'] = $defeat_time;
+ $jsondata['defeat']['time'] = date("Y-m-d H:i:s");
$jsondata['defeat']['reason'] = $defeat_reason;
- $up_data['defeat_time'] = strtotime($defeat_time);
+ $up_data['if_defeat'] = 1;
$up_data['jsondata'] = json_encode($jsondata, JSON_UNESCAPED_UNICODE);
- $log = '申请战败:' . $defeat_reason;
+ $d_log = '申请战败:' . $defeat_reason;
} else {
if (strlen($status)) { //变更状态
$up_data['status'] = $status;
- $status_name = $this->customers_model->get_status();
- $log = '状态变更为' . $status_name[$status];
+ //$status_name = $this->customers_model->get_status();
+ //$log = '状态变更为' . $status_name[$status];
}
}
strlen($is_top) && $up_data['is_top'] = $is_top;
@@ -377,23 +376,33 @@ class Customers extends Wxapp
$a_num && $up_data['a_num = a_num+1'] = null;
$result = true;
if ($up_data) {
- $status == 1 && $up_data['cont_time'] = date('Y-m-d H:i:s'); //修改到店状态修改最后联系时间
- if (($status == 1 || $a_num) && $row['dt_time'] == '0000-00-00 00:00:00') {//首次到店时间
- $up_data['dt_time'] = date('Y-m-d H:i:s');
+ $a_log = '';//到店
+ if ($status == 1 || $a_num) {
+ $a_log = '客户到店';
+ $up_data['cont_time'] = date('Y-m-d H:i:s'); //修改到店状态修改最后联系时间
+ $status != $row['status'] && $a_log .= ',更改状态';
+ if ($row['dt_time'] == '0000-00-00 00:00:00') {//首次到店时间
+ $up_data['dt_time'] = date('Y-m-d H:i:s');
+ $a_log .= ',更新首次到店时间';
+ }
}
$result = $this->customers_model->update($up_data, ['id' => $id]);
if ($result) { //添加日志
$this->load->library('receiver/customers_entity');
- if ($t_num) {
- $msg = '试驾+1';
- $log = $log ? $log . ',' . $msg : $msg;
+ if ($a_log) {//到店
+ $this->customers_entity->add_log($id, $uid, $uname, $a_log, 4);
}
- if ($a_num) {
- $msg = '到店+1';
- $log = $log ? $log . ',' . $msg : $msg;
+ if ($t_num) {//试驾
+ $this->customers_entity->add_log($id, $uid, $uname, '客户试驾', 5);
+ }
+ if ($d_log) {//战败申请类型小记
+ $this->customers_entity->add_log($id, $uid, $uname, $d_log, 0);
+ }
+ if ($status == 2) {//变成订单客户
+ $this->customers_entity->add_log($id, $uid, $uname, '生成订单', 6);
+ //更新客户已回访
+ $this->customers_entity->add_log_visit($id, $uid, $uname, '', 0, 1);
}
- $visit = $status == 2 ? 1 : 0;//变成订单客户,更新客户已回访
- $this->customers_entity->add_log_visit($id, $uid, $this->session['uname'], $log, 0, $visit);
}
}
if ($result) {
@@ -560,7 +569,7 @@ class Customers extends Wxapp
$count = $this->customers_model->count($where);
$lists = [];
if ($count) {
- $fileds = 'id,name,admin_id,mobile,level,car_json,is_top,cf_title,brand_id,s_id,cont_time,c_time,defeat_time
+ $fileds = 'id,name,admin_id,mobile,level,car_json,is_top,cf_title,brand_id,s_id,cont_time,c_time,if_defeat
,of_id,of2_id,unionid';
$rows = $this->customers_model->select($where, $orderby, $page, $size, $fileds);
//获取管理员
@@ -598,9 +607,9 @@ class Customers extends Wxapp
$val['cont_time'] != '0000-00-00 00:00:00' && $other_data['上次联系'] = date('Y-m-d', strtotime($val['cont_time']));
$tags = [$val['level'] . '级用户'];
$defeat = '';
- if ($val['defeat_time'] > 0) {
+ if ($val['if_defeat'] == 1) {
$defeat = '战败申请中';
- } else if ($val['defeat_time'] == -1) {
+ } else if ($val['if_defeat'] == 2) {
$defeat = '再战';
}
$lists[] = [
@@ -684,7 +693,7 @@ class Customers extends Wxapp
$lists = [];
if ($count) {
$fileds = 'a.id,a.name,a.admin_id,a.mobile,a.level,a.car_json,a.is_top,a.cf_title,a.brand_id,a.s_id
- ,a.cont_time,a.c_time,a.defeat_time';
+ ,a.cont_time,a.c_time,a.if_defeat';
$rows = $this->mdCustomersVisit->select_visit($where, 'a.id desc', $page, $size, $fileds);
//获取管理员
$admin_arr = array_unique(array_column($rows, 'admin_id'));
@@ -715,9 +724,9 @@ class Customers extends Wxapp
$val['cont_time'] != '0000-00-00 00:00:00' && $other_data['上次联系'] = date('Y-m-d', strtotime($val['cont_time']));
$tags = [$val['level'] . '级用户'];
$defeat = '';
- if ($val['defeat_time'] > 0) {
+ if ($val['if_defeat'] == 1) {
$defeat = '战败申请中';
- } else if ($val['defeat_time'] == -1) {
+ } else if ($val['if_defeat'] == 2) {
$defeat = '再战';
}
$lists[] = [
@@ -758,7 +767,7 @@ class Customers extends Wxapp
!$page && $page = 1;
!$size && $size = 10;
$biz_id = $this->session['new_biz_id'] ? $this->session['new_biz_id'] : intval($this->session['biz_id']);
- $where = array('biz_id' => $biz_id, 'defeat_time >' => 0, 'status>' => -1);
+ $where = array('biz_id' => $biz_id, 'if_defeat' => 1, 'status>' => -1);
$count = $this->customers_model->count($where);
$lists = [];
if ($count) {
@@ -804,25 +813,33 @@ class Customers extends Wxapp
if (!$row) {
throw new Exception('用户不存在', ERR_PARAMS_ERROR);
}
- if (!$row['defeat_time']) {
+ if (!$row['if_defeat']) {
throw new Exception('未申请战败', ERR_PARAMS_ERROR);
}
$jsondata = $row['jsondata'] ? json_decode($row['jsondata'], true) : array();
if ($type == 1) {
- $log = '拒绝战败申请';
- $update['defeat_time'] = -1;//再战
+ $update['if_defeat'] = 2;//再战
} else {
- $jsondata['defeat']['pass_time'] = date("Y-m-d H:i:s");
+ $def_time = date("Y-m-d H:i:s");
+ $jsondata['defeat']['pass_time'] = $def_time;
$update['status'] = 3;
- $log = '通过战败申请';
- $update['defeat_time'] = 0;
+ $update['if_defeat'] = 0;
+ $update['def_time'] = $def_time;
}
$update['jsondata'] = json_encode($jsondata, JSON_UNESCAPED_UNICODE);
$ret = $this->customers_model->update($update, ['id' => $id]);
if ($ret) {
$this->load->library('receiver/customers_entity');
- $visit = $update['status'] == 3 ? 1 : 0;
- $this->customers_entity->add_log_visit($id, $this->session['uid'], $this->session['uname'], $log, 0, $visit);
+ $uid = $this->session['uid'];
+ $uname = $this->session['uname'];
+ if ($type == 1) {
+ $this->customers_entity->add_log($id, $uid, $uname, '拒绝战败申请', 0);
+ } else {
+ //战败
+ $this->customers_entity->add_log($id, $uid, $uname, '客户战败', 7);
+ //更新客户已回访
+ $this->customers_entity->add_log_visit($id, $uid, $uname, '', 0, 1);
+ }
throw new Exception('操作成功', API_CODE_SUCCESS);
}
throw new Exception('操作失败', ERR_PARAMS_ERROR);
diff --git a/api/controllers/wxapp/licheb/User.php b/api/controllers/wxapp/licheb/User.php
index 3994e20e..7a92ad79 100644
--- a/api/controllers/wxapp/licheb/User.php
+++ b/api/controllers/wxapp/licheb/User.php
@@ -315,7 +315,7 @@ class User extends Wxapp
$where['brand_id!='] = 3; //渠道经理过滤
}
$unuse_count = $this->customers_model->count($where);
- $defeat_count = $this->customers_model->count(array('biz_id' => $biz_id, 'defeat_time >' => 0, 'status>' => -1));
+ $defeat_count = $this->customers_model->count(array('biz_id' => $biz_id, 'if_defeat' => 1, 'status>' => -1));
$customer_op_list = [
['title' => '待分配客户(人)', 'icon' => 'icon-daifenpei', 'total' => $unuse_count, 'page' => '/pages/customer/allot/index'],
['title' => '待回访客户(人)', 'icon' => 'icon-statistics-custom-4', 'total' => $visit_count, 'page' => '/pages/customer/filterList/index?visit=1&title=待回访客户'],
diff --git a/common/libraries/receiver/Customers_entity.php b/common/libraries/receiver/Customers_entity.php
index ec7c8dfc..9364fce8 100644
--- a/common/libraries/receiver/Customers_entity.php
+++ b/common/libraries/receiver/Customers_entity.php
@@ -31,10 +31,11 @@ class Customers_entity
*/
public function add_log_visit($customer_id, $uid, $uname, $content, $type = '', $visit = 0, $imgs = [], $cf_platform = 'wxapp')
{
- if($content){
+ $result = '';
+ if ($content) {
$result = $this->add_log($customer_id, $uid, $uname, $content, $type, $cf_platform, $imgs);
}
- if ($visit && $result) {//更新客户已回访
+ if ($visit && ($result || !$content)) {//更新客户已回访
$this->ci->load->model('receiver/receiver_customers_visit_model', 'mdCustomersVisit');
$result = $this->ci->mdCustomersVisit->update(array('contact' => 2, 'status' => 2)
, array('c_id' => $customer_id, 'contact' => 1, 'status' => 1));
@@ -43,17 +44,29 @@ class Customers_entity
}
/**
- * 添加日志
- * @param $customer_id int 客户id
- * @param $uid int 操作用户id
- * @param $uname int 操作用户名
- * @param $content string 日志内容
- * @param $type int 操作类型 (0普通日志 1短信 2拨打电话)
- * @param $cf_platform string 来源 (wxapp小程序 admin后台)
+ * Notes:添加日志
+ * Created on: 2022/4/13 11:57
+ * Created by: dengbw
+ * @param $customer_id 客户id
+ * @param $uid 操作用户id
+ * @param $uname 操作用户名
+ * @param $content 日志内容
+ * @param string $type 操作类型 (0普通日志 1短信 2拨打电话)
+ * @param string $cf_platform 来源 (wxapp小程序 admin后台)
+ * @param array $imgs 日志图片
+ * @return string
*/
public function add_log($customer_id, $uid, $uname, $content, $type = '', $cf_platform = 'wxapp', $imgs = [])
{
$this->ci->load->model('receiver/receiver_customer_oplogs_model', 'customer_oplogs_model');
+ if ($type == 4 || $type == 5) {//到店或试驾,一天只记录一次
+ $day = date('Y-m-d');
+ $re = $this->ci->customer_oplogs_model->get(['customer_id' => $customer_id, 'type' => $type,
+ 'c_time >=' => strtotime($day . ' 00:00:00'), 'c_time <=' => strtotime($day . ' 23:59:59')]);
+ if ($re) {
+ return '';
+ }
+ }
$add_data = [
'customer_id' => $customer_id,
'uid' => $uid,
diff --git a/common/models/receiver/Receiver_customer_oplogs_model.php b/common/models/receiver/Receiver_customer_oplogs_model.php
index dcca1be6..4ec2ca53 100644
--- a/common/models/receiver/Receiver_customer_oplogs_model.php
+++ b/common/models/receiver/Receiver_customer_oplogs_model.php
@@ -19,13 +19,19 @@ class Receiver_customer_oplogs_model extends HD_Model
/**
* Notes:类型
- * Created on: 2021/7/27 10:31
+ * Created on: 2022/4/12 16:51
* Created by: dengbw
- * @return array
+ * @param int $id
+ * @return array|mixed
*/
- public function typeAry()
+ public function typeAry($id = 0)
{
- return array(0 => '小记', 1 => '发短信', 2 => '拨打号码');
+ $arr = [0 => '小记', 1 => '发短信', 2 => '拨打号码', 3 => '创建', 4 => '到店', 5 => '试驾', 6 => '订单', 7 => '战败'];
+ if ($id) {
+ return $arr[$id];
+ } else {
+ return $arr;
+ }
}
-
+
}
diff --git a/home/controllers/h5/Persona.php b/home/controllers/h5/Persona.php
index 03b42817..ac6e5e7b 100644
--- a/home/controllers/h5/Persona.php
+++ b/home/controllers/h5/Persona.php
@@ -228,6 +228,9 @@ class Persona extends CI_Controller
}
$re_cus = $this->mdCustomers->get(['biz_id' => $biz_id, 'mobile' => $mobile, 'status<>' => -1]);
$date = date('Y-m-d H:i:s');
+ $admin_id = $userInfo['admin_id'];
+ $admin_name = $userInfo['admin_name'];
+ $this->load->library('receiver/customers_entity');
if (!$re_cus) {//新增客户
$add_data = [
'name' => $userInfo['name'],
@@ -239,7 +242,7 @@ class Persona extends CI_Controller
'of_id' => $params['of_id'],
'of2_id' => $params['of2_id'],
'cf_title' => '自有资源',
- 'admin_id' => $userInfo['admin_id'],
+ 'admin_id' => $admin_id,
'status' => 1,//到店
'a_num' => 1,//到店次数
'dt_time' => $date,//到店时间
@@ -248,21 +251,27 @@ class Persona extends CI_Controller
'c_time' => time()
];
$c_id = $this->mdCustomers->add($add_data);
- $log = '创建客户';
+ $this->customers_entity->add_log($c_id, $admin_id, $admin_name, '创建客户档案', 3);
+ $this->customers_entity->add_log($c_id, $admin_id, $admin_name, "客户到店", 4);
} else {
$c_id = $re_cus['id'];
!$re_cus['unionid'] && $up_data['unionid'] = $userInfo['unionid'];
- $re_cus['status'] == 0 && $up_data['status'] = 1;//改为到店
- $up_data['a_num = a_num+1'] = null;//加到店次数
+ $log = '客户到店';
+ if ($re_cus['status'] == 0) {//改为到店
+ $up_data['status'] = 1;
+ $log .= ',更改状态';
+ }
if ($re_cus['dt_time'] == '0000-00-00 00:00:00') {//首次到店时间
$up_data['dt_time'] = $date;
+ $log .= ',更新首次到店时间';
}
+ $up_data['a_num = a_num+1'] = null;//加到店次数
$up_data['cont_time'] = $date;
- $this->mdCustomers->update($up_data, ['id' => $c_id]);
- $log = '到店+1';
+ $ret = $this->mdCustomers->update($up_data, ['id' => $c_id]);
+ if ($ret) {
+ $this->customers_entity->add_log($c_id, $admin_id, $admin_name, $log, 4);
+ }
}
- $this->load->library('receiver/customers_entity');
- $this->customers_entity->add_log($c_id, $userInfo['admin_id'], $userInfo['admin_name'], $log);
$up_customer_tag = 1;//1更新客户标签
if (!$re_cus || !$userInfo['remark_mobile']) {//新增客户/首次绑定手机 更新企微信息
$up_customer_tag = 0;