Przeglądaj źródła

下发协议优化

whj 4 lat temu
rodzic
commit
53f6ce6138

+ 22 - 1
app/Admin/Actions/Device/sendRule.php

xqd xqd
@@ -3,6 +3,7 @@
 namespace App\Admin\Actions\Device;
 
 use App\Model\DeviceBox;
+use App\Model\DeviceInfo;
 use App\Model\LockInfo;
 use App\Server\DeviceServer;
 use Encore\Admin\Actions\RowAction;
@@ -19,8 +20,28 @@ class sendRule extends RowAction
     {
         $id = $this->row->id;
         $device_name = $this->row->device_name;
-        $box_info = DeviceBox::where(['device_id'=>$id])->get();
+        $box_info = LockInfo::where(['device_id'=>$id])->get();
         if(!empty($box_info)){
+            $device_name = DeviceInfo::where(['id'=>$id])->value('device_name');
+            if(empty($device_name)) return true;
+            $lock_info = LockInfo::where(['device_id'=>$id,'status'=>1])->orderBy('box_type','asc')->get()->GroupBy('box_type');
+            foreach ($lock_info as $lock){
+                foreach ($lock as $protol){
+                    $send_rule["box".$protol->box_type][] = [
+                        'open'=>$protol->open_time,
+                        'close'=>$protol->close_time,
+                        'start'=>$protol['start_time'],
+                        'type'=>$protol['type'],
+                        'value'=>$protol['value']
+                    ];
+                }
+                $send_rule['query'] = 3600;
+                $res = (new DeviceServer())->sendMsg(868626044260472 ,json_encode($send_rule));
+                sleep('20');
+                Log::info('执行规则'.json_encode($send_rule).PHP_EOL);
+            }
+
+
             foreach ($box_info as $box){
                 $box_name = $box->name;
                 $lock_info = LockInfo::where(['box_id'=>$box->id,'status'=>1])->get();

+ 14 - 1
app/Admin/Controllers/ApiController.php

xqd xqd
@@ -5,6 +5,7 @@ namespace App\Admin\Controllers;
 
 
 use App\Model\DeviceBox;
+use App\Model\DeviceInfo;
 use Encore\Admin\Controllers\AuthController as BaseAuthController;
 use Illuminate\Http\Request;
 
@@ -13,7 +14,19 @@ class ApiController extends BaseAuthController
     public function get_box(Request $request)
     {
         $id = $request->get('q');
-        return DeviceBox::where(['device_id'=>$id])->get(['name as text','id']);
+        $device = DeviceInfo::where('id',$id)->first();
+        $box_type = [
+                        ['text'=>'一号箱','id'=>1],
+                        ['text'=>'二号箱','id'=>2],
+                        ['text'=>'三号箱','id'=>3],
+                        ['text'=>'四号箱','id'=>4],
+                        ['text'=>'五号箱','id'=>5],
+                        ['text'=>'六号箱','id'=>6],
+            ];
+        if($device->device_type == 1){
+            array_pop($box_type);
+        }
+        return $box_type;
     }
 
 }

+ 4 - 1
app/Admin/Controllers/Config/FormController.php

xqd xqd
@@ -44,7 +44,7 @@ class FormController extends Controller
                         $form->editor($value['group'].'____'.$value['key'],$value['chinese'])->default($value['value']);
                         break;
                     case  SystemConfig::Field_Time:
-                        $form->time($value['group'].'____'.$value['key'],$value['chinese'])->default($value['value']);
+                        $form->time($value['group'].'____'.$value['key'],$value['chinese'])->default($value['value'])->format('HH:mm');
                         break;
                     case  SystemConfig::Field_File:
                         $form->file($value['group'].'____'.$value['key'],$value['chinese'])->help('当前文件:'.$value['value']);
@@ -103,6 +103,9 @@ class FormController extends Controller
                                 }
                             });
                         }
+                        break;
+                    case SystemConfig::Field_Image:
+                        $form->image($value['group'].'____'.$value['key'],$value['chinese'])->default($value['value']);
 
                 }
             }

