Files
spacestation/common/libraries/receiver/Score_entity.php
T
2024-10-17 15:32:37 +08:00

180 lines
9.6 KiB
PHP

<?php
class Score_entity
{
private $ci;
public function __construct()
{
$this->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 $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;
}
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_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['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) { //跟进
}
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,
'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['customer_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) {
} 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>=' => strtotime($day . ' 00:00:00'), 'u_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_DEDUCT_ORDER_CTIME) {
} 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) {
} elseif ($sub_type == Receiver_score_config_model::TYPE_DEDUCT__TIMEOUT && $group_id == App_licheb_users_model::GROUP_BIZ) {
$receiverOrdersModel = new Receiver_orders_model();
$where = [
'status>=' => 0, 'biz_id' => $biz_id, 'apply_def_time!=' => '0000-00-00 00:00:00', 'if_defeat' => 1,
'apply_def_time>=' => strtotime($day . ' 00:00:00'), 'apply_def_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);
}
}
break;
}
return true;
}
}
?>