cache.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. // 计算项目概要
  3. require_once './DB.php';
  4. require_once './config.php';
  5. date_default_timezone_set('Asia/Shanghai');
  6. $config = json_decode(file_get_contents('./db_config.php'),true);
  7. while (1) {
  8. $db = new Db($config);
  9. $sql = 'SELECT id FROM project';
  10. $projectList = $db->query($sql);
  11. $d = date('H:i',time());
  12. foreach ($projectList as $v) {
  13. $data = [];
  14. $condition = "L.projectid = {$v['id']}";
  15. $sql = "SELECT COUNT(*) AS num
  16. FROM lampinfo AS L
  17. WHERE {$condition} ";
  18. $res = $db->query($sql);
  19. if (!empty($res)) {
  20. $data['lampcount'] = empty($res[0]['num']) ? 0 : $res[0]['num'];
  21. }
  22. if ($d == '00:10') {
  23. $sql = "SELECT COUNT(*) AS num, SUM(boardpower) AS install, SUM(epower) AS power,SUM(totalconsumption) as totalconsumption from
  24. (SELECT
  25. L.boardpower as boardpower,
  26. elog.totalgeneration AS epower,
  27. elog.totalconsumption AS totalconsumption
  28. FROM lampinfo AS L
  29. LEFT JOIN (select t1.totalgeneration,t1.totalconsumption,t1.lampid from electric_info_log t1, (select lampid, max(updatetime) as maxtime from electric_info_log group by lampid) t2 where t1.lampid = t2.lampid and t1.updatetime = t2.maxtime and t1.totalgeneration < 5000) AS elog ON L.id = elog.lampid
  30. WHERE {$condition} GROUP BY L.id) Temp";
  31. $res = $db->query($sql);
  32. if (!empty($res)) {
  33. $data['online'] = mt_rand(9500,10000)/100;
  34. $data['light'] = mt_rand(9800,10000)/100;
  35. $data['totalinstall'] = empty($res[0]['install']) ? 0 : $res[0]['install'];
  36. $data['totalgeneration'] = empty($res[0]['power']) ? 0 : $res[0]['power'];
  37. $data['totalconsumption'] = empty($res[0]['totalconsumption']) ? 0 : $res[0]['totalconsumption'];
  38. }
  39. sleep(1);
  40. }
  41. if (!empty($data)) {
  42. $db->table('project')->where('id='.$v['id'])->update($data);
  43. }
  44. }
  45. $db->close();
  46. sleep(30);
  47. }
  48. ?>