Cron.php 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace Work\Lib;
  3. use Dever;
  4. Class Cron
  5. {
  6. #工单日统计
  7. public function index_api(){
  8. $title = '工单每日统计';
  9. $data = Dever::db('work/branch')->state(array('type'=>1));
  10. foreach ($data as $k => $v) {
  11. $group_id = explode(',',$v['group']);
  12. $admin = Dever::db('manage/admin')->find($group_id[1]);
  13. $content = $this->email_api($v);
  14. $this->send($admin['email'], $admin['username'], $title, $content);
  15. }
  16. // $content = $this->email_api();
  17. // foreach($admin as $key => $val){
  18. // $this->send($val['email'], $val['username'], $title, $content);
  19. // }
  20. }
  21. #发送邮件
  22. public function email_api($v)
  23. {
  24. $start=mktime(0,0,0,date('m'),date('d'),date('Y'))-86400;
  25. $end = $start+86400-1;
  26. $config = Dever::db('work/info')->config['config_status'];
  27. $data['branch'] = $v;
  28. $question = Dever::db('work/question')->state(array('branch_id'=>$data['branch']['group_id']));
  29. $question = array_keys($question);
  30. $data['info']['app'] = Dever::db('work/info')->getCount(array('question'=>$question,'end'=>$end));
  31. $data['info']['xu'] = Dever::db('work/info')->getCount(array('group'=>$data['branch']['group_id'],'end'=>$end,'status'=>2));
  32. $app = Dever::db('work/appoint')->getYAll(array('group'=>$data['branch']['group_id']));
  33. $app = array_keys($app);
  34. $data['info']['yi'] = Dever::db('work/info')->getCount(array('id'=>$app,'end'=>$end,'status'=>'3,4'));
  35. // $data['info']['wei'] = Dever::db('work/info')->getCount(array('group'=>$data['branch']['group_id'],'start'=>$start,'end'=>$end,'status'=>4));
  36. $data['question'] = Dever::db('work/question')->getAll(array('branch_id'=>$data['branch']['group_id']));
  37. $data['app'] = Dever::db('work/info')->getAll(array('group'=>$data['branch']['group_id'],'start'=>$start,'end'=>$end));
  38. foreach ($data['app'] as $k1 => $v1) {
  39. $data['app'][$k1]['cdate'] = date('Y-m-d H:i:s',$v1['cdate']);
  40. $data['app'][$k1]['zhipai'] = date('Y-m-d H:i:s',$v1['zdate']);
  41. $data['app'][$k1]['chu'] = date('Y-m-d H:i:s',$v1['chdate']);
  42. $cate = Dever::db('work/q_cate')->find($v1['cate_id']);
  43. $data['app'][$k1]['cate_name'] = $cate['name'];
  44. $priority = Dever::db('work/priority')->find($v1['priority_id']);
  45. $data['app'][$k1]['priority_name'] = $priority['name'];
  46. $data['app'][$k1]['status']= Dever::status($config,$v1['status']);
  47. }
  48. return Dever::render('email', $data);
  49. }
  50. #代理商统计发送邮件
  51. public function send($email, $username, $title, $content)
  52. {
  53. $config = Dever::config('base', 'project')->email;
  54. Dever::apply('src/PHPMailer', 'email');
  55. Dever::apply('src/Exception', 'email');
  56. Dever::apply('src/SMTP', 'email');
  57. $mail = new \PHPMailer\PHPMailer\PHPMailer();
  58. $mail->isSMTP();
  59. //$mail->SMTPDebug = 2;
  60. $mail->CharSet = 'UTF-8';
  61. $mail->Host = $config['smtp'];
  62. $mail->Port = 465;
  63. $mail->SMTPSecure = 'ssl';
  64. $mail->SMTPAuth = true;
  65. $mail->Username = $config['username'];
  66. $mail->Password = $config['password'];
  67. $mail->setFrom($config['from'][0], '统计');
  68. $mail->addAddress($email, $username);
  69. $mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
  70. $mail->Body = $content;
  71. $mail->isHTML(true);
  72. //$mail->addAttachment($file);
  73. if (!$mail->send()) {
  74. Dever::alert("Mailer Error: " . $mail->ErrorInfo);
  75. } else {
  76. return 'ok';
  77. }
  78. }
  79. }