AdminUserRepository::update()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 2
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Date: 2019/2/25 Time: 16:15
4
 *
5
 * @author  Eddy <[email protected]>
6
 * @version v1.0.0
7
 */
8
9
namespace App\Repository\Admin;
10
11
use App\Model\Admin\AdminUser;
12
use App\Model\Admin\Menu;
13
use App\Repository\Searchable;
14
15
class AdminUserRepository
16
{
17
    use Searchable;
18
19
    public static function list($perPage, $condition = [])
20
    {
21
        $data = AdminUser::query()
22
            ->select('id', 'name', 'created_at', 'updated_at', 'status')
23
            ->where(function ($query) use ($condition) {
24
                Searchable::buildQuery($query, $condition);
25
            })
26
            ->with('roles')
27
            ->orderBy('id', 'desc')
28
            ->paginate($perPage);
29
        $data->transform(function ($item) {
30
            xssFilter($item);
31
            $item->editUrl = route('admin::adminUser.edit', ['id' => $item->id]);
32
            $item->roleUrl = route('admin::adminUser.role.edit', ['id' => $item->id]);
33
            $item->statusText = $item->status == AdminUser::STATUS_ENABLE ?
34
                    '<span class="layui-badge layui-bg-green">启用</span>' :
35
                    '<span class="layui-badge">禁用</span>';
36
            $item->roleNames = xssFilter($item->getRoleNames()->join(','));
37
            unset($item->roles);
38
            return $item;
39
        });
40
41
        return [
42
            'code' => 0,
43
            'msg' => '',
44
            'count' => $data->total(),
45
            'data' => $data->items(),
46
        ];
47
    }
48
49
    public static function add($data)
50
    {
51
        $data['password'] = bcrypt($data['password']);
52
        return AdminUser::query()->create($data);
53
    }
54
55
    public static function update($id, $data)
56
    {
57
        if (isset($data['password'])) {
58
            $data['password'] = bcrypt($data['password']);
59
        }
60
        return AdminUser::query()->where('id', $id)->update($data);
61
    }
62
63
    public static function find($id)
64
    {
65
        return AdminUser::query()->find($id);
66
    }
67
68
    public static function roles(AdminUser $user)
69
    {
70
        return $user->roles();
71
    }
72
73
    public static function setDefaultPermission(AdminUser $user)
74
    {
75
        $logoutPermission = Menu::query()->where('route', 'admin::logout')->first();
76
        if ($logoutPermission) {
77
            $user->givePermissionTo($logoutPermission->name);
78
        }
79
    }
80
}
81