114 lines
2.8 KiB
PHP
114 lines
2.8 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* @copyright Copyright (c) 2021 勾股工作室
|
||
|
* @license https://opensource.org/licenses/GPL-3.0
|
||
|
* @link https://www.gougucms.com
|
||
|
*/
|
||
|
/**
|
||
|
======================
|
||
|
*模块数据获取公共文件
|
||
|
======================
|
||
|
*/
|
||
|
use think\facade\Db;
|
||
|
|
||
|
//客户查看编辑数据权限判断
|
||
|
function customer_auth($uid,$customer_id,$ajax=0,$level=0)
|
||
|
{
|
||
|
$customer = Db::name('Customer')->where(['id' => $customer_id])->find();
|
||
|
//是否是客户管理员
|
||
|
$auth = isAuth($uid,'customer_admin');
|
||
|
if($customer['belong_uid']==0){
|
||
|
return $customer;
|
||
|
}
|
||
|
if($auth==1){
|
||
|
return $customer;
|
||
|
}
|
||
|
else if($auth==0){
|
||
|
$auth_array=[];
|
||
|
if(!empty($customer['share_ids'])){
|
||
|
$share_ids = explode(",",$customer['share_ids']);
|
||
|
$auth_array = array_merge($auth_array,$share_ids);
|
||
|
}
|
||
|
array_push($auth_array,$customer['belong_uid']);
|
||
|
//部门负责人
|
||
|
$dids = get_department_role($uid);
|
||
|
if(!in_array($uid,$auth_array) && !in_array($customer['belong_did'],$dids)){
|
||
|
if($ajax == 1){
|
||
|
to_assign(1,'无权限操作');
|
||
|
}
|
||
|
else{
|
||
|
throw new \think\exception\HttpException(405, '无权限访问');
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
return $customer;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//读取分类列表
|
||
|
function customer_grade()
|
||
|
{
|
||
|
$cate = Db::name('CustomerGrade')->where(['status' => 1])->select()->toArray();
|
||
|
return $cate;
|
||
|
}
|
||
|
|
||
|
//读取签约主体
|
||
|
function customer_source()
|
||
|
{
|
||
|
$source = Db::name('CustomerSource')->where(['status' => 1])->select()->toArray();
|
||
|
return $source;
|
||
|
}
|
||
|
|
||
|
//读取联系人
|
||
|
function customer_contact($cid)
|
||
|
{
|
||
|
$contact = Db::name('CustomerContact')->where(['delete_time' => 0,'cid'=>$cid])->select()->toArray();
|
||
|
return $contact;
|
||
|
}
|
||
|
|
||
|
//读取销售机会
|
||
|
function customer_chance($cid)
|
||
|
{
|
||
|
$chance = Db::name('CustomerChance')->where(['delete_time' => 0,'cid'=>$cid])->select()->toArray();
|
||
|
return $chance;
|
||
|
}
|
||
|
|
||
|
//跟进方式
|
||
|
function trace_type()
|
||
|
{
|
||
|
$type = ['其他','电话','微信','QQ','上门'];
|
||
|
return $type;
|
||
|
}
|
||
|
|
||
|
//跟进阶段
|
||
|
function trace_stage()
|
||
|
{
|
||
|
$stage = ['未设置','立项评估','初期沟通','需求分析','方案制定','商务谈判','合同签订','失单'];
|
||
|
return $stage;
|
||
|
}
|
||
|
|
||
|
|
||
|
//写入日志
|
||
|
function to_log($uid,$type,$new,$old)
|
||
|
{
|
||
|
$log_data = [];
|
||
|
$key_array = ['id', 'create_time', 'update_time', 'admin_id','belong_did','belong_time','distribute_time'];
|
||
|
$type_array = ['customer_id', 'trace_id', 'contact_id', 'chance_id'];
|
||
|
foreach ($new as $key => $value) {
|
||
|
if (!in_array($key, $key_array)) {
|
||
|
if(isset($old[$key]) && ($old[$key]!=$value)){
|
||
|
$log_data[] = array(
|
||
|
'field' => $key,
|
||
|
'type' => $type,
|
||
|
$type_array[$type] => $new['id'],
|
||
|
'admin_id' => $uid,
|
||
|
'old_content' => $old[$key],
|
||
|
'new_content' => $value,
|
||
|
'create_time' => time(),
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
Db::name('CustomerLog')->strict(false)->field(true)->insertAll($log_data);
|
||
|
}
|