mergeLocalCloudControlConfig method

dynamic mergeLocalCloudControlConfig(
  1. 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);
  }
}