You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

191 lines
6.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
// +----------------------------------------------------------------------
// | Description: 工作台及基础
// +----------------------------------------------------------------------
// | Author: Michael_xu | gengxiaoxu@5kcrm.com
// +----------------------------------------------------------------------
namespace app\admin\controller;
use app\crm\logic\CustomerPoolLogic;
use think\Hook;
use think\Request;
class Index extends ApiCommon
{
/**
* 用于判断权限
* @permission 无限制
* @allow 登录用户可访问
* @other 其他根据系统设置
*/
public function _initialize()
{
parent::_initialize();
$action = [
'permission' => [],
'allow' => ['fields', 'fieldrecord', 'authlist','sort','updatesort',
'importnum','importinfo','importlist','readnotice'],
];
Hook::listen('check_auth', $action);
$request = Request::instance();
$a = strtolower($request->action());
if (!in_array($a, $action['permission'])) {
parent::_initialize();
}
}
/**
* 获取字段属性,用于筛选或其他操作
* @param
* @return
*/
public function fields()
{
$param = $this->param;
# 多公海高级筛选参数列表
if (!empty($param['types']) && $param['types'] == 'crm_customer_pool') {
$customerPoolLogic = new CustomerPoolLogic();
return resultArray(['data' => $customerPoolLogic->getAdvancedFilterFieldList()]);
}
$userInfo = $this->userInfo;
$param['user_id'] = $userInfo['id'];
$fieldModel = model('Field');
$field_arr = $fieldModel->getField($param);
# 转form_type类型用于场景筛选和创建自定义场景
foreach ($field_arr AS $key => $value) {
if ($value['field'] == 'address') $field_arr[$key]['form_type'] = 'map_address';
if ($value['field'] == 'deal_status') $field_arr[$key]['form_type'] = 'deal_status';
if ($value['field'] == 'check_status') $field_arr[$key]['form_type'] = 'check_status';
if ($param['types'] == 'crm_visit' && $value['field'] == 'owner_user_id') $field_arr[$key]['name'] = '回访人';
if ($value['field'] == 'supplier_id') $field_arr[$key]['form_type'] = 'text';
if ($value['field'] == 'purchase_id') $field_arr[$key]['form_type'] = 'text';
if ($value['field'] == 'sale_id') $field_arr[$key]['form_type'] = 'text';
if ($value['field'] == 'collection_object') $field_arr[$key]['form_type'] = 'text';
}
if(in_array($param['types'],['crm_customer','crm_customer_pool','crm_contacts','crm_business','crm_contract','crm_receivables'])){
$field=[['field'=>'team_id','name'=>'相关团队','form_type'=>'user','setting'=>[]]];
$field_arr=array_merge($field_arr,$field);
}
// if($param['types'] == 'jxc_product'){
// $field_arr[] = ['field'=>'product_code','name'=>'产品编码','form_type'=>'text','setting'=>[]];
// }
// $field_arr[] = ['field'=>'owner_structure','name'=>'所属部门','form_type'=>'structure','setting'=>[]];
return resultArray(['data' => $field_arr]);
}
/**
* 获取字段修改记录
* @param
* @return
*/
public function fieldRecord()
{
$param = $this->param;
$userInfo = $this->userInfo;
$param['user_id'] = $userInfo['id'];
$actionRecordModel = model('ActionRecord');
$data = $actionRecordModel->getDataList($param);
if (!$data) {
return resultArray(['data' => '暂无数据']);
}
return resultArray(['data' => $data]);
}
/**
* 权限数据返回
* @param
* @return
*/
public function authList()
{
$userInfo = $this->userInfo;
$userModel = model('User');
$dataList = $userModel->getMenuAndRule($userInfo['id']);
return resultArray(['data' => $dataList['authList']]);
}
/**
* todo
* 顶部菜单栏展示
* @return mixed
*/
//todo admin_sort 表数据未完善
public function sort(){
$param = $this->param;
$userModel = model('User');
$userInfo = $this->userInfo;
$param['user_id']= $param['user_id']?:$userInfo['id'];
$dataList = $userModel->sortList($param);
return resultArray(['data' => $dataList]);
}
/**
*顶部菜单栏编辑
*/
public function updateSort(){
$param = $this->param;
$userInfo = $this->userInfo;
$userModel = model('User');
$param['value']=$param;
$param['user_id']= $param['user_id']?:$userInfo['id'];
$dataList = $userModel->updateSort($param);
if (!$dataList) {
return resultArray(['data' => '编辑失败']);
}
return resultArray(['data' => '编辑成功']);
}
/**
* 导入中
* @return \think\response\Json
*/
public function importNum(){
$excelModel = model('Excel');
$data = $excelModel->importNum();
return resultArray(['data'=>$data]);
}
/**
* 导入成功返回值
* @return \think\response\Json
*/
public function importInfo(){
$excelModel = model('Excel');
$data = $excelModel->importInfo();
return resultArray(['data'=>$data]);
}
/**
* 导入历史
* @return \think\response\Json
*/
public function importList(){
$param = $this->param;
$userInfo = $this->userInfo;
$param['user_id'] = $userInfo['id'];
$excelModel = model('Excel');
$data = $excelModel->importList($param);
return resultArray(['data'=>$data]);
}
/**
* 升级公告
* @author fanqi
* @date 2021-03-15
* @return \think\response\Json
*/
public function readNotice()
{
$userInfo = $this->userInfo;
if (!empty($userInfo['id'])) db('admin_user')->where('id', $userInfo['id'])->update(['is_read_notice' => 1]);
return resultArray(['data' => '']);
}
}