1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
LastActivityService.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab\Control\Activity;
6
7use Bitrix\Main\DI\ServiceLocator;
8use Bitrix\Main\Error;
9use Bitrix\Main\Result;
10use Bitrix\Main\Type\DateTime;
11use Bitrix\Main\Validation\ValidationService;
12use Bitrix\Socialnetwork\Collab\Control\Activity\Command\DeleteLastActivityCommand;
13use Bitrix\Socialnetwork\Collab\Control\Activity\Command\SetLastActivityCommand;
14use Bitrix\Socialnetwork\Collab\Internals\CollabLastActivityTable;
15use Exception;
16
18{
20
21 public function __construct()
22 {
23 $this->init();
24 }
25
26 public function set(SetLastActivityCommand $command): Result
27 {
28 $validationResult = $this->validationService->validate($command);
29 if (!$validationResult->isSuccess())
30 {
31 return $validationResult;
32 }
33
34 $activityDate = $command->getDate() ?? new DateTime();
35 $insert = [
36 'USER_ID' => $command->getUserId(),
37 'COLLAB_ID' => $command->getCollabId(),
38 'ACTIVITY_DATE' => $activityDate,
39 ];
40
41 $update = [
42 'COLLAB_ID' => $command->getCollabId(),
43 'ACTIVITY_DATE' => $activityDate,
44 ];
45
46 $result = new Result();
47
48 try
49 {
50 CollabLastActivityTable::merge($insert, $update);
51 }
52 catch (Exception $e)
53 {
54 $result->addError(Error::createFromThrowable($e));
55 }
56
57 return $result;
58 }
59
60 public function delete(DeleteLastActivityCommand $command): Result
61 {
62 $validationResult = $this->validationService->validate($command);
63 if (!$validationResult->isSuccess())
64 {
65 return $validationResult;
66 }
67
68 $filter = [];
69
70 $collabId = $command->getCollabId();
71 if ($collabId > 0)
72 {
73 $filter['COLLAB_ID'] = $collabId;
74 }
75
76 $userIds = $command->getUserIds();
77 if (!empty($userIds))
78 {
79 $filter['@USER_ID'] = $userIds;
80 }
81
82 $result = new Result();
83 if (empty($filter))
84 {
85 return $result;
86 }
87
88 try
89 {
90 CollabLastActivityTable::deleteByFilter($filter);
91 }
92 catch (Exception $e)
93 {
94 $result->addError(Error::createFromThrowable($e));
95 }
96
97 return $result;
98 }
99
100 protected function init(): void
101 {
102 $this->validationService = ServiceLocator::getInstance()->get('main.validation.service');
103 }
104}
$result
Определения get_property_values.php:14
$filter
Определения iblock_catalog_list.php:54