|
@@ -0,0 +1,559 @@
|
|
|
|
+<?php
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class ApiAction extends Action {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function login( ){
|
|
|
|
+ $data = I('post.data');
|
|
|
|
+ //$data = json_decode(htmlspecialchars_decode(I('post.data')),true);
|
|
|
|
+ if(!$data){
|
|
|
|
+ $this->api_fail(C('FAIL'),'没有用户信息');
|
|
|
|
+ }
|
|
|
|
+ $cond = array(
|
|
|
|
+ 'LicensePlate|GpsDeviceNumber|DeviceNumber'=>$data['username'],
|
|
|
|
+ 'Password'=>$data['password']
|
|
|
|
+ );
|
|
|
|
+ $userinfo = M('jms_vehicle')->where($cond)->find();
|
|
|
|
+ if(!$userinfo){
|
|
|
|
+ $this->api_fail(C('FAIL'),'用户名或者密码不正确');
|
|
|
|
+ }
|
|
|
|
+ $token = md5($data['username'].I('post.loginMark').$data['password'].date('Y-m-d H:i:s'));
|
|
|
|
+ $result = \Jiaruan\RedisCache::setSessionRules(I('post.loginMark'),$token);
|
|
|
|
+ if($result === false){
|
|
|
|
+ $this->api_fail(C('FAIL'),'添加redis失败');
|
|
|
|
+ }
|
|
|
|
+ $where = array("ID" => $userinfo['ID']);
|
|
|
|
+ $data = array(
|
|
|
|
+ "LoginMark" => I('post.loginMark'),
|
|
|
|
+ "Token" => $token
|
|
|
|
+ );
|
|
|
|
+ $res = M('jms_vehicle')->createSave($where,$data);
|
|
|
|
+ if(!$res){
|
|
|
|
+ $this->api_fail(C('FAIL'),'token信息保存失败');
|
|
|
|
+ }
|
|
|
|
+ $baseinfo = array(
|
|
|
|
+ "userId" => $userinfo['ID'],
|
|
|
|
+ "enCode" => "System",
|
|
|
|
+ "account" => $userinfo['FullName'],
|
|
|
|
+ "password" => $userinfo['Password'],
|
|
|
|
+ "secretkey" => '',
|
|
|
|
+ "realName" => $userinfo['FullName'],
|
|
|
|
+ "nickName" => $userinfo['FullName'],
|
|
|
|
+ "headIcon" => ".jpg",
|
|
|
|
+ "gender" => $userinfo['Sex'],
|
|
|
|
+ "mobile" => $userinfo['UserPhone'],
|
|
|
|
+ "telephone" => $userinfo['Telephone'],
|
|
|
|
+ "email" => $userinfo['Email'],
|
|
|
|
+ "oICQ" => $userinfo['QQ'],
|
|
|
|
+ "weChat" => $userinfo['WxName'],
|
|
|
|
+ "companyId" => "",
|
|
|
|
+ "companyIds" => array(),
|
|
|
|
+ "departmentId" => "",
|
|
|
|
+ "departmentIds" => array(),
|
|
|
|
+ "openId" => $userinfo['WxOpenId'],
|
|
|
|
+ "roleIds" => $userinfo['RoleId'],
|
|
|
|
+ "postIds" => "",
|
|
|
|
+ "isSystem" => true,
|
|
|
|
+ "appId" => "renlian_1.0.0_App",
|
|
|
|
+ "logTime" => date('Y-m-d H:i:s'),
|
|
|
|
+ "iPAddress" => $_SERVER['REMOTE_ADDR'],
|
|
|
|
+ "browser" => "Safari 11.0",
|
|
|
|
+ "loginMark" => I('post.loginMark'),
|
|
|
|
+ "token" => $token,
|
|
|
|
+ "imUrl" => '',
|
|
|
|
+ "imOpen" => '',
|
|
|
|
+ "wfProcessId" => '',
|
|
|
|
+ "photoUrl" => $userinfo['Avatar'],
|
|
|
|
+ "plate" => $userinfo['LicensePlate'],
|
|
|
|
+ 'deviceNumber' => $userinfo['DeviceNumber'],
|
|
|
|
+ 'gpsNumber' => $userinfo['GpsDeviceNumber']
|
|
|
|
+ );
|
|
|
|
+ $data = array(
|
|
|
|
+ "baseinfo" => $baseinfo,
|
|
|
|
+ "post" => array(),
|
|
|
|
+ "role" => array()
|
|
|
|
+ );
|
|
|
|
+ $this->api_success('登录成功',$data);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function modifypassword( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $post_data = I('post.data');
|
|
|
|
+ if( empty($post_data) ){
|
|
|
|
+ $this->api_fail(C('FAIL'),'post_data不能为空!');
|
|
|
|
+ }
|
|
|
|
+ $userid = $post_data['userid'];
|
|
|
|
+ $newpassword = $post_data['newpassword'];
|
|
|
|
+ $oldpassword = $post_data['oldpassword'];
|
|
|
|
+ if(!M('jms_vehicle')->where(array('ID'=>$userid,'Password'=>$oldpassword))->find()){
|
|
|
|
+ $this->api_fail(C('FAIL'),'旧密码不正确');
|
|
|
|
+ }
|
|
|
|
+ $where = array(
|
|
|
|
+ 'ID' => $userid,
|
|
|
|
+ 'Password' => $oldpassword
|
|
|
|
+ );
|
|
|
|
+ $data = array(
|
|
|
|
+ 'Password' => $newpassword
|
|
|
|
+ );
|
|
|
|
+ $res = M('jms_vehicle')->createSave($where,$data);
|
|
|
|
+ if(!$res){
|
|
|
|
+ $this->api_fail(C('FAIL'),'修改密码失败');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('修改成功');
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_baojing_info( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $plate = I('get.plate');
|
|
|
|
+ $msg = M('jms_baojing_message')->where(array('Type'=>C('STOLEN_ALARM'),'LicensePlate'=>$plate))->select();
|
|
|
|
+ if(!$msg){
|
|
|
|
+ $this->api_fail(C('FAIL'),'报警信息不存在');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('成功',$msg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_map_index_data( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $deviceNumber = $_GET['data']['deviceNumber'];
|
|
|
|
+
|
|
|
|
+ if(!$deviceNumber){
|
|
|
|
+ $this->api_fail(C('FAIL'),'faild, no deviceNumber !');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //获取车辆最新位置
|
|
|
|
+ $result = M('jms_vehicle')->field('GpsLongitude, GpsLatitude, Address, FenceShapeInfo, LockStatus, FenceAlarmEnable, Battery, GpsOnlineTime, Speed')->where(array('DeviceNumber' => $deviceNumber))->find();
|
|
|
|
+ if(!$result){
|
|
|
|
+ $this->api_fail(C('FAIL'),'cant find this vehicl !');
|
|
|
|
+ }
|
|
|
|
+ $onlineTimeStamp = strtotime($result['GpsOnlineTime']);
|
|
|
|
+ if(!$onlineTimeStamp){
|
|
|
|
+ $onlineTimeStamp = 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $mapData = array(
|
|
|
|
+ 'vehicleLocation' => array('longitude' => $result['GpsLongitude'], 'latitude' => $result['GpsLatitude']),
|
|
|
|
+ 'vehicleAddress' => $result['Address'],
|
|
|
|
+ 'lockStatus' => $result['LockStatus'],
|
|
|
|
+ 'fenceShapeInfo' => $result['FenceShapeInfo'],
|
|
|
|
+ 'battery' => $result['Battery'],
|
|
|
|
+ 'fenceAlarmStatus' => $result['FenceAlarmEnable'],
|
|
|
|
+ 'onlineTime' => $onlineTimeStamp,
|
|
|
|
+ 'speed' => $result['Speed']
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ $this->api_success('success', $mapData);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_insure_info( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $cityid = I('get.cityid');
|
|
|
|
+ $insure_info = M('jms_insurance')->where(array('CityId'=>$cityid))->select();
|
|
|
|
+ if(!$insure_info){
|
|
|
|
+ $this->api_fail(C('FAIL'),'保险信息不存在');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('成功',$insure_info);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_user_platenumber( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $userid = I('get.userid');
|
|
|
|
+ if(!$userid){
|
|
|
|
+ $this->api_fail(C('FAIL'),'用户id不存在');
|
|
|
|
+ }
|
|
|
|
+ $plate_info = M('jms_vehicle')->where(array('ID'=>$userid))->field('ID,LicensePlate')->select();
|
|
|
|
+ if(!$plate_info){
|
|
|
|
+ $this->api_fail(C('FAIL'),'该车主没有使用的车牌');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('成功',$plate_info);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function submit_add_baojing( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $post_data = I('post.data');
|
|
|
|
+ if( empty($post_data) ){
|
|
|
|
+ $this->api_fail(C('FAIL'),'post_data不能为空!');
|
|
|
|
+ }
|
|
|
|
+ $Keyword = strtoupper($post_data['LicensePlate']);
|
|
|
|
+ if ( empty($Keyword)) {
|
|
|
|
+ $this->api_fail(C('FAIL'),'报警车辆不能为空');
|
|
|
|
+ }
|
|
|
|
+ $userid = $post_data['userid'];
|
|
|
|
+ if ( empty($userid)) {
|
|
|
|
+ $this->api_fail(C('FAIL'),'用户id不能为空');
|
|
|
|
+ }
|
|
|
|
+ //获取登录用户城市id
|
|
|
|
+ /*$cond = array('ID'=>$userid);
|
|
|
|
+ $cityid = M('uc_user')->where($cond)->getField('CityId');
|
|
|
|
+ if(!$cityid){
|
|
|
|
+ $this->api_fail('failerror','获取登录城市失败!');
|
|
|
|
+ }*/
|
|
|
|
+ $vehicle_info = M('jms_vehicle')->where(array( 'LicensePlate|IdCard|UserPhone' => $Keyword ))->field('ID,UserId,CityId,IdCard,UserPhone,LicensePlate')->find();
|
|
|
|
+ if(!$vehicle_info){
|
|
|
|
+ $this->api_fail(C('FAIL'),'报警车辆不存在!');
|
|
|
|
+ }
|
|
|
|
+ /*if( $vehicle_info['CityId'] != $cityid ){
|
|
|
|
+ $this->api_fail('failerror','该车辆不在管辖区域,无法添加报警!');
|
|
|
|
+ }
|
|
|
|
+ if(!$vehicle_info['UserId']){
|
|
|
|
+ $this->api_fail('failerror','此车辆还未开户,不能添加报警信息!');
|
|
|
|
+ }*/
|
|
|
|
+
|
|
|
|
+ //$vehicle_id = $vehicle_info['ID'];
|
|
|
|
+ /*$chezhu_id = $vehicle_info['UserId'];
|
|
|
|
+ //$chezhu_info = fd_get_userinfo($chezhu_id);
|
|
|
|
+ //$chezhu_info = get_chezhu_info($chezhu_id);*/
|
|
|
|
+ //$this->api_check_vehicle_isrepeat2($vehicle_id);
|
|
|
|
+ if (I('post.StolenDate')) {
|
|
|
|
+ $StolenDate = $post_data['StolenDate'];
|
|
|
|
+ $StolenDate = date('Y-m-d',strtotime($StolenDate));
|
|
|
|
+ // 被盗日期不能超过当前时间
|
|
|
|
+ $now_time = date('Y-m-d');
|
|
|
|
+ if(strtotime($StolenDate) > strtotime($now_time)){
|
|
|
|
+ $this->api_fail(C('FAIL'),'被盗日期不能超过当前时间!');
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ $StolenDate = date('Y-m-d');
|
|
|
|
+ }
|
|
|
|
+ if(M('jms_baojing')->where(array('LicensePlate' => $vehicle_info['LicensePlate'],'StolenState'=>0))->find()){
|
|
|
|
+ $this->api_fail(C('FAIL'),'报警信息已经存在');
|
|
|
|
+ }
|
|
|
|
+ $data = array(
|
|
|
|
+ 'WoContent' => $post_data['WoContent'],
|
|
|
|
+ 'VehicleId' => $userid,
|
|
|
|
+ 'LicensePlate' => $vehicle_info['LicensePlate'],
|
|
|
|
+ 'IdCard' => $vehicle_info['IdCard'],
|
|
|
|
+ 'UserId' => $userid,
|
|
|
|
+ 'UserPhone' => I('post.UserPhone'),
|
|
|
|
+ 'CityId' => $vehicle_info['CityId'],
|
|
|
|
+ 'SubmitUserId' => $userid,
|
|
|
|
+ 'SubmitTime' => date('Y-m-d H:i:s'),
|
|
|
|
+ 'StolenDate' => $StolenDate,
|
|
|
|
+ 'StolenCityId' => $vehicle_info['CityId'], //新增:被盗城市id
|
|
|
|
+ );
|
|
|
|
+ if (!M('jms_baojing')->createAdd($data)) {
|
|
|
|
+ $this->api_fail(C('FAIL'),'添加报警信息失败');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('添加报警信息成功');
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function update_jg_registrationid( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $post_data = I('post.data');
|
|
|
|
+ //$post_data = json_decode(htmlspecialchars_decode(I('post.data')),true);
|
|
|
|
+
|
|
|
|
+ if( empty($post_data) ){
|
|
|
|
+ $this->api_fail(C('FAIL'),'post_data不能为空!');
|
|
|
|
+ }
|
|
|
|
+ $regid = $post_data['regid'];//极光推设备唯一标识id
|
|
|
|
+ if( empty($regid) ){
|
|
|
|
+ $this->api_fail(C('FAIL'),'极光推注册id不能为空!');
|
|
|
|
+ }
|
|
|
|
+ if(!$post_data['uid']){
|
|
|
|
+ $this->api_fail(C('FAIL'),'uid不能为空!');
|
|
|
|
+ }
|
|
|
|
+ $cond = array(
|
|
|
|
+ 'ID' => $post_data['uid']
|
|
|
|
+ );
|
|
|
|
+ $result = M('jms_vehicle')->where($cond)->setField('JgClientRegistrationId',$regid);
|
|
|
|
+ if( false === $result ){
|
|
|
|
+ $this->api_fail(C('FAIL'),'更新极光推注册信息失败! error:'.M('jms_vehicle')->getDbError());
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('更新成功');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function save_fence_info( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $fence_info =I('post.data');
|
|
|
|
+ $fenceData = htmlspecialchars_decode($fence_info['data']);
|
|
|
|
+
|
|
|
|
+ $device_number = $fence_info['vehicleNumber'];
|
|
|
|
+ //var_dump($fence_info['fenceAlarmEnable']);
|
|
|
|
+ if( !$fence_info || !$device_number){
|
|
|
|
+ json_fail('Missing param !');
|
|
|
|
+ }
|
|
|
|
+ $cond = array('DeviceNumber' => $device_number);
|
|
|
|
+
|
|
|
|
+ $data = array(
|
|
|
|
+ 'FenceAlarmEnable' => $fence_info['fenceAlarmEnable'] == 'true' ? true : false,
|
|
|
|
+ 'FenceShapeInfo' => $fenceData
|
|
|
|
+ );
|
|
|
|
+ $result = M('jms_vehicle')->where($cond)->save($data);
|
|
|
|
+ if( $result === false ){
|
|
|
|
+ json_fail('保存失败');
|
|
|
|
+ }
|
|
|
|
+ json_success('保存成功');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_gps_route( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $postParm = I('post.data');
|
|
|
|
+ $search_date = $postParm['date'];
|
|
|
|
+ $gps_number = $postParm['gpsNumber'];
|
|
|
|
+ if( !$gps_number || !$search_date){
|
|
|
|
+ json_fail('Missing param !');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $timestamp = strtotime($search_date);
|
|
|
|
+ if( !$timestamp ){
|
|
|
|
+ json_fail('Date format error !');
|
|
|
|
+ }
|
|
|
|
+ $start_date = strtotime( date('Y-m-d 00:00:00',$timestamp) );
|
|
|
|
+ $end_date = strtotime( date('Y-m-d 23:59:59',$timestamp) );
|
|
|
|
+ $cond = array(
|
|
|
|
+ 'DeviceId' => $gps_number,
|
|
|
|
+ 'DeviceTime' => array( 'between', array($start_date,$end_date) ),
|
|
|
|
+ );
|
|
|
|
+ $fields = 'Longitude as lng,Latitude as lat,Speed as speed, DeviceTime as deviceTime';
|
|
|
|
+ $dateStr = str_replace("-","",$search_date);
|
|
|
|
+ $route_list = M('gps_location_'.$dateStr, '', C('DB_DSN_GPS'))->field($fields)->where($cond)->order('DeviceTime asc')->select();
|
|
|
|
+ //var_dump(M('gps_location_'.$dateStr, '', C('DB_DSN_GPS'))->getLastSql());
|
|
|
|
+ if( !$route_list ){
|
|
|
|
+ json_fail('无轨迹 !');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ foreach($route_list as &$v){
|
|
|
|
+ $v['deviceTime'] = date('Y-m-d H:i:s', $v['deviceTime']);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $route_data = json_encode($route_list);
|
|
|
|
+ //$testData = json_encode($testData);
|
|
|
|
+ json_success('success',$route_data);
|
|
|
|
+ //json_success('success',$testData);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function change_lock_status( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $lock_state = I('post.data')['lockStatus'];
|
|
|
|
+ $device_number = I('post.data')['deviceNumber'];
|
|
|
|
+ if( !$device_number || $lock_state === ''){
|
|
|
|
+ json_fail('Missing param !');
|
|
|
|
+ }
|
|
|
|
+ //检查锁定状态值
|
|
|
|
+ if( !is_numeric($lock_state) && ($lock_state != 0 && $lock_state != 1) ){
|
|
|
|
+ json_fail('unknown state !');
|
|
|
|
+ }
|
|
|
|
+ $cond = array('DeviceNumber' => $device_number);
|
|
|
|
+ $result = M('jms_vehicle')->where($cond)->setField('LockStatus',$lock_state);
|
|
|
|
+ if( $result === false ){
|
|
|
|
+ json_fail('设置失败');
|
|
|
|
+ }
|
|
|
|
+ json_success('设置成功');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function api_success( $msg, $data ){
|
|
|
|
+ $array = array(
|
|
|
|
+ 'success'=>true,
|
|
|
|
+ 'message'=>$msg,
|
|
|
|
+ 'data' => $data,
|
|
|
|
+ 'code'=>200
|
|
|
|
+ );
|
|
|
|
+ echo json_encode($array,JSON_UNESCAPED_UNICODE);
|
|
|
|
+ exit;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function api_fail( $code, $msg, $data ){
|
|
|
|
+ $array = array(
|
|
|
|
+ 'success'=>false,
|
|
|
|
+ 'message'=>$msg,
|
|
|
|
+ 'data' => $data,
|
|
|
|
+ 'code'=>$code
|
|
|
|
+ );
|
|
|
|
+ echo json_encode($array,JSON_UNESCAPED_UNICODE);
|
|
|
|
+ exit;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_gonggao_info( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $plate = I('get.plate');
|
|
|
|
+ $msg = M('jms_baojing_message')->where(array('Type'=>C('BROADCASTING'),'LicensePlate'=>$plate))->select();
|
|
|
|
+ if(!$msg){
|
|
|
|
+ $this->api_fail(C('FAIL'),'公告信息不存在');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('成功',$msg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function token_verify( ){
|
|
|
|
+ $token = I('token');//用户登录token
|
|
|
|
+ $login_mark = I('loginMark');
|
|
|
|
+ if(!$token){
|
|
|
|
+ $this->api_fail(C('FAIL'),'token不存在 !');
|
|
|
|
+ }
|
|
|
|
+ if(!$login_mark){
|
|
|
|
+ $this->api_fail(C('FAIL'),'login_mark不存在 !');
|
|
|
|
+ }
|
|
|
|
+ //获取token
|
|
|
|
+ $redis = Redis('czapp_client_login_session','hash');
|
|
|
|
+ $key = $login_mark;
|
|
|
|
+ $val = json_decode($redis->get($key),true);
|
|
|
|
+
|
|
|
|
+ if(!$val){
|
|
|
|
+ $this->api_fail(C('FAIL'),'无效token1 !');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //验证token是否一致
|
|
|
|
+ if( $token != $val['token'] ){
|
|
|
|
+ $this->api_fail(C('FAIL'),'无效token2 !');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //验证token是否过期
|
|
|
|
+ if(!$val['login_time']){
|
|
|
|
+ $this->api_fail(C('FAIL'),'没有登录时间,token校验失败 !');
|
|
|
|
+ }
|
|
|
|
+ $login_time = strtotime($val['login_time']);
|
|
|
|
+ $end_time = $login_time + $val['expire']*60;
|
|
|
|
+ if(time()>$end_time){
|
|
|
|
+ $this->api_fail(C('TOKEN_OVERTIME'),'token失效,请重新登录 !');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_gonggao_detail( ){
|
|
|
|
+ header('Access-Control-Allow-Origin:*');
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $plate = I('get.plate');
|
|
|
|
+ $msg = M('jms_baojing_message')->where(array('Type'=>C('BROADCASTING'),'LicensePlate'=>$plate))->find();
|
|
|
|
+ if(!$msg){
|
|
|
|
+ $this->api_fail(C('FAIL'),'公告信息不存在');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('成功',$msg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_baojing_detail( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $plate = I('get.plate');
|
|
|
|
+ $addtime = I('get.addtime');
|
|
|
|
+ $msg = M('jms_baojing_message')->where(array('Type'=>C('STOLEN_ALARM'),'LicensePlate'=>$plate,'AddTime'=>$addtime))->find();
|
|
|
|
+ if(!$msg){
|
|
|
|
+ $this->api_fail(C('FAIL'),'报警信息不存在');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('成功',$msg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function register( ){
|
|
|
|
+ $where = array('LicensePlate'=>I('post.LicensePlate'));
|
|
|
|
+ $userinfo = M('jms_vehicle')->where($where)->find();
|
|
|
|
+ if(!$userinfo){
|
|
|
|
+ $this->api_fail(C('FAIL'),'用户车牌还未登记');
|
|
|
|
+ }
|
|
|
|
+ if($userinfo['FullName'] != I('post.FullName')){
|
|
|
|
+ $this->api_fail(C('FAIL'),'姓名和备案时填写不一致');
|
|
|
|
+ }
|
|
|
|
+ if($userinfo['IdCard'] != I('post.IdCard')){
|
|
|
|
+ $this->api_fail(C('FAIL'),'身份证和备案时填写不一致');
|
|
|
|
+ }
|
|
|
|
+ $data = array(
|
|
|
|
+ 'Password' => I('post.Password'),
|
|
|
|
+ );
|
|
|
|
+ $result = M('jms_vehicle')->createSave($where,$data);
|
|
|
|
+ if(!$result){
|
|
|
|
+ $this->api_fail(C('FAIL'),'注册失败');
|
|
|
|
+ }
|
|
|
|
+ $this->api_success('注册成功');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_fence_info( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $device_number = I('get.data');
|
|
|
|
+ if( !$device_number){
|
|
|
|
+ json_fail('Missing param !');
|
|
|
|
+ }
|
|
|
|
+ $cond = array(
|
|
|
|
+ 'DeviceNumber' => $device_number,
|
|
|
|
+ );
|
|
|
|
+ $fields = 'FenceShapeInfo as fenceInfo,FenceAlarmEnable as fenceStatus';
|
|
|
|
+ $fence = M('jms_vehicle')->field($fields)->where($cond)->find();
|
|
|
|
+ if( !$fence ){
|
|
|
|
+ json_fail('无围栏 !');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $fence = json_encode($fence);
|
|
|
|
+ json_success('success',$fence);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function get_gps_route_table( ){
|
|
|
|
+ $this->token_verify();
|
|
|
|
+ $postParm = I('post.data');
|
|
|
|
+ $search_date = $postParm['date'];
|
|
|
|
+ $gps_number = $postParm['gpsNumber'];
|
|
|
|
+ if( !$gps_number || !$search_date){
|
|
|
|
+ json_fail('请检查GPS标签或者日期 !');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //$list = $this->getBTGpsRoute($search_date,$gps_number);
|
|
|
|
+ $list = $this->getBTGpsRoute($search_date,'1');
|
|
|
|
+
|
|
|
|
+ $respData = array();
|
|
|
|
+ foreach($list as $v){
|
|
|
|
+ $nv = array(
|
|
|
|
+ 'lat' => $v['Latitude'],
|
|
|
|
+ 'lng' => $v['Longitude'],
|
|
|
|
+ 'speed' => $v['Speed'],
|
|
|
|
+ 'deviceTime' => $v['OnlineTime']
|
|
|
|
+ );
|
|
|
|
+ array_push($respData, $nv);
|
|
|
|
+ }
|
|
|
|
+ /*
|
|
|
|
+ foreach(&$respData as &$v){
|
|
|
|
+ $v['deviceTime'] = date('Y-m-d H:i:s', $v['deviceTime']);
|
|
|
|
+ }
|
|
|
|
+ */
|
|
|
|
+ if(!$respData){
|
|
|
|
+ json_success('无轨迹');
|
|
|
|
+ }
|
|
|
|
+ $route_data = json_encode($respData);
|
|
|
|
+ //$testData = json_encode($testData);
|
|
|
|
+ json_success('success',$route_data);
|
|
|
|
+ //json_success('success',$testData);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private function getBTGpsRoute( $date, $gpsNumber ){
|
|
|
|
+ if(!$gpsNumber){
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ if(!$date){
|
|
|
|
+ $date = date('Y-m-d');
|
|
|
|
+ }
|
|
|
|
+ //获取所有轨迹信号
|
|
|
|
+ $option = array();
|
|
|
|
+ $option['pagesize'] = 100;
|
|
|
|
+ $option['asc'];
|
|
|
|
+ $option['fields'] = array('Longitude','Latitude','Speed','DeviceTime');
|
|
|
|
+ $routesig = new \Rlfd\Route\RouteSignal();
|
|
|
|
+ $list = $routesig->queryEbicyleDailyGpsSignals($gpsNumber, $date,$option);
|
|
|
|
+
|
|
|
|
+ //var_dump($list);
|
|
|
|
+ //var_dump(array('route'=>$list,'vehicle'=>$vehicle_info));
|
|
|
|
+ return $list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|