alexmorbo / time-control-manager
时间控制管理库
0.8
2019-04-23 13:48 UTC
Requires
- php: >=7.2.0
- ext-mbstring: *
- ext-pdo: *
README
在库中实现了最小功能,允许操作
- TC 用户
- TC 目录
- TC 用户组
- TC 部门
- TC 通道
- TC 访问权限
- TC 通道事件
TC - 时间控制
要求
- Time-Control >= 4.6
- php >= 7.2
- ext-interbase (pdo_firebird)
安装
cd /path/to/project
composer require alexmorbo/time-control-manager
使用
开始日需要初始化库
<?php $dbUser = ''; // user $dbPassword = ''; // pass $dbHost = ''; // ip $dbPort = ''; // port $dbName = ''; // name $baseConnect = new \TimeControlManager\BaseConnect($dbUser, $dbPassword, $dbHost, $dbPort, $dbName); $tc = new \TimeControlManager\TimeControl($baseConnect);
方法
用户操作
要获取用户模型,需要调用 User
模型的 findOne
方法
$entity = \TimeControlManager\Entities\User::findOne(9); TimeControlManager\Entities\User {#6 +"id": 9 // Идентификатор в БД TC +"userGroup": 1 // Группа +"surname": "Иванов" // Фамилия +"name": "Иван" // Имя +"patronymic": "Иванович" // Отчество +"fullName": "Иванов Иван Иванович" // ФИО +"gender": 1 // Пол +"externalId": "5ca5de99383a8" // Внешний идентификатор +"departmentId": 2 // Отдел +"positionId": 3 // Должность +"accessCardNumber": "7213251" // Карта доступа +"deviceId": 9 // Идентификатор в БД ТС }
用户组操作
要获取用户组模型,需要调用 UserGroup
模型的 findOne
方法
$entity = \TimeControlManager\Entities\UserGroup::findOne(1); TimeControlManager\Entities\UserGroup {#7 +"id": 1 // Идентификатор в БД ТС +"name": "Администратор" // Название группы +"comment": null // Комментарий к группе +"code": "01" // Текстовый код +"isDefault": 0 // по умолчанию при добавлении }
部门操作
要获取用户部门模型,需要调用 Department
模型的 findOne
方法
$entity = \TimeControlManager\Entities\Department::findOne(2); TimeControlManager\Entities\Department {#7 +"id": 2 // Идентификатор +"name": "Отдел снабжения" // Название +"parentId": 0 // Корневое отд +"headId": 0 // Руководитель отдела +"workStartTime": "00:00:00" // Время начала работы отдела +"workEndTime": "00:00:00" // Время конца работы отдела +"comment": "" // Комментарий +"code": "" // Текстовый код }
通道操作
要获取通道模型,需要调用 Door
模型的 findOne
方法
$entity = \TimeControlManager\Entities\Door::findOne(3); TimeControlManager\Entities\Door {#6 +"id": 3 // Идентификатор +"useForWorkHours": 0 // Использовать проходную для учета рабочего времени +"defaultAccessDenied": null // По умолчанию доступ закрыт +"name": "Склад - основной" // Название +"useTimeIntervalAccess": null // Использовать временной интервал доступа +"allowedAccessStart": null // Начало разрешенного доступа +"allowedAccessEnd": null // Конец интервала доступа +"department": null // Подразделение связанное с проходной +"code": null // Текстовый код +"loadOnlyDepartmentUsers": null // 1 - Загружать на устройства сотрудников только выбранного подразделения +"isDefault": null // 1 - по умолчанию при регистрации прихода\ухода вручную }
目录操作
要获取目录模型,需要调用 Directory
模型的 findOne
方法
$entity = \TimeControlManager\Entities\Directory::findOne(1); TimeControlManager\Entities\Directory {#6 +"id": 1 +"name": "DOLJNOST" +"title": "Справочник должностей" +"description": "Справочник должностей сотрудников" +"useSecondaryCode": null +"useSecondaryName": null +"useColor": null +"useCode": 1 +"useDefault": null +"useIcon": null +"useRatio": null }
要获取目录数据列表,例如职位列表,需要调用此模型的 getData()
方法
$entity->getData(); array:11 [ 1 => TimeControlManager\Entities\DirectoryData {#7 +"id": 1 +"directoryId": 1 +"value": "Руководитель склада" +"code": null +"secondaryCode": null +"secondaryValue": null +"color": null +"imageIndex": null +"defaultValue": null +"ratio": null +"pid": null } 2 => TimeControlManager\Entities\DirectoryData {#8 +"id": 2 +"directoryId": 1 +"value": "Кладовщик" +"code": null +"secondaryCode": null +"secondaryValue": null +"color": null +"imageIndex": null +"defaultValue": null +"ratio": null +"pid": null } ... ]
通道事件操作
要获取通道模型,需要调用 Door
模型的 getEventsByPeriod
方法。该方法接受两个参数
- 数据选择开始日期
DateTime
- 数据选择结束日期
DateTime
$start = new DateTime('-5 hour'); $end = new DateTime('now'); $events = \TimeControlManager\Entities\UserDoorEvent::getEventsByPeriod($start, $end); array:43 [ 3177 => TimeControlManager\Entities\UserDoorEvent {#8 +"id": 3177 +"userId": 10 +"eventDateTime": "2019-04-04 07:04:00" +"doorId": 3 +"method": 2 +"enterType": 2 } 3178 => TimeControlManager\Entities\UserDoorEvent {#9 +"id": 3178 +"userId": 7 +"eventDateTime": "2019-04-04 08:57:00" +"doorId": 4 +"method": 2 +"enterType": 1 } ]