1/*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#include "dp_radar_helper.h"
17
18#include <cJSON.h>
19#include <errors.h>
20#include "hisysevent.h"
21#include "content_sensor_manager_utils.h"
22#include "distributed_device_profile_errors.h"
23#include "distributed_device_profile_log.h"
24#include "profile_utils.h"
25
26namespace OHOS {
27namespace DistributedDeviceProfile {
28IMPLEMENT_SINGLE_INSTANCE(DpRadarHelper);
29namespace {
30const std::string TAG = "DpRadarHelper";
31}
32void DpRadarHelper::ReportCheckDpSa(int32_t stageRes)
33{
34    int32_t res = ERR_OK;
35    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
36        res = HiSysEventWrite(
37            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
38            DP_DATA_OPERATE_BEHAVIOR,
39            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
40            "ORG_PKG", ORGPKG_NAME,
41            "FUNC", "GetDeviceProfileService",
42            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
43            "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_CHECK_SA),
44            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
45            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
46            "TO_CALL_PKG", SA_MAGR_NAME);
47    } else {
48        res = HiSysEventWrite(
49            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
50            DP_DATA_OPERATE_BEHAVIOR,
51            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
52            "ORG_PKG", ORGPKG_NAME,
53            "FUNC", "GetDeviceProfileService",
54            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
55            "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_CHECK_SA),
56            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
57            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
58            "TO_CALL_PKG", SA_MAGR_NAME,
59            "ERROR_CODE", DP_LOAD_SERVICE_ERR);
60    }
61    if (res != ERR_OK) {
62        HILOGD("failed");
63    }
64    return;
65}
66
67void DpRadarHelper::ReportLoadDpSa(int32_t stageRes)
68{
69    int32_t res = ERR_OK;
70    if (stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
71        res = HiSysEventWrite(
72            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
73            DP_DATA_OPERATE_BEHAVIOR,
74            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
75            "ORG_PKG", ORGPKG_NAME,
76            "FUNC", "LoadDeviceProfileService",
77            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
78            "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_LOAD_SA),
79            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
80            "TO_CALL_PKG", SA_MAGR_NAME);
81    } else {
82        res = HiSysEventWrite(
83            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
84            DP_DATA_OPERATE_BEHAVIOR,
85            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
86            "ORG_PKG", ORGPKG_NAME,
87            "FUNC", "LoadDeviceProfileService",
88            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
89            "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_LOAD_SA),
90            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
91            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
92            "TO_CALL_PKG", SA_MAGR_NAME,
93            "ERROR_CODE", DP_LOAD_SERVICE_ERR);
94    }
95    if (res != ERR_OK) {
96        HILOGD("failed");
97    }
98    return;
99}
100
101void DpRadarHelper::ReportLoadDpSaCb(int32_t stageRes)
102{
103    int32_t res = ERR_OK;
104    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
105        res = HiSysEventWrite(
106            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
107            DP_DATA_OPERATE_BEHAVIOR,
108            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
109            "ORG_PKG", ORGPKG_NAME,
110            "FUNC", "LoadSystemAbilitySuccess",
111            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
112            "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_LOAD_SA),
113            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
114            "HOST_NAME", SA_MAGR_NAME);
115    } else {
116        res = HiSysEventWrite(
117            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
118            DP_DATA_OPERATE_BEHAVIOR,
119            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
120            "ORG_PKG", ORGPKG_NAME,
121            "FUNC", "LoadSystemAbilityFail",
122            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
123            "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_LOAD_SA),
124            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
125            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
126            "HOST_NAME", SA_MAGR_NAME,
127            "ERROR_CODE", DP_LOAD_SERVICE_ERR);
128    }
129    if (res != ERR_OK) {
130        HILOGD("failed");
131    }
132    return;
133}
134
135void DpRadarHelper::ReportSaCheckAuth(int32_t stageRes)
136{
137    int res = ERR_OK;
138    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
139        res = HiSysEventWrite(
140            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
141            DP_DATA_OPERATE_BEHAVIOR,
142            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
143            "ORG_PKG", ORGPKG_NAME,
144            "FUNC", "IsCallerTrust",
145            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
146            "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_SA_CHACK_AUTH),
147            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
148            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END));
149    } else {
150        res = HiSysEventWrite(
151            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
152            DP_DATA_OPERATE_BEHAVIOR,
153            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
154            "ORG_PKG", ORGPKG_NAME,
155            "FUNC", "IsCallerTrust",
156            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
157            "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_SA_CHACK_AUTH),
158            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
159            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
160            "ERROR_CODE", ERR_PERMISSION_DENIED);
161    }
162    if (res != ERR_OK) {
163        HILOGD("failed");
164    }
165    return;
166}
167
168void DpRadarHelper::ReportPutAclProfile(int32_t errCode, const AccessControlProfile& accessControlProfile)
169{
170    int res = DP_SUCCESS;
171    int32_t stageRes = (errCode == DP_SUCCESS) ?
172        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
173    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
174        res = HiSysEventWrite(
175            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
176            DP_DATA_OPERATE_BEHAVIOR,
177            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
178            "ORG_PKG", ORGPKG_NAME,
179            "FUNC", "PutAccessControlProfile",
180            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_ACL_PROFILE),
181            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
182            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
183            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
184            "LOCAL_UDID", GetLocalUdid(),
185            "PEER_UDID", GetPeerUdid(accessControlProfile.GetAccessee().GetAccesseeDeviceId()),
186            "TO_CALL_PKG", RDB_NAME,
187            "EXTRA_INFO", accessControlProfile.dump());
188    } else {
189        res = HiSysEventWrite(
190            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
191            DP_DATA_OPERATE_BEHAVIOR,
192            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
193            "ORG_PKG", ORGPKG_NAME,
194            "FUNC", "PutAccessControlProfile",
195            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_ACL_PROFILE),
196            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
197            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
198            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
199            "LOCAL_UDID", GetLocalUdid(),
200            "PEER_UDID", GetPeerUdid(accessControlProfile.GetAccessee().GetAccesseeDeviceId()),
201            "TO_CALL_PKG", RDB_NAME,
202            "ERROR_CODE", errCode,
203            "EXTRA_INFO", accessControlProfile.dump());
204    }
205    if (res != DP_SUCCESS) {
206        HILOGD("failed");
207    }
208    return;
209}
210
211void DpRadarHelper::ReportUpdateAclProfile(int32_t errCode, const AccessControlProfile& accessControlProfile)
212{
213    int res = DP_SUCCESS;
214    int32_t stageRes = (errCode == DP_SUCCESS) ?
215        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
216    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
217        res = HiSysEventWrite(
218            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
219            DP_DATA_OPERATE_BEHAVIOR,
220            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
221            "ORG_PKG", ORGPKG_NAME,
222            "FUNC", "UpdateAccessControlProfile",
223            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_UPDATE_ACL_PROFILE),
224            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
225            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
226            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
227            "LOCAL_UDID", GetLocalUdid(),
228            "PEER_UDID", GetPeerUdid(accessControlProfile.GetAccessee().GetAccesseeDeviceId()),
229            "TO_CALL_PKG", RDB_NAME,
230            "EXTRA_INFO", accessControlProfile.dump());
231    } else {
232        res = HiSysEventWrite(
233            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
234            DP_DATA_OPERATE_BEHAVIOR,
235            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
236            "ORG_PKG", ORGPKG_NAME,
237            "FUNC", "UpdateAccessControlProfile",
238            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_UPDATE_ACL_PROFILE),
239            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
240            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
241            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
242            "LOCAL_UDID", GetLocalUdid(),
243            "PEER_UDID", GetPeerUdid(accessControlProfile.GetAccessee().GetAccesseeDeviceId()),
244            "TO_CALL_PKG", RDB_NAME,
245            "ERROR_CODE", errCode,
246            "EXTRA_INFO", accessControlProfile.dump());
247    }
248    if (res != DP_SUCCESS) {
249        HILOGD("failed");
250    }
251    return;
252}
253
254void DpRadarHelper::ReportGetTrustProfile(int32_t errCode, const std::string& deviceId,
255    const TrustDeviceProfile& trustDeviceProfile)
256{
257    int res = DP_SUCCESS;
258    int32_t stageRes = (errCode == DP_SUCCESS) ?
259        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
260    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
261        res = HiSysEventWrite(
262            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
263            DP_DATA_OPERATE_BEHAVIOR,
264            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
265            "ORG_PKG", ORGPKG_NAME,
266            "FUNC", "GetTrustDeviceProfile",
267            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_TRUST_PROFILE),
268            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
269            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
270            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
271            "LOCAL_UDID", GetLocalUdid(),
272            "PEER_UDID", GetPeerUdid(deviceId),
273            "TO_CALL_PKG", RDB_NAME,
274            "EXTRA_INFO", trustDeviceProfile.dump());
275    } else {
276        res = HiSysEventWrite(
277            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
278            DP_DATA_OPERATE_BEHAVIOR,
279            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
280            "ORG_PKG", ORGPKG_NAME,
281            "FUNC", "GetTrustDeviceProfile",
282            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_TRUST_PROFILE),
283            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
284            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
285            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
286            "LOCAL_UDID", GetLocalUdid(),
287            "PEER_UDID", GetPeerUdid(deviceId),
288            "TO_CALL_PKG", RDB_NAME,
289            "ERROR_CODE", errCode,
290            "EXTRA_INFO", trustDeviceProfile.dump());
291    }
292    if (res != DP_SUCCESS) {
293        HILOGD("failed");
294    }
295    return;
296}
297
298void DpRadarHelper::ReportGetAllTrustProfile(int32_t errCode, std::vector<TrustDeviceProfile>& trustDeviceProfiles)
299{
300    int res = DP_SUCCESS;
301    int32_t stageRes = (errCode == DP_SUCCESS) ?
302        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
303    std::string extraInfo = "";
304    size_t size = trustDeviceProfiles.size() > 0 ? (trustDeviceProfiles.size() - 1) : 0;
305    for (size_t i = 0; i < trustDeviceProfiles.size(); i++) {
306        extraInfo += trustDeviceProfiles[i].dump();
307        if (i != size) {
308            extraInfo += ",";
309        }
310    }
311    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
312        res = HiSysEventWrite(
313            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
314            DP_DATA_OPERATE_BEHAVIOR,
315            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
316            "ORG_PKG", ORGPKG_NAME,
317            "FUNC", "GetAllTrustDeviceProfile",
318            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_ALL_TRUST_PROFILE),
319            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
320            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
321            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
322            "LOCAL_UDID", GetLocalUdid(),
323            "PEER_UDID_LIST", GetPeerUdidList(trustDeviceProfiles),
324            "TO_CALL_PKG", RDB_NAME,
325            "EXTRA_INFO", extraInfo);
326    } else {
327        res = HiSysEventWrite(
328            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
329            DP_DATA_OPERATE_BEHAVIOR,
330            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
331            "ORG_PKG", ORGPKG_NAME,
332            "FUNC", "GetAllTrustDeviceProfile",
333            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_ALL_TRUST_PROFILE),
334            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
335            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
336            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
337            "LOCAL_UDID", GetLocalUdid(),
338            "PEER_UDID_LIST", GetPeerUdidList(trustDeviceProfiles),
339            "TO_CALL_PKG", RDB_NAME,
340            "ERROR_CODE", errCode,
341            "EXTRA_INFO", extraInfo);
342    }
343    if (res != DP_SUCCESS) {
344        HILOGD("failed");
345    }
346    return;
347}
348
349void DpRadarHelper::ReportGetAclProfile(int32_t errCode, std::vector<AccessControlProfile>& accessControlProfiles)
350{
351    int res = DP_SUCCESS;
352    int32_t stageRes = (errCode == DP_SUCCESS) ?
353        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
354    std::string extraInfo = "";
355    size_t size = accessControlProfiles.size() > 0 ? (accessControlProfiles.size() - 1) : 0;
356    for (size_t i = 0; i < accessControlProfiles.size(); i++) {
357        extraInfo += accessControlProfiles[i].dump();
358        if (i != size) {
359            extraInfo += ",";
360        }
361    }
362    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
363        res = HiSysEventWrite(
364            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
365            DP_DATA_OPERATE_BEHAVIOR,
366            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
367            "ORG_PKG", ORGPKG_NAME,
368            "FUNC", "GetAccessControlProfile",
369            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_ACL_PROFILE),
370            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
371            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
372            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
373            "LOCAL_UDID", GetLocalUdid(),
374            "PEER_UDID_LIST", GetPeerUdidList(accessControlProfiles),
375            "TO_CALL_PKG", RDB_NAME,
376            "EXTRA_INFO", extraInfo);
377    } else {
378        res = HiSysEventWrite(
379            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
380            DP_DATA_OPERATE_BEHAVIOR,
381            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
382            "ORG_PKG", ORGPKG_NAME,
383            "FUNC", "GetAccessControlProfile",
384            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_ACL_PROFILE),
385            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
386            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
387            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
388            "LOCAL_UDID", GetLocalUdid(),
389            "PEER_UDID_LIST", GetPeerUdidList(accessControlProfiles),
390            "TO_CALL_PKG", RDB_NAME,
391            "ERROR_CODE", errCode,
392            "EXTRA_INFO", extraInfo);
393    }
394    if (res != DP_SUCCESS) {
395        HILOGD("failed");
396    }
397    return;
398}
399
400void DpRadarHelper::ReportGetAllAclProfile(int32_t errCode, std::vector<AccessControlProfile>& accessControlProfiles)
401{
402    int res = DP_SUCCESS;
403    int32_t stageRes = (errCode == DP_SUCCESS) ?
404        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
405    std::string extraInfo = "";
406    size_t size = accessControlProfiles.size() > 0 ? (accessControlProfiles.size() - 1) : 0;
407    for (size_t i = 0; i < accessControlProfiles.size(); i++) {
408        extraInfo += accessControlProfiles[i].dump();
409        if (i != size) {
410            extraInfo += ",";
411        }
412    }
413    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
414        res = HiSysEventWrite(
415            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
416            DP_DATA_OPERATE_BEHAVIOR,
417            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
418            "ORG_PKG", ORGPKG_NAME,
419            "FUNC", "GetAllAccessControlProfile",
420            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_ALL_ACL_PROFILE),
421            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
422            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
423            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
424            "LOCAL_UDID", GetLocalUdid(),
425            "PEER_UDID_LIST", GetPeerUdidList(accessControlProfiles),
426            "TO_CALL_PKG", RDB_NAME,
427            "EXTRA_INFO", extraInfo);
428    } else {
429        res = HiSysEventWrite(
430            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
431            DP_DATA_OPERATE_BEHAVIOR,
432            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
433            "ORG_PKG", ORGPKG_NAME,
434            "FUNC", "GetAllAccessControlProfile",
435            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_ALL_ACL_PROFILE),
436            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
437            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
438            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
439            "LOCAL_UDID", GetLocalUdid(),
440            "PEER_UDID_LIST", GetPeerUdidList(accessControlProfiles),
441            "TO_CALL_PKG", RDB_NAME,
442            "ERROR_CODE", errCode,
443            "EXTRA_INFO", extraInfo);
444    }
445    if (res != DP_SUCCESS) {
446        HILOGD("failed");
447    }
448    return;
449}
450
451void DpRadarHelper::ReportDeleteAclProfile(int32_t errCode)
452{
453    int res = DP_SUCCESS;
454    int32_t stageRes = (errCode == DP_SUCCESS) ?
455        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
456    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
457        res = HiSysEventWrite(
458            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
459            DP_DATA_OPERATE_BEHAVIOR,
460            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
461            "ORG_PKG", ORGPKG_NAME,
462            "FUNC", "DeleteAccessControlProfile",
463            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_DELETE_ACL_PROFILE),
464            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
465            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
466            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
467            "LOCAL_UDID", GetLocalUdid(),
468            "TO_CALL_PKG", RDB_NAME);
469    } else {
470        res = HiSysEventWrite(
471            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
472            DP_DATA_OPERATE_BEHAVIOR,
473            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
474            "ORG_PKG", ORGPKG_NAME,
475            "FUNC", "DeleteAccessControlProfile",
476            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_DELETE_ACL_PROFILE),
477            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
478            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
479            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
480            "LOCAL_UDID", GetLocalUdid(),
481            "TO_CALL_PKG", RDB_NAME,
482            "ERROR_CODE", errCode);
483    }
484    if (res != DP_SUCCESS) {
485        HILOGD("failed");
486    }
487    return;
488}
489
490void DpRadarHelper::ReportPutServiceProfile(int32_t errCode, const ServiceProfile& serviceProfile)
491{
492    int res = DP_SUCCESS;
493    int32_t stageRes = (errCode == DP_SUCCESS) ?
494        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
495    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
496        res = HiSysEventWrite(
497            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
498            DP_DATA_OPERATE_BEHAVIOR,
499            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
500            "ORG_PKG", ORGPKG_NAME,
501            "FUNC", "PutServiceProfile",
502            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_SERVICE_PROFILE),
503            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
504            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_IDLE),
505            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
506            "LOCAL_UDID", GetLocalUdid(),
507            "PEER_UDID", GetPeerUdid(serviceProfile.GetDeviceId()),
508            "TO_CALL_PKG", RDB_NAME,
509            "EXTRA_INFO", serviceProfile.dump());
510    } else {
511        res = HiSysEventWrite(
512            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
513            DP_DATA_OPERATE_BEHAVIOR,
514            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
515            "ORG_PKG", ORGPKG_NAME,
516            "FUNC", "PutServiceProfile",
517            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_SERVICE_PROFILE),
518            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
519            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
520            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
521            "LOCAL_UDID", GetLocalUdid(),
522            "PEER_UDID", GetPeerUdid(serviceProfile.GetDeviceId()),
523            "TO_CALL_PKG", RDB_NAME,
524            "ERROR_CODE", errCode,
525            "EXTRA_INFO", serviceProfile.dump());
526    }
527    if (res != DP_SUCCESS) {
528        HILOGD("failed");
529    }
530    return;
531}
532
533void DpRadarHelper::ReportPutServiceProfileBatch(int32_t errCode, const std::vector<ServiceProfile>& serviceProfiles)
534{
535    int res = DP_SUCCESS;
536    int32_t stageRes = (errCode == DP_SUCCESS) ?
537        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
538    std::string extraInfo = "";
539    size_t size = serviceProfiles.size() > 0 ? (serviceProfiles.size() - 1) : 0;
540    for (size_t i = 0; i < serviceProfiles.size(); i++) {
541        extraInfo += serviceProfiles[i].dump();
542        if (i != size) {
543            extraInfo += ",";
544        }
545    }
546    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
547        res = HiSysEventWrite(
548            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
549            DP_DATA_OPERATE_BEHAVIOR,
550            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
551            "ORG_PKG", ORGPKG_NAME,
552            "FUNC", "PutServiceProfileBatch",
553            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_SERVICE_PROFILE),
554            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
555            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_IDLE),
556            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
557            "LOCAL_UDID", GetLocalUdid(),
558            "PEER_UDID_LIST", GetPeerUdidList(serviceProfiles),
559            "TO_CALL_PKG", RDB_NAME,
560            "EXTRA_INFO", extraInfo);
561    } else {
562        res = HiSysEventWrite(
563            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
564            DP_DATA_OPERATE_BEHAVIOR,
565            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
566            "ORG_PKG", ORGPKG_NAME,
567            "FUNC", "PutServiceProfileBatch",
568            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_SERVICE_PROFILE),
569            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
570            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
571            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
572            "LOCAL_UDID", GetLocalUdid(),
573            "PEER_UDID_LIST", GetPeerUdidList(serviceProfiles),
574            "TO_CALL_PKG", RDB_NAME,
575            "ERROR_CODE", errCode,
576            "EXTRA_INFO", extraInfo);
577    }
578    if (res != DP_SUCCESS) {
579        HILOGD("failed");
580    }
581    return;
582}
583
584void DpRadarHelper::ReportPutCharProfile(int32_t errCode, const CharacteristicProfile& characteristicProfile)
585{
586    int res = DP_SUCCESS;
587    int32_t stageRes = (errCode == DP_SUCCESS) ?
588        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
589    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
590        res = HiSysEventWrite(
591            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
592            DP_DATA_OPERATE_BEHAVIOR,
593            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
594            "ORG_PKG", ORGPKG_NAME,
595            "FUNC", "PutCharacteristicProfile",
596            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_CHAR_PROFILE),
597            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
598            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_IDLE),
599            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
600            "LOCAL_UDID", GetLocalUdid(),
601            "PEER_UDID", GetPeerUdid(characteristicProfile.GetDeviceId()),
602            "TO_CALL_PKG", RDB_NAME,
603            "EXTRA_INFO", characteristicProfile.dump());
604    } else {
605        res = HiSysEventWrite(
606            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
607            DP_DATA_OPERATE_BEHAVIOR,
608            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
609            "ORG_PKG", ORGPKG_NAME,
610            "FUNC", "PutCharacteristicProfile",
611            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_CHAR_PROFILE),
612            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
613            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
614            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
615            "LOCAL_UDID", GetLocalUdid(),
616            "PEER_UDID", GetPeerUdid(characteristicProfile.GetDeviceId()),
617            "TO_CALL_PKG", RDB_NAME,
618            "ERROR_CODE", errCode,
619            "EXTRA_INFO", characteristicProfile.dump());
620    }
621    if (res != DP_SUCCESS) {
622        HILOGD("failed");
623    }
624    return;
625}
626
627void DpRadarHelper::ReportPutCharProfileBatch(int32_t errCode,
628    const std::vector<CharacteristicProfile>& characteristicProfiles)
629{
630    int res = DP_SUCCESS;
631    int32_t stageRes = (errCode == DP_SUCCESS) ?
632        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
633    std::string extraInfo = "";
634    size_t size = characteristicProfiles.size() > 0 ? (characteristicProfiles.size() - 1) : 0;
635    for (size_t i = 0; i < characteristicProfiles.size(); i++) {
636        extraInfo += characteristicProfiles[i].dump();
637        if (i != size) {
638            extraInfo += ",";
639        }
640    }
641    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
642        res = HiSysEventWrite(
643            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
644            DP_DATA_OPERATE_BEHAVIOR,
645            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
646            "ORG_PKG", ORGPKG_NAME,
647            "FUNC", "PutCharacteristicProfileBatch",
648            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_CHAR_PROFILE),
649            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
650            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_IDLE),
651            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
652            "LOCAL_UDID", GetLocalUdid(),
653            "PEER_UDID_LIST", GetPeerUdidList(characteristicProfiles),
654            "TO_CALL_PKG", RDB_NAME,
655            "EXTRA_INFO", extraInfo);
656    } else {
657        res = HiSysEventWrite(
658            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
659            DP_DATA_OPERATE_BEHAVIOR,
660            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
661            "ORG_PKG", ORGPKG_NAME,
662            "FUNC", "PutCharacteristicProfileBatch",
663            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_PUT_CHAR_PROFILE),
664            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
665            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
666            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
667            "LOCAL_UDID", GetLocalUdid(),
668            "PEER_UDID_LIST", GetPeerUdidList(characteristicProfiles),
669            "TO_CALL_PKG", RDB_NAME,
670            "ERROR_CODE", errCode,
671            "EXTRA_INFO", extraInfo);
672    }
673    if (res != DP_SUCCESS) {
674        HILOGD("failed");
675    }
676    return;
677}
678
679void DpRadarHelper::ReportGetDeviceProfile(int32_t errCode, const std::string& deviceId, DeviceProfile& deviceProfile)
680{
681    int res = DP_SUCCESS;
682    int32_t stageRes = (errCode == DP_SUCCESS) ?
683        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
684    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
685        res = HiSysEventWrite(
686            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
687            DP_DATA_OPERATE_BEHAVIOR,
688            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
689            "ORG_PKG", ORGPKG_NAME,
690            "FUNC", "GetDeviceProfile",
691            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_DEVICE_PROFILE),
692            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
693            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
694            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
695            "LOCAL_UDID", GetLocalUdid(),
696            "PEER_UDID", GetPeerUdid(deviceId),
697            "TO_CALL_PKG", RDB_NAME,
698            "EXTRA_INFO", deviceProfile.dump());
699    } else {
700        res = HiSysEventWrite(
701            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
702            DP_DATA_OPERATE_BEHAVIOR,
703            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
704            "ORG_PKG", ORGPKG_NAME,
705            "FUNC", "GetDeviceProfile",
706            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_DEVICE_PROFILE),
707            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
708            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
709            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
710            "LOCAL_UDID", GetLocalUdid(),
711            "PEER_UDID", GetPeerUdid(deviceId),
712            "TO_CALL_PKG", RDB_NAME,
713            "ERROR_CODE", errCode,
714            "EXTRA_INFO", deviceProfile.dump());
715    }
716    if (res != DP_SUCCESS) {
717        HILOGD("failed");
718    }
719    return;
720}
721
722void DpRadarHelper::ReportGetServiceProfile(int32_t errCode,
723    const std::string& deviceId, ServiceProfile& serviceProfile)
724{
725    int res = DP_SUCCESS;
726    int32_t stageRes = (errCode == DP_SUCCESS) ?
727        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
728    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
729        res = HiSysEventWrite(
730            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
731            DP_DATA_OPERATE_BEHAVIOR,
732            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
733            "ORG_PKG", ORGPKG_NAME,
734            "FUNC", "GetServiceProfile",
735            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SERVICE_PROFILE),
736            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
737            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
738            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
739            "LOCAL_UDID", GetLocalUdid(),
740            "PEER_UDID", GetPeerUdid(deviceId),
741            "TO_CALL_PKG", RDB_NAME,
742            "EXTRA_INFO", serviceProfile.dump());
743    } else {
744        res = HiSysEventWrite(
745            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
746            DP_DATA_OPERATE_BEHAVIOR,
747            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
748            "ORG_PKG", ORGPKG_NAME,
749            "FUNC", "GetServiceProfile",
750            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SERVICE_PROFILE),
751            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
752            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
753            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
754            "LOCAL_UDID", GetLocalUdid(),
755            "PEER_UDID", GetPeerUdid(deviceId),
756            "TO_CALL_PKG", RDB_NAME,
757            "ERROR_CODE", errCode,
758            "EXTRA_INFO", serviceProfile.dump());
759    }
760    if (res != DP_SUCCESS) {
761        HILOGD("failed");
762    }
763    return;
764}
765
766void DpRadarHelper::ReportGetCharProfile(int32_t errCode,
767    const std::string& deviceId, CharacteristicProfile& characteristicProfile)
768{
769    int res = DP_SUCCESS;
770    int32_t stageRes = (errCode == DP_SUCCESS) ?
771        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
772    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
773        res = HiSysEventWrite(
774            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
775            DP_DATA_OPERATE_BEHAVIOR,
776            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
777            "ORG_PKG", ORGPKG_NAME,
778            "FUNC", "GetCharacteristicProfile",
779            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_CHAR_PROFILE),
780            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
781            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
782            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
783            "LOCAL_UDID", GetLocalUdid(),
784            "PEER_UDID", GetPeerUdid(deviceId),
785            "TO_CALL_PKG", RDB_NAME,
786            "EXTRA_INFO", characteristicProfile.dump());
787    } else {
788        res = HiSysEventWrite(
789            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
790            DP_DATA_OPERATE_BEHAVIOR,
791            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
792            "ORG_PKG", ORGPKG_NAME,
793            "FUNC", "GetCharacteristicProfile",
794            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_CHAR_PROFILE),
795            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
796            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
797            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
798            "LOCAL_UDID", GetLocalUdid(),
799            "PEER_UDID", GetPeerUdid(deviceId),
800            "TO_CALL_PKG", RDB_NAME,
801            "ERROR_CODE", errCode,
802            "EXTRA_INFO", characteristicProfile.dump());
803    }
804    if (res != DP_SUCCESS) {
805        HILOGD("failed");
806    }
807    return;
808}
809
810void DpRadarHelper::ReportDeleteServiceProfile(int32_t errCode, const std::string& deviceId)
811{
812    int res = DP_SUCCESS;
813    int32_t stageRes = (errCode == DP_SUCCESS) ?
814        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
815    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
816        res = HiSysEventWrite(
817            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
818            DP_DATA_OPERATE_BEHAVIOR,
819            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
820            "ORG_PKG", ORGPKG_NAME,
821            "FUNC", "DeleteServiceProfile",
822            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_DELETE_SERVICE_PROFILE),
823            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
824            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_IDLE),
825            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
826            "LOCAL_UDID", GetLocalUdid(),
827            "PEER_UDID", GetPeerUdid(deviceId),
828            "TO_CALL_PKG", RDB_NAME);
829    } else {
830        res = HiSysEventWrite(
831            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
832            DP_DATA_OPERATE_BEHAVIOR,
833            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
834            "ORG_PKG", ORGPKG_NAME,
835            "FUNC", "DeleteServiceProfile",
836            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_DELETE_SERVICE_PROFILE),
837            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
838            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
839            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
840            "LOCAL_UDID", GetLocalUdid(),
841            "PEER_UDID", GetPeerUdid(deviceId),
842            "TO_CALL_PKG", RDB_NAME,
843            "ERROR_CODE", errCode);
844    }
845    if (res != DP_SUCCESS) {
846        HILOGD("failed");
847    }
848    return;
849}
850
851void DpRadarHelper::ReportDeleteCharProfile(int32_t errCode, const std::string& deviceId)
852{
853    int res = DP_SUCCESS;
854    int32_t stageRes = (errCode == DP_SUCCESS) ?
855        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
856    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
857        res = HiSysEventWrite(
858            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
859            DP_DATA_OPERATE_BEHAVIOR,
860            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
861            "ORG_PKG", ORGPKG_NAME,
862            "FUNC", "DeleteCharacteristicProfile",
863            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_DELETE_CHAR_PROFILE),
864            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
865            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_IDLE),
866            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
867            "LOCAL_UDID", GetLocalUdid(),
868            "PEER_UDID", GetPeerUdid(deviceId),
869            "TO_CALL_PKG", RDB_NAME);
870    } else {
871        res = HiSysEventWrite(
872            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
873            DP_DATA_OPERATE_BEHAVIOR,
874            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
875            "ORG_PKG", ORGPKG_NAME,
876            "FUNC", "DeleteCharacteristicProfile",
877            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_DELETE_CHAR_PROFILE),
878            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
879            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
880            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
881            "LOCAL_UDID", GetLocalUdid(),
882            "PEER_UDID", GetPeerUdid(deviceId),
883            "TO_CALL_PKG", RDB_NAME,
884            "ERROR_CODE", errCode);
885    }
886    if (res != DP_SUCCESS) {
887        HILOGD("failed");
888    }
889    return;
890}
891
892void DpRadarHelper::ReportSubscribeDeviceProfile(int32_t errCode, const SubscribeInfo& subscribeInfo)
893{
894    int res = DP_SUCCESS;
895    int32_t stageRes = (errCode == DP_SUCCESS) ?
896        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
897    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
898        res = HiSysEventWrite(
899            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
900            DP_DATA_OPERATE_BEHAVIOR,
901            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
902            "ORG_PKG", ORGPKG_NAME,
903            "FUNC", "SubscribeDeviceProfile",
904            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SUBSCRIBE_DEVICE_PROFILE),
905            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
906            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
907            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
908            "LOCAL_UDID", GetLocalUdid(),
909            "TO_CALL_PKG", RDB_NAME,
910            "EXTRA_INFO", subscribeInfo.dump());
911    } else {
912        res = HiSysEventWrite(
913            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
914            DP_DATA_OPERATE_BEHAVIOR,
915            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
916            "ORG_PKG", ORGPKG_NAME,
917            "FUNC", "SubscribeDeviceProfile",
918            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SUBSCRIBE_DEVICE_PROFILE),
919            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
920            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
921            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
922            "LOCAL_UDID", GetLocalUdid(),
923            "TO_CALL_PKG", RDB_NAME,
924            "ERROR_CODE", errCode,
925            "EXTRA_INFO", subscribeInfo.dump());
926    }
927    if (res != DP_SUCCESS) {
928        HILOGD("failed");
929    }
930    return;
931}
932
933void DpRadarHelper::ReportUnSubscribeDeviceProfile(int32_t errCode, const SubscribeInfo& subscribeInfo)
934{
935    int res = DP_SUCCESS;
936    int32_t stageRes = (errCode == DP_SUCCESS) ?
937        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
938    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
939        res = HiSysEventWrite(
940            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
941            DP_DATA_OPERATE_BEHAVIOR,
942            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
943            "ORG_PKG", ORGPKG_NAME,
944            "FUNC", "UnSubscribeDeviceProfile",
945            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_UNSUNBSCRIBE_DEVICE_PROFILE),
946            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
947            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
948            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
949            "LOCAL_UDID", GetLocalUdid(),
950            "TO_CALL_PKG", RDB_NAME,
951            "EXTRA_INFO", subscribeInfo.dump());
952    } else {
953        res = HiSysEventWrite(
954            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
955            DP_DATA_OPERATE_BEHAVIOR,
956            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
957            "ORG_PKG", ORGPKG_NAME,
958            "FUNC", "UnSubscribeDeviceProfile",
959            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_UNSUNBSCRIBE_DEVICE_PROFILE),
960            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
961            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
962            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
963            "LOCAL_UDID", GetLocalUdid(),
964            "TO_CALL_PKG", RDB_NAME,
965            "ERROR_CODE", errCode,
966            "EXTRA_INFO", subscribeInfo.dump());
967    }
968    if (res != DP_SUCCESS) {
969        HILOGD("failed");
970    }
971    return;
972}
973
974void DpRadarHelper::ReportSyncDeviceProfile(int32_t errCode)
975{
976    int res = DP_SUCCESS;
977    int32_t stageRes = (errCode == DP_SUCCESS) ?
978        static_cast<int32_t>(StageRes::STAGE_SUCC) : static_cast<int32_t>(StageRes::STAGE_FAIL);
979    if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
980        res = HiSysEventWrite(
981            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
982            DP_DATA_OPERATE_BEHAVIOR,
983            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
984            "ORG_PKG", ORGPKG_NAME,
985            "FUNC", "SyncDeviceProfile",
986            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SYNC_DEVICE_PROFILE),
987            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
988            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
989            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
990            "HOST_PKG", RDB_NAME,
991            "LOCAL_UDID", GetLocalUdid(),
992            "TO_CALL_PKG", RDB_NAME);
993    } else {
994        res = HiSysEventWrite(
995            OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
996            DP_DATA_OPERATE_BEHAVIOR,
997            HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
998            "ORG_PKG", ORGPKG_NAME,
999            "FUNC", "SyncDeviceProfile",
1000            "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SYNC_DEVICE_PROFILE),
1001            "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_PROFILE_OPERATE),
1002            "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_FAIL),
1003            "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
1004            "HOST_PKG", RDB_NAME,
1005            "LOCAL_UDID", GetLocalUdid(),
1006            "TO_CALL_PKG", RDB_NAME,
1007            "ERROR_CODE", errCode);
1008    }
1009    if (res != DP_SUCCESS) {
1010        HILOGD("failed");
1011    }
1012    return;
1013}
1014
1015void DpRadarHelper::ReportNotifyProfileChange(int32_t code)
1016{
1017    std::string funcName = "";
1018    switch (code) {
1019        case ProfileType::DEVICE_PROFILE * ChangeType::ADD:
1020            funcName = "NotifyDeviceProfileAdd";
1021            break;
1022        case ProfileType::DEVICE_PROFILE * ChangeType::UPDATE:
1023            funcName = "NotifyDeviceProfileUpdate";
1024            break;
1025        case ProfileType::DEVICE_PROFILE * ChangeType::DELETE:
1026            funcName = "NotifyDeviceProfileDelete";
1027            break;
1028        case ProfileType::SERVICE_PROFILE * ChangeType::ADD:
1029            funcName = "NotifyServiceProfileAdd";
1030            break;
1031        case ProfileType::SERVICE_PROFILE * ChangeType::UPDATE:
1032            funcName = "NotifyServiceProfileUpdate";
1033            break;
1034        case ProfileType::SERVICE_PROFILE * ChangeType::DELETE:
1035            funcName = "NotifyServiceProfileDelete";
1036            break;
1037        case ProfileType::CHAR_PROFILE * ChangeType::ADD:
1038            funcName = "NotifyCharProfileAdd";
1039            break;
1040        case ProfileType::CHAR_PROFILE * ChangeType::UPDATE:
1041            funcName = "NotifyCharProfileUpdate";
1042            break;
1043        case ProfileType::CHAR_PROFILE * ChangeType::DELETE:
1044            funcName = "NotifyCharProfileDelete";
1045            break;
1046    }
1047    int res = HiSysEventWrite(
1048        OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
1049        DP_DATA_OPERATE_BEHAVIOR,
1050        HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
1051        "ORG_PKG", ORGPKG_NAME,
1052        "FUNC", funcName,
1053        "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SYNC_DEVICE_PROFILE),
1054        "BIZ_STAGE", static_cast<int32_t>(ProfileOperateStage::DP_NOTIFY_PROFILE_CHANGE),
1055        "STAGE_RES", static_cast<int32_t>(StageRes::STAGE_SUCC),
1056        "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
1057        "HOST_PKG", RDB_NAME,
1058        "LOCAL_UDID", GetLocalUdid(),
1059        "TO_CALL_PKG", RDB_NAME);
1060    if (res != DP_SUCCESS) {
1061        HILOGD("failed");
1062    }
1063    return;
1064}
1065
1066std::string DpRadarHelper::GetPeerUdidList(const std::vector<TrustDeviceProfile>& trustDeviceProfiles)
1067{
1068    if (trustDeviceProfiles.size() == 0) {
1069        return "";
1070    }
1071    cJSON* deviceInfoJson = cJSON_CreateObject();
1072    if (deviceInfoJson == nullptr) {
1073        return "";
1074    }
1075    cJSON* peerUdidList = cJSON_CreateArray();
1076    if (peerUdidList == nullptr) {
1077        cJSON_Delete(deviceInfoJson);
1078        return "";
1079    }
1080    if (!cJSON_AddItemToObject(deviceInfoJson, "PEER_UDID_LIST", peerUdidList)) {
1081        cJSON_Delete(peerUdidList);
1082        cJSON_Delete(deviceInfoJson);
1083        return "";
1084    }
1085    for (size_t i = 0; i < trustDeviceProfiles.size(); i++) {
1086        std::string udid = GetPeerUdid(trustDeviceProfiles[i].GetDeviceId());
1087        cJSON* object = cJSON_CreateString(udid.c_str());
1088        if (object == nullptr) {
1089            cJSON_Delete(deviceInfoJson);
1090            return "";
1091        }
1092        if (!cJSON_AddItemToArray(peerUdidList, object)) {
1093            cJSON_Delete(object);
1094            cJSON_Delete(deviceInfoJson);
1095            return "";
1096        }
1097    }
1098    char *peerDevUdidStr = cJSON_PrintUnformatted(deviceInfoJson);
1099    if (peerDevUdidStr == nullptr) {
1100        cJSON_Delete(deviceInfoJson);
1101        return "";
1102    }
1103    std::string peerUdidStr = std::string(peerDevUdidStr);
1104    cJSON_Delete(deviceInfoJson);
1105    cJSON_free(peerDevUdidStr);
1106    return peerUdidStr;
1107}
1108
1109std::string DpRadarHelper::GetPeerUdidList(const std::vector<AccessControlProfile>& accessControlProfiles)
1110{
1111    if (accessControlProfiles.size() == 0) {
1112        return "";
1113    }
1114    cJSON* deviceInfoJson = cJSON_CreateObject();
1115    if (deviceInfoJson == nullptr) {
1116        return "";
1117    }
1118    cJSON* peerUdidList = cJSON_CreateArray();
1119    if (peerUdidList == nullptr) {
1120        cJSON_Delete(deviceInfoJson);
1121        return "";
1122    }
1123    if (!cJSON_AddItemToObject(deviceInfoJson, "PEER_UDID_LIST", peerUdidList)) {
1124        cJSON_Delete(peerUdidList);
1125        cJSON_Delete(deviceInfoJson);
1126        return "";
1127    }
1128    for (size_t i = 0; i < accessControlProfiles.size(); i++) {
1129        std::string udid = GetPeerUdid(accessControlProfiles[i].GetAccessee().GetAccesseeDeviceId());
1130        cJSON* object = cJSON_CreateString(udid.c_str());
1131        if (object == nullptr) {
1132            cJSON_Delete(deviceInfoJson);
1133            return "";
1134        }
1135        if (!cJSON_AddItemToArray(peerUdidList, object)) {
1136            cJSON_Delete(object);
1137            cJSON_Delete(deviceInfoJson);
1138            return "";
1139        }
1140    }
1141    char *peerDevUdidStr = cJSON_PrintUnformatted(deviceInfoJson);
1142    if (peerDevUdidStr == nullptr) {
1143        cJSON_Delete(deviceInfoJson);
1144        return "";
1145    }
1146    std::string peerUdidStr = std::string(peerDevUdidStr);
1147    cJSON_Delete(deviceInfoJson);
1148    cJSON_free(peerDevUdidStr);
1149    return peerUdidStr;
1150}
1151
1152std::string DpRadarHelper::GetPeerUdidList(const std::vector<ServiceProfile>& serviceProfiles)
1153{
1154    if (serviceProfiles.size() == 0) {
1155        return "";
1156    }
1157    cJSON* deviceInfoJson = cJSON_CreateObject();
1158    if (deviceInfoJson == nullptr) {
1159        return "";
1160    }
1161    cJSON* peerUdidList = cJSON_CreateArray();
1162    if (peerUdidList == nullptr) {
1163        cJSON_Delete(deviceInfoJson);
1164        return "";
1165    }
1166    if (!cJSON_AddItemToObject(deviceInfoJson, "PEER_UDID_LIST", peerUdidList)) {
1167        cJSON_Delete(peerUdidList);
1168        cJSON_Delete(deviceInfoJson);
1169        return "";
1170    }
1171    for (size_t i = 0; i < serviceProfiles.size(); i++) {
1172        std::string udid = GetPeerUdid(serviceProfiles[i].GetDeviceId());
1173        cJSON* object = cJSON_CreateString(udid.c_str());
1174        if (object == nullptr) {
1175            cJSON_Delete(deviceInfoJson);
1176            return "";
1177        }
1178        if (!cJSON_AddItemToArray(peerUdidList, object)) {
1179            cJSON_Delete(object);
1180            cJSON_Delete(deviceInfoJson);
1181            return "";
1182        }
1183    }
1184    char *peerDevUdidStr = cJSON_PrintUnformatted(deviceInfoJson);
1185    if (peerDevUdidStr == nullptr) {
1186        cJSON_Delete(deviceInfoJson);
1187        return "";
1188    }
1189    std::string peerUdidStr = std::string(peerDevUdidStr);
1190    cJSON_Delete(deviceInfoJson);
1191    cJSON_free(peerDevUdidStr);
1192    return peerUdidStr;
1193}
1194
1195std::string DpRadarHelper::GetPeerUdidList(const std::vector<CharacteristicProfile>& characteristicProfiles)
1196{
1197    if (characteristicProfiles.size() == 0) {
1198        return "";
1199    }
1200    cJSON* deviceInfoJson = cJSON_CreateObject();
1201    if (deviceInfoJson == nullptr) {
1202        return "";
1203    }
1204    cJSON* peerUdidList = cJSON_CreateArray();
1205    if (peerUdidList == nullptr) {
1206        cJSON_Delete(deviceInfoJson);
1207        return "";
1208    }
1209    if (!cJSON_AddItemToObject(deviceInfoJson, "PEER_UDID_LIST", peerUdidList)) {
1210        cJSON_Delete(peerUdidList);
1211        cJSON_Delete(deviceInfoJson);
1212        return "";
1213    }
1214    for (size_t i = 0; i < characteristicProfiles.size(); i++) {
1215        std::string udid = GetPeerUdid(characteristicProfiles[i].GetDeviceId());
1216        cJSON* object = cJSON_CreateString(udid.c_str());
1217        if (object == nullptr) {
1218            cJSON_Delete(deviceInfoJson);
1219            return "";
1220        }
1221        if (!cJSON_AddItemToArray(peerUdidList, object)) {
1222            cJSON_Delete(object);
1223            cJSON_Delete(deviceInfoJson);
1224            return "";
1225        }
1226    }
1227    char *peerDevUdidStr = cJSON_PrintUnformatted(deviceInfoJson);
1228    if (peerDevUdidStr == nullptr) {
1229        cJSON_Delete(deviceInfoJson);
1230        return "";
1231    }
1232    std::string peerUdidStr = std::string(peerDevUdidStr);
1233    cJSON_Delete(deviceInfoJson);
1234    cJSON_free(peerDevUdidStr);
1235    return peerUdidStr;
1236}
1237
1238std::string DpRadarHelper::GetAnonyUdid(std::string udid)
1239{
1240    if (udid.empty() || udid.length() < INVALID_UDID_LENGTH) {
1241        return "";
1242    }
1243    return udid.substr(0, SUBSTR_UDID_LENGTH) + "**" + udid.substr(udid.length() - SUBSTR_UDID_LENGTH);
1244}
1245
1246std::string DpRadarHelper::GetLocalUdid()
1247{
1248    return GetAnonyUdid(ContentSensorManagerUtils::GetInstance().ObtainLocalUdid());
1249}
1250
1251std::string DpRadarHelper::GetPeerUdid(std::string udid)
1252{
1253    std::string localUdid = ContentSensorManagerUtils::GetInstance().ObtainLocalUdid();
1254    return udid.compare(localUdid) == 0 ? "" : GetAnonyUdid(udid);
1255}
1256
1257bool DpRadarHelper::IsDeviceProfileInit()
1258{
1259    return isInit_;
1260}
1261
1262void DpRadarHelper::SetDeviceProfileInit(bool isInit)
1263{
1264    isInit_ = isInit;
1265}
1266} // namespace DistributedDeviceProfile
1267} // namespace OHOS
1268