|
@@ -0,0 +1,425 @@
|
|
|
+<?php
|
|
|
+namespace Work\lib;
|
|
|
+use Dever;
|
|
|
+Class Appoint
|
|
|
+{
|
|
|
+ public function startBranch($id,$name,$data)
|
|
|
+ {
|
|
|
+ // Dever::config('base')->hook = true;
|
|
|
+ $group = Dever::param('group',$data);
|
|
|
+ // $id = Dever::param('id',$data);
|
|
|
+ if ($group) {
|
|
|
+ $res = Dever::db('work/branch')->find(array('group_id'=>$group[0]));
|
|
|
+ if ($res && isset($id['where_id']) && $id['where_id']){
|
|
|
+ if ($res['id'] != $id['where_id']){
|
|
|
+ Dever::alert('部门已存在');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Dever::alert('部门已存在');
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public function updateBranch($id,$name,$data)
|
|
|
+ {
|
|
|
+ // Dever::config('base')->hook = true;
|
|
|
+ $group = Dever::param('group',$data);
|
|
|
+ if($group) {
|
|
|
+ $where['where_id'] = $id;
|
|
|
+ $where['group_id'] = $group[0];
|
|
|
+ Dever::db('work/branch')->update($where);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function updateAppoint($id,$name,$data)
|
|
|
+ {
|
|
|
+ Dever::config('base')->hook = true;
|
|
|
+ $info_id = Dever::param('info_id',$data);
|
|
|
+ $branch = Dever::param('admin_id',$data);
|
|
|
+ if ($info_id ) {
|
|
|
+ $info = Dever::db('work/info')->find($info_id);
|
|
|
+ $admin = Dever::load('manage/auth.info');
|
|
|
+ $admin_id = $info['audit_admin'];
|
|
|
+ if ($info['audit_admin'] != $admin['id']) {
|
|
|
+ $admin_id = $admin['id'];
|
|
|
+ }
|
|
|
+ if($info) {
|
|
|
+ if ($branch) {
|
|
|
+ $i['where_id'] = $info['id'];
|
|
|
+ if ($info['group']) {
|
|
|
+ $group = $info['group'].',';
|
|
|
+ } else {
|
|
|
+ $group = $branch[0];
|
|
|
+ }
|
|
|
+ if (isset($branch[1]) && $branch[1]) {
|
|
|
+ $i['appoint_id'] = $branch[1];
|
|
|
+ }
|
|
|
+
|
|
|
+ $i['group'] = $group;
|
|
|
+ $i['zdate'] = time();
|
|
|
+ $i['chdate'] = time();
|
|
|
+ $i['status'] = 2;
|
|
|
+ if ($i) {
|
|
|
+ Dever::db('work/info')->update($i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $w['info_id'] = $info['id'];
|
|
|
+ $w['admin_id'] = $admin_id;
|
|
|
+ $w['appoint_id'] = $id;
|
|
|
+ Dever::db('work/info_log')->insert($w);
|
|
|
+ }
|
|
|
+ if ($branch) {
|
|
|
+ $data = Dever::db('work/branch')->find(array('group_id'=>$branch[0]));
|
|
|
+ if ($data) {
|
|
|
+ $where['where_id'] = $data['id'];
|
|
|
+ $where['num'] = $data['num'] +1;
|
|
|
+ Dever::db('work/branch')->update($where);
|
|
|
+ }
|
|
|
+ $wh['where_id'] = $id;
|
|
|
+ $wh['group'] = $branch[0];
|
|
|
+ Dever::db('work/appoint')->update($wh);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #指派人
|
|
|
+ private $default = array
|
|
|
+ (
|
|
|
+ 'value' => -1,
|
|
|
+ 'name' => '不选择',
|
|
|
+ );
|
|
|
+ private $search_default = array
|
|
|
+ (
|
|
|
+ 'value' => -1,
|
|
|
+ 'name' => '部门',
|
|
|
+ );
|
|
|
+ public function get_api()
|
|
|
+ {
|
|
|
+ # 联动总数,默认到部门
|
|
|
+ $level_total = Dever::input('level_total', 1);
|
|
|
+
|
|
|
+ # 当前联动级别
|
|
|
+ $level_num = Dever::input('level_num');
|
|
|
+
|
|
|
+ # 一般为id
|
|
|
+ $level_id = Dever::input('level_id');
|
|
|
+
|
|
|
+ # 是否是搜索列表页
|
|
|
+ $level_search = Dever::input('level_search');
|
|
|
+ if ($level_search) {
|
|
|
+ $default = $this->search_default;
|
|
|
+ if ($level_num == 1) {
|
|
|
+ $default['name'] = '部门选择';
|
|
|
+ } elseif ($level_num == 2) {
|
|
|
+ $default['name'] = '组员选择';
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $default = $this->default;
|
|
|
+ }
|
|
|
+ // if ($level_id < 0) {
|
|
|
+ // Dever::alert('error');
|
|
|
+ // }
|
|
|
+ if ($level_num == 1) {
|
|
|
+ $data = $this->group();
|
|
|
+
|
|
|
+ } elseif ($level_num == 2) {
|
|
|
+ $data = $this->group_admin($level_id);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!$data) {
|
|
|
+ Dever::alert('error');
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($level_search || $level_num >= 1) {
|
|
|
+ array_unshift($data, $default);
|
|
|
+ }
|
|
|
+ $result['level_total'] = $level_total;
|
|
|
+ $result['list'] = $data;
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+ public function group(){
|
|
|
+ $data = Dever::load('manage/company')->getGroup();
|
|
|
+ foreach ($data as $k => $v) {
|
|
|
+ $data[$k]['value'] = $v['id'];
|
|
|
+ }
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+ public function group_admin($level_id){
|
|
|
+ $data = Dever::load('manage/company')->getAdmin($level_id);
|
|
|
+ foreach ($data as $k => $v) {
|
|
|
+ foreach ($v as $k1 => $v1) {
|
|
|
+ $data[$k]['value'] = $v['id'];
|
|
|
+ $data[$k]['name'] = $v['username'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+ public function show_api()
|
|
|
+ {
|
|
|
+ $info_id = Dever::input('id');
|
|
|
+ $data['info'] = Dever::db('work/info')->find($info_id);
|
|
|
+ $ztime = $data['info']['cdate'];
|
|
|
+ $data['info']['cdate'] = date('Y-m-d H:i',$data['info']['cdate']);
|
|
|
+ $priority = Dever::db('work/priority')->find($data['info']['priority_id']);
|
|
|
+ $data['info']['priority_name'] = $priority['name'];
|
|
|
+ $data['info']['color'] = $priority['color'];
|
|
|
+ $admin = Dever::db('manage/admin')->find($data['info']['audit_admin']);
|
|
|
+ $group = Dever::db('manage/group')->find($admin['group']);
|
|
|
+ $data['info']['admin'] = $group['name'].' / '.$admin['username'];
|
|
|
+ if ($data['info']['source']) {
|
|
|
+ $source = Dever::db('work/q_source')->find($data['info']['source']);
|
|
|
+ if ($source) {
|
|
|
+ $data['info']['source_name'] = $source['name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($data['info']['question_id']) {
|
|
|
+ $question = Dever::db('work/question')->find($data['info']['question_id']);
|
|
|
+ if ($question) {
|
|
|
+ $product = Dever::db('work/product')->find($question['product_id']);
|
|
|
+ if ($product) {
|
|
|
+ $data['info']['product_name'] = $product['name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $data['info']['role_name'] = '';
|
|
|
+ $user = Dever::db('work/user')->find(array('mobile'=>$data['info']['mobile']));
|
|
|
+ if ($user) {
|
|
|
+ $data['info']['user_name'] = $user['name'];
|
|
|
+ $data['info']['mobile'] = $user['mobile'];
|
|
|
+ $data['info']['idcard'] = $user['idcard'];
|
|
|
+ if ($user['agent_uid'] && $user['agent_uid']>0) {
|
|
|
+ $member = Dever::db('agent/member')->find($user['agent_uid']);
|
|
|
+ if ($member && $member['role']) {
|
|
|
+ $role = Dever::db('setting/role')->find($member['role']);
|
|
|
+ if ($role) {
|
|
|
+ $data['info']['role_name'] = $role['name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $data['info']['cate_name'] = '';
|
|
|
+ if ($data['info']['cate_id']) {
|
|
|
+ $cate = Dever::db('work/q_cate')->find($data['info']['cate_id']);
|
|
|
+ if ($cate && $question) {
|
|
|
+ $data['info']['cate_name'] = $cate['name'].' / '.$question['name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($data['info']['pic']) {
|
|
|
+ $data['info']['pic'] = explode(',',$data['info']['pic']);
|
|
|
+ }
|
|
|
+ $data['info_log'] = Dever::db('work/info_log')->getAll(array('info_id'=>$info_id));
|
|
|
+ foreach ($data['info_log'] as $k => $v) {
|
|
|
+ $data['info_log'][$k]['cdate'] = date('Y-m-d H:i:s',$v['cdate']);
|
|
|
+ $admin = Dever::db('manage/admin')->find($v['admin_id']);
|
|
|
+ $admin_group = Dever::db('manage/group')->find($admin['group']);
|
|
|
+ $data['info_log'][$k]['admin_group'] = $admin_group['name'].' / '.$admin['username'];
|
|
|
+ $appoint = Dever::db('work/appoint')->find($v['appoint_id']);
|
|
|
+ if (isset($appoint) && $appoint) {
|
|
|
+ $data['info_log'][$k]['desc'] = $appoint['desc'];
|
|
|
+ $appoint_admin = explode(',',$appoint['admin_id']);
|
|
|
+ $appoint_group = Dever::db('manage/group')->find($appoint_admin[0]);
|
|
|
+ $appoint_ad = Dever::db('manage/admin')->find($appoint_admin[1]);
|
|
|
+ if ($appoint_admin && $appoint_ad) {
|
|
|
+ $data['info_log'][$k]['appoint_admin'] = $appoint_group['name'].' / '.$appoint_ad['username'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $data['info_log'][$k]['image'] = '';
|
|
|
+ if ($appoint['video']) {
|
|
|
+ $data['info_log'][$k]['video'] = $appoint['video'];
|
|
|
+ }
|
|
|
+ if ($appoint['pic']) {
|
|
|
+ $data['info_log'][$k]['pic'] = explode(',',$appoint['pic']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $data['s_zhi'] = array();
|
|
|
+ $data['s_zhi']['cdate'] = date('Y-m-d H:i',time());
|
|
|
+
|
|
|
+ $data['zhi'] = Dever::db('work/appoint')->getAll(array('info_id'=>$info_id));
|
|
|
+ foreach ($data['zhi'] as $k => $v) {
|
|
|
+ $time = $v['cdate'] - $ztime;
|
|
|
+ $data['zhi'][$k]['time'] = floor($time%86400/3600).'小时'.floor($time%3600/60).'分钟'.floor($time%60).'秒';
|
|
|
+ $admin = explode(',',$v['admin_id']);
|
|
|
+ $group = Dever::db('manage/group')->find($admin[0]);
|
|
|
+ $adm = Dever::db('manage/admin')->find($admin[1]);
|
|
|
+ $data['zhi'][$k]['admin'] = $group['name'].' / '.$adm['username'];
|
|
|
+ $data['zhi'][$k]['cdate'] = date('Y-m-d H:i',$v['cdate']);
|
|
|
+ $info_log = Dever::db('work/info_log')->find(array('appoint_id'=>$v['id']));
|
|
|
+ if ($info_log && $info_log['fdate']) {
|
|
|
+ $data['zhi'][$k]['finish'] = '完成关闭';
|
|
|
+ $data['zhi'][$k]['time'] ='';
|
|
|
+ } else {
|
|
|
+ if ($info_log && $info_log['cloce_date']) {
|
|
|
+ $data['zhi'][$k]['finish'] = '取消关闭';
|
|
|
+ $data['zhi'][$k]['time'] ='';
|
|
|
+ } else {
|
|
|
+ $data['zhi'][$k]['finish'] = '';
|
|
|
+ $data['zhi'][$k]['time'] = floor($time%86400/3600).'小时'.floor($time%3600/60).'分钟'.floor($time%60).'秒';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $data['hui'] = Dever::url('project/database/update?project=work&table=appoint&search_option_info_id='.$info_id, 'manage');
|
|
|
+ return Dever::render('index', $data);
|
|
|
+ }
|
|
|
+ #发送邮件
|
|
|
+ public function email_api()
|
|
|
+ {
|
|
|
+ $start=mktime(0,0,0,date('m'),date('d'),date('Y'));
|
|
|
+ $end = $start+86400-1;
|
|
|
+ $config = Dever::db('work/info')->config['config_status'];
|
|
|
+ $data['branch'] = Dever::db('work/branch')->state(array('type'=>1));
|
|
|
+ if ($data['branch']) {
|
|
|
+ foreach($data['branch'] as $k => $v) {
|
|
|
+ $data['info']['app'] = Dever::db('work/appoint')->getEmail(array('group'=>$v['group'],'start'=>$start,'end'=>$end));
|
|
|
+ $data['info']['xu'] = Dever::db('work/info')->getCount(array('group'=>$v['group'],'start'=>$start,'end'=>$end,'status'=>1));
|
|
|
+ $data['info']['yi'] = Dever::db('work/info')->getCount(array('group'=>$v['group'],'start'=>$start,'end'=>$end,'status'=>3));
|
|
|
+ $data['info']['wei'] = Dever::db('work/info')->getCount(array('group'=>$v['group'],'start'=>$start,'end'=>$end,'status'=>'1,2,4'));
|
|
|
+ $data['app'] = Dever::db('work/info')->getAll(array('group'=>$v['group'],'start'=>$start,'end'=>$end));
|
|
|
+ foreach ($data['app'] as $k1 => $v1) {
|
|
|
+ $data['app'][$k1]['cdate'] = date('Y-m-d H:i:s',$v1['cdate']);
|
|
|
+ $data['app'][$k1]['zhipai'] = date('Y-m-d H:i:s',$v1['zdate']);
|
|
|
+ $data['app'][$k1]['chu'] = date('Y-m-d H:i:s',$v1['chdate']);
|
|
|
+ $cate = Dever::db('work/q_cate')->find($v1['cate_id']);
|
|
|
+ $data['app'][$k1]['cate_name'] = $cate['name'];
|
|
|
+ $priority = Dever::db('work/priority')->find($v1['priority_id']);
|
|
|
+ $data['app'][$k1]['priority_name'] = $priority['name'];
|
|
|
+ $data['app'][$k1]['status']= Dever::status($config,$v1['status']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // print_R($data);die;
|
|
|
+ return Dever::render('email', $data);
|
|
|
+ }
|
|
|
+
|
|
|
+ #代理商日统计
|
|
|
+ public function index_api(){
|
|
|
+ $title = '工单每日统计';
|
|
|
+ $data = Dever::db('work/branch')->state(array('type'=>1));
|
|
|
+ foreach ($data as $k => $v) {
|
|
|
+ $group_id = explode(',',$v['group']);
|
|
|
+ $admin[] = Dever::db('manage/admin')->find($group_id[1]);
|
|
|
+ }
|
|
|
+ $content = $this->email_api();
|
|
|
+ foreach($admin as $key => $val){
|
|
|
+ $this->send($val['email'], $val['username'], $title, $content);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #代理商统计发送邮件
|
|
|
+ public function send($email, $username, $title, $content)
|
|
|
+ {
|
|
|
+ $config = Dever::config('base', 'project')->email;
|
|
|
+
|
|
|
+ Dever::apply('src/PHPMailer', 'email');
|
|
|
+ Dever::apply('src/Exception', 'email');
|
|
|
+ Dever::apply('src/SMTP', 'email');
|
|
|
+ $mail = new \PHPMailer\PHPMailer\PHPMailer();
|
|
|
+
|
|
|
+ $mail->isSMTP();
|
|
|
+ //$mail->SMTPDebug = 2;
|
|
|
+ $mail->CharSet = 'UTF-8';
|
|
|
+ $mail->Host = $config['smtp'];
|
|
|
+ $mail->Port = 465;
|
|
|
+ $mail->SMTPSecure = 'ssl';
|
|
|
+ $mail->SMTPAuth = true;
|
|
|
+ $mail->Username = $config['username'];
|
|
|
+ $mail->Password = $config['password'];
|
|
|
+ $mail->setFrom($config['from'][0], '统计');
|
|
|
+ $mail->addAddress($email, $username);
|
|
|
+ $mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
|
|
|
+ $mail->Body = $content;
|
|
|
+ $mail->isHTML(true);
|
|
|
+ //$mail->addAttachment($file);
|
|
|
+ if (!$mail->send()) {
|
|
|
+ Dever::alert("Mailer Error: " . $mail->ErrorInfo);
|
|
|
+ } else {
|
|
|
+ return 'ok';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public function back_api(){
|
|
|
+ $mobile = Dever::input('mobile');
|
|
|
+
|
|
|
+ $data = array();
|
|
|
+ if ($mobile) {
|
|
|
+ if(!preg_match('/^1[3|5|6|7|8|9]\d{9}$/', $mobile)){
|
|
|
+ // Dever::alert('代理商手机号不正确');
|
|
|
+ return '代理商手机号不正确';
|
|
|
+ }
|
|
|
+ $user = Dever::db('work/user')->find(array('mobile'=>$mobile));
|
|
|
+ if (!$user) {
|
|
|
+ return '无系统关联关系';
|
|
|
+ }
|
|
|
+ if ($user){
|
|
|
+ $table = array();
|
|
|
+ $user['role_name'] = '';
|
|
|
+ $user['type'] = '';
|
|
|
+ if ($user['agent_uid'] && $user['agent_uid'] > 0) {
|
|
|
+ $member = Dever::db('agent/member')->find($user['agent_uid']);
|
|
|
+
|
|
|
+ if ($member['role']) {
|
|
|
+ $role = Dever::db('setting/role')->find($member['role']);
|
|
|
+ if ($role) {
|
|
|
+ $user['role_name'] = $role['name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $user['type'] = '代理商';
|
|
|
+ if ($user['option_uid'] && $user['option_uid']>0) {
|
|
|
+ $user['type'] = $user['type'].'<br/>期权账户';
|
|
|
+ }
|
|
|
+ if ($user['passport_uid'] && $user['passport_uid']>0) {
|
|
|
+ $user['type'] = $user['type'].'<br/>小程序';
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ if ($user['option_uid'] && $user['option_uid']>0) {
|
|
|
+ $user['type'] = '期权账户';
|
|
|
+ if ($user['passport_uid'] && $user['passport_uid']>0) {
|
|
|
+ $user['type'] = $user['type'].'<br/>小程序';
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if ($user['passport_uid'] && $user['passport_uid']>0) {
|
|
|
+ $user['type'] = '小程序';
|
|
|
+ } else {
|
|
|
+ return '无系统关联关系';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($user['agent_uid']) {
|
|
|
+ $user['order'] = Dever::url('project/database/list?project=agent&table=order&p=1&search_option_mid='.$user['agent_uid'], 'manage');
|
|
|
+ $user['agent'] = Dever::url('project/database/list?project=agent&table=member_area&mid='.$user['agent_uid'].'&page_type=1&search_auth=1&page_type=1&jump=19','manage');
|
|
|
+ // ('project/database/list?project=agent&table=member&search_option_id='.$user['agent_uid'], 'manage');
|
|
|
+ $user['soft'] = Dever::url('project/database/list?project=agent&table=soft_cash&search_option_mid='.$user['agent_uid'], 'manage');
|
|
|
+ }
|
|
|
+ if ($user['option_uid']) {
|
|
|
+ $user['option'] = Dever::url('project/database/list?project=option&table=member&search_option_id='.$user['option_uid'], 'manage');
|
|
|
+ }
|
|
|
+ $user['work'] = Dever::url('project/database/update?project=work&table=info&menu=work', 'manage');
|
|
|
+ $data['user'] = $user;
|
|
|
+ $data['info'] = Dever::db('work/info')->getHAll(array('mobile'=>$mobile));
|
|
|
+ $config = Dever::db('work/info')->config['config_status'];
|
|
|
+ foreach($data['info'] as $k => $v) {
|
|
|
+ $data['info'][$k]['cdate'] = date('Y-m-d H:i',$v['cdate']);
|
|
|
+ $data['info'][$k]['fdate'] = date('Y-m-d H:i',$v['fdate']);
|
|
|
+ $cate = Dever::db('work/q_cate')->find(array('id'=>$v['cate_id']));
|
|
|
+ $data['info'][$k]['cate_name'] = $cate['name'];
|
|
|
+ $you = Dever::db('work/priority')->find(array('id'=>$v['priority_id']));
|
|
|
+ $data['info'][$k]['you'] = $you['name'];
|
|
|
+ $group = Dever::db('manage/group')->find(array('id'=>$v['branch_id']));
|
|
|
+ $data['info'][$k]['branch'] = $group['name'];
|
|
|
+ $data['info'][$k]['status'] = Dever::status($config,$v['status']);
|
|
|
+ $data['info'][$k]['url'] = Dever::url('lib/appoint.show&id='.$v['id'],'work');
|
|
|
+ if ($v['status']<3) {
|
|
|
+ $data['info'][$k]['zhipai'] = Dever::url('project/database/update?project=work&table=appoint&search_option_info_id='.$v['id'], 'manage');
|
|
|
+ } else {
|
|
|
+ $data['info'][$k]['zhipai'] = '';
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ $data['page'] = Dever::page("current");
|
|
|
+ }
|
|
|
+ // print_R($data);die;
|
|
|
+ return Dever::render('back', $data);
|
|
|
+ }
|
|
|
+}
|