From 2ec741d7515519ad1ceb60b614291050dbe023ea Mon Sep 17 00:00:00 2001 From: "@shi-xiaoxiao-iris" Date: Fri, 8 Jul 2022 18:34:06 +0800 Subject: [PATCH] =?UTF-8?q?Codedex=20=E9=87=8D=E5=A4=8D=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: @shi-xiaoxiao-iris --- .../dependency/hichain/hichain_connector.h | 2 + .../dependency/hichain/hichain_connector.cpp | 58 +++++++++---------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/services/implementation/include/dependency/hichain/hichain_connector.h b/services/implementation/include/dependency/hichain/hichain_connector.h index d3d9213f..734d580b 100644 --- a/services/implementation/include/dependency/hichain/hichain_connector.h +++ b/services/implementation/include/dependency/hichain/hichain_connector.h @@ -202,6 +202,8 @@ private: int32_t GetStrFieldByType(const std::string &reqJsonStr, const std::string &outField, int32_t type); int32_t GetNumsFieldByType(const std::string &reqJsonStr, int32_t &outField, int32_t type); int32_t GetGroupId(const std::string &userId, const int32_t groupType, std::string &groupId); + int32_t ParseRemoteCredential(const int32_t groupType, const std::string &userId, + const nlohmann::json &jsonDeviceList, std::string ¶ms, int32_t &osAccountUserId); private: const DeviceGroupManager *deviceGroupManager_ = nullptr; DeviceAuthCallback deviceAuthCallback_; diff --git a/services/implementation/src/dependency/hichain/hichain_connector.cpp b/services/implementation/src/dependency/hichain/hichain_connector.cpp index 1a68f58b..29d2a9be 100644 --- a/services/implementation/src/dependency/hichain/hichain_connector.cpp +++ b/services/implementation/src/dependency/hichain/hichain_connector.cpp @@ -775,13 +775,9 @@ int32_t HiChainConnector::GetGroupId(const std::string &userId, const int32_t gr return ERR_DM_FAILED; } -int32_t HiChainConnector::addMultiMembers(const int32_t groupType, const std::string &userId, - const nlohmann::json &jsonDeviceList) +int32_t HiChainConnector::ParseRemoteCredential(const int32_t groupType, const std::string &userId, + const nlohmann::json &jsonDeviceList, std::string ¶ms, int32_t &osAccountUserId) { - if (deviceGroupManager_ == nullptr) { - LOGE("HiChainConnector::deviceGroupManager_ is nullptr."); - return ERR_DM_INPUT_PARAMETER_EMPTY; - } if (userId.empty() || !jsonDeviceList.contains(FIELD_DEVICE_LIST)) { LOGE("userId or deviceList is empty"); return ERR_DM_INPUT_PARAMETER_EMPTY; @@ -791,19 +787,35 @@ int32_t HiChainConnector::addMultiMembers(const int32_t groupType, const std::st LOGE("failed to get groupid"); return ERR_DM_FAILED; } - std::string appId = DM_PKG_NAME; nlohmann::json jsonObj; jsonObj[FIELD_GROUP_ID] = groupId; jsonObj[FIELD_GROUP_TYPE] = groupType; jsonObj[FIELD_DEVICE_LIST] = jsonDeviceList[FIELD_DEVICE_LIST]; - std::string addParams = jsonObj.dump(); - int32_t osAccountUserId = MultipleUserConnector::GetCurrentAccountUserID(); + params = jsonObj.dump(); + osAccountUserId = MultipleUserConnector::GetCurrentAccountUserID(); if (osAccountUserId < 0) { LOGE("get current process account user id failed"); return ERR_DM_FAILED; } + return DM_OK; +} + +int32_t HiChainConnector::addMultiMembers(const int32_t groupType, const std::string &userId, + const nlohmann::json &jsonDeviceList) +{ + if (deviceGroupManager_ == nullptr) { + LOGE("HiChainConnector::deviceGroupManager_ is nullptr."); + return ERR_DM_INPUT_PARAMETER_EMPTY; + } + std::string addParams; + int32_t osAccountUserId = 0; + if (ParseRemoteCredential(groupType, userId, jsonDeviceList, addParams, osAccountUserId) != DM_OK) { + LOGE("addMultiMembers ParseRemoteCredential failed!"); + return ERR_DM_FAILED; + } + int32_t ret = deviceGroupManager_->addMultiMembersToGroup(osAccountUserId, - appId.c_str(), addParams.c_str()); + DM_PKG_NAME.c_str(), addParams.c_str()); if (ret!= DM_OK) { LOGE("HiChainConnector::addMultiMemberstoGroup failure! ret=%d", ret); return ret; @@ -818,28 +830,16 @@ int32_t HiChainConnector::deleteMultiMembers(const int32_t groupType, const std: LOGE("HiChainConnector::deviceGroupManager_ is nullptr."); return ERR_DM_INPUT_PARAMETER_EMPTY; } - if (userId.empty() || !jsonDeviceList.contains(FIELD_DEVICE_LIST)) { - LOGE("jsonDeviceList userId or deleteInfo string is empty"); - return ERR_DM_INPUT_PARAMETER_EMPTY; - } - std::string groupId; - if (GetGroupId(userId, groupType, groupId) != DM_OK) { - LOGE("failed to get groupid"); - return ERR_DM_FAILED; - } - std::string appId = DM_PKG_NAME; - nlohmann::json jsonObj; - jsonObj[FIELD_GROUP_ID] = groupId; - jsonObj[FIELD_GROUP_TYPE] = groupType; - jsonObj[FIELD_DEVICE_LIST] = jsonDeviceList[FIELD_DEVICE_LIST]; - std::string deleteParams = jsonObj.dump(); - int32_t osAccountUserId = MultipleUserConnector::GetCurrentAccountUserID(); - if (osAccountUserId < 0) { - LOGE("get current process account user id failed"); + + std::string deleteParams; + int32_t osAccountUserId = 0; + if (ParseRemoteCredential(groupType, userId, jsonDeviceList, deleteParams, osAccountUserId) != DM_OK) { + LOGE("deleteMultiMembers ParseRemoteCredential failed!"); return ERR_DM_FAILED; } + int32_t ret = deviceGroupManager_->delMultiMembersFromGroup(osAccountUserId, - appId.c_str(), deleteParams.c_str()); + DM_PKG_NAME.c_str(), deleteParams.c_str()); if (ret != DM_OK) { LOGE("HiChainConnector::deleteMultiMembers failure!, ret=%d", ret); return ret;