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);
}
}