SwooleCommandController.php 5.48 KB
Newer Older
冯超鹏's avatar
冯超鹏 committed
1
<?php
冯超鹏's avatar
冯超鹏 committed
2 3

namespace App\Http\Controllers\Auth;
冯超鹏's avatar
冯超鹏 committed
4 5

use Illuminate\Support\Facades\DB;
冯超鹏's avatar
冯超鹏 committed
6 7 8
use App\Laravue\Models\Users;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
冯超鹏's avatar
冯超鹏 committed
9
use Illuminate\Support\Facades\Auth;
10
use App\Http\Controllers\DevicesController;
冯超鹏's avatar
冯超鹏 committed
11 12 13 14 15 16
class  SwooleCommandController extends Controller
{
    //返回用户列表
    public function userslist(): string
    {
        //查询用户数量
17
        $usercount = DB::table('users')->count();//获取用户数量
冯超鹏's avatar
冯超鹏 committed
18
        //查询设备类型
19
        $count = DB::table('users as b')
冯超鹏's avatar
冯超鹏 committed
20 21
            ->leftjoin('device as d', 'b.id', '=', 'd.uid')
            ->leftjoin('device_type as t', 'd.dtype', '=', 't.tid')
22
            ->selectRaw('b.name,count(IF(d.dtype=1,true,null)) AS type_1, COUNT(IF(t.tid=2, true, null)) AS type_2,COUNT(IF(t.tid=4, true, null)) AS type_4,COUNT(IF(t.tid=5, true, null)) AS type_5,COUNT(IF(t.tid=6, true, null)) AS type_6,COUNT(IF(t.tid=7, true, null)) AS type_7,COUNT(IF(t.tid=8, true, null)) AS type_8,COUNT(IF(t.tid=9, true, null)) AS type_9,COUNT(IF(t.tid=10, true, null)) AS type_10,COUNT(IF(t.tid=11, true, null)) AS type_11')
冯超鹏's avatar
冯超鹏 committed
23
            ->groupBy('b.id')
24 25
            ->get();
        $countdata = ['usercount' => $usercount, 'userdata' => $count];
冯超鹏's avatar
冯超鹏 committed
26 27
        return $this->jsonSuccessData($countdata);
    }
冯超鹏's avatar
冯超鹏 committed
28

Administrator's avatar
Administrator committed
29 30 31 32 33 34
    /**
     * 危化监测
     * @param $data
     * @return false|string
     */
    public function chemicals($data)
冯超鹏's avatar
冯超鹏 committed
35
    {
Administrator's avatar
Administrator committed
36
        return $this->getDevices($data, [1, 5, 10]);
37 38
    }

Administrator's avatar
Administrator committed
39 40 41 42 43 44
    /**
     * 消防监测
     * @param $data
     * @return false|string
     */
    public function fire($data)
Administrator's avatar
Administrator committed
45 46 47 48 49
    {
        return $this->getDevices($data, [2, 4, 6, 7, 8, 9, 11]);
    }