+ 5 - 17
app/Admin/Controllers/DeviceController.php

xqd
@@ -55,25 +55,13 @@ class DeviceController extends AdminController
         $grid->tools(function (Grid\Tools $tools) {
             $tools->append(new Reflash());
         });
+        Admin::js('/js/qrcode.min.js');
 //        $grid->column('link','二维码')->qrcode()->default('http://www.baidu.com');
-//        $grid->column('device_qrcode', __('二维码'))->display(function (){return '<i class="fa fa-qrcode"></i>';})
-//            ->modal("设备二维码",function (){
-//                $id = $this->id;
-//                $path = "/vendor/laravel-admin/AdminLTE/dist/img/avatar.jpg";
-//                if (file_exists(public_path('upload/DeviceQRCODE/'.$id.'.jpg')))
-//                    $path = '/upload/DeviceQRCODE/'.$id.'.jpg?'.rand(1,99999);
-//                $html = <<<HTML
-//                <img id="show_$id" style="width: 300px;height: 350px;;" src="$path" alt="">
-// <p>避免一次性从微信服务器加载多个造成缓慢,请手动点击: <a href="javascript:loadMiniAppQrcode($id,{$this->id})" class="">加载该设备小程序二维码</a>
-//</p>
-//HTML;
-//
-//                return $html;
-//            });
+        $grid->expend('二维码','ooo')->modal(Qrcode::class);
         $grid->model()->orderBy('status','asc');
