You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

126 lines
4.3 KiB

<?php
namespace App\Admin\Forms;
use App\Admin\Renders\EquipResourceRecordRender;
use App\Admin\Services\EquipResourceRecordService;
use App\Models\EquipResourceRecord as EquipResourceRecordModel;
use Dcat\Admin\Admin;
use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form;
class EquipCacheForm extends Form implements LazyRenderable
{
use LazyWidget;
public function render()
{
$equip_Render = new EquipResourceRecordRender();
Admin::script($equip_Render->script());
return parent::render(); // TODO: Change the autogenerated stub
}
/**
* Handle the form request.
*
* @param array $input
*
* @return mixed
*/
public function handle(array $input)
{
$equip_resource_service = new EquipResourceRecordService();
$res = $equip_resource_service->writeCache($input);
if (isset($res['errno'])){
if ($res['errno'] === 0) {
$equip_resource_model = new EquipResourceRecordModel();
$equip_resource_model['imei'] = $input['imei'];
$equip_resource_model['obj_id'] = $input['obj_id'];
$equip_resource_model['obj_inst_id'] = $input['obj_inst_id'];
$equip_resource_model['mode'] = $input['mode'];
$equip_resource_model['expired_time'] = $input['expired_time'];
$equip_resource_model['trigger_msg'] = $input['trigger_msg'];
$equip_resource_model['api-key'] = $input['api-key'];
$equip_resource_model['res_id'] = $input['res_id'];
$equip_resource_model['val'] = $input['val'];
$equip_resource_model->save();
return $this->response()->success('提交成功')->refresh();;
}
return $this->response()->error($res['error']);
}
return $this->response()->error('提交失败');
}
/**
* Build a form here.
*/
public function form()
{
$this->text('imei')->required();
$this->text('obj_id', '设备id')->required();
$this->text('obj_inst_id')->required();
$this->text('mode', 'Write的写模式,只能是1或者2')->required();
$this->datetime('expired_time', '命令过期时间戳,必填且大于Valid Time')->required();
$this->text('trigger_msg', '命令触发的上行消息类型[1,7]')->required();
$this->text('api-key')->required();
$this->text('res_id')->required();
// 68C0 0866472059902068 0109 0111 00 0000000002 01 8D16
// $a = EquipResourceRecordService::getCheckCode('68C008664720599020680109011100000000000201');
$this->text('起始符')->disable(true);
$this->text('设备类型')->disable(true);
$this->text('设备号');
$this->text('控制码')->disable(true);
$this->text('数据长度')->disable(true);
$this->text('指令标识')->disable(true);
$this->text('数据')->disable(true);
$this->select('命令方式')->options(['00', '11'])->disable(false);
$this->text('自定义数组');
$this->text('固定字节')->disable(true);
$this->text('累加和校验')->disable(true);
$this->text('结束符')->disable(true);
$this->text('val')->required();
$this->addAjaxScript();
}
/**
* The data of the form.
*
* @return array
*/
public function default()
{
return [
'imei' => $this->payload['imei'],
'obj_id' => $this->payload['obj_id'],
'obj_inst_id' => 0,
'mode' => 1,
'expired_time' => date('Y-m-d H:i:s', strtotime("+1 day")),
'trigger_msg' => 4,
'api-key' => $this->payload['api_key'],
'res_id' => '5750',
'起始符' => '68',
'设备类型' => 'C0',
'设备号' => str_pad($this->payload['imei'], 16, '0', STR_PAD_LEFT),
'控制码' => '01',
'数据长度' => '09',
'指令标识' => '0111',
'数据' => '00',
'命令方式' => 0,
'自定义数组' => '',
'固定字节' => '01',
'累加和校验' => '',
'结束符' => '16',
];
}
}