// // JXBigReelVc.m // shiku_im // // Created by 123 on 2020/5/25. // Copyright © 2020 Reese. All rights reserved. // #import "JXBigReelVc.h" #import "LuckyDrawView.h" #import "UIView+LK.h" #import "UIViewExt.h" #import "UIView+Frame.h" #import "UUMarqueeView.h" #import "packageRoolModel.h" #import "JXWheelView.h" #import "LNNumberScrollAnimatedView.h" #import #import "JXRelayVC.h" #import "JXBigReelView.h" #import "JXALLShowView.h" @interface JXBigReelVc () @property (nonatomic,strong) NSMutableArray *dataArr; @property (nonatomic,strong) UUMarqueeView * upwardMultiMarqueeView; @property (nonatomic,weak) UILabel *cjNums; @property (nonatomic,strong) UIImageView *bgImageView; @property (nonatomic,strong) NSMutableArray *jpDataArr; @property (nonatomic,weak) LNNumberScrollAnimatedView *socreTensDigitAnimation; @property (nonatomic ,strong) LNNumberScrollAnimatedView *socreDigitAnimation; @property (nonatomic ,strong) LNNumberScrollAnimatedView *socreAnimation; @property (nonatomic, strong) NSMutableArray *playerArr; @property (nonatomic, strong) AVAudioPlayer *numberPlayer; @property (nonatomic,strong) UIButton *righTopIMG; @property (nonatomic,strong) UIButton *righBtpIMG; @property (nonatomic,strong) UIButton *topBombImageView1; @property (nonatomic,strong) UIButton *topBombImageView2; @end @implementation JXBigReelVc -(void)viewWillAppear:(BOOL)animated { if (_upwardMultiMarqueeView) { [_upwardMultiMarqueeView start]; } [self loadData]; [g_notify addObserver:self selector:@selector(tongyong) name:@"tongyong" object:nil]; } - (void)gobackBt{ [g_navigation dismissViewController:self animated:YES]; } - (void)viewDidLoad { [super viewDidLoad]; _dataArr=[NSMutableArray array]; _jpDataArr=[NSMutableArray array]; [self defineNavBarXXX:@"幸运老虎机" andRinghtBtnImg:@"zhuanpan"]; _dictMoney=[NSDictionary dictionary]; UIScrollView *imageScrollView =[[UIScrollView alloc]init]; imageScrollView.userInteractionEnabled=YES; imageScrollView.backgroundColor=kRGBColor(134, 29, 19); [self.view addSubview:imageScrollView]; [imageScrollView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(JX_SCREEN_TOP); make.left.mas_equalTo(0); make.right.mas_equalTo(0); make.bottom.mas_equalTo(0); }]; UIImageView *imageBackV=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"背景+装饰2"]]; imageBackV.userInteractionEnabled=YES; imageBackV.contentMode=UIViewContentModeScaleAspectFill; [imageScrollView addSubview:imageBackV]; CGFloat imageYW = CGImageGetWidth(imageBackV.image.CGImage); // iamgeView的H = imageView的宽 / (原始图片的宽 / 原始图片的高)---根据宽高比得出imageView的宽 CGFloat imageH = JX_SCREEN_WIDTH / (imageYW / CGImageGetHeight(imageBackV.image.CGImage)); imageBackV.frame = CGRectMake(0, 0, JX_SCREEN_WIDTH, imageH); UIImageView *luckWheelView = [[UIImageView alloc]initWithFrame:CGRectMake(0, JX_SCREEN_TOP-44,JX_SCREEN_WIDTH-0, JX_SCREEN_WIDTH-0)]; luckWheelView.userInteractionEnabled=YES; luckWheelView.image=[UIImage imageNamed:@"mm_Lh"]; [imageBackV addSubview:luckWheelView]; //个位十位单独设置,可分别设定各自速度 //WithFrame:CGRectMake(100, 100, 152 , 172) LNNumberScrollAnimatedView *socreTensDigitAnimation = [[LNNumberScrollAnimatedView alloc] initWithFrame:CGRectMake((JX_SCREEN_WIDTH)/2-152/4, (JX_SCREEN_WIDTH)/2-172/4 , 152/2 , 172/2)]; [luckWheelView addSubview:socreTensDigitAnimation]; socreTensDigitAnimation.userInteractionEnabled=YES; socreTensDigitAnimation.density = 7; socreTensDigitAnimation.duration = 1.9; socreTensDigitAnimation.minLength = 1; [socreTensDigitAnimation setValue:@9]; [socreTensDigitAnimation sizeToFit]; socreTensDigitAnimation.isAscending = YES; socreTensDigitAnimation.durationOffset = 0.1; self.socreTensDigitAnimation = socreTensDigitAnimation; _righTopIMG=[[UIButton alloc]init]; [_righTopIMG setImage:[UIImage imageNamed:@"拉杆"] forState:UIControlStateNormal]; [imageBackV addSubview:_righTopIMG]; [_righTopIMG mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.mas_equalTo(socreTensDigitAnimation.mas_centerY).mas_equalTo(-30); make.left.mas_equalTo(JX_SCREEN_WIDTH/2+113); make.width.mas_equalTo(60); }]; [_righTopIMG addTarget:self action:@selector(rightBTClick:) forControlEvents:UIControlEventTouchUpInside]; _righBtpIMG=[[UIButton alloc]init]; [_righBtpIMG setImage:[UIImage imageNamed:@"拉杆下"] forState:UIControlStateNormal]; [imageBackV addSubview:_righBtpIMG]; _righBtpIMG.hidden=YES; [_righBtpIMG mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.mas_equalTo(socreTensDigitAnimation.mas_centerY).mas_equalTo(40); //make.right.mas_equalTo(-20); make.left.mas_equalTo(JX_SCREEN_WIDTH/2+113); make.width.mas_equalTo(60); }]; _topBombImageView1=[[UIButton alloc]init]; [_topBombImageView1 setImage:[UIImage imageNamed:@"shou"] forState:UIControlStateNormal]; [imageBackV addSubview:_topBombImageView1]; [_topBombImageView1 mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(20); make.right.mas_equalTo(-20); }]; //CGAffineTransform transForm=_topBombImageView1.transform; [self ImageSpring]; //抽奖次数 UILabel *cjNums =[[UILabel alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(luckWheelView.frame)+40, JX_SCREEN_WIDTH, 12)]; cjNums.text=[NSString stringWithFormat:@"今日剩余抽奖次数:%@",@"0次"]; cjNums.textColor=[UIColor whiteColor]; cjNums.textAlignment=NSTextAlignmentCenter; cjNums.font=[UIFont systemFontOfSize:20 weight:UIFontWeightMedium]; [imageBackV addSubview:cjNums]; self.cjNums=cjNums; //抽奖次数 UIImageView *centerZJIMG=[[UIImageView alloc]init]; centerZJIMG.image=[UIImage imageNamed:@"中奖装饰"]; [imageBackV addSubview:centerZJIMG]; [centerZJIMG mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(CGRectGetMaxY(cjNums.frame)+70); make.centerX.mas_equalTo(imageBackV.mas_centerX); }]; UILabel *zjOrderL =[[UILabel alloc]init]; zjOrderL.text=[NSString stringWithFormat:@"中奖名单"]; zjOrderL.textAlignment=NSTextAlignmentCenter; zjOrderL.font=[UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; zjOrderL.textColor=[UIColor whiteColor]; [imageBackV addSubview:zjOrderL]; [zjOrderL mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.mas_equalTo(centerZJIMG.mas_centerY); make.centerX.mas_equalTo(imageBackV.mas_centerX); }]; // 滚动字幕 UIImageView *zhongjiangKIMG=[[UIImageView alloc]initWithFrame:CGRectMake(20, CGRectGetMaxY(cjNums.frame)+100, JX_SCREEN_WIDTH-40, 200)]; zhongjiangKIMG.contentMode=UIViewContentModeScaleToFill; zhongjiangKIMG.image=[UIImage imageNamed:@"wheelYellow"]; [imageBackV addSubview:zhongjiangKIMG]; _upwardMultiMarqueeView = [[UUMarqueeView alloc]initWithFrame:CGRectMake(0, 15, JX_SCREEN_WIDTH-50, 200-30)]; //_upwardMultiMarqueeView.backgroundColor=[UIColor colorWithWhite:0.0 alpha:0.2]; _upwardMultiMarqueeView.delegate = self; _upwardMultiMarqueeView.timeIntervalPerScroll = 1.0f; _upwardMultiMarqueeView.timeDurationPerScroll = 0.5f; _upwardMultiMarqueeView.touchEnabled = YES; //_upwardMultiMarqueeView.useDynamicHeight=YES; //_upwardMultiMarqueeView.itemSpacing=3; _upwardMultiMarqueeView.layer.cornerRadius=5; _upwardMultiMarqueeView.layer.masksToBounds=YES; _upwardMultiMarqueeView.userInteractionEnabled=NO; [zhongjiangKIMG addSubview:_upwardMultiMarqueeView]; [_upwardMultiMarqueeView reloadData]; //_upwardMultiMarqueeView.frame=zhongjiangKIMG.bounds; imageScrollView.contentSize=CGSizeMake(0, CGRectGetMaxY(zhongjiangKIMG.frame)+50); [g_notify addObserver:self selector:@selector(comeBack) name:@"comeBackxxx" object:nil]; } // 分享以后返回来的弹框 - (void)tongyong{ JXALLShowView *show=[[JXALLShowView alloc]init]; show.backgroundColor=[UIColor colorWithWhite:0.0 alpha:0.2]; show.frame=[UIScreen mainScreen].bounds; show.nameStr=@" 恭喜您,您已经成功领取奖金,请前往账户中心查看余额,如果长时间未到账请联系在线客服! "; [[UIApplication sharedApplication].keyWindow addSubview:show]; } - (void)comeBack{ JXMessageObject *msg=[[JXMessageObject alloc] init]; msg.type = [NSNumber numberWithInt:kWCMessageTypeText]; // msg.toUserId =@"9100"; msg.shareType=@"9100"; msg.fromUserId =MY_USER_ID; msg.fromUserName = g_server.myself.userNickname; msg.content = [NSString stringWithFormat:@"\n\n恭喜您 获得了%@等奖 %@元,礼金将自动派发到您的会员账户里,如长时间未收到请及时联系客服进行咨询===jixin%@", _dictMoney[@"rewardCode"],_dictMoney[@"money"],@"JXBigRellVc"]; msg.timeSend = [NSDate date]; JXRelayVC * relay = [[JXRelayVC alloc] init]; NSMutableArray *array = [NSMutableArray arrayWithObject:msg]; relay.relayMsgArray = array; relay.isUrl = NO; relay.yunMoney=@"40"; relay.shareType=@"9100"; relay.pushType = @"messageContent"; [g_navigation pushViewController:relay animated:YES]; } - (void)ImageSpring { [UIView animateWithDuration:0.5 animations:^{ _topBombImageView1.transform=CGAffineTransformMake(1, 0, 0, 1, 0, 62); }]; [UIView animateWithDuration:0.8 delay:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ _topBombImageView1.transform=CGAffineTransformMake(1, 0, 0, 1, 0, 0); } completion:^(BOOL finished) { [self ImageSpring]; }]; } - (void)rightBTClick:(UIButton *)sender{ sender.hidden=YES; _righBtpIMG.hidden=NO; for (int i = 0; i<19; i++) { [self performSelector:@selector(playSound) withObject:nil afterDelay:0.1]; } dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ sender.hidden=NO; _righBtpIMG.hidden=YES; }); long time = (long)[[NSDate date] timeIntervalSince1970]; time = (time *1000 + g_server.timeDifference); NSString *salt = [NSString stringWithFormat:@"%ld", time]; [g_server getUseract_turntableDo:salt andToView:self]; [g_server getUserturntableSurplusCountl:salt andToView:self]; } #pragma mark - 播放音效 - (void)playSound { NSURL *url = [[NSBundle mainBundle] URLForResource:@"number.wav" withExtension:nil]; SystemSoundID soundID = 0; AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url) , &soundID); AudioServicesPlayAlertSound (soundID); } /**记载数据*/ -(void)loadData{ [SVProgressHUD show]; long time = (long)[[NSDate date] timeIntervalSince1970]; time = (time *1000 + g_server.timeDifference); NSString *salt = [NSString stringWithFormat:@"%ld", time]; //获取转盘抽奖用户剩余抽奖次 [g_server getUserturntableSurplusCountl:salt andToView:self]; //[g_server getUseract_act_getTurntable:salt andToView:self]; //获取 转盘最近10条抽奖记录 [g_server getUseact_firstNearTurntableHistory:salt andToView:self]; } /** * 滚动字幕代理 */ - (NSUInteger)numberOfVisibleItemsForMarqueeView:(UUMarqueeView*)marqueeView { return 6;//_dataArr.count; } - (NSUInteger)numberOfDataForMarqueeView:(UUMarqueeView*)marqueeView { return _dataArr ? _dataArr.count : 0; } - (void)createItemView:(UIView*)itemView forMarqueeView:(UUMarqueeView*)marqueeView { // for upwardMultiMarqueeView //WithFrame:CGRectMake(15, 5.0f,(JX_SCREEN_WIDTH-30)/2 , 16.0f) UILabel *content = [[UILabel alloc] init]; content.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; content.textColor=[UIColor whiteColor]; content.tag = 1001; [itemView addSubview:content]; [content mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(5); make.left.mas_equalTo(30); }]; UILabel *priceL = [[UILabel alloc] init]; priceL.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; priceL.textAlignment=NSTextAlignmentRight; priceL.textColor=[UIColor whiteColor]; priceL.tag = 1002; [itemView addSubview:priceL]; [priceL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(5); make.right.mas_equalTo(-10); }]; } - (void)updateItemView:(UIView*)itemView atIndex:(NSUInteger)index forMarqueeView:(UUMarqueeView*)marqueeView { packageRoolModel *model=_dataArr[index]; UILabel *content = [itemView viewWithTag:1001]; NSMutableAttributedString *hintString2=[[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"恭喜即信用户%@获得 %@",model.userName,model.money]]; NSRange range2=[[hintString2 string]rangeOfString:model.money]; [hintString2 addAttribute:NSForegroundColorAttributeName value:[UIColor yellowColor] range:range2]; content.attributedText=hintString2; UILabel *time = [itemView viewWithTag:1002]; NSString *stringTime=[self getTimeFromTimestamp:model.gmtCreate]; time.text = [NSString stringWithFormat:@"%@",stringTime]; } #pragma mark ---- 将时间戳转换成时间 - (NSString *)getTimeFromTimestamp:(NSString *)timeL{ //将对象类型的时间转换为NSDate类型 NSDate * myDate=[NSDate dateWithTimeIntervalSince1970:[timeL doubleValue]/1000]; //设置时间格式 NSDateFormatter * formatter=[[NSDateFormatter alloc]init]; [formatter setDateFormat:@"YYYY-MM-dd"]; //将时间转换为字符串 NSString *timeStr=[formatter stringFromDate:myDate]; return timeStr; } /** * 返回数据结果 */ -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{ [SVProgressHUD dismiss]; if([aDownload.action isEqualToString:act_getTurntable])//获取展示奖品 { _jpDataArr=[awarJpModel mj_objectArrayWithKeyValuesArray:array1]; } if([aDownload.action isEqualToString:act_turntableDo])//卷盘抽奖 { NSString *rewardCode=dict[@"rewardCode"]; [self.socreTensDigitAnimation setValue:[NSNumber numberWithInt:[rewardCode intValue]]]; [self.socreTensDigitAnimation startAnimation]; [self.socreAnimation startAnimation]; _dictMoney=dict; JXBigReelView *show=[[JXBigReelView alloc]init]; show.backgroundColor=[UIColor colorWithWhite:0.0 alpha:0.7]; show.frame=[UIScreen mainScreen].bounds; show.strURL=dict; [[UIApplication sharedApplication].keyWindow addSubview:show]; } if([aDownload.action isEqualToString:act_turntableSurplusCountl])//获取转盘抽奖用户剩余抽奖次 { _cjNums.text=[NSString stringWithFormat:@"今日剩余抽奖次数:%@次",dict[@"surplusCount"]]; if ([dict[@"surplusCount"] intValue]==0) { UIAlertView *alertShow=[[UIAlertView alloc]initWithTitle:nil message:[NSString stringWithFormat:@"%@",@"今日抽奖次数已用完"] delegate:nil cancelButtonTitle:@"知道了" otherButtonTitles:nil, nil]; [alertShow show]; } } if([aDownload.action isEqualToString:act_firstNearTurntableHistory]) { dispatch_async(dispatch_get_main_queue(), ^{ _dataArr=[packageRoolModel mj_objectArrayWithKeyValuesArray:array1]; [_upwardMultiMarqueeView reloadData]; }); } } -(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{ [SVProgressHUD dismiss]; NSString * errorCode = [NSString stringWithFormat:@"%@",[dict objectForKey:@"resultMsg"]]; if([errorCode isEqualToString:@"权限验证失败"]) { } if([aDownload.action isEqualToString:act_turntableSurplusCountl])//获取转盘抽奖用户剩余抽奖次 { // UIAlertView *alertShow=[[UIAlertView alloc]initWithTitle:nil message:[NSString stringWithFormat:@"%@",@"今日抽奖次数已用完"] delegate:nil cancelButtonTitle:@"知道了" otherButtonTitles:nil, nil]; // [alertShow show]; // _cjNums.text=[NSString stringWithFormat:@"今日剩余抽奖次数:%@次",dict[@"surplusCount"]]; } return 1; } @end