Files
spacestation/common/models/agent/pingan/Pingan_users_model.php
T
2025-07-30 10:57:00 +08:00

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;
}
}