one($id); } $group = Dever::input('group'); $temp = explode(',', $group); $group_id = $temp[0]; $admin_id = false; if (isset($temp[1])) { $admin_id = $temp[1]; } else { return 'no'; } $admin = Dever::load('manage/company')->getAdmin($group_id, $admin_id); $config = array(); $config['struct']['coor'] = array ( 'type' => 'varchar-2000', 'name' => '协调人', 'default' => '', 'desc' => '请先选择协调人', 'match' => 'option', 'update' => 'checkbox', 'value' => $info ? $info['coor'] : false, 'option' => $admin, ); $data = array(); $result = Dever::load('manage/database')->update_struct($config, false, array(), -1, '', true); return implode('', $result); } public function setInfoStatus_api () { Dever::config('base')->hook = true; $id = Dever::input('id'); $status = Dever::input('status'); $type = Dever::input('type'); if ($id) { $info = Dever::db('work/info')->find($id); $update['where_id'] = $info['id']; if ($type == 1) { $update['status'] = 4; } else { $update['status'] = 3; } $update = $this->finish($update, $info); Dever::db('work/info')->update($update); return 'ok'; } } private function finish($update, $info) { $update['fdate'] = time(); $update['chdate'] = time(); $app = Dever::db('work/appoint')->getAdmin(array('info_id'=>$info['id'],'admin'=>$info['audit_admin'])); if ($app && $app['admin']) { $update['fpeople'] = $app['admin']; } else { if ($info['branch_id']) { $branch = explode(',',$info['branch_id']); if (isset($branch[1]) && $branch[1]) { $update['fpeople'] = $branch[1]; } } else { $update['fpeople'] = $info['audit_admin']; } } $log = Dever::db('work/info_log')->find(array('info_id'=>$info['id'])); if ($log) { $w = array(); $w['where_id'] = $log['id']; $w['fdate'] = time(); if($update['status'] == 4){ $w['cloce_date'] = time(); } Dever::db('work/info_log')->update($w); } return $update; } public function insertInfo($id,$name,$data) { $mobile = Dever::param('mobile',$data); if(!preg_match('/^1[3|5|6|7|8|9]\d{9}$/', $mobile)){ Dever::alert('手机号不正确'); } $cate_id = Dever::param('cate_id',$data); if ($cate_id[0]<0) { Dever::alert('问题类型不能为空'); } } public function updateInfo($id,$name,$data) { Dever::config('base')->hook = true; $mobile = Dever::param('mobile',$data); $cate_id = Dever::param('cate_id',$data); $name = Dever::param('name',$data); $email = Dever::param('email',$data); $user = Dever::db('work/user')->find(array('mobile'=>$mobile)); if ($user) { if ($name && $user['name'] != $name) { Dever::db('work/user')->update(array('where_id'=>$user['id'],'name'=>$name)); } } else { $member = Dever::db('agent/member')->find(array('mobile'=>$mobile)); if ($member) { $insert['agent_uid'] = $member['id']; } $option = Dever::db('option/member')->find(array('mobile'=>$mobile)); if ($option) { $insert['option_uid'] = $option['id']; } $passport = Dever::db('passport/user')->find(array('mobile'=>$mobile)); if ($passport) { $insert['passport_uid'] = $passport['id']; } if ($name) { $insert['name'] = $name; } $insert['mobile'] = $mobile; if ($insert) { Dever::db('work/user')->insert($insert); } } $info = Dever::db('work/info')->find($id); if ($info) { $w = array(); if (!$info['work_num']) { $w['work_num'] = $this->getWorkId(); } if ($info['cate_id']) { $cate_id = explode(',', $info['cate_id']); if (isset($cate_id[1]) && $cate_id[1]) { $info['question'] = $w['question'] = $cate_id[1]; } if (!$info['cate'] || $info['cate']<=0) { $w['cate'] = $cate_id[0]; } } if ($info['question']) { $product = Dever::db('work/question')->find($info['question']); $w['product'] = $product['product_id']; } if ($info['branch_id'] && strstr($info['branch_id'], ',') && $info['branch_id'] != -1) { $branch_id = explode(',', $info['branch_id']); $w['group'] = $branch_id[0]; $w['appoint_id'] = $branch_id[1]; } if ($info['status'] == 3 || $info['status'] == 4) { $w = $this->finish($w, $info); } if ($w) { $w['where_id'] = $id; Dever::db('work/info')->update($w); } if ($email && $email == 2) { if ($w) $admin = Dever::db('manage/admin')->find($branch_id[1]); $res = Dever::load('work/lib/manage')->getTotal($admin['id'],'1,2'); // $url = Dever::url('project/database/list?project=work&table=info&search_option_dever_auth=2&search_option_state=1&[refer]', 'manage'); $work_list =Dever::url('project/database/list?project=work&table=info&search_option_dever_auth=2&search_option_state=1&[refer]', 'manage'); $url = Dever::url('home?link=' . urlencode($work_list) . '&group=10&parent_menu=work&menu=work.my' , 'manage'); $content = '你有'.$res.'个待处理工单,点此跳转至工单系统查看'; Dever::load('work/lib/cron')->send($admin['email'],$admin['username'],'你有新的工单待处理',$content); } } } public function getWorkId() { $where['work_num'] = Dever::order('W'); $state = Dever::db('work/info')->one($where); if (!$state) { return $where['work_num']; } else { return $this->getWorkId(); } } public function getUser($id) { $info = Dever::db('work/info')->find($id); if ($info && isset($info['mobile']) && $info['mobile']) { $data= Dever::db('work/user')->find(array('mobile'=>$info['mobile'])); if ($data) { $html['user'] = $data['name'].'
'.$data['mobile']; if (isset($info['fdate']) && $info['fdate']) { $fdate = date('Y-m-d H:i:s',$info['fdate']); } else { $fdate = ''; } $html['time'] = date('Y-m-d H:i:s',$info['cdate']).'
'.$fdate; $cate_id = explode(',',$info['cate_id']); $cate_name = ''; $question_name = ''; if (isset($cate_id[0]) && $cate_id[0]) { $cate = Dever::db('work/q_cate')->find($cate_id[0]); $cate_name = $cate['name']; } if (isset($cate_id[1]) && $cate_id[1]) { $question = Dever::db('work/question')->find($cate_id[1]); $question_name = $question['name']; } if ($info['audit_admin']) { $audit = Dever::db('manage/admin')->find($info['audit_admin']); if ($audit) { $admin['group'] = explode(',',$audit['group']); foreach ($admin['group'] as $k => $v) { $group = Dever::db('manage/group')->find(array('company_id'=>$info['company_id'],'id'=>$v)); } $html['chuangjian'] = $group['name'].' / ' .$audit['username']; } } $html['cate_name'] = $cate_name.'
'.$question_name; return $html; } else { return ''; } } else { return ''; } } public function xietiao_api($id) { $data = Dever::db('work/branch')->find($id); $data['group'] = explode(',',$data['group']); $group = Dever::db('manage/group')->find($data['group'][0]); $admin = Dever::load('manage/company')->getAdmin($group['id'], $data['group'][1]); $gad = Dever::db('manage/admin')->find($data['group'][1]); $res = array(); foreach ($admin as $k => $v) { $res[$k] = $v['username'].'
'.$v['email']; } // $total = Dever::db('work/info')->getquestTotal(array('group'=>$data['group'][0])); $html = array(); $html['group'] = $group['name'].'
'.$gad['username']; $html['name'] = implode('
',$res); $total = Dever::db('work/question')->getTotal(array('branch_id'=>$data['group_id'])); $html['num'] = $total; return $html; } #获取客户信息 public function search_api() { $value = Dever::input('value'); if(!preg_match('/^1[3|5|6|7|8|9]\d{9}$/', $value)){ return '代理商手机号不正确'; } if ($value) { $name = ''; $role_name = ''; $user = Dever::db('work/user')->find(array('mobile'=>$value)); if(!$user) { $member = Dever::db('agent/member')->find(array('mobile'=>$value)); if ($member) { $name = $member['name']; $type = "代理商"; $role = Dever::db('setting/role')->find($member['role']); if ($role ) { $role_name = $role['name']; } $option = Dever::db('option/member')->find(array('mobile'=>$value)); if ($option) { $type = $type.'
期权账户'; $passport = Dever::db('passport/user')->find(array('mobile'=>$value)); if ($passport) { $type = $type.'
小程序'; } } else { $passport = Dever::db('passport/user')->find(array('mobile'=>$value)); if ($passport) { $type = $type.'
小程序'; } } } else { $option = Dever::db('option/member')->find(array('mobile'=>$value)); if ($option) { $name = $option['name']; $type = '期权账户'; $passport = Dever::db('passport/user')->find(array('mobile'=>$value)); if ($passport) { $type = $type.'
小程序'; } } else { $passport = Dever::db('passport/user')->find(array('mobile'=>$value)); if ($passport) { $name = $passport['username']; $type = '小程序'; } else { $type = '无系统关联关系'; } } } } else { $name = $user['name']; $type = '客服系统用户'; if ($user['agent_uid'] && $user['agent_uid'] > 0) { $member = Dever::db('agent/member')->find($user['agent_uid']); $role = Dever::db('setting/role')->find($member['role']); if ($role) { $role_name = $role['name']; } $type = $type.'
代理商'; } if ($user['option_uid'] && $user['option_uid'] > 0) { $type = $type.'
期权账户'; } if ($user['passport_uid'] && $user['passport_uid'] > 0) { $type = $type.'
小程序'; } } $table = array(); if ($name && $role_name) { $table['head'] = array('名称', '电话号码', '平台' ,'角色'); $table['body'] = array($name, $value, $type, $role_name); } elseif ($name && !$role_name) { $table['head'] = array('名称', '电话号码', '平台'); $table['body'] = array($name, $value, $type); } elseif (!$name && $role_name) { $table['head'] = array('电话号码', '平台' ,'角色'); $table['body'] = array($value, $type, $role_name); } else if (!$name && !$role_name) { $table['head'] = array('电话号码', '平台'); $table['body'] = array($value, $type ); } $result[] = array ( 'type' => 'table', 'content' => $table, ); $html = Dever::show('', $result, false, false); return array('html' => $html, 'data' => array('name' => $name)); } } public function admin($id) { $data = Dever::db('work/product')->find(array($id)); $admin_id = explode(',',$data['admin_id']); $admin = Dever::db('manage/admin')->find($admin_id[1]); if ($admin) { return $admin['username'].'
'.$admin['email']; } } public function branch($id) { if (isset($id) && $id) { $group = Dever::db('manage/group')->find($id); if (isset($group) && isset($group['name']) && $group['name']) { return $group['name']; } } } #工单列表导出 public function out_info($data) { $header = array('客户名称','手机号','问题类型','问题类型描述','优先级','问题描述','处理结果','创建时间','完成时间'); $body = array(); $config = Dever::db('work/info')->config['config_status']; foreach ($data as $k => $v ) { $cate_name = ''; $cate_id = explode(',',$v['cate_id']); if (isset($cate_id[0]) && $cate_id[0]) { $cate = Dever::db('work/q_cate')->find(array('id'=>$cate_id[0])); if ($cate) { $cate_name = $cate['name']; } } $question_name = ''; if (isset($cate_id[1]) && $cate_id[1]) { $question = Dever::db('work/question')->find(array('id'=>$cate_id[1])); if ($question) { $question_name = $question['name']; } } $priority_name = ''; $priority = Dever::db('work/priority')->find(array('id'=>$v['priority_id'])); if ($priority) { $priority_name = $priority['name']; } $status_name = Dever::status($config,$v['status']); $cdate = date('Y-m-d H:i',$v['cdate']); $fdate = ''; if ($v['fdate']){ $fdate = date('Y-m-d H:i',$v['fdate']); } $d = array ( $v['name'], $v['mobile'], $cate_name, $question_name, $priority_name, $v['desc'], $status_name, $cdate, $fdate, ); $body[] = $d; } $file = Dever::input('excel_name'); return Dever::excelExport($body, $header, $file); } public function getTotal($admin_id,$status=false) { $company = Dever::load('manage/company.get'); $where = array(); if ($status){ $where['status'] = $status; if ($where['status'] == '1,2') { $where['appoint_id'] = $admin_id; } else { $where['fpeople'] = $admin_id; } } else { $where['audit_admin'] = $admin_id; } if ($company) { $where['company_id'] = $company; } $data = Dever::db('work/info')->getTotal($where); return $data; } public function getmyTotal($admin_id,$type) { // $info = Dever::db('work/info')->getmyAll(array('audit_admin'=>$admin_id,'state'=>1)); $data = Dever::db('work/info_log')->getmyAll(array('app_admin_id'=>$admin_id,'state'=>1)); $res = Dever::db('work/info_log')->getmyAll(array('admin_id'=>$admin_id)); $work_info = array_merge($data,$res); $rest = array(); foreach($work_info as $k=>$v){ $rest[$v['info_id']]=$v; } // print_R($data);die; $search_ids = ''; if ($rest) { $search_ids = implode(',',array_keys($rest)); } if ($type == 1) { return count($rest); } else { return $search_ids; } } }