UserServiceInterface.php 4.57 KB
Newer Older
王源's avatar
王源 committed
1 2 3 4 5 6 7 8
<?php
/**
 * Created by PhpStorm.
 * User: 王源
 * Date: 2020/1/9
 * Time: 15:07
 */

9
namespace Meibuyu\Rpc\Service\Interfaces\User;
王源's avatar
王源 committed
10 11 12 13

interface UserServiceInterface
{

14 15 16 17 18 19 20 21
    /**
     * 通过用户名称模糊获取用户
     * @param string $name
     * @param array $columns
     * @return array
     */
    public function getByName(string $name, array $columns = ['id', 'name']): array;

王源's avatar
王源 committed
22 23
    /**
     * 获取单个数据
王源's avatar
王源 committed
24 25
     * @param int $id
     * @param array $columns
王源's avatar
王源 committed
26
     * @param array $relations 可传入['teams', 'departments', 'position', 'assessment_plan'],分别是团队,部门,岗位和考核方案
王源's avatar
王源 committed
27 28
     * @return mixed
     */
王源's avatar
王源 committed
29 30 31 32
    public function get(int $id, array $columns = ['*'], array $relations = []);

    /**
     * 获取全部数据
王源's avatar
王源 committed
33
     * @param array $columns 默认['id', 'name']
王源's avatar
王源 committed
34
     * @param array $relations 可传入['teams', 'departments', 'position', 'assessment_plan'],分别是团队,部门,岗位和考核方案
王源's avatar
王源 committed
35 36
     * @return array
     */
王源's avatar
王源 committed
37
    public function all(array $columns = ['id', 'name'], array $relations = []): array;
王源's avatar
王源 committed
38

39 40
    /**
     * 通过id列表获取用户数组
王源's avatar
王源 committed
41
     * @param array $idList 默认去重
42
     * @param array $columns
王源's avatar
王源 committed
43
     * @param array $relations 可传入['teams', 'departments', 'position', 'assessment_plan'],分别是团队,部门,岗位和考核方案
王源's avatar
王源 committed
44
     * @return mixed 默认keyBY('id')
45
     */
王源's avatar
王源 committed
46
    public function getByIdList($idList, $columns = ['*'], $relations = []);
47

48 49
    /**
     * 通过部门id列表获取用户数组(包括子部门用户)
50
     * @param array $deptIds 默认去重
王源's avatar
王源 committed
51
     * @param array $columns 用户字段,默认['id', 'name']
52 53 54 55
     * @return array
     */
    public function getListByDeptIds(array $deptIds, $columns = []);

56 57 58 59 60 61 62 63
    /**
     * 通过团队id数组获取用户数组(包括子团队用户)
     * @param array $teamIds 默认去重
     * @param array $columns 用户字段,默认['id', 'name']
     * @return array
     */
    public function getListByTeamIds(array $teamIds, $columns = []);

64 65 66 67 68 69 70
    /**
     * 判断是否是超级管理员
     * @param int $userId
     * @return bool
     */
    public function isSuperAdmin(int $userId): bool;

王源's avatar
王源 committed
71
    /**
72
     * 鉴权
73 74 75
     * @param int $userId
     * @param string $perm
     * @return bool
王源's avatar
王源 committed
76
     */
77
    public function checkPerm(int $userId, string $perm): bool;
王源's avatar
王源 committed
78

79 80 81 82 83

    /**
     * 获取当前数据权限的配置
     * @param string $dataPerm
     * @return array
84
     * @example store_warehouse_index(store_模块的名称,warehouse_ 控制器 index 方法)
85
     */
86
    public function checkDataPerm(string $dataPerm): array;
87

88 89 90
    /**
     * 获取用户拥有某个应用的所有权限
     * @param int $userId
王源's avatar
王源 committed
91
     * @param mixed $appNames 应用名,多个传数组
92 93
     * @return array
     */
王源's avatar
王源 committed
94
    public function getPerms(int $userId, $appNames = null): array;
95

96 97 98 99 100 101 102 103 104 105 106 107
    /**
     * 获取带领导字符串数组的列表
     * [
     *     ['id' => -1, 'name' => '总经理'],
     *     ['id' => -2, 'name' => '直属领导'],
     *     ['id' => -3, 'name' => '部门领导'],
     *     [...]
     * ]
     * @return array
     */
    public function allWithLeader(): array;

108 109
    /**
     * 获取带有领导真实信息的用户列表
王源's avatar
王源 committed
110
     * @param int $userId 默认去重
111 112
     * @param array $idList 可包含[-1,-2,-3]
     * @param array $columns
王源's avatar
王源 committed
113
     * @return array 默认keyBY('id')
114 115 116
     */
    public function getListWithLeader(int $userId, array $idList = [], array $columns = ['id', 'name']): array;

117 118 119 120 121 122 123 124 125 126
    /**
     * 更新用户考核方案
     * @param $userId
     * @param array $attributes
     * 'review_users' => '1,2,3' // 点评人
     * 'cc_person' => '1,2,3' // 抄送人
     * @return int
     */
    public function updateAssessmentPlan($userId, array $attributes);

127 128
    /**
     * 获取用户直属领导
王源's avatar
王源 committed
129
     * @param int $userId 用户id
130 131 132 133
     * @return array
     */
    public function getDirectLeader($userId);

134 135 136 137 138 139 140
    /**
     * 获取多个用户的直属领导
     * @param array $userIds 用户id数组,默认去重
     * @return array 直属领导数组,key值为用户id
     */
    public function getDirectLeadersByIds($userIds);

141 142 143 144 145 146 147 148 149 150
    /**
     * 判断用户是否属于某个部门
     * @param mixed $userId 用户id
     * @param mixed $deptId 部门id,判断多个部门传数组
     * @param bool $withChildren 是否包含子部门,默认false
     * @return bool
     * @author Zero
     */
    public function belongToDepartments($userId, $deptId, $withChildren = false): bool;

151 152 153 154 155 156 157 158
    /**
     * 获取用户所有角色数据
     * @param $userId
     * @return array
     * @author Zero
     */
    public function getRoles($userId): array;

王源's avatar
王源 committed
159
}