Files
yuyin_ios/SweetParty/主类/音悦新增/仲夏夜梦曲/ZXYBoxView.m

252 lines
7.8 KiB
Mathematica
Raw Normal View History

2025-08-08 11:05:33 +08:00
//
// ZXYBoxView.m
// SweetParty
//
// Created by MAC on 2024/5/6.
//
#import "ZXYBoxView.h"
#import "ZWTimer.h"
#import "ZXYBoxModel.h"
#import "ZXYChooseNumView.h"
#import "ZXYBuyView.h"
#import "ZXYResultView.h"
#import "DDCaiMyRecordAlert.h"
#import "BJBoxRuleAlert.h"
#import "BJBoxPoolAlert.h"
#import "ZXYRankView.h"
@interface ZXYBoxView () <ZWTimerDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *touchImgV;
@property (weak, nonatomic) IBOutlet UILabel *moneyLab;
@property (weak, nonatomic) IBOutlet UILabel *ticketLab;
@property (weak, nonatomic) IBOutlet UIImageView *timeBgImgV;
@property (weak, nonatomic) IBOutlet UILabel *timeLab;
@property (weak, nonatomic) IBOutlet UIView *yueqiView_1;
@property (weak, nonatomic) IBOutlet UIView *yueqiView_2;
@property (weak, nonatomic) IBOutlet UIView *yueqiView_3;
@property (weak, nonatomic) IBOutlet UIView *yueqiView_4;
@property (weak, nonatomic) IBOutlet UIView *yueqiView_5;
@property (weak, nonatomic) IBOutlet UILabel *numLab_1;
@property (weak, nonatomic) IBOutlet UILabel *numLab_2;
@property (weak, nonatomic) IBOutlet UILabel *numLab_3;
@property (weak, nonatomic) IBOutlet UILabel *numLab_4;
@property (weak, nonatomic) IBOutlet UILabel *numLab_5;
@property (nonatomic, strong) NSArray *currentLabArr;
@property (nonatomic, strong) ZWTimer *timer;
@property (nonatomic, assign) NSInteger leftSecond;
@property (nonatomic, assign) NSInteger timerType;//1 2
//
@property (nonatomic, strong) NSDictionary *resultDict;
@property (nonatomic, strong) ZXYResultView *resultView;
@property (nonatomic, assign) BOOL isSecondLoad;
@end
@implementation ZXYBoxView
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)awakeFromNib {
[super awakeFromNib];
self.currentLabArr = @[_numLab_1, _numLab_2, _numLab_3, _numLab_4, _numLab_5];
[self createUI];
[self fetchData];
}
- (void)createUI {
WEAK_SELF
[self.touchImgV dg_Tapped:^{
[weakSelf removeFromSuperview];
}];
// 12345
[self.yueqiView_1 dg_Tapped:^{
[weakSelf onPopChooseNum:1];
}];
[self.yueqiView_2 dg_Tapped:^{
[weakSelf onPopChooseNum:2];
}];
[self.yueqiView_3 dg_Tapped:^{
[weakSelf onPopChooseNum:3];
}];
[self.yueqiView_4 dg_Tapped:^{
[weakSelf onPopChooseNum:4];
}];
[self.yueqiView_5 dg_Tapped:^{
[weakSelf onPopChooseNum:5];
}];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onSocketStart:) name:@"ZXYStartNoti" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onSocketEnd:) name:@"ZXYEndNoti" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onSocketResult:) name:@"ZXYResultNoti" object:nil];
}
- (void)onSocketStart:(NSNotification *)noti {
NSDictionary *dataDict = noti.userInfo;
ZXYBoxModel *model = [ZXYBoxModel mj_objectWithKeyValues:dataDict];
self.timerType = 1;
self.leftSecond = model.surplus_time;
[self.timer startGCDTimer:1 delegate:self];
//
for (UILabel *currentLab in self.currentLabArr) {
currentLab.text = @"0";
}
self.resultDict = nil;
self.timeBgImgV.image = ImageNamed(@"zxy_time_bg");
}
- (void)onSocketEnd:(NSNotification *)noti {
NSDictionary *dataDict = noti.userInfo;
ZXYBoxModel *model = [ZXYBoxModel mj_objectWithKeyValues:dataDict];
//0.2
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
if (self.resultDict == nil) {
[self onFeichuanAnimate:1 model:model];
}
});
}
- (void)onSocketResult:(NSNotification *)noti {
NSDictionary *dataDict = noti.userInfo;
NSLog(@"抽奖结果--%@", dataDict);
self.resultDict = dataDict;
ZXYBoxModel *model = [ZXYBoxModel mj_objectWithKeyValues:dataDict];
if (model.is_win == 1) {
[self onFeichuanAnimate:2 model:model];
}else {
[self onFeichuanAnimate:3 model:model];
}
//
self.ticketLab.text = model.airship;
}
- (void)onFeichuanAnimate:(NSInteger)type model:(ZXYBoxModel *)model {
//
self.timerType = 2;
self.leftSecond = 10;
[self.timer startGCDTimer:1 delegate:self];
[self addSubview:self.resultView];
[self.resultView onShowWith:type model:model];
}
- (void)onPopChooseNum:(NSInteger)type {
ZXYChooseNumView *view = LoadNib(@"ZXYChooseNumView");
view.frame = [UIScreen mainScreen].bounds;
[self addSubview:view];
[view onUpdateWith:type rid:self.rid];
view.onConfirmBlock = ^() {
[self fetchData];
};
}
//
- (void)fetchData {
NSDictionary *params = @{};
[[AFNetworkRequset shared] postRequestWithParams:params Path:@"/api/Sprite/get_monster_info" Loading:NO Hud:NO Success:^(id _Nonnull responseDic) {
ZXYBoxModel *model = [ZXYBoxModel mj_objectWithKeyValues:responseDic[@"data"]];
[self onUpdateCommonInfo:model];
[self onUpdateNumUI:model];
self.isSecondLoad = YES;
} Failure:^(id _Nonnull errorData) {
}];
}
- (void)onUpdateCommonInfo:(ZXYBoxModel *)model {
self.moneyLab.text = [NSString stringWithFormat:@"%ld", [model.integral integerValue]];
self.ticketLab.text = model.airship;
if (self.isSecondLoad == NO) {
self.timerType = 1;
self.leftSecond = model.surplus_time;
[self.timer startGCDTimer:1 delegate:self];
}
}
- (void)onUpdateNumUI:(ZXYBoxModel *)model {
for (NSInteger i = 0; i < model.multiple_list.count; i++) {
NSDictionary *dict = model.multiple_list[i];
UILabel *currentLab = self.currentLabArr[i];
currentLab.text = [dict safeStringForKey:@"num"];
}
}
- (void)onTimerFired:(ZWTimer *)timer {
self.leftSecond -= 1;
if (self.leftSecond < 0) {
self.leftSecond = 0;
[self.timer stopTimer];
}
// if (self.timerType == 1) {
self.timeLab.text = [NSString stringWithFormat:@"%02ld:%02ld", self.leftSecond/60, self.leftSecond%60];
// }else if (self.timerType == 2) {
// self.timeLab.text = [NSString stringWithFormat:@"弹奏中%02lds", self.leftSecond%60];
// }
if (self.leftSecond <= 5) {
self.timeBgImgV.image = ImageNamed(@"zxy_time_bg_2");
}
}
- (ZWTimer *)timer {
if (!_timer) {
_timer = [[ZWTimer alloc] init];
}
return _timer;
}
- (IBAction)onBuyTicket:(id)sender {
ZXYBuyView *view = LoadNib(@"ZXYBuyView");
view.frame = [UIScreen mainScreen].bounds;
[self addSubview:view];
view.rid = self.rid;
view.onBuySuccessBlock = ^(NSString * _Nonnull integral, NSString * _Nonnull airship) {
self.moneyLab.text = [NSString stringWithFormat:@"%ld", [integral integerValue]];
self.ticketLab.text = airship;
};
}
- (IBAction)onPool:(id)sender {
BJBoxPoolAlert *view = [[BJBoxPoolAlert alloc] initWithFrame:[UIScreen mainScreen].bounds];
[view showOnView:self WithType:100];
}
- (IBAction)onRule:(id)sender {
BJBoxRuleAlert *view = [[BJBoxRuleAlert alloc] initWithFrame:[UIScreen mainScreen].bounds];
[view showOnView:self WithType:100];
}
- (IBAction)onRecord:(id)sender {
DDCaiMyRecordAlert *view = [[DDCaiMyRecordAlert alloc] initWithFrame:[UIScreen mainScreen].bounds];
[view showOnView:self];
}
- (IBAction)onRank:(id)sender {
ZXYRankView *view = [[ZXYRankView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[view showOnView:self];
}
- (ZXYResultView *)resultView {
if (!_resultView) {
_resultView = LoadNib(@"ZXYResultView");
_resultView.frame = [UIScreen mainScreen].bounds;
}
return _resultView;
}
@end