@ -42,10 +42,13 @@ class Message extends ApiCommon
'remindcustomer',
'remindcustomer',
'checkinvoice',
'checkinvoice',
'visitcontract',
'visitcontract',
'alldeal'
'alldeal',
'checkBusiness',
'newBusiness',
'checkCustomerCheck',
]
]
];
];
Hook::listen('check_auth',$action);
Hook::listen('check_auth', $action);
$request = Request::instance();
$request = Request::instance();
$a = strtolower($request->action());
$a = strtolower($request->action());
if (!in_array($a, $action['permission'])) {
if (!in_array($a, $action['permission'])) {
@ -56,8 +59,8 @@ class Message extends ApiCommon
/**
/**
* 系统通知
* 系统通知
*
*
* @author Michael_xu
* @return
* @return
* @author Michael_xu
*/
*/
public function index()
public function index()
{
{
@ -83,144 +86,183 @@ class Message extends ApiCommon
$configData = $configDataModel->getData();
$configData = $configDataModel->getData();
$data = [];
$data = [];
# 今日需联系线索
# 今日需联系线索
$todayLeadsTime = cache('todayLeadsTime'.$userInfo['id']);
$todayLeadsTime = cache('todayLeadsTime' . $userInfo['id']);
$todayLeadsCount = cache('todayLeadsCount'.$userInfo['id']);
$todayLeadsCount = cache('todayLeadsCount' . $userInfo['id']);
if (time() < = $todayLeadsTime) {
if (time() < = $todayLeadsTime) {
$data['todayLeads'] = (int)$todayLeadsCount;
$data['todayLeads'] = (int)$todayLeadsCount;
} else {
} else {
$todayLeads = $this->todayLeads(true);
$todayLeads = $this->todayLeads(true);
$data['todayLeads'] = $todayLeads['dataCount'] ? : 0;
$data['todayLeads'] = $todayLeads['dataCount'] ?: 0;
cache('todayLeadsCount'.$userInfo['id'], $data['todayLeads']);
cache('todayLeadsCount' . $userInfo['id'], $data['todayLeads']);
cache('todayLeadsTime'.$userInfo['id'], time() + 180 );
cache('todayLeadsTime' . $userInfo['id'], time());
}
}
# 今日需联系客户
# 今日需联系客户
$todayCustomerTime = cache('todayCustomerTime'.$userInfo['id']);
$todayCustomerTime = cache('todayCustomerTime' . $userInfo['id']);
$todayCustomerCount = cache('todayCustomerCount'.$userInfo['id']);
$todayCustomerCount = cache('todayCustomerCount' . $userInfo['id']);
if (time() < = $todayCustomerTime) {
if (time() < = $todayCustomerTime) {
$data['todayCustomer'] = (int)$todayCustomerCount;
$data['todayCustomer'] = (int)$todayCustomerCount;
} else {
} else {
$todayCustomer = $this->todayCustomer(true);
$todayCustomer = $this->todayCustomer(true);
$data['todayCustomer'] = $todayCustomer['dataCount'] ? : 0;
$data['todayCustomer'] = $todayCustomer['dataCount'] ?: 0;
cache('todayCustomerCount'.$userInfo['id'], $data['todayCustomer']);
cache('todayCustomerCount' . $userInfo['id'], $data['todayCustomer']);
cache('todayCustomerTime'.$userInfo['id'], time() + 180 );
cache('todayCustomerTime' . $userInfo['id'], time());
}
}
# 今日需联系商机
# 今日需联系商机
$todayBusinessTime = cache('todayBusinessTime'.$userInfo['id']);
$todayBusinessTime = cache('todayBusinessTime' . $userInfo['id']);
$todayBusinessCount = cache('todayBusinessCount'.$userInfo['id']);
$todayBusinessCount = cache('todayBusinessCount' . $userInfo['id']);
if (time() < = $todayBusinessTime) {
if (time() < = $todayBusinessTime) {
$data['todayBusiness'] = (int)$todayBusinessCount;
$data['todayBusiness'] = (int)$todayBusinessCount;
} else {
} else {
$todayBusiness = $this->todayBusiness(true);
$todayBusiness = $this->todayBusiness(true);
$data['todayBusiness'] = $todayBusiness['dataCount'] ? : 0;
$data['todayBusiness'] = $todayBusiness['dataCount'] ?: 0;
cache('todayBusinessCount'.$userInfo['id'], $data['todayBusiness']);
cache('todayBusinessCount' . $userInfo['id'], $data['todayBusiness']);
cache('todayBusinessTime'.$userInfo['id'], time() + 180 );
cache('todayBusinessTime' . $userInfo['id'], time());
}
}
# 分配给我的线索
# 分配给我的线索
$followLeadsTime = cache('followLeadsTime'.$userInfo['id']);
$followLeadsTime = cache('followLeadsTime' . $userInfo['id']);
$followLeadsCount = cache('followLeadsCount'.$userInfo['id']);
$followLeadsCount = cache('followLeadsCount' . $userInfo['id']);
if (time() < = $followLeadsTime) {
if (time() < = $followLeadsTime) {
$data['followLeads'] = (int)$followLeadsCount;
$data['followLeads'] = (int)$followLeadsCount;
} else {
} else {
$followLeads = $this->followLeads(true);
$followLeads = $this->followLeads(true);
$data['followLeads'] = $followLeads['dataCount'] ? : 0;
$data['followLeads'] = $followLeads['dataCount'] ?: 0;
cache('followLeadsCount'.$userInfo['id'], $data['followLeads']);
cache('followLeadsCount' . $userInfo['id'], $data['followLeads']);
cache('followLeadsTime'.$userInfo['id'], time() + 180 );
cache('followLeadsTime' . $userInfo['id'], time());
}
}
# 分配给我的客户
# 分配给我的客户
$followCustomerTime = cache('followCustomerTime'.$userInfo['id']);
$followCustomerTime = cache('followCustomerTime' . $userInfo['id']);
$followCustomerCount = cache('followCustomerCount'.$userInfo['id']);
$followCustomerCount = cache('followCustomerCount' . $userInfo['id']);
if (time() < = $followCustomerTime) {
if (time() < = $followCustomerTime) {
$data['followCustomer'] = (int)$followCustomerCount;
$data['followCustomer'] = (int)$followCustomerCount;
} else {
} else {
$followCustomer = $this->followCustomer(true);
$followCustomer = $this->followCustomer(true);
$data['followCustomer'] = $followCustomer['dataCount'] ? : 0;
$data['followCustomer'] = $followCustomer['dataCount'] ?: 0;
cache('followCustomerCount'.$userInfo['id'], $data['followCustomer']);
cache('followCustomerCount' . $userInfo['id'], $data['followCustomer']);
cache('followCustomerTime'.$userInfo['id'], time() + 180 );
cache('followCustomerTime' . $userInfo['id'], time());
}
}
# 待审核合同
# 待审核合同
$checkContractTime = cache('checkContractTime'.$userInfo['id']);
$checkContractTime = cache('checkContractTime' . $userInfo['id']);
$checkContractCount = cache('checkContractCount'.$userInfo['id']);
$checkContractCount = cache('checkContractCount' . $userInfo['id']);
if (time() < = $checkContractTime) {
if (time() < = $checkContractTime) {
$data['checkContract'] = (int)$checkContractCount;
$data['checkContract'] = (int)$checkContractCount;
} else {
} else {
$checkContract = $this->checkContract(true);
$checkContract = $this->checkContract(true);
$data['checkContract'] = $checkContract['dataCount'] ? : 0;
$data['checkContract'] = $checkContract['dataCount'] ?: 0;
cache('checkContractCount'.$userInfo['id'], $data['checkContract']);
cache('checkContractCount' . $userInfo['id'], $data['checkContract']);
cache('checkContractTime'.$userInfo['id'], time() + 180 );
cache('checkContractTime' . $userInfo['id'], time());
}
}
# 待审核回款
# 待审核回款
$checkReceivablesTime = cache('checkReceivablesTime'.$userInfo['id']);
$checkReceivablesTime = cache('checkReceivablesTime' . $userInfo['id']);
$checkReceivablesCount = cache('checkReceivablesCount'.$userInfo['id']);
$checkReceivablesCount = cache('checkReceivablesCount' . $userInfo['id']);
if (time() < = $checkReceivablesTime) {
if (time() < = $checkReceivablesTime) {
$data['checkReceivables'] = (int)$checkReceivablesCount;
$data['checkReceivables'] = (int)$checkReceivablesCount;
} else {
} else {
$checkReceivables = $this->checkReceivables(true);
$checkReceivables = $this->checkReceivables(true);
$data['checkReceivables'] = $checkReceivables['dataCount'] ? : 0;
$data['checkReceivables'] = $checkReceivables['dataCount'] ?: 0;
cache('checkReceivablesCount'.$userInfo['id'], $data['checkReceivables']);
cache('checkReceivablesCount' . $userInfo['id'], $data['checkReceivables']);
cache('checkReceivablesTime'.$userInfo['id'], time() + 180 );
cache('checkReceivablesTime' . $userInfo['id'], time());
}
}
# 待审核发票
# 待审核发票
$checkInvoiceTime = cache('checkInvoiceTime'.$userInfo['id']);
$checkInvoiceTime = cache('checkInvoiceTime' . $userInfo['id']);
$checkInvoiceCount = cache('checkInvoiceCount'.$userInfo['id']);
$checkInvoiceCount = cache('checkInvoiceCount' . $userInfo['id']);
if (time() < = $checkInvoiceTime) {
if (time() < = $checkInvoiceTime) {
$data['checkInvoice'] = (int)$checkInvoiceCount;
$data['checkInvoice'] = (int)$checkInvoiceCount;
} else {
} else {
$checkInvoice = $this->checkInvoice(true);
$checkInvoice = $this->checkInvoice(true);
$data['checkInvoice'] = $checkInvoice['dataCount'] ? : 0;
$data['checkInvoice'] = $checkInvoice['dataCount'] ?: 0;
cache('checkInvoiceCount' . $userInfo['id'], $data['checkInvoice']);
cache('checkInvoiceTime' . $userInfo['id'], time());
}
# 待审核商机
$checkBusinessTime = cache('checkBusinessTime' . $userInfo['id']);
$checkBusinessCount = cache('checkBusinessCount' . $userInfo['id']);
if (time() < = $checkBusinessTime) {
$data['checkBusiness'] = (int)$checkBusinessCount;
} else {
$checkBusiness = $this->checkBusiness(true);
$data['checkBusiness'] = $checkBusiness['dataCount'] ?: 0;
cache('checkInvoiceCount'.$userInfo['id'], $data['checkInvoice']);
cache('checkBusinessCount' . $userInfo['id'], $data['checkBusiness']);
cache('checkInvoiceTime'.$userInfo['id'], time() + 180);
cache('checkBusinessTime' . $userInfo['id'], time());
}
# 待审核客户捞取
$checkCustomerCheckTime = cache('$checkCustomerCheckTime' . $userInfo['id']);
$checkCustomerCheckCount = cache('checkCustomerCheckCount' . $userInfo['id']);
if (time() < = $checkCustomerCheckTime) {
$data['checkCustomerCheck'] = (int)$checkCustomerCheckCount;
} else {
$checkCustomerCheck = $this->checkCustomerCheck(true);
$data['checkCustomerCheck'] = $checkCustomerCheck['dataCount'] ?: 0;
cache('checkCustomerCheckCount' . $userInfo['id'], $data['checkCustomerCheck']);
cache('$checkCustomerCheckTime' . $userInfo['id'], time());
}
}
# 待回款提醒
# 待回款提醒
$remindReceivablesPlanTime = cache('remindReceivablesPlanTime'.$userInfo['id']);
$remindReceivablesPlanTime = cache('remindReceivablesPlanTime' . $userInfo['id']);
$remindReceivablesPlanCount = cache('remindReceivablesPlanCount'.$userInfo['id']);
$remindReceivablesPlanCount = cache('remindReceivablesPlanCount' . $userInfo['id']);
if (time() < = $remindReceivablesPlanTime) {
if (time() < = $remindReceivablesPlanTime) {
$data['remindReceivablesPlan'] = (int)$remindReceivablesPlanCount;
$data['remindReceivablesPlan'] = (int)$remindReceivablesPlanCount;
} else {
} else {
$remindReceivablesPlan = $this->remindReceivablesPlan(true);
$remindReceivablesPlan = $this->remindReceivablesPlan(true);
$data['remindReceivablesPlan'] = $remindReceivablesPlan['dataCount'] ? : 0;
$data['remindReceivablesPlan'] = $remindReceivablesPlan['dataCount'] ?: 0;
cache('remindReceivablesPlanCount'.$userInfo['id'], $data['remindReceivablesPlan']);
cache('remindReceivablesPlanCount' . $userInfo['id'], $data['remindReceivablesPlan']);
cache('remindReceivablesPlanTime'.$userInfo['id'], time() + 180);
cache('remindReceivablesPlanTime' . $userInfo['id'], time());
}
}
if ($configData['visit_config'] == 1) {
if ($configData['visit_config'] == 1) {
# 待回访合同
# 待回访合同
$visitContractTime = cache('visitContractTime'.$userInfo['id']);
$visitContractTime = cache('visitContractTime' . $userInfo['id']);
$visitContractCount = cache('visitContractCount'.$userInfo['id']);
$visitContractCount = cache('visitContractCount' . $userInfo['id']);
if (time() < = $visitContractTime) {
if (time() < = $visitContractTime) {
$data['returnVisitRemind'] = (int)$visitContractCount;
$data['returnVisitRemind'] = (int)$visitContractCount;
} else {
} else {
$visitContract = $this->visitContract(true);
$visitContract = $this->visitContract(true);
$data['returnVisitRemind'] = $visitContract['dataCount'] ? : 0;
$data['returnVisitRemind'] = $visitContract['dataCount'] ?: 0;
cache('visitContractCount'.$userInfo['id'], $data['returnVisitRemind']);
cache('visitContractCount' . $userInfo['id'], $data['returnVisitRemind']);
cache('visitContractTime'.$userInfo['id'], time() + 180 );
cache('visitContractTime' . $userInfo['id'], time());
}
}
}
}
# 即将到期合同
# 即将到期合同
if ($configData['contract_config'] == 1) {
if ($configData['contract_config'] == 1) {
$endContractTime = cache('endContractTime'.$userInfo['id']);
$endContractTime = cache('endContractTime' . $userInfo['id']);
$endContractCount = cache('endContractCount'.$userInfo['id']);
$endContractCount = cache('endContractCount' . $userInfo['id']);
if (time() < = $endContractTime) {
if (time() < = $endContractTime) {
$data['endContract'] = (int)$endContractCount;
$data['endContract'] = (int)$endContractCount;
} else {
} else {
$endContract = $this->endContract(true);
$endContract = $this->endContract(true);
$data['endContract'] = $endContract['dataCount'] ? : 0;
$data['endContract'] = $endContract['dataCount'] ?: 0;
cache('endContractCount'.$userInfo['id'], $data['endContract']);
cache('endContractCount' . $userInfo['id'], $data['endContract']);
cache('endContractTime'.$userInfo['id'], time() + 180);
cache('endContractTime' . $userInfo['id'], time());
}
}
}
# 新增商机
$newBusinessTime = cache('newBusinessTime' . $userInfo['id']);
$newBusinessCount = cache('newBusinessCount' . $userInfo['id']);
if (time() < = $newBusinessTime) {
$data['newBusiness'] = (int)$newBusinessCount;
} else {
$newBusiness = $this->newBusiness(true);
$data['newBusiness'] = $newBusiness['dataCount'] ?: 0;
cache('newBusinessCount' . $userInfo['id'], $data['newBusiness']);
cache('newBusinessTime' . $userInfo['id'], time());
}
}
# 待进入公海提醒
# 待进入公海提醒
$pool = db('crm_customer_pool')->where(['status' => 1, 'remind_conf' => 1])->count();
$pool = db('crm_customer_pool')->where(['status' => 1, 'remind_conf' => 1])->count();
if (!empty($pool)) {
if (!empty($pool)) {
$remindCustomerTime = cache('remindCustomerTime'.$userInfo['id']);
$remindCustomerTime = cache('remindCustomerTime' . $userInfo['id']);
$remindCustomerCount = cache('remindCustomerCount'.$userInfo['id']);
$remindCustomerCount = cache('remindCustomerCount' . $userInfo['id']);
if (time() < = $remindCustomerTime) {
if (time() < = $remindCustomerTime) {
$data['putInPoolRemind'] = (int)$remindCustomerCount;
$data['putInPoolRemind'] = (int)$remindCustomerCount;
} else {
} else {
$remindCustomer = $this->remindCustomer(true);
$remindCustomer = $this->remindCustomer(true);
$data['putInPoolRemind'] = !empty($remindCustomer['dataCount']) ? $remindCustomer['dataCount'] : 0;
$data['putInPoolRemind'] = !empty($remindCustomer['dataCount']) ? $remindCustomer['dataCount'] : 0;
cache('remindCustomerCount'.$userInfo['id'], $data['putInPoolRemind']);
cache('remindCustomerCount' . $userInfo['id'], $data['putInPoolRemind']);
cache('remindCustomerTime'.$userInfo['id'], time() + 180 );
cache('remindCustomerTime' . $userInfo['id'], time());
}
}
}
}
@ -241,7 +283,7 @@ class Message extends ApiCommon
unset($param['types']);
unset($param['types']);
$param['user_id'] = $userId;
$param['user_id'] = $userId;
if ($getCount == true) $param['getCount'] = 1;
if ($getCount == true) $param['getCount'] = 1;
$messageLogic= new MessageLogic();
$messageLogic = new MessageLogic();
$data = $messageLogic->todayLeads($param);
$data = $messageLogic->todayLeads($param);
@ -266,7 +308,7 @@ class Message extends ApiCommon
}
}
unset($param['types']);
unset($param['types']);
$param['user_id'] = $userId;
$param['user_id'] = $userId;
$messageLogic= new MessageLogic();
$messageLogic = new MessageLogic();
$data = $messageLogic->remindCustomer($param);
$data = $messageLogic->remindCustomer($param);
if ($types == 'list') {
if ($types == 'list') {
return resultArray(['data' => $data]);
return resultArray(['data' => $data]);
@ -290,7 +332,7 @@ class Message extends ApiCommon
$types = $param['types'];
$types = $param['types'];
unset($param['types']);
unset($param['types']);
if ($getCount == true) $param['getCount'] = 1;
if ($getCount == true) $param['getCount'] = 1;
$messageLogic= new MessageLogic();
$messageLogic = new MessageLogic();
$param['user_id'] = $userId;
$param['user_id'] = $userId;
$data = $messageLogic->todayBusiness($param);
$data = $messageLogic->todayBusiness($param);
@ -301,8 +343,8 @@ class Message extends ApiCommon
/**
/**
* 分配给我的线索
* 分配给我的线索
* @author Michael_xu
* @return
* @return
* @author Michael_xu
*/
*/
public function followLeads($getCount = false)
public function followLeads($getCount = false)
{
{
@ -312,7 +354,7 @@ class Message extends ApiCommon
unset($param['types']);
unset($param['types']);
if ($getCount == true) $param['getCount'] = 1;
if ($getCount == true) $param['getCount'] = 1;
$param['user_id'] = $userInfo['id'];
$param['user_id'] = $userInfo['id'];
$messageLogic=new MessageLogic();
$messageLogic = new MessageLogic();
$data = $messageLogic->followLeads($param);
$data = $messageLogic->followLeads($param);
if ($types == 'list') {
if ($types == 'list') {
return resultArray(['data' => $data]);
return resultArray(['data' => $data]);
@ -322,8 +364,8 @@ class Message extends ApiCommon
/**
/**
* 分配给我的客户
* 分配给我的客户
* @author Michael_xu
* @return
* @return
* @author Michael_xu
*/
*/
public function followCustomer($getCount = false)
public function followCustomer($getCount = false)
{
{
@ -334,7 +376,7 @@ class Message extends ApiCommon
$param['getCount'] = 1;
$param['getCount'] = 1;
}
}
unset($param['types']);
unset($param['types']);
$messageLogic=new MessageLogic();
$messageLogic = new MessageLogic();
$param['user_id'] = $userInfo['id'];
$param['user_id'] = $userInfo['id'];
$data = $messageLogic->followCustomer($param);
$data = $messageLogic->followCustomer($param);
if ($types == 'list') {
if ($types == 'list') {
@ -358,7 +400,7 @@ class Message extends ApiCommon
if ($getCount == true) {
if ($getCount == true) {
$param['getCount'] = 1;
$param['getCount'] = 1;
}
}
$messageLogic=new MessageLogic();
$messageLogic = new MessageLogic();
$param['user_id'] = $userInfo['id'];
$param['user_id'] = $userInfo['id'];
$data = $messageLogic->checkContract($param);
$data = $messageLogic->checkContract($param);
if ($types == 'list') {
if ($types == 'list') {
@ -369,8 +411,8 @@ class Message extends ApiCommon
/**
/**
* 待审核回款
* 待审核回款
* @author Michael_xu
* @return
* @return
* @author Michael_xu
*/
*/
public function checkReceivables($getCount = false)
public function checkReceivables($getCount = false)
{
{
@ -379,7 +421,7 @@ class Message extends ApiCommon
$types = $param['types'];
$types = $param['types'];
unset($param['types']);
unset($param['types']);
if ($getCount == true) $param['getCount'] = 1;
if ($getCount == true) $param['getCount'] = 1;
$messageLogic=new MessageLogic();
$messageLogic = new MessageLogic();
$param['user_id'] = $userInfo['id'];
$param['user_id'] = $userInfo['id'];
$data = $messageLogic->checkReceivables($param);
$data = $messageLogic->checkReceivables($param);
if ($types == 'list') {
if ($types == 'list') {
@ -404,7 +446,7 @@ class Message extends ApiCommon
# 清除与模型无关的数据
# 清除与模型无关的数据
unset($param['types']);
unset($param['types']);
$param['user_id'] = $userId;
$param['user_id'] = $userId;
$messageLogic=new MessageLogic();
$messageLogic = new MessageLogic();
$data = $messageLogic->checkInvoice($param);
$data = $messageLogic->checkInvoice($param);
if ($types == 'list') return resultArray(['data' => $data]);
if ($types == 'list') return resultArray(['data' => $data]);
@ -412,18 +454,64 @@ class Message extends ApiCommon
return $data;
return $data;
}
}
/**
* 待审核商机
*
* @return array|\think\response\Json
* @throws \think\exception\DbException
*/
public function checkBusiness($getCount = false)
{
$param = $this->param;
$userId = $this->userInfo['id'];
$types = $param['types'];
if ($getCount == true) $param['getCount'] = 1;
# 清除与模型无关的数据
unset($param['types']);
$param['user_id'] = $userId;
$messageLogic = new MessageLogic();
$data = $messageLogic->checkBusiness($param);
if ($types == 'list') return resultArray(['data' => $data]);
return $data;
}
/**
* 待审核客户捞取
*
* @return array|\think\response\Json
* @throws \think\exception\DbException
*/
public function checkCustomerCheck($getCount = false)
{
$param = $this->param;
$userId = $this->userInfo['id'];
$types = $param['types'];
if ($getCount == true) $param['getCount'] = 1;
# 清除与模型无关的数据
unset($param['types']);
$param['user_id'] = $userId;
$messageLogic = new MessageLogic();
$data = $messageLogic->checkCustomerCheck($param);
if ($types == 'list') return resultArray(['data' => $data]);
return $data;
}
/**
/**
* 待回款提醒
* 待回款提醒
* @author Michael_xu
* @return
* @return
* @author Michael_xu
*/
*/
public function remindReceivablesPlan($getCount = false)
public function remindReceivablesPlan($getCount = false)
{
{
$param = $this->param;
$param = $this->param;
$userInfo = $this->userInfo;
$userInfo = $this->userInfo;
$types = $param['types'];
$types = $param['types'];
$type = $param['type'] ? : 1;
$type = $param['type'] ?: 1;
$isSub = $param['isSub'] ? : '';
$isSub = $param['isSub'] ?: '';
unset($param['types']);
unset($param['types']);
unset($param['type']);
unset($param['type']);
unset($param['isSub']);
unset($param['isSub']);
@ -463,16 +551,16 @@ class Message extends ApiCommon
/**
/**
* 即将到期合同
* 即将到期合同
* @author Michael_xu
* @return
* @return
* @author Michael_xu
*/
*/
public function endContract($getCount = false)
public function endContract($getCount = false)
{
{
$param = $this->param;
$param = $this->param;
$userInfo = $this->userInfo;
$userInfo = $this->userInfo;
$types = $param['types'];
$types = $param['types'];
$type = $param['type'] ? : 1;
$type = $param['type'] ?: 1;
$isSub = $param['isSub'] ? : '';
$isSub = $param['isSub'] ?: '';
if ($getCount == true) $param['getCount'] = 1;
if ($getCount == true) $param['getCount'] = 1;
unset($param['types']);
unset($param['types']);
unset($param['type']);
unset($param['type']);
@ -480,19 +568,21 @@ class Message extends ApiCommon
$contractModel = model('Contract');
$contractModel = model('Contract');
$configModel = new \app\crm\model\ConfigData();
$configModel = new \app\crm\model\ConfigData();
$configInfo = $configModel->getData();
$configInfo = $configModel->getData();
$expireDay = $configInfo['contract_day'] ? : '7';
$expireDay = $configInfo['contract_day'] ?: '7';
// 合同到期不提醒
// 合同到期不提醒
if (empty($configInfo['contract_config'])) return resultArray(['data' => []]);
if (empty($configInfo['contract_config'])) return resultArray(['data' => []]);
$param['owner_user_id'] = $userInfo['id'];
$param['owner_user_id'] = $userInfo['id'];
if ($isSub) {
if ($isSub) {
$param['owner_user_id'] = array('in',getSubUserId(false));
$param['owner_user_id'] = array('in', getSubUserId(false));
}
}
switch ($type) {
switch ($type) {
case '1' :
case '1' :
$param['end_time'] = array('between',array(date('Y-m-d',time()),date('Y-m-d',time()+86400*$expireDay)));
$param['end_time'] = array('between', array(date('Y-m-d', time()), date('Y-m-d', time() + 86400 * $expireDay)));
$param['expire_remind'] = 0;
$param['expire_remind'] = 0;
break;
break;
case '2' : $param['end_time'] = array('lt',date('Y-m-d',time())); break;
case '2' :
$param['end_time'] = array('lt', date('Y-m-d', time()));
break;
}
}
$data = $contractModel->getDataList($param);
$data = $contractModel->getDataList($param);
// p($contractModel->getLastSql());
// p($contractModel->getLastSql());
@ -503,9 +593,39 @@ class Message extends ApiCommon
}
}
/**
/**
* 待进入客户池
* 新增商机
* @return
* @author Michael_xu
* @author Michael_xu
*/
public function newBusiness($getCount = false)
{
$param = $this->param;
$userInfo = $this->userInfo;
$types = $param['types'];
$type = $param['type'] ?: 1;
$isSub = $param['isSub'] ?: '';
if ($getCount == true) $param['getCount'] = 1;
unset($param['types']);
unset($param['type']);
unset($param['isSub']);
$businessModel = model('Business');
// $param['owner_user_id'] = $userInfo['id'];
if ($isSub) {
$param['owner_user_id'] = array('in', getSubUserId(false));
}
$businessIdArray = db('crm_dealt_relation')->where(['types' => ['eq', 'crm_business_new'], 'user_id' => ['eq', $userInfo['id']]])->column('types_id');
$param['businessIdArray'] = !empty($businessIdArray) ? $businessIdArray : -1;
$data = $businessModel->getDataList($param);
if ($types == 'list') {
return resultArray(['data' => $data]);
}
return $data;
}
/**
* 待进入客户池
* @return
* @return
* @author Michael_xu
*/
*/
public function remindCustomer($getCount = false)
public function remindCustomer($getCount = false)
{
{
@ -514,7 +634,7 @@ class Message extends ApiCommon
$param = $this->param;
$param = $this->param;
$userInfo = $this->userInfo;
$userInfo = $this->userInfo;
$types = $param['types'];
$types = $param['types'];
$isSub = $param['isSub'] ? : '';
$isSub = $param['isSub'] ?: '';
if ($getCount == true) $param['getCount'] = 1;
if ($getCount == true) $param['getCount'] = 1;
unset($param['types']);
unset($param['types']);
unset($param['type']);
unset($param['type']);
@ -529,13 +649,13 @@ class Message extends ApiCommon
$data = [];
$data = [];
$remind = db('crm_customer_pool')->where(['status' => 1, 'remind_conf' => 1])->count();
$remind = db('crm_customer_pool')->where(['status' => 1, 'remind_conf' => 1])->count();
if (!empty($remind)) {
if (!empty($remind)) {
$whereData = $param ? : [];
$whereData = $param ?: [];
$whereData['is_remind'] = 1;
$whereData['is_remind'] = 1;
$whereData['user_id'] = $userInfo['id'];
$whereData['user_id'] = $userInfo['id'];
$whereData['pool_remain'] = 0;
$whereData['pool_remain'] = 0;
$whereData['scene_id'] = db('admin_scene')->where(['types' => 'crm_customer','bydata' => 'me'])->value('scene_id');
$whereData['scene_id'] = db('admin_scene')->where(['types' => 'crm_customer', 'bydata' => 'me'])->value('scene_id');
if ($isSub) {
if ($isSub) {
$whereData['scene_id'] = db('admin_scene')->where(['types' => 'crm_customer','bydata' => 'sub'])->value('scene_id');
$whereData['scene_id'] = db('admin_scene')->where(['types' => 'crm_customer', 'bydata' => 'sub'])->value('scene_id');
}
}
$data = $customerModel->getDataList($whereData);
$data = $customerModel->getDataList($whereData);
}
}
@ -639,7 +759,7 @@ class Message extends ApiCommon
# 处理分配给我的线索、客户
# 处理分配给我的线索、客户
if (in_array($type, ['followLeads', 'followCustomer'])) {
if (in_array($type, ['followLeads', 'followCustomer'])) {
$where['owner_user_id'] = $userId;
$where['owner_user_id'] = $userId;
$where['follow'] = [['neq','已跟进'], null, 'or'];
$where['follow'] = [['neq', '已跟进'], null, 'or'];
$where['is_allocation'] = 1;
$where['is_allocation'] = 1;
# 线索
# 线索
@ -655,9 +775,9 @@ class Message extends ApiCommon
}
}
# 处理待审核合同、回款、发票
# 处理待审核合同、回款、发票
if (in_array($type, ['checkContract', 'checkReceivables', 'checkInvoice'])) {
if (in_array($type, ['checkContract', 'checkReceivables', 'checkInvoice', 'checkBusiness', 'checkCustomerCheck', 'newBusiness' ])) {
$where['check_status'] = ['lt','2'];
$where['check_status'] = ['lt', '2'];
$where['check_user_id'] = ['like',',%' . $userId . '%,'];
$where['check_user_id'] = ['like', ',%' . $userId . '%,'];
# 合同
# 合同
if ($type == 'checkContract') {
if ($type == 'checkContract') {
@ -674,6 +794,22 @@ class Message extends ApiCommon
$invoiceId = !empty($typeId) ? $typeId : Db::name('crm_invoice')->where($where)->column('invoice_id');
$invoiceId = !empty($typeId) ? $typeId : Db::name('crm_invoice')->where($where)->column('invoice_id');
db('crm_dealt_relation')->where('user_id', $userId)->where('types', 'crm_invoice')->whereIn('types_id', $invoiceId)->delete();
db('crm_dealt_relation')->where('user_id', $userId)->where('types', 'crm_invoice')->whereIn('types_id', $invoiceId)->delete();
}
}
# 商机
if ($type == 'checkBusiness') {
$businessId = !empty($typeId) ? $typeId : Db::name('crm_business')->where($where)->column('business_id');
db('crm_dealt_relation')->where('user_id', $userId)->where('types', 'crm_business')->whereIn('types_id', $businessId)->delete();
}
# 客户捞取
if ($type == 'checkCustomerCheck') {
$customerCheckId = !empty($typeId) ? $typeId : Db::name('crm_customer_check')->where($where)->column('customer_check_id');
db('crm_dealt_relation')->where('user_id', $userId)->where('types', 'crm_customer_check')->whereIn('types_id', $customerCheckId)->delete();
}
# 新商机
if ($type == 'newBusiness') {
$newBusinessId = !empty($typeId) ? $typeId : Db::name('crm_business')->where($where)->column('business_id');
db('crm_dealt_relation')->where('user_id', $userId)->where('types', 'crm_business_new')->whereIn('types_id', $newBusinessId)->delete();
}
}
}
@ -681,10 +817,10 @@ class Message extends ApiCommon
if ($type == 'endContract') {
if ($type == 'endContract') {
$configModel = new \app\crm\model\ConfigData();
$configModel = new \app\crm\model\ConfigData();
$configInfo = $configModel->getData();
$configInfo = $configModel->getData();
$expireDay = $configInfo['contract_day'] ? : '7';
$expireDay = $configInfo['contract_day'] ?: '7';
$where['owner_user_id'] = $userId;
$where['owner_user_id'] = $userId;
$where['end_time'] = ['between', [date('Y-m-d',time()), date('Y-m-d',time()+86400*$expireDay)]];
$where['end_time'] = ['between', [date('Y-m-d', time()), date('Y-m-d', time() + 86400 * $expireDay)]];
$where['expire_remind'] = 1;
$where['expire_remind'] = 1;
$contractId = !empty($typeId) ? $typeId : Db::name('crm_contract')->where($where)->column('contract_id');
$contractId = !empty($typeId) ? $typeId : Db::name('crm_contract')->where($where)->column('contract_id');
@ -713,11 +849,11 @@ class Message extends ApiCommon
$whereData['is_remind'] = 1;
$whereData['is_remind'] = 1;
$whereData['user_id'] = $userId;
$whereData['user_id'] = $userId;
$whereData['pool_remain'] = 0;
$whereData['pool_remain'] = 0;
$whereData['scene_id'] = db('admin_scene')->where(['types' => 'crm_customer','bydata' => empty($isSub) ? 'me' : 'sub'])->value('scene_id');
$whereData['scene_id'] = db('admin_scene')->where(['types' => 'crm_customer', 'bydata' => empty($isSub) ? 'me' : 'sub'])->value('scene_id');
$whereData['owner_user_id'] = !empty($isSub) ? ['in', getSubUserId(false, 0, $userId)] : $userId;
$whereData['owner_user_id'] = !empty($isSub) ? ['in', getSubUserId(false, 0, $userId)] : $userId;
$poolCustomers = (new \app\crm\model\Customer())->getDataList($whereData);
$poolCustomers = (new \app\crm\model\Customer())->getDataList($whereData);
$ids = [];
$ids = [];
foreach ($poolCustomers['list'] AS $key => $value) {
foreach ($poolCustomers['list'] as $key => $value) {
if (!empty($value['customer_id'])) $ids[] = $value['customer_id'];
if (!empty($value['customer_id'])) $ids[] = $value['customer_id'];
}
}
if (!empty($ids)) Db::name('crm_customer')->whereIn('customer_id', $ids)->update(['pool_remain' => 1]);
if (!empty($ids)) Db::name('crm_customer')->whereIn('customer_id', $ids)->update(['pool_remain' => 1]);
@ -731,48 +867,55 @@ class Message extends ApiCommon
if (!empty($typeId)) {
if (!empty($typeId)) {
$planId = $typeId;
$planId = $typeId;
} else {
} else {
$param['owner_user_id'] = $isSub ? ['in',getSubUserId(false)] : $userId;
$param['owner_user_id'] = $isSub ? ['in', getSubUserId(false)] : $userId;
$param['receivables_id'] = 0;
$param['receivables_id'] = 0;
$param['check_status'] = ['lt', 2];
$param['check_status'] = ['lt', 2];
$param['remind_date'] = ['elt', date('Y-m-d',time())];
$param['remind_date'] = ['elt', date('Y-m-d', time())];
$param['return_date'] = ['egt', date('Y-m-d',time())];
$param['return_date'] = ['egt', date('Y-m-d', time())];
$param['types'] = 1;
$param['types'] = 1;
$param['page'] = 1;
$param['page'] = 1;
$param['limit'] = 1000;
$param['limit'] = 1000;
$receivablesPlanModel = model('ReceivablesPlan');
$receivablesPlanModel = model('ReceivablesPlan');
$data = $receivablesPlanModel->getDataList($param);
$data = $receivablesPlanModel->getDataList($param);
foreach ($data['list'] AS $key => $value) {
foreach ($data['list'] as $key => $value) {
$planId[] = $value['plan_id'];
$planId[] = $value['plan_id'];
}
}
}
}
if (!empty($planId)) db('crm_receivables_plan')->whereIn('plan_id', $planId)->update(['is_dealt' => 1]);
if (!empty($planId)) db('crm_receivables_plan')->whereIn('plan_id', $planId)->update(['is_dealt' => 1]);
}
}
cache::rm('todayLeadsCount'.$userId);
cache::rm('todayLeadsCount' . $userId);
cache::rm('todayCustomerCount'.$userId);
cache::rm('todayCustomerCount' . $userId);
cache::rm('todayBusinessCount'.$userId);
cache::rm('todayBusinessCount' . $userId);
cache::rm('followLeadsCount'.$userId);
cache::rm('followLeadsCount' . $userId);
cache::rm('followCustomerCount'.$userId);
cache::rm('followCustomerCount' . $userId);
cache::rm('checkContractCount'.$userId);
cache::rm('checkContractCount' . $userId);
cache::rm('checkReceivablesCount'.$userId);
cache::rm('checkReceivablesCount' . $userId);
cache::rm('checkInvoiceCount'.$userId);
cache::rm('checkInvoiceCount' . $userId);
cache::rm('remindReceivablesPlanCount'.$userId);
cache::rm('remindReceivablesPlanCount' . $userId);
cache::rm('visitContractCount'.$userId);
cache::rm('visitContractCount' . $userId);
cache::rm('endContractCount'.$userId);
cache::rm('endContractCount' . $userId);
cache::rm('remindCustomerCount'.$userId);
cache::rm('remindCustomerCount' . $userId);
cache::rm('checkCustomerCheckCount' . $userId);
cache::rm('todayLeadsTime'.$userId);
cache::rm('checkBusinessCount' . $userId);
cache::rm('todayCustomerTime'.$userId);
cache::rm('newBusinessCount' . $userId);
cache::rm('todayBusinessTime'.$userId);
cache::rm('followLeadsTime'.$userId);
cache::rm('todayLeadsTime' . $userId);
cache::rm('followCustomerTime'.$userId);
cache::rm('todayCustomerTime' . $userId);
cache::rm('checkContractTime'.$userId);
cache::rm('todayBusinessTime' . $userId);
cache::rm('checkReceivablesTime'.$userId);
cache::rm('followLeadsTime' . $userId);
cache::rm('checkInvoiceTime'.$userId);
cache::rm('followCustomerTime' . $userId);
cache::rm('remindReceivablesPlanTime'.$userId);
cache::rm('checkContractTime' . $userId);
cache::rm('visitContractTime'.$userId);
cache::rm('checkReceivablesTime' . $userId);
cache::rm('endContractTime'.$userId);
cache::rm('checkInvoiceTime' . $userId);
cache::rm('remindCustomerTime'.$userId);
cache::rm('checkBusinessTime' . $userId);
cache::rm('remindReceivablesPlanTime' . $userId);
cache::rm('visitContractTime' . $userId);
cache::rm('endContractTime' . $userId);
cache::rm('remindCustomerTime' . $userId);
cache::rm('checkCustomerCheckTime' . $userId);
cache::rm('checkBusinessTime' . $userId);
cache::rm('newBusinessTime' . $userId);
return resultArray(['data' => '操作成功!']);
return resultArray(['data' => '操作成功!']);
}
}
}
}