BaseInfoServiceInterface.php 9.31 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 14 15 16 17 18

interface BaseInfoServiceInterface
{

    /**
     * 通过单个id获取岗位数组
     * @param int $id
     * @return array
     */
19 20 21 22 23 24 25
    public function getPositionListById(int $id): array;

    /**
     * 通过单个id获取岗位向上取数组
     * @param int $id
     * @param null $level
     * @return array
26
     * @throws \Meibuyu\Rpc\Exceptions\RpcException
27 28
     */
    public function getPositionWithTopListById(int $id, $level = null): array;
王源's avatar
王源 committed
29 30 31

    /**
     * 通过id数组获取国家数组
王源's avatar
王源 committed
32
     * @param array $idList 默认去重
王源's avatar
王源 committed
33
     * @param array $columns
王源's avatar
王源 committed
34
     * @return array 默认keyBY('id')
王源's avatar
王源 committed
35 36 37
     */
    public function getCountryListByIdList(array $idList, array $columns = ['*']): array;

38 39 40 41 42 43 44 45
    /**
     * 通过id数组获取国家区域数组
     * @param array $ids 默认去重
     * @param array $relations ['country'] 可关联国家数据
     * @return array 默认keyBY('id')
     */
    public function getCountryAreaListByIdList(array $ids, array $relations = []): array;

46 47
    /**
     * 通过id数组获取团队数组
王源's avatar
王源 committed
48
     * @param array $idList 默认去重
49
     * @param array $columns
王源's avatar
王源 committed
50
     * @return array 默认keyBY('id')
51 52 53 54 55
     */
    public function getTeamListByIdList(array $idList, array $columns = ['id', 'name']): array;

    /**
     * 通过id数组获取站点数组
王源's avatar
王源 committed
56
     * @param array $idList 默认去重
57
     * @param array $columns
58
     * @param array $relations $relations 支持的关联关系 ['team', 'country', 'sale_platform_id'] 分别代表 团队、国家、销售平台
王源's avatar
王源 committed
59
     * @return array 默认keyBY('id')
60
     */
王源's avatar
王源 committed
61
    public function getSiteListByIdList(array $idList, array $columns = ['id', 'name'], array $relations = []): array;
62 63 64

    /**
     * 通过id数组获取货币数组
王源's avatar
王源 committed
65
     * @param array $idList 默认去重
66
     * @param array $columns
王源's avatar
王源 committed
67
     * @return array 默认keyBY('id')
68 69 70
     */
    public function getCurrencyListByIdList(array $idList, array $columns = ['id', 'name']): array;

71 72 73 74 75 76 77
    /**
     * 通过Keyword获取货币id数组
     * @param $keyword
     * @return array
     */
    public function getCurrencyIdsByKeyword($keyword);

王源's avatar
王源 committed
78 79 80
    /**
     * 通过单个id获取岗位信息
     * @param int $id 职位id
81 82 83
     * @param array $relations 职位的关联信息
     * 支持["position_level","users","parent","children","perms"]
     * 分别是 岗位职级,岗位用户,岗位父级,岗位子集,岗位对应的权限
王源's avatar
王源 committed
84 85 86 87 88
     * @param array $columns 默认显示所有字段
     * @return array|null
     */
    public function getPositionById(int $id, array $relations = [], array $columns = ['*']);

89 90 91 92 93 94 95 96 97 98 99
    /**
     * 通过id数组获取岗位数组信息
     * @param array $ids 职位id数组,默认去重
     * @param array $relations 职位的关联信息
     * 支持["position_level","users","parent","children","perms"]
     * 分别是 岗位职级,岗位用户,岗位父级,岗位子集,岗位对应的权限
     * @param array $columns 默认显示所有字段
     * @return array 默认已keyBy('id')
     */
    public function getPositionListByIds(array $ids, array $relations = [], array $columns = ['*']);

梁俊杰's avatar
梁俊杰 committed
100 101
    /**
     * 根据id获取单个数据
102
     * @param int $id 货币id
梁俊杰's avatar
梁俊杰 committed
103
     * @param array $columns 要显示的字段 默认全部 ['id', 'name', 'code', 'symbol']
104
     * @return array|null
梁俊杰's avatar
梁俊杰 committed
105
     */
106
    public function getCurrencyById($id, array $columns = ['id', 'name', 'code', 'symbol']);
梁俊杰's avatar
梁俊杰 committed
107 108 109 110 111

    /**
     * 根据id获取单个数据
     * @param int $id
     * @param array $columns 要显示的字段 默认全部
112
     * @return array|null
梁俊杰's avatar
梁俊杰 committed
113
     */
114
    public function getCountryById($id, array $columns = ['*']);
梁俊杰's avatar
梁俊杰 committed
115 116 117 118 119

    /**
     * 获取单个团队数据
     * @param int $id
     * @param array $relations 支持的关联关系 ['leader', 'sites', "users", "parent", "children"] 分别代表 负责人、团队下的站点、团队成员、父级团队,再级团队
王源's avatar
王源 committed
120
     * @param array $columns 要显示的字段 默认['id', 'pid', "name", "leader_user_id",  "department_id"]
121
     * @return array|null
梁俊杰's avatar
梁俊杰 committed
122
     */
王源's avatar
王源 committed
123
    public function getTeamById($id, array $relations = [], array $columns = ['id', 'pid', "name", "leader_user_id", "department_id"]);
梁俊杰's avatar
梁俊杰 committed
124 125 126 127

