ProjectInfo_Server.m 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. //
  2. // ProjectInfo_Server.m
  3. // UUTUtils
  4. //
  5. // Created by zhuge on 2017/12/26.
  6. // Copyright © 2017年 zhuge. All rights reserved.
  7. //
  8. #import "ProjectInfo_Server.h"
  9. #import "DataUtils.h"
  10. #import "ZGJsonUtils.h"
  11. #import "ProjectInfo_Server_AdId.h"
  12. #import "ProjectInfoSave.h"
  13. #import "AppDelegate.h"
  14. #define key_ad @"ad"
  15. #define key_ad_global @"global"
  16. #define key_ad_interstitials @"interstitials"
  17. #define key_ad_videos @"videos"
  18. #define key_ad_banners @"banners"
  19. #define key_parameters @"parameters"
  20. @implementation ProjectInfo_Server
  21. + (ProjectInfo_Server *)create:(NSString *)package {
  22. ProjectInfo_Server *server = [[ProjectInfo_Server alloc] init];
  23. [server init:package];
  24. return server;
  25. }
  26. - (void)init:(NSString *)package {
  27. self.package = package;
  28. self.isLoadingData = YES;
  29. self.isDataLoadFinished = NO;
  30. }
  31. - (void)initWithDic:(NSDictionary *)dicServer {
  32. // dicServer = nil;
  33. [[ProjectInfoSave share] clearAdIdIndex];
  34. self.sdkInfo = [NSString stringWithFormat:@"当前在线参数只支持%d.*.*版本的BullgodSDK",SdkVersion];
  35. if(SdkVersion>=5){
  36. self.sdkBannerInfo = [NSString stringWithFormat:@"Banner必须分层!选择不自动刷新!"];
  37. }else{
  38. self.sdkBannerInfo = [NSString stringWithFormat:@""];
  39. }
  40. if (dicServer == nil) {
  41. NSString* adJsonPath = [NSString stringWithFormat:@"%@/%@/%@", [DataUtils getRootPath], _package, @"ad.json"];
  42. NSString* adJson = [NSString stringWithContentsOfFile:adJsonPath encoding:NSUTF8StringEncoding error:nil];
  43. NSData *data = [adJson dataUsingEncoding:NSUTF8StringEncoding];
  44. if(data == nil){
  45. [self initForNewProject];
  46. return;
  47. }
  48. NSMutableDictionary *md = [NSMutableDictionary dictionaryWithCapacity:0];
  49. dicServer = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
  50. if(dicServer == nil){
  51. [self initForNewProject];
  52. return;
  53. }
  54. self.loadingInfo = [NSString stringWithFormat:@"服务器无数据,使用本地数据!"];
  55. }else{
  56. self.loadingInfo = [NSString stringWithFormat:@"服务器数据加载成功!"];
  57. }
  58. NSString *strParameters = dicServer[key_parameters];
  59. NSDictionary *dicParameters = [ZGJsonUtils stringToObject:strParameters];
  60. self.update = [[ProjectInfo_Server_GameUpdate alloc] initWithDic:dicParameters];
  61. self.gameConfig = [[ProjectInfo_Server_GameConfig alloc] initWithDic:dicParameters];
  62. self.sdkKeys = [[ProjectInfo_Server_SDKKeys alloc] initWithDic:dicParameters];
  63. NSDictionary *dic = dicServer[key_ad];
  64. self.isDataLoadFinished = YES;
  65. self.isLoadingData = NO;
  66. self.global = [ProjectInfo_Server_AdConditionGlobal create:dic[key_ad_global]];
  67. // 初始化各种Platform
  68. NSMutableArray *maTemp = [NSMutableArray arrayWithCapacity:0];
  69. NSArray* adPlatformArray = dic[@"ids"][@"app_ids"];
  70. for (id object in adPlatformArray) {
  71. NSNumber *value = object[@"p"];
  72. ProjectInfo_Server_AdPlatform* adPlatform = [ProjectInfo_Server_AdPlatform create:[value integerValue] adPlatformId:object[@"aid"]];
  73. [maTemp addObject:adPlatform];
  74. }
  75. self.xibAdPlatformArray = [NSMutableArray arrayWithArray:maTemp];
  76. // 初始化各种adId
  77. maTemp = [NSMutableArray arrayWithCapacity:0];
  78. NSArray* adIdArray = dic[@"ids"][@"sdk_ids"];
  79. for (id object in adIdArray) {
  80. NSNumber* value = object[@"t"];
  81. ProjectInfo_Server_AdId* adId = [ProjectInfo_Server_AdId create:[value integerValue] adId:object[@"id"] index:object[@"k"] worthMul:object[@"wm"]];
  82. [maTemp addObject:adId];
  83. }
  84. self.xibAdIdArray = [NSMutableArray arrayWithArray:maTemp];
  85. // 初始化各种page
  86. self.maPageArr = [NSMutableArray arrayWithCapacity:0];
  87. self.maPageArr = [@[[ProjectInfo_Server_AdConfigPageArray create:dic[key_ad_interstitials] title:key_ad_interstitials],
  88. [ProjectInfo_Server_AdConfigPageArray create:dic[key_ad_videos] title:key_ad_videos],
  89. [ProjectInfo_Server_AdConfigPageArray create:dic[key_ad_banners] title:key_ad_banners]] mutableCopy];
  90. // self.xibAdPlatformArray = [NSMutableArray arrayWithObjects:[ProjectInfo_Server_AdPlatform create:@"新增类型" adPlatformId:@"0"], nil];
  91. }
  92. - (id)initForNewProject {
  93. self.loadingInfo = [NSString stringWithFormat:@"服务器和本地无数据!"];
  94. self.update = [[ProjectInfo_Server_GameUpdate alloc] init];
  95. self.gameConfig = [[ProjectInfo_Server_GameConfig alloc] init];
  96. self.sdkKeys = [[ProjectInfo_Server_SDKKeys alloc] init];
  97. self.global = [[ProjectInfo_Server_AdConditionGlobal alloc] init];
  98. self.isDataLoadFinished = YES;
  99. self.isLoadingData = NO;
  100. self.maPageArr = [@[[ProjectInfo_Server_AdConfigPageArray create:@{} title:key_ad_interstitials],
  101. [ProjectInfo_Server_AdConfigPageArray create:@{} title:key_ad_videos],
  102. [ProjectInfo_Server_AdConfigPageArray create:@{} title:key_ad_banners]] mutableCopy];
  103. // 初始化各种Platform
  104. self.xibAdPlatformArray = [NSMutableArray arrayWithCapacity:0];
  105. // 初始化各种adId
  106. self.xibAdIdArray = [NSMutableArray arrayWithCapacity:0];
  107. // self.xibAdPlatformArray = [NSMutableArray arrayWithObjects:[ProjectInfo_Server_AdPlatform create:@"新增类型" adPlatformId:@"0"], nil];
  108. return self;
  109. }
  110. - (NSDictionary *)jsonDic {
  111. [[ProjectInfoSave share] clearAdIdIndex];
  112. NSMutableDictionary *mdParameters = [NSMutableDictionary dictionaryWithCapacity:0];
  113. NSDictionary *updateDic = [self.update jsonDic];
  114. [mdParameters addEntriesFromDictionary:updateDic];
  115. if(updateDic == nil){
  116. return nil;
  117. }
  118. [mdParameters addEntriesFromDictionary:[self.gameConfig jsonDic]];
  119. [mdParameters addEntriesFromDictionary:[self.sdkKeys jsonDic]];
  120. //全局配置
  121. NSMutableDictionary *mdAd = [NSMutableDictionary dictionaryWithCapacity:0];
  122. mdAd[key_ad_global] = [self.global jsonDic];
  123. if(mdAd[key_ad_global] == nil){
  124. return nil;
  125. }
  126. NSMutableDictionary *idsDictionary = [NSMutableDictionary dictionaryWithCapacity:0];
  127. NSMutableArray* appIdsArray = [[NSMutableArray alloc] init];
  128. //Platform
  129. for (ProjectInfo_Server_AdPlatform* adPlatform in _xibAdPlatformArray ) {
  130. [appIdsArray addObject: [adPlatform jsonDic]];
  131. }
  132. idsDictionary[@"app_ids"] = appIdsArray;
  133. //adId
  134. NSMutableArray* sdkIdsArray = [[NSMutableArray alloc] init];
  135. for (ProjectInfo_Server_AdId* adId in _xibAdIdArray ) {
  136. [sdkIdsArray addObject: [adId jsonDic]];
  137. }
  138. idsDictionary[@"sdk_ids"] = sdkIdsArray;
  139. mdAd[@"ids"] = idsDictionary;
  140. //版位
  141. for (ProjectInfo_Server_AdConfigPageArray *arr in self.maPageArr) {
  142. NSDictionary *dic = [arr jsonDic];
  143. if(dic == nil){
  144. return nil;
  145. }
  146. mdAd[arr.title] = dic;
  147. }
  148. NSDictionary *md = @{
  149. key_parameters: [ZGJsonUtils dictionaryToString:mdParameters],
  150. key_ad : mdAd,
  151. };
  152. NSLog(@"%@", md);
  153. return md;
  154. }
  155. @end