1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
calluser.php
См. документацию.
1<?php
2
3namespace Bitrix\Im\Model;
4
5use Bitrix\Main\Application;
6use Bitrix\Main\Error;
7use Bitrix\Main\ORM\Data\DataManager;
8use Bitrix\Main\ORM\Fields\IntegerField;
9use Bitrix\Main\ORM\Fields\StringField;
10use Bitrix\Main\ORM\Fields\DatetimeField;
11use Bitrix\Main\ORM\Fields\BooleanField;
12use Bitrix\Main\ORM\Data\AddResult;
13
31{
32 public static function getTableName(): string
33 {
34 return 'b_im_call_user';
35 }
36
37 public static function getMap(): array
38 {
39 return [
40 new IntegerField('CALL_ID', [
41 'primary' => true
42 ]),
43 new IntegerField('USER_ID', [
44 'primary' => true
45 ]),
46 new StringField('STATE'),
47 new DatetimeField('FIRST_JOINED'),
48 new DatetimeField('LAST_SEEN'),
49 new BooleanField('IS_MOBILE', [
50 'values' => ['N', 'Y']
51 ]),
52 new BooleanField('SHARED_SCREEN', [
53 'values' => ['N', 'Y']
54 ]),
55 new BooleanField('RECORDED', [
56 'values' => ['N', 'Y']
57 ]),
58 ];
59 }
60
67 public static function merge(array $data): AddResult
68 {
69 $result = new AddResult();
70
71 $helper = Application::getConnection()->getSqlHelper();
72 $insertData = $data;
73 $updateData = $data;
74 $mergeFields = static::getMergeFields();
75 foreach ($mergeFields as $field)
76 {
77 unset($updateData[$field]);
78 }
79 $merge = $helper->prepareMerge(
80 static::getTableName(),
81 static::getMergeFields(),
82 $insertData,
83 $updateData
84 );
85
86 if ($merge[0] != "")
87 {
88 Application::getConnection()->query($merge[0]);
89 $id = Application::getConnection()->getInsertedId();
90 $result->setId($id);
91 $result->setData($data);
92 }
93 else
94 {
95 $result->addError(new Error('Error constructing query'));
96 }
97
98 return $result;
99 }
100
105 protected static function getMergeFields(): array
106 {
107 return ['CALL_ID', 'USER_ID'];
108 }
109}
static getMap()
Определения calluser.php:37
static getMergeFields()
Определения calluser.php:105
static merge(array $data)
Определения calluser.php:67
static getTableName()
Определения calluser.php:32
Определения error.php:15
$data['IS_AVAILABLE']
Определения .description.php:13
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14