两折买改口袋样式

LZMGoodDetailViewController.m 40KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977
  1. //
  2. // LZMGoodDetailViewController.m
  3. // YouHuiProject
  4. //
  5. // Created by xiaoxi on 2018/1/22.
  6. // Copyright © 2018年 kuxuan. All rights reserved.
  7. //
  8. #import "LZMGoodDetailViewController.h"
  9. #import <WebKit/WebKit.h>
  10. #import "LZMGoodDetailRequestViewModel.h"
  11. #import "SDCycleScrollView.h"
  12. #import "LZMTableView.h"
  13. #import "LZMGoodDetailBottomView.h"
  14. #import "LZMGoodDetailView.h"
  15. #import "LZMCollectionView.h"
  16. #import "LZMGoodCollectionCell.h"
  17. #import "LZMShopDetailViewController.h"
  18. #import <AlibcTradeSDK/AlibcTradeSDK.h>
  19. #import "LZMHistoryTool.h"
  20. #import "LZMHistoryModel.h"
  21. #import "LZMGoodListViewController.h"
  22. #import "LZMLoginViewController.h"
  23. #import "LZMEventTool.h"
  24. #import "LZMGotoDetailView.h"
  25. #import "LZMShareGoodsViewController.h"
  26. #import "LZMWebDetailController.h"
  27. #import "LZMLinkFansController.h"
  28. #import "LZMPrivilegeReferralViewController.h"
  29. #import "LZMModuleView.h"
  30. #import "LZMDetailHeaderTitle.h"
  31. #import "CCAlertShowView.h"
  32. #import "LZMShareImgPopView.h"
  33. #import "LZMShopInfoView.h"
  34. #import "LZMDetailGuideView.h"
  35. #import "PhoneLoginManager.h"
  36. #import "PhoneLoginManager.h"
  37. #define GoodSimilarViewHeight ((self.goodSimilarArr.count-1)/2+1)*FITSIZE(292)+FITSIZE(45)
  38. static CGFloat detailDescWebHeight = 0.1;
  39. static NSInteger const detailDescWebTag = 111;
  40. static NSString *const cellID = @"LZMGoodCollectionCell";
  41. static NSString *const collectionViewHeader = @"collectionViewHeader";
  42. @interface LZMGoodDetailViewController ()
  43. <
  44. SDCycleScrollViewDelegate,
  45. UITableViewDelegate,
  46. UITableViewDataSource,
  47. YHGoodDetailBottomViewDelegate,
  48. YHGoodDetailViewDelegate,
  49. UIWebViewDelegate,
  50. UICollectionViewDelegate,
  51. UICollectionViewDataSource,
  52. UICollectionViewDelegateFlowLayout,
  53. SGPageTitleViewDelegate,
  54. UIWebViewDelegate,
  55. WKNavigationDelegate
  56. >
  57. {
  58. NSInteger _page;
  59. NSString *goBuyUrl;
  60. }
  61. @property (nonatomic, strong) LZMGoodDetailModel *goodModel;
  62. @property (nonatomic, strong) UITableView *tableView;
  63. @property (nonatomic, strong) WKWebView *detailDescWebView;
  64. @property (nonatomic, strong) UIView *tableHeaderView;
  65. @property (nonatomic, strong) LZMGoodDetailView *goodDetailView;
  66. @property (nonatomic, strong) SDCycleScrollView *cycleView;
  67. @property (nonatomic, strong) NSArray *goodSimilarArr;
  68. @property (nonatomic, strong) UICollectionView *collectionView;
  69. @property (nonatomic, strong) UIButton *backButton;
  70. @property (nonatomic, strong) SGPageTitleView *topTitleView;
  71. @property (nonatomic, strong) YYFPSLabel *fpsLabel;
  72. @property (nonatomic, strong) LZMGoodDetailBottomView *goodBottomView;
  73. @property (nonatomic, strong) NSNumber *flag;//用户等级 1 会员 2 超级会员 3 运营商
  74. @property (nonatomic, strong) LZMModuleView *moduleView;
  75. @property (nonatomic, strong) LZMShopInfoView *shopInfoView;
  76. @property (nonatomic, strong) LZMGoodDetailBottomView *bottomView;
  77. @property (nonatomic, strong) UIView *moduleBg;
  78. @property (nonatomic, strong) LZMDetailHeaderTitle *detailHeader;
  79. @end
  80. @implementation LZMGoodDetailViewController
  81. - (void)dealloc {
  82. [self.detailDescWebView removeObserver:self forKeyPath:@"scrollView.contentSize"];
  83. NSLog(@"释放了------------");
  84. }
  85. - (void)viewWillDisappear:(BOOL)animated {
  86. [super viewWillDisappear:animated];
  87. [SVProgressHUD dismiss];
  88. }
  89. - (void)viewDidLoad {
  90. [super viewDidLoad];
  91. [self initHUD];
  92. [self initNavBar];
  93. [self initSubviews];
  94. [self request];
  95. [self requestCount];
  96. }
  97. -(void)viewDidAppear:(BOOL)animated{
  98. [super viewDidAppear:animated];
  99. }
  100. - (void)configParam {
  101. _page = 1;
  102. }
  103. - (void)requestCount {
  104. [LZMEventTool eventWithEventType:0 origin:self.eventModel.origin category_id:self.eventModel.category_id goods_id:self.requestModel.goods_id source:self.eventModel.source];
  105. }
  106. - (void)viewWillAppear:(BOOL)animated {
  107. [super viewWillAppear:animated];
  108. [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
  109. self.navigationController.navigationBar.hidden = YES;
  110. }
  111. - (void)didReceiveMemoryWarning {
  112. [super didReceiveMemoryWarning];
  113. }
  114. - (void)initNavBar {
  115. [self.navigationBar setNavightionBarBackgroundColor:[[UIColor whiteColor] colorWithAlphaComponent:0.0]];
  116. UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
  117. leftButton.frame = CGRectMake(0, 0, FITSIZE(22), FITSIZE(22));
  118. leftButton.backgroundColor = [UIColor clearColor];
  119. [leftButton setImage:[UIImage imageNamed:@"detail_back_g"] forState:UIControlStateNormal];
  120. [leftButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
  121. self.backButton = leftButton;
  122. [self.navigationBar setCustomLeftButtons:@[leftButton]];
  123. [self.navigationBar addSubview:self.topTitleView];
  124. }
  125. - (void)initSubviews {
  126. __weak typeof(self) weakSelf = self;
  127. //底部栏
  128. LZMGoodDetailBottomView *bottomView = [[LZMGoodDetailBottomView alloc] initWithFrame:CGRectMake(0, kScreenHeight-FITSIZE(55)-BottomMargin, kScreenWidth, FITSIZE(55))];
  129. bottomView.delegate = self;
  130. self.bottomView = bottomView;
  131. [self.view addSubview:bottomView];
  132. self.goodBottomView = bottomView;
  133. //轮播
  134. SDCycleScrollView *cycleView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 0, FITSIZE(375), FITSIZE(375)) delegate:self placeholderImage:[UIImage imageNamed:@""]];
  135. cycleView.currentPageDotImage = [UIImage imageNamed:@"page_sel"];
  136. cycleView.pageDotImage = [UIImage imageNamed:@"page_nor"];
  137. self.cycleView = cycleView;
  138. //商品信息
  139. self.goodDetailView = [[LZMGoodDetailView alloc] initWithFrame:CGRectMake(0, cycleView.height, kScreenWidth, FITSIZE(140))];
  140. self.goodDetailView.delegate = self;
  141. LZMDetailGuideView *guide = [[LZMDetailGuideView alloc] initWithFrame:CGRectMake(0, self.goodDetailView.bottom, SCREEN_WIDTH, 35)];
  142. guide.tapAction = ^{
  143. LZMPrivilegeReferralViewController *Privilege = [[LZMPrivilegeReferralViewController alloc] init];
  144. [weakSelf.navigationController pushViewController:Privilege animated:YES];
  145. };
  146. guide.height = 0;//省钱快报不需要展示
  147. //店铺信息
  148. self.shopInfoView = [[LZMShopInfoView alloc] initWithFrame:CGRectMake(0, guide.bottom+5, SCREEN_WIDTH, 0)];
  149. //推荐模块
  150. UIView *moduleBg = [[UIView alloc] initWithFrame:CGRectMake(0, self.shopInfoView.bottom+5, SCREEN_WIDTH, Fitsize(202))];
  151. self.moduleBg = moduleBg;
  152. LZMDetailHeaderTitle *headerTitle = [[LZMDetailHeaderTitle alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, Fitsize(34)) title:@"相关推荐" color:[UIColor gradientWidthFromColor:[UIColor YHColorWithHex:0xF62259] toColor:[UIColor YHColorWithHex:0xFC0E2F] withWidth:SCREEN_WIDTH]];
  153. [moduleBg addSubview:headerTitle];
  154. self.moduleView = [[LZMModuleView alloc] initWithFrame:CGRectMake(0, headerTitle.height, SCREEN_WIDTH, moduleBg.height-Fitsize(34))];
  155. self.moduleView.didSelectedGood = ^(LZMChildGoodModel *model) {
  156. DetailRequestModel *requestModel = [[DetailRequestModel alloc] initWithChildModel:model];
  157. LZMGoodDetailViewController *detail = [[LZMGoodDetailViewController alloc] init];
  158. detail.requestModel = requestModel;
  159. LZMEventModel *evevtModel = [[LZMEventModel alloc] initWithOrigin:model.origin category_id:@"0" source:goodsDetailTopRecommendAction];
  160. detail.eventModel = evevtModel;
  161. [weakSelf.navigationController pushViewController:detail animated:YES];
  162. [MobClick event:GoodsDetailRecommend];
  163. };
  164. [moduleBg addSubview:self.moduleView];
  165. self.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, moduleBg.bottom+5)];
  166. //详情webview
  167. LZMDetailHeaderTitle *detailHeader = [[LZMDetailHeaderTitle alloc] initWithFrame:CGRectMake(0, moduleBg.bottom+5, SCREEN_WIDTH, Fitsize(34)) title:@"宝贝详情" color:[UIColor gradientWidthFromColor:[UIColor YHColorWithHex:0x8976FB] toColor:[UIColor YHColorWithHex:0x3CC1F8] withWidth:SCREEN_WIDTH]];
  168. self.detailHeader = detailHeader;
  169. _detailDescWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, detailHeader.bottom, kScreenWidth, detailDescWebHeight)];
  170. _detailDescWebView.tag = detailDescWebTag;
  171. _detailDescWebView.navigationDelegate = self;
  172. _detailDescWebView.scrollView.scrollEnabled = NO;
  173. // _detailDescWebView.scalesPageToFit = YES;
  174. [self.tableHeaderView addSubview:cycleView];
  175. [self.tableHeaderView addSubview:self.goodDetailView];
  176. [self.tableHeaderView addSubview:guide];
  177. [self.tableHeaderView addSubview:self.shopInfoView];
  178. [self.tableHeaderView addSubview:moduleBg];
  179. [self.tableHeaderView addSubview:detailHeader];
  180. [self.tableHeaderView addSubview:_detailDescWebView];
  181. self.tableView.tableHeaderView = self.tableHeaderView;
  182. [self.view addSubview:self.tableView];
  183. [self.view bringSubviewToFront:self.navigationBar];
  184. //添加监听
  185. @try{
  186. // [self.detailDescWebView removeObserver:self forKeyPath:@"scrollView.contentSize"];
  187. }@catch (NSException *exception) {
  188. }
  189. [_detailDescWebView addObserver:self forKeyPath:@"scrollView.contentSize" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
  190. [self.view bringSubviewToFront:self.navigationBar];
  191. [LZMGoodDetailRequestViewModel requestGoodSimilarParamGoods_id:self.requestModel.goods_id page:@(_page) success:^(NSArray *array) {
  192. if (array.count > 0) {
  193. self.goodSimilarArr = array;
  194. self.tableView.tableFooterView = self.collectionView;
  195. }
  196. } failure:^(NSError *error) {
  197. }];
  198. }
  199. - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
  200. if ([keyPath isEqualToString:@"scrollView.contentSize"]) {
  201. id height = [change valueForKey:NSKeyValueChangeNewKey];
  202. CGSize size;
  203. [(NSValue *)height getValue:&size];
  204. if (detailDescWebHeight != size.height) {
  205. detailDescWebHeight = size.height;
  206. self.detailDescWebView.height = size.height;
  207. self.tableHeaderView.height = self.detailDescWebView.top+size.height;
  208. self.tableView.tableHeaderView = self.tableHeaderView;
  209. }
  210. }
  211. }
  212. - (void)backAction {
  213. [self.navigationController popViewControllerAnimated:YES];
  214. }
  215. #pragma mark - HUD
  216. - (void)initHUD {
  217. [SVProgressHUD setDefaultStyle:SVProgressHUDStyleCustom];
  218. [SVProgressHUD setForegroundColor:[UIColor YHColorWithHex:0xff2420]];
  219. [SVProgressHUD setBackgroundColor:[UIColor YHColorWithHex:0xf5f4f4]];
  220. }
  221. #pragma mark - request
  222. - (void)request {
  223. // [SVProgressHUD show];
  224. [LZMGoodDetailRequestViewModel requestGoodDetailParamGoods_id:self.requestModel success:^(LZMGoodDetailModel *model,NSDictionary *dic) {
  225. if (model) {
  226. self.goodModel = model;
  227. // [self initSubviews];
  228. [self setGoodInfoForHeader];
  229. [self requestUserIdentity];
  230. [self requestThressRecommon];
  231. [self saveGoodsInfoAsBrowserHistoryWith:dic];
  232. }
  233. [SVProgressHUD dismiss];
  234. } failure:^(NSError *error) {
  235. [SVProgressHUD dismiss];
  236. [MBProgressHUD showMessage:@"加载失败"];
  237. }];
  238. [self loadGoBuyUrl];
  239. }
  240. - (void)setGoodInfoForHeader {
  241. self.bottomView.goodModel = self.goodModel;
  242. self.cycleView.imageURLStringsGroup = self.goodModel.small_img;
  243. self.goodDetailView.goodModel = self.goodModel;
  244. LZMShopModel *model = self.goodModel.shop;
  245. CGFloat shopViewHeight = model==nil?0:Fitsize(68);
  246. [self.shopInfoView setShopInfo:model];
  247. self.shopInfoView.height = shopViewHeight;
  248. self.moduleBg.y = self.shopInfoView.bottom+5;
  249. self.detailHeader.y = self.moduleBg.bottom+5;
  250. _detailDescWebView.y = self.detailHeader.bottom;
  251. NSURL *url = [NSURL URLWithString:self.goodModel.detail_url];
  252. NSURLRequest *request = [NSURLRequest requestWithURL:url];
  253. [_detailDescWebView loadRequest:request];
  254. }
  255. /**
  256. 加载购买的url
  257. */
  258. - (void)loadGoBuyUrl {
  259. NSString *category_id = self.eventModel.category_id==nil?@"":self.eventModel.category_id;
  260. NSString *source = self.eventModel.source==nil?@"":self.eventModel.source;
  261. NSDictionary *param = @{@"goods_id":self.requestModel.goods_id,
  262. @"is_coupon":self.requestModel.is_coupon,
  263. @"category_id":category_id,
  264. @"path":source
  265. };
  266. NSString *url = [NSString stringWithFormat:@"%@/api/v2/adzoneCreate/orderDown",BaseURL];
  267. [LZMHttp post:url params:param success:^(id json) {
  268. goBuyUrl = json[@"url"];
  269. } failure:^(NSError *error) {
  270. }];
  271. }
  272. /**
  273. 加载上部相关推荐
  274. */
  275. - (void)requestThressRecommon {
  276. NSString *url = [NSString stringWithFormat:@"%@/api/v2/goods/recommendtop",BaseURL];
  277. NSDictionary *para = @{@"goods_id":self.requestModel.goods_id};
  278. [LZMHttp post:url params:para success:^(id json) {
  279. NSArray *list = [NSArray yy_modelArrayWithClass:[LZMChildGoodModel class] json:json[@"data"]];
  280. [self.moduleView setRecommonData:list];
  281. } failure:^(NSError *error) {
  282. }];
  283. }
  284. - (void)requestUserIdentity {
  285. NSString *url=[NSString stringWithFormat:@"%@/api/v2/adzoneCreate/userIdentity",BaseURL];
  286. [LZMHttp post:url params:nil success:^(id json) {
  287. if (json[@"data"]) {
  288. NSNumber *flag=json[@"data"][@"flag"];
  289. self.flag=flag;
  290. }
  291. } failure:^(NSError *error) {
  292. self.flag=0;
  293. }];
  294. }
  295. /**
  296. 保存浏览记录
  297. */
  298. - (void)saveGoodsInfoAsBrowserHistoryWith:(NSDictionary *)dic {
  299. if (![AccountTool isLogin]) {
  300. return;
  301. }
  302. NSString *urlString = [NSString stringWithFormat:@"%@/api/v2/brower/record", BaseURL];
  303. NSDictionary *para = [self.requestModel modelToDictionary];
  304. [LZMHttp post:urlString params:para success:^(id json) {
  305. } failure:^(NSError *error) {
  306. }];
  307. }
  308. #pragma mark - scrollView
  309. - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  310. CGFloat offsetY = scrollView.contentOffset.y;
  311. // CGFloat standard = FITSIZE(734)-NavBarHeight;
  312. CGFloat standard = self.cycleView.height-NavBarHeight;
  313. if (offsetY > -standard && offsetY < standard) {
  314. [self.navigationBar setNavightionBarBackgroundColor:[[UIColor whiteColor] colorWithAlphaComponent:offsetY/standard]];
  315. self.topTitleView.alpha = offsetY/standard;
  316. if (offsetY/standard < 0.5) {
  317. [self.backButton setImage:[UIImage imageNamed:@"detail_back_g"] forState:UIControlStateNormal];
  318. self.backButton.alpha = 1-offsetY/standard;
  319. }
  320. else {
  321. [self.backButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
  322. self.backButton.alpha = offsetY/standard;
  323. }
  324. }
  325. else {
  326. }
  327. if (offsetY >= standard) {
  328. [self.navigationBar setShowNavigationBarBottomLine:YES];
  329. } else {
  330. [self.navigationBar setShowNavigationBarBottomLine:NO];
  331. }
  332. //设置导航栏头部seg下标
  333. CGFloat indexOneHeight = self.moduleView.superview.bottom+5-NavBarHeight;
  334. CGFloat indexTwoHeight = self.tableHeaderView.height-NavBarHeight;
  335. if (offsetY < indexOneHeight) {
  336. self.topTitleView.newSelectedIndex = 0;
  337. }else if (offsetY>=indexOneHeight && offsetY<indexTwoHeight){
  338. self.topTitleView.newSelectedIndex = 1;
  339. }else {
  340. self.topTitleView.newSelectedIndex = 2;
  341. }
  342. }
  343. #pragma mark - topTitleViewDelegate
  344. - (void)pageTitleView:(SGPageTitleView *)pageTitleView selectedIndex:(NSInteger)selectedIndex {
  345. CGFloat indexOneHeight = self.moduleView.superview.bottom+5-NavBarHeight;
  346. CGFloat indexTwoHeight = self.tableHeaderView.height-NavBarHeight;
  347. switch (selectedIndex) {
  348. case 0:
  349. [self.tableView setContentOffset:CGPointMake(0, 0) animated:NO];
  350. break;
  351. case 1:
  352. [self.tableView setContentOffset:CGPointMake(0, indexOneHeight) animated:NO];
  353. break;
  354. case 2:
  355. [self.tableView setContentOffset:CGPointMake(0, indexTwoHeight) animated:NO];
  356. break;
  357. default:
  358. break;
  359. }
  360. }
  361. #pragma mark - goodDetailBottomViewDelegate
  362. /**
  363. 分享
  364. */
  365. - (void)yh_GoodDetailBottomViewClickCommissionButton {
  366. if ([AccountTool isLogin]) {
  367. LZMShareImgPopView *shareView = [[LZMShareImgPopView alloc] initWithFrame:self.view.bounds goodModel:self.goodModel];
  368. CCAlertShowView *showView = [CCAlertShowView showAlertViewWithView:shareView backgroundDismissEnable:YES];
  369. shareView.closeAction = ^{
  370. [showView dismiss];
  371. };
  372. showView.backgroundView.backgroundColor = [UIColor clearColor];
  373. [showView show];
  374. }else{
  375. LZMLoginViewController *login = [[LZMLoginViewController alloc] init];
  376. login.loginSucc = ^{
  377. [self request];
  378. };
  379. [self.navigationController presentViewController:login animated:YES completion:nil];
  380. }
  381. }
  382. - (void)yh_GoodDetailBottomViewClickCollectButton {
  383. if ([AccountTool isLogin]) {
  384. [MobClick event:collection_count];
  385. NSString *coupon_start_time = [self.goodModel.is_coupon boolValue] ? self.requestModel.coupon_start_time : @"";
  386. NSString *coupon_end_time = [self.goodModel.is_coupon boolValue] ? self.requestModel.coupon_end_time : @"";
  387. NSNumber *is_coupon = self.goodModel.is_coupon;
  388. NSString *coupon_price = self.goodModel.coupon_price;
  389. NSString *price = self.goodModel.price;
  390. NSString *discount_price = self.goodModel.discount_price;
  391. NSString *commission_rate = self.goodModel.commission_rate;
  392. if (!coupon_start_time) coupon_start_time = @"";
  393. if (!coupon_end_time) coupon_end_time = @"";
  394. if (!is_coupon) is_coupon = @0;
  395. if (!coupon_price) coupon_price = @"";
  396. if (!price) price = @"";
  397. if (!discount_price) discount_price = @"";
  398. if (!commission_rate) commission_rate = @"";
  399. NSDictionary *para = @{@"goods_id":self.goodModel.goods_id,
  400. @"is_coupon":is_coupon,
  401. @"coupon_price":coupon_price,
  402. @"price":price,
  403. @"discount_price":discount_price,
  404. @"commission_rate":commission_rate,
  405. @"coupon_end_time":coupon_end_time,
  406. @"coupon_start_time":coupon_start_time
  407. };
  408. [LZMGoodDetailRequestViewModel requestCollectGoodParamGoods_id:para success:^(NSString *msg) {
  409. [SVProgressHUD showSuccessWithStatus:msg];
  410. if ([msg isEqualToString:@"收藏成功"]) {
  411. self.goodModel.is_favorites = @1;
  412. self.goodBottomView.collectButton.selected = YES;
  413. }
  414. else {
  415. self.goodModel.is_favorites = @0;
  416. self.goodBottomView.collectButton.selected = NO;
  417. }
  418. } failure:^(NSError *error) {
  419. }];
  420. }
  421. else {
  422. LZMLoginViewController *login = [[LZMLoginViewController alloc] init];
  423. login.loginSucc = ^{
  424. [self request];
  425. };
  426. [self.navigationController presentViewController:login animated:YES completion:nil];
  427. }
  428. }
  429. /**
  430. 跳到淘宝领券
  431. */
  432. - (void)yh_GoodDetailBottomViewClickBuyButton {
  433. [self getTicketTaoBaoUrl];
  434. }
  435. /**
  436. 获取商品链接
  437. */
  438. - (void)getTicketTaoBaoUrl {
  439. [self goBuy];
  440. [MobClick event:pay_count];
  441. // if (![AccountTool account]) {
  442. // LZMLoginViewController *login = [[LZMLoginViewController alloc] init];
  443. // [self presentViewController:login animated:YES completion:nil];
  444. // return;
  445. // }
  446. //
  447. //
  448. //
  449. // if ([self.flag integerValue]==1) {
  450. // UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"升级赚佣金" message:[NSString stringWithFormat:@"\n成为超级会员后,您购买商品就可以拿到%.2f元佣金哦~",[self.goodModel.super_commission_price floatValue]] preferredStyle:UIAlertControllerStyleAlert];
  451. // UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"直接领劵" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
  452. // [self goBuy];
  453. //
  454. // }];
  455. // UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"成为超级会员" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
  456. // LZMPrivilegeReferralViewController *vc=[[LZMPrivilegeReferralViewController alloc]init];
  457. // vc.flag=@(1);
  458. // vc.isSuper=@(0);
  459. // [self.navigationController pushViewController:vc animated:YES];
  460. // }];
  461. // [alert addAction:defaultAction];
  462. // [alert addAction:cancelAction];
  463. // [self presentViewController:alert animated:YES completion:nil];
  464. // return;
  465. // }else{
  466. // [self goBuy];
  467. // }
  468. }
  469. -(void)goBuy{
  470. if (goBuyUrl.length > 0) {
  471. [self jumpToTaobaoWithGoodsUrl:goBuyUrl];
  472. }else {
  473. [SVProgressHUD show];
  474. NSString *category_id = self.eventModel.category_id==nil?@"":self.eventModel.category_id;
  475. NSString *source = self.eventModel.source==nil?@"":self.eventModel.source;
  476. NSDictionary *param = @{@"goods_id":self.requestModel.goods_id,
  477. @"is_coupon":self.requestModel.is_coupon,
  478. @"category_id":category_id,
  479. @"path":source
  480. };
  481. NSString *url = [NSString stringWithFormat:@"%@/api/v2/adzoneCreate/orderDown",BaseURL];
  482. [LZMHttp post:url params:param success:^(id json) {
  483. if (url.length > 0) {
  484. [self jumpToTaobaoWithGoodsUrl:json[@"url"]];
  485. }
  486. [SVProgressHUD dismiss];
  487. } failure:^(NSError *error) {
  488. [SVProgressHUD dismiss];
  489. [MBProgressHUD showMessage:@"加载失败"];
  490. }];
  491. }
  492. }
  493. - (void)jumpToTaobaoWithGoodsUrl:(NSString *)url {
  494. [LZMEventTool eventWithEventType:1 origin:self.eventModel.origin category_id:self.eventModel.category_id goods_id:self.requestModel.goods_id source:self.eventModel.source];
  495. if ([self isInstallTaobaoAPP]) {
  496. id<AlibcTradePage> page = [AlibcTradePageFactory page:url];
  497. //淘客信息
  498. AlibcTradeTaokeParams *taoKeParams=[[AlibcTradeTaokeParams alloc] init];
  499. taoKeParams.pid = ALTK_PID; //
  500. //打开方式
  501. AlibcTradeShowParams* showParam = [[AlibcTradeShowParams alloc] init];
  502. showParam.openType = AlibcOpenTypeNative;
  503. [[AlibcTradeSDK sharedInstance].tradeService show:self.navigationController page:page showParams:showParam taoKeParams:taoKeParams trackParam:nil tradeProcessSuccessCallback:^(AlibcTradeResult * _Nullable result) {
  504. } tradeProcessFailedCallback:^(NSError * _Nullable error) {
  505. }];
  506. }else {
  507. LZMWebDetailController *webVc = [[LZMWebDetailController alloc] init];
  508. webVc.url = url;
  509. [self.navigationController pushViewController:webVc animated:YES];
  510. }
  511. }
  512. /**
  513. 判断是否安装淘宝app
  514. */
  515. - (BOOL)isInstallTaobaoAPP {
  516. if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"taobao://"]]) {
  517. return YES;
  518. }else {
  519. return NO;
  520. }
  521. }
  522. #pragma mark - goodDetailViewDelegate
  523. - (void)yh_GoodDetailViewTapCoupon {
  524. [LZMGoodDetailRequestViewModel requestTicketProcessParamGoods_id:self.requestModel.goods_id coupon_price:self.goodModel.coupon_price success:^(NSString *msg) {
  525. [self yh_GoodDetailBottomViewClickBuyButton];
  526. } failure:^(NSError *error) {
  527. }];
  528. }
  529. - (void)yh_GoodDetailViewTapShop {
  530. LZMShopDetailViewController *shopVC = [[LZMShopDetailViewController alloc] init];
  531. shopVC.goodModel = self.goodModel;
  532. [self.navigationController pushViewController:shopVC animated:YES];
  533. }
  534. #pragma mark - webView
  535. - (void)webViewDidStartLoad:(UIWebView *)webView {
  536. [SVProgressHUD dismiss];
  537. }
  538. - (void)webViewDidFinishLoad:(UIWebView *)webView {
  539. [SVProgressHUD dismiss];
  540. CGSize contentSize = webView.scrollView.contentSize;
  541. CGSize viewSize = self.detailDescWebView.bounds.size;
  542. float rw = viewSize.width / contentSize.width;
  543. webView.scrollView.minimumZoomScale = rw;
  544. webView.scrollView.maximumZoomScale = rw;
  545. webView.scrollView.zoomScale = rw;
  546. }
  547. - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
  548. [SVProgressHUD dismiss];
  549. }
  550. #pragma mark ------ wkWebView delegate ------
  551. // main frame的导航开始请求时调用
  552. - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation{
  553. }
  554. // 当main frame开始加载数据失败时,会回调
  555. - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error {
  556. }
  557. //当main frame导航完成时,会回调
  558. - (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation{
  559. // 页面加载完成之后调用
  560. }
  561. #pragma mark - tableView
  562. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  563. return 1;
  564. }
  565. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  566. return 1;
  567. }
  568. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  569. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
  570. return cell;
  571. }
  572. #pragma mark - collectionView
  573. - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
  574. return 1;
  575. }
  576. - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
  577. return self.goodSimilarArr.count;
  578. }
  579. - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
  580. CGFloat width = (SCREEN_WIDTH-5)/2;
  581. CGFloat height = width + 102;
  582. return CGSizeMake(width, height);
  583. }
  584. - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
  585. LZMGoodCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];
  586. cell.backgroundColor = [UIColor whiteColor];
  587. cell.backgroundView.backgroundColor = [UIColor whiteColor];
  588. cell.contentView.backgroundColor = [UIColor whiteColor];
  589. LZMChildGoodModel *model = self.goodSimilarArr[indexPath.item];
  590. cell.model = model;
  591. return cell;
  592. }
  593. - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
  594. UICollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:collectionViewHeader forIndexPath:indexPath];
  595. CALayer *lineGapLayer = [CALayer layer];
  596. lineGapLayer.frame = CGRectMake(0, 0, kScreenWidth, FITSIZE(5));
  597. lineGapLayer.backgroundColor = [UIColor YHColorWithHex:0xf5f4f4].CGColor;
  598. [view.layer addSublayer:lineGapLayer];
  599. UILabel *lineGapLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 5, kScreenWidth, FITSIZE(40))];
  600. lineGapLabel.backgroundColor = [UIColor whiteColor];
  601. lineGapLabel.textColor = [UIColor YHColorWithHex:0x222222];
  602. lineGapLabel.font = [UIFont systemFontOfSize:FITSIZE(13)];
  603. lineGapLabel.text = @"相关推荐";
  604. lineGapLabel.textAlignment = NSTextAlignmentCenter;
  605. [view addSubview:lineGapLabel];
  606. return view;
  607. }
  608. - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
  609. return CGSizeMake(kScreenWidth, FITSIZE(45));
  610. }
  611. - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
  612. LZMChildGoodModel *model = self.goodSimilarArr[indexPath.item];
  613. //详情
  614. LZMGoodDetailViewController *detailVC = [[LZMGoodDetailViewController alloc] init];
  615. DetailRequestModel *requestModel = [[DetailRequestModel alloc] initWithChildModel:model];
  616. detailVC.requestModel = requestModel;
  617. LZMEventModel *evevtModel = [[LZMEventModel alloc] initWithOrigin:@"0" category_id:@"0" source:goodsDetailRecommendAction];
  618. detailVC.eventModel = evevtModel;
  619. [self.navigationController pushViewController:detailVC animated:YES];
  620. }
  621. #pragma mark - lazy
  622. - (UITableView *)tableView {
  623. if (!_tableView) {
  624. _tableView = [[LZMTableView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight-FITSIZE(55)-BottomMargin) style:UITableViewStylePlain];
  625. _tableView.rowHeight = 0.1;
  626. _tableView.estimatedRowHeight = 0;
  627. _tableView.estimatedSectionHeaderHeight = 0;
  628. _tableView.estimatedSectionFooterHeight = 0;
  629. _tableView.delegate = self;
  630. _tableView.dataSource = self;
  631. [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
  632. if (@available(iOS 11.0, *)) {
  633. _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
  634. }
  635. }
  636. return _tableView;
  637. }
  638. - (UICollectionView *)collectionView {
  639. if (!_collectionView) {
  640. UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
  641. flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
  642. flowLayout.minimumLineSpacing = FITSIZE(5);
  643. flowLayout.minimumInteritemSpacing = FITSIZE(0);
  644. _collectionView = [[LZMCollectionView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, GoodSimilarViewHeight) collectionViewLayout:flowLayout];
  645. _collectionView.scrollEnabled = NO;
  646. _collectionView.bounces = NO;
  647. _collectionView.showsVerticalScrollIndicator = NO;
  648. _collectionView.delegate = self;
  649. _collectionView.dataSource = self;
  650. [_collectionView registerClass:[LZMGoodCollectionCell class] forCellWithReuseIdentifier:cellID];
  651. [_collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:collectionViewHeader];
  652. }
  653. return _collectionView;
  654. }
  655. - (SGPageTitleView *)topTitleView {
  656. if (!_topTitleView) {
  657. SGPageTitleViewConfigure *configure = [SGPageTitleViewConfigure pageTitleViewConfigure];
  658. configure.titleFont = [UIFont systemFontOfSize:FITSIZE(14)];
  659. configure.titleColor = [UIColor YHColorWithHex:0x222222];
  660. configure.titleSelectedColor = [UIColor YHColorWithHex:0xff2420];
  661. configure.indicatorColor = [UIColor YHColorWithHex:0xff2420];
  662. configure.indicatorScrollStyle = SGIndicatorScrollStyleHalf;
  663. _topTitleView = [SGPageTitleView pageTitleViewWithFrame:CGRectMake(kScreenWidth/2-FITSIZE(100), KStatusBarHeight, FITSIZE(200), 44) delegate:self titleNames:@[@"宝贝",@"详情",@"推荐"] configure:configure];
  664. _topTitleView.backgroundColor = [UIColor clearColor];
  665. _topTitleView.alpha = 0.0;
  666. _topTitleView.isNeedBounces = NO;
  667. _topTitleView.isTitleGradientEffect = NO;
  668. _topTitleView.isOpenTitleTextZoom = YES;
  669. _topTitleView.isShowBottomSeparator = NO;
  670. }
  671. return _topTitleView;
  672. }
  673. -(void)a1HOmV:(UIFont*) a1HOmV a5tLzXFH:(UIColor*) a5tLzXFH aLnzCTWgd:(UIAlertView*) aLnzCTWgd ahIPvpNOs:(UIImage*) ahIPvpNOs aAowemGjK:(UIImage*) aAowemGjK aNzODFj4orm:(UIRegion*) aNzODFj4orm abtfZw:(UIControl*) abtfZw afnlAjm:(UIVisualEffectView*) afnlAjm aeodzK:(UIImage*) aeodzK asvpbClFO:(UIDevice*) asvpbClFO a9iTSh1Z0R:(UIActivity*) a9iTSh1Z0R aMwef43AW8X:(UIBezierPath*) aMwef43AW8X a4ZAfy:(UIInputView*) a4ZAfy ah4uFMaQUx:(UISwitch*) ah4uFMaQUx a6kamU:(UIInputView*) a6kamU aRKashyN2eY:(UISearchBar*) aRKashyN2eY aWQozKOp:(UISwitch*) aWQozKOp {
  674. NSLog(@"aVr0ebRCA6pTdhQsjq8t7il2");
  675. NSLog(@"mDpuKe6gtXisVZ5ES0dhb97OTyvUMFfB4");
  676. NSLog(@"QrmZlfIVO3GLghxv1");
  677. NSLog(@"FKWr34bMvXSYE2yo6x0cqh1lZCTu7LnAfV");
  678. NSLog(@"AaRgIDEpG9kqYyre");
  679. NSLog(@"4kxE7CHrS6FczgRJO9NTVehYspBDX3wiubU08Zv");
  680. NSLog(@"AZkECldsUF4");
  681. NSLog(@"OIpxTWHluJKweMXDF7Q2aqAUYrvGRPZL6");
  682. NSLog(@"5DBU9MfiLK347s21qSGAX");
  683. NSLog(@"ckfwSzbqeoa2D1hYQFI3d9T5ntAvylXB");
  684. NSLog(@"ylWPShELc7m0w3H5DTCOt6uxkXNbo1giqj4");
  685. NSLog(@"6zPRCIX0nBLj89HQvkgltNcowm2pxG7y");
  686. }
  687. -(void)awp1Dm0Xvn:(UIControlEvents*) awp1Dm0Xvn aq4h2tZx8SA:(UIControlEvents*) aq4h2tZx8SA atDk7:(UIFontWeight*) atDk7 arHB3g0bYea:(UIWindow*) arHB3g0bYea agyXK6RZqr:(UIUserInterfaceIdiom*) agyXK6RZqr a2p3vOZr0:(UIAlertView*) a2p3vOZr0 aJaQoKPNI:(UIBarButtonItem*) aJaQoKPNI acRQ5HaXI:(UISearchBar*) acRQ5HaXI aXzKS1a:(UIBarButtonItem*) aXzKS1a alVDX0:(UITableView*) alVDX0 a0EXY:(UIDevice*) a0EXY a9FAwDS:(UIView*) a9FAwDS abefFnT:(UIMotionEffect*) abefFnT abIHNmUk:(UIMenuItem*) abIHNmUk {
  688. NSLog(@"mIBesak7WdgLl40DbjoG1At8p62McvunEzR9fyS");
  689. NSLog(@"Fe028EHJKS3im1Vz5");
  690. NSLog(@"o4nlH8mfb9YNrySdD7wqEPxtV0zhB");
  691. NSLog(@"7YfCsxuFQVE9PkeGJRD6mynXWpvIgOwzlq8hZa4T");
  692. NSLog(@"lGbB6Vr3LUZDyOEuk0XpCfMaSQmN");
  693. NSLog(@"Jf3LYZBuRXwn56Fdk7xGiQCcVtv8UaK1bA");
  694. NSLog(@"BPNZ387HRYq0xhVfuXg2tlUcCpa");
  695. NSLog(@"Wt27NRDSiqQecumvxUI0jF4VBPH9roh1O");
  696. NSLog(@"0ft3Ou7SNEZVpxdTRgDFerGqoy1");
  697. NSLog(@"FSxiLk01fZlJtAC2W8");
  698. NSLog(@"9gfhx7MDG2wieIOJuYTjm");
  699. NSLog(@"LDpvZ7hdsfeXR4JGxYQamqBjnNTOIk35rHSo8CyK");
  700. NSLog(@"32mOPMRSkzCc8NFQDlIrEiTey0AoqsUa96Jjp");
  701. NSLog(@"27dp0heqv5bBRAE9fiLN1nU6ZX4uzWrOPmTyoVx");
  702. NSLog(@"AyIMosbF4NYuzcLwgeOxC9lUGRVH26");
  703. NSLog(@"xnigOh93dS1ltIkZAf2b4p");
  704. NSLog(@"tXSorQT8a4U");
  705. NSLog(@"jnBLOZ17Ap3JQyUsE");
  706. }
  707. -(void)aBwyJ2d:(UIUserInterfaceIdiom*) aBwyJ2d ai92TPpFr:(UIInputView*) ai92TPpFr ahfrOP:(UIApplication*) ahfrOP aOClmuVnk1:(UIControlEvents*) aOClmuVnk1 aVmCepJr:(UIImage*) aVmCepJr aGJDLz:(UIActivity*) aGJDLz a8EAZ:(UISearchBar*) a8EAZ ayMjZ:(UIKeyCommand*) ayMjZ acV6vqUlPea:(UIFontWeight*) acV6vqUlPea a9Aw621yPO:(UIEvent*) a9Aw621yPO aZljA9:(UIKeyCommand*) aZljA9 aM3k7n:(UIMotionEffect*) aM3k7n {
  708. NSLog(@"NhMBoCu137VeZ0Lpy5UgkKSbqxrJn4a9");
  709. NSLog(@"rlpDI8xRvCWXk3ZPsGbL2i9eJzwhOEn");
  710. NSLog(@"cViNTgOZf87uKJ3RUo");
  711. NSLog(@"wQs2p173FP84j0Jqme");
  712. NSLog(@"PBjYkTiXWJ94Qg1FrA68fyE5SGe");
  713. NSLog(@"O8DdygCUkM");
  714. NSLog(@"B9ajLIWT1KFQUSdCiJVoe50P7NXkfcMb");
  715. NSLog(@"ofMN0idDV3EB");
  716. NSLog(@"7jug3Vp2KX");
  717. NSLog(@"kZUByEHD1X7VoiarN");
  718. NSLog(@"AUZsVlCJFyH3x796hkt40KQoiavB2O5u");
  719. NSLog(@"yMmPuHXJKr84Y9D36Zq7GQiNnTaSWxRtjsO0");
  720. NSLog(@"aeBV5w9Pp3vchyGjWoYldDFtEziTZrnqHAJX7");
  721. NSLog(@"A2r7KTmkdpEIf83lNS9F4jc6DYzQ01X");
  722. NSLog(@"nR8eI65wyJMYNCBFlLSbcvtdxfW");
  723. NSLog(@"4sNyeUEfwlY371aAGjvxKMIoT5hcp09mtBbDHi8F");
  724. NSLog(@"YKr49op1DCNuWtkE5x");
  725. NSLog(@"pTiJe8BtuAzLNMm7hsZRYWnFC0DowQI");
  726. NSLog(@"L49oe5RD3Hawz");
  727. NSLog(@"PpCVorkKmB6ESHtecZw");
  728. }
  729. -(void)aaJFSBgP2:(UIView*) aaJFSBgP2 ajct9dQIB7:(UIDocument*) ajct9dQIB7 arg8o:(UICollectionView*) arg8o aZ4MaG87:(UIAlertView*) aZ4MaG87 atA5WRovrz3:(UIRegion*) atA5WRovrz3 acqZQ5:(UIControl*) acqZQ5 aCWm4:(UIControlEvents*) aCWm4 agpcm:(UIInputView*) agpcm a8stlWG:(UIFont*) a8stlWG a9Es8N6Wxt:(UILabel*) a9Es8N6Wxt afTX9bz8D6h:(UIWindow*) afTX9bz8D6h atW7vl3cX:(UIApplication*) atW7vl3cX aF2o9X4w:(UICollectionView*) aF2o9X4w acV75:(UIBarButtonItem*) acV75 a2QyTrPGF:(UIKeyCommand*) a2QyTrPGF aa5rFGge:(UIMenuItem*) aa5rFGge asuYHKh6Lf:(UITableView*) asuYHKh6Lf af2hA:(UIBarButtonItem*) af2hA {
  730. NSLog(@"SB9fN1yUvgxEh2eK");
  731. NSLog(@"mtuQdwiIr9lPo3026EeKaH");
  732. NSLog(@"3aQk1GdmSNcPKpYeIZ7tq4gvFLynojRw920h");
  733. NSLog(@"HStozBVq3vKLmID4xjUYQZWhsCAn9Fe5");
  734. NSLog(@"vuAMHOIQRL1V9hSrJdx34YUND2kbef76yGtWwjXm");
  735. NSLog(@"MXzEY2ips6bo17Re3ZJNVxkKqtcTyjnD");
  736. NSLog(@"2hxNPyVfjpZ7O");
  737. NSLog(@"ycvKVZ1fQRxI0Bt3TNi");
  738. NSLog(@"0hTZH5twq3yWLj9Eoc4PNa1Dz");
  739. NSLog(@"geaxTSVAJkpndK5MI6tyslPmwE2XRc");
  740. NSLog(@"qwBZr1GuUJKm6yYafCI3lkhgE5pLv4MF7DTXxNSo");
  741. NSLog(@"QmYUoX2CNecSRIJ67pD08nkKjV");
  742. NSLog(@"JiPn9eZhYHsS8CoO");
  743. NSLog(@"MHagZQ8SD9s1uwEVC0c5ImYh47");
  744. NSLog(@"D3V1NFlsntoEGukUSOJvfZ");
  745. NSLog(@"Fq2zpn19UHSe");
  746. NSLog(@"Z1u9Mzl3iK");
  747. NSLog(@"dPerjLi0DT1BK8sZYEAkvlHyX");
  748. NSLog(@"qV3ruafLj7G");
  749. NSLog(@"OhesZ2lUIc135u");
  750. }
  751. -(void)aha03Okt:(UILabel*) aha03Okt aFx4E:(UIView*) aFx4E a1c42skZx:(UIColor*) a1c42skZx aMxPrvKRy:(UIViewController*) aMxPrvKRy aB72VP9hIH:(UIActivity*) aB72VP9hIH aQavM:(UIActivity*) aQavM aTDWLiFMJ1O:(UIColor*) aTDWLiFMJ1O atJXZ1V2wu4:(UIRegion*) atJXZ1V2wu4 a1h72v:(UIScreen*) a1h72v a6HFjus8:(UIDocument*) a6HFjus8 apPdF1oM:(UIRegion*) apPdF1oM ak0Hm7TL:(UIImageView*) ak0Hm7TL {
  752. NSLog(@"G5CSJOFygcMbNT6dA4m1kKPQDjWvae7uHBhY");
  753. NSLog(@"QG6ukEWh1SnwADZeTrzvxl");
  754. NSLog(@"vHsoqWdE2Vuxy93j8AlMfmcnDLBNkQ");
  755. NSLog(@"4Lmo5cuAhzJOIwkqsPrYdD2ZjSXgb");
  756. NSLog(@"df4KGLqj2Zl1MNtJoxUFwPp8RH35bvQg");
  757. NSLog(@"wUziQPZdHo7jlFIXnY94GBgkpM8rAs2xKL");
  758. NSLog(@"ZrAxLOVvTlsJ7BEwK4hktXeCF2aqYi1MRGuUbngp");
  759. NSLog(@"FyE4Iifa8zvBkP5WM");
  760. NSLog(@"cBC8nWRosLSGIYaAPEl91XOZv4utfD");
  761. NSLog(@"RnbBcsSlhNvwM");
  762. NSLog(@"lhAgeINVwEo0");
  763. NSLog(@"p4aIRAkdi3YjxDsJPGom276");
  764. NSLog(@"VnYOM3frLv2GxNT");
  765. NSLog(@"jpSRuxhsvViYUr9WCf76nJXmNMAyOTE");
  766. NSLog(@"5EPwsdhUKRTOv0I7");
  767. NSLog(@"igu6KJ0Gf1LIEvHTbmyPjxARodwqpr4XU");
  768. NSLog(@"x2u1JOghSzQmMUjnIf6ZpNFHVoqaWrPYs");
  769. NSLog(@"mjlo7JvduIgAVU8iPK");
  770. NSLog(@"Mqzy5h1Rkw0b3HLlEu4P8Qvds7ij9NY");
  771. NSLog(@"9x7VyzTgIMusUNljmn6E");
  772. }
  773. -(void)aCNMPL8Gz:(UIWindow*) aCNMPL8Gz abgoPqTyK9:(UIFontWeight*) abgoPqTyK9 aACT1M0:(UISwitch*) aACT1M0 a0y6GqCQ:(UIColor*) a0y6GqCQ aFned7uP:(UICollectionView*) aFned7uP afAScI3aeH:(UIAlertView*) afAScI3aeH aSIjs:(UIWindow*) aSIjs a2bocUVP:(UIUserInterfaceIdiom*) a2bocUVP awVovb76Sxi:(UIColor*) awVovb76Sxi aW6qeS:(UIEdgeInsets*) aW6qeS aRkfq:(UIMenuItem*) aRkfq akM0Z:(UICollectionView*) akM0Z ajaD6RGv:(UIDocument*) ajaD6RGv a50Hw37jqfa:(UIImageView*) a50Hw37jqfa aDy0lZ:(UITableView*) aDy0lZ ahd1ZVv:(UIControlEvents*) ahd1ZVv alRMw:(UISwitch*) alRMw axqMiP:(UISearchBar*) axqMiP {
  774. NSLog(@"K7xrDIqnUHYihyA9djpZLNP6Tk23R");
  775. NSLog(@"0vE6mVWQqSTxHaOrnPjXukcNM5");
  776. NSLog(@"YWmigJxQ7aMeULkEs");
  777. NSLog(@"ckFaBDzqp4L0vJnRQdtCWHNK9bYixe3oI6X");
  778. NSLog(@"X132zk7omNI8bJKnLGqUx9rTOEF5Wwthv04iAySd");
  779. NSLog(@"8RkCMtgx6DdPThL4Zye");
  780. NSLog(@"TaUqCDLIknmFX7oR1PgE3Hrf6B4S8tNWKJ95jhMQ");
  781. NSLog(@"6SPAGeyNfsHlmw");
  782. NSLog(@"eZj2ktmLv9b4CHFydXRDuTrMxzhBpPIWUG7S38");
  783. NSLog(@"W0HsPN58ueiZADoV2XYhIqn4FmwERJdQ3U");
  784. NSLog(@"utvCaAi5bk3eKY6Fw8MJxBWQNmnd1sOT");
  785. NSLog(@"WZCjFHkiYr7EODNL0zpA8u");
  786. NSLog(@"zLZRqH3YsMAimvSBNeWPkbV7");
  787. NSLog(@"v75OcFawBIpWGV4LQEiMuT1lekgymCqUtXxdr8");
  788. NSLog(@"pvoe571HwGSy");
  789. NSLog(@"G5Mkt6i9HOVYRTcylzrAguULjNWfb0KhwpCs");
  790. NSLog(@"kEACKWaMPgOXpqowbl9FIes0mviZhYU3RyDQB");
  791. }
  792. -(void)abtKSN:(UISearchBar*) abtKSN aVnmXkt:(UIMenuItem*) aVnmXkt asSfWdlOQ2C:(UIScreen*) asSfWdlOQ2C a815A:(UIViewController*) a815A aiBWD:(UIControl*) aiBWD a6TSFejklW:(UIView*) a6TSFejklW aJTzLiIcN:(UIApplication*) aJTzLiIcN acJ5NFLIat:(UICollectionView*) acJ5NFLIat aTVXSU6wB:(UIDocument*) aTVXSU6wB aqwlXjLs:(UIAlertView*) aqwlXjLs aP2MZUmDuoq:(UITableView*) aP2MZUmDuoq aFCMty61:(UIUserInterfaceIdiom*) aFCMty61 a4Hv0DXYJ:(UIFont*) a4Hv0DXYJ aAXpo:(UIDocument*) aAXpo ac0AY9J1fD:(UICollectionView*) ac0AY9J1fD avfVMpLk:(UIApplication*) avfVMpLk a4A9SJih85D:(UIAlertView*) a4A9SJih85D aaeXI:(UIViewController*) aaeXI ab051v4:(UISearchBar*) ab051v4 aq3sMoaw6yT:(UIApplication*) aq3sMoaw6yT {
  793. NSLog(@"PtFh8voZA2QN0wqXLdf1UVxjSucRWi");
  794. NSLog(@"1z9wViyqJOXbmo3KSl");
  795. NSLog(@"sVNwjUktLdPfRK40JmovG3iSZhbAI");
  796. NSLog(@"7dQObru83NnwcRkPqClhDJ4xoyBKT20Vtve1YLm");
  797. NSLog(@"Uu8zrRyniAGQqXtd7NHhgo1cxebCYDWl2ZOBjk6");
  798. NSLog(@"eBybh4KTdXW2iGlVw8gEQZaovfNzO3JrI7AuYt");
  799. NSLog(@"czHZdMpk1EXARFUvwLy");
  800. NSLog(@"QEt1MgHLorVDRsyUbq08xSijwJuP6ZN4O");
  801. NSLog(@"oyInBQkhWbl6zsv");
  802. NSLog(@"DUk4bVRnsMJFKEetx1h2Q9");
  803. NSLog(@"wFlITPX2e1GnSLbcoOUZz6MkHVJRmiQKu5A");
  804. NSLog(@"PHqT1hiAcl4nEKuaoO28jsk653YRNtxdzZV");
  805. NSLog(@"1sxnyOZ5NLmrqDQ0Xv3Ftha97K4VIUkpA");
  806. NSLog(@"V6Iq3rZ9A2pni4cPGxloKh0ybfYk");
  807. NSLog(@"MSrdQ8hLsfzncNFyvtaVuoU0jDZx");
  808. NSLog(@"sH4GgidM1EvWXwKVD73c");
  809. NSLog(@"VoE6rABRS5nCkvLsyZha");
  810. }
  811. @end