| xqd
@@ -20,7 +20,6 @@ class IndexController extends Controller
|
|
|
// Artisan::call('SDR', [
|
|
|
// 'id' => 1, 'type' => 1
|
|
|
// ]);
|
|
|
-
|
|
|
//echo strtotime('+60 days');dd('ok');
|
|
|
$id = $request->get('id');
|
|
|
$device = DeviceInfo::where(['device_name'=>$id])->first();
|
| xqd
@@ -74,9 +73,8 @@ class IndexController extends Controller
|
|
|
$device = DeviceInfo::where('device_name',$id)->first();
|
|
|
$cache_key = $id .'rule_type';
|
|
|
$re_type = Cache::get($cache_key);
|
|
|
-// return json_encode(['code'=>200,'msg'=>'下发命令成功','data'=>[]]);
|
|
|
-//dd($re_type);
|
|
|
- $time1 = 180;//3分钟定时
|
|
|
+
|
|
|
+ $time1 = 240;//3分钟定时
|
|
|
$opt = 180;
|
|
|
$cpt = 240;
|
|
|
if(empty($type) || empty($id)){
|
| xqd
@@ -87,21 +85,21 @@ class IndexController extends Controller
|
|
|
}
|
|
|
// echo '缓存类型--'.$re_type.' 当前类型:--'.$type;
|
|
|
|
|
|
- if(empty($re_type)){
|
|
|
- if($type == 4) Cache::put($cache_key,4,$time1);
|
|
|
+ if(empty($re_type) && in_array([4,5,6],$re_type)){
|
|
|
+ if($type == 4) Cache::put($cache_key,$re_type,$time1);
|
|
|
} else {
|
|
|
if($type != $re_type) return json_encode(['code'=>603,'msg'=>'设备下发协议冲突']);
|
|
|
}
|
|
|
// return json_encode(['code'=>200,'msg'=>'不重复']);
|
|
|
switch ($type){
|
|
|
- case 1;
|
|
|
+ case 1:
|
|
|
$rule = ['cmd'=>'start_test'];
|
|
|
break;
|
|
|
- case 2;
|
|
|
+ case 2:
|
|
|
$rule = ["cmd"=>"stop_test"];
|
|
|
sleep(6);
|
|
|
break;
|
|
|
- case 3;
|
|
|
+ case 3:
|
|
|
$open_time = date('H:i',(time() + $opt));
|
|
|
$close_time = date('H:i',(time() + $cpt));
|
|
|
$start_time = date('Y-m-d H:i:s',(time() - 60));
|
| xqd
@@ -118,7 +116,7 @@ class IndexController extends Controller
|
|
|
// $res = (new DeviceServer())->sendMsg($device->device_name ,$rule);
|
|
|
// }
|
|
|
break;
|
|
|
- case 4;
|
|
|
+ case 4:
|
|
|
$box_name = request('box_name');
|
|
|
if(empty($box_name)){
|
|
|
return json_encode(['code'=>601,'msg'=>'缺少必要参数']);
|
| xqd
@@ -128,6 +126,13 @@ class IndexController extends Controller
|
|
|
$start_time = date('Y-m-d H:i',(time() - 60));
|
|
|
$rule = ['box'.$box_name=>[['type'=>1,'start'=>$start_time,'open'=>$open_time,'close'=>$close_time,'value'=>''],],'query'=>3600];
|
|
|
break;
|
|
|
+ case 5:
|
|
|
+ $rule = ["cmd"=>"start_update"];
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ $rule = ["cmd"=>"reset"];
|
|
|
+ break;
|
|
|
+
|
|
|
}
|
|
|
// $rule = ["cmd"=>"stop_test"];
|
|
|
// dd(json_encode($rule));
|
| xqd
@@ -137,7 +142,7 @@ class IndexController extends Controller
|
|
|
if(!empty($res) && $res['Success'] == true){
|
|
|
return json_encode(['code'=>200,'msg'=>'下发命令成功']);
|
|
|
} else {
|
|
|
- return json_encode(['code'=>400,'msg'=>'下发命令失败']);
|
|
|
+ return json_encode(['code'=>601,'msg'=>'下发命令失败']);
|
|
|
}
|
|
|
|
|
|
|
| xqd
@@ -168,4 +173,97 @@ class IndexController extends Controller
|
|
|
return json_encode(['code'=>200,'msg'=>'ok','data'=>$data]);
|
|
|
}
|
|
|
|
|
|
+ //设备升级与重置命令
|
|
|
+ public function updateDevice()
|
|
|
+ {
|
|
|
+ $device_name = request('id');
|
|
|
+ $type = request('type'); //设备类型
|
|
|
+ $phone = request('phone'); //电话
|
|
|
+ $deviceService = (new DeviceServer());
|
|
|
+ if(empty($type) || empty($phone)){
|
|
|
+ return genApiData(601,'参数错误');
|
|
|
+ }
|
|
|
+ if(!preg_match("/^1[34578]\d{9}$/",$phone,$match)){
|
|
|
+ return genApiData(601,'手机号码错误');
|
|
|
+ }
|
|
|
+ $data['device_type'] = $type;
|
|
|
+ $data['phone'] = $phone;
|
|
|
+ $device_info = DeviceInfo::where(['device_name'=>$device_name])->first();
|
|
|
+ if($device_info->device_type == $type){
|
|
|
+ return genApiData(602,'设备类型重复请重新选择');
|
|
|
+ }
|
|
|
+ $device_property = $deviceService->getProperty($device_info->iot_id);
|
|
|
+ $last_version = SystemConfig::get('lock_config','soft_version');
|
|
|
+ $res = DeviceInfo::where('device_name',$device_name)->update($data);
|
|
|
+
|
|
|
+ if($res){
|
|
|
+ if($device_property['data']['version'] == '' || $device_property['data']['version'] != $last_version){
|
|
|
+ $rule = ["cmd"=>"start_update"];
|
|
|
+ $res = $deviceService->sendMsg($device_name ,json_encode($rule));
|
|
|
+ if($res['Success'] == 'success') {
|
|
|
+ return genApiData(600,'设备更新新中');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $res = DeviceInfo::where('device_name',$device_name)->update($data);
|
|
|
+ }
|
|
|
+ return genApiData(200,'更新成功');
|
|
|
+ }
|
|
|
+ return genApiData(601,'异常设备,请联系后台管理员',$res);
|
|
|
+
|
|
|
+// if(empty($device_info)){
|
|
|
+// return genApiData(601,'异常设备,请联系后台管理员','');
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// return genApiData(601,'更新失败','');
|
|
|
+//
|
|
|
+// if($type == 1){
|
|
|
+// $rule = ["cmd"=>"start_update"];
|
|
|
+// } else if ($type == 2){
|
|
|
+// $rule = ["cmd"=>"reset"];
|
|
|
+// } else {
|
|
|
+// $rule = ["cmd"=>"start_update"];
|
|
|
+// }
|
|
|
+// $res = $deviceService->sendMsg($device_name,json_encode($rule));
|
|
|
+// if($res['Success'] == 'success') {
|
|
|
+// return json_encode(['code'=>200,'msg'=>'发送命令成功','data'=>'']);
|
|
|
+// }
|
|
|
+// return json_encode(['code'=>601,'msg'=>'发送命令成功','data'=>'']);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+//use AlibabaCloud\Client\AlibabaCloud;
|
|
|
+//use AlibabaCloud\Client\Exception\ClientException;
|
|
|
+//use AlibabaCloud\Client\Exception\ServerException;
|
|
|
+//
|
|
|
+//// Download:https://github.com/aliyun/openapi-sdk-php
|
|
|
+//// Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md
|
|
|
+//
|
|
|
+//AlibabaCloud::accessKeyClient('<accessKeyId>', '<accessSecret>')
|
|
|
+// ->regionId('cn-shanghai')
|
|
|
+// ->asDefaultClient();
|
|
|
+//
|
|
|
+//try {
|
|
|
+// $result = AlibabaCloud::rpc()
|
|
|
+// ->product('Iot')
|
|
|
+// // ->scheme('https') // https | http
|
|
|
+// ->version('2018-01-20')
|
|
|
+// ->action('GetThingModelTsl')
|
|
|
+// ->method('POST')
|
|
|
+// ->host('iot.cn-shanghai.aliyuncs.com')
|
|
|
+// ->options([
|
|
|
+// 'query' => [
|
|
|
+// 'RegionId' => "cn-shanghai",
|
|
|
+// 'ProductKey' => "a15yVIP0Onl",
|
|
|
+// 'ModelVersion' => "Software_Version",
|
|
|
+// ],
|
|
|
+// ])
|
|
|
+// ->request();
|
|
|
+// print_r($result->toArray());
|
|
|
+//} catch (ClientException $e) {
|
|
|
+// echo $e->getErrorMessage() . PHP_EOL;
|
|
|
+//} catch (ServerException $e) {
|
|
|
+// echo $e->getErrorMessage() . PHP_EOL;
|
|
|
+//}
|