BeaconRepository.php
2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/1/30
 * Time: 11:23
 */
namespace App\Repositories\Backend\Beacon;
use App\Events\Backend\Access\Beacon\BeaconDeactivated;
use App\Events\Backend\Access\Beacon\BeaconReactivated;
use App\Modules\Models\Beacon\Beacon;
use Illuminate\Support\Facades\DB;
use App\Exceptions\GeneralException;
use App\Events\Backend\Access\Beacon\BeaconUpdated;
use App\Modules\Repositories\Beacon\BaseBeaconRepository;
class BeaconRepository extends BaseBeaconRepository
{
    public function getForDataTable()
    {
        return $this->query()->get();
    }
    public function update(Beacon $beacon, $input)
    {
        if ($input['explain_id'] == null) {
            unset($input['explain_id']);
            DB::transaction(function () use ($beacon, $input) {
                if ($beacon->update($input)) {
                    event(new BeaconUpdated($beacon));
                    return true;
                }
                throw new GeneralException(trans('exceptions.backend.beacon.update_error'));
            });
        } else {
            DB::transaction(function () use ($beacon, $input) {
                if ($beacon->update($input)) {
                    event(new BeaconUpdated($beacon));
                    return true;
                }
                throw new GeneralException(trans('exceptions.backend.beacon.update_error'));
            });
        }
    }
     //beacon  启用禁用
    public  function  mark(Beacon $beacon ,$status){
        
        $beacon->status = $status;
        switch ($status) {
            case 0:
                event(new BeaconDeactivated($beacon));
                break;
            case 1:
                event(new BeaconReactivated($beacon));
                break;
        }
        if ($beacon->save()) {
            return true;
        }
        throw new GeneralException(trans('exceptions.backend.access.users.mark_error'));
    }
    public function getinfo(){
        return   $this->query()->select('beacon.id','explain.name','beacon.device_id','beacon.major','beacon.minor','beacon.rssi','beacon.sd','beacon.status','beacon.created_at','beacon.updated_at')->leftjoin('explain','beacon.explain_id','=','explain.id')->get();
        
    }
}