UserRepository   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 75
rs 10
c 0
b 0
f 0
wmc 8
lcom 0
cbo 1

6 Methods

Rating   Name   Duplication   Size   Complexity  
A model() 0 4 1
A boot() 0 4 1
A presenter() 0 4 1
A getUnreadMessagesCount() 0 6 3
A setUnreadMessagesCount() 0 4 1
A incrementUnreadMessagesCount() 0 4 1
1
<?php
2
3
namespace PHPHub\Repositories\Eloquent;
4
5
use Auth;
6
use PHPHub\Presenters\UserPresenter;
7
use PHPHub\Repositories\UserRepositoryInterface;
8
use Prettus\Repository\Criteria\RequestCriteria;
9
use PHPHub\User;
10
use Prettus\Validator\Contracts\ValidatorInterface;
11
12
/**
13
 * Class UserRepositoryEloquent.
14
 */
15
class UserRepository extends BaseRepository implements UserRepositoryInterface
16
{
17
    /**
18
     * Specify Validator Rules.
19
     *
20
     * @var array
21
     */
22
    protected $rules = [
23
        ValidatorInterface::RULE_CREATE => [
24
25
        ],
26
        ValidatorInterface::RULE_UPDATE => [
27
28
        ],
29
    ];
30
31
    /**
32
     * Specify Model class name.
33
     *
34
     * @return string
35
     */
36
    public function model()
37
    {
38
        return User::class;
39
    }
40
41
    /**
42
     * Boot up the repository, pushing criteria.
43
     */
44
    public function boot()
45
    {
46
        $this->pushCriteria(app(RequestCriteria::class));
47
    }
48
49
    public function presenter()
50
    {
51
        return UserPresenter::class;
52
    }
53
54
    /**
55
     * 获取指定或当前用户的未读消息数.
56
     *
57
     * @param null $user_id
58
     *
59
     * @return int|mixed
60
     */
61
    public function getUnreadMessagesCount($user_id = null)
62
    {
63
        return is_null($user_id) && Auth::check()
64
            ? Auth::user()->notification_count
65
            : User::whereId($user_id)->pluck('notification_count');
66
    }
67
68
    /**
69
     * 设置指定用户的未读消息数.
70
     *
71
     * @param $user_id
72
     * @param $count
73
     */
74
    public function setUnreadMessagesCount($user_id, $count)
75
    {
76
        User::whereId($user_id)->update(['notification_count' => $count]);
77
    }
78
79
    /**
80
     * 增加用户的未读消息数.
81
     *
82
     * @param $user_id
83
     * @param $amount
84
     */
85
    public function incrementUnreadMessagesCount($user_id, $amount)
86
    {
87
        User::whereId($user_id)->increment(['notification_count' => $amount]);
88
    }
89
}
90