wzh il y a 5 ans
Parent
commit
c640f7913f

+ 4 - 3
api/application/controllers/Home.php

@@ -121,7 +121,8 @@ class Home extends Base_Controller {
             array('name'=>'路灯编号','field'=>'L.number','fields1'=>'number','enname'=>'Lamp number'),
             array('name'=>'路段','field'=>'L.section','fields1'=>'section','enname'=>'Road'),
             array('name'=>'路灯状态','field'=>'L.status as lampstatus,L.lighteness','fields1'=>'lampstatus','enname'=>'Lamp status'),
-            array('name'=>'信号状态','field'=>'N.protocoltype,N.status as status,N.rssi,N.snr','fields1'=>'status','enname'=>'Network status'),
+            array('name'=>'信号状态','field'=>'L.protocoltype,L.netstatus as status','fields1'=>'status','enname'=>'Network status'),
+            // array('name'=>'信号状态','field'=>'L.protocoltype,L.netstatus as status,N.rssi,N.snr','fields1'=>'status','enname'=>'Network status'),
             array('name'=>'更新时间','field'=>'L.logtime as updatetime','fields1'=>'updatetime','enname'=>'Update time'),
             array('name'=>'路灯亮度(%)','field'=>'L.lighteness','fields1'=>'lighteness','enname'=>'Brightness(%)'),
             array('name'=>'无线模块地址','field'=>'L.address','fields1'=>'address','enname'=>'Wireless module address'),
@@ -141,8 +142,8 @@ class Home extends Base_Controller {
             array('name'=>'项目名称','field'=>'P.projectname','fields1'=>'projectname','enname'=>'Project name'),
             array('name'=>'经度','field'=>'L.longitude','fields1'=>'longitude','enname'=>'Longitude'),
             array('name'=>'纬度','field'=>'L.latitude','fields1'=>'latitude','enname'=>'Latitude'),
-            array('name'=>'sim卡号','field'=>'N.simid','fields1'=>'simid','enname'=>'SIM card number'),
-            array('name'=>'套餐剩余','field'=>'N.packageSurplus','fields1'=>'packageSurplus','enname'=>'Package surplus'),
+            // array('name'=>'sim卡号','field'=>'N.simid','fields1'=>'simid','enname'=>'SIM card number'),
+            // array('name'=>'套餐剩余','field'=>'N.packageSurplus','fields1'=>'packageSurplus','enname'=>'Package surplus'),
             array('name'=>'路灯类型','field'=>'L.lamptype','fields1'=>'lamptype','enname'=>'Lamp type'),
             array('name'=>'太阳能板类型','field'=>'L.boardtype','fields1'=>'boardtype','enname'=>'Solar panel type'),
             array('name'=>'太阳能板功率(W)','field'=>'L.boardpower','fields1'=>'boardpower','enname'=>'Solar panel power(W)'),

+ 15 - 17
api/application/controllers/Lampcontrol.php

@@ -42,10 +42,10 @@ class Lampcontrol extends Base_Controller {
         // $type = intval($this->input->post('type', true));
         if (!empty($network_id)) $filter['L.networkid'] = $network_id;
         if (!empty($section)) $filter['L.section'] = $section;
-        $offline = $this->input->post('offline', true);
-        if (!empty($offline)) $filter['N.status'] = 0;
-        $online = $this->input->post('online', true);
-        if (!empty($online)) $filter['N.status'] = 1;
+        // $offline = $this->input->post('offline', true);
+        // if (!empty($offline)) $filter['N.status'] = 0;
+        // $online = $this->input->post('online', true);
+        // if (!empty($online)) $filter['N.status'] = 1;
 
         // 分页数据
         $page = intval($this->input->post('page',true));
@@ -83,9 +83,9 @@ class Lampcontrol extends Base_Controller {
             $data['lamps'] = $this->Lamp_model->get_list_by_join($filter, $fields,$limit, $offset, $join, "L.number ASC", NUll, 'L');
         } else {
             if(empty($fields) || empty($field1)){
-                $fields = 'L.id, L.number, IFNULL(L.status,0) as status, L.isfaulted, L.address, L.lamppower, L.electricSOC, L.battvoltage, L.chargestage, L.logtime as updatetime, L.updatetime as modifytime,L.overtimes,L.boardpower,L.lighteness as light,L.projectid,L.devstatus as online,N.networkname as network_name,N.type as net_type,P.projectname as project_name,L.section,L.loadtype,P.timezone as timezoneid,M.iccid';
+                $fields = 'L.id, L.number, IFNULL(L.status,0) as status, L.isfaulted, L.address, L.lamppower, L.electricSOC, L.battvoltage, L.chargestage, L.logtime as updatetime, L.updatetime as modifytime,L.overtimes,L.boardpower,L.lighteness as light,L.projectid,L.devstatus as online,P.projectname as project_name,L.section,L.loadtype,P.timezone as timezoneid';
             }else{
-                $fields .= ",L.id,L.projectid,L.section,N.devstatus as net_devstatus,L.loadtype,P.timezone as timezoneid,M.iccid";
+                $fields .= ",L.id,L.projectid,L.section,L.loadtype,P.timezone as timezoneid";
             }
 
             $download = intval($this->input->post('download',true));
@@ -97,10 +97,8 @@ class Lampcontrol extends Base_Controller {
             $join = array();
 
             $join[] = ['table'=>'project as P', 'cond'=>'L.projectid = P.id', 'type'=>'left'];
-            $join[] = ['table'=>'network as N', 'cond'=>'L.networkid = N.id', 'type'=>'left'];
-            $join[] = ['table'=>'msisdn as M', 'cond'=>'N.simid = M.imsi', 'type'=>'left'];
             $join[] = ['table'=>'(select t1.* from alarm_info_log t1, (select lampid, max(updatetime) as maxtime from alarm_info_log group by lampid) t2 where t1.lampid = t2.lampid and t1.updatetime = t2.maxtime) as AI', 'cond'=>'L.id = AI.lampid', 'type'=>'left'];
-            $data['lamps'] = $this->Lamp_model->get_list_by_join($filter, $fields,$limit, $offset, $join, "L.number ASC,N.networkname ASC", NUll, 'L');
+            $data['lamps'] = $this->Lamp_model->get_list_by_join($filter, $fields,$limit, $offset, $join, "L.number ASC", NUll, 'L');
             // $data['lamps'] = $this->Lamp_model->get_list_in('L.projectid', $pid_arr, $fields, $filter);
             // var_dump(microtime());
             $indexArr = [2=>'16',3=>'32',4=>'48',5=>'64'];
@@ -376,8 +374,8 @@ class Lampcontrol extends Base_Controller {
         unset($filter['page']);
         unset($filter['count']);
         $data['total_data']['install_num'] = $this->Lamp_model->get_count(array('projectid'=>$project_id));
-        $data['total_data']['light_num'] = $this->Lamp_model->get_light_count_by_project($project_id);
-        $data['total_data']['online_num'] = $this->Lamp_model->get_online_count_by_project($project_id);
+        $data['total_data']['light_num'] = $this->Lamp_model->get_count(array('projectid'=>$project_id,'netstatus'=>1,'status'=>1));
+        $data['total_data']['online_num'] = $this->Lamp_model->get_count(array('projectid'=>$project_id,'netstatus'=>1));
 
         $data['total_data']['fault_count'] = $this->Lamp_model->get_fault_count(array('L.projectid'=>$project_id,'L.isfaulted'=>1,'AI.status'=>0), $role, '', $userid,$project_id);
         $data['total_data']['light_rate'] = empty($data['total_data']['install_num']) ? '0' : round($data['total_data']['light_num']/$data['total_data']['install_num'],4)*100;
@@ -386,9 +384,9 @@ class Lampcontrol extends Base_Controller {
         $data['total_data']['online_rate'] .= '%';
         $data['total_data']['fault_rate'] = empty($data['total_data']['install_num']) ? '0' : round($data['total_data']['fault_count']/$data['total_data']['install_num'],4)*100;
         $data['total_data']['fault_rate'] .= '%';
-        $data['total_data']['network_num'] = $this->Network_model->get_count(['projectid'=>$project_id,'type'=>1]);
+        // $data['total_data']['network_num'] = $this->Network_model->get_count(['projectid'=>$project_id,'type'=>1]);
 
-        $res = $this->Lamp_model->get_list_by_multi_join($filter, 'count(*) total',$limit, $offset, $join, "L.number ASC,N.networkname ASC", NUll, 'L',true);
+        $res = $this->Lamp_model->get_list_by_multi_join($filter, 'count(*) total',$limit, $offset, $join, "L.number ASC", NUll, 'L',true);
         $result = !empty($pid_arr) ? $this->Lamp_model->get_total('L.projectid', $pid_arr, 'L.id') : array();
         $result = $this->Lamp_model->get_count(['projectid'=>$pid_arr]);
         $data['total'] = $res['total'];
@@ -1105,10 +1103,10 @@ class Lampcontrol extends Base_Controller {
         $lampData = $this->Lamp_model->getOne($lamp_id,'L.number,N.protocoltype,N.deviceid,L.address,L.protocoltype as lampprotocoltype');
 
         $seq = get_seq();
-        $sendData = '0110df0a000204';
-        $lightness2 = empty($lightness) ? '0000' : '0000'.base_convert($lightness, 10, 16);
-        $sendData .= strlen($lightness2) == 4 ? $lightness2 : substr($lightness2, -4);
-        $sendData .= mb_substr('0000'.base_convert(600, 10, 16), -4);
+
+        $sendData = '12'.PROTOCOL_VERSION.$seq;
+        $lightness2 = empty($lightness) ? '00' : '00'.base_convert($lightness, 10, 16);
+        $sendData .= strlen($lightness2) == 2 ? $lightness2 : substr($lightness2, -2);
         
         $sendData .= crc16(pack('H*',$sendData));
 

+ 15 - 9
api/application/controllers/Project.php

@@ -71,15 +71,21 @@ class Project extends Base_Controller {
         $where['isfaulted'] = 1;
         $data['failure_count'] = $this->Lamp_model->get_count($where);
 
-        $where2['N.status'] = 1;
-        $join = [];
-        $join[] = ['table'=>'network as N','cond'=>'N.id = L.networkid','type'=>'left'];
-        $res = $this->Lamp_model->get_list_by_multi_join($where2, 'count(*) as total',NULL, NULL, $join, NULL, NUll, 'L', true);
-        $data['online_count'] = $res['total'];
-
-        $where2['L.status'] = 1;
-        $res = $this->Lamp_model->get_list_by_multi_join($where2, 'count(*) as total',NULL, NULL, $join, NULL, NUll, 'L', true);
-        $data['lighting_count'] = $res['total'];
+        unset($where['isfaulted']);
+        $where['netstatus'] = 1;
+        $data['online_count'] = $this->Lamp_model->get_count($where);
+
+        $where['status'] = 1;
+        $data['lighting_count'] = $this->Lamp_model->get_count($where);
+        // $where2['N.status'] = 1;
+        // $join = [];
+        // $join[] = ['table'=>'network as N','cond'=>'N.id = L.networkid','type'=>'left'];
+        // $res = $this->Lamp_model->get_list_by_multi_join($where2, 'count(*) as total',NULL, NULL, $join, NULL, NUll, 'L', true);
+        // $data['online_count'] = $res['total'];
+
+        // $where2['L.status'] = 1;
+        // $res = $this->Lamp_model->get_list_by_multi_join($where2, 'count(*) as total',NULL, NULL, $join, NULL, NUll, 'L', true);
+        // $data['lighting_count'] = $res['total'];
         $data['timezone'] = ''; 
 
         if (empty($data['cityid'])) {

+ 2 - 2
api/application/helpers/function_helper.php

@@ -121,9 +121,9 @@ function mqttCmd($sendTopic,$backTopic,$sendData,$timeout = 5,$seq = ''){
 }
 
 function get_seq(){
-    $seq = rand(0,100000000);
+    $seq = rand(0,255);
     $seq = base_convert($seq, 10, 16);
-    return substr('0000'.$seq, -4);
+    return substr('00'.$seq, -2);
 }
 
 function get_check_sum($data){

+ 3 - 3
api/application/models/Lamp_model.php

@@ -220,10 +220,10 @@ class Lamp_model extends Base_model {
 			$this->db->where('L.section', $filter['section']);
 		}
 		if(isset($filter['offline']) && !empty($filter['offline'])){
-			$this->db->where('N.status', 0);
+			$this->db->where('L.netstatus', 0);
 		}
         if(isset($filter['online']) && !empty($filter['online'])){
-			$this->db->where('N.status', 1);
+			$this->db->where('L.netstatus', 1);
 		}
 		if(isset($filter['lightStatus']) && is_numeric($filter['lightStatus'])){
 			$this->db->where('L.status', $filter['lightStatus']);
@@ -278,7 +278,7 @@ class Lamp_model extends Base_model {
     
         $this->db->from($this->table.' as L');
         $this->db->join('(select t1.* from alarm_info_log t1, (select lampid, max(updatetime) as maxtime from alarm_info_log group by lampid) t2 where t1.lampid = t2.lampid and t1.updatetime = t2.maxtime) as AI', 'L.id = AI.lampid', 'left');
-        $this->db->join('network as N', 'N.id = L.networkid', 'left');
+        // $this->db->join('network as N', 'N.id = L.networkid', 'left');
 
         if(!empty($filter['page']) && !empty($filter['count'])){
         	$this->db->limit($filter['count'],($filter['page']-1)*$filter['count']);