cache.php 1.7 KB

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