Data.php 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. include_once(FCPATH . 'application/controllers/Base_Controller.php');
  3. class Data extends Base_Controller {
  4. public function __construct() {
  5. parent::__construct();
  6. $this->load->model('Company_model');
  7. $this->load->model('Project_model');
  8. $this->load->model('Network_model');
  9. $this->load->model('Lamp_model');
  10. $this->load->model('Videomonitor_model');
  11. }
  12. public function index() {
  13. $project_id = $this->input->post('project_id', true);
  14. $show_projects = $this->input->post('show_projects', true);
  15. $show_networks = $this->input->post('show_networks', true);
  16. $show_lamps = $this->input->post('show_lamps', true);
  17. $lng_low = $this->input->post('lng_low', true);
  18. $lng_high = $this->input->post('lng_high', true);
  19. $lat_low = $this->input->post('lat_low', true);
  20. $lat_high = $this->input->post('lat_high', true);
  21. $companyid = $this->get_user_info('companyid');
  22. $role = $this->get_user_info('role');
  23. $userid = $this->get_user_info('id');
  24. $project_total = $this->Project_model->getTotal(array(), $role, $companyid, $userid);
  25. $network_total = $this->Network_model->getTotal(array(), $role, $companyid, $userid);
  26. $lamp_total = $this->Lamp_model->getTotal(array(), $role, $companyid, $userid);
  27. $data = array(
  28. "total_project" => intval($project_total),
  29. "total_network" => intval($network_total),
  30. "total_lamp" => intval($lamp_total)
  31. );
  32. $project_id = intval($project_id);
  33. $condition = array();
  34. if ($project_id > 0) {
  35. $condition['id'] = $project_id;
  36. }
  37. $project_data = $this->Project_model->getMultiData($condition, 'P.id, P.projectname as name', $role, $companyid, $userid);
  38. $pid_arr = array();
  39. foreach ($project_data as $key => $value) {
  40. $pid_arr[] = $value['id'];
  41. }
  42. if ($show_projects) {
  43. $data['projects'] = $project_data;
  44. }
  45. if ($show_networks) {
  46. $data['networks'] = !empty($pid_arr) ? $this->Network_model->get_list_in('projectid', $pid_arr, 'id, status, networkname as name') : array();
  47. }
  48. if ($show_lamps) {
  49. $filter = array();
  50. if (is_numeric($lng_low)) {
  51. $filter['lng_low'] = $lng_low;
  52. }
  53. if (is_numeric($lng_high)) {
  54. $filter['lng_high'] = $lng_high;
  55. }
  56. if (is_numeric($lat_low)) {
  57. $filter['lat_low'] = $lat_low;
  58. }
  59. if (is_numeric($lat_high)) {
  60. $filter['lat_high'] = $lat_high;
  61. }
  62. $data['lamps'] = !empty($pid_arr) ? $this->Lamp_model->get_list_in('L.projectid', $pid_arr, 'L.id, IFNULL(L.status,0) as status, L.isfaulted, N.status as online, L.longitude, L.latitude', $filter) : array();
  63. }
  64. exit(json_result('0000', $this->response['0000'], $data));
  65. }
  66. public function get_project_company(){
  67. $id = $this->input->post('id',true);
  68. $type = $this->input->post('type',true);
  69. if ($type == 1) {
  70. $data = $this->Lamp_model->get_project_company(array('L.id'=>$id),'P.id as projectid,P.company as companyid,L.longitude,L.latitude,L.direction');
  71. }else{
  72. $data = $this->Videomonitor_model->get_project_company(array('V.id'=>$id),'P.id as projectid,P.company as companyid,V.longitude,V.latitude');
  73. }
  74. $data['longitude'] = empty($data['longitude']) ? 0 : floatval($data['longitude']);
  75. $data['latitude'] = empty($data['latitude']) ? 0 : floatval($data['latitude']);
  76. exit(json_result('0000',$this->response['0000'],$data));
  77. }
  78. }