-        $grid->header(function (){
-            return "<script src='/js/loadMiniApp.js?24'></script><style>.dropdown-menu{}</style>";
-        });
+//        $grid->header(function (){
+//            return "<script src='/js/loadMiniApp.js?24'></script><style>.dropdown-menu{}</style>";
+//        });
         $grid->column('id', __('ID'))->sortable();
         $grid->column('device_name', __('设备名称'))->editable();
         $grid->column('device_type', __('类型'))->display(function ($w){

+ 56 - 21
app/Admin/Controllers/LockController.php

xqd xqd xqd xqd
@@ -6,10 +6,12 @@ use App\Model\DeviceBox;
 use App\Model\DeviceInfo;
 use App\Model\LockInfo;
 use App\Server\DeviceServer;
+use Encore\Admin\Admin;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Form;
 use Encore\Admin\Grid;
 use Encore\Admin\Show;
+use Illuminate\Support\MessageBag;
 
 class LockController extends AdminController
 {
@@ -51,28 +53,38 @@ class LockController extends AdminController
 //        $rule = '{"get":"box4"}';
 //        $res = (new DeviceServer())->doorOperation('rozl8eri3NwjyMrG6gYT000000 ', 0);
 //        $res = (new DeviceServer())->sendMsg(868626044260472 ,$rule);
-//        $res = (new DeviceServer())->sendMsg(868626044260522  ,$rule);
+//
+        $lock_info = LockInfo::where(['status'=>1,'send_status'=>1])->orderBy('box_type','asc')->get()->GroupBy('device_id');
+dd($lock_info->toArray());
 //        $res = (new DeviceServer())->getProperty('rozl8eri3NwjyMrG6gYT000000 ');
 //        $res = (new DeviceServer())->getDeviceStatus('rozl8eri3NwjyMrG6gYT000000 ');//设备状态
 //        $res = (new DeviceServer())->switchDevice('rozl8eri3NwjyMrG6gYT000000 ',1);//启用禁用
 //        dd($res);
         $grid->disableCreateButton(false);
         $device_id = request('device_id');
-        $box_id = request('box_id');
+//Admin::script("$('input').combodate({
+//    minYear: 1975,
+//    maxYear: 2013,
+//    minuteStep: 10
+//}); ");
         if(!empty($device_id)){
-            $box = DeviceBox::where(['device_id'=>$device_id])->pluck('id');
-            $grid->model()->whereIn('box_id',$box);
+            $grid->model()->where('device_id',$device_id)
+                ->orderBy('device_id','asc')
+                ->orderBy('box_type','asc')
+                ->orderBy('open_time','asc');
         }
-        if(!empty($box_id)){
-            $grid->model()->where('box_id',$box_id);
-        }
-        $grid->column('boxs.device_id','设备')->display(function ($w){
+        $grid->column('device_id','设备')->display(function ($w){
            return DeviceInfo::where(['id'=>$w])->value('device_name');
         });
-        $grid->column('boxs.name', __('锁位名称'));
-        $grid->column('open_time', __('开门时间'));
-        $grid->column('close_time', __('关门时间'));
-        $grid->column('start_time', __('启动时间'));
+        $grid->column('box_type', __('锁位名称'))->display(function ($t){
+            $box_type = [1=>'一号箱',2=>'二号箱',3=>'三号箱',4=>'四号箱',5=>'五号箱',6=>'六号箱'];
+            if(empty($t)) return '未知';
+            return $box_type[$t];
+        });
+        $grid->column('time_type', __('时间段'))->editable('select',[1=>'上午',2=>'下午']);
+        $grid->column('open_time', __('开门时间'))->editable('time');
+        $grid->column('close_time', __('关门时间'))->editable('time2');
+        $grid->column('start_time', __('启动时间'))->editable('datetime');
         $grid->column('type', __('类型'))->using(LockInfo::get_type());
         $grid->column('value','时间')->display(function ($is){
             if($this->type !== 3){
@@ -134,20 +146,26 @@ class LockController extends AdminController
     {
         $form = new Form(new LockInfo());
 
-
         if($form->isEditing()){
-            $form->display('boxs.devices.device_name', __('设备'));
-            $form->select('box_id', __('锁位'))->options(function (){
-                return  DeviceBox::where('device_id','=',$this->boxs->device_id)->pluck('name','id')->toArray();
+            $form->display('devices.device_name', __('设备'));
+            $form->select('box_type', __('锁位'))->options(function ($w){
+                $box_type = [1=>'一号箱',2=>'二号箱',3=>'三号箱',4=>'四号箱',5=>'五号箱',6=>'六号箱'];
+                if($w == 1){
+                    array_pop($box_type);
+                }
+                return $box_type;
             });
         } else {
             $form->select('device_id', __('设备'))->options(function (){
                 return DeviceInfo::pluck('device_name','id')->toArray();
-            })->load('box_id','/admin/get_box')->rules('required',['required'=>'设备必须选择']);
-            $form->select('box_id', __('锁位'))->options(function (){
-                return  DeviceBox::where('device_id','=',$this->device_id)->pluck('name','id')->toArray();
-            })->rules('required',['required'=>'请选择盒子']);
+            })->load('box_type','/admin/get_box');
+            $form->select('box_type', __('锁位'))->options(function (){
+                $box_type = [1=>'一号箱',2=>'二号箱',3=>'三号箱',4=>'四号箱',5=>'五号箱'];
+                return $box_type;
+            });
         }
+
+        $form->select('time_type','时间段')->options([1=>'上午',2=>'下午']);
         $form->datetime('open_time', __('开门时间'))->format("HH:mm")->rules('required',['required'=>'开门时间必须']);
         $form->datetime('close_time', __('关闭时间'))->format("HH:mm")->rules('required',['required'=>'关门时间必须']);
         $form->datetime('start_time', __('开启时间'))->rules('required',['required'=>'开启时间必须']);
@@ -159,12 +177,29 @@ class LockController extends AdminController
             $form->multipleSelect('value','日期')->options(LockInfo::week_day());
         })->rules('required',['required'=>'请选择类型']);
 
+
         $states= [
             'off'=>['text'=>'禁用','value'=>0,'color'=>'danger'],
             'on'=>['text'=>'启用','value'=>1,'color'=>'success']
         ];
-        $form->ignore(['device_id','boxs.id']);
         $form->switch('status', __('状态'))->states($states)->default(1);
+        $form->setWidth(6);
+        // 抛出错误信息
+        $form->saving(function ($form) {
+            $box_type = $form->box_type;
+            $device_id = $form->device_id;
+            $lock_count = LockInfo::where(['device_id'=>$device_id,'box_type'=>$box_type])->count();
+            if($lock_count >3){
+                return response($lock_count);
+                $error = new MessageBag([
+                    'title'   => '错误信息',
+                    'message' => '每个箱体最多只能设置4条规则',
+                ]);
+
+                return back()->with(compact('error'));
+            }
+        });
+
 
         return $form;
     }

+ 93 - 0
app/Console/Commands/SendDeviceRule.php

xqd
@@ -0,0 +1,93 @@
+<?php
+
+namespace App\Console\Commands;
+
+use App\Model\DeviceInfo;
+use App\Model\LockInfo;
+use App\Server\DeviceServer;
+use Illuminate\Console\Command;
+use Illuminate\Support\Facades\Log;
+
+class SendDeviceRule extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'SDR:{id} {type}';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = '发送设备规则';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return mixed
+     */
+    public function handle()
+    {
+        $arguments = $this->arguments();
+        Log::info('执行了自动下发协议');
+        $id = $arguments['id'];
+        if($arguments['type'] == 1){
+            $this->sendDevice($id);
+        } else {
+            $this->sendBox($id);
+        }
+        dd('ok');
+    }
+
+    public function sendDevice($id){
+        //找出需要重新下发的设备
+        $device_info = LockInfo::where(['status'=>1,'send_status'=>1])->distinct('device_id')->pluck('device_id');
+        foreach ( $device_info as $device_id){
+            //找出要重新下发的锁位
+            $lock_info = LockInfo::where(['device_id'=>$device_id,'status'=>1,'send_status'=>1])->distinct('box_type')->pluck('box_type');
+            $device_name = DeviceInfo::where(['id'=>$id])->value('device_name');
+            //没有设备名称跳出
+            if(empty($device_name)) continue;
+            foreach ($lock_info as $box_type){
+                //没有锁协议跳出
+                $lock = LockInfo::where(['device_id'=>$id,'box_type'=>$box_type])->get();
+                if(empty($lock)) continue;
+                //dd($lock->toArray());
+                $send_rule = [];
+                foreach ($lock as $protol){
+                    $send_rule["box".$protol->box_type][] = [
+                        'open'=>$protol->open_time,
+                        'close'=>$protol->close_time,
+                        'start'=>$protol['start_time'],
+                        'type'=>$protol['type'],
+                        'value'=>$protol['value']
+                    ];
+                    LockInfo::where(['id'=>$protol->id])->updated(['sned_status'=>2]);
+                }
+                $send_rule['query'] = 3600;
+                $res = (new DeviceServer())->sendMsg($device_name ,json_encode($send_rule));
+                sleep('20');
+                if($res['success'] == 'success') {
+                    DeviceInfo::
+                }
+                Log::info('执行规则'.json_encode($send_rule).PHP_EOL);
+            }
+
+        }
+        dd($lock_info->toArray());
+
+    }
+}

+ 1 - 0
app/Console/Kernel.php

xqd
@@ -14,6 +14,7 @@ class Kernel extends ConsoleKernel
      */
     protected $commands = [
         \App\Console\Commands\Crawle::class,
+        \App\Console\Commands\SendDeviceRule::class,
     ];
 
     /**

+ 16 - 0
app/Helpers/function.php

xqd
@@ -0,0 +1,16 @@
+<?php
+
+//数组转对象
+if(!function_exists('object_array')){
+    function object_array($array) {
+        if(is_object($array)) {
+            $array = (array)$array;
+        }
+        if(is_array($array)) {
+            foreach($array as $key=>$value) {
+                $array[$key] = object_array($value);
+            }
+        }
+        return $array;
+    }
+}

+ 44 - 22
app/Http/Controllers/IndexController.php

xqd xqd xqd xqd
@@ -2,19 +2,21 @@
 
 namespace App\Http\Controllers;
 
-use App\Model\Communite;
 use App\Model\DeviceInfo;
+use App\Model\LockInfo;
+use App\Model\SystemConfig;
 use App\Server\DeviceServer;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Blade;
+use Illuminate\Support\Facades\Cache;
 use QL\QueryList;
 
 class IndexController extends Controller
 {
-    public function testOpreation()
+    public function testOpreation(Request $request)
     {
 
-        $id = request('id');
+        $id = $request->get('id');
         $device = DeviceInfo::where(['id'=>$id])->first();
         $rule = json_decode($device->lock_rule);
         foreach ($rule as $key=>$box){
@@ -41,17 +43,24 @@ class IndexController extends Controller
     {
         $type = request('type');
         $id = request('id');
-        $box_name = request('box_name');
         $device  = DeviceInfo::where('id',$id)->first();
+        $cache_key = $device->device_name.'rule_type';
+        $re_type = Cache::get($cache_key);
+        $time1 = 30;//3分钟定时
         if(empty($type) || empty($id)){
             return json_encode(['code'=>601,'msg'=>'缺少必要参数']);
         }
         if(empty($device)){
             return json_encode(['code'=>602,'msg'=>'设备不存在']);
         }
+//        echo '缓存类型--'.$re_type.' 当前类型:--'.$type;
 
-
-        $lock_rule = json_decode($device->lock_rule);
+        if(empty($re_type)){
+            if($type == 4) Cache::put($cache_key,4,$time1);
+        } else {
+            if($type != $re_type) return json_encode(['code'=>603,'msg'=>'设备下发协议冲突']);
+        }
+//        return json_encode(['code'=>200,'msg'=>'不重复']);
         switch ($type){
             case 1;
                 $rule = ['cmd'=>'start_test'];
@@ -63,22 +72,28 @@ class IndexController extends Controller
                 $open_time = date('Y-m-d H:i:s',(time() + 180));
                 $close_time = date('Y-m-d H:i:s',(time() + 240));
                 $start_time = date('Y-m-d H:i:s',(time() - 60));
+                $lock_rule = json_decode($device->lock_rule);
                 foreach ($lock_rule as $box_name){
                     sleep(22);
-                    $rule = [$box_name=>['type'=>1,'start_time'=>$start_time,'open_time'=>$open_time,'close_time'=>$close_time,'value'=>'','query'=>3600]];
+                    $rule = [$box_name=>['type'=>1,'start_time'=>$start_time,'open_time'=>$open_time,'close_time'=>$close_time,'value'=>''],'query'=>3600];
                     $res = (new DeviceServer())->sendMsg($device->device_name ,$rule);
                 }
                 break;
             case 4;
-                $open_time = date('Y-m-d H:i:s',(time() + 180));
-                $close_time = date('Y-m-d H:i:s',(time() + 240));
+                $box_name = request('box_name');
+                if(empty($box_name)){
+                    return json_encode(['code'=>601,'msg'=>'缺少必要参数']);
+                }
+                $open_time = date('Y-m-d H:i:s',(time() + 60));
+                $close_time = date('Y-m-d H:i:s',(time() + 120));
                 $start_time = date('Y-m-d H:i:s',(time() - 60));
-                $rule = [$box_name=>['type'=>1,'start_time'=>$start_time,'open_time'=>$open_time,'close_time'=>$close_time,'value'=>'','query'=>3600]];
+                $rule = ['box'.$box_name=>['type'=>1,'start_time'=>$start_time,'open_time'=>$open_time,'close_time'=>$close_time,'value'=>''],'query'=>3600];
                 break;
         }
-
-        if(type != 3){
-            $res = (new DeviceServer())->sendMsg($device->device_name,$rule);
+        //return json_encode(['code'=>200,'msg'=>'下发命令成功','data'=>$rule]);
+        //$rule = ['cmd'=>'stop_test'];
+        if($type != 3){
+             $res = (new DeviceServer())->sendMsg($device->device_name,json_encode($rule));
         }
         if($res['Success'] == true){
             return json_encode(['code'=>200,'msg'=>'下发命令成功']);
@@ -93,16 +108,23 @@ class IndexController extends Controller
     //获取设备信息
     public function get_boxname()
     {
-
         $id = request('id');
-        $box_name = request('box_name');
-        $device  = DeviceInfo::where('id',$id)->first();
-        $rule = json_decode($device->lock_rule);
-        foreach ($rule as $key=>$box){
-            $device_box['box'][] = ['name'=>$key];
+        $device  = DeviceInfo::where('device_name',$id)->first();
+        if(empty($device)){
+            return json_encode(['code'=>200,'msg'=>'ok','data'=>[]]);
         }
-        $device_box['id'] = $id;
-        $device_box['device_name'] = $device->device_name;
-        return json_encode(['code'=>200,'msg'=>'ok','data'=>$device_box]);
+        $lock_config = SystemConfig::get('lock_config');
+
+        $data['id'] = $device->id;
+        $data['device_name'] = $device->device_name;
+        $data['device_type'] = $device->device_type;
+        if($device->device_type == 1){
+            $data['device_image'] = $lock_config['box_img_four'];
+        } else {
+            $data['device_image'] = $lock_config['box_img_five'];
+        }
+        $data['device_image'] = '';
+        return json_encode(['code'=>200,'msg'=>'ok','data'=>$data]);
     }
+
 }

+ 28 - 5
app/Listeners/DeviceEventListener.php

xqd xqd
@@ -2,18 +2,21 @@
 
 namespace App\Listeners;
 
+use App\Console\Commands\SendDeviceRule;
 use App\Model\DeviceBox;
 use App\Model\DeviceInfo;
 use App\Model\DeviceType;
 use App\Model\DeviceTypeBox;
 use App\Model\LockInfo;
 use App\Model\SystemConfig;
+use App\Server\DeviceServer;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Queue\InteractsWithQueue;
 use App\Events\DeviceEvent;
 use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
+use Illuminate\Console\Scheduling\Schedule;
 
 
 class DeviceEventListener
@@ -49,12 +52,32 @@ class DeviceEventListener
 
     public function  addBox($device){
         $lock_config = SystemConfig::get('lock_config');
-        DeviceInfo::BOXFOUR ?  $n = 4 : $n = 5;
+        $device->device_type == DeviceInfo::BOXFOUR ? $n = 5 : $n = 6;
         $now = date('Y-m-d H:i:s',time());
-        for($i=1;$i<=$n;$i++){
-            $box['box'.$i][] = ['type'=>1,'open_time'=>$lock_config['am_open'],'close_time'=>$lock_config['am_close'],'start_time'=>$now];
-            $box['box'.$i][] = ['type'=>1,'open_time'=>$lock_config['pm_open'],'close_time'=>$lock_config['pm_close'],'start_time'=>$now];
+
+
+        $lcount = LockInfo::where(['device_id' =>$device->id])->count();
+        Log::info('现有多少个·'.$lcount);
+
+        if($lcount == 0){
+            for($i=1;$i<=$n;$i++){
+                $data = ['device_id'=>$device->id,'type'=>2,'time_type'=>1,'open_time'=>$lock_config['am_open'],'close_time'=>$lock_config['am_close'],'start_time'=>$now,'box_type'=>$i,'value'=>'','status'=>1,'created_at'=>$now,'updated_at'=>$now];
+                LockInfo::insert($data);
+                $data = ['device_id'=>$device->id,'type'=>2,'time_type'=>2,'open_time'=>$lock_config['pm_open'],'close_time'=>$lock_config['pm_close'],'start_time'=>$now,'box_type'=>$i,'value'=>'','status'=>1,'created_at'=>$now,'updated_at'=>$now];
+                LockInfo::insert($data);
+            }
+        } else {
+            if($device->device_type == 1){
+                LockInfo::where(['device_id'=>$device->id,'box_type'=>6])->delete();
+            } else {
+                $data = ['device_id'=>$device->id,'type'=>2,'time_type'=>1,'open_time'=>$lock_config['am_open'],'close_time'=>$lock_config['am_close'],'start_time'=>$now,'box_type'=>6,'value'=>'','status'=>1,'created_at'=>$now,'updated_at'=>$now];
+                LockInfo::insert($data);
+                $data = ['device_id'=>$device->id,'type'=>2,'time_type'=>2,'open_time'=>$lock_config['pm_open'],'close_time'=>$lock_config['pm_close'],'start_time'=>$now,'box_type'=>6,'value'=>'','status'=>1,'created_at'=>$now,'updated_at'=>$now];
+                LockInfo::insert($data);
+            }
         }
-        DeviceInfo::where(['id'=>$device->id])->update(['lock_rule'=>json_encode($box)]);
+        $schedule = new Schedule();
+        $schedule->command(SendDeviceRule::class, [$device->id, 1])->everyMinute();
+        return true;
     }
 }

+ 7 - 1
app/Model/DeviceInfo.php

xqd
@@ -63,5 +63,11 @@ class DeviceInfo extends Model
     protected $dispatchesEvents = [
         'updated'=>DeviceEvent::class
     ];
-    
+
+//    public function getLockRuleAttribute($value)
+//    {
+//          return json_decode($value);
+//    }
+
+
 }

+ 2 - 2
app/Model/LockInfo.php

xqd
@@ -64,9 +64,9 @@ class LockInfo extends Model
 //        'updated'=>LockEvent::class
 //    ];
 
-    public function boxs()
+    public function devices()
     {
-        return $this->hasOne(DeviceBox::class,'id','box_id')->with('devices');
+        return $this->hasOne(DeviceInfo::class,'id','device_id');
     }
 
 }

+ 5 - 8
app/Model/SystemConfig.php

xqd xqd
@@ -14,17 +14,13 @@ class SystemConfig extends Model
     //
     protected $table = "system_config";
     protected $guarded = [];
-    static $groups = ['ali_config'=>'阿里云',
-        'wechat_config'=>'微信',
-        'system_config'=>'系统设置',
-        'put_config'=>'投放设置',
-        'fetch_config'=>'清运设置',
-        'cash_config'=>'提现设置',
-        'assistant_setting'=>'协管员提现设置',
+    static $groups = [
+        'ali_config'=>'阿里云',
+        'lock_config'=>'锁配置',
     ];
     const Field_textarea = 0,Filed_richText = 1,Field_Json = 2,
         Field_Switch = 3,Field_Time = 4,Field_File = 5,
-        Field_Checkbox = 6,Field_Json_Array = 7;
+        Field_Checkbox = 6,Field_Json_Array = 7,Field_Image = 8;
 
     private static $_fieldType = [
         self::Field_textarea =>'纯文本',
@@ -35,6 +31,7 @@ class SystemConfig extends Model
         self::Field_File =>'文件',
         self::Field_Checkbox =>'选择框',
         self::Field_Json_Array =>'数组JSON',
+        self::Field_Image =>'图片',
     ];
 
     protected static function getType(){

+ 1 - 1
config/app.php

xqd
@@ -67,7 +67,7 @@ return [
     |
     */
 
-    'timezone' => 'UTC',
+    'timezone' => 'Asia/Shanghai',
 
     /*
     |--------------------------------------------------------------------------

+ 6 - 0
config/filesystems.php

xqd
@@ -69,6 +69,12 @@ return [
             'url' => env('AWS_URL'),
             'endpoint' => env('AWS_ENDPOINT'),
         ],
+        'admin' => [
+            'driver' => 'local',
+            'root' => public_path('upload'),
+            'visibility' => 'public',
+            'url' => '/upload/',
+        ]
 
     ],
 

Plik diff jest za duży
+ 0 - 0
public/js/qrcode.min.js


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików