134 lines
5.6 KiB
PHP
134 lines
5.6 KiB
PHP
<?php
|
|
defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
class Pingan_users_model extends HD_Model
|
|
{
|
|
private $table_name = 'lc_pingan_users';
|
|
const GROUP_TYPE_ATTEND = 1; //坐席
|
|
const GROUP_TYPE_TEAM = 2; //团队长 3级
|
|
const GROUP_TYPE_DEP = 3; //部经理 2级
|
|
const GROUP_TYPE_AREA = 4; //区经理 1级
|
|
|
|
const GROUP_TYPE_CENTER_CONTACT = 5; //中心对接人
|
|
const GROUP_TYPE_PROJECT_CONTACT = 6; //项目对接人
|
|
const GROUP_TYPE_ORG_CONTACT = 8; //机构对接人
|
|
const GROUP_TYPE_TEAM_CONTACT = 9; //团队对接人
|
|
const GROUP_TYPE_SUPER_ADMIN = 99; //超级管理员
|
|
const TYPE_CN = [
|
|
self::GROUP_TYPE_ATTEND => '坐席',
|
|
self::GROUP_TYPE_TEAM => '团队长',
|
|
self::GROUP_TYPE_DEP => '部经理',
|
|
self::GROUP_TYPE_AREA => '区经理',
|
|
self::GROUP_TYPE_CENTER_CONTACT => '中心对接人',
|
|
self::GROUP_TYPE_PROJECT_CONTACT => '项目对接人',
|
|
self::GROUP_TYPE_ORG_CONTACT => '机构对接人',
|
|
self::GROUP_TYPE_TEAM_CONTACT => '团队对接人',
|
|
self::GROUP_TYPE_SUPER_ADMIN => '管理员'
|
|
];
|
|
|
|
const TYPE_CENTER = [
|
|
'1001' => '张江中心',
|
|
'1002' => '成都中心',
|
|
'1003' => '天津中心',
|
|
'1004' => '服务管家',
|
|
'1005' => '金服中心',
|
|
];
|
|
const TYPE_CENTER_CODE = [
|
|
'张江中心' => '1001',
|
|
'成都中心' => '1002',
|
|
'天津中心' => '1003',
|
|
'服务管家' => '1004',
|
|
'金服中心' => '1005',
|
|
];
|
|
|
|
//状态值
|
|
const STATUS_DISABLE = 0; //禁用
|
|
const STATUS_NORMAL = 1; //正常
|
|
|
|
const orgNameList = [
|
|
'湖北', '海南', '天津', '辽宁', '河南', '北京', '江西',
|
|
'广东', '吉林', '黑龙江', '山西', '陕西', '贵州', '宁夏',
|
|
'甘肃', '温州', '内蒙古', '新疆', '苏州', '广西', '佛山',
|
|
'唐山', '重庆', '深圳', '河北', '无锡', '厦门', '青岛',
|
|
'江苏', '云南', '浙江', '安徽', '山东', '宁波', '四川',
|
|
'湖南', '福建', '东莞', '上海'
|
|
];
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct($this->table_name, 'default');
|
|
}
|
|
|
|
/**
|
|
* @param $uid
|
|
* @param $groupType
|
|
* @return array
|
|
*/
|
|
public function levelListTree($uid, $groupType)
|
|
{
|
|
$lists = [];
|
|
if ($groupType == Pingan_users_model::GROUP_TYPE_TEAM) {
|
|
$where = ['status>' => self::STATUS_DISABLE, 'teamId' => $uid, 'groupType' => Pingan_users_model::GROUP_TYPE_ATTEND];
|
|
$rows = $this->select($where, 'id desc', 0, 0, 'id as value,username as label');
|
|
$rows && $lists = $rows;
|
|
} elseif ($groupType == Pingan_users_model::GROUP_TYPE_DEP) {
|
|
$where = ['status>' => self::STATUS_DISABLE, 'depId' => $uid, 'groupType' => Pingan_users_model::GROUP_TYPE_TEAM];
|
|
$rows = $this->select($where, 'id desc', 0, 0, 'id as value,username as label');
|
|
$rows && $lists = $rows;
|
|
} elseif ($groupType == Pingan_users_model::GROUP_TYPE_AREA) {
|
|
$where = ['status>' => self::STATUS_DISABLE, 'areaId' => $uid, 'groupType' => Pingan_users_model::GROUP_TYPE_DEP];
|
|
$rows = $this->select($where, 'id desc', 0, 0, 'id,username');
|
|
$where = ['status>' => self::STATUS_DISABLE, 'areaId' => $uid, 'groupType' => Pingan_users_model::GROUP_TYPE_TEAM];
|
|
$teamRows = $this->map('depId', '', $where, 'id desc', 0, 0, 'id as value,username as label,depId');
|
|
foreach ($rows as $item) {
|
|
$lists[] = [
|
|
'value' => $item['id'],
|
|
'label' => $item['username'],
|
|
'children' => $teamRows[$item['id']] ?: []
|
|
];
|
|
}
|
|
} elseif (in_array($groupType, [Pingan_users_model::GROUP_TYPE_ORG_CONTACT, Pingan_users_model::GROUP_TYPE_TEAM_CONTACT])) { //显示三级
|
|
$where = ['status>' => self::STATUS_DISABLE, 'groupType' => Pingan_users_model::GROUP_TYPE_AREA];
|
|
$rows = $this->select($where, 'id desc', 0, 0, 'id,username');
|
|
$where = ['status>' => self::STATUS_DISABLE, 'groupType' => Pingan_users_model::GROUP_TYPE_DEP];
|
|
$depRows = $this->map('depId', '', $where, 'id desc', 0, 0, 'id as value,username as label,areaId');
|
|
$where = ['status>' => self::STATUS_DISABLE, 'groupType' => Pingan_users_model::GROUP_TYPE_TEAM];
|
|
$teamRows = $this->map('depId', '', $where, 'id desc', 0, 0, 'id as value,username as label,depId');
|
|
foreach ($rows as $item) {
|
|
$depChildren = $depRows[$item['id']] ?: '';
|
|
if ($depChildren) {
|
|
foreach ($depChildren as $key2 => $item2) {
|
|
$teamChildren = $teamRows[$item2['id']] ?: [];
|
|
$depChildren[$key2]['children'] = $teamChildren;
|
|
}
|
|
}
|
|
$lists[] = [
|
|
'value' => $item['id'],
|
|
'label' => $item['name'],
|
|
'children' => $depChildren
|
|
];
|
|
}
|
|
}
|
|
return $lists;
|
|
}
|
|
|
|
/**
|
|
* 根据id获取数据
|
|
* @param array() $ids
|
|
*/
|
|
public function get_map_by_ids($ids, $fileds = '')
|
|
{
|
|
$rows = [];
|
|
$ids = array_filter($ids);
|
|
if ($ids) {
|
|
if ($ids) {
|
|
$cf_ids = implode(',', $ids);
|
|
$where = [
|
|
"id in ($cf_ids)" => null
|
|
];
|
|
$rows = $this->map('id', '', $where, '', '', '', $fileds);
|
|
}
|
|
}
|
|
return $rows;
|
|
}
|
|
} |