    public function getDevices($data, $type_ids)
冯超鹏's avatar
冯超鹏 committed
50
    {
Administrator's avatar
Administrator committed
51 52
        $searchData = json_decode($data, true);
        $id = $searchData['userId'];
冯超鹏's avatar
冯超鹏 committed
53
        $uid = $this->parseAbilityAndArgumentsadmin($id);
Administrator's avatar
Administrator committed
54 55

        $where = [];
Administrator's avatar
Administrator committed
56
        $whereIn = $type_ids;
Administrator's avatar
Administrator committed
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
        if(!empty($searchData['deviceNum'])) {
            $where[] = ['devicenum', 'like', "%{$searchData['deviceNum']}%"];
        }
        if(!empty($searchData['deviceName'])) {
            $where[] = ['username', 'like', "%{$searchData['deviceName']}%"];
        }
        if($searchData['deviceType'] != 0) {
            $whereIn = [$searchData['deviceType']];
        }
        if($searchData['deviceStatus'] != 0) {
            $where[] = ['device.devicepolice', '=', $searchData['deviceStatus']];
        }
        $limit = $searchData['limit'];
        $pagenNum = $limit * ($searchData['page'] - 1);//页数

冯超鹏's avatar
冯超鹏 committed
72
        if($uid == 1){
Administrator's avatar
Administrator committed
73 74
            $devicelist = DB::table('device')
                ->whereIn('dtype', $whereIn)
冯超鹏's avatar
冯超鹏 committed
75 76 77 78 79
                ->leftjoin('device_type as dy', "device.dtype", '=', 'dy.tid')
                ->leftjoin('gas as g', "device.status", '=', 'g.id')
                ->leftjoin('status as p', "device.devicepolice", '=', 'p.id')
                ->leftjoin('danwei as dw', 'device.devicemonad', '=', 'dw.id')
                ->select('dy.tname', 'g.gas', 'device.*', 'p.status_name', 'dw.danwei')
Administrator's avatar
Administrator committed
80 81 82
                ->where($where)
                ->offset($pagenNum)
                ->limit($limit)
冯超鹏's avatar
冯超鹏 committed
83 84
                ->orderBy('device.id', 'desc')
                ->get()->toArray();
Administrator's avatar
Administrator committed
85 86 87
            $count = DB::table('device')
                ->whereIn('dtype', $whereIn)
                ->where($where)
冯超鹏's avatar
冯超鹏 committed
88 89
                ->count();
        }else{
Administrator's avatar
Administrator committed
90 91
            $devicelist = DB::table('device')
                ->whereIn('dtype', $whereIn)
冯超鹏's avatar
冯超鹏 committed
92 93 94 95 96
                ->leftjoin('device_type as dy', "device.dtype", '=', 'dy.tid')
                ->leftjoin('gas as g', "device.status", '=', 'g.id')
                ->leftjoin('status as p', "device.devicepolice", '=', 'p.id')
                ->leftjoin('danwei as dw', 'device.devicemonad', '=', 'dw.id')
                ->where('device.uid','=',$id)
Administrator's avatar
Administrator committed
97
                ->where($where)
冯超鹏's avatar
冯超鹏 committed
98
                ->select('dy.tname', 'g.gas', 'device.*', 'p.status_name', 'dw.danwei')
Administrator's avatar
Administrator committed
99 100
                ->offset($pagenNum)
                ->limit($limit)
冯超鹏's avatar
冯超鹏 committed
101 102
                ->orderBy('device.id', 'desc')
                ->get()->toArray();
Administrator's avatar
Administrator committed
103
            $count = DB::table('device')
冯超鹏's avatar
冯超鹏 committed
104
                ->where('device.uid','=',$id)
Administrator's avatar
Administrator committed
105 106
                ->whereIn('dtype', $whereIn)
                ->where($where)
冯超鹏's avatar
冯超鹏 committed
107 108
                ->count();
        }
109 110
        return $this->jsonSuccessData(['devicelist' => $devicelist, 'count' => $count]);
    }
冯超鹏's avatar
冯超鹏 committed
111

冯超鹏's avatar
冯超鹏 committed
112 113

    //监测是否设备报警
114
    public function alarm($id)
冯超鹏's avatar
冯超鹏 committed
115
    {
冯超鹏's avatar
冯超鹏 committed
116
        $uid = $this->parseAbilityAndArgumentsadmin($id);
冯超鹏's avatar
冯超鹏 committed
117
        if ($uid == 1) {
冯超鹏's avatar
冯超鹏 committed
118 119 120 121 122 123 124 125 126 127 128
            $isalarm = DB::table('reportpolice')
                ->where('status', '=', '1')
                ->where('police', '=', '1')
                ->groupBy('id')
                ->select('devicenumber')
                ->get()->toArray();
        } else {
            $isalarm = DB::table('reportpolice')
                ->join('device as d','reportpolice.devicenumber','=','d.devicenum')
                ->where('reportpolice.status', '=', '1')
                ->where('reportpolice.police', '=', '1')
冯超鹏's avatar
冯超鹏 committed
129
                ->where('d.uid', '=', $id)
冯超鹏's avatar
冯超鹏 committed
130 131 132 133 134
                ->groupBy('reportpolice.id')
                ->select('reportpolice.devicenumber')
                ->get()->toArray();
        }
        if ($isalarm) {
135
          return $this->jsonSuccessData($isalarm);
冯超鹏's avatar
冯超鹏 committed
136 137 138
        } else {
            return $this->jsonErrorData(105, '当前无报警');
        }
冯超鹏's avatar
冯超鹏 committed
139
    }
冯超鹏's avatar
冯超鹏 committed
140
    public function parseAbilityAndArgumentsadmin($id)
冯超鹏's avatar
冯超鹏 committed
141 142 143 144
    {
        $isadmin = DB::table('users')->where('id','=',$id)->value('isadmin');
        return $isadmin;
    }
Administrator's avatar
Administrator committed
145
}