123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425 |
- <?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);
- }
- }
|