    /**
     * 获取单个站点数据
     * @param int $id
128
     * @param array $relations $relations 支持的关联关系 ['team', 'country','sale_platform'] 分别代表 团队、国家、
梁俊杰's avatar
梁俊杰 committed
129
     * @param array $columns 要显示的字段 默认['id', "name", "url", "country_id", "team_id"]
130
     * @return array|null
梁俊杰's avatar
梁俊杰 committed
131
     */
132
    public function getSiteById($id, array $relations = [], array $columns = ['id', "name", "url", "country_id", "team_id"]);
梁俊杰's avatar
梁俊杰 committed
133 134 135 136

    /**
     * 根据团队id获取对应的站点列表
     * @param int $teamId 团队id
137 138
     * @param array $relations $relations 支持的关联关系 ['team', 'country', 'sale_platform'] 分别代表 团队、国家、
     * @param array $columns 要显示的字段 默认['id', "name", "url", "country_id", "team_id","sale_platform_id"]
139
     * @return array|null
梁俊杰's avatar
梁俊杰 committed
140
     */
141
    public function getSiteListByTeamId($teamId, array $relations = [], array $columns = ['id', "name", "url", "country_id", "team_id", "sale_platform_id"]);
142

王源's avatar
王源 committed
143 144
    /**
     * 返回所有货币数据
王源's avatar
王源 committed
145 146 147
     * @param array $columns 要显示的字段
     * $columns = ['id', 'name', 'code', 'symbol'];
     * @return array 默认已keyBy('id')
王源's avatar
王源 committed
148
     */
王源's avatar
王源 committed
149
    public function currencies(array $columns = ['id', 'name']): array;
王源's avatar
王源 committed
150 151 152 153 154 155 156 157 158 159 160 161

    /**
     * 获取所有国家数据
     * @param array $columns 要显示的字段
     * $columns = ['id', 'name', 'iso_code2', 'iso_code3'];
     * @return array 默认已keyBy('id')
     */
    public function countries(array $columns = ['id', 'name']): array;

    /**
     * 获取所有团队数据
     * @param array $relations 支持的关联关系 ['leader', 'sites', "users", "parent", "children"] 分别代表 负责人、团队下的站点、团队成员、父级团队,再级团队
王源's avatar
王源 committed
162 163 164
     * @param array $columns 要显示的字段
     * $columns = ['id', 'pid', "name", "leader_user_id", "leader_user_id", "department_id"];
     * @return array 默认已keyBy('id')
王源's avatar
王源 committed
165
     */
王源's avatar
王源 committed
166
    public function teams(array $relations = [], array $columns = ['id', 'pid', "name", "leader_user_id", "department_id"]): array;
王源's avatar
王源 committed
167 168 169

    /**
     * 获取所有站点的数据
170
     * @param array $relations 支持的关联关系 ['team', 'country'] 分别代表 团队、国家
王源's avatar
王源 committed
171 172 173 174
     * @param array $columns 要显示的字段
     * $columns = ['id', "name", "url", "country_id", "team_id"];
     * @return array 默认已keyBy('id')
     */
175
    public function sites(array $relations = [], array $columns = ['id', "name"]): array;
王源's avatar
王源 committed
176

177 178 179 180 181 182 183
    /**
     * 获取部门领导id数据
     * @param array $ids 部门id数组
     * @return array
     */
    public function getDepartmentLeaderIdsByIds($ids);

184 185 186 187 188 189 190 191
    /**
     * 获取审阅人员
     * @param $teamId
     * @param $authId
     * @return array|bool
     */
    public function getReviewUsers($teamId, $authId);

192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
    /**
     * 通过id数组获取部门数组
     * @param array $idList 默认去重
     * @param array $relations 关联关系,默认空 ['users', 'leader']
     * @param array $columns 要显示的字段,默认全部 ['id', 'name', 'pid', 'remark']
     * @return array 默认keyBY('id')
     */
    public function getDepartmentListByIdList(array $idList, array $relations = [], array $columns = ['*']): array;

    /**
     * 获取单个部门数据
     * @param int $id
     * @param array $relations 关联关系,默认空 ['users', 'leader']
     * @param array $columns 要显示的字段,默认全部 ['id', 'name', 'pid', 'remark']
     * @return array|null
     */
    public function getDepartmentById($id, array $relations = [], array $columns = ['*']);

    /**
     * 获取所有部门数据
     * @param array $relations 关联关系,默认空 ['users', 'leader']
     * @param array $columns 要显示的字段,默认全部 ['id', 'name', 'pid', 'remark']
     * @return array 默认已keyBy('id')
     */
    public function departments(array $relations = [], array $columns = ['*']): array;

218 219 220 221 222 223 224
    /**
     * 通过职级id数组获取用户占比数组
     * @param array $positionLevelIds 职级id数组,默认去重
     * @return array
     * @author Zero
     */
    public function getRateByPositionLevelIds(array $positionLevelIds): array;
225

226 227 228 229 230 231 232
    /**
     * 通过单个id获取国家地区信息
     * @param int $id 职位id
     * @param array $columns 默认显示所有字段
     * @return array|null
     */
    public function getCountryZoneById(int $id, array $columns = ['*']);
233

234 235 236 237 238 239 240 241 242 243 244 245 246
    /**
     * 根据国家code数组获取国家数组
     * @param array $codes 国家code数组
     * @param array $columns 获取的字段,默认全部
     * @param int $codeType 2/3 (iso_code2/iso_code3)
     * @return array 默认已keyBy('iso_code')
     * @author Zero
     */
    public function getCountriesByCodes(array $codes, array $columns = ['*'], $codeType = 2);

    /**
     * 根据国家地区code数组获取国家地区数组
     * @param array $codes 国家code数组
247
     * @param null $countryId 国家id
248
     * @param array $relations 关联关系,默认空 可填['country']
249
     * @return array
250 251
     * @author Zero
     */
252
    public function getCountryZonesByCodes(array $codes, $countryId = null, array $relations = []);
253

王源's avatar
王源 committed
254
}