123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- //
- // ProjectInfo_Server.m
- // UUTUtils
- //
- // Created by zhuge on 2017/12/26.
- // Copyright © 2017年 zhuge. All rights reserved.
- //
- #import "ProjectInfo_Server.h"
- #import "DataUtils.h"
- #import "ZGJsonUtils.h"
- #import "ProjectInfo_Server_AdId.h"
- #import "ProjectInfoSave.h"
- #import "AppDelegate.h"
- #define key_ad @"ad"
- #define key_ad_global @"global"
- #define key_ad_interstitials @"interstitials"
- #define key_ad_videos @"videos"
- #define key_ad_banners @"banners"
- #define key_parameters @"parameters"
- @implementation ProjectInfo_Server
- + (ProjectInfo_Server *)create:(NSString *)package {
- ProjectInfo_Server *server = [[ProjectInfo_Server alloc] init];
- [server init:package];
- return server;
- }
- - (void)init:(NSString *)package {
- self.package = package;
- self.isLoadingData = YES;
- self.isDataLoadFinished = NO;
- }
- - (void)initWithDic:(NSDictionary *)dicServer {
- // dicServer = nil;
- [[ProjectInfoSave share] clearAdIdIndex];
- self.sdkInfo = [NSString stringWithFormat:@"当前在线参数只支持%d.*.*版本的BullgodSDK",SdkVersion];
- if(SdkVersion>=5){
- self.sdkBannerInfo = [NSString stringWithFormat:@"Banner必须分层!选择不自动刷新!"];
- }else{
- self.sdkBannerInfo = [NSString stringWithFormat:@""];
- }
- if (dicServer == nil) {
-
- NSString* adJsonPath = [NSString stringWithFormat:@"%@/%@/%@", [DataUtils getRootPath], _package, @"ad.json"];
- NSString* adJson = [NSString stringWithContentsOfFile:adJsonPath encoding:NSUTF8StringEncoding error:nil];
- NSData *data = [adJson dataUsingEncoding:NSUTF8StringEncoding];
-
- if(data == nil){
- [self initForNewProject];
- return;
- }
-
- NSMutableDictionary *md = [NSMutableDictionary dictionaryWithCapacity:0];
- dicServer = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
- if(dicServer == nil){
- [self initForNewProject];
- return;
- }
- self.loadingInfo = [NSString stringWithFormat:@"服务器无数据,使用本地数据!"];
- }else{
- self.loadingInfo = [NSString stringWithFormat:@"服务器数据加载成功!"];
- }
- NSString *strParameters = dicServer[key_parameters];
- NSDictionary *dicParameters = [ZGJsonUtils stringToObject:strParameters];
- self.update = [[ProjectInfo_Server_GameUpdate alloc] initWithDic:dicParameters];
- self.gameConfig = [[ProjectInfo_Server_GameConfig alloc] initWithDic:dicParameters];
- self.sdkKeys = [[ProjectInfo_Server_SDKKeys alloc] initWithDic:dicParameters];
-
- NSDictionary *dic = dicServer[key_ad];
- self.isDataLoadFinished = YES;
- self.isLoadingData = NO;
-
- self.global = [ProjectInfo_Server_AdConditionGlobal create:dic[key_ad_global]];
-
- // 初始化各种Platform
- NSMutableArray *maTemp = [NSMutableArray arrayWithCapacity:0];
- NSArray* adPlatformArray = dic[@"ids"][@"app_ids"];
- for (id object in adPlatformArray) {
- NSNumber *value = object[@"p"];
- ProjectInfo_Server_AdPlatform* adPlatform = [ProjectInfo_Server_AdPlatform create:[value integerValue] adPlatformId:object[@"aid"]];
- [maTemp addObject:adPlatform];
- }
- self.xibAdPlatformArray = [NSMutableArray arrayWithArray:maTemp];
- // 初始化各种adId
- maTemp = [NSMutableArray arrayWithCapacity:0];
- NSArray* adIdArray = dic[@"ids"][@"sdk_ids"];
- for (id object in adIdArray) {
- NSNumber* value = object[@"t"];
- ProjectInfo_Server_AdId* adId = [ProjectInfo_Server_AdId create:[value integerValue] adId:object[@"id"] index:object[@"k"] worthMul:object[@"wm"]];
- [maTemp addObject:adId];
- }
- self.xibAdIdArray = [NSMutableArray arrayWithArray:maTemp];
-
- // 初始化各种page
- self.maPageArr = [NSMutableArray arrayWithCapacity:0];
- self.maPageArr = [@[[ProjectInfo_Server_AdConfigPageArray create:dic[key_ad_interstitials] title:key_ad_interstitials],
- [ProjectInfo_Server_AdConfigPageArray create:dic[key_ad_videos] title:key_ad_videos],
- [ProjectInfo_Server_AdConfigPageArray create:dic[key_ad_banners] title:key_ad_banners]] mutableCopy];
-
-
- // self.xibAdPlatformArray = [NSMutableArray arrayWithObjects:[ProjectInfo_Server_AdPlatform create:@"新增类型" adPlatformId:@"0"], nil];
- }
- - (id)initForNewProject {
- self.loadingInfo = [NSString stringWithFormat:@"服务器和本地无数据!"];
- self.update = [[ProjectInfo_Server_GameUpdate alloc] init];
- self.gameConfig = [[ProjectInfo_Server_GameConfig alloc] init];
- self.sdkKeys = [[ProjectInfo_Server_SDKKeys alloc] init];
- self.global = [[ProjectInfo_Server_AdConditionGlobal alloc] init];
- self.isDataLoadFinished = YES;
- self.isLoadingData = NO;
- self.maPageArr = [@[[ProjectInfo_Server_AdConfigPageArray create:@{} title:key_ad_interstitials],
- [ProjectInfo_Server_AdConfigPageArray create:@{} title:key_ad_videos],
- [ProjectInfo_Server_AdConfigPageArray create:@{} title:key_ad_banners]] mutableCopy];
-
- // 初始化各种Platform
- self.xibAdPlatformArray = [NSMutableArray arrayWithCapacity:0];
- // 初始化各种adId
- self.xibAdIdArray = [NSMutableArray arrayWithCapacity:0];
- // self.xibAdPlatformArray = [NSMutableArray arrayWithObjects:[ProjectInfo_Server_AdPlatform create:@"新增类型" adPlatformId:@"0"], nil];
- return self;
- }
- - (NSDictionary *)jsonDic {
- [[ProjectInfoSave share] clearAdIdIndex];
- NSMutableDictionary *mdParameters = [NSMutableDictionary dictionaryWithCapacity:0];
- NSDictionary *updateDic = [self.update jsonDic];
- [mdParameters addEntriesFromDictionary:updateDic];
- if(updateDic == nil){
- return nil;
- }
- [mdParameters addEntriesFromDictionary:[self.gameConfig jsonDic]];
- [mdParameters addEntriesFromDictionary:[self.sdkKeys jsonDic]];
-
- //全局配置
- NSMutableDictionary *mdAd = [NSMutableDictionary dictionaryWithCapacity:0];
- mdAd[key_ad_global] = [self.global jsonDic];
- if(mdAd[key_ad_global] == nil){
- return nil;
- }
- NSMutableDictionary *idsDictionary = [NSMutableDictionary dictionaryWithCapacity:0];
- NSMutableArray* appIdsArray = [[NSMutableArray alloc] init];
- //Platform
- for (ProjectInfo_Server_AdPlatform* adPlatform in _xibAdPlatformArray ) {
- [appIdsArray addObject: [adPlatform jsonDic]];
- }
- idsDictionary[@"app_ids"] = appIdsArray;
- //adId
- NSMutableArray* sdkIdsArray = [[NSMutableArray alloc] init];
- for (ProjectInfo_Server_AdId* adId in _xibAdIdArray ) {
- [sdkIdsArray addObject: [adId jsonDic]];
- }
- idsDictionary[@"sdk_ids"] = sdkIdsArray;
- mdAd[@"ids"] = idsDictionary;
-
- //版位
- for (ProjectInfo_Server_AdConfigPageArray *arr in self.maPageArr) {
- NSDictionary *dic = [arr jsonDic];
- if(dic == nil){
- return nil;
- }
- mdAd[arr.title] = dic;
- }
-
- NSDictionary *md = @{
- key_parameters: [ZGJsonUtils dictionaryToString:mdParameters],
- key_ad : mdAd,
- };
- NSLog(@"%@", md);
- return md;
- }
- @end
|