Compare commits

..

No commits in common. '048ed843b84b4976e944b95a3f6812663df668c9' and 'dc39d426878f83ab64e38e2eeab9d7cbaf29c801' have entirely different histories.

@ -12,7 +12,6 @@ use think\Request;
use think\Db; use think\Db;
use app\common\adapter\AuthAdapter; use app\common\adapter\AuthAdapter;
use app\common\controller\Common; use app\common\controller\Common;
use think\Session;
class ApiCommon extends Common class ApiCommon extends Common
@ -26,9 +25,6 @@ class ApiCommon extends Common
$authKey = trim($header['authkey']); $authKey = trim($header['authkey']);
$sessionId = trim($header['sessionid']); $sessionId = trim($header['sessionid']);
if ($authKey == "wxwork" && Session::get('user_id')) {
return;
}
$paramArr = $request->param(); $paramArr = $request->param();
$platform = $paramArr['platform'] ? '_'.$paramArr['platform'] : ''; //请求平台(mobile,ding) $platform = $paramArr['platform'] ? '_'.$paramArr['platform'] : ''; //请求平台(mobile,ding)
$cache = Cache::get('Auth_'.$authKey.$platform); $cache = Cache::get('Auth_'.$authKey.$platform);

@ -295,7 +295,7 @@ class ExamineFlow extends ApiCommon
$flow_id = $param['flow_id']; $flow_id = $param['flow_id'];
$types = $param['types']; $types = $param['types'];
$types_id = $param['types_id']; $types_id = $param['types_id'];
$typesArr = ['crm_customer_check','crm_business','crm_contract', 'crm_receivables', 'crm_invoice', 'oa_examine', 'jxc_purchase', 'jxc_retreat', 'jxc_sale', 'jxc_salereturn', 'jxc_payment', 'jxc_collection', 'jxc_allocation', 'jxc_inventory']; $typesArr = ['crm_contract', 'crm_receivables', 'crm_invoice', 'oa_examine', 'jxc_purchase', 'jxc_retreat', 'jxc_sale', 'jxc_salereturn', 'jxc_payment', 'jxc_collection', 'jxc_allocation', 'jxc_inventory'];
if (!$types || !in_array($types, $typesArr)) { if (!$types || !in_array($types, $typesArr)) {
return resultArray(['error' => '参数错误']); return resultArray(['error' => '参数错误']);
} }

@ -14,9 +14,9 @@ class PoolConfigLogic
* 公海配置列表 * 公海配置列表
* *
* @param array $param page 页码limit 每页条数 * @param array $param page 页码limit 每页条数
* @return array
* @since 2021-03-30
* @author fanqi * @author fanqi
* @since 2021-03-30
* @return array
*/ */
public function getPoolList($param) public function getPoolList($param)
{ {
@ -33,11 +33,11 @@ class PoolConfigLogic
# 统计公海下的客户数量 # 统计公海下的客户数量
$customerData = []; $customerData = [];
$customerList = db('crm_customer_pool_relation')->field(['pool_id', 'count(customer_id) AS customer_count'])->group('pool_id')->select(); $customerList = db('crm_customer_pool_relation')->field(['pool_id', 'count(customer_id) AS customer_count'])->group('pool_id')->select();
foreach ($customerList as $key => $value) { foreach ($customerList AS $key => $value) {
$customerData[$value['pool_id']] = $value['customer_count']; $customerData[$value['pool_id']] = $value['customer_count'];
} }
foreach ($list as $key => $value) { foreach ($list AS $key => $value) {
# 公海管理员 # 公海管理员
$adminUserIds = trim($value['admin_user_ids'], ','); $adminUserIds = trim($value['admin_user_ids'], ',');
$adminUserNames = db('admin_user')->whereIn('id', $adminUserIds)->column('realname'); $adminUserNames = db('admin_user')->whereIn('id', $adminUserIds)->column('realname');
@ -66,9 +66,9 @@ class PoolConfigLogic
* 设置多公海配置 * 设置多公海配置
* *
* @param $param * @param $param
* @return bool
* @since 2021-03-30
* @author fanqi * @author fanqi
* @since 2021-03-30
* @return bool
*/ */
public function setPoolConfig($param) public function setPoolConfig($param)
{ {
@ -97,11 +97,6 @@ class PoolConfigLogic
return false; return false;
} }
if (empty($param['customer_type'])) {
$this->error = '请设置客户类型!';
return false;
}
$repeatWhere['pool_name'] = $param['pool_name']; $repeatWhere['pool_name'] = $param['pool_name'];
if (!empty($param['pool_id'])) $repeatWhere['pool_id'] = ['neq', $param['pool_id']]; if (!empty($param['pool_id'])) $repeatWhere['pool_id'] = ['neq', $param['pool_id']];
if (db('crm_customer_pool')->where($repeatWhere)->value('pool_id')) { if (db('crm_customer_pool')->where($repeatWhere)->value('pool_id')) {
@ -123,8 +118,7 @@ class PoolConfigLogic
'remain_day' => $param['remain_day'], 'remain_day' => $param['remain_day'],
'recycle_conf' => $param['recycle_conf'], 'recycle_conf' => $param['recycle_conf'],
'create_user_id' => $param['user_id'], 'create_user_id' => $param['user_id'],
'create_time' => time(), 'create_time' => time()
'customer_type' => $param['customer_type'],
]; ];
Db::startTrans(); Db::startTrans();
@ -167,9 +161,9 @@ class PoolConfigLogic
* 公海配置详情 * 公海配置详情
* *
* @param int $poolId 公海ID * @param int $poolId 公海ID
* @return array|bool
* @since 2021-03-30
* @author fanqi * @author fanqi
* @since 2021-03-30
* @return array|bool
*/ */
public function readPool($poolId) public function readPool($poolId)
{ {
@ -187,7 +181,7 @@ class PoolConfigLogic
$adminUserIds = trim($data['admin_user_ids'], ','); $adminUserIds = trim($data['admin_user_ids'], ',');
$data['admin_user_ids'] = $adminUserIds; $data['admin_user_ids'] = $adminUserIds;
$data['admin_user_info'] = db('admin_user')->field(['id', 'realname', 'thumb_img'])->whereIn('id', $adminUserIds)->select(); $data['admin_user_info'] = db('admin_user')->field(['id', 'realname', 'thumb_img'])->whereIn('id', $adminUserIds)->select();
foreach ($data['admin_user_info'] as $key => $value) { foreach ($data['admin_user_info'] AS $key => $value) {
$data['admin_user_info'][$key]['thumb_img'] = getFullPath($value['thumb_img']); $data['admin_user_info'][$key]['thumb_img'] = getFullPath($value['thumb_img']);
} }
@ -195,7 +189,7 @@ class PoolConfigLogic
$userIds = trim($data['user_ids'], ','); $userIds = trim($data['user_ids'], ',');
$data['user_ids'] = $userIds; $data['user_ids'] = $userIds;
$data['user_info'] = db('admin_user')->field(['id', 'realname', 'thumb_img'])->whereIn('id', $userIds)->select(); $data['user_info'] = db('admin_user')->field(['id', 'realname', 'thumb_img'])->whereIn('id', $userIds)->select();
foreach ($data['user_info'] as $key => $value) { foreach ($data['user_info'] AS $key => $value) {
$data['user_info'][$key]['thumb_img'] = getFullPath($value['thumb_img']); $data['user_info'][$key]['thumb_img'] = getFullPath($value['thumb_img']);
} }
@ -209,7 +203,7 @@ class PoolConfigLogic
# 公海规则 # 公海规则
$data['rule'] = db('crm_customer_pool_rule')->where('pool_id', $data['pool_id'])->select(); $data['rule'] = db('crm_customer_pool_rule')->where('pool_id', $data['pool_id'])->select();
foreach ($data['rule'] as $key => $value) { foreach ($data['rule'] AS $key => $value) {
if (!empty($value['level'])) { if (!empty($value['level'])) {
$data['rule'][$key]['level'] = json_decode($value['level'], true); $data['rule'][$key]['level'] = json_decode($value['level'], true);
$data['rule'][$key]['level_setting'] = json_decode($value['level'], true); $data['rule'][$key]['level_setting'] = json_decode($value['level'], true);
@ -226,9 +220,9 @@ class PoolConfigLogic
* 变更公海配置状态 * 变更公海配置状态
* *
* @param array $param pool_id 公海ID, status 状态1启用、0停用 * @param array $param pool_id 公海ID, status 状态1启用、0停用
* @return false|int|string
* @since 2021-03-30
* @author fanqi * @author fanqi
* @since 2021-03-30
* @return false|int|string
*/ */
public function changePoolStatus($param) public function changePoolStatus($param)
{ {
@ -252,9 +246,9 @@ class PoolConfigLogic
* 删除公海配置 * 删除公海配置
* *
* @param int $poolId 公海ID * @param int $poolId 公海ID
* @return bool
* @since 2021-03-30
* @author fanqi * @author fanqi
* @since 2021-03-30
* @return bool
*/ */
public function deletePool($poolId) public function deletePool($poolId)
{ {
@ -300,9 +294,9 @@ class PoolConfigLogic
* 转移公海客户 * 转移公海客户
* *
* @param array $param source_pool_id 源公海IDtarget_pool_id 目标公海ID * @param array $param source_pool_id 源公海IDtarget_pool_id 目标公海ID
* @return bool
* @since 2021-03-30
* @author fanqi * @author fanqi
* @since 2021-03-30
* @return bool
*/ */
public function transferPool($param) public function transferPool($param)
{ {
@ -319,7 +313,7 @@ class PoolConfigLogic
$diffCustomerIds = array_diff($sourceCustomerIds, $targetCustomerIds); $diffCustomerIds = array_diff($sourceCustomerIds, $targetCustomerIds);
$data = []; $data = [];
foreach ($diffCustomerIds as $key => $value) { foreach ($diffCustomerIds AS $key => $value) {
$data[] = [ $data[] = [
'customer_id' => $value, 'customer_id' => $value,
'pool_id' => $param['target_pool_id'] 'pool_id' => $param['target_pool_id']
@ -346,9 +340,9 @@ class PoolConfigLogic
/** /**
* 获取客户级别列表 * 获取客户级别列表
* *
* @return array
* @since 2021-04-22
* @author fanqi * @author fanqi
* @since 2021-04-22
* @return array
*/ */
public function getCustomerLevel() public function getCustomerLevel()
{ {
@ -363,9 +357,9 @@ class PoolConfigLogic
* 获取公海字段列表 * 获取公海字段列表
* *
* @param array $param pool_id 公海ID * @param array $param pool_id 公海ID
* @return bool|PDOStatement|string|Collection
* @since 2021-04-29
* @author fanqi * @author fanqi
* @since 2021-04-29
* @return bool|PDOStatement|string|Collection
*/ */
public function getPoolFieldList($param) public function getPoolFieldList($param)
{ {
@ -457,15 +451,15 @@ class PoolConfigLogic
* *
* @param array $rules 规则数据 * @param array $rules 规则数据
* @param int $poolId 公海ID * @param int $poolId 公海ID
* @return array
* @since 2021-03-30
* @author fanqi * @author fanqi
* @since 2021-03-30
* @return array
*/ */
private function getPoolRule($rules, $poolId) private function getPoolRule($rules, $poolId)
{ {
$result = []; $result = [];
foreach ($rules as $key => $value) { foreach ($rules AS $key => $value) {
$result[] = [ $result[] = [
'pool_id' => $poolId, 'pool_id' => $poolId,
'type' => $value['type'], 'type' => $value['type'],
@ -473,7 +467,7 @@ class PoolConfigLogic
'business_handle' => $value['business_handle'], 'business_handle' => $value['business_handle'],
'level_conf' => $value['level_conf'], 'level_conf' => $value['level_conf'],
'level' => json_encode($value['level']), 'level' => json_encode($value['level']),
'limit_day' => !empty($value['limit_day']) ? $value['limit_day'] : 0, 'limit_day' => !empty($value['limit_day']) ? $value['limit_day'] : 0
]; ];
} }
@ -485,15 +479,15 @@ class PoolConfigLogic
* *
* @param array $fields 字段列表 * @param array $fields 字段列表
* @param int $poolId 公海ID * @param int $poolId 公海ID
* @return array
* @since 2021-03-30
* @author fanqi * @author fanqi
* @since 2021-03-30
* @return array
*/ */
private function getPoolField($fields, $poolId) private function getPoolField($fields, $poolId)
{ {
$result = []; $result = [];
foreach ($fields as $key => $value) { foreach ($fields AS $key => $value) {
$result[] = [ $result[] = [
'pool_id' => $poolId, 'pool_id' => $poolId,
'name' => $value['name'], 'name' => $value['name'],

@ -176,58 +176,24 @@ class ExamineStep extends Common
} }
switch (trim($types)) { switch (trim($types)) {
case 'oa_examine' : case 'oa_examine' : $dataInfo = db('oa_examine')->where(['examine_id' => intval($types_id)])->field('create_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
$dataInfo = db('oa_examine')->where(['examine_id' => intval($types_id)])->field('create_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); case 'crm_contract' : $dataInfo = db('crm_contract')->where(['contract_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
break; case 'crm_receivables' : $dataInfo = db('crm_receivables')->where(['receivables_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
case 'crm_contract' : case 'crm_invoice': $dataInfo = db('crm_invoice')->where(['invoice_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
$dataInfo = db('crm_contract')->where(['contract_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); case 'jxc_purchase': $dataInfo = db('jxc_purchase')->where(['purchase_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
break; case 'jxc_retreat': $dataInfo = db('jxc_retreat')->where(['retreat_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
case 'crm_receivables' : case 'jxc_sale': $dataInfo = db('jxc_sale')->where(['sale_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
$dataInfo = db('crm_receivables')->where(['receivables_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); case 'jxc_salereturn': $dataInfo = db('jxc_salereturn')->where(['salereturn_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
break; case 'jxc_payment': $dataInfo = db('jxc_payment')->where(['payment_note_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
case 'crm_invoice': case 'jxc_collection': $dataInfo = db('jxc_collection')->where(['collection_note_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
$dataInfo = db('crm_invoice')->where(['invoice_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); case 'jxc_inventory': $dataInfo = db('jxc_inventory')->where(['inventory_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
break; case 'jxc_allocation': $dataInfo = db('jxc_allocation')->where(['allocation_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find(); break;
case 'jxc_purchase':
$dataInfo = db('jxc_purchase')->where(['purchase_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'jxc_retreat':
$dataInfo = db('jxc_retreat')->where(['retreat_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'jxc_sale':
$dataInfo = db('jxc_sale')->where(['sale_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'jxc_salereturn':
$dataInfo = db('jxc_salereturn')->where(['salereturn_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'jxc_payment':
$dataInfo = db('jxc_payment')->where(['payment_note_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'jxc_collection':
$dataInfo = db('jxc_collection')->where(['collection_note_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'jxc_inventory':
$dataInfo = db('jxc_inventory')->where(['inventory_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'jxc_allocation':
$dataInfo = db('jxc_allocation')->where(['allocation_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'crm_customer_check':
$dataInfo = db('crm_customer_check')->where(['customer_check_id' => intval($types_id)])->field('user_id,create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
case 'crm_business':
$dataInfo = db('crm_business')->where(['business_id' => intval($types_id)])->field('create_user_id,owner_user_id,check_user_id,flow_id,order_id,check_status,update_time')->find();
break;
} }
$stepInfo = []; $stepInfo = [];
if ($dataInfo['flow_id'] && !in_array($dataInfo['check_status'],['5'])) { if ($dataInfo['flow_id'] && !in_array($dataInfo['check_status'],['5'])) {
//固定审批流 //固定审批流
$stepInfo = db('admin_examine_step')->where(['flow_id' => $dataInfo['flow_id'],'order_id' => $dataInfo['order_id']])->find(); $stepInfo = db('admin_examine_step')->where(['flow_id' => $dataInfo['flow_id'],'order_id' => $dataInfo['order_id']])->find();
} }
if ($types=="crm_customer_check"){
$dataInfo['create_user_id']=$dataInfo['user_id'];
$dataInfo['owner_user_id']=$dataInfo['user_id'];
}
$data = []; $data = [];
$data['stepInfo'] = $stepInfo; $data['stepInfo'] = $stepInfo;
$data['step_id'] = $stepInfo['step_id'] ? : ''; $data['step_id'] = $stepInfo['step_id'] ? : '';
@ -257,9 +223,7 @@ class ExamineStep extends Common
} }
break; break;
case 2 : case 2 :
case 3 : case 3 :$examine_user_id_arr = stringToArray($stepInfo['user_id']); break;
$examine_user_id_arr = stringToArray($stepInfo['user_id']);
break;
case 4 : case 4 :
$order_id = $stepInfo['order_id'] ? $stepInfo['order_id']-1 : 0; $order_id = $stepInfo['order_id'] ? $stepInfo['order_id']-1 : 0;
$last_step_id = db('admin_examine_step')->where(['flow_id' => $stepInfo['flow_id'],'order_id' => $order_id])->value('step_id'); $last_step_id = db('admin_examine_step')->where(['flow_id' => $stepInfo['flow_id'],'order_id' => $order_id])->value('step_id');
@ -277,8 +241,7 @@ class ExamineStep extends Common
$examine_user_id_arr = stringToArray($examine_user_id); $examine_user_id_arr = stringToArray($examine_user_id);
} }
break; break;
default : default : $examine_user_id_arr = [];
$examine_user_id_arr = [];
} }
return array_unique($examine_user_id_arr) ? ','.implode(',',array_filter(array_unique($examine_user_id_arr))).',' : ''; return array_unique($examine_user_id_arr) ? ','.implode(',',array_filter(array_unique($examine_user_id_arr))).',' : '';
} }
@ -315,18 +278,10 @@ class ExamineStep extends Common
$adminUserId = model('User')->getAdminId(); //管理员ID $adminUserId = model('User')->getAdminId(); //管理员ID
//获取有审核权限的user_id //获取有审核权限的user_id
switch ($types) { switch ($types) {
case 'oa_examine' : case 'oa_examine' : $examine_user_id_arr = $userModel->getUserByPer('oa', 'examine', 'check'); break;
$examine_user_id_arr = $userModel->getUserByPer('oa', 'examine', 'check'); case 'crm_contract' : $examine_user_id_arr = $userModel->getUserByPer('crm', 'contract', 'check'); break;
break; case 'crm_receivables' : $examine_user_id_arr = $userModel->getUserByPer('crm', 'receivables', 'check'); break;
case 'crm_contract' : case 'crm_invoice' : $examine_user_id_arr = $userModel->getUserByPer('crm', 'invoice', 'check'); break;
$examine_user_id_arr = $userModel->getUserByPer('crm', 'contract', 'check');
break;
case 'crm_receivables' :
$examine_user_id_arr = $userModel->getUserByPer('crm', 'receivables', 'check');
break;
case 'crm_invoice' :
$examine_user_id_arr = $userModel->getUserByPer('crm', 'invoice', 'check');
break;
} }
$examine_user_id_arr = $examine_user_id_arr ? array_merge($examine_user_id_arr, $adminUserId) : $adminUserId; $examine_user_id_arr = $examine_user_id_arr ? array_merge($examine_user_id_arr, $adminUserId) : $adminUserId;
return $examine_user_id_arr; return $examine_user_id_arr;

@ -485,10 +485,7 @@ class Field extends Model
} }
//生成字段名 //生成字段名
if (!empty($param['field'])) { if (!$data['field']) $data['field'] = $this->createField($types, $types == 'oa_examine' ? 'oa_' : 'crm_');
$data['field'] = $param['field'];
} else if (!$data['field']) $data['field'] = $this->createField($types, $types == 'oa_examine' ? 'oa_' : 'crm_');
$rule = [ $rule = [
'field' => ['regex' => '/^[a-z]([a-z]|_)+[a-z]$/i'], 'field' => ['regex' => '/^[a-z]([a-z]|_)+[a-z]$/i'],

@ -278,22 +278,6 @@ class Message extends Common
* 客户待审批 * 客户待审批
*/ */
const CUSTOMER_CHECK_PASS = 59; const CUSTOMER_CHECK_PASS = 59;
/**
* 商机推进待审批
*/
const BUSINESS_ADVANCE_CHECK_TO_DO = 60;
/**
* 商机推进待审批
*/
const BUSINESS_ADVANCE_CHECK_REJECT = 61;
/**
* 商机推进待审批
*/
const BUSINESS_ADVANCE_CHECK_PASS = 62;
/**
* 新商机
*/
const BUSINESS_NEW = 63;
/** /**
* 消息类型 * 消息类型
@ -405,9 +389,6 @@ class Message extends Common
32 => [ 32 => [
'template' => '{from_user} 将您添加为线索 {title} 的成员。', 'template' => '{from_user} 将您添加为线索 {title} 的成员。',
], ],
63 => [
'template' => '{from_user} 创建了新的商机',
]
]; ];
/** /**
@ -458,10 +439,6 @@ class Message extends Common
self::CUSTOMER_CHECK_TO_DO, self::CUSTOMER_CHECK_TO_DO,
self::CUSTOMER_CHECK_REJECT, self::CUSTOMER_CHECK_REJECT,
self::CUSTOMER_CHECK_PASS, self::CUSTOMER_CHECK_PASS,
self::BUSINESS_ADVANCE_CHECK_TO_DO,
self::BUSINESS_ADVANCE_CHECK_REJECT,
self::BUSINESS_ADVANCE_CHECK_PASS,
self::BUSINESS_NEW,
], ],
'jxc' => [ 'jxc' => [
self::PURCHASE_TO_DO, self::PURCHASE_TO_DO,
@ -603,6 +580,7 @@ class Message extends Common
case self::CUSTOMER_CHECK_PASS: case self::CUSTOMER_CHECK_PASS:
case self::CUSTOMER_CHECK_REJECT: case self::CUSTOMER_CHECK_REJECT:
return CustomerCheck::where(['customer_check_id' => $data['action_id']])->value('name') ?: ''; return CustomerCheck::where(['customer_check_id' => $data['action_id']])->value('name') ?: '';
// 回款 // 回款
case self::RECEIVABLES_TO_DO: case self::RECEIVABLES_TO_DO:
case self::RECEIVABLES_REJECT: case self::RECEIVABLES_REJECT:
@ -632,10 +610,6 @@ class Message extends Common
// 商机 // 商机
case self::TEAM_BUSINESS: case self::TEAM_BUSINESS:
case self::BUSINESS_PASS: case self::BUSINESS_PASS:
case self::BUSINESS_ADVANCE_CHECK_TO_DO:
case self::BUSINESS_ADVANCE_CHECK_REJECT:
case self::BUSINESS_ADVANCE_CHECK_PASS:
case self::BUSINESS_NEW:
return BusinessModel::where(['business_id' => $data['action_id']])->value('name') ?: ''; return BusinessModel::where(['business_id' => $data['action_id']])->value('name') ?: '';
// 采购单 // 采购单

@ -13,7 +13,6 @@ use app\admin\model\Common;
use com\verify\HonrayVerify; use com\verify\HonrayVerify;
use think\Cache; use think\Cache;
use think\Request; use think\Request;
use think\Session;
class User extends Common class User extends Common
{ {
@ -648,15 +647,8 @@ class User extends Common
$data['loginExpire'] = $loginExpire; $data['loginExpire'] = $loginExpire;
//保存authKey信息 //保存authKey信息
$userData = []; $userData = [];
$wxuser_id = Session::get('wxuser_id');
if ($wxuser_id) {
$data['authKey'] = 'wxwork';
$userData['wxwork_id'] = $wxuser_id;
} else {
$userData['authkey'] = $authKey; $userData['authkey'] = $authKey;
$userData['authkey_time'] = time() + $loginExpire; $userData['authkey_time'] = time() + $loginExpire;
}
//把状态未激活至为启用 //把状态未激活至为启用
if ($userInfo['status'] == 2) { if ($userInfo['status'] == 2) {
$userData['status'] = 1; $userData['status'] = 1;

@ -69,11 +69,7 @@ function resultArray($array)
$array['data'] = ''; $array['data'] = '';
} elseif (isset($array['error'])) { } elseif (isset($array['error'])) {
$code = 400; $code = 400;
$array['data'] = '操作失败'; $array['data'] = '';
} elseif (isset($array['success'])) {
$array['error'] = '';
$array['data'] =$array['success'] ;
$code = 200;
} }
return json([ return json([
'code' => $code, 'code' => $code,
@ -838,8 +834,7 @@ function advancedQueryDataTransform($data, $condition)
* @version: 11.1.0 * @version: 11.1.0
* Date: 2021/9/2 14:44 * Date: 2021/9/2 14:44
*/ */
function advancedQueryDataUserform($data, $condition) function advancedQueryDataUserform($data, $condition){
{
if (in_array($condition, ['contains', 'notContains'])) { if (in_array($condition, ['contains', 'notContains'])) {
array_walk($data, function ($value, $key) use (&$data) { array_walk($data, function ($value, $key) use (&$data) {
$data[$key] = $value; $data[$key] = $value;
@ -847,7 +842,6 @@ function advancedQueryDataUserform($data, $condition)
} }
return $data; return $data;
} }
/** /**
* 等于(时间段)数据处理 * 等于(时间段)数据处理
* *

@ -9,7 +9,6 @@ namespace app\common\behavior;
use think\Cache; use think\Cache;
use think\Request; use think\Request;
use think\Db; use think\Db;
use think\Session;
class AuthenticateBehavior class AuthenticateBehavior
{ {
@ -33,9 +32,6 @@ class AuthenticateBehavior
/*获取头部信息*/ /*获取头部信息*/
$header = $request->header(); $header = $request->header();
$authKey = trim($header['authkey']); $authKey = trim($header['authkey']);
if ($authKey == "wxwork" && Session::get('user_id')) {
return true;
}
$paramArr = $request->param(); $paramArr = $request->param();
$platform = $paramArr['platform'] ? '_'.$paramArr['platform'] : ''; //请求分类(mobile,ding) $platform = $paramArr['platform'] ? '_'.$paramArr['platform'] : ''; //请求分类(mobile,ding)

@ -72,25 +72,19 @@ class PoolCommand extends Command
$this->timer = Timer::add($this->interval, function () { $this->timer = Timer::add($this->interval, function () {
# 只在凌晨12点至6点间执行 # 只在凌晨12点至6点间执行
if ((int)date('H') >= 0 && (int)date('H') < 6) { if ((int)date('H') >= 0 && (int)date('H') < 6) {
$this->poolRecover();
}
});
}
public function poolRecover()
{
# 公海规则 # 公海规则
$ruleList = db('crm_customer_pool_rule')->alias('rule')->field('rule.*') $ruleList = db('crm_customer_pool_rule')->alias('rule')->field('rule.*')
->join('__CRM_CUSTOMER_POOL__ pool', 'pool.pool_id = rule.pool_id', 'LEFT')->field("pool.customer_type")->where('pool.status', 1)->select(); ->join('__CRM_CUSTOMER_POOL__ pool', 'pool.pool_id = rule.pool_id', 'LEFT')->where('pool.status', 1)->select();
if (!empty($ruleList)) { if (!empty($ruleList)) {
# 符合公海条件的客户IDS # 符合公海条件的客户IDS
$customerIds = PoolCommand::getQueryCondition($ruleList); $customerIds = $this->getQueryCondition($ruleList);
# 整理客户公海关联数据 # 整理客户公海关联数据
$poolRelationData = PoolCommand::getCustomerPoolRelationData($customerIds); $poolRelationData = $this->getCustomerPoolRelationData($customerIds);
# 整理修改客户数据的条件(进入公海时间,前负责人... # 整理修改客户数据的条件(进入公海时间,前负责人...
$customerWhere = PoolCommand::getCustomerQueryCondition($customerIds); $customerWhere = $this->getCustomerQueryCondition($customerIds);
Db::startTrans(); Db::startTrans();
try { try {
@ -106,7 +100,7 @@ class PoolCommand extends Command
'into_pool_time' => time() 'into_pool_time' => time()
]); ]);
} }
PoolCommand::updateInfo($ruleList, $customerWhere); $this->updateInfo($ruleList,$customerWhere);
# 删除联系人的负责人 # 删除联系人的负责人
Db::name('crm_contacts')->whereIn('customer_id', $customerWhere)->update(['owner_user_id' => '']); Db::name('crm_contacts')->whereIn('customer_id', $customerWhere)->update(['owner_user_id' => '']);
@ -116,7 +110,8 @@ class PoolCommand extends Command
} }
} }
} }
});
}
/** /**
* 自动入公海操作记录 * 自动入公海操作记录
* @param $ruleList * @param $ruleList
@ -134,7 +129,7 @@ class PoolCommand extends Command
if (!empty($v1['limit_day'])) { if (!empty($v1['limit_day'])) {
$time = $v1['limit_day']; $time = $v1['limit_day'];
} else { } else {
$time = PoolCommand::getMinDay($levels); $time = $this->getMinDay($levels);
} }
} }
foreach ($customerWhere as $val) { foreach ($customerWhere as $val) {
@ -147,6 +142,7 @@ class PoolCommand extends Command
} }
protected function execute(Input $input, Output $output) protected function execute(Input $input, Output $output)
{ {
# 动态修改运行时参数 # 动态修改运行时参数
@ -231,9 +227,9 @@ class PoolCommand extends Command
foreach ($rules as $k => $v) { foreach ($rules as $k => $v) {
if (!isset($result[$v['pool_id']])) $result[$v['pool_id']] = []; if (!isset($result[$v['pool_id']])) $result[$v['pool_id']] = [];
if ($v['type'] == 1) $result[$v['pool_id']] = array_merge($result[$v['pool_id']], PoolCommand::getFollowUpQueryResult($v['level_conf'], $v['level'], $v['deal_handle'], $v['business_handle'], $v['customer_type'])); if ($v['type'] == 1) $result[$v['pool_id']] = array_merge($result[$v['pool_id']], $this->getFollowUpQueryResult($v['level_conf'], $v['level'], $v['deal_handle'], $v['business_handle']));
if ($v['type'] == 2) $result[$v['pool_id']] = array_merge($result[$v['pool_id']], PoolCommand::getBusinessQueryResult($v['level_conf'], $v['level'], $v['deal_handle'], $v['customer_type'])); if ($v['type'] == 2) $result[$v['pool_id']] = array_merge($result[$v['pool_id']], $this->getBusinessQueryResult($v['level_conf'], $v['level'], $v['deal_handle']));
if ($v['type'] == 3) $result[$v['pool_id']] = array_merge($result[$v['pool_id']], PoolCommand::getDealQueryResult($v['level_conf'], $v['level'], $v['business_handle'], $v['customer_type'])); if ($v['type'] == 3) $result[$v['pool_id']] = array_merge($result[$v['pool_id']], $this->getDealQueryResult($v['level_conf'], $v['level'], $v['business_handle']));
} }
return $result; return $result;
@ -250,7 +246,7 @@ class PoolCommand extends Command
* @since 2021-04-01 * @since 2021-04-01
* @author fanqi * @author fanqi
*/ */
private function getFollowUpQueryResult($type, $levels, $dealStatus, $businessStatus, $customerType) private function getFollowUpQueryResult($type, $levels, $dealStatus, $businessStatus)
{ {
# 转换格式 # 转换格式
$levels = json_decode($levels, true); $levels = json_decode($levels, true);
@ -282,10 +278,10 @@ class PoolCommand extends Command
} }
# 获取最小天数,对于没有设置级别的客户数据使用 # 获取最小天数,对于没有设置级别的客户数据使用
$minLimit = PoolCommand::getMinDay($levels); $minLimit = $this->getMinDay($levels);
$minTime = (time() - 24 * 60 * 60 * $minLimit); $minTime = (time() - 24 * 60 * 60 * $minLimit);
$where .= " OR ((ISNULL(`customer`.`level`) AND `customer`.`last_time` < " . $minTime . " AND `customer`.`last_time` > `customer`.`obtain_time`) OR (ISNULL(`customer`.`level`) AND `customer`.`obtain_time` < " . $minTime . " AND `customer`.`obtain_time` > `customer`.`last_time`) OR (ISNULL(`customer`.`level`) AND `customer`.`obtain_time` < " . $minTime . " AND ISNULL(`customer`.`last_time`))) )"; $where .= " OR ((!`customer`.`level` AND `customer`.`last_time` < " . $minTime . " AND `customer`.`last_time` > `customer`.`obtain_time`) OR (!`customer`.`level` AND `customer`.`obtain_time` < " . $minTime . " AND `customer`.`obtain_time` > `customer`.`last_time`) OR (!`customer`.`level` AND `customer`.`obtain_time` < " . $minTime . " AND ISNULL(`customer`.`last_time`))) )";
} }
# 选择不进入公海的客户(已成交客户) # 选择不进入公海的客户(已成交客户)
@ -300,7 +296,7 @@ class PoolCommand extends Command
# 查询符合条件的客户 # 查询符合条件的客户
return db('crm_customer') return db('crm_customer')
->alias('customer')->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT') ->alias('customer')->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT')
->where($where)->where(['customer.crm_lthugd' => array('in', $customerType)])->column('customer.customer_id'); ->where($where)->column('customer.customer_id');
} }
/** /**
@ -313,7 +309,7 @@ class PoolCommand extends Command
* @since 2021-04-01 * @since 2021-04-01
* @author fanqi * @author fanqi
*/ */
private function getBusinessQueryResult($type, $levels, $dealStatus, $customerType) private function getBusinessQueryResult($type, $levels, $dealStatus)
{ {
# 转换格式 # 转换格式
$levels = json_decode($levels, true); $levels = json_decode($levels, true);
@ -345,10 +341,10 @@ class PoolCommand extends Command
} }
# 获取最小天数,对于没有设置级别的客户数据使用 # 获取最小天数,对于没有设置级别的客户数据使用
$minLimit = PoolCommand::getMinDay($levels); $minLimit = $this->getMinDay($levels);
$minTime = (time() - 24 * 60 * 60 * $minLimit); $minTime = (time() - 24 * 60 * 60 * $minLimit);
$where .= " OR ((ISNULL(`business`.`customer_id`) AND `customer`.`obtain_time` < " . $minTime . " AND ISNULL(`customer`.`level`)) OR (`customer`.`obtain_time` < " . $minTime . " AND `customer`.`obtain_time` > `business`.`create_time` AND ISNULL(`customer`.`level`)) OR (`business`.`create_time` < " . $minTime . " AND `business`.`create_time` > `customer`.`obtain_time` AND ISNULL(`customer`.`level`))) )"; $where .= " OR ((ISNULL(`business`.`customer_id`) AND `customer`.`obtain_time` < " . $minTime . " AND !`customer`.`level`) OR (`customer`.`obtain_time` < " . $minTime . " AND `customer`.`obtain_time` > `business`.`create_time` AND !`customer`.`level`) OR (`business`.`create_time` < " . $minTime . " AND `business`.`create_time` > `customer`.`obtain_time` AND !`customer`.`level`)) )";
} }
# 选择不进入公海的客户(已成交客户) # 选择不进入公海的客户(已成交客户)
@ -360,7 +356,7 @@ class PoolCommand extends Command
# 查询匹配条件的客户 # 查询匹配条件的客户
return db('crm_customer')->alias('customer') return db('crm_customer')->alias('customer')
->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT') ->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT')
->where($where)->where(['customer.crm_lthugd' => array('in', $customerType)])->column('customer.customer_id'); ->where($where)->column('customer.customer_id');
} }
/** /**
@ -373,7 +369,7 @@ class PoolCommand extends Command
* @since 2021-04-01 * @since 2021-04-01
* @author fanqi * @author fanqi
*/ */
private function getDealQueryResult($type, $levels, $businessStatus, $customerType) private function getDealQueryResult($type, $levels, $businessStatus)
{ {
# 转换格式 # 转换格式
$levels = json_decode($levels, true); $levels = json_decode($levels, true);
@ -405,10 +401,10 @@ class PoolCommand extends Command
} }
# 获取最小天数,对于没有设置级别的客户数据使用 # 获取最小天数,对于没有设置级别的客户数据使用
$minLimit = PoolCommand::getMinDay($levels); $minLimit = $this->getMinDay($levels);
$minTime = (time() - 24 * 60 * 60 * $minLimit); $minTime = (time() - 24 * 60 * 60 * $minLimit);
$where .= " OR ((ISNULL(`contract`.`customer_id`) AND `customer`.`obtain_time` < " . $minTime . " AND ISNULL(`customer`.`level`)) OR (`customer`.`obtain_time` < " . $minTime . " AND `customer`.`obtain_time` > `contract`.`create_time` AND ISNULL(`customer`.`level`)) OR (`contract`.`create_time` < " . $minTime . " AND `contract`.`create_time` > `customer`.`obtain_time` AND ISNULL(`customer`.`level`))) )"; $where .= " OR ((ISNULL(`contract`.`customer_id`) AND `customer`.`obtain_time` < " . $minTime . " AND !`customer`.`level`) OR (`customer`.`obtain_time` < " . $minTime . " AND `customer`.`obtain_time` > `contract`.`create_time` AND !`customer`.`level`) OR (`contract`.`create_time` < " . $minTime . " AND `contract`.`create_time` > `customer`.`obtain_time` AND !`customer`.`level`)) )";
} }
# 选择不进入公海的客户(有商机客户) # 选择不进入公海的客户(有商机客户)
@ -421,7 +417,7 @@ class PoolCommand extends Command
return db('crm_customer')->alias('customer') return db('crm_customer')->alias('customer')
->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT') ->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT')
->join('__CRM_CONTRACT__ contract', 'contract.customer_id = customer.customer_id', 'LEFT') ->join('__CRM_CONTRACT__ contract', 'contract.customer_id = customer.customer_id', 'LEFT')
->where($where)->where(['customer.crm_lthugd' => array('in', $customerType)])->column('customer.customer_id'); ->where($where)->column('customer.customer_id');
} }
/** /**

@ -13,9 +13,6 @@ class Api {
protected static $getAccessToken = 'gettoken'; protected static $getAccessToken = 'gettoken';
protected static $contactInfo = 'externalcontact/get'; protected static $contactInfo = 'externalcontact/get';
protected static $getUserInfo = 'auth/getuserinfo';
protected static $userGet = 'user/get';
protected $corpId = ''; protected $corpId = '';
protected $corpSecret = ''; protected $corpSecret = '';
@ -40,30 +37,6 @@ class Api {
]); ]);
} }
/**
* 获取用户身份
* @param $code
* @return mixed
*/
function getUserInfo($code) {
return $this->get(self::$getUserInfo, [
'access_token' => $this->getAccessToken(),
'code' => $code
]);
}
/**
* 获取用户信息
* @param $code
* @return mixed
*/
function userGet($userid) {
return $this->get(self::$userGet, [
'access_token' => $this->getAccessToken(),
'userid' => $userid
]);
}
/** /**
* 获取accessToken * 获取accessToken
* @return false|mixed * @return false|mixed

@ -8,9 +8,6 @@
namespace app\crm\controller; namespace app\crm\controller;
use app\admin\controller\ApiCommon; use app\admin\controller\ApiCommon;
use app\admin\model\Message;
use app\admin\model\User;
use app\crm\logic\CustomerPoolLogic;
use app\crm\traits\SearchConditionTrait; use app\crm\traits\SearchConditionTrait;
use app\crm\traits\StarTrait; use app\crm\traits\StarTrait;
use think\Hook; use think\Hook;
@ -31,7 +28,7 @@ class Business extends ApiCommon
{ {
$action = [ $action = [
'permission' => [''], 'permission' => [''],
'allow' => ['statuslist', 'advance', 'product', 'system', 'count', 'setprimary', 'check'] 'allow' => ['statuslist', 'advance', 'product', 'system', 'count', 'setprimary']
]; ];
Hook::listen('check_auth', $action); Hook::listen('check_auth', $action);
$request = Request::instance(); $request = Request::instance();
@ -375,7 +372,7 @@ class Business extends ApiCommon
} }
/** /**
* 商机审批提交 * 商机状态推进
* @param business_id 商机ID * @param business_id 商机ID
* @param status_id 推进商机状态ID * @param status_id 推进商机状态ID
* @return * @return
@ -384,91 +381,31 @@ class Business extends ApiCommon
public function advance() public function advance()
{ {
$param = $this->param; $param = $this->param;
$examineStepModel = new \app\admin\model\ExamineStep();
$examineStatus = $param['examineStatus'] ?? 1; // 审批是否停用
$userInfo = $this->userInfo; $userInfo = $this->userInfo;
$userModel = new \app\admin\model\User(); $userModel = new \app\admin\model\User();
$is_end = $param['is_end'] ?: 0; //1赢单2输单3无效 $is_end = $param['is_end'] ?: 0; //1赢单2输单3无效
$remark = $param['statusRemark']; $remark = $param['statusRemark'];
unset($param['examineStatus']);
if (!$param['business_id']) { if (!$param['business_id']) {
return resultArray(['error' => '参数错误']); return resultArray(['error' => '参数错误']);
} }
$businessInfo = db('crm_business')->where(['business_id' => $param['business_id']])->find(); $businessInfo = db('crm_business')->where(['business_id' => $param['business_id']])->find();
if ($businessInfo['is_end']) { if ($businessInfo['is_end']) {
return resultArray(['error' => '已结束,请勿重复提交']); return resultArray(['error' => '已结束,不能推进']);
}
if ($businessInfo['flow_id'] && [$businessInfo]['check_status'] != 0) {
return resultArray(['error' => '已有审批流程,请勿重复提交']);
} }
$data = []; $data = [];
$data['submit_end_status'] = $is_end; $data['update_time'] = time();
$data['submit_remark'] = $remark; $data['is_end'] = $is_end;
$data['check_status'] = 0; $data['remark'] = $remark;
if (($examineStatus != false && $examineStatus != 'false') || $examineStatus == 1) { $data['check_status'] = 1;
// 审核判断(是否有符合条件的审批流) $data['flow_id'] = 13;
$examineFlowModel = new \app\admin\model\ExamineFlow(); $data['check_user_id'] = $param['check_user_id'];
if (!$examineFlowModel->checkExamine($userInfo['id'], 'crm_business')) { $data['flow_user_id'] = $param['check_user_id'];
return resultArray(['error' => '暂无审批人,无法创建']);
}
//添加审批相关信息
$examineFlowData = $examineFlowModel->getFlowByTypes($userInfo['id'], 'crm_business');
if (!$examineFlowData) {
return resultArray(['error' => '无可用审批流,请联系管理员']);
}
$data['flow_id'] = $examineFlowData['flow_id'];
//获取审批人信息
if ($examineFlowData['config'] == 1) {
//固定审批流
$nextStepData = $examineStepModel->nextStepUser($userInfo['id'], $examineFlowData['flow_id'], 'crm_business', 0, 0, 0);
$next_user_ids = arrayToString($nextStepData['next_user_ids']) ?: '';
$check_user_id = $next_user_ids ?: [];
$data['order_id'] = 1;
} else {
$check_user_id = $param['check_user_id'] ? ',' . $param['check_user_id'] . ',' : '';
}
if (!$check_user_id) {
return resultArray(['error' => '无可用审批人,请联系管理员']);
}
$data['check_user_id'] = is_array($check_user_id) ? ',' . implode(',', $check_user_id) . ',' : $check_user_id;
} else {
# 审批流停用,将状态改为审核通过
// $param['check_status'] = 2;
# 审批流停用,将状态改为正常 zjf 20210727 默认值为7
$data['check_status'] = 7;
}
$res = db('crm_business')->where(['business_id' => $param['business_id']])->update($data); $res = db('crm_business')->where(['business_id' => $param['business_id']])->update($data);
if (!$res) { if (!$res) {
return resultArray(['error' => '提交失败,请重试']); return resultArray(['error' => '推进失败,请重试']);
}
//站内信
$send_user_id = stringToArray($param['check_user_id']);
if ($send_user_id && empty($param['check_status'])) {
(new Message())->send(
Message::CUSTOMER_CHECK_TO_DO,
[
'title' => $param['name'],
'action_id' => $param['business_id'],
],
$send_user_id
);
}
# 创建待办事项的关联数据
$checkUserIds = db('crm_business')->where('business_id', $param['business_id'])->value('check_user_id');
$checkUserIdArray = stringToArray($checkUserIds);
$dealtData = [];
foreach ($checkUserIdArray as $kk => $vv) {
$dealtData[] = [
'types' => 'crm_business',
'types_id' => $param['business_id'],
'user_id' => $vv
];
} }
if (!empty($dealtData)) db('crm_dealt_relation')->insertAll($dealtData);
return resultArray(['success' => '提交成功']); return resultArray(['success' => '提交成功']);
} }
@ -632,151 +569,23 @@ class Business extends ApiCommon
public function check() public function check()
{ {
$param = $this->param;
$userInfo = $this->userInfo;
$user_id = $userInfo['id'];
$businessModel = model('Business');
$examineStepModel = new \app\admin\model\ExamineStep();
$examineRecordModel = new \app\admin\model\ExamineRecord();
$examineFlowModel = new \app\admin\model\ExamineFlow();
$customerModel = model('Customer');
$businessCheckData = [];
$businessCheckData['update_time'] = time();
$businessCheckData['check_status'] = 1; //0待审核1审核通中2审核通过3审核未通过
//权限判断
if (!$examineStepModel->checkExamine($user_id, 'crm_business', $param['id'])) {
return resultArray(['error' => $examineStepModel->getError()]);
}
//审批主体详情
$dataInfo = $businessModel->getDataById($param['id']);
$flowInfo = $examineFlowModel->getDataById($dataInfo['flow_id']);
$is_end = 0; // 1审批结束
$status = $param['status'] ? 1 : 0; //1通过0驳回
$checkData = [];
$checkData['check_user_id'] = $user_id;
$checkData['types'] = 'crm_business';
$checkData['types_id'] = $param['id'];
$checkData['check_time'] = time();
$checkData['content'] = $param['content'];
$checkData['flow_id'] = $dataInfo['flow_id'];
$checkData['order_id'] = $dataInfo['order_id'] ?: 1;
$checkData['status'] = $status;
if ($status == 1) {
if ($flowInfo['config'] == 1) {
//固定流程
//获取下一审批信息
$nextStepData = $examineStepModel->nextStepUser($dataInfo['owner_user_id'], $dataInfo['flow_id'], 'crm_business', $param['id'], $dataInfo['order_id'], $user_id);
$next_user_ids = $nextStepData['next_user_ids'] ?: [];
$businessCheckData['order_id'] = $nextStepData['order_id'] ?: '';
if (!$next_user_ids) {
$is_end = 1;
//审批结束
$checkData['check_status'] = !empty($status) ? 2 : 3;
$businessCheckData['check_user_id'] = '';
} else {
//修改主体相关审批信息
$businessCheckData['check_user_id'] = arrayToString($next_user_ids);
}
} else {
//自选流程
$is_end = $param['is_end'] ? 1 : '';
$check_user_id = $param['check_user_id'] ?: '';
if ($is_end !== 1 && empty($check_user_id)) {
return resultArray(['error' => '请选择下一审批人']);
}
$businessCheckData['check_user_id'] = arrayToString($param['check_user_id']);
}
if ($is_end == 1) {
$checkData['check_status'] = !empty($status) ? 2 : 3;
$businessCheckData['check_user_id'] = '';
$businessCheckData['check_status'] = 2;
}
} else {
//审批驳回
$is_end = 1;
$businessCheckData['check_status'] = 3;
//将审批记录至为无效
// $examineRecordModel->setEnd(['types' => 'crm_contract','types_id' => $param['id']]);
}
//已审批人ID
$businessCheckData['flow_user_id'] = stringToArray($dataInfo['flow_user_id']) ? arrayToString(array_merge(stringToArray($dataInfo['flow_user_id']), [$user_id])) : arrayToString([$user_id]);
$resBusiness = db('crm_business')->where(['business_id' => $param['id']])->update($businessCheckData);
if ($resBusiness) {
//审批记录
$resRecord = $examineRecordModel->createData($checkData);
//审核通过,修改相关信息
if ($is_end == 1 && !empty($status)) {
// 审批通过消息告知负责人
(new Message())->send(
Message::BUSINESS_ADVANCE_CHECK_PASS,
[
'title' => $dataInfo['name'],
'action_id' => $param['id']
],
$dataInfo['owner_user_id']
);
$businessData = [];
$businessData['business_id'] = $dataInfo['business_id'];
$businessData['is_end'] = $dataInfo['submit_end_status'];
$businessData['status_id'] = $dataInfo['status_id'];
$businessData['statusRemark'] = $dataInfo['submit_remark'];
$result = $this->advanceAfterCheck($businessData); $param = $this->param;
if (!empty($result)) return $result;
} else {
if ($status) {
//发送站内信
// 通过未完成,发送消息给
(new Message())->send(
Message::BUSINESS_ADVANCE_CHECK_TO_DO,
[
'from_user' => User::where(['id' => $dataInfo['owner_user_id']])->value('realname'),
'title' => $dataInfo['name'],
'action_id' => $param['id']
],
stringToArray($businessCheckData['check_user_id'])
);
} else {
(new Message())->send(
Message::BUSINESS_ADVANCE_CHECK_REJECT,
[
'title' => $dataInfo['name'],
'action_id' => $param['id']
],
$dataInfo['owner_user_id']
);
}
}
return resultArray(['success' => '审批成功']);
} else {
return resultArray(['error' => '审批失败,请重试!']);
}
}
/**
* 审核后商机状态推进
* @param business_id 商机ID
* @param status_id 推进商机状态ID
* @return
* @author Michael_xu
*/
private function advanceAfterCheck($param)
{
$userInfo = $this->userInfo; $userInfo = $this->userInfo;
$userModel = new \app\admin\model\User(); $userModel = new \app\admin\model\User();
$is_end = $param['is_end'] ?: 0; //1赢单2输单3无效 // $is_end = $param['is_end'] ?: 0; //1赢单2输单3无效
// $remark = $param['statusRemark'];
$check_status = $param['check_status'];
if (!$param['business_id']) { if (!$param['business_id']) {
return ['error' => '参数错误']; return resultArray(['error' => '参数错误']);
} }
if ($check_status == 2) {
$businessInfo = db('crm_business')->where(['business_id' => $param['business_id']])->find(); $businessInfo = db('crm_business')->where(['business_id' => $param['business_id']])->find();
if ($businessInfo['is_end']) { // if ($businessInfo['is_end']) {
return ['error' => '已结束,不能推进']; // return resultArray(['error' => '已结束,不能推进']);
} // }
//判断权限 //判断权限
$auth_user_ids = $userModel->getUserByPer('crm', 'business', 'update'); $auth_user_ids = $userModel->getUserByPer('crm', 'business', 'update');
//读写权限 //读写权限
@ -788,27 +597,25 @@ class Business extends ApiCommon
$status_id = $param['status_id'] ?: $businessInfo['status_id']; $status_id = $param['status_id'] ?: $businessInfo['status_id'];
$statusInfo = db('crm_business_status')->where(['type_id' => $businessInfo['type_id'], 'status_id' => $status_id])->find(); $statusInfo = db('crm_business_status')->where(['type_id' => $businessInfo['type_id'], 'status_id' => $status_id])->find();
if (!$statusInfo && !$is_end) { if (!$statusInfo && $businessInfo['is_end']) {
return ['error' => '参数错误']; return resultArray(['error' => '参数错误']);
} }
$data = []; $data = [];
$data['update_time'] = time(); $data['update_time'] = time();
$data['is_end'] = $is_end; // $data['is_end'] = $is_end;
// if ($is_end) { // $data['remark'] = $remark;
// $status_id = $is_end; $data['check_status'] = $check_status;
// }
$data['status_id'] = $status_id; $data['status_id'] = $status_id;
$data['status_time'] = time(); $data['status_time'] = time();
$data['remark'] = $param['submit_remark'];
$res = db('crm_business')->where(['business_id' => $param['business_id']])->update($data); $res = db('crm_business')->where(['business_id' => $param['business_id']])->update($data);
if (!$res) { if (!$res) {
return ['error' => '推进失败,请重试']; return resultArray(['error' => '推进失败,请重试']);
} else { } else {
# 商机变更后的名称 # 商机变更后的名称
$businessStatusName = Db::name('crm_business_status')->where('status_id', $param['status_id'])->value('name'); $businessStatusName = Db::name('crm_business_status')->where('status_id', $param['status_id'])->value('name');
if (empty($businessStatusName) && $is_end == 1) $businessStatusName = '赢单'; if (empty($businessStatusName) && $businessInfo['is_end'] == 1) $businessStatusName = '赢单';
if (empty($businessStatusName) && $is_end == 2) $businessStatusName = '输单'; if (empty($businessStatusName) && $businessInfo['is_end'] == 2) $businessStatusName = '输单';
if (empty($businessStatusName) && $is_end == 3) $businessStatusName = '无效'; if (empty($businessStatusName) && $businessInfo['is_end'] == 3) $businessStatusName = '无效';
# 添加活动记录 # 添加活动记录
Db::name('crm_activity')->insert([ Db::name('crm_activity')->insert([
'type' => 3, 'type' => 3,
@ -821,9 +628,24 @@ class Business extends ApiCommon
'customer_ids' => ',' . $businessInfo['customer_id'] . ',' 'customer_ids' => ',' . $businessInfo['customer_id'] . ','
]); ]);
# 删除待办事项的关联数据
db('crm_dealt_relation')->where(['types' => ['eq', 'crm_business'], 'types_id' => ['eq', $data['business_id']]])->delete();
# 创建待办事项的关联数据
$checkUserIds = db('crm_business')->where('business_id', $data['business_id'])->value('check_user_id');
$checkUserIdArray = stringToArray($checkUserIds);
$dealtData = [];
foreach ($checkUserIdArray AS $kk => $vv) {
$dealtData[] = [
'types' => 'crm_business',
'types_id' => $data['business_id'],
'user_id' => $vv
];
}
if (!empty($dealtData)) db('crm_dealt_relation')->insertAll($dealtData);
//推进记录添加 //推进记录添加
$temp['status_id'] = $status_id ?: 0; $temp['status_id'] = $status_id ?: 0;
$temp['is_end'] = $is_end ?: 0; $temp['is_end'] = $businessInfo['is_end'] ?: 0;
$temp['business_id'] = $param['business_id']; $temp['business_id'] = $param['business_id'];
$temp['create_time'] = time(); $temp['create_time'] = time();
$temp['owner_user_id'] = $userInfo['id']; $temp['owner_user_id'] = $userInfo['id'];
@ -840,7 +662,18 @@ class Business extends ApiCommon
'status_list' => $businessStatus 'status_list' => $businessStatus
]; ];
return ''; return resultArray(['data' => $result]);
}
} else {
$data = [];
$data['update_time'] = time();
$data['is_end'] = 0;
$data['remark'] = '';
$data['check_status'] = $check_status;
$res = db('crm_business')->where(['business_id' => $param['business_id']])->update($data);
if (!$res) {
return resultArray(['error' => '推进失败,请重试']);
}
} }
} }

@ -9,11 +9,9 @@ namespace app\crm\controller;
use app\common\wework\api\Api; use app\common\wework\api\Api;
use app\common\wework\callback\WXBizMsgCrypt; use app\common\wework\callback\WXBizMsgCrypt;
use think\Cache;
use think\Controller; use think\Controller;
use think\Log; use think\Log;
use think\Request; use think\Request;
use think\Session;
class Callback extends Controller class Callback extends Controller
{ {
@ -35,43 +33,15 @@ class Callback extends Controller
switch ($simpleXMLElement->Event->__toString()) { switch ($simpleXMLElement->Event->__toString()) {
case 'change_external_contact': case 'change_external_contact':
$api = new Api(config('wework.corpId'), config('wework.corpSecret')); $api = new Api(config('wework.corpId'), config('wework.corpSecret'));
$contactInfo = $api->contactInfo($simpleXMLElement->ExternalUserID->__toString()); $contactInfo = $api->contactInfo('wm9nLQEAAA6lshIXRN5xdd1iZjqevSyA');
foreach ($contactInfo['follow_user'] as $contactUserInfo) { foreach ($contactInfo['follow_user'] as $contactUserInfo) {
if ($contactUserInfo['userid'] == $simpleXMLElement->UserID->__toString()) { if ($contactUserInfo['userid'] == $simpleXMLElement->UserID->__toString()) {
$customerInfo = model('Customer')->where('name', $contactUserInfo['remark_corp_name'])->find(); $customerInfo = model('Customer')->where('name', $contactUserInfo['remark_corp_name'])->find();
if ($customerInfo) { if ($customerInfo) {
$wxwork = db('admin_wxwork')->where("user_id", $contactUserInfo['userid'])->find();
if (!$wxwork) {
$userGet = $api->userGet($contactUserInfo['userid']);
$wxwork = [
'user_id' => $userGet['userid'],
'name' => $userGet['name'],
'create_time' => time(),
'update_time' => time(),
];
db('admin_wxwork')->insert($wxwork);
$wxwork = db('admin_wxwork')->where("user_id", $contactUserInfo['userid'])->find();
if (!$wxwork) {
Log::record('联系人添加失败');
return;
}
}
if ($wxwork['update_time']+86400*3 < time()) {
db('admin_wxwork')->where("id", $wxwork['id'])->update([
'name' => $userGet['name'],
'update_time' => time(),
]);
}
$contactsInfo = model('Contacts')->where([ $contactsInfo = model('Contacts')->where([
'external_userid' => $simpleXMLElement->ExternalUserID->__toString(), 'name' => $contactUserInfo['remark'],
'customer_id' => $customerInfo['customer_id'], 'customer_id' => $customerInfo['customer_id']
'wxwork_id' => $wxwork['id']
])->find(); ])->find();
$mobile = '';
if ($contactUserInfo['remark_mobiles']) {
$mobile = $contactUserInfo['remark_mobiles'][0];
}
if (!$contactsInfo) { if (!$contactsInfo) {
$param = [ $param = [
'business_id' => null, 'business_id' => null,
@ -79,22 +49,13 @@ class Callback extends Controller
'owner_user_id' => 1, 'owner_user_id' => 1,
'customer_id' => $customerInfo['customer_id'], 'customer_id' => $customerInfo['customer_id'],
'name' => $contactUserInfo['remark'], 'name' => $contactUserInfo['remark'],
'mobile' => $mobile, 'mobile' => $contactUserInfo['remark_mobiles'][0],
'external_userid' => $simpleXMLElement->ExternalUserID->__toString(),
'wxwork_id' => $wxwork['id']
]; ];
if (model('Contacts')->createData($param)) { if (model('Contacts')->createData($param)) {
Log::record('联系人添加成功'); Log::record('联系人添加成功');
} else { } else {
Log::record('联系人添加失败'); Log::record('联系人添加失败');
} }
} else {
$param = [
'name' => $contactUserInfo['remark'],
'mobile' => $mobile
];
model('Contacts')->where('contacts_id', $contactsInfo['contacts_id'])->update($param);
Log::record('联系人更新成功');
} }
} }
} }
@ -122,43 +83,4 @@ class Callback extends Controller
} }
} }
} }
public function work() {
$code = Request::instance()->get('code');
$api = new Api(config('wework.corpId'), config('wework.corpSecret'));
$userInfo = $api->getUserInfo($code);
Log::record('用户信息'.json_encode($userInfo));
if (isset($userInfo['userid']) && $userInfo['userid']) {
Session::set('wxuser_id', $userInfo['userid']);
$adminUser = db('admin_user')->where('wxwork_id', $userInfo['userid'])->find();
if($adminUser['status']==1){
if ($adminUser) {
Session::set('user_id', $adminUser['id']);
$info['userInfo'] = $adminUser;
$info['sessionId'] = session_id();
// $info['_AUTH_LIST_'] = $dataList['rulesList'];
$info['authKey'] = 'wxwork';
if (!Cache::get('Auth_wxwork')) {
Cache::set('Auth_wxwork', $info);
}
return redirect('http://web.lbschem.com:8088/?authkey=wxwork&sessionid='.session_id());
} elseif (Session::get('user_id')) {
db('admin_user')->where('id', Session::get('user_id'))->update([
'wxwork_id' => $userInfo['userid']
]);
$adminUser = db('admin_user')->where('id', Session::get('user_id'))->find();
$info['userInfo'] = $adminUser;
$info['sessionId'] = session_id();
// $info['_AUTH_LIST_'] = $dataList['rulesList'];
$info['authKey'] = 'wxwork';
if (!Cache::get('Auth_wxwork')) {
Cache::set('Auth_wxwork', $info);
}
return redirect('http://web.lbschem.com:8088/?authkey=wxwork&sessionid='.session_id());
}
}
}
return redirect('http://web.lbschem.com:8088/');
}
} }

@ -31,7 +31,7 @@ class Customer extends ApiCommon
{ {
$action = [ $action = [
'permission' => ['exceldownload', 'setfollow', 'delete'], 'permission' => ['exceldownload', 'setfollow', 'delete'],
'allow' => ['read', 'system', 'count', 'poolauthority', 'level','type'] 'allow' => ['read', 'system', 'count', 'poolauthority', 'level']
]; ];
Hook::listen('check_auth', $action); Hook::listen('check_auth', $action);
$request = Request::instance(); $request = Request::instance();
@ -123,14 +123,6 @@ class Customer extends ApiCommon
$authData['dataAuth'] = (int)0; $authData['dataAuth'] = (int)0;
return resultArray(['data' => $authData]); return resultArray(['data' => $authData]);
} }
// 判断是否有客户捞取审批
$customerCheck = db('crm_customer_check')->where(['customer_id' => $param['id']])->where(['check_status' => 0])->find();
if (!empty($customerCheck)) {
$data['flow_id'] = $customerCheck['flow_id'];
$data['owner_user_id'] = $customerCheck['user_id'];
$data['customer_check_id'] = $customerCheck['customer_check_id'];
$data['apply_user_name'] = db('admin_user')->where('id', $customerCheck['create_user_id'])->column("username");
}
return resultArray(['data' => $data]); return resultArray(['data' => $data]);
} }
@ -423,25 +415,13 @@ class Customer extends ApiCommon
# 消息数据 # 消息数据
$message = []; $message = [];
# 获取公海规则数据
$customerPoolData = db('crm_customer_pool')->where('pool_id=' . $poolId)->column(['customer_type']);
$customerTypeArray = explode(',', $customerPoolData[0]);
# 获取客户数据 # 获取客户数据
$customerData = []; $customerData = [];
$customerList = db('crm_customer')->field(['customer_id', 'owner_user_id', 'name', 'crm_lthugd'])->whereIn('customer_id', $customerIds)->select(); $customerList = db('crm_customer')->field(['customer_id', 'owner_user_id', 'name'])->whereIn('customer_id', $customerIds)->select();
foreach ($customerList as $key => $value) { foreach ($customerList as $key => $value) {
# 判断客户类型是否符合公海池客户类型
if (!in_array($value['crm_lthugd'], $customerTypeArray)) {
$message[] = '客户类型与公海池类型不匹配!';
return resultArray(['error' => $message]);
}
$customerData[$value['customer_id']] = $value; $customerData[$value['customer_id']] = $value;
} }
# 整理数据 # 整理数据
$ip = request()->ip(); $ip = request()->ip();
$poolRelationData = []; $poolRelationData = [];
@ -1187,20 +1167,4 @@ class Customer extends ApiCommon
return resultArray(['data' => $data]); return resultArray(['data' => $data]);
} }
/**
* 客户类型列表
*
* @return \think\response\Json
* @since 2021-03-29
* @author fanqi
*/
public function type()
{
$data = db('admin_field')->where(['types' => 'crm_customer', 'field' => 'crm_lthugd'])->value('options');
$data = explode(',', $data);
return resultArray(['data' => $data]);
}
} }

@ -43,8 +43,7 @@ class CustomerPool extends ApiCommon
'setfieldconfig', 'setfieldconfig',
'exceldownload', 'exceldownload',
'import', 'import',
'export', 'export'
'checkCustomerReveive'
] ]
]; ];
Hook::listen('check_auth', $action); Hook::listen('check_auth', $action);
@ -424,11 +423,11 @@ class CustomerPool extends ApiCommon
$customerCheckData['update_time'] = time(); $customerCheckData['update_time'] = time();
$customerCheckData['check_status'] = 1; //0待审核1审核通中2审核通过3审核未通过 $customerCheckData['check_status'] = 1; //0待审核1审核通中2审核通过3审核未通过
//权限判断 //权限判断
if (!$examineStepModel->checkExamine($user_id, 'crm_customer_check', $param['id'])) { if (!$examineStepModel->checkExamine($user_id, 'crm_contract', $param['id'])) {
return resultArray(['error' => $examineStepModel->getError()]); return resultArray(['error' => $examineStepModel->getError()]);
} }
//审批主体详情 //审批主体详情
$dataInfo = db('crm_customer_check')->where('customer_check_id', 'in', $param['id'])->find(); $dataInfo = db('crm_customer_check')->where('customer_check_id', 'in', $param['customer_check_id'])->find();
$flowInfo = $examineFlowModel->getDataById($dataInfo['flow_id']); $flowInfo = $examineFlowModel->getDataById($dataInfo['flow_id']);
$is_end = 0; // 1审批结束 $is_end = 0; // 1审批结束
@ -490,7 +489,7 @@ class CustomerPool extends ApiCommon
if ($is_end == 1 && !empty($status)) { if ($is_end == 1 && !empty($status)) {
// 审批通过消息告知负责人 // 审批通过消息告知负责人
(new Message())->send( (new Message())->send(
Message::CUSTOMER_CHECK_PASS, Message::CONTRACT_PASS,
[ [
'title' => $dataInfo['name'], 'title' => $dataInfo['name'],
'action_id' => $param['id'] 'action_id' => $param['id']
@ -536,20 +535,4 @@ class CustomerPool extends ApiCommon
return resultArray(['error' => '审批失败,请重试!']); return resultArray(['error' => '审批失败,请重试!']);
} }
} }
/**
* 总经理公海池消息提醒
*
* @return Json
* @since 2021-04-14
* @author fanqi
*/
public function num()
{
$customerPoolCount = db('crm_customer_pool_relation')->where("pool_id",array('eq',3))
->count();
return resultArray(['data' => $customerPoolCount]);
}
} }

@ -219,16 +219,6 @@ class Index extends ApiCommon
$param['end_time']=$param['end_time'].' 23:59:59'; $param['end_time']=$param['end_time'].' 23:59:59';
} }
$list = $businessModel->getFunnel($param); $list = $businessModel->getFunnel($param);
$list['list'][] = [
"name" => "赢单",
"status_id" => "10000",
"status_name" => "赢单",
];
$list['list'][] = [
"name" => "输单",
"status_id" => "10001",
"status_name" => "输单",
];
return resultArray(['data' => $list]); return resultArray(['data' => $list]);
} }
@ -712,11 +702,7 @@ class Index extends ApiCommon
$userInfo = $this->userInfo; $userInfo = $this->userInfo;
$param['user_id'] = $param['user_id'] ?: $userInfo['id']; $param['user_id'] = $param['user_id'] ?: $userInfo['id'];
$indexModel = new IndexLogic; $indexModel = new IndexLogic;
if ($param['status_id'] == "10000" || $param['status_id'] == "10001") {
$param['funnel'] = $param['status_id'];
}
$data = $indexModel->businessList($param); $data = $indexModel->businessList($param);
return resultArray(['data' => $data]); return resultArray(['data' => $data]);
} }
@ -768,8 +754,7 @@ class Index extends ApiCommon
* 跟进详情 * 跟进详情
* @return \think\response\Json * @return \think\response\Json
*/ */
public function activityList() public function activityList(){
{
$param = $this->param; $param = $this->param;
$userInfo = $this->userInfo; $userInfo = $this->userInfo;
$param['id']=$userInfo['id']; $param['id']=$userInfo['id'];

@ -42,10 +42,7 @@ 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);
@ -609,13 +606,12 @@ class Message extends ApiCommon
unset($param['type']); unset($param['type']);
unset($param['isSub']); unset($param['isSub']);
$businessModel = model('Business'); $businessModel = model('Business');
// $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));
} }
$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); $data = $businessModel->getDataList($param);
// p($contractModel->getLastSql());
if ($types == 'list') { if ($types == 'list') {
return resultArray(['data' => $data]); return resultArray(['data' => $data]);
} }
@ -775,7 +771,7 @@ class Message extends ApiCommon
} }
# 处理待审核合同、回款、发票 # 处理待审核合同、回款、发票
if (in_array($type, ['checkContract', 'checkReceivables', 'checkInvoice', 'checkBusiness', 'checkCustomerCheck', 'newBusiness'])) { if (in_array($type, ['checkContract', 'checkReceivables', 'checkInvoice','checkBusiness'])) {
$where['check_status'] = ['lt', '2']; $where['check_status'] = ['lt', '2'];
$where['check_user_id'] = ['like', ',%' . $userId . '%,']; $where['check_user_id'] = ['like', ',%' . $userId . '%,'];
@ -796,19 +792,8 @@ class Message extends ApiCommon
} }
# 商机 # 商机
if ($type == 'checkBusiness') { if ($type == 'checkBusiness') {
$businessId = !empty($typeId) ? $typeId : Db::name('crm_business')->where($where)->column('business_id'); $invoiceId = !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(); db('crm_dealt_relation')->where('user_id', $userId)->where('types', 'crm_business')->whereIn('types_id', $invoiceId)->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();
} }
} }
@ -896,9 +881,6 @@ class Message extends ApiCommon
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('checkBusinessCount' . $userId);
cache::rm('newBusinessCount' . $userId);
cache::rm('todayLeadsTime' . $userId); cache::rm('todayLeadsTime' . $userId);
cache::rm('todayCustomerTime' . $userId); cache::rm('todayCustomerTime' . $userId);
@ -913,9 +895,6 @@ class Message extends ApiCommon
cache::rm('visitContractTime' . $userId); cache::rm('visitContractTime' . $userId);
cache::rm('endContractTime' . $userId); cache::rm('endContractTime' . $userId);
cache::rm('remindCustomerTime' . $userId); cache::rm('remindCustomerTime' . $userId);
cache::rm('checkCustomerCheckTime' . $userId);
cache::rm('checkBusinessTime' . $userId);
cache::rm('newBusinessTime' . $userId);
return resultArray(['data' => '操作成功!']); return resultArray(['data' => '操作成功!']);
} }
} }

@ -447,9 +447,9 @@ class CustomerPoolLogic extends Common
* 领取公海客户 * 领取公海客户
* *
* @param array $param user_id 领取人IDcustomer_id 要领取的客户ID * @param array $param user_id 领取人IDcustomer_id 要领取的客户ID
* @return array
* @since 2021-04-15
* @author fanqi * @author fanqi
* @since 2021-04-15
* @return array
*/ */
public function receiveCustomers($param) public function receiveCustomers($param)
{ {
@ -467,7 +467,7 @@ class CustomerPoolLogic extends Common
$customerData = $this->getCustomerList($customerId); $customerData = $this->getCustomerList($customerId);
# 剔除非公海客户 # 剔除非公海客户
foreach ($customerId as $key => $value) { foreach ($customerId AS $key => $value) {
if (!empty($customerData[$value]['owner_user_id'])) { if (!empty($customerData[$value]['owner_user_id'])) {
$message[] = '客户《' . $customerData[$value]['name'] . '》领取失败,失败原因:不是公海客户!'; $message[] = '客户《' . $customerData[$value]['name'] . '》领取失败,失败原因:不是公海客户!';
@ -487,7 +487,7 @@ class CustomerPoolLogic extends Common
$failCustomer = []; $failCustomer = [];
if (!is_bool($exceedCount) && !empty($exceedCount) && $exceedCount > 0) { if (!is_bool($exceedCount) && !empty($exceedCount) && $exceedCount > 0) {
$failCustomer = array_slice($customerId, count($customerId) - $exceedCount); $failCustomer = array_slice($customerId, count($customerId) - $exceedCount);
foreach ($failCustomer as $key => $value) { foreach ($failCustomer AS $key => $value) {
$message[] = '客户《' . $customerData[$value]['name'] . '》领取失败,失败原因:持有客户数达到上限!'; $message[] = '客户《' . $customerData[$value]['name'] . '》领取失败,失败原因:持有客户数达到上限!';
} }
} }
@ -503,7 +503,7 @@ class CustomerPoolLogic extends Common
# 前负责人N天内不能领取客户 # 前负责人N天内不能领取客户
if (!empty($poolConfig['before_owner_conf'])) { if (!empty($poolConfig['before_owner_conf'])) {
foreach ($addCustomerId as $key => $value) { foreach ($addCustomerId AS $key => $value) {
# 是前负责人,检查前负责人是否能够领取。 # 是前负责人,检查前负责人是否能够领取。
if ($userId == $customerData[$value]['before_owner_user_id']) { if ($userId == $customerData[$value]['before_owner_user_id']) {
$restrictDay = $customerData[$value]['into_pool_time'] + 86400 * $poolConfig['before_owner_day']; $restrictDay = $customerData[$value]['into_pool_time'] + 86400 * $poolConfig['before_owner_day'];
@ -536,8 +536,7 @@ class CustomerPoolLogic extends Common
'owner_user_id' => $userId, 'owner_user_id' => $userId,
'before_owner_user_id' => 0, 'before_owner_user_id' => 0,
'into_pool_time' => 0, 'into_pool_time' => 0,
'obtain_time' => time(), 'obtain_time' => time()
'is_allocation' => 1,
]; ];
# 整理字段操作记录和数据日志的数据 # 整理字段操作记录和数据日志的数据
@ -545,7 +544,7 @@ class CustomerPoolLogic extends Common
$addActionRecordData = []; $addActionRecordData = [];
$addOperationLogData = []; $addOperationLogData = [];
$addReceiveData = []; $addReceiveData = [];
foreach ($addCustomerId as $key => $value) { foreach ($addCustomerId AS $key => $value) {
$addActionRecordData[] = [ $addActionRecordData[] = [
'user_id' => $userId, 'user_id' => $userId,
'types' => 'crm_customer', 'types' => 'crm_customer',
@ -1140,12 +1139,12 @@ class CustomerPoolLogic extends Common
$customerCheckModel = model('CustomerCheck'); $customerCheckModel = model('CustomerCheck');
$examineStepModel = new \app\admin\model\ExamineStep(); $examineStepModel = new \app\admin\model\ExamineStep();
$examineStatus = $param['examineStatus'] ?? 1; // 审批是否停用 $examineStatus = $param['examineStatus'] ?? 1; // 审批是否停用
$param['check_user_id'] =1 ;// 临时测试需删除
unset($param['examineStatus']); unset($param['examineStatus']);
$dataInfo = db('crm_customer_check')->where('customer_id', 'in', $param['customer_id'])->find(); $dataInfo = db('crm_customer_check')->where('customer_id', 'in', $param['customer_id'])->find();
if ($dataInfo) {
if (!empty($dataInfo)&& $dataInfo['check_status'] < 2) {
return '客户已被领取待审批,请联系管理员'; return '客户已被领取待审批,请联系管理员';
} }

@ -282,8 +282,8 @@ class MessageLogic extends Common
$param['check_status'] = ['lt', 2]; $param['check_status'] = ['lt', 2];
$param['check_user_id'] = ['like', '%,'. $param['user_id'] .',%']; $param['check_user_id'] = ['like', '%,'. $param['user_id'] .',%'];
# 要提醒的商机ID # 要提醒的商机ID
$customerCheckIdArray = db('crm_dealt_relation')->where(['types' => ['eq', 'crm_customer_check'], 'user_id' => ['eq', $param['user_id']]])->column('types_id'); $businessIdArray = db('crm_dealt_relation')->where(['types' => ['eq', 'crm_customer_check'], 'user_id' => ['eq', $param['user_id']]])->column('types_id');
$param['customerCheckIdArray'] = !empty($customerCheckIdArray) ? $customerCheckIdArray : -1; $param['businessIdArray'] = !empty($businessIdArray) ? $businessIdArray : -1;
break; break;
case '2' : case '2' :
# 全部 # 全部

@ -6,7 +6,6 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\crm\model; namespace app\crm\model;
use app\admin\model\Message;
use app\admin\traits\FieldVerificationTrait; use app\admin\traits\FieldVerificationTrait;
use think\Db; use think\Db;
use app\admin\model\Common; use app\admin\model\Common;
@ -52,7 +51,6 @@ class Business extends Common
$overdue = $request['overdue']; // 待办事项下需联系商机(逾期) $overdue = $request['overdue']; // 待办事项下需联系商机(逾期)
$businessIdArray = $request['businessIdArray']; // 待办事项提醒参数 $businessIdArray = $request['businessIdArray']; // 待办事项提醒参数
$isMessage = !empty($request['isMessage']); $isMessage = !empty($request['isMessage']);
$funnelQuery = $request['funnel']; // 销售漏斗查询赢单输单
unset($request['scene_id']); unset($request['scene_id']);
unset($request['search']); unset($request['search']);
unset($request['user_id']); unset($request['user_id']);
@ -66,7 +64,6 @@ class Business extends Common
unset($request['overdue']); unset($request['overdue']);
unset($request['isMessage']); unset($request['isMessage']);
unset($request['businessIdArray']); unset($request['businessIdArray']);
unset($request['funnel']);
$request = $this->fmtRequest($request); $request = $this->fmtRequest($request);
$requestMap = $request['map'] ?: []; $requestMap = $request['map'] ?: [];
$sceneModel = new \app\admin\model\Scene(); $sceneModel = new \app\admin\model\Scene();
@ -144,18 +141,6 @@ class Business extends Common
}; };
} }
} }
// 销售漏斗处理
if (!empty($funnelQuery)){
unset($map['business.status_id']);
unset($map['business.is_end']);
switch ($funnelQuery){
case '10000':// 赢单
$map['business.is_end']=1;
break;
case "10001":// 输单
$map['business.is_end']=2;
}
}
//联系人商机 //联系人商机
if ($contacts_id) { if ($contacts_id) {
@ -408,6 +393,7 @@ class Business extends Common
} }
} }
} }
# 设置今日需联系商机 # 设置今日需联系商机
if (!empty($param['next_time']) && $param['next_time'] >= strtotime(date('Y-m-d 00:00:00'))) $param['is_dealt'] = 0; if (!empty($param['next_time']) && $param['next_time'] >= strtotime(date('Y-m-d 00:00:00'))) $param['is_dealt'] = 0;
@ -451,31 +437,6 @@ class Business extends Common
}); });
db('crm_business_data')->insertAll($businessData); db('crm_business_data')->insertAll($businessData);
//站内信
$userInfo = db('admin_user')->where(['id' => $param['create_user_id']])->find();
$send_user_id = stringToArray(getUserSuperior($userInfo['structure_id'], 0));
(new Message())->send(
Message::CUSTOMER_CHECK_TO_DO,
[
'title' => $param['name'],
'action_id' => $this->business_id
],
$send_user_id
);
$data = [];
$data['business_id'] = $this->business_id;
# 创建待办事项的关联数据
$dealtData = [];
foreach ($send_user_id as $kk => $vv) {
$dealtData[] = [
'types' => 'crm_business_new',
'types_id' => $data['business_id'],
'user_id' => $vv
];
}
if (!empty($dealtData)) db('crm_dealt_relation')->insertAll($dealtData);
return $data; return $data;
} else { } else {
$this->error = '添加失败'; $this->error = '添加失败';

@ -206,11 +206,6 @@ class Contacts extends Common
$list[$k]['owner_user_id_info'] = isset($v['owner_user_id']) ? $userModel->getUserById($v['owner_user_id']) : []; $list[$k]['owner_user_id_info'] = isset($v['owner_user_id']) ? $userModel->getUserById($v['owner_user_id']) : [];
$list[$k]['customer_id_info']['customer_id'] = $v['customer_id'] ?: ''; $list[$k]['customer_id_info']['customer_id'] = $v['customer_id'] ?: '';
$list[$k]['customer_id_info']['name'] = $v['customer_name'] ?: ''; $list[$k]['customer_id_info']['name'] = $v['customer_name'] ?: '';
$list[$k]['wxwork_name'] = '';
if ($list[$k]['wxwork_id']) {
$wxwork = db('admin_wxwork')->where('id', $list[$k]['wxwork_id'])->find();
$list[$k]['wxwork_name'] = $wxwork['name'];
}
foreach ($userField as $key => $val) { foreach ($userField as $key => $val) {
$usernameField = !empty($v[$val]) ? db('admin_user')->whereIn('id', stringToArray($v[$val]))->column('realname') : []; $usernameField = !empty($v[$val]) ? db('admin_user')->whereIn('id', stringToArray($v[$val]))->column('realname') : [];
$list[$k][$val] = implode($usernameField, ','); $list[$k][$val] = implode($usernameField, ',');

@ -39,11 +39,11 @@ class Customer extends Common
/** /**
* [getDataList 客户list] * [getDataList 客户list]
* @author Michael_xu
* @param [string] $map [查询条件] * @param [string] $map [查询条件]
* @param [number] $page [当前页数] * @param [number] $page [当前页数]
* @param [number] $limit [每页数量] * @param [number] $limit [每页数量]
* @return [array] [description] * @return [array] [description]
* @author Michael_xu
*/ */
public function getDataList($request) public function getDataList($request)
{ {
@ -156,14 +156,7 @@ class Customer extends Common
}; };
} }
// 过滤角色
$groupIds = db('admin_access')->where("user_id", array("eq", $user_id))->column("group_id");
if (!in_array(1,$groupIds)){
$groupNameArray = db('admin_group')->where("pid", array("eq", 2))->where("id", array("in", $groupIds))->column("title");
if ($groupNameArray){
$map['customer.crm_lthugd'] = array('in', $groupNameArray);
}
}
# 代办事项 - 待进入公海 # 代办事项 - 待进入公海
$remindWhere = []; $remindWhere = [];
@ -257,7 +250,7 @@ class Customer extends Common
# 处理数据 # 处理数据
$list=getFieldData($list,'crm_customer',$user_id); $list=getFieldData($list,'crm_customer',$user_id);
# 整理数据 # 整理数据
foreach ($list as $k => $v) { foreach ($list AS $k => $v) {
$list[$k]['create_user_id_info'] = isset($v['create_user_id']) ? $userModel->getUserById($v['create_user_id']) : []; $list[$k]['create_user_id_info'] = isset($v['create_user_id']) ? $userModel->getUserById($v['create_user_id']) : [];
$list[$k]['owner_user_id_info'] = isset($v['owner_user_id']) ? $userModel->getUserById($v['owner_user_id']) : []; $list[$k]['owner_user_id_info'] = isset($v['owner_user_id']) ? $userModel->getUserById($v['owner_user_id']) : [];
@ -301,16 +294,16 @@ class Customer extends Common
} }
} }
$data = []; $data = [];
$data['dataCount'] = $dataCount ?: 0;
$data['list'] = $list ? : []; $data['list'] = $list ? : [];
$data['dataCount'] = $dataCount ? : 0;
return $data; return $data;
} }
/** /**
* 创建客户主表信息 * 创建客户主表信息
* @author Michael_xu
* @param * @param
* @return * @return
* @author Michael_xu
*/ */
public function createData($param) public function createData($param)
{ {
@ -370,7 +363,7 @@ class Customer extends Common
// 处理日期date类型 // 处理日期date类型
$dateField = $fieldModel->getFieldByFormType('crm_customer', 'date'); $dateField = $fieldModel->getFieldByFormType('crm_customer', 'date');
if (!empty($dateField)) { if (!empty($dateField)) {
foreach ($param as $key => $value) { foreach ($param AS $key => $value) {
if (in_array($key, $dateField) && empty($value)) $param[$key] = null; if (in_array($key, $dateField) && empty($value)) $param[$key] = null;
} }
} }
@ -378,7 +371,7 @@ class Customer extends Common
// 处理手写签名类型 // 处理手写签名类型
$handwritingField = $fieldModel->getFieldByFormType('crm_customer', 'handwriting_sign'); $handwritingField = $fieldModel->getFieldByFormType('crm_customer', 'handwriting_sign');
if (!empty($handwritingField)) { if (!empty($handwritingField)) {
foreach ($param as $key => $value) { foreach ($param AS $key => $value) {
if (in_array($key, $handwritingField)) { if (in_array($key, $handwritingField)) {
$param[$key] = !empty($value['file_id']) ? $value['file_id'] : ''; $param[$key] = !empty($value['file_id']) ? $value['file_id'] : '';
} }
@ -391,7 +384,7 @@ class Customer extends Common
$dateIntervalField = $fieldModel->getFieldByFormType('crm_customer', 'date_interval'); $dateIntervalField = $fieldModel->getFieldByFormType('crm_customer', 'date_interval');
$detailTableField = $fieldModel->getFieldByFormType('crm_customer', 'detail_table'); $detailTableField = $fieldModel->getFieldByFormType('crm_customer', 'detail_table');
$dateField = $fieldModel->getFieldByFormType('crm_customer', 'date'); $dateField = $fieldModel->getFieldByFormType('crm_customer', 'date');
foreach ($param as $key => $value) { foreach ($param AS $key => $value) {
// 处理地址类型字段数据 // 处理地址类型字段数据
if (in_array($key, $positionField)) { if (in_array($key, $positionField)) {
if (!empty($value) && is_array($value)) { if (!empty($value) && is_array($value)) {
@ -524,9 +517,9 @@ class Customer extends Common
/** /**
* 编辑客户主表信息 * 编辑客户主表信息
* @author Michael_xu
* @param * @param
* @return * @return
* @author Michael_xu
*/ */
public function updateDataById($param, $customer_id = '') public function updateDataById($param, $customer_id = '')
{ {
@ -589,7 +582,7 @@ class Customer extends Common
// 处理日期date类型 // 处理日期date类型
$dateField = $fieldModel->getFieldByFormType('crm_customer', 'date'); $dateField = $fieldModel->getFieldByFormType('crm_customer', 'date');
if (!empty($dateField)) { if (!empty($dateField)) {
foreach ($param as $key => $value) { foreach ($param AS $key => $value) {
if (in_array($key, $dateField) && empty($value)) $param[$key] = null; if (in_array($key, $dateField) && empty($value)) $param[$key] = null;
} }
} }
@ -597,7 +590,7 @@ class Customer extends Common
// 处理手写签名类型 // 处理手写签名类型
$handwritingField = $fieldModel->getFieldByFormType('crm_customer', 'handwriting_sign'); $handwritingField = $fieldModel->getFieldByFormType('crm_customer', 'handwriting_sign');
if (!empty($handwritingField)) { if (!empty($handwritingField)) {
foreach ($param as $key => $value) { foreach ($param AS $key => $value) {
if (in_array($key, $handwritingField)) { if (in_array($key, $handwritingField)) {
$param[$key] = !empty($value['file_id']) ? $value['file_id'] : ''; $param[$key] = !empty($value['file_id']) ? $value['file_id'] : '';
} }
@ -609,7 +602,7 @@ class Customer extends Common
$locationField = $fieldModel->getFieldByFormType('crm_customer', 'location'); $locationField = $fieldModel->getFieldByFormType('crm_customer', 'location');
$dateIntervalField = $fieldModel->getFieldByFormType('crm_customer', 'date_interval'); $dateIntervalField = $fieldModel->getFieldByFormType('crm_customer', 'date_interval');
$detailTableField = $fieldModel->getFieldByFormType('crm_customer', 'detail_table'); $detailTableField = $fieldModel->getFieldByFormType('crm_customer', 'detail_table');
foreach ($param as $key => $value) { foreach ($param AS $key => $value) {
// 处理地址类型字段数据 // 处理地址类型字段数据
if (in_array($key, $positionField)) { if (in_array($key, $positionField)) {
if (!empty($value)) { if (!empty($value)) {
@ -721,7 +714,7 @@ class Customer extends Common
} }
} }
} }
foreach ($fieldGrant as $key => $val) { foreach ($fieldGrant AS $key => $val){
//掩码相关类型字段 //掩码相关类型字段
if ($val['maskType']!=0 && $val['form_type'] == 'mobile') { if ($val['maskType']!=0 && $val['form_type'] == 'mobile') {
$pattern = "/(1[3458]{1}[0-9])[0-9]{4}([0-9]{4})/i"; $pattern = "/(1[3458]{1}[0-9])[0-9]{4}([0-9]{4})/i";
@ -769,7 +762,7 @@ class Customer extends Common
if (!empty($userId)) { if (!empty($userId)) {
$grantData = getFieldGrantData($userId); $grantData = getFieldGrantData($userId);
$userLevel = isSuperAdministrators($userId); $userLevel = isSuperAdministrators($userId);
foreach ($dataInfo as $key => $value) { foreach ($dataInfo AS $key => $value) {
if (!$userLevel && !empty($grantData['crm_customer'])) { if (!$userLevel && !empty($grantData['crm_customer'])) {
$status = getFieldGrantStatus($key, $grantData['crm_customer']); $status = getFieldGrantStatus($key, $grantData['crm_customer']);
@ -789,9 +782,9 @@ class Customer extends Common
/** /**
* [客户统计] * [客户统计]
* @author Michael_xu
* @param * @param
* @return * @return
* @author Michael_xu
*/ */
public function getStatistics($request) public function getStatistics($request)
{ {
@ -907,9 +900,9 @@ class Customer extends Common
/** /**
* [客户数量] * [客户数量]
* @author Michael_xu
* @param * @param
* @return * @return
* @author Michael_xu
*/ */
public function getDataCount($map) public function getDataCount($map)
{ {
@ -921,9 +914,9 @@ class Customer extends Common
/** /**
* 客户默认条件 * 客户默认条件
* *
* @return array
* @since 2021-05-12
* @author fanqi * @author fanqi
* @since 2021-05-12
* @return array
*/ */
public function getWhereByCustomer() public function getWhereByCustomer()
{ {
@ -933,9 +926,9 @@ class Customer extends Common
/** /**
* 客户公海条件 * 客户公海条件
* *
* @return array
* @since 2021-05-12
* @author fanqi * @author fanqi
* @since 2021-05-12
* @return array
*/ */
public function getWhereByPool() public function getWhereByPool()
{ {
@ -944,9 +937,9 @@ class Customer extends Common
/** /**
* 客户权限判断(是否客户公海) * 客户权限判断(是否客户公海)
* @author Michael_xu
* @param type 1 是公海返回false,默认是公海返回true * @param type 1 是公海返回false,默认是公海返回true
* @return * @return
* @author Michael_xu
*/ */
public function checkData($customer_id, $type = '') public function checkData($customer_id, $type = '')
{ {
@ -973,9 +966,9 @@ class Customer extends Common
* 客户到期天数 * 客户到期天数
* *
* @param array $customerIds 客户ID * @param array $customerIds 客户ID
* @return array
* @since 2021-04-19
* @author fanqi * @author fanqi
* @since 2021-04-19
* @return array
*/ */
public function getPoolDay($customerIds = [], $userIds = []) public function getPoolDay($customerIds = [], $userIds = [])
{ {
@ -983,13 +976,13 @@ class Customer extends Common
$where['pool.status'] = 1; # 公海开启 $where['pool.status'] = 1; # 公海开启
$where['pool.remind_conf'] = 1; # 提醒开启 $where['pool.remind_conf'] = 1; # 提醒开启
$poolRules = db('crm_customer_pool_rule')->alias('rule')->field(['rule.*', 'pool.remain_day'])->join('__CRM_CUSTOMER_POOL__ pool', 'rule.pool_id = pool.pool_id', 'LEFT')->field("pool.customer_type")->where($where)->select(); $poolRules = db('crm_customer_pool_rule')->alias('rule')->field(['rule.*', 'pool.remain_day'])->join('__CRM_CUSTOMER_POOL__ pool', 'rule.pool_id = pool.pool_id', 'LEFT')->where($where)->select();
if (!empty($poolRules)) { if (!empty($poolRules)) {
foreach ($poolRules as $key => $value) { foreach ($poolRules AS $key => $value) {
if ($value['type'] == 1) $result[] = $this->getFollowUpQueryResult($value['level_conf'], $value['level'], $value['deal_handle'], $value['business_handle'],$value['customer_type'], $value['remain_day'], $customerIds, $userIds); if ($value['type'] == 1) $result[] = $this->getFollowUpQueryResult($value['level_conf'], $value['level'], $value['deal_handle'], $value['business_handle'], $value['remain_day'], $customerIds, $userIds);
if ($value['type'] == 2) $result[] = $this->getBusinessQueryResult($value['level_conf'], $value['level'], $value['deal_handle'],$value['customer_type'], $value['remain_day'], $customerIds, $userIds); if ($value['type'] == 2) $result[] = $this->getBusinessQueryResult($value['level_conf'], $value['level'], $value['deal_handle'], $value['remain_day'], $customerIds, $userIds);
if ($value['type'] == 3) $result[] = $this->getDealQueryResult($value['level_conf'], $value['level'], $value['business_handle'], $value['customer_type'],$value['remain_day'], $customerIds, $userIds); if ($value['type'] == 3) $result[] = $this->getDealQueryResult($value['level_conf'], $value['level'], $value['business_handle'], $value['remain_day'], $customerIds, $userIds);
} }
} }
@ -1000,9 +993,9 @@ class Customer extends Common
* 获取每个客户最快进入公海天数 * 获取每个客户最快进入公海天数
* *
* @param $data * @param $data
* @return array
* @since 2021-04-19
* @author fanqi * @author fanqi
* @since 2021-04-19
* @return array
*/ */
private function getMinIntoPoolDay($data) private function getMinIntoPoolDay($data)
{ {
@ -1010,16 +1003,16 @@ class Customer extends Common
$temporary = []; $temporary = [];
# 整理数据 # 整理数据
foreach ($data as $k1 => $v1) { foreach ($data AS $k1 => $v1) {
if (empty($v1)) continue; if (empty($v1)) continue;
foreach ($v1 as $k2 => $v2) { foreach ($v1 AS $k2 => $v2) {
$temporary[$k2][] = $v2; $temporary[$k2][] = $v2;
} }
} }
# 每个客户最快进入公海天数 # 每个客户最快进入公海天数
foreach ($temporary as $k1 => $v1) { foreach ($temporary AS $k1 => $v1) {
$result[$k1] = min($v1); $result[$k1] = min($v1);
} }
@ -1030,15 +1023,15 @@ class Customer extends Common
* 获取公海规则最小数字(最快进入公海天数) * 获取公海规则最小数字(最快进入公海天数)
* *
* @param $data * @param $data
* @return int
* @since 2021-04-19
* @author fanqi * @author fanqi
* @since 2021-04-19
* @return int
*/ */
private function getMinDay($data) private function getMinDay($data)
{ {
$number = 1; $number = 1;
foreach ($data as $k1 => $v1) { foreach ($data AS $k1 => $v1) {
if (empty($number) || $v1['limit_day'] < $number) $number = $v1['limit_day']; if (empty($number) || $v1['limit_day'] < $number) $number = $v1['limit_day'];
} }
@ -1055,11 +1048,11 @@ class Customer extends Common
* @param int $remainDay 提前几天提醒 * @param int $remainDay 提前几天提醒
* @param array $customerIds 客户ID * @param array $customerIds 客户ID
* @param array $userIds 员工ID * @param array $userIds 员工ID
* @return array
* @author fanqi * @author fanqi
* @since 2021-04-01 * @since 2021-04-01
* @return array
*/ */
private function getFollowUpQueryResult($type, $levels, $dealStatus, $businessStatus,$customerType, $remainDay, $customerIds = [], $userIds = []) private function getFollowUpQueryResult($type, $levels, $dealStatus, $businessStatus, $remainDay, $customerIds = [], $userIds = [])
{ {
# 结果数据 # 结果数据
$result = []; $result = [];
@ -1079,7 +1072,7 @@ class Customer extends Common
# 所有用户,不区分级别 # 所有用户,不区分级别
if ($type == 1) { if ($type == 1) {
foreach ($levels as $k1 => $v1) { foreach ($levels AS $k1 => $v1) {
if (!empty($v1['limit_day'])) { if (!empty($v1['limit_day'])) {
$time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day'])); $time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day']));
$where .= " AND ((`customer`.`last_time` > ".$time." AND `customer`.`last_time` > `customer`.`obtain_time`) OR (`customer`.`obtain_time` > ".$time." AND `customer`.`obtain_time` > `customer`.`last_time`) OR (`customer`.`obtain_time` > ".$time." AND ISNULL(`customer`.`last_time`)))"; $where .= " AND ((`customer`.`last_time` > ".$time." AND `customer`.`last_time` > `customer`.`obtain_time`) OR (`customer`.`obtain_time` > ".$time." AND `customer`.`obtain_time` > `customer`.`last_time`) OR (`customer`.`obtain_time` > ".$time." AND ISNULL(`customer`.`last_time`)))";
@ -1091,7 +1084,7 @@ class Customer extends Common
# 根据用户级别设置条件 # 根据用户级别设置条件
if ($type == 2) { if ($type == 2) {
foreach ($levels as $k1 => $v1) { foreach ($levels AS $k1 => $v1) {
if (!empty($v1['level']) && !empty($v1['limit_day'])) { if (!empty($v1['level']) && !empty($v1['limit_day'])) {
$time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day'])); $time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day']));
if ($k1 == 0) { if ($k1 == 0) {
@ -1108,7 +1101,7 @@ class Customer extends Common
$minLimit = $this->getMinDay($levels); $minLimit = $this->getMinDay($levels);
$minTime = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $minLimit)); $minTime = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $minLimit));
$where .= " OR ((ISNULL(`customer`.`level`) AND `customer`.`last_time` > " . $minTime . " AND `customer`.`last_time` > `customer`.`obtain_time`) OR (ISNULL(`customer`.`level`) AND `customer`.`obtain_time` > " . $time . " AND `customer`.`obtain_time` > `customer`.`last_time`) OR (ISNULL(`customer`.`level`) AND `customer`.`obtain_time` > " . $minTime . " AND ISNULL(`customer`.`last_time`))) )"; $where .= " OR ((!`customer`.`level` AND `customer`.`last_time` > ".$minTime." AND `customer`.`last_time` > `customer`.`obtain_time`) OR (!`customer`.`level` AND `customer`.`obtain_time` > ".$time." AND `customer`.`obtain_time` > `customer`.`last_time`) OR (!`customer`.`level` AND `customer`.`obtain_time` > ".$minTime." AND ISNULL(`customer`.`last_time`))) )";
} }
# 选择不进入公海的客户(已成交客户) # 选择不进入公海的客户(已成交客户)
@ -1130,10 +1123,10 @@ class Customer extends Common
$data = db('crm_customer')->alias('customer') $data = db('crm_customer')->alias('customer')
->field(['customer.customer_id', 'customer.obtain_time', 'customer.level', 'customer.last_time']) ->field(['customer.customer_id', 'customer.obtain_time', 'customer.level', 'customer.last_time'])
->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT') ->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT')
->where($where)->where(['customer.crm_lthugd' => array('in', $customerType)])->select(); ->where($where)->select();
# 计算到期天数 # 计算到期天数
foreach ($data as $k1 => $v1) { foreach ($data AS $k1 => $v1) {
if ($type == 1) { if ($type == 1) {
$customerTime = !empty($v1['last_time']) && $v1['last_time'] > $v1['obtain_time'] ? $v1['last_time'] : $v1['obtain_time']; $customerTime = !empty($v1['last_time']) && $v1['last_time'] > $v1['obtain_time'] ? $v1['last_time'] : $v1['obtain_time'];
$date = date('Y-m-d 00:00:00', ($customerTime + $limitDay['all'] * 86400) - $remainDay * 86400); $date = date('Y-m-d 00:00:00', ($customerTime + $limitDay['all'] * 86400) - $remainDay * 86400);
@ -1167,11 +1160,11 @@ class Customer extends Common
* @param int $remainDay 提前几天提醒 * @param int $remainDay 提前几天提醒
* @param array $customerIds 客户ID * @param array $customerIds 客户ID
* @param array $userIds 员工ID * @param array $userIds 员工ID
* @return array|false|string
* @since 2021-04-01
* @author fanqi * @author fanqi
* @since 2021-04-01
* @return array|false|string
*/ */
private function getBusinessQueryResult($type, $levels, $dealStatus,$customerType, $remainDay, $customerIds = [], $userIds = []) private function getBusinessQueryResult($type, $levels, $dealStatus, $remainDay, $customerIds = [], $userIds = [])
{ {
# 结果数据 # 结果数据
$result = []; $result = [];
@ -1191,7 +1184,7 @@ class Customer extends Common
# 所有用户,不区分级别 # 所有用户,不区分级别
if ($type == 1) { if ($type == 1) {
foreach ($levels as $k1 => $v1) { foreach ($levels AS $k1 => $v1) {
if (!empty($v1['limit_day'])) { if (!empty($v1['limit_day'])) {
$time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day'])); $time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day']));
$where .= " AND ( (ISNULL(`business`.`customer_id`) AND `customer`.`obtain_time` > ".$time.") OR (`customer`.`obtain_time` > ".$time." AND `customer`.`obtain_time` > `business`.`create_time`) OR (`business`.`create_time` > ".$time." AND `business`.`create_time` > `customer`.`obtain_time`) )"; $where .= " AND ( (ISNULL(`business`.`customer_id`) AND `customer`.`obtain_time` > ".$time.") OR (`customer`.`obtain_time` > ".$time." AND `customer`.`obtain_time` > `business`.`create_time`) OR (`business`.`create_time` > ".$time." AND `business`.`create_time` > `customer`.`obtain_time`) )";
@ -1203,7 +1196,7 @@ class Customer extends Common
# 根据用户级别设置条件 # 根据用户级别设置条件
if ($type == 2) { if ($type == 2) {
foreach ($levels as $k1 => $v1) { foreach ($levels AS $k1 => $v1) {
if (!empty($v1['level']) && !empty($v1['limit_day'])) { if (!empty($v1['level']) && !empty($v1['limit_day'])) {
$time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day'])); $time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day']));
if ($k1 == 0) { if ($k1 == 0) {
@ -1220,7 +1213,7 @@ class Customer extends Common
$minLimit = $this->getMinDay($levels); $minLimit = $this->getMinDay($levels);
$minTime = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $minLimit)); $minTime = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $minLimit));
$where .= " OR ((ISNULL(`business`.`customer_id`) AND `customer`.`obtain_time` > " . $minTime . " AND ISNULL(`customer`.`level`)) OR (`customer`.`obtain_time` > " . $minTime . " AND `customer`.`obtain_time` > `business`.`create_time` AND ISNULL(`customer`.`level`)) OR (`business`.`create_time` > " . $minTime . " AND `business`.`create_time` > `customer`.`obtain_time` AND ISNULL(`customer`.`level`))) )"; $where .= " OR ((ISNULL(`business`.`customer_id`) AND `customer`.`obtain_time` > ".$minTime." AND !`customer`.`level`) OR (`customer`.`obtain_time` > ".$minTime." AND `customer`.`obtain_time` > `business`.`create_time` AND !`customer`.`level`) OR (`business`.`create_time` > ".$minTime." AND `business`.`create_time` > `customer`.`obtain_time` AND !`customer`.`level`)) )";
} }
# 选择不进入公海的客户(已成交客户) # 选择不进入公海的客户(已成交客户)
@ -1239,10 +1232,10 @@ class Customer extends Common
$data = db('crm_customer')->alias('customer') $data = db('crm_customer')->alias('customer')
->field(['customer.customer_id', 'customer.obtain_time AS customer_time', 'customer.level', 'business.create_time AS business_time']) ->field(['customer.customer_id', 'customer.obtain_time AS customer_time', 'customer.level', 'business.create_time AS business_time'])
->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT') ->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT')
->where($where)->where(['customer.crm_lthugd' => array('in', $customerType)])->select(); ->where($where)->select();
# 计算到期天数 # 计算到期天数
foreach ($data as $k1 => $v1) { foreach ($data AS $k1 => $v1) {
if ($type == 1) { if ($type == 1) {
$customerTime = !empty($v1['business_time']) && $v1['business_time'] > $v1['customer_time'] ? $v1['business_time'] : $v1['customer_time']; $customerTime = !empty($v1['business_time']) && $v1['business_time'] > $v1['customer_time'] ? $v1['business_time'] : $v1['customer_time'];
$date = date('Y-m-d 00:00:00', ($customerTime + $limitDay['all'] * 86400) - $remainDay * 86400); $date = date('Y-m-d 00:00:00', ($customerTime + $limitDay['all'] * 86400) - $remainDay * 86400);
@ -1276,11 +1269,11 @@ class Customer extends Common
* @param int $remainDay 提前几天提醒 * @param int $remainDay 提前几天提醒
* @param array $customerIds 客户ID * @param array $customerIds 客户ID
* @param array $userIds 员工ID * @param array $userIds 员工ID
* @return array|false|string
* @since 2021-04-01
* @author fanqi * @author fanqi
* @since 2021-04-01
* @return array|false|string
*/ */
private function getDealQueryResult($type, $levels, $businessStatus,$customerType, $remainDay, $customerIds = [], $userIds = []) private function getDealQueryResult($type, $levels, $businessStatus, $remainDay, $customerIds = [], $userIds = [])
{ {
# 结果数据 # 结果数据
$result = []; $result = [];
@ -1300,7 +1293,7 @@ class Customer extends Common
# 所有用户,不区分级别 # 所有用户,不区分级别
if ($type == 1) { if ($type == 1) {
foreach ($levels as $k1 => $v1) { foreach ($levels AS $k1 => $v1) {
if (!empty($v1['limit_day'])) { if (!empty($v1['limit_day'])) {
$time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day'])); $time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day']));
$where .= " AND ( (ISNULL(`contract`.`customer_id`) AND `customer`.`obtain_time` > ".$time.") OR (`customer`.`obtain_time` > ".$time." AND `customer`.`obtain_time` > `contract`.`create_time`) OR (`contract`.`create_time` > ".$time." AND `contract`.`create_time` > `customer`.`obtain_time`) )"; $where .= " AND ( (ISNULL(`contract`.`customer_id`) AND `customer`.`obtain_time` > ".$time.") OR (`customer`.`obtain_time` > ".$time." AND `customer`.`obtain_time` > `contract`.`create_time`) OR (`contract`.`create_time` > ".$time." AND `contract`.`create_time` > `customer`.`obtain_time`) )";
@ -1312,7 +1305,7 @@ class Customer extends Common
# 根据用户级别设置条件 # 根据用户级别设置条件
if ($type == 2) { if ($type == 2) {
foreach ($levels as $k1 => $v1) { foreach ($levels AS $k1 => $v1) {
if (!empty($v1['level']) && !empty($v1['limit_day'])) { if (!empty($v1['level']) && !empty($v1['limit_day'])) {
$time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day'])); $time = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $v1['limit_day']));
if ($k1 == 0) { if ($k1 == 0) {
@ -1329,7 +1322,7 @@ class Customer extends Common
$minLimit = $this->getMinDay($levels); $minLimit = $this->getMinDay($levels);
$minTime = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $minLimit)); $minTime = strtotime(date('Y-m-d 00:00:00', time() - 86400 * $minLimit));
$where .= " OR ((ISNULL(`contract`.`customer_id`) AND ISNULL(`customer`.`level`) AND `customer`.`obtain_time` > " . $minTime . ") OR (ISNULL(`customer`.`level`) AND `customer`.`obtain_time` > " . $minTime . " AND `customer`.`obtain_time` > `contract`.`create_time`) OR (`contract`.`create_time` > " . $minTime . " AND `contract`.`create_time` > `customer`.`obtain_time` AND ISNULL(`customer`.`level`))) )"; $where .= " OR ((ISNULL(`contract`.`customer_id`) AND !`customer`.`level` AND `customer`.`obtain_time` > ".$minTime.") OR (!`customer`.`level` AND `customer`.`obtain_time` > ".$minTime." AND `customer`.`obtain_time` > `contract`.`create_time`) OR (`contract`.`create_time` > ".$minTime." AND `contract`.`create_time` > `customer`.`obtain_time` AND !`customer`.`level`)) )";
} }
# 选择不进入公海的客户(有商机客户) # 选择不进入公海的客户(有商机客户)
@ -1349,10 +1342,10 @@ class Customer extends Common
->field(['customer.customer_id', 'customer.obtain_time AS customer_time', 'customer.level', 'contract.create_time AS contract_time']) ->field(['customer.customer_id', 'customer.obtain_time AS customer_time', 'customer.level', 'contract.create_time AS contract_time'])
->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT') ->join('__CRM_BUSINESS__ business', 'business.customer_id = customer.customer_id', 'LEFT')
->join('__CRM_CONTRACT__ contract', 'contract.customer_id = customer.customer_id', 'LEFT') ->join('__CRM_CONTRACT__ contract', 'contract.customer_id = customer.customer_id', 'LEFT')
->where($where)->where(['customer.crm_lthugd' => array('in', $customerType)])->select(); ->where($where)->select();
# 计算到期天数 # 计算到期天数
foreach ($data as $k1 => $v1) { foreach ($data AS $k1 => $v1) {
if ($type == 1) { if ($type == 1) {
$customerTime = !empty($v1['contract_time']) && $v1['contract_time'] > $v1['customer_time'] ? $v1['contract_time'] : $v1['customer_time']; $customerTime = !empty($v1['contract_time']) && $v1['contract_time'] > $v1['customer_time'] ? $v1['contract_time'] : $v1['customer_time'];
$date = date('Y-m-d 00:00:00', ($customerTime + $limitDay['all'] * 86400) - $remainDay * 86400); $date = date('Y-m-d 00:00:00', ($customerTime + $limitDay['all'] * 86400) - $remainDay * 86400);
@ -1379,9 +1372,9 @@ class Customer extends Common
/** /**
* [今日进入客户池条件] * [今日进入客户池条件]
* @author Michael_xu
* @param * @param
* @return * @return
* @author Michael_xu
*/ */
public function getWhereByToday() public function getWhereByToday()
{ {
@ -1445,9 +1438,9 @@ class Customer extends Common
* @param int $userId 用户ID * @param int $userId 用户ID
* @param int $isDeal 成交客户是否占用拥有客户数条件1 占用 0 不占用 * @param int $isDeal 成交客户是否占用拥有客户数条件1 占用 0 不占用
* @param int $types 类型1 拥有客户数2 锁定客户数 * @param int $types 类型1 拥有客户数2 锁定客户数
* @return int
* @since 2021-04-15
* @author fanqi * @author fanqi
* @since 2021-04-15
* @return int
*/ */
public function getCountByHave($userId, $isDeal = 0, $types = 1) public function getCountByHave($userId, $isDeal = 0, $types = 1)
{ {
@ -1546,9 +1539,9 @@ class Customer extends Common
/** /**
* [客户成交新增数量] * [客户成交新增数量]
* @author Michael_xu
* @param * @param
* @return * @return
* @author Michael_xu
*/ */
public function getAddDealSql($map) public function getAddDealSql($map)
{ {
@ -1584,9 +1577,9 @@ class Customer extends Common
/** /**
* [客户统计sql] * [客户统计sql]
* @author Michael_xu
* @param * @param
* @return * @return
* @author Michael_xu
*/ */
public function getAddressCountBySql($map) public function getAddressCountBySql($map)
{ {

@ -23,7 +23,7 @@ class CustomerCheck extends Common
/** /**
* 待审核客户列表 * 待审核客户列表
* @param $request * @param $request
* @return array * @return
*/ */
public function getDataList($request) public function getDataList($request)
@ -34,7 +34,6 @@ class CustomerCheck extends Common
$order_field = $request['order_field']; $order_field = $request['order_field'];
$order_type = $request['order_type']; $order_type = $request['order_type'];
$getCount = $request['getCount']; $getCount = $request['getCount'];
$user_id = $request['user_id'];
$customerCheckIdArray = $request['customerCheckIdArray']; // 待办事项提醒参数 $customerCheckIdArray = $request['customerCheckIdArray']; // 待办事项提醒参数
unset($request['scene_id']); unset($request['scene_id']);
unset($request['search']); unset($request['search']);
@ -53,6 +52,8 @@ class CustomerCheck extends Common
$requestMap = $request['map'] ?: []; $requestMap = $request['map'] ?: [];
# getCount是代办事项传来的参数代办事项不需要使用场景 # getCount是代办事项传来的参数代办事项不需要使用场景
$sceneMap = []; $sceneMap = [];
$partMap = []; $partMap = [];
$teamMap = $requestMap['team_id']; $teamMap = $requestMap['team_id'];
//团队成员 高级筛选 //团队成员 高级筛选
@ -64,11 +65,6 @@ class CustomerCheck extends Common
$map = $requestMap ? array_merge($sceneMap, $requestMap) : $sceneMap; $map = $requestMap ? array_merge($sceneMap, $requestMap) : $sceneMap;
} }
// 权限
$readAuthIds = $userModel->getUserByPer('crm', 'customer', 'read');
$updateAuthIds = $userModel->getUserByPer('crm', 'customer', 'update');
$deleteAuthIds = $userModel->getUserByPer('crm', 'customer', 'delete');
//排序 //排序
if ($order_type && $order_field) { if ($order_type && $order_field) {
$order = $fieldModel->getOrderByFormtype('crm_customer_check', 'customer_check', $order_field, $order_type); $order = $fieldModel->getOrderByFormtype('crm_customer_check', 'customer_check', $order_field, $order_type);
@ -88,59 +84,18 @@ class CustomerCheck extends Common
return $data; return $data;
} }
$indexField = $fieldModel->getIndexField('crm_customer', $user_id, 1) ?: array('name'); // 列表展示字段
$userField = $fieldModel->getFieldByFormType('crm_customer', 'user'); // 人员类型
$structureField = $fieldModel->getFieldByFormType('crm_customer', 'structure'); // 部门类型
# 处理人员和部门类型的排序报错问题(前端传来的是包含_name的别名字段)
$temporaryField = str_replace('_name', '', $order_field);
if (in_array($temporaryField, $userField) || in_array($temporaryField, $structureField)) {
$order_field = $temporaryField;
}
$customerField = '';
foreach ($indexField as $k => $v) {
$customerField = 'customer.'.$v;
}
$list = db('crm_customer_check') $list = db('crm_customer_check')
->alias('customer_check') ->alias('customer_check')
->join('__CRM_CUSTOMER__ customer', 'customer_check.customer_id = customer.customer_id', 'LEFT') ->join('__CRM_CUSTOMER__ customer', 'business.customer_id = customer.customer_id', 'LEFT')
->where($map) ->where($map)
->where($partMap) ->where($partMap)
->where($dealtWhere) ->where($dealtWhere)
->limit($request['offset'], $request['length']) ->limit($request['offset'], $request['length'])
->field('customer_check.*,customer.*') ->field('customer_check.*,customer.name as customer_name')
->orderRaw($order) ->orderRaw($order)
->select(); ->select();
# 扩展数据
foreach ($list as $k => $v) { $extraData = [];
$list[$k]['customer_id_info']['customer_id'] = $v['customer_id'];
$list[$k]['customer_id_info']['name'] = $v['customer_name'];
$list[$k]['create_user_id_info'] = isset($v['create_user_id']) ? $userModel->getUserById($v['create_user_id']) : [];
$list[$k]['owner_user_id_info'] = isset($v['owner_user_id']) ? $userModel->getUserById($v['owner_user_id']) : [];
$list[$k]['create_user_name'] = !empty($list[$k]['create_user_id_info']['realname']) ? $list[$k]['create_user_id_info']['realname'] : '';
$list[$k]['owner_user_name'] = !empty($list[$k]['owner_user_id_info']['realname']) ? $list[$k]['owner_user_id_info']['realname'] : '';
//权限
$roPre = $userModel->rwPre($user_id, $v['ro_user_id'], $v['rw_user_id'], 'read');
$rwPre = $userModel->rwPre($user_id, $v['ro_user_id'], $v['rw_user_id'], 'update');
$permission = [];
$is_read = 0;
$is_update = 0;
$is_delete = 0;
if (in_array($v['owner_user_id'], $readAuthIds) || $roPre || $rwPre) $is_read = 1;
if (in_array($v['owner_user_id'], $updateAuthIds) || $rwPre) $is_update = 1;
if (in_array($v['owner_user_id'], $deleteAuthIds)) $is_delete = 1;
$permission['is_read'] = $is_read;
$permission['is_update'] = $is_update;
$permission['is_delete'] = $is_delete;
$list[$k]['permission'] = $permission;
# 日期
$list[$k]['create_time'] = !empty($v['create_time']) ? date('Y-m-d H:i:s', $v['create_time']) : null;
$list[$k]['update_time'] = !empty($v['update_time']) ? date('Y-m-d H:i:s', $v['update_time']) : null;
# 系统字段 负责人部门 zjf 20210726
$list[$k]['owner_user_structure_name'] = $list[$k]['owner_user_id_info']['structure_name'];
}
$data = []; $data = [];
$data['list'] = $list ?: []; $data['list'] = $list ?: [];
$data['dataCount'] = $dataCount ?: 0; $data['dataCount'] = $dataCount ?: 0;
@ -164,8 +119,6 @@ class CustomerCheck extends Common
$createData[$key]['check_user_id'] = $param['check_user_id'] ?? 0; $createData[$key]['check_user_id'] = $param['check_user_id'] ?? 0;
$createData[$key]['flow_user_id'] = $param['flow_user_id'] ?? 0; $createData[$key]['flow_user_id'] = $param['flow_user_id'] ?? 0;
$createData[$key]['user_id'] = $param['user_id'] ?? 0; $createData[$key]['user_id'] = $param['user_id'] ?? 0;
$createData[$key]['create_user_id'] = $param['user_id'] ?? 0;
$createData[$key]['owner_user_id'] = $param['user_id'] ?? 0;
} }
$this->startTrans(); $this->startTrans();

@ -479,13 +479,13 @@ class ExamineLogic extends Common
->where($where) ->where($where)
->where($whereOr) ->where($whereOr)
->field( ->field(
'a.customer_check_id as catagory_id ,customer.name as customer_name,a.create_time,a.check_status,a.user_id,a.check_user_id,a.flow_user_id,user.realname,examine_flow.name as examine_name' 'a.customer_check_id as catagory_id ,customer.name as customer_name,a.create_time,a.check_status,a.create_user_id,a.check_user_id,a.flow_user_id,user.realname,examine_flow.name as examine_name'
) )
->page($param['page'], $param['limit']) ->page($param['page'], $param['limit'])
->order('a.create_time desc') ->order('a.create_time desc')
->select(); ->select();
foreach ($list as $k => $v) { foreach ($list as $k => $v) {
$list[$k]['create_user_info'] = $userModel->getUserById($v['user_id']); $list[$k]['create_user_info'] = $userModel->getUserById($v['create_user_id']);
} }
$dataCount = db('crm_customer_check') $dataCount = db('crm_customer_check')

@ -56,8 +56,6 @@ return [
'crm/customer/poolAuthority' => ['crm/customer/poolAuthority', ['method' => 'POST']], 'crm/customer/poolAuthority' => ['crm/customer/poolAuthority', ['method' => 'POST']],
// 【客户】级别列表 // 【客户】级别列表
'crm/customer/level' => ['crm/customer/level', ['method' => 'POST']], 'crm/customer/level' => ['crm/customer/level', ['method' => 'POST']],
// 【客户】类型列表
'crm/customer/type' => ['crm/customer/type', ['method' => 'POST']],
// 【客户】公海列表 // 【客户】公海列表
'crm/customerPool/index' => ['crm/customerPool/index', ['method' => 'POST']], 'crm/customerPool/index' => ['crm/customerPool/index', ['method' => 'POST']],
@ -91,8 +89,6 @@ return [
'crm/customerPool/setFieldWidth' => ['crm/customerPool/setFieldWidth', ['method' => 'POST']], 'crm/customerPool/setFieldWidth' => ['crm/customerPool/setFieldWidth', ['method' => 'POST']],
// 【客户】设置公海字段配置 // 【客户】设置公海字段配置
'crm/customerPool/setFieldConfig' => ['crm/customerPool/setFieldConfig', ['method' => 'POST']], 'crm/customerPool/setFieldConfig' => ['crm/customerPool/setFieldConfig', ['method' => 'POST']],
// 【客户】总经理客户公海池消息
'crm/customerPool/num' => ['crm/customerPool/num', ['method' => 'POST']],
// 【客户】回访 // 【客户】回访
'crm/visit/index' => ['crm/visit/index', ['method' => 'POST']], 'crm/visit/index' => ['crm/visit/index', ['method' => 'POST']],
@ -536,7 +532,6 @@ return [
// 企业微信回调 // 企业微信回调
'crm/callback/index' => ['crm/callback/index', ['method' => 'POST|GET']], 'crm/callback/index' => ['crm/callback/index', ['method' => 'POST|GET']],
'crm/callback/work' => ['crm/callback/work', ['method' => 'POST|GET']],
// MISS路由 // MISS路由
'__miss__' => 'admin/base/miss', '__miss__' => 'admin/base/miss',

Loading…
Cancel
Save