ci = &get_instance(); $this->ci->load->model('receiver/receiver_score_config_model'); $this->ci->load->model('receiver/receiver_score_log_model'); $this->ci->load->model('receiver/receiver_customers_model'); $this->ci->load->model('receiver/receiver_customer_oplogs_model'); $this->ci->load->model('receiver/order/receiver_orders_model'); $this->ci->load->model('receiver/order/receiver_order_oplogs_model'); $this->ci->load->model('receiver/receiver_customers_visit_data_model'); } /** * 开始直接入口 * @param $day * @param $uid * @param $group_id * @param $biz_id * @return true */ public static function init($day, $uid, $group_id, $biz_id) { $typeList = Receiver_score_config_model::TYPE_LIST; foreach ($typeList as $k => $v) { $type = $k; if (is_array($v['sub_list'])) { foreach ($v['sub_list'] as $k2 => $v2) { $sub_type = $k2; self::addLogByType($day, $uid, $group_id, $biz_id, $type, $sub_type); } } } return true; } /** * 添加记录 * @param $day * @param $uid * @param $group_id * @param $biz_id * @param $type * @param $sub_type * @return true */ public static function addLogByType($day, $uid, $group_id, $biz_id, $type, $sub_type) { switch ($type) { case Receiver_score_config_model::TYPE_BASE: //基础分 if ($sub_type == Receiver_score_config_model::TYPE_BASE_DEFAULT) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, '基础分', 1); } if ($sub_type == Receiver_score_config_model::TYPE_BASE_KG) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, '开工', 1, 0, 0); } break; case Receiver_score_config_model::TYPE_CLUE: $receiverCustomersModel = new Receiver_customers_model(); if ($sub_type == Receiver_score_config_model::TYPE_CLUE_ADD) { //添加线索 $where = [ 'status>=' => 0, 'rid' => 0, 'sales_id' => $uid, 'biz_id' => $biz_id, 'c_time>=' => strtotime($day . ' 00:00:00'), 'c_time<=' => strtotime($day . ' 23:59:59') ]; $rows = $receiverCustomersModel->select($where, '', 1, 1000, 'id'); $desc = '新增线索'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['id'], 2, $val['id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_CLUE_ADD_WX) { //添加微信 $receiverCustomerOplogsModel = new Receiver_customer_oplogs_model(); $where = [ 'uid' => $uid, 'type' => 10, 'c_time>=' => strtotime($day . ' 00:00:00'), 'c_time<=' => strtotime($day . ' 23:59:59') ]; $rows = $receiverCustomerOplogsModel->select($where, '', 1, 1000, 'DISTINCT(customer_id)'); $desc = '添加微信'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['customer_id'], 2, $val['customer_id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_CLUE_ADD_GJ) { //跟进 $receiverCustomerOplogsModel = new Receiver_customer_oplogs_model(); $where = [ 'uid' => $uid, 'type' => 0, 'c_time>=' => strtotime($day . ' 00:00:00'), 'c_time<=' => strtotime($day . ' 23:59:59'), 'cf_platform' => 'wxapp', 'log like "跟进方式%"' => null ]; $rows = $receiverCustomerOplogsModel->select($where, '', 1, 1000, 'DISTINCT(customer_id)'); $desc = '跟进小记'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['customer_id'], 1, $val['customer_id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_CLUE_ADD_TEL) { //电话 $receiverCustomerOplogsModel = new Receiver_customer_oplogs_model(); $where = [ 'uid' => $uid, 'type' => 2, 'cf_platform' => 'wxapp', 'c_time>=' => strtotime($day . ' 00:00:00'), 'c_time<=' => strtotime($day . ' 23:59:59') ]; $rows = $receiverCustomerOplogsModel->select($where, '', 1, 1000, 'DISTINCT(customer_id)'); $desc = '电话邀约'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['customer_id'], 1, $val['customer_id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } break; case Receiver_score_config_model::TYPE_ORDER: if ($sub_type == Receiver_score_config_model::TYPE_ORDER_ADD) { //新增订单 $receiverOrdersModel = new Receiver_orders_model(); $where = [ 'status>=' => 0, 'sale_id' => $uid, 'biz_id' => $biz_id, 'c_time>=' => strtotime($day . ' 00:00:00'), 'c_time<=' => strtotime($day . ' 23:59:59') ]; $rows = $receiverOrdersModel->select($where, '', 1, 1000, 'id'); $desc = '新增订单'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['id'], 2, $val['id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_ORDER_UPLOAD_DATA) { //订单上传资料 $receiverOrderOplogModel = new Receiver_order_oplogs_model(); $where = [ 'uid' => $uid, 'type' => 1, 'cf_platform' => 'wxapp', "log != ''" => null, 'c_time>=' => strtotime($day . ' 00:00:00'), 'c_time<=' => strtotime($day . ' 23:59:59') ]; $rows = $receiverOrderOplogModel->select($where, '', 1, 1000, 'DISTINCT order_id,log'); $desc = '上传资料'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['order_id'], 2, $val['log']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } break; case Receiver_score_config_model::TYPE_DEDUCT: if ($sub_type == Receiver_score_config_model::TYPE_DEDUCT_CLUE_TIMEOUT) { $receiverCustomersModel = new Receiver_customers_model(); $where = [ 'status>=' => 0, 'rid>' => 0, 'sales_id' => $uid, 'biz_id' => $biz_id, 'sales_p_time>=' => $day . ' 00:00:00', 'sales_p_time<=' => $day . ' 23:59:59', 'UNIX_TIMESTAMP(u_time)-UNIX_TIMESTAMP(sales_p_time) ' > 15 * 60 ]; $rows = $receiverCustomersModel->select($where, '', 1, 1000, 'id'); $desc = '线索跟进时间超过15分钟'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['id'], 2, $val['id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_DEDUCT_BILL_TIMEOUT) { $receiverOrdersModel = new Receiver_orders_model(); $where = [ 'status>=' => 0, 'sale_id' => $uid, 'biz_id' => $biz_id, 'bill_time!=' => '0000-00-00 00:00:00', 'UNIX_TIMESTAMP( bill_time ) > c_time' => null, 'u_time>=' => $day . ' 00:00:00', 'u_time<=' => $day . ' 23:59:59' ]; $rows = $receiverOrdersModel->select($where, '', 1, 1000, 'id'); $desc = '开票时间早于订单录入时间'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['id'], 2, $val['id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_DEDUCT_ORDER_CTIME) { //昨天开始时间 $yesterday = $day . ' 00:00:00'; $receiverOrdersModel = new Receiver_orders_model(); $where = [ 'status>=' => 0, 'sale_id' => $uid, 'biz_id' => $biz_id, 'c_time>=' => strtotime($day . ' 00:00:00'), 'c_time<=' => strtotime($day . ' 23:59:59'), "customer_id in (select id from lc_receiver_customers where sales_p_time> '{$yesterday}' and biz_id={$biz_id})" => null, ]; $rows = $receiverOrdersModel->select($where, '', 1, 1000, 'id'); $desc = '线索录入与下单时间间隔少于 T+1'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['id'], 2, $val['id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_DEDUCT_VISIT_TIMEOUT) { $mdCustomerVisitData = new receiver_customers_visit_data_model(); $where = [ "a.biz_id" => $biz_id, "a.cs_biz_id<>" => -1, "a.status in(0,1)" => null, "b.t_day" => $day, "b.status" => 1, "a.admin_id" => $uid ]; $rows = $mdCustomerVisitData->select_visit($where, 'a.id desc', 1, 100, 'a.id'); $desc = '线索逾期未跟进'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['id'], 2, $val['id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_DEDUCT_P_TIME_TIMEOUT && $group_id == App_licheb_users_model::GROUP_BIZ) { $receiverCustomersModel = new Receiver_customers_model(); $where = [ 'status>=' => 0, 'rid>' => 0, 'biz_id' => $biz_id, 'p_time>=' => $day . ' 00:00:00', 'p_time<=' => $day . ' 23:59:59', 'UNIX_TIMESTAMP(p_time)-UNIX_TIMESTAMP(sales_p_time) ' > 600 ]; $rows = $receiverCustomersModel->select($where, '', 1, 1000, 'id'); $desc = '分配时间超过10分钟'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['id'], 2, $val['id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } elseif ($sub_type == Receiver_score_config_model::TYPE_DEDUCT_TIMEOUT && $group_id == App_licheb_users_model::GROUP_BIZ) { $receiverCustomersModel = new Receiver_customers_model(); $where = [ 'status in (0,1)' => null, 'biz_id' => $biz_id, 'if_defeat' => 1, 'apply_def_time>=' => $day . ' 00:00:00', 'apply_def_time<=' => $day . ' 23:59:59' ]; $rows = $receiverCustomersModel->select($where, '', 1, 1000, 'id'); $desc = '战败申请当日未处理'; if ($rows) { foreach ($rows as $val) { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}:" . $val['id'], 2, $val['id']); } } else { Receiver_score_log_model::add_score($uid, $biz_id, $day, $type, $sub_type, "{$desc}默认值", 1, 0, 0); } } break; } return true; } } ?>