YOUPAILZHomeVC.m 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980
  1. //
  2. // YOUPAILZHomeVC.m
  3. // MSYOUPAI
  4. //
  5. // Created by CY on 2022/2/28.
  6. // Copyright © 2022 MS. All rights reserved.
  7. //
  8. #import "YOUPAILZHomeVC.h"
  9. // controller
  10. #import "YOUPAILCUpdateVersionVC.h"
  11. #import "YOUPAILPYoungPwdVC.h"
  12. #import "YOUPAILPYoungForgetPWD.h"
  13. #import "YOUPAILZLiveAudienceVC.h"
  14. #import "YOUPAILZVipVC.h"
  15. #import "YOUPAIZYSearchVC.h"
  16. #import "YOUPAILZHomeActiveVC.h"
  17. #import "MSYMineinfoEditVC.h"
  18. //window
  19. #import "YOUPAILPYoungCloseWindow.h"
  20. #import "YOUPAILPYoungOpenWindow.h"
  21. #import "YOUPAILZSignWindow.h"
  22. #import "YOUPAIHRWebWindow.h"
  23. #import "YOUPAIZYAdvertWindow.h"
  24. #import "YOUPAIZYFirstRechargeWindow.h"
  25. #import "YOUPAILZExposureWindow.h"
  26. // category
  27. #import "UIViewController+TFPresent.h"
  28. // model
  29. #import "YOUPAILCFirstRechargeModel.h"
  30. #import "YOUPAILZHomeTVModel.h"
  31. // view
  32. #import "JXCategoryView.h"
  33. #import "SDCycleScrollView.h"
  34. #import "YOUPAILZGiftNoticeCell.h"
  35. #import "YOUPAILZInfoImperfectView.h"
  36. #import "YOUPAIFinishMsgWindow.h"
  37. #import "YOUPAILCWriteMesVC.h"
  38. @interface YOUPAILZHomeVC ()<LPYoungPwdDelegate,LPYoungCloseDelegate,LPYoungOpenDelegate,YoungModeResetDelegate,ZYFirstRechargeWindowDelegate,ZYAdvertWindowDelegate,JXCategoryViewDelegate,JXCategoryListContainerViewDelegate,SDCycleScrollViewDelegate,VQ_FinishMsgWindowDelegate>{
  39. dispatch_source_t _timer;
  40. }
  41. @property (nonatomic, weak) SDCycleScrollView *youpaipbannerView;
  42. @property (nonatomic, weak) UIView *youpaiptvBgV;
  43. @property (nonatomic, weak) UIButton *youpaipnoticeDescBtn; // 如何上电视按钮
  44. @property (nonatomic, strong) NSMutableArray <YOUPAILZHomeTVModel *> *youpaipTVDataSource; // 电视数据
  45. @property (nonatomic, weak) YOUPAILZInfoImperfectView *infoImperfectView;
  46. @property (nonatomic,strong)NSTimer *youpaipTVTimer;
  47. @property (nonatomic, assign)NSInteger currentTVLockTimer;
  48. @property (nonatomic, strong) NSString *youpaipTVUrl;
  49. @property(nonatomic,strong)SDCycleScrollView* youpaipSDCscrollView;
  50. @property (strong, nonatomic) YOUPAILCFirstRechargeModel *youpaipfirstRechargeModel;
  51. @end
  52. @implementation YOUPAILZHomeVC
  53. - (void)viewWillAppear:(BOOL)animated{
  54. [super viewWillAppear:animated];
  55. [self.navigationController setNavigationBarHidden:YES animated:animated];
  56. [self youpaifDetectVersionUpdates];
  57. [self youpaifDetectYoungMode];
  58. [self youpaifloadFinishMsgStatus];
  59. }
  60. - (void)viewWillDisappear:(BOOL)animated{
  61. [super viewWillDisappear:animated];
  62. [self.navigationController setNavigationBarHidden:NO animated:animated];
  63. }
  64. - (void)viewDidLoad {
  65. [super viewDidLoad];
  66. self.youpaipTVDataSource = [NSMutableArray array];
  67. [self youpaifinitConfig];
  68. [self youpaifloadLevelInfo];
  69. // [self youpaifrequestSignData];
  70. [self youpaifloadAdvert];
  71. [self youpaifrequestTVData];
  72. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(youpaifuserOnlineUpdate) name:@"youpaifuserOnlineUpdate" object:nil];
  73. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(youpaifTVDataUpdate:) name:@"VQUHomeTVDataNotification" object:nil];
  74. }
  75. //appid登录完善资料
  76. -(void)youpaifloadFinishMsgStatus{
  77. YOUPAILCUserModel *userModel = [LCSaveModel getUserModel];
  78. if (userModel.youpaipuserinfo.youpaipfinish_status == 0) {
  79. YOUPAIFinishMsgWindow *VC= [[YOUPAIFinishMsgWindow alloc]init];
  80. VC.vWidth = KScreenWidth - (47.5*2);
  81. VC.vHeight = 330;
  82. VC.youpaipfinishMsgdelegate = self;
  83. VC.isTouchDismiss = NO;
  84. [self TFPresentVC:VC completion:^{
  85. }];
  86. }
  87. }
  88. -(void)youpaifjumFinishMsgClick{
  89. YOUPAILCWriteMesVC *msg = [[YOUPAILCWriteMesVC alloc]init];
  90. msg.youpaipinviteCodeStr = [LCTools getPasteString];
  91. msg.isFinishMsg = YES;
  92. [self.navigationController pushViewController:msg animated:YES];
  93. }
  94. - (void)youpaifinitUI{
  95. UIView *youpaipnavV = [[UIView alloc] init];
  96. youpaipnavV.backgroundColor = [UIColor whiteColor];
  97. [self.view addSubview:youpaipnavV];
  98. [youpaipnavV mas_makeConstraints:^(MASConstraintMaker *make) {
  99. make.left.top.right.offset(0.0f);
  100. make.height.offset(StatusBarHeight + 54.0f);
  101. }];
  102. // UIButton *youpaipsearchBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  103. // [youpaipsearchBtn setImage:[UIImage imageNamed:@"vqu_images_home_search"] forState:UIControlStateNormal];
  104. // [youpaipsearchBtn addTarget:self action:@selector(youpaifsearchClick) forControlEvents:UIControlEventTouchUpInside];
  105. // [youpaipnavV addSubview:youpaipsearchBtn];
  106. // [youpaipsearchBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  107. // make.right.offset(-11.0f);
  108. // make.bottom.offset(-13.5f);
  109. // make.size.mas_offset(CGSizeMake(25.0f, 25.0f));
  110. // }];
  111. UIButton *youpaipSuperExposureBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  112. [youpaipSuperExposureBtn setImage:[UIImage imageNamed:@"vqu_images_home_super_exposure"] forState:UIControlStateNormal];
  113. [youpaipSuperExposureBtn addTarget:self action:@selector(youpaifSuperExposureClick) forControlEvents:UIControlEventTouchUpInside];
  114. [youpaipnavV addSubview:youpaipSuperExposureBtn];
  115. [youpaipSuperExposureBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  116. // make.right.equalTo(youpaipsearchBtn.mas_left).offset(-8.5f);
  117. make.right.offset(-11.0f);
  118. make.bottom.offset(-16.0f);
  119. make.size.mas_offset(CGSizeMake(72.0f, 22.0f));
  120. }];
  121. JXCategoryTitleView *youpaipcategoryView = [[JXCategoryTitleView alloc] init];
  122. youpaipcategoryView.backgroundColor = [UIColor whiteColor];
  123. youpaipcategoryView.titles = self.titles;
  124. youpaipcategoryView.delegate = self;
  125. youpaipcategoryView.titleSelectedColor = LZ273145Color;
  126. youpaipcategoryView.titleColor = LZ475A7DColor;
  127. youpaipcategoryView.titleColorGradientEnabled = YES;
  128. youpaipcategoryView.titleFont = LCFont(18.0f);
  129. youpaipcategoryView.titleSelectedFont = LCBoldFont(18.0f);
  130. youpaipcategoryView.cellWidth = JXCategoryViewAutomaticDimension;
  131. youpaipcategoryView.cellSpacing = 20.0f;
  132. youpaipcategoryView.averageCellSpacingEnabled = NO;
  133. [youpaipnavV addSubview:youpaipcategoryView];
  134. JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
  135. lineView.verticalMargin = 10.0f;
  136. lineView.indicatorHeight = 3.0f;
  137. lineView.indicatorWidth = 10.0f;
  138. lineView.indicatorColor = LZ7C69FEColor;
  139. youpaipcategoryView.indicators = @[lineView];
  140. JXCategoryListContainerView *pagerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_CollectionView delegate:self];
  141. pagerView.listCellBackgroundColor = LZFAFAFCColor;
  142. [self.view addSubview:pagerView];
  143. youpaipcategoryView.listContainer = pagerView;
  144. [youpaipcategoryView mas_makeConstraints:^(MASConstraintMaker *make) {
  145. make.left.bottom.offset(0.0f);
  146. make.right.equalTo(youpaipSuperExposureBtn.mas_left).offset(-8.5f);
  147. make.height.offset(54.0f);
  148. }];
  149. UIView *youpaiptvBgV = [[UIView alloc] init];
  150. youpaiptvBgV.layer.cornerRadius = ScaleSize(10.0f);
  151. youpaiptvBgV.clipsToBounds = YES;
  152. youpaiptvBgV.backgroundColor = [HexColorFromRGB(0xB2BAF9) colorWithAlphaComponent:0.31f];
  153. [self.view addSubview:youpaiptvBgV];
  154. self.youpaiptvBgV = youpaiptvBgV;
  155. [youpaiptvBgV mas_makeConstraints:^(MASConstraintMaker *make) {
  156. make.left.offset(ScaleSize(12.0f));
  157. make.right.offset(ScaleSize(-12.0f));
  158. make.top.offset(StatusBarHeight + 54.0f);
  159. make.height.offset(ScaleSize(0.0f));
  160. }];
  161. UIImageView *tvImgV = [[UIImageView alloc] init];
  162. tvImgV.image = [UIImage imageNamed:@"vqu_images_home_tv"];
  163. [youpaiptvBgV addSubview:tvImgV];
  164. [tvImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  165. make.left.top.bottom.offset(0.0f);
  166. make.width.offset(ScaleSize(72.0f));
  167. }];
  168. UIButton *youpaipnoticeDescBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  169. [youpaipnoticeDescBtn setImage:[UIImage imageNamed:@"vqu_images_home_tv_desc_h"] forState:UIControlStateNormal];
  170. [youpaipnoticeDescBtn setTitle:@"如何上电视" forState:UIControlStateNormal];
  171. [youpaipnoticeDescBtn setTitleColor:LZ7C69FEColor forState:UIControlStateNormal];
  172. youpaipnoticeDescBtn.titleLabel.font = LCFont(10.0f);
  173. youpaipnoticeDescBtn.layer.cornerRadius = 9.0f;
  174. youpaipnoticeDescBtn.clipsToBounds = YES;
  175. youpaipnoticeDescBtn.layer.borderColor = LZ7C69FEColor.CGColor;
  176. youpaipnoticeDescBtn.layer.borderWidth = 0.5f;
  177. [youpaipnoticeDescBtn addTarget:self action:@selector(youpaipnoticeDescBtnClick) forControlEvents:UIControlEventTouchUpInside];
  178. [youpaipnoticeDescBtn setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];
  179. [youpaiptvBgV addSubview:youpaipnoticeDescBtn];
  180. self.youpaipnoticeDescBtn = youpaipnoticeDescBtn;
  181. [youpaipnoticeDescBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  182. make.centerY.equalTo(youpaiptvBgV);
  183. make.right.offset(-10.0f);
  184. make.size.mas_offset(CGSizeMake(70.0f, 18.0f));
  185. }];
  186. [pagerView mas_makeConstraints:^(MASConstraintMaker *make) {
  187. make.left.right.offset(0.0f);
  188. make.bottom.offset(-TabbarHeight);
  189. make.top.equalTo(youpaiptvBgV.mas_bottom).offset(9.0f);
  190. }];
  191. SDCycleScrollView *youpaipbannerView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil];
  192. youpaipbannerView.autoScrollTimeInterval = 3.0;//2s轮播
  193. // youpaipbannerView.imageURLStringsGroup = @[@"",@""];
  194. youpaipbannerView.pageControlStyle = SDCycleScrollViewPageContolStyleNone;
  195. youpaipbannerView.backgroundColor = [UIColor clearColor];
  196. youpaipbannerView.scrollDirection = UICollectionViewScrollDirectionVertical;
  197. youpaipbannerView.pageControlStyle = SDCycleScrollViewPageContolStyleNone;
  198. youpaipbannerView.mainView.userInteractionEnabled = NO;
  199. [youpaiptvBgV addSubview:youpaipbannerView];
  200. self.youpaipbannerView = youpaipbannerView;
  201. [youpaipbannerView mas_makeConstraints:^(MASConstraintMaker *make) {
  202. make.top.bottom.offset(0.0f);
  203. make.left.equalTo(tvImgV.mas_right).offset(0.0f);
  204. make.right.equalTo(youpaipnoticeDescBtn.mas_left).offset(0.0f);
  205. }];
  206. @weakify(self);
  207. [youpaipbannerView setItemDidScrollOperationBlock:^(NSInteger currentIndex) {
  208. @strongify(self);
  209. NSInteger lock_time = [self.youpaipTVDataSource[currentIndex].youpaiplock_time integerValue];
  210. if (lock_time != 0) {
  211. self.currentTVLockTimer = lock_time;
  212. self.youpaipTVDataSource[currentIndex].youpaiplock_time = @"0";
  213. [self youpaifstartTimer];
  214. }else{
  215. [self youpaifstopTimer];
  216. }
  217. if (lock_time == 0) {
  218. lock_time = 3;
  219. }
  220. self.youpaipbannerView.autoScrollTimeInterval = lock_time;
  221. }];
  222. [self loadRightSDCView];
  223. [self youpaifinitInfoImperfectView];
  224. }
  225. - (void)youpaipnoticeDescBtnClick{
  226. ZCBaseWebVC * vc = [[ZCBaseWebVC alloc]init];
  227. vc.contentUrl = self.youpaipTVUrl;
  228. [self.navigationController pushViewController:vc animated:YES];
  229. }
  230. -(void)loadRightSDCView{
  231. SDCycleScrollView *rightBannerView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(KScreenWidth - 12.0f - 49.0f, KScreenHeight - TabbarHeight - 12.0f-39-19-50, 50, 50.0f) delegate:self placeholderImage:[UIImage imageNamed:@""]];
  232. self.youpaipSDCscrollView = rightBannerView;
  233. rightBannerView.bannerImageViewContentMode = UIViewContentModeScaleAspectFit;
  234. rightBannerView.autoScrollTimeInterval = 3.0;//2s轮播
  235. rightBannerView.pageControlStyle = SDCycleScrollViewPageContolStyleNone;
  236. rightBannerView.backgroundColor = [UIColor clearColor];
  237. [self.view addSubview:rightBannerView];
  238. [self youpaifloadFirstRecharge];
  239. }
  240. -(void)youpaifloadFirstRecharge{
  241. [LCHttpHelper requestWithURLString:GetAdvert parameters:@{@"position":@"2"} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  242. NSDictionary* dict = (NSDictionary*)responseObject;
  243. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  244. if (code==0) {//成功
  245. self.youpaipfirstRechargeModel = [YOUPAILCFirstRechargeModel mj_objectWithKeyValues:dict[@"data"]];
  246. NSMutableArray *imgUrlArray = [NSMutableArray new];
  247. for (YOUPAILCBannerModel* model in self.youpaipfirstRechargeModel.youpaiplist) {
  248. [imgUrlArray addObject:[LCTools getImageUrlWithAddress:model.youpaipimage]];
  249. }
  250. self.youpaipSDCscrollView.imageURLStringsGroup = imgUrlArray;
  251. if (self.youpaipfirstRechargeModel.youpaipis_open == 1) {
  252. self.youpaipSDCscrollView.hidden = NO;
  253. }else{
  254. self.youpaipSDCscrollView.hidden = YES;
  255. }
  256. }
  257. } failure:^(NSError *error) {}];
  258. }
  259. #pragma mark - SDCycleScrollViewDelegate
  260. - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index
  261. {
  262. YOUPAILCBannerModel* model = self.youpaipfirstRechargeModel.youpaiplist[index];
  263. if (model.youpaiplink_type==1) {
  264. ZCBaseWebVC* baseWeb = [[ZCBaseWebVC alloc]init];
  265. baseWeb.contentUrl = model.youpaiplink_url;
  266. [self.navigationController pushViewController:baseWeb animated:YES];
  267. }else if (model.youpaiplink_type==2||model.youpaiplink_type==3){
  268. [self youpaifpageToStr:model.youpaiplink_url];
  269. }
  270. }
  271. // 开始计时
  272. - (void)youpaifstartTimer{
  273. if (self.youpaipTVTimer == nil) {
  274. self.youpaipTVTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(youpaiftimerAction) userInfo:nil repeats:YES];
  275. [[NSRunLoop currentRunLoop] addTimer:self.youpaipTVTimer forMode:NSRunLoopCommonModes];
  276. }
  277. [self.youpaipnoticeDescBtn setImage:[UIImage imageNamed:@"vqu_images_home_tv_desc_n"] forState:UIControlStateNormal];
  278. [self.youpaipnoticeDescBtn setTitle:[NSString stringWithFormat:@"锁屏中%@s",@(self.currentTVLockTimer)] forState:UIControlStateNormal];
  279. [self.youpaipnoticeDescBtn setTitleColor:LZA3AABEColor forState:UIControlStateNormal];
  280. self.youpaipnoticeDescBtn.layer.borderColor = LZA3AABEColor.CGColor;
  281. }
  282. // 结束计时
  283. - (void)youpaifstopTimer{
  284. [self.youpaipTVTimer invalidate];
  285. self.youpaipTVTimer = nil;
  286. [self.youpaipnoticeDescBtn setImage:[UIImage imageNamed:@"vqu_images_home_tv_desc_h"] forState:UIControlStateNormal];
  287. [self.youpaipnoticeDescBtn setTitle:@"如何上电视" forState:UIControlStateNormal];
  288. self.youpaipnoticeDescBtn.layer.borderColor = LZ7C69FEColor.CGColor;
  289. [self.youpaipnoticeDescBtn setTitleColor:LZ7C69FEColor forState:UIControlStateNormal];
  290. }
  291. - (void)youpaiftimerAction{
  292. self.currentTVLockTimer --;
  293. [self.youpaipnoticeDescBtn setImage:[UIImage imageNamed:@"vqu_images_home_tv_desc_n"] forState:UIControlStateNormal];
  294. [self.youpaipnoticeDescBtn setTitle:[NSString stringWithFormat:@"锁屏中%@s",@(self.currentTVLockTimer)] forState:UIControlStateNormal];
  295. [self.youpaipnoticeDescBtn setTitleColor:LZA3AABEColor forState:UIControlStateNormal];
  296. if (self.currentTVLockTimer < 0) {
  297. [self youpaifstopTimer];
  298. }
  299. }
  300. - (void)youpaifinitInfoImperfectView{
  301. if ([LCSaveData getWhiteVersion]) {
  302. return;
  303. }
  304. YOUPAILZInfoImperfectView *infoImperfectView = [[YOUPAILZInfoImperfectView alloc] initWithFrame:CGRectMake(12, KScreenHeight, KScreenWidth - 24.0f, 39.0f)];
  305. @weakify(self);
  306. [infoImperfectView setGoEditUserInfoPageBlock:^{
  307. @strongify(self);
  308. MSYMineinfoEditVC * editvc = [MSYMineinfoEditVC new];
  309. [self.navigationController pushViewController:editvc animated:true];
  310. }];
  311. [self.view addSubview:infoImperfectView];
  312. self.infoImperfectView = infoImperfectView;
  313. }
  314. /** 如果你需要自定义cell样式,请在实现此代理方法返回你的自定义cell的class。 */
  315. - (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view{
  316. if (view == self.youpaipbannerView) {
  317. return YOUPAILZGiftNoticeCell.class;
  318. }
  319. return nil;
  320. }
  321. /** 如果你自定义了cell样式,请在实现此代理方法为你的cell填充数据以及其它一系列设置 */
  322. - (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view{
  323. YOUPAILZGiftNoticeCell *itemCell = (YOUPAILZGiftNoticeCell *)cell;
  324. [itemCell youpaifreloadWithModel:self.youpaipTVDataSource[index]];
  325. }
  326. - (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView{
  327. return self.titles.count;
  328. }
  329. - (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index{
  330. YOUPAILZHomeActiveVC *vc = [[YOUPAILZHomeActiveVC alloc] init];
  331. vc.youpaiprequestUrl = self.urls[index];
  332. @weakify(self);
  333. [vc setShowUserInfoImperfectBlock:^(BOOL isShow) {
  334. @strongify(self);
  335. if (isShow) {
  336. [UIView animateWithDuration:0.25f animations:^{
  337. self.infoImperfectView.mj_y = KScreenHeight - TabbarHeight - 12.0f - self.infoImperfectView.mj_h;
  338. }];
  339. }
  340. }];
  341. return vc;
  342. }
  343. - (NSArray <NSString *> *)titles{
  344. return @[@"推荐",@"在线"];
  345. }
  346. - (NSArray<NSString *> *)urls{
  347. return @[HomeRecommend,HomeOnlineList];
  348. }
  349. /// 搜索
  350. - (void)youpaifsearchClick{
  351. YOUPAIZYSearchVC* seach = [[YOUPAIZYSearchVC alloc]init];
  352. [self pushEffectPresentToVC:seach];
  353. }
  354. /// 超级曝光
  355. - (void)youpaifSuperExposureClick{
  356. YOUPAILZExposureWindow *window = [[YOUPAILZExposureWindow alloc] init];
  357. @weakify(self);
  358. [window setGoVipPageBlock:^{
  359. @strongify(self);
  360. YOUPAILZVipVC* vc = [[YOUPAILZVipVC alloc]init];
  361. [self.navigationController pushViewController:vc animated:YES];
  362. }];
  363. [self TFPresentVC:window completion:nil];
  364. }
  365. /// 获取上电视数据
  366. - (void)youpaifrequestTVData{
  367. @weakify(self);
  368. [LCHttpHelper requestWithURLString:GetOntvList parameters:@{} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  369. @strongify(self);
  370. NSDictionary* dict = (NSDictionary*)responseObject;
  371. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  372. if (code==0) {//成功
  373. self.youpaipTVDataSource = [YOUPAILZHomeTVModel mj_objectArrayWithKeyValuesArray:[dict objectForKey:@"data"]];
  374. NSMutableArray *arr = [NSMutableArray array];
  375. for (YOUPAILZHomeTVModel *model in self.youpaipTVDataSource) {
  376. [arr addObject:@""];
  377. }
  378. if (arr.count != 0) {
  379. self.youpaiptvBgV.hidden = NO;
  380. [self.youpaiptvBgV mas_remakeConstraints:^(MASConstraintMaker *make) {
  381. make.left.offset(ScaleSize(12.0f));
  382. make.right.offset(ScaleSize(-12.0f));
  383. make.top.offset(StatusBarHeight + 54.0f + ScaleSize(9.0f));
  384. make.height.offset(ScaleSize(60.0f));
  385. }];
  386. }
  387. self.youpaipbannerView.imageURLStringsGroup = arr;
  388. }
  389. } failure:^(NSError *error) {
  390. }];
  391. }
  392. - (void)youpaifTVDataUpdate:(NSNotification *)notify{
  393. NSDictionary *dataDic = notify.userInfo;
  394. YOUPAILZHomeTVModel *notifyModel = dataDic[@"model"];
  395. if (self.youpaipbannerView.currentIndex + 1 >= self.youpaipTVDataSource.count - 1) {
  396. [self.youpaipTVDataSource addObject:notifyModel];
  397. }else{
  398. [self.youpaipTVDataSource insertObject:notifyModel atIndex:self.youpaipbannerView.currentIndex + 1];
  399. }
  400. NSMutableArray *arr = [NSMutableArray array];
  401. for (YOUPAILZHomeTVModel *model in self.youpaipTVDataSource) {
  402. [arr addObject:@""];
  403. }
  404. self.youpaipbannerView.imageURLStringsGroup = arr;
  405. [self.youpaipbannerView makeScrollViewScrollToIndex:self.youpaipbannerView.currentIndex];
  406. }
  407. #pragma mark-广告弹框
  408. -(void)youpaifloadAdvert{
  409. @weakify(self);
  410. [LCHttpHelper requestWithURLString:GetAdvert parameters:@{@"source_id":@"2"} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  411. @strongify(self);
  412. NSDictionary* dict = (NSDictionary*)responseObject;
  413. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  414. if (code==0) {//成功
  415. NSInteger status = [dict[@"data"][@"advert"][@"status"] integerValue];
  416. NSString *image = dict[@"data"][@"advert"][@"image"];
  417. NSInteger link_type = [dict[@"data"][@"advert"][@"link_type"] integerValue];
  418. NSString *link_url = dict[@"data"][@"advert"][@"link_url"];
  419. NSInteger window_type = [dict[@"data"][@"advert"][@"window_type"] integerValue];
  420. if (status == 1 && image.length>5) {
  421. if (window_type == 2) {
  422. YOUPAIHRWebWindow *window = [[YOUPAIHRWebWindow alloc] init];
  423. window.isTouchDismiss = YES;
  424. window.youpaipurl = dict[@"data"][@"advert"][@"window_link"];
  425. window.youpaipwidth = [dict[@"data"][@"advert"][@"width"] floatValue];
  426. window.youpaipheight = [dict[@"data"][@"advert"][@"height"] floatValue];
  427. window.youpaipgravity = dict[@"data"][@"advert"][@"gravity"];
  428. [self TFPresentVC:window completion:^{}];
  429. }else{
  430. YOUPAIZYAdvertWindow *VC= [[YOUPAIZYAdvertWindow alloc]init];
  431. VC.youpaipdelegate = self;
  432. VC.vWidth = KScreenWidth -30;
  433. VC.vHeight = KScreenWidth-30;
  434. VC.youpaipimageurl = image;
  435. VC.youpaiplink_type = link_type;
  436. VC.youpaiplink_url = link_url;
  437. VC.isTouchDismiss = YES;
  438. [self TFPresentVC:VC completion:^{}];
  439. }
  440. }
  441. }
  442. } failure:^(NSError *error) {}];
  443. }
  444. //获取首冲弹框数据
  445. -(void)youpaifloadAdvert1{
  446. if ([NSStringFromClass([LCTools getContainNavigationControllerCurrentVC].class) isEqual:@"YOUPAILZChatRoomVC"]) {
  447. return;
  448. }
  449. @weakify(self);
  450. [LCHttpHelper requestWithURLString:GetAdvert parameters:@{@"position":@"6"} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  451. @strongify(self);
  452. NSDictionary* dict = (NSDictionary*)responseObject;
  453. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  454. if (code==0) {//成功
  455. YOUPAILCFirstRechargeModel *firstRechargeModel1 = [YOUPAILCFirstRechargeModel mj_objectWithKeyValues:dict[@"data"]];
  456. for (int i = 0; i<firstRechargeModel1.youpaiplist.count; i++) {
  457. YOUPAILCBannerModel* model = firstRechargeModel1.youpaiplist[i];
  458. if (model.youpaipdelayed_time == 0) {
  459. [self youpaifshowAdvertAlertWithModel:model];
  460. }else{
  461. [self performSelector:@selector(youpaifshowAdvertAlertWithModel:) withObject:model afterDelay:model.youpaipdelayed_time];
  462. }
  463. }
  464. }
  465. } failure:^(NSError *error) {}];
  466. }
  467. - (void)youpaifshowAdvertAlertWithModel:(YOUPAILCBannerModel *)model{
  468. if([NSStringFromClass([LCTools getCurrentVC].class) isEqual:@"YOUPAILZLiveAnchorVC"]) {
  469. return;
  470. }
  471. if([LCTools getContainNavigationControllerCurrentVC].tabBarController == nil) {
  472. return;
  473. }
  474. if (model.youpaipwindow_type == 2) {
  475. YOUPAIHRWebWindow *window = [[YOUPAIHRWebWindow alloc] init];
  476. window.isTouchDismiss = YES;
  477. window.youpaipurl = model.youpaipwindow_link;
  478. window.youpaipwidth = model.youpaipwidth;
  479. window.youpaipheight = model.youpaipheight;
  480. window.youpaipgravity = model.youpaipgravity;
  481. [[LCTools getCurrentVC] TFPresentVC:window completion:^{}];
  482. }else{
  483. YOUPAIZYFirstRechargeWindow *VC= [[YOUPAIZYFirstRechargeWindow alloc]init];
  484. VC.youpaipdelegate = self;
  485. VC.vWidth = KScreenWidth -30;
  486. VC.vHeight = KScreenWidth-30;
  487. VC.youpaipimageurl = model.youpaipimage;
  488. VC.youpaiplink_type = model.youpaiplink_type;
  489. VC.youpaiplink_url = model.youpaiplink_url;
  490. VC.isTouchDismiss = YES;
  491. [[LCTools getCurrentVC] TFPresentVC:VC completion:^{}];
  492. }
  493. }
  494. #pragma mark - ZYFirstRechargeWindowDelegate
  495. - (void)youpaifLZFirstRechargeClickAdverImage:(NSInteger)link_type andUrl:(NSString *)link_url{
  496. if (link_type == 1) {
  497. ZCBaseWebVC* baseWeb = [[ZCBaseWebVC alloc]init];
  498. baseWeb.contentUrl = link_url;
  499. UIViewController *vc = [LCTools getContainNavigationControllerCurrentVC];
  500. if([NSStringFromClass([LCTools getContainNavigationControllerCurrentVC].class) isEqual:@"YOUPAILZLiveAudienceVC"]) {
  501. YOUPAILZLiveAudienceVC *audienceVC = (YOUPAILZLiveAudienceVC *)vc;
  502. audienceVC.youpaipisNotPanClose = YES;
  503. }
  504. [vc.navigationController pushViewController:baseWeb animated:YES];
  505. }else if (link_type==2 || link_type==3){
  506. UIViewController *vc = [LCTools getContainNavigationControllerCurrentVC];
  507. if([NSStringFromClass([LCTools getContainNavigationControllerCurrentVC].class) isEqual:@"YOUPAILZLiveAudienceVC"]) {
  508. YOUPAILZLiveAudienceVC *audienceVC = (YOUPAILZLiveAudienceVC *)vc;
  509. audienceVC.youpaipisNotPanClose = YES;
  510. }
  511. [vc youpaifpageToStr:link_url];
  512. }else{
  513. }
  514. }
  515. #pragma mark -ZYAdvertWindowDelegate
  516. -(void)youpaifclickAdverImage:(NSInteger)link_type andUrl:(NSString *)link_url
  517. {
  518. if (link_type == 1) {
  519. ZCBaseWebVC* baseWeb = [[ZCBaseWebVC alloc]init];
  520. baseWeb.contentUrl = link_url;
  521. [self.navigationController pushViewController:baseWeb animated:YES];
  522. }else if (link_type==2 || link_type==3){
  523. [self youpaifpageToStr:link_url];
  524. }else{
  525. YOUPAILZVipVC* baseWeb = [[YOUPAILZVipVC alloc]init];
  526. [self.navigationController pushViewController:baseWeb animated:YES];
  527. }
  528. }
  529. /// 系统配置信息
  530. - (void)youpaifinitConfig{
  531. [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[LCTools getImageUrlWithAddress:@"/v1.3/dress/bubble/lALPD3zUOqg7eJA7bg_110_59.png"] options:SDWebImageDownloaderUseNSURLCache progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {} completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
  532. if(data != nil){
  533. [LCSaveData saveBubbleWithKey:[LCTools getImageUrlWithAddress:@"/v1.3/dress/bubble/lALPD3zUOqg7eJA7bg_110_59.png"].absoluteString Data:data];
  534. }
  535. }];
  536. @weakify(self);
  537. [LCHttpHelper requestWithURLString:AppConfig parameters:nil needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  538. @strongify(self);
  539. NSDictionary* dict = (NSDictionary*)responseObject;
  540. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  541. if (code==0) {//成功
  542. // self.youpaipswitch_index = [[[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"switch_index"] integerValue];
  543. NSString* sysId = [[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"sysId"];
  544. NSString* servId = [[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"servId"];
  545. NSString* appurl = [[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"appurl"];
  546. NSArray* serviceIdArr = [[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"serviceId"];
  547. NSString *audit_status = [NSString stringWithFormat:@"%@",[[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"audit_status"]];
  548. NSString *rankH5Url = [[dict objectForKey:@"data"]objectForKey:@"rank_url"];
  549. NSInteger free = [[[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"free"] integerValue];
  550. // NSInteger timeOut = [[[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"timeOut"] integerValue];
  551. NSInteger isLive = [[[[dict objectForKey:@"data"]objectForKey:@"config"] objectForKey:@"is_live"] integerValue];
  552. self.youpaipTVUrl = [[[dict objectForKey:@"data"]objectForKey:@"webUrl"] objectForKey:@"tv"];
  553. if ([LCSaveModel getUserModel].youpaipuserinfo.youpaipfinish_status != 0) {
  554. [self youpaifloadAdvert1];
  555. }
  556. [LCSaveData saveAppUrl:appurl];
  557. [LCSaveData saveSysId:sysId];
  558. [LCSaveData saveServerId:servId];
  559. [LCSaveData saveServiceIdArr:serviceIdArr];
  560. [LCSaveData saveRankH5Url:rankH5Url];
  561. [LCSaveData saveIMPrice:free];
  562. [LCSaveData saveIsLive:isLive];
  563. NSArray *bubbles = [[[dict objectForKey:@"data"]objectForKey:@"dress"] objectForKey:@"bubble"];
  564. for (NSDictionary *bubbleDist in bubbles) {
  565. [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[LCTools getImageUrlWithAddress:[bubbleDist objectForKey:@"bubble"]] options:SDWebImageDownloaderUseNSURLCache progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {} completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
  566. if(data != nil){
  567. [LCSaveData saveBubbleWithKey:[LCTools getImageUrlWithAddress:[bubbleDist objectForKey:@"bubble"]].absoluteString Data:data];
  568. }
  569. }];
  570. }
  571. BOOL onlineStatus = NO;
  572. if (audit_status.length != 0) {
  573. onlineStatus = ![audit_status boolValue];
  574. }
  575. if (onlineStatus != [LCSaveData getOnlineVersion]) {
  576. [LCSaveData saveOnlineVersion:onlineStatus];
  577. /// 线上版本状态改变,发送通知
  578. [[NSNotificationCenter defaultCenter] postNotificationName:@"OnlineVersion" object:nil userInfo:nil];
  579. }
  580. [self youpaifinitUI];
  581. }
  582. } failure:^(NSError *error) {
  583. }];
  584. }
  585. #pragma mark 版本更新
  586. /// 检测版本更新
  587. - (void)youpaifDetectVersionUpdates{
  588. //检查更新 根据时间戳 设定12小时/一天之内调用一次 add by leo
  589. NSString* updateTime = [LCSaveData getUpdateTime];
  590. NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  591. [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  592. if (!updateTime) {
  593. [self youpaifcheckAppUpdate:NO];//检查版本更新
  594. }else{
  595. //获取与当前的时间差
  596. NSDate *timeDate = [dateFormatter dateFromString:updateTime];
  597. NSTimeInterval timeInterval = [timeDate timeIntervalSinceNow];
  598. timeInterval = -timeInterval;
  599. //超过30天
  600. if (timeInterval>60*60*24) {
  601. [self youpaifcheckAppUpdate:NO];
  602. }else{
  603. }
  604. }
  605. }
  606. /// 获取等级图标
  607. - (void)youpaifloadLevelInfo{
  608. [LCHttpHelper requestWithURLString:LevelInfo parameters:nil needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  609. NSDictionary* dict = (NSDictionary*)responseObject;
  610. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  611. if (code==0) {//成功
  612. NSDictionary* levelInfo = [dict objectForKey:@"data"];
  613. [LCSaveData saveLevelInfo:levelInfo];
  614. }
  615. } failure:^(NSError *error) {
  616. }];
  617. [LCHttpHelper requestWithURLString:AllBadge parameters:nil needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  618. NSDictionary* dict = (NSDictionary*)responseObject;
  619. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  620. if (code==0) {//成功
  621. NSDictionary* data = [dict objectForKey:@"data"];
  622. NSDictionary* badge = [data objectForKey:@"badge"];
  623. NSDictionary* noble = [data objectForKey:@"noble"];
  624. [LCSaveData saveBadgeInfo:badge];
  625. [LCSaveData saveNobleInfo:noble];
  626. }
  627. } failure:^(NSError *error) {
  628. }];
  629. }
  630. /// 获取签到数据
  631. - (void)youpaifrequestSignData{
  632. @weakify(self);
  633. [LCHttpHelper requestWithURLString:UserSign parameters:nil needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  634. @strongify(self);
  635. NSDictionary* dict = (NSDictionary*)responseObject;
  636. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  637. if (code==0) {//成功
  638. NSString *msg = [[dict objectForKey:@"data"] objectForKey:@"msg"];
  639. NSString *beans = [[dict objectForKey:@"data"] objectForKey:@"beans"];
  640. NSString *link = [[dict objectForKey:@"data"] objectForKey:@"link"];
  641. YOUPAILZSignWindow *vc = [[YOUPAILZSignWindow alloc]init];
  642. vc.youpaipmsg = msg;
  643. vc.youpaipbeans = beans;
  644. vc.youpaiplink = link;
  645. vc.isTouchDismiss = YES;
  646. [vc setGoSignBlock:^(NSString * _Nonnull signUrl) {
  647. @strongify(self);
  648. ZCBaseWebVC* vc = [[ZCBaseWebVC alloc]init];
  649. vc.contentUrl = signUrl;
  650. [self.navigationController pushViewController:vc animated:YES];
  651. }];
  652. [self TFPresentVC:vc completion:^{
  653. }];
  654. }
  655. } failure:^(NSError *error) {}];
  656. }
  657. /// 更新在线状态
  658. -(void)youpaifuserOnlineUpdate{
  659. NSLog(@"youpaifuserOnlineUpdate 更新在线状态");
  660. if (self->_timer) {
  661. dispatch_source_cancel(self->_timer);
  662. }
  663. if ([LCSaveData getTokenString] == nil) {
  664. return;
  665. }
  666. [LCHttpHelper requestWithURLString:onlineUpdate parameters:nil needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  667. NSDictionary* dict = (NSDictionary*)responseObject;
  668. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  669. if (code==0) {//成功
  670. NSInteger user_online_open = [[[dict objectForKey:@"data"]objectForKey:@"user_online_open"] integerValue];
  671. int user_online_time = [[[dict objectForKey:@"data"]objectForKey:@"user_online_time"] intValue];
  672. if (user_online_open == 1) {
  673. __block int timeout= user_online_time;
  674. dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
  675. self->_timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
  676. dispatch_source_set_timer(self->_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
  677. dispatch_source_set_event_handler(self->_timer, ^{
  678. if(timeout<=0){
  679. dispatch_source_cancel(self->_timer);
  680. dispatch_async(dispatch_get_main_queue(), ^{
  681. [self youpaifuserOnlineUpdate];
  682. });
  683. }else{
  684. NSString *strTime = [NSString stringWithFormat:@"%.2dS",timeout];
  685. dispatch_async(dispatch_get_main_queue(), ^{
  686. //设置界面的按钮显示 根据自己需求设置
  687. // NSLog(@"strTime strTime %@",strTime);
  688. //
  689. // NSLog(@"当前时间挫%lld",[[LCTools getCurrentTimestamp] longLongValue]);
  690. });
  691. timeout--;
  692. }});
  693. dispatch_resume(self->_timer);
  694. }
  695. }
  696. } failure:^(NSError *error) {}];
  697. }
  698. //add bu leo checkVersion 检查版本更新
  699. -(void)youpaifcheckAppUpdate:(BOOL)need
  700. {
  701. [LCHttpHelper requestWithURLString:CheckUpdateVersion parameters:nil needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  702. NSDictionary *dict = (NSDictionary *)responseObject;
  703. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  704. if (code == 0){
  705. NSString *newVersion = [[dict objectForKey:@"data"] objectForKey:@"newversion"];
  706. // NSString *myVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
  707. NSString *app_build = [[UIApplication sharedApplication] appVersion];
  708. if ([newVersion compare:app_build options:NSCaseInsensitiveSearch]>0) {
  709. YOUPAILCUpdateVersionVC *VC= [[YOUPAILCUpdateVersionVC alloc]init];
  710. VC.youpaipenforce = [[[dict objectForKey:@"data"] objectForKey:@"enforce"]integerValue];
  711. VC.youpaipdownLoadUrl = [[dict objectForKey:@"data"] objectForKey:@"downloadurl"];
  712. VC.youpaipversionStr = [NSString stringWithFormat:@"版本号:%@",newVersion];
  713. VC.youpaipupdateText = [[dict objectForKey:@"data"] objectForKey:@"upgradetext"];
  714. VC.vWidth = KScreenWidth - 70;
  715. NSDictionary *attrs = @{NSFontAttributeName : [UIFont systemFontOfSize:14]};
  716. CGSize maxSize= [VC.youpaipupdateText boundingRectWithSize:CGSizeMake(VC.vWidth-116,66) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
  717. if(maxSize.height<28)
  718. {
  719. maxSize.height = 28;
  720. }else{
  721. maxSize.height = maxSize.height+20;
  722. }
  723. VC.vHeight = VC.vWidth*203/305.0 +86 + maxSize.height + 120;
  724. VC.isTouchDismiss = YES;
  725. if(VC.youpaipenforce == NO)
  726. [self TFPresentVC:VC completion:^{
  727. NSDate *newData = [NSDate date];
  728. NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  729. [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  730. NSString *dataString = [dateFormatter stringFromDate:newData];
  731. [LCSaveData saveUpdateTime:dataString];
  732. }];
  733. else{
  734. VC.isTouchDismiss = NO;
  735. [self TFPresentVC:VC completion:^{
  736. }];
  737. }
  738. }else{
  739. NSLog(@"dict === %@,%d",dict,need);
  740. if (need) {
  741. [ZCHUDHelper showTitle:@"已经是最新版本"];
  742. }
  743. }
  744. }
  745. NSLog(@"dict === %@,%d",dict,need);
  746. } failure:^(NSError *error) {
  747. }];
  748. }
  749. #pragma mark 青少年模式
  750. /// 检测青少年模式
  751. - (void)youpaifDetectYoungMode{
  752. //青少年模式
  753. //先判断是否设置了青少年模式
  754. kAppDelegate.kadolescentStatus = [LCSaveData getYoungMode];
  755. if(kAppDelegate.kadolescentStatus == 1){
  756. [self youpaifshowYoungCloseWindow];
  757. }else{
  758. //在判断是否提醒过
  759. //检查更新 根据时间戳 设定12小时/一天之内调用一次
  760. NSString* updateTime = [LCSaveData getYoungNoticeTime];
  761. NSDate * newData = [NSDate date];
  762. NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  763. [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  764. if (!updateTime) {
  765. NSString* dataString = [dateFormatter stringFromDate:newData];
  766. [LCSaveData saveYoungNoticeTime:dataString];
  767. //弹出设置青少年模式弹窗
  768. //要不要检查一下status 防止卸载后重装
  769. @weakify(self);
  770. [self youpaifAdenscentStatus:^{
  771. @strongify(self);
  772. [self youpaifshowYoungCloseWindow];
  773. } closed:^{
  774. @strongify(self);
  775. [self youpaifshowYongNoticeWindow];
  776. }];
  777. }else{
  778. //获取与当前的时间差
  779. NSDate *timeDate = [dateFormatter dateFromString:updateTime];
  780. NSTimeInterval timeInterval = [timeDate timeIntervalSinceNow];
  781. timeInterval = -timeInterval;
  782. //超过30天
  783. if (timeInterval>60*60*24) {
  784. NSString* dataString = [dateFormatter stringFromDate:newData];
  785. [LCSaveData saveYoungNoticeTime:dataString];
  786. //弹出青少年模式弹窗
  787. [self youpaifshowYongNoticeWindow];
  788. }else{
  789. }
  790. }
  791. }
  792. }
  793. //显示设置青少年模式通知
  794. -(void)youpaifshowYongNoticeWindow
  795. {
  796. YOUPAILPYoungOpenWindow *VC= [[YOUPAILPYoungOpenWindow alloc]init];
  797. VC.vWidth = 313.0f;
  798. VC.vHeight = 357.0f;
  799. VC.youpaipdelegate = self;
  800. VC.isTouchDismiss = YES;
  801. [self TFPresentVC:VC completion:^{
  802. }];
  803. }
  804. -(void)youpaifshowYoungCloseWindow
  805. {
  806. YOUPAILPYoungCloseWindow *VC= [[YOUPAILPYoungCloseWindow alloc]init];
  807. VC.vWidth = 313.0f;
  808. VC.vHeight = 357.0f;
  809. VC.youpaipdelegate = self;
  810. VC.isTouchDismiss = NO;
  811. [self TFPresentVC:VC completion:^{
  812. }];
  813. }
  814. //判断青少年模式状态
  815. -(void)youpaifAdenscentStatus:(void(^)(void))openBlock closed:(void(^)(void))closeBlock{
  816. [LCHttpHelper requestWithURLString:GetAdolescentStatus parameters:nil needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  817. NSDictionary* dict = (NSDictionary*)responseObject;
  818. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  819. if (code==0) {//成功
  820. NSInteger adoleStatus=[dict[@"data"][@"is_set_adolescent"] integerValue];
  821. if(adoleStatus==1)
  822. {
  823. openBlock();
  824. }
  825. else
  826. {
  827. closeBlock();
  828. }
  829. }
  830. else
  831. {
  832. }
  833. } failure:^(NSError *error) {
  834. [ZCHUDHelper showTitle:error.mj_JSONString showtime:1];
  835. [self dismissViewControllerAnimated:YES completion:nil];
  836. }];
  837. }
  838. #pragma mark LPYoungOpenDelegate 提示或者关闭弹框的回调
  839. -(void)youpaifyoungSettingPwd{//设置未成年模式的密码
  840. YOUPAILPYoungPwdVC *vc = [[YOUPAILPYoungPwdVC alloc]init];
  841. vc.youpaipdelegate = self;
  842. vc.youpaippwdStatus = TFPWDSETTING;
  843. [self.navigationController pushViewController:vc animated:YES];
  844. }
  845. //忘记密码
  846. -(void)youpaifyoungForgetPwd{
  847. YOUPAILPYoungForgetPWD *vc = [[YOUPAILPYoungForgetPWD alloc]init];
  848. vc.youpaipdelegate = self;
  849. [self.navigationController pushViewController:vc animated:YES];
  850. //关闭或打开 发通知 或者回调
  851. /*
  852. YOUPAILPYoungPwdVC *vc = [[YOUPAILPYoungPwdVC alloc]init];
  853. vc.pwdStatus = TFPWDCLOSE;
  854. [self.navigationController pushViewController:vc animated:YES];
  855. */
  856. }
  857. -(void)youpaifyoungClose{
  858. YOUPAILPYoungPwdVC *vc = [[YOUPAILPYoungPwdVC alloc]init];
  859. vc.youpaippwdStatus = TFPWDCLOSE;
  860. vc.youpaipdelegate = self;
  861. [self.navigationController pushViewController:vc animated:YES];
  862. }
  863. #pragma mark 密码输入确认回调
  864. -(void)youpaifswitchYounModel:(NSInteger)isopen{
  865. if(isopen){
  866. [self youpaifshowYoungCloseWindow];
  867. [LCSaveData saveYoungMode:YES];
  868. kAppDelegate.kadolescentStatus =1;
  869. }else{
  870. [LCSaveData saveYoungMode:NO];
  871. kAppDelegate.kadolescentStatus = 0;
  872. }
  873. }
  874. @end