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'].'
期权账户';
}
if ($user['passport_uid'] && $user['passport_uid']>0) {
$user['type'] = $user['type'].'
小程序';
}
} else {
if ($user['option_uid'] && $user['option_uid']>0) {
$user['type'] = '期权账户';
if ($user['passport_uid'] && $user['passport_uid']>0) {
$user['type'] = $user['type'].'
小程序';
}
} 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);
}
}