Cron.php 3.4 KB

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