mergeLocalCloudControlConfig method
dynamic
mergeLocalCloudControlConfig(
- Map<String, dynamic> localCloudControlConfigMap
)
Implementation
mergeLocalCloudControlConfig(
Map<String, dynamic> localCloudControlConfigMap,
) {
try {
final classId = getConfig().classId;
final userId = getConfig().userId;
final classcloudControlConfig = localCloudControlConfigMap[classId];
final userCloudControlConfig = localCloudControlConfigMap[userId];
final globalCloudControlConfig = localCloudControlConfigMap["global"];
// 优先用user维度,其次class维度,最后才是全局维度
final basicConfig = getConfig().basicConfig;
if (basicConfig != null) {
final basicConfigCopy = basicConfig.copy();
if (globalCloudControlConfig != null) {
basicConfigCopy.mergeFromJson(globalCloudControlConfig);
}
if (classcloudControlConfig != null) {
basicConfigCopy.mergeFromJson(classcloudControlConfig);
}
if (userCloudControlConfig != null) {
basicConfigCopy.mergeFromJson(userCloudControlConfig);
}
TCICLog.info(
'basicConfigCopy: ${basicConfigCopy.toJson()}',
actionModule: ActionModule.tcicController.name,
actionName: ActionName.mergeLocalCloudControlConfig.name,
);
if (!basicConfig.isEqual(basicConfigCopy)) {
final config = getConfig();
config.basicConfig = basicConfigCopy;
updateConfig(config);
} else {
TCICLog.info(
'basicConfig is equal to basicConfigCopy',
actionModule: ActionModule.tcicController.name,
actionName: ActionName.mergeLocalCloudControlConfig.name,
);
}
}
} catch (e) {
TCICLog.error(
'mergeLocalCloudControlConfig failed: $e',
actionModule: ActionModule.tcicController.name,
actionName: ActionName.mergeLocalCloudControlConfig.name,
);
}
}