Cron.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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. $admin = explode(',',$data['branch']['group']);
  36. if ($data['branch']['coor']) {
  37. $coor = explode(',',$data['branch']['coor']);
  38. if (isset($coor) && $coor[0] && $coor[0] >0) {
  39. $people = $data['branch']['coor'].','.$admin[1];
  40. } else {
  41. $people = $admin[1];
  42. }
  43. } else {
  44. $people = $admin[1];
  45. }
  46. $data['info']['yi'] = Dever::db('work/info')->getCount(array('fpeople'=>$people,'end'=>$end,'status'=>'3,4'));
  47. // echo Dever::sql();die;
  48. // $data['info']['wei'] = Dever::db('work/info')->getCount(array('group'=>$data['branch']['group_id'],'start'=>$start,'end'=>$end,'status'=>4));
  49. $data['question'] = Dever::db('work/question')->getAll(array('branch_id'=>$data['branch']['group_id']));
  50. $question = implode(',',$question);
  51. // print_R($question);die;
  52. $data['app'] = Dever::db('work/info')->fetchAll('select * from churen_work_info where (`group` in ('.$data['branch']['group_id'].') or fpeople in ('.$people.') or question in ('.$question.')) and cdate <='.$end.' and state = 1');
  53. // getAll(array('group'=>$data['branch']['group_id'],'end'=>$end));
  54. // print_R($data);die;
  55. foreach ($data['app'] as $k1 => $v1) {
  56. $data['app'][$k1]['cdate'] = date('Y-m-d H:i:s',$v1['cdate']);
  57. $data['app'][$k1]['zhipai'] = date('Y-m-d H:i:s',$v1['zdate']);
  58. $data['app'][$k1]['chu'] = date('Y-m-d H:i:s',$v1['chdate']);
  59. $cate = Dever::db('work/q_cate')->find($v1['cate_id']);
  60. $data['app'][$k1]['cate_name'] = $cate['name'];
  61. $priority = Dever::db('work/priority')->find($v1['priority_id']);
  62. $data['app'][$k1]['priority_name'] = $priority['name'];
  63. $data['app'][$k1]['status']= Dever::status($config,$v1['status']);
  64. }
  65. return Dever::render('email', $data);
  66. }
  67. #代理商统计发送邮件
  68. public function send($email, $username, $title, $content)
  69. {
  70. $config = Dever::config('base', 'project')->email;
  71. Dever::apply('src/PHPMailer', 'email');
  72. Dever::apply('src/Exception', 'email');
  73. Dever::apply('src/SMTP', 'email');
  74. $mail = new \PHPMailer\PHPMailer\PHPMailer();
  75. $mail->isSMTP();
  76. //$mail->SMTPDebug = 2;
  77. $mail->CharSet = 'UTF-8';
  78. $mail->Host = $config['smtp'];
  79. $mail->Port = 465;
  80. $mail->SMTPSecure = 'ssl';
  81. $mail->SMTPAuth = true;
  82. $mail->Username = $config['username'];
  83. $mail->Password = $config['password'];
  84. $mail->setFrom($config['from'][0], '统计');
  85. $mail->addAddress($email, $username);
  86. $mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
  87. $mail->Body = $content;
  88. $mail->isHTML(true);
  89. //$mail->addAttachment($file);
  90. if (!$mail->send()) {
  91. Dever::alert("Mailer Error: " . $mail->ErrorInfo);
  92. } else {
  93. return 'ok';
  94. }
  95. }
  96. #同步info表中的product
  97. public function product_api()
  98. {
  99. $data = Dever::db('work/info')->state();
  100. if ($data) {
  101. foreach ($data as $k => $v) {
  102. if (!$v['product'] || $v['product']<=0) {
  103. $cate = explode(',',$v['cate_id']);
  104. if (isset($cate[1]) && $cate[1]) {
  105. $product = Dever::db('work/question')->find($cate[1]);
  106. if ($product) {
  107. $where['where_id'] = $v['id'];
  108. $where['product'] = $product['product_id'];
  109. Dever::db('work/info')->update($where);
  110. }
  111. }
  112. }
  113. }
  114. }
  115. }
  116. public function updateTime_api()
  117. {
  118. $data = Dever::db('work/info')->state();
  119. foreach ($data as $k => $v) {
  120. if (!$v['fpeople'] && ($v['status'] == 3 || $v['status'] == 4)) {
  121. $app = Dever::db('work/appoint')->getAdmin(array('info_id'=>$v['id'],'admin'=>$v['audit_admin']));
  122. if ($app && $app['admin']) {
  123. $update['fpeople'] = $app['admin'];
  124. } else {
  125. if ($v['branch_id']) {
  126. $branch = explode(',',$v['branch_id']);
  127. if (isset($branch[1]) && $branch[1]) {
  128. $update['fpeople'] = $branch[1];
  129. }
  130. } else {
  131. $update['fpeople'] = $v['audit_admin'];
  132. }
  133. }
  134. $update['where_id'] = $v['id'];
  135. Dever::db('work/info')->update($update);
  136. }
  137. }
  138. }
  139. }