From 6754f38c5238f314e56fc6d85d9f4249937f59c3 Mon Sep 17 00:00:00 2001 From: liyuhua <15626451870@163.com> Date: Wed, 25 Oct 2023 19:26:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E5=8C=85=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/YMMessage/Model/AttachmentModel.h | 1 + YuMi/Modules/YMRoom/Api/Api+Room.h | 4 +- YuMi/Modules/YMRoom/Api/Api+Room.m | 4 +- .../YMRoom/Presenter/XPRoomPresenter.m | 5 +- .../XPRoomActivityContainerView.h | 9 + .../XPRoomActivityContainerView.m | 49 ++- .../View/SendRedPacket/Api/Api+RedPacket.h | 2 +- .../View/SendRedPacket/Api/Api+RedPacket.m | 4 +- .../SendRedPacket/Cell/XPOpenRedPacketCell.m | 2 +- .../Model/XPReceiveRedPacketModel.h | 11 +- .../SendRedPacket/Model/XPRedPacketModel.h | 21 +- .../PIReceiveRedPacketSuccessView.h | 4 +- .../PIReceiveRedPacketSuccessView.m | 84 ++++- .../SendRedPacket/PIRoomEnterRedPacketView.h | 6 +- .../SendRedPacket/PIRoomEnterRedPacketView.m | 116 ++++++- .../SendRedPacket/PIRoomSendRedPacketItemVC.m | 29 +- .../Presenter/XPRoomRedPacketPresenter.h | 2 +- .../Presenter/XPRoomRedPacketPresenter.m | 4 +- .../SendRedPacket/XPReceiveRedPacketView.h | 8 +- .../SendRedPacket/XPReceiveRedPacketView.m | 308 +++++++++++------- .../XPRoomSendRedPacketViewController.m | 2 +- .../YMRoom/View/XPRoomViewController.m | 20 ++ .../YMTabbar/View/TabbarViewController.m | 72 ++-- YuMi/Structure/MVP/Model/BaseModel.h | 2 +- YuMi/Tools/Date/NSDate+DateUtils.h | 3 + YuMi/Tools/Date/NSDate+DateUtils.m | 31 ++ YuMi/zh-Hans.lproj/Localizable.strings | 15 + YuMi/zh-Hant.lproj/Localizable.strings | 12 + 28 files changed, 636 insertions(+), 194 deletions(-) diff --git a/YuMi/Modules/YMMessage/Model/AttachmentModel.h b/YuMi/Modules/YMMessage/Model/AttachmentModel.h index 13d0b6ad..e973039f 100644 --- a/YuMi/Modules/YMMessage/Model/AttachmentModel.h +++ b/YuMi/Modules/YMMessage/Model/AttachmentModel.h @@ -346,6 +346,7 @@ typedef NS_ENUM(NSUInteger, CustomMessageSubRedPacket) { Custom_Message_Sub_AllGiftRedPacket = 603, //全服礼物红包 Custom_Message_Sub_AllDiamandRedPacket = 604, //全服钻石红包 Custom_Message_Sub_OpenRedPacketSuccess = 605,//抢红包成功 + Custom_Message_Sub_NewRoomDiamandRedPacket = 606, //新版本房间钻石红包 }; ///first = CustomMessageType_Collection_Room diff --git a/YuMi/Modules/YMRoom/Api/Api+Room.h b/YuMi/Modules/YMRoom/Api/Api+Room.h index 88109eec..f754415a 100644 --- a/YuMi/Modules/YMRoom/Api/Api+Room.h +++ b/YuMi/Modules/YMRoom/Api/Api+Room.h @@ -199,7 +199,7 @@ NS_ASSUME_NONNULL_BEGIN /// 获取红包信息 /// @param completion 完成 /// @param roomUid 房间Uid -+ (void)requestRedPacket:(HttpRequestHelperCompletion)completion uid:(NSString *)roomUid; ++ (void)requestRedPacket:(HttpRequestHelperCompletion)completion uid:(NSString *)roomUid isShowKind:(NSString *)isShowKind; ///拿到首充弹窗次数 @@ -212,7 +212,7 @@ NS_ASSUME_NONNULL_BEGIN + (void)requesstShielding:(HttpRequestHelperCompletion)completion type:(NSString *)type objId:(NSString *)objId; ///得到免费礼物数据 +(void)requestFreeGiftData:(HttpRequestHelperCompletion)completion; -/// /获取已解锁照片id列表 +/// /获解锁照片 /// @param completion 完成 /// @param id 相册id /// @param roomUid 房间id diff --git a/YuMi/Modules/YMRoom/Api/Api+Room.m b/YuMi/Modules/YMRoom/Api/Api+Room.m index e228d7eb..10712322 100644 --- a/YuMi/Modules/YMRoom/Api/Api+Room.m +++ b/YuMi/Modules/YMRoom/Api/Api+Room.m @@ -264,9 +264,9 @@ /// 获取红包信息 /// @param completion 完成 /// @param roomUid 房间Uid -+ (void)requestRedPacket:(HttpRequestHelperCompletion)completion uid:(NSString *)roomUid { ++ (void)requestRedPacket:(HttpRequestHelperCompletion)completion uid:(NSString *)roomUid isShowKind:(NSString *)isShowKind{ NSString * fang = [NSString stringFromBase64String:@"cm9vbS9yZWQtZW52ZWxvcA=="];///room/red-envelop - [self makeRequest:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; + [self makeRequest:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid,isShowKind, nil]; } ///拿到首充弹窗次数 diff --git a/YuMi/Modules/YMRoom/Presenter/XPRoomPresenter.m b/YuMi/Modules/YMRoom/Presenter/XPRoomPresenter.m index 9d08bad9..87ed5215 100644 --- a/YuMi/Modules/YMRoom/Presenter/XPRoomPresenter.m +++ b/YuMi/Modules/YMRoom/Presenter/XPRoomPresenter.m @@ -252,8 +252,11 @@ - (void)getRedPacket:(NSString *)roomUid { [Api requestRedPacket:[self createHttpCompletion:^(BaseModel * _Nonnull data) { NSArray *array = [XPRedPacketModel modelsWithArray:data.data]; + for (XPRedPacketModel *model in array) { + model.timestamp = data.timestamp; + } [[self getView] getRedPacketSuccess:array]; - }] uid:roomUid]; + }] uid:roomUid isShowKind:@"1"]; } -(void)getRoomFirstCharegWindow:(NSString *)roomUid{ diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.h b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.h index a3eca614..41bbec64 100644 --- a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.h +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.h @@ -8,9 +8,18 @@ #import #import "RoomHostDelegate.h" #import "RoomGuestDelegate.h" +#import "XPRedPacketModel.h" + + + +typedef void(^OpenRedPacketHandle)(XPRedPacketModel *_Nullable); + NS_ASSUME_NONNULL_BEGIN @interface XPRoomActivityContainerView : UIView +@property(nonatomic,strong) XPRedPacketModel *redPacketModel; +@property(nonatomic,copy) NSString *pi_redNum; +@property(nonatomic,copy)OpenRedPacketHandle openRedPacketHandle; - (instancetype)initWithdelegate:(id)delegate; @end diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m index c2aff66b..cc13b1a6 100644 --- a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m @@ -70,7 +70,9 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; @end @implementation XPRoomActivityContainerView - +-(void)dealloc{ + [[NSNotificationCenter defaultCenter]removeObserver:self]; +} - (instancetype)initWithdelegate:(id)delegate { self = [super init]; if (self) { @@ -92,8 +94,11 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; [self.stackView addArrangedSubview:self.redPacketView]; [self.stackView addArrangedSubview:self.lookLoveImageView]; [self.stackView addArrangedSubview:self.joinDatingView]; + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(openRedPacketResult) name:@"kOpenRedPacketResult" object:nil]; +} +-(void)openRedPacketResult{ + self.redPacketView.hidden = YES; } - - (void)initSubViewConstraints { [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self); @@ -239,7 +244,15 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; } } - +-(void)setRedPacketModel:(XPRedPacketModel *)redPacketModel{ + _redPacketModel = redPacketModel; + self.redPacketView.hidden = NO; + self.redPacketView.redPacketModel = _redPacketModel; +} +-(void)setPi_redNum:(NSString *)pi_redNum{ + _pi_redNum = pi_redNum; + self.redPacketView.pi_redNum = pi_redNum; +} #pragma mark - RoomGuestDelegat - (void)onRoomUpdate { RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo; @@ -453,7 +466,30 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; XPSailingViewController * sailingVC = [[XPSailingViewController alloc] initWithRoomUid:roomUid]; [self.hostDelegate.getCurrentNav presentViewController:sailingVC animated:YES completion:nil]; } - +-(void)openRedPacketAction{ + self.redPacketView.userInteractionEnabled = NO; + RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo; + [Api requestRedPacket:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + self.redPacketView.userInteractionEnabled = YES; + if(code == 200){ + NSArray *array = [XPRedPacketModel modelsWithArray:data.data]; + for (XPRedPacketModel *model in array) { + model.timestamp = data.timestamp; + } + if(array.count > 0){ + XPRedPacketModel *redModel = array.firstObject; + if(redModel.state == 2 || redModel.state == 6){ + [XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPRoomActivityContainerView3")]; + self.redPacketView.hidden = YES; + return; + } + if(self.openRedPacketHandle){ + self.openRedPacketHandle(self.redPacketModel); + } + } + } + } uid:[NSString stringWithFormat:@"%ld",roomInfo.uid] isShowKind:@"1"]; +} #pragma mark - Getters And Setters - (SDCycleScrollView *)pi_cycleScrollView { if (!_pi_cycleScrollView) { @@ -484,7 +520,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; _stackView.axis = UILayoutConstraintAxisVertical; _stackView.distribution = UIStackViewDistributionFill; _stackView.alignment = UIStackViewAlignmentCenter; - _stackView.spacing = 5; + _stackView.spacing = 0; } return _stackView; } @@ -569,6 +605,9 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; - (PIRoomEnterRedPacketView *)redPacketView{ if(!_redPacketView){ _redPacketView = [[PIRoomEnterRedPacketView alloc]initWithFrame:CGRectZero]; + _redPacketView.hidden = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(openRedPacketAction)]; + [_redPacketView addGestureRecognizer:tap]; } return _redPacketView; } diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.h index 47405838..c103b9d5 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.h +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.h @@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN /// @param password 密码 /// @param message 消息 /// @param kind 红包种类 0 旧版本 1 无门槛红包 2 关注红包 3 分享红包 4 弹幕红包 -+ (void)sendRedPacket:(HttpRequestHelperCompletion)completion num:(NSString *)num goldNum:(NSString *)goldNum roomUId:(NSString *)roomUId type:(NSString *)type password:(NSString *)password message:(NSString *)message kind:(NSString *)kind; ++ (void)sendRedPacket:(HttpRequestHelperCompletion)completion num:(NSString *)num goldNum:(NSString *)goldNum roomUId:(NSString *)roomUId type:(NSString *)type password:(NSString *)password message:(NSString *)message kind:(NSString *)kind validityType:(NSString *)validityType; /// 抢红包 diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.m index 5b812f96..5bd4dcda 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.m +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.m @@ -9,9 +9,9 @@ #import @implementation Api (RedPacket) -+ (void)sendRedPacket:(HttpRequestHelperCompletion)completion num:(NSString *)num goldNum:(NSString *)goldNum roomUId:(NSString *)roomUId type:(NSString *)type password:(NSString *)password message:(NSString *)message kind:(NSString *)kind{ ++ (void)sendRedPacket:(HttpRequestHelperCompletion)completion num:(NSString *)num goldNum:(NSString *)goldNum roomUId:(NSString *)roomUId type:(NSString *)type password:(NSString *)password message:(NSString *)message kind:(NSString *)kind validityType:(NSString *)validityType{ NSString * fang = [NSString stringFromBase64String:@"cmVkLWVudmVsb3Bl"];///red-envelope - [self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, num, goldNum, roomUId, type, password, message, kind,nil]; + [self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, num, goldNum, roomUId, type, password, message, kind,validityType,nil]; } + (void)openRedPacket:(HttpRequestHelperCompletion)completion redEnvelopeId:(NSString *)redEnvelopeId { diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/XPOpenRedPacketCell.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/XPOpenRedPacketCell.m index 683a71ae..32073a16 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/XPOpenRedPacketCell.m +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/XPOpenRedPacketCell.m @@ -60,7 +60,7 @@ self.avatarView.imageUrl = model.userVO.avatar; NSDate *date = [NSDate dateWithTimeIntervalSince1970:model.createTime/1000]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; - [dateFormatter setDateFormat:@"yyyy/MM/dd HH:mm"]; + [dateFormatter setDateFormat:@"MM/dd HH:mm"]; self.timeLabel.text = [dateFormatter stringFromDate:date]; self.amountLabel.hidden = NO; if (model.amount.doubleValue> 0) { diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/XPReceiveRedPacketModel.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/XPReceiveRedPacketModel.h index d0929b1e..b45f83d7 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/XPReceiveRedPacketModel.h +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/XPReceiveRedPacketModel.h @@ -25,7 +25,16 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy) NSString *redEnvelopeId; ///红包祝福语 @property (nonatomic, copy) NSString *redEnvelopeMessage; - +///生效类型 0 立即生效 1 限时生效 +@property(nonatomic,assign) int validityType; +///当前时间 +@property(nonatomic,assign) long timestamp; +///红包开始时间 +@property(nonatomic,assign) long beginTime; +////红包数量 +@property(nonatomic,copy) NSString *redEnvelopeNum; +// 1 无门槛红包 2 关注红包 3 分享红包 4 弹幕红包 +@property(nonatomic, assign) int kind; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/XPRedPacketModel.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/XPRedPacketModel.h index cd162867..ef026533 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/XPRedPacketModel.h +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/XPRedPacketModel.h @@ -17,9 +17,15 @@ typedef enum : NSUInteger { RedPacketType_RoomGift = 3, RedPacketType_AllGift = 4 } RedPacketType; - +// 红包类型 1:房间钻石红包 2:全服钻石红包 3:房间礼物红包 4:全服礼物红包 +typedef enum : NSUInteger { + RedPacketConditionsType_NO = 1, + RedPacketConditionsType_Followd = 2, + RedPacketConditionsType_Share = 3, + RedPacketConditionsType_Scrolling = 4 +} RedPacketConditionsType; @interface XPRedPacketModel : NSObject - +@property(nonatomic,assign) NSInteger state; @property (nonatomic, assign) RedPacketType type; @property (nonatomic, copy) NSString *redEnvelopeId; @@ -37,7 +43,16 @@ typedef enum : NSUInteger { @property (nonatomic, copy) NSString *redEnvelopeAmount; /// 已领取数量 @property (nonatomic, copy) NSString *pickNum; - +// 1 无门槛红包 2 关注红包 3 分享红包 4 弹幕红包 +@property(nonatomic, assign) RedPacketConditionsType kind; +///生效类型 0 立即生效 1 限时生效 +@property(nonatomic,assign) int validityType; +///当前时间 +@property(nonatomic,assign) long timestamp; +///红包开始时间 +@property(nonatomic,assign) long beginTime; +///0,未完成,1,完成 +@property(nonatomic,assign) int finish; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/PIReceiveRedPacketSuccessView.h b/YuMi/Modules/YMRoom/View/SendRedPacket/PIReceiveRedPacketSuccessView.h index 7bd1e886..4649d26a 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/PIReceiveRedPacketSuccessView.h +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/PIReceiveRedPacketSuccessView.h @@ -6,11 +6,11 @@ // #import - +#import "XPRedPacketResultModel.h" NS_ASSUME_NONNULL_BEGIN @interface PIReceiveRedPacketSuccessView : UIView - +@property(nonatomic,strong) XPRedPacketResultModel *resultModel; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/PIReceiveRedPacketSuccessView.m b/YuMi/Modules/YMRoom/View/SendRedPacket/PIReceiveRedPacketSuccessView.m index 48135ddd..f2d29fc3 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/PIReceiveRedPacketSuccessView.m +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/PIReceiveRedPacketSuccessView.m @@ -23,6 +23,8 @@ @property (nonatomic, strong) UILabel *sendNickLabel; ///收到的祝福语 @property (nonatomic, strong) UILabel *sendWishLabel; +///领取个数 +@property(nonatomic,strong) UILabel *openSituationLabel; @property (nonatomic, strong) UITableView *tableView; @end @@ -37,7 +39,6 @@ return self; } -(void)installUI{ - self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.4]; [self addSubview:self.bgImageView]; [self addSubview:self.closeBtn]; [self.bgImageView addSubview:self.getDiamondView]; @@ -46,12 +47,10 @@ [self.bgImageView addSubview:self.sendNickLabel]; [self.bgImageView addSubview:self.sendWishLabel]; [self.bgImageView addSubview:self.tableView]; + [self.bgImageView addSubview:self.openSituationLabel]; + - self.sendNickLabel.text = @"Piko的紅包"; - self.sendWishLabel.text = @"恭喜發財,大吉大利!"; - self.pi_tipsView.text = @"已存入錢包,請到我的收益確認"; - - NSMutableAttributedString *numText = [[NSMutableAttributedString alloc]initWithString:@"100" attributes:@{NSFontAttributeName:kFontMedium(32),NSForegroundColorAttributeName:UIColorFromRGB(0xFF285C)}]; + NSMutableAttributedString *numText = [[NSMutableAttributedString alloc]initWithString:@"0" attributes:@{NSFontAttributeName:kFontMedium(32),NSForegroundColorAttributeName:UIColorFromRGB(0xFF285C)}]; NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; UIImage *iconImage = [UIImage imageNamed:@"mine_noble_center__diamond"];; attachment.bounds = CGRectMake(0, roundf(kFontMedium(32).capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height); @@ -78,11 +77,7 @@ make.centerX.equalTo(self.bgImageView); make.top.mas_equalTo(kGetScaleWidth(89)); }]; - [self.pi_tipsView mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.mas_equalTo(kGetScaleWidth(129)); - make.centerX.equalTo(self.bgImageView); - make.height.mas_equalTo(kGetScaleWidth(17)); - }]; + [self.sendNickLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.bgImageView.mas_centerX).mas_offset(kGetScaleWidth(14)); @@ -91,7 +86,7 @@ }]; [self.sendAvatar mas_makeConstraints:^(MASConstraintMaker *make) { make.width.height.mas_equalTo(kGetScaleWidth(24)); - make.top.equalTo(self.pi_tipsView.mas_bottom).mas_offset(kGetScaleWidth(31)); + make.top.mas_equalTo(kGetScaleWidth(177)); make.trailing.equalTo(self.sendNickLabel.mas_leading).mas_offset(-kGetScaleWidth(4)); }]; [self.sendWishLabel mas_makeConstraints:^(MASConstraintMaker *make) { @@ -106,22 +101,75 @@ make.height.mas_equalTo(kGetScaleWidth(180)); make.centerX.equalTo(self.bgImageView); }]; + [self.openSituationLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-kGetScaleWidth(60)); + make.bottom.mas_equalTo(-kGetScaleWidth(32)); + make.height.mas_equalTo(kGetScaleWidth(14)); + }]; } #pragma mark - tableviewDatasource - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return 3; + return self.resultModel.redEnvelopeItemVOs.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ XPOpenRedPacketCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPOpenRedPacketCell class]) forIndexPath:indexPath]; - + XPRedPacketPersonReceiveModel *model = [self.resultModel.redEnvelopeItemVOs safeObjectAtIndex1:indexPath.row]; + cell.model = model; return cell; } #pragma mark - action - (void)onCloseButtonClick:(UIButton *)sender { - [self removeFromSuperview]; + [self.superview removeFromSuperview]; } +-(void)setResultModel:(XPRedPacketResultModel *)resultModel{ + _resultModel = resultModel; + + if (_resultModel.redEnvelopeState == RedPacketState_Success) {//抢到红包 + NSMutableAttributedString *numText = [[NSMutableAttributedString alloc]initWithString:_resultModel.currentUserAmount attributes:@{NSFontAttributeName:kFontMedium(32),NSForegroundColorAttributeName:UIColorFromRGB(0xFF285C)}]; + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + UIImage *iconImage = [UIImage imageNamed:@"mine_noble_center__diamond"];; + attachment.bounds = CGRectMake(0, roundf(kFontMedium(32).capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height); + + attachment.image =iconImage; + NSAttributedString * starAttribute = [NSMutableAttributedString attributedStringWithAttachment:(NSTextAttachment *)attachment]; + [numText insertAttributedString:starAttribute atIndex:0]; + self.getDiamondView.attributedText = numText; + self.pi_tipsView.text = YMLocalizedString(@"XPReceiveRedPacketView1"); + [self.pi_tipsView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(129)); + make.centerX.equalTo(self.bgImageView); + make.height.mas_equalTo(kGetScaleWidth(17)); + }]; + } else if (_resultModel.redEnvelopeState == RedPacketState_Remain_Zero) {//抢光了 + self.pi_tipsView.text = YMLocalizedString(@"XPReceiveRedPacketView2"); + [self.pi_tipsView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(110)); + make.centerX.equalTo(self.bgImageView); + make.height.mas_equalTo(kGetScaleWidth(17)); + }]; + + } + + self.sendAvatar.imageUrl = _resultModel.redEnvelopeVO.userVO.avatar; + NSString *nick = resultModel.redEnvelopeVO.userVO.nick; + if (resultModel.redEnvelopeVO.userVO.nick.length > 6) { + nick = [NSString stringWithFormat:@"%@...", [resultModel.redEnvelopeVO.userVO.nick substringToIndex:6]]; + } + nick = [NSString stringWithFormat:@"%@%@",nick,YMLocalizedString(@"XPReceiveRedPacketView8")]; + self.sendWishLabel.text = _resultModel.redEnvelopeVO.message; + self.openSituationLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPReceiveRedPacketView4"), resultModel.redEnvelopeVO.pickNum, resultModel.redEnvelopeVO.totalNum]; + // NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] init]; + // NSMutableAttributedString *nickAttr = [[NSMutableAttributedString alloc] initWithString:nick attributes:@{NSForegroundColorAttributeName : UIColorFromRGB(0xFDCD00)}]; + // NSMutableAttributedString *redPacketStr = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPReceiveRedPacketView3") attributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}]; + // [attribute appendAttributedString:nickAttr]; + // [attribute appendAttributedString:redPacketStr]; + // self.sendNickLabel.attributedText = attribute; + // self.sendWishLabel.text = resultModel.redEnvelopeVO.message; + // self.openSituationLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPReceiveRedPacketView4"), resultModel.redEnvelopeVO.pickNum, resultModel.redEnvelopeVO.totalNum]; + [self.tableView reloadData]; +} #pragma mark - 懒加载 - (UIImageView *)bgImageView { if (!_bgImageView) { @@ -197,4 +245,10 @@ } return _getDiamondView; } +- (UILabel *)openSituationLabel{ + if(!_openSituationLabel){ + _openSituationLabel = [UILabel labelInitWithText:@"" font:kFontMedium(10) textColor:[UIColor colorWithWhite:1 alpha:0.8]]; + } + return _openSituationLabel; +} @end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomEnterRedPacketView.h b/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomEnterRedPacketView.h index 9a914f78..7a9d0668 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomEnterRedPacketView.h +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomEnterRedPacketView.h @@ -6,11 +6,13 @@ // #import - +#import "XPRedPacketModel.h" NS_ASSUME_NONNULL_BEGIN @interface PIRoomEnterRedPacketView : UIView - +@property(nonatomic,assign) BOOL isCountDownEnd; +@property(nonatomic,copy) NSString *pi_redNum; +@property(nonatomic,strong) XPRedPacketModel *redPacketModel; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomEnterRedPacketView.m b/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomEnterRedPacketView.m index 0ddd272f..2704f68d 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomEnterRedPacketView.m +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomEnterRedPacketView.m @@ -15,6 +15,9 @@ @property(nonatomic,strong) UILabel *countDownView; ///倒计时 @property (nonatomic,strong) CountDownHelper *countDownHelper; +///红点 +@property(nonatomic,strong) UILabel *redPoionNumView; +@property(nonatomic,strong) UIView *redPoionView; @end @implementation PIRoomEnterRedPacketView @@ -27,9 +30,12 @@ return self; } -(void)installUI{ + self.isCountDownEnd = YES; [self addSubview:self.bgImageView]; [self.bgImageView addSubview:self.robBtn]; [self.bgImageView addSubview:self.countDownView]; + [self.bgImageView addSubview:self.redPoionView]; + [self.redPoionView addSubview:self.redPoionNumView]; } -(void)installConstraints{ [self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) { @@ -44,11 +50,101 @@ [self.countDownView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.robBtn); }]; + [self.redPoionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(12)); + make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(12)); + make.bottom.equalTo(self.robBtn.mas_top).mas_offset(-kGetScaleWidth(17)); + make.trailing.equalTo(self.robBtn.mas_trailing).mas_equalTo(kGetScaleWidth(6)); + }]; + [self.redPoionNumView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.redPoionView); + make.leading.trailing.equalTo(self.redPoionView).inset(kGetScaleWidth(3)); + }]; +} +-(void)setPi_redNum:(NSString *)pi_redNum{ + _pi_redNum = pi_redNum; + _redPoionNumView.text = _pi_redNum.integerValue > 99 ? @"99+" : _pi_redNum; +} +-(void)setRedPacketModel:(XPRedPacketModel *)redPacketModel{ + _redPacketModel = redPacketModel; + self.countDownView.hidden = YES; + self.robBtn.hidden = YES; + if(_redPacketModel.kind == RedPacketConditionsType_NO){ + + if(_redPacketModel.validityType == 1){ + NSInteger time = [self getTimeDifferenceWithTimestamp:_redPacketModel.timestamp / 1000 beginTime:_redPacketModel.beginTime / 1000]; + if(time > 0){ + self.countDownView.hidden = NO; + [self.countDownHelper openCountdownWithTime:(int)time]; + + }else{ + self.robBtn.hidden = NO; + } + }else{ + self.robBtn.hidden = NO; + } + }else if(_redPacketModel.kind == RedPacketConditionsType_Followd){ + + + NSInteger time = [self getTimeDifferenceWithTimestamp:_redPacketModel.timestamp / 1000 beginTime:_redPacketModel.beginTime / 1000]; + if(time > 0){ + if(_redPacketModel.finish == 1){ + self.countDownView.hidden = NO; + + [self.countDownHelper openCountdownWithTime:(int)time]; + }else{ + self.robBtn.hidden = NO; + } + }else{ + self.robBtn.hidden = NO; + + } + + }else if(_redPacketModel.kind == RedPacketConditionsType_Share){ + + + NSInteger time = [self getTimeDifferenceWithTimestamp:_redPacketModel.timestamp / 1000 beginTime:_redPacketModel.beginTime / 1000]; + if(time > 0){ + if(_redPacketModel.finish == 1){ + self.countDownView.hidden = NO; + + [self.countDownHelper openCountdownWithTime:(int)time]; + }else{ + self.robBtn.hidden = NO; + } + }else{ + self.robBtn.hidden = NO; + + } + }else if(_redPacketModel.kind == RedPacketConditionsType_Share){ + + NSInteger time = [self getTimeDifferenceWithTimestamp:_redPacketModel.timestamp / 1000 beginTime:_redPacketModel.beginTime / 1000]; + if(time > 0){ + if(_redPacketModel.finish == 1){ + self.countDownView.hidden = NO; + + [self.countDownHelper openCountdownWithTime:(int)time]; + }else{ + self.robBtn.hidden = NO; + } + }else{ + self.robBtn.hidden = NO; + + } + } +} +-(NSInteger)getTimeDifferenceWithTimestamp:(long)timestamp beginTime:(long)beginTime { + NSString *time1 = [NSDate timestampSwitchTime:(NSInteger)timestamp formatter:@"YYYY-MM-dd hh:mm:ss"]; + NSString *time2 = [NSDate timestampSwitchTime:(NSInteger)beginTime formatter:@"YYYY-MM-dd hh:mm:ss"]; + NSInteger second = [NSDate pleaseInsertStarTimeo:time1 andInsertEndTime:time2]; + return second; } #pragma mark- CountDownHelperDelegate ///倒计时结束 - (void)onCountdownFinish{ - + self.countDownView.hidden = YES; + self.robBtn.hidden = NO; + self.isCountDownEnd = YES; } ///倒计时进行 - (void)onCountdownOpen:(int)time{ @@ -56,7 +152,7 @@ int minutes = (seconds)%3600/60; int second = (seconds)%60; self.countDownView.text = [NSString stringWithFormat:@"%02d:%02d",minutes,second]; - + self.isCountDownEnd = NO; } #pragma mark - 懒加载 - (UIImageView *)bgImageView{ @@ -94,4 +190,20 @@ } return _countDownHelper; } +- (UIView *)redPoionView{ + if(!_redPoionView){ + _redPoionView = [UIView new]; + _redPoionView.backgroundColor = UIColorFromRGB(0xF44646); + _redPoionView.layer.cornerRadius = kGetScaleWidth(12)/2; + _redPoionView.layer.masksToBounds = YES; + } + return _redPoionView; +} +- (UILabel *)redPoionNumView{ + if(!_redPoionNumView){ + _redPoionNumView = [UILabel labelInitWithText:@"0" font:kFontMedium(9) textColor:[UIColor whiteColor]]; + _redPoionNumView.textAlignment = NSTextAlignmentCenter; + } + return _redPoionNumView; +} @end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomSendRedPacketItemVC.m b/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomSendRedPacketItemVC.m index 3498dc50..aca676b4 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomSendRedPacketItemVC.m +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/PIRoomSendRedPacketItemVC.m @@ -171,6 +171,20 @@ - (void)chooseRedPacketType:(PIRedPacketChooseTypeViewType)type{ self.sendRedType = type; switch (type) { + case Red_Packet_Choose_type_Follow: + { + self.scrollingView.hidden = YES; + self.promptlyBtn.hidden = YES; + self.limitBtn.hidden = YES; + } + break; + case Red_Packet_Choose_type_Share: + { + self.scrollingView.hidden = YES; + self.promptlyBtn.hidden = YES; + self.limitBtn.hidden = YES; + } + break; case Red_Packet_Choose_type_Scrolling: { self.scrollingView.hidden = NO; @@ -223,10 +237,10 @@ [self showErrorToast:YMLocalizedString(@"XPRoomSendRedPacketViewController18")]; return; } - if (diamonCount % 10 != 0) { - [self showErrorToast:YMLocalizedString(@"XPRoomSendRedPacketViewController19")]; - return; - } +// if (diamonCount % 10 != 0) { +// [self showErrorToast:YMLocalizedString(@"XPRoomSendRedPacketViewController19")]; +// return; +// } self.pi_isHaveUser = YES; if(self.userInfo == nil){ [self.presenter getUserModel]; @@ -251,11 +265,16 @@ NSArray *kindList = @[@"1",@"2",@"3",@"4"]; NSString *kind = [kindList safeObjectAtIndex1:self.sendRedType]; NSString *message = self.serverInputView.getContent.length ? self.serverInputView.getContent : YMLocalizedString(@"XPRoomSendRedPacketViewController4"); + NSString *validityType = self.promptlyBtn.selected == YES ? @"0" : @"1"; + if(self.sendRedType != Red_Packet_Choose_type_Normal){ + validityType = @"1"; + } if(self.sendRedType == Red_Packet_Choose_type_Scrolling && self.serverInputView.getContent.length == 0){ [self showErrorToast:YMLocalizedString(@"PIRoomSendRedPacketItemVC7")]; return; } - [self.presenter sendRedPacketWithNum:self.pi_numView.redPacketNum goldNum:self.pi_priceView.redPacketNum roomUid:roomUid type:type password:pwd message:message kind:kind]; + + [self.presenter sendRedPacketWithNum:self.pi_numView.redPacketNum goldNum:self.pi_priceView.redPacketNum roomUid:roomUid type:type password:pwd message:message kind:kind validityType:validityType]; } - (void)xPRoomRedPacketPwdViewPwdForgetBtnClick { diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/XPRoomRedPacketPresenter.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/XPRoomRedPacketPresenter.h index 31f05226..061712d2 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/XPRoomRedPacketPresenter.h +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/XPRoomRedPacketPresenter.h @@ -25,7 +25,7 @@ NS_ASSUME_NONNULL_BEGIN /// @param pwd 密码 /// @param message 消息 /// @param kind 红包种类 0 旧版本 1 无门槛红包 2 关注红包 3 分享红包 4 弹幕红包 -- (void)sendRedPacketWithNum:(NSString *)num goldNum:(NSString *)goldNum roomUid:(NSString *)roomUid type:(NSString *)type password:(NSString *)pwd message:(NSString *)message kind:(NSString *)kind; +- (void)sendRedPacketWithNum:(NSString *)num goldNum:(NSString *)goldNum roomUid:(NSString *)roomUid type:(NSString *)type password:(NSString *)pwd message:(NSString *)message kind:(NSString *)kind validityType:(NSString *)validityType; @end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/XPRoomRedPacketPresenter.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/XPRoomRedPacketPresenter.m index 79a5a8a8..60e9f919 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/XPRoomRedPacketPresenter.m +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/XPRoomRedPacketPresenter.m @@ -38,11 +38,11 @@ } showLoading:NO] uid:uid]; } -- (void)sendRedPacketWithNum:(NSString *)num goldNum:(NSString *)goldNum roomUid:(NSString *)roomUid type:(NSString *)type password:(NSString *)pwd message:(NSString *)message kind:(NSString *)kind{ +- (void)sendRedPacketWithNum:(NSString *)num goldNum:(NSString *)goldNum roomUid:(NSString *)roomUid type:(NSString *)type password:(NSString *)pwd message:(NSString *)message kind:(NSString *)kind validityType:(NSString *)validityType{ NSString *password = [DESEncrypt encryptUseDES:pwd key:KeyWithType(KeyType_PasswordEncode)]; [Api sendRedPacket:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [[self getView] sendRedPacketSuccess]; - }showLoading:YES errorToast:YES] num:num goldNum:goldNum roomUId:roomUid type:type password:password message:message kind:kind]; + }showLoading:YES errorToast:YES] num:num goldNum:goldNum roomUId:roomUid type:type password:password message:message kind:kind validityType:validityType]; } @end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/XPReceiveRedPacketView.h b/YuMi/Modules/YMRoom/View/SendRedPacket/XPReceiveRedPacketView.h index b97088fc..fd67d82d 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/XPReceiveRedPacketView.h +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/XPReceiveRedPacketView.h @@ -6,6 +6,12 @@ // #import +#import "XPRedPacketModel.h" +@protocol XPReceiveRedPacketViewDelegate + +-(void)openRedPacketWithType:(RedPacketConditionsType)type uid:(NSString *_Nonnull)uid roomUid:(NSString *_Nonnull)roomUid; + +@end NS_ASSUME_NONNULL_BEGIN @@ -20,7 +26,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, strong) XPRedPacketModel *receiveModel; @property (nonatomic, strong) UIView *alphaView; -//@property (nonatomic, strong) NSDictionary *dict; +@property(nonatomic,weak) iddelegate; @end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/XPReceiveRedPacketView.m b/YuMi/Modules/YMRoom/View/SendRedPacket/XPReceiveRedPacketView.m index 22325cc9..6aa485df 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/XPReceiveRedPacketView.m +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/XPReceiveRedPacketView.m @@ -25,6 +25,7 @@ #import "YUMIConstant.h" #import "NSArray+Safe.h" #import "CountDownHelper.h" +#import "PIReceiveRedPacketSuccessView.h" @interface XPReceiveRedPacketView() @@ -54,7 +55,7 @@ @property (nonatomic, strong) UIButton *closeBtn; ///倒计时 @property (nonatomic,strong) CountDownHelper *countDownHelper; - +@property(nonatomic,assign) BOOL isCountDownEnd; @end @implementation XPReceiveRedPacketView @@ -71,6 +72,7 @@ #pragma mark - Private Method - (void)initSubViews { + self.isCountDownEnd = YES; [self addSubview:self.alphaView]; [self addSubview:self.bgImageView]; [self.bgImageView addSubview:self.closeBtn]; @@ -79,15 +81,12 @@ [self.bgImageView addSubview:self.sendWishView]; [self.sendWishView addSubview:self.sendWishLabel]; [self.bgImageView addSubview:self.openButton]; - [self.bgImageView addSubview:self.robIcon]; + [self.openButton addSubview:self.robIcon]; [self.bgImageView addSubview:self.robView]; [self.bgImageView addSubview:self.countDownView]; [self.bgImageView addSubview:self.countDownTitleView]; - self.robIcon.hidden = YES; - self.countDownView.hidden = YES; - self.countDownTitleView.hidden = YES; [self.bgImageView addSubview:self.robView]; - [self.countDownHelper openCountdownWithTime:60]; + } - (void)initSubViewConstraints { @@ -136,8 +135,8 @@ [self.robIcon mas_makeConstraints:^(MASConstraintMaker *make) { make.height.mas_equalTo(kGetScaleWidth(34)); make.width.mas_equalTo(kGetScaleWidth(38)); - make.centerX.mas_equalTo(self.bgImageView); - make.top.equalTo(self.sendWishView.mas_bottom).mas_offset(kGetScaleWidth(59)); + make.center.mas_equalTo(self.openButton); + }]; [self.robView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.sendWishView.mas_bottom).mas_offset(kGetScaleWidth(56)); @@ -197,12 +196,176 @@ - (void)setReceiveModel:(XPRedPacketModel *)receiveModel { _receiveModel = receiveModel; self.sendAvatar.imageUrl = receiveModel.userVO.avatar; - self.sendWishLabel.text = receiveModel.message; - self.sendNickLabel.text = receiveModel.userVO.nick; -} + + self.sendNickLabel.text = [NSString stringWithFormat:@"%@%@",receiveModel.userVO.nick,YMLocalizedString(@"XPReceiveRedPacketView8")] ; + self.robView.hidden = YES; + self.robIcon.hidden = YES; + self.countDownView.hidden = YES; + self.countDownTitleView.hidden = YES; + + if(_receiveModel.kind == RedPacketConditionsType_NO){ + self.sendWishLabel.text = YMLocalizedString(@"XPReceiveRedPacketView9"); + if(_receiveModel.validityType == 1){ + NSInteger time = [self getTimeDifferenceWithTimestamp:_receiveModel.timestamp / 1000 beginTime:_receiveModel.beginTime / 1000]; + if(time > 0){ + self.countDownView.hidden = NO; + self.countDownTitleView.hidden = NO; + [self.countDownHelper openCountdownWithTime:(int)time]; + }else{ + self.robIcon.hidden = NO; + } + }else{ + self.robIcon.hidden = NO; + } + }else if(_receiveModel.kind == RedPacketConditionsType_Followd){ + + if(_receiveModel.finish == 1){ + self.sendWishLabel.text = YMLocalizedString(@"XPReceiveRedPacketView17"); + }else{ + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"XPReceiveRedPacketView10") attributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [textAtt addAttributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:UIColorFromRGB(0xFFF87A)} range:NSMakeRange(0, 4)]; + self.sendWishLabel.attributedText = textAtt; + } + NSInteger time = [self getTimeDifferenceWithTimestamp:_receiveModel.timestamp / 1000 beginTime:_receiveModel.beginTime / 1000]; + if(time > 0){ + if(_receiveModel.finish == 1){ + self.countDownView.hidden = NO; + self.countDownTitleView.hidden = NO; + [self.countDownHelper openCountdownWithTime:(int)time]; + }else{ + self.robView.hidden = NO; + self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView13"); + } + }else{ + if(_receiveModel.finish == 1){ + self.robIcon.hidden = NO; + }else{ + self.robView.hidden = NO; + self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView16"); + } + + } + + }else if(_receiveModel.kind == RedPacketConditionsType_Share){ + if(_receiveModel.finish == 1){ + self.sendWishLabel.text = YMLocalizedString(@"XPReceiveRedPacketView17"); + + }else{ + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"XPReceiveRedPacketView11") attributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [textAtt addAttributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:UIColorFromRGB(0xFFF87A)} range:NSMakeRange(0, 6)]; + self.sendWishLabel.attributedText = textAtt; + } + + NSInteger time = [self getTimeDifferenceWithTimestamp:_receiveModel.timestamp / 1000 beginTime:_receiveModel.beginTime / 1000]; + if(time > 0){ + if(_receiveModel.finish == 1){ + self.countDownView.hidden = NO; + self.countDownTitleView.hidden = NO; + [self.countDownHelper openCountdownWithTime:(int)time]; + }else{ + self.robView.hidden = NO; + self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView14"); + } + }else{ + if(_receiveModel.finish == 1){ + self.robIcon.hidden = NO; + }else{ + self.robView.hidden = NO; + self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView16"); + } + + } + }else if(_receiveModel.kind == RedPacketConditionsType_Share){ + if(_receiveModel.finish == 1){ + self.sendWishLabel.text = YMLocalizedString(@"XPReceiveRedPacketView17"); + + }else{ + NSString *text = [NSString stringWithFormat:YMLocalizedString(@"XPReceiveRedPacketView12"),_receiveModel.message ?: @""]; + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:text attributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [textAtt addAttributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:UIColorFromRGB(0xFFF87A)} range:[text rangeOfString:_receiveModel.message ?:@""]]; + self.sendWishLabel.attributedText = textAtt; + } + + NSInteger time = [self getTimeDifferenceWithTimestamp:_receiveModel.timestamp / 1000 beginTime:_receiveModel.beginTime / 1000]; + if(time > 0){ + if(_receiveModel.finish == 1){ + self.countDownView.hidden = NO; + self.countDownTitleView.hidden = NO; + [self.countDownHelper openCountdownWithTime:(int)time]; + }else{ + self.robView.hidden = NO; + self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView15"); + } + }else{ + if(_receiveModel.finish == 1){ + self.robIcon.hidden = NO; + }else{ + self.robView.hidden = NO; + self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView16"); + } + + } + } + +} +-(NSInteger)getTimeDifferenceWithTimestamp:(long)timestamp beginTime:(long)beginTime { + NSString *time1 = [NSDate timestampSwitchTime:(NSInteger)timestamp formatter:@"YYYY-MM-dd hh:mm:ss"]; + NSString *time2 = [NSDate timestampSwitchTime:(NSInteger)beginTime formatter:@"YYYY-MM-dd hh:mm:ss"]; + NSInteger second = [NSDate pleaseInsertStarTimeo:time1 andInsertEndTime:time2]; + return second; +} #pragma mark - action - (void)onOpenButtonClick:(UIButton *)sender { + + if(self.receiveModel.kind == RedPacketConditionsType_NO){ + if(self.receiveModel.validityType == 1 && self.isCountDownEnd == NO){ + return; + } + }else if(self.receiveModel.kind == RedPacketConditionsType_Followd){ + if(self.isCountDownEnd == NO && self.receiveModel.finish == 0){ + [self removeFromSuperview]; + if(self.delegate && [self.delegate respondsToSelector:@selector(openRedPacketWithType:uid:roomUid:)]){ + [self.delegate openRedPacketWithType:RedPacketConditionsType_Followd uid:self.receiveModel.userId roomUid:self.receiveModel.roomUId]; + } + return; + }else if(self.isCountDownEnd == YES && self.receiveModel.finish == 0){ + [self removeFromSuperview]; + [XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPReceiveRedPacketView18")]; + return; + }else if(self.isCountDownEnd == NO && self.receiveModel.finish == 1){ + return; + } + + }else if(self.receiveModel.kind == RedPacketConditionsType_Share){ + if(self.isCountDownEnd == NO && self.receiveModel.finish == 0){ + [self removeFromSuperview]; + if(self.delegate && [self.delegate respondsToSelector:@selector(openRedPacketWithType:uid:roomUid:)]){ + [self.delegate openRedPacketWithType:RedPacketConditionsType_Share uid:self.receiveModel.userId roomUid:self.receiveModel.roomUId]; + } + return; + }else if(self.isCountDownEnd == YES && self.receiveModel.finish == 0){ + [self removeFromSuperview]; + [XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPReceiveRedPacketView18")]; + return; + }else if(self.isCountDownEnd == NO && self.receiveModel.finish == 1){ + return; + } + }else if(self.receiveModel.kind == RedPacketConditionsType_Share){ + if(self.isCountDownEnd == NO && self.receiveModel.finish == 0){ + [self removeFromSuperview]; + if(self.delegate && [self.delegate respondsToSelector:@selector(openRedPacketWithType:uid:roomUid:)]){ + [self.delegate openRedPacketWithType:RedPacketConditionsType_Scrolling uid:self.receiveModel.userId roomUid:self.receiveModel.roomUId]; + } + return; + }else if(self.isCountDownEnd == YES && self.receiveModel.finish == 0){ + [self removeFromSuperview]; + [XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPReceiveRedPacketView18")]; + return; + }else if(self.isCountDownEnd == NO && self.receiveModel.finish == 1){ + return; + } + } if (!self.redPacketModel) { [self openRoomRedPacket:sender redEnvelopeId:self.receiveModel.redEnvelopeId]; } else { @@ -276,111 +439,31 @@ ///显示红包结果 - (void)showRedPacketResultViewWithResultData:(XPRedPacketResultModel *)resultData { - self.openButton.hidden = YES; -// [self addSubview:self.getLabel]; -// [self addSubview:self.openSituationLabel]; -// [self addSubview:self.tableView]; -// if (resultData.redEnvelopeState == RedPacketState_Success) {//抢到红包 -// [self addSubview:self.diamondContentView]; -// [self.diamondContentView addSubview:self.diamondImage]; -// [self.diamondContentView addSubview:self.diamondLabel]; -// [self.diamondContentView mas_makeConstraints:^(MASConstraintMaker *make) { -// make.top.mas_equalTo(self.bgImageView).mas_offset(30); -// make.centerX.mas_equalTo(self); -// make.height.mas_equalTo(27); -// }]; -// [self.diamondImage mas_makeConstraints:^(MASConstraintMaker *make) { -// make.left.mas_equalTo(self.diamondContentView); -// make.centerY.mas_equalTo(self.diamondContentView); -// make.width.height.mas_equalTo(24); -// }]; -// [self.diamondLabel mas_makeConstraints:^(MASConstraintMaker *make) { -// make.left.mas_equalTo(self.diamondImage.mas_right).mas_offset(6); -// make.centerY.mas_equalTo(self.diamondContentView); -// make.right.top.mas_equalTo(self.diamondContentView); -// }]; -// [self.getLabel mas_makeConstraints:^(MASConstraintMaker *make) { -// make.centerX.mas_equalTo(self); -// make.top.mas_equalTo(self.diamondContentView.mas_bottom).mas_offset(10); -// make.height.mas_equalTo(12); -// }]; -// self.diamondLabel.text = resultData.currentUserAmount; -// self.getLabel.text = YMLocalizedString(@"XPReceiveRedPacketView1"); -// } else if (resultData.redEnvelopeState == RedPacketState_Remain_Zero) {//抢光了 -// self.getLabel.text = YMLocalizedString(@"XPReceiveRedPacketView2"); -// [self.getLabel mas_makeConstraints:^(MASConstraintMaker *make) { -// make.centerX.mas_equalTo(self); -// make.top.mas_equalTo(self.bgImageView).mas_offset(59); -// make.height.mas_equalTo(12); -// }]; -// } -// -// [self.sendAvatar mas_remakeConstraints:^(MASConstraintMaker *make) { -// make.left.mas_equalTo(self.bgImageView).mas_offset(65); -// make.top.mas_equalTo(self.bgImageView).mas_offset(128); -// make.width.height.mas_equalTo(30); -// }]; -// self.sendAvatar.layer.borderWidth = 1; -// self.sendAvatar.layer.cornerRadius = 15; -// -// [self.sendNickLabel mas_remakeConstraints:^(MASConstraintMaker *make) { -// make.centerY.mas_equalTo(self.sendAvatar); -// make.height.mas_equalTo(18); -// make.left.mas_equalTo(self.sendAvatar.mas_right).mas_offset(7); -// }]; -// [self.sendWishLabel mas_remakeConstraints:^(MASConstraintMaker *make) { -// make.centerX.mas_equalTo(self.bgImageView); -// make.left.mas_equalTo(self.bgImageView).mas_offset(30); -// make.top.mas_equalTo(self.sendNickLabel.mas_bottom).mas_offset(15); -// }]; -// [self.openSituationLabel mas_makeConstraints:^(MASConstraintMaker *make) { -// make.top.mas_equalTo(self.sendWishLabel.mas_bottom).mas_offset(19); -// make.height.mas_equalTo(10); -// make.right.mas_equalTo(self.bgImageView).mas_offset(-38); -// }]; -// [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { -// make.top.mas_equalTo(self.openSituationLabel.mas_bottom).mas_offset(5); -// make.left.right.mas_equalTo(self.bgImageView).inset(20); -// make.height.mas_equalTo(205); -// }]; -// self.bgImageView.image = [UIImage imageNamed:@"redPacket_result_bg"]; -// self.sendAvatar.imageUrl = resultData.redEnvelopeVO.userVO.avatar; -// NSString *nick = resultData.redEnvelopeVO.userVO.nick; -// if (resultData.redEnvelopeVO.userVO.nick.length > 6) { -// nick = [NSString stringWithFormat:@"%@...", [resultData.redEnvelopeVO.userVO.nick substringToIndex:6]]; -// } -// NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] init]; -// NSMutableAttributedString *nickAttr = [[NSMutableAttributedString alloc] initWithString:nick attributes:@{NSForegroundColorAttributeName : UIColorFromRGB(0xFDCD00)}]; -// NSMutableAttributedString *redPacketStr = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPReceiveRedPacketView3") attributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}]; -// [attribute appendAttributedString:nickAttr]; -// [attribute appendAttributedString:redPacketStr]; -// self.sendNickLabel.attributedText = attribute; -// self.sendWishLabel.text = resultData.redEnvelopeVO.message; -// self.openSituationLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPReceiveRedPacketView4"), resultData.redEnvelopeVO.pickNum, resultData.redEnvelopeVO.totalNum]; -// [self.tableView reloadData]; + self.bgImageView.hidden = YES; + [[NSNotificationCenter defaultCenter]postNotificationName:@"kOpenRedPacketResult" object:nil]; + PIReceiveRedPacketSuccessView *successView = [[PIReceiveRedPacketSuccessView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + successView.resultModel = resultData; + [self addSubview:successView]; + } -#pragma mark - tableviewDatasource -//- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { -// return self.resultData.redEnvelopeItemVOs.count; -//} -// -//- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ -// XPOpenRedPacketCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPOpenRedPacketCell class]) forIndexPath:indexPath]; -// cell.selectionStyle = UITableViewCellSelectionStyleNone; -// XPRedPacketPersonReceiveModel *model = [self.resultData.redEnvelopeItemVOs safeObjectAtIndex1:indexPath.row]; -// cell.model = model; -// cell.backgroundColor = [UIColor clearColor]; -// return cell; -//} -// -//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { -// return 50; -//} + #pragma mark- CountDownHelperDelegate ///倒计时结束 - (void)onCountdownFinish{ - + self.isCountDownEnd = YES; + self.countDownView.hidden = YES; + self.countDownTitleView.hidden = YES; + if(self.receiveModel.kind == RedPacketConditionsType_NO){ + self.robIcon.hidden = NO; + }else { + if(_receiveModel.finish == 1){ + self.robIcon.hidden = NO; + }else{ + self.robView.hidden = NO; + self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView16"); + } + } } ///倒计时进行 - (void)onCountdownOpen:(int)time{ @@ -388,7 +471,7 @@ int minutes = (seconds)%3600/60; int second = (seconds)%60; self.countDownView.text = [NSString stringWithFormat:@"%02d:%02d",minutes,second]; - + self.isCountDownEnd = NO; } #pragma mark - action - (void)onCloseButtonClick:(UIButton *)sender { @@ -450,6 +533,7 @@ UILabel *label = [[UILabel alloc] init]; label.textAlignment = NSTextAlignmentCenter; _sendWishLabel = label; + _sendWishLabel.textColor = [UIColor whiteColor]; _sendWishLabel.font = kFontRegular(11); } diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/XPRoomSendRedPacketViewController.m b/YuMi/Modules/YMRoom/View/SendRedPacket/XPRoomSendRedPacketViewController.m index 729329ef..6e26b751 100644 --- a/YuMi/Modules/YMRoom/View/SendRedPacket/XPRoomSendRedPacketViewController.m +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/XPRoomSendRedPacketViewController.m @@ -357,7 +357,7 @@ NSString *roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid]; NSNumber *type = self.roomButton.isSelected ? @(1) : @(2); NSString *message = self.wishTextView.text.length ? self.wishTextView.text :YMLocalizedString(@"XPRoomSendRedPacketViewController4"); - [self.presenter sendRedPacketWithNum:self.packetTextField.text goldNum:self.diamondTextField.text roomUid:roomUid type:type password:pwd message:message kind:@""]; + [self.presenter sendRedPacketWithNum:self.packetTextField.text goldNum:self.diamondTextField.text roomUid:roomUid type:type password:pwd message:message kind:@"" validityType:@""]; } - (void)xPRoomRedPacketPwdViewPwdForgetBtnClick { diff --git a/YuMi/Modules/YMRoom/View/XPRoomViewController.m b/YuMi/Modules/YMRoom/View/XPRoomViewController.m index fb906c6e..afff1b32 100644 --- a/YuMi/Modules/YMRoom/View/XPRoomViewController.m +++ b/YuMi/Modules/YMRoom/View/XPRoomViewController.m @@ -322,6 +322,21 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出 self.littleGameView.hidden = NO; self.activityContainerView.hidden = NO; } + @kWeakify(self); + self.activityContainerView.openRedPacketHandle = ^(XPRedPacketModel * _Nullable redModel) { + @kStrongify(self); + XPReceiveRedPacketView *view = [[XPReceiveRedPacketView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + view.receiveModel = redModel; + for (UIView *subView in self.view.subviews) { + if([subView isKindOfClass:[XPReceiveRedPacketView class]]) { + view.alphaView.backgroundColor = [UIColor clearColor]; + break; + } + } + [self.view addSubview:view]; + [self.view bringSubviewToFront:view]; + + }; } - (void)initSubViewConstraints { @@ -1203,6 +1218,10 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出 [self.view addSubview:view]; [self.view bringSubviewToFront:view]; } + if(list.count > 0){ + self.activityContainerView.redPacketModel = list.lastObject; + self.activityContainerView.pi_redNum = @(list.count).stringValue; + } } -(void)getFreeGiftDataSuccess:(XPFreeGiftModel *)freeModel{ self.freeModel = freeModel; @@ -2003,6 +2022,7 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出 - (XPRoomActivityContainerView *)activityContainerView { if (!_activityContainerView) { _activityContainerView = [[XPRoomActivityContainerView alloc] initWithdelegate:self]; + } return _activityContainerView; } diff --git a/YuMi/Modules/YMTabbar/View/TabbarViewController.m b/YuMi/Modules/YMTabbar/View/TabbarViewController.m index 73bef70b..664ebcd8 100644 --- a/YuMi/Modules/YMTabbar/View/TabbarViewController.m +++ b/YuMi/Modules/YMTabbar/View/TabbarViewController.m @@ -597,37 +597,8 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; if (broadcastMessage.content) { NSDictionary *msgDictionary = [broadcastMessage.content toJSONObject]; AttachmentModel *attachment = [AttachmentModel modelWithJSON:msgDictionary[@"body"]]; - if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) { - XPReceiveRedPacketModel *data = [XPReceiveRedPacketModel modelWithDictionary:attachment.data]; - //判断是否在房间 - __block BOOL isInRoom; - [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { - if ([obj isKindOfClass:[XPRoomViewController class]]) { - XPRoomViewController * roomVC = obj; - RoomInfoModel *roomInfo = [roomVC getRoomInfo]; - XPReceiveRedPacketView *view = [[XPReceiveRedPacketView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; - if (roomInfo.uid == data.roomUid.integerValue) { - view.inAllPacketRoom = YES; - } else { - view.inAllPacketRoom = NO; - } - XPReceiveRedPacketModel *data = [XPReceiveRedPacketModel modelWithJSON:attachment.data]; - view.redPacketModel = data; - [roomVC.view addSubview:view]; - [roomVC.view bringSubviewToFront:view]; - *stop = YES; - isInRoom = YES; - } - }]; - if (!isInRoom) { - UIViewController *currentVc = [[XCCurrentVCStackManager shareManager] getCurrentVC]; - XPReceiveRedPacketView *view = [[XPReceiveRedPacketView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; - view.inAllPacketRoom = NO; - XPReceiveRedPacketModel *data = [XPReceiveRedPacketModel modelWithJSON:attachment.data]; - view.redPacketModel = data; - [currentVc.view addSubview:view]; - [currentVc.view bringSubviewToFront:view]; - } + if (attachment.first == CustomMessageType_RedPacket) { + [self receiveRedPacketDealWithData:attachment]; } else if (attachment.first == CustomMessageType_Gift && attachment.second == Custom_Message_Sub_Gift_ChannelNotify){///广播 年度飘屏 [self receiveBroadcastGift:attachment]; }else if(attachment.first == CustomMessageType_Version_Update && attachment.second == Custom_Message_Version_Update_Value){ @@ -664,7 +635,44 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; } } } - +///收到红包,处理数据 +-(void)receiveRedPacketDealWithData:(AttachmentModel *)attachment{ + XPReceiveRedPacketModel *data = [XPReceiveRedPacketModel modelWithDictionary:attachment.data]; + if(attachment.second == Custom_Message_Sub_AllDiamandRedPacket ){ + data.validityType = 0; + data.kind = 1; + } + + //判断是否在房间 + __block BOOL isInRoom; + [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[XPRoomViewController class]]) { + XPRoomViewController * roomVC = obj; + RoomInfoModel *roomInfo = [roomVC getRoomInfo]; + XPReceiveRedPacketView *view = [[XPReceiveRedPacketView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + if (roomInfo.uid == data.roomUid.integerValue) { + view.inAllPacketRoom = YES; + } else { + view.inAllPacketRoom = NO; + } + XPReceiveRedPacketModel *data = [XPReceiveRedPacketModel modelWithJSON:attachment.data]; + view.redPacketModel = data; + [roomVC.view addSubview:view]; + [roomVC.view bringSubviewToFront:view]; + *stop = YES; + isInRoom = YES; + } + }]; + if (!isInRoom) { + UIViewController *currentVc = [[XCCurrentVCStackManager shareManager] getCurrentVC]; + XPReceiveRedPacketView *view = [[XPReceiveRedPacketView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + view.inAllPacketRoom = NO; + XPReceiveRedPacketModel *data = [XPReceiveRedPacketModel modelWithJSON:attachment.data]; + view.redPacketModel = data; + [currentVc.view addSubview:view]; + [currentVc.view bringSubviewToFront:view]; + } +} ///判断是否在房间 -(BOOL)isInRoomWithData{ //判断是否在房间 diff --git a/YuMi/Structure/MVP/Model/BaseModel.h b/YuMi/Structure/MVP/Model/BaseModel.h index f8523a85..44139d64 100644 --- a/YuMi/Structure/MVP/Model/BaseModel.h +++ b/YuMi/Structure/MVP/Model/BaseModel.h @@ -10,7 +10,7 @@ NS_ASSUME_NONNULL_BEGIN @interface BaseModel : NSObject - +@property(nonatomic,assign) long timestamp; @property (nonatomic , strong) id data; @property (nonatomic , assign) NSInteger code; @property (nonatomic , copy) NSString *message; diff --git a/YuMi/Tools/Date/NSDate+DateUtils.h b/YuMi/Tools/Date/NSDate+DateUtils.h index 0fcd5745..95bbfbb8 100644 --- a/YuMi/Tools/Date/NSDate+DateUtils.h +++ b/YuMi/Tools/Date/NSDate+DateUtils.h @@ -23,6 +23,9 @@ NS_ASSUME_NONNULL_BEGIN +(NSString *)getNowTimeTimestamp; +(NSString *)timestampSwitchTime:(NSInteger)timestamp andFormatter:(NSString *)format; +#pragma mark - 将某个时间戳转化成 时间 ++ (NSString *)timestampSwitchTime:(NSInteger)timestamp formatter:(NSString *)format; ++ (NSInteger)pleaseInsertStarTimeo:(NSString *)time1 andInsertEndTime:(NSString *)time2; @end @interface NSCalendar (Pick) diff --git a/YuMi/Tools/Date/NSDate+DateUtils.m b/YuMi/Tools/Date/NSDate+DateUtils.m index 627a59e1..d1686ced 100644 --- a/YuMi/Tools/Date/NSDate+DateUtils.m +++ b/YuMi/Tools/Date/NSDate+DateUtils.m @@ -133,6 +133,37 @@ NSString * const kDateFormatYYMMDDTHHmmss = @"yyyy-MM-dd'T'HH:mm:ss"; NSString *confromTimespStr = [formatter stringFromDate:confromTimesp]; return confromTimespStr; } +#pragma mark - 将某个时间戳转化成 时间 ++ (NSString *)timestampSwitchTime:(NSInteger)timestamp formatter:(NSString *)format{ + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + [formatter setDateStyle:NSDateFormatterMediumStyle]; + [formatter setTimeStyle:NSDateFormatterShortStyle]; + [formatter setDateFormat:format]; // (@"YYYY-MM-dd hh:mm:ss")----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制 + NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"]; + [formatter setTimeZone:timeZone]; + NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:timestamp]; + /// 在当前时间,后退30分钟 = 1800 +// confromTimesp = [confromTimesp dateByAddingTimeInterval:-1800]; + NSLog(@"1296035591 = %@",confromTimesp); + NSString *confromTimespStr = [formatter stringFromDate:confromTimesp]; + return confromTimespStr; +} ++ (NSInteger)pleaseInsertStarTimeo:(NSString *)time1 andInsertEndTime:(NSString *)time2{ + // 1.将时间转换为date + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + formatter.dateFormat = @"YYYY-MM-dd hh:mm:ss"; + NSDate *date1 = [formatter dateFromString:time1]; + NSDate *date2 = [formatter dateFromString:time2]; + // 2.创建日历 + NSCalendar *calendar = [NSCalendar currentCalendar]; +// NSCalendarUnit type = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; + NSCalendarUnit type = NSCalendarUnitSecond; + // 3.利用日历对象比较两个时间的差值 + NSDateComponents *cmps = [calendar components:type fromDate:date1 toDate:date2 options:0]; + // 4.输出结果 + NSLog(@"两个时间相差%ld年%ld月%ld日%ld小时%ld分钟%ld秒", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second); + return cmps.second; +} @end diff --git a/YuMi/zh-Hans.lproj/Localizable.strings b/YuMi/zh-Hans.lproj/Localizable.strings index 71784ce3..9ff49ffd 100644 --- a/YuMi/zh-Hans.lproj/Localizable.strings +++ b/YuMi/zh-Hans.lproj/Localizable.strings @@ -40,6 +40,7 @@ "XPRoomActivityContainerView0" = "首充有礼"; "XPRoomActivityContainerView1" = "信物"; "XPRoomActivityContainerView2" = "PK已开始暂时无法排麦"; +"XPRoomActivityContainerView3" = "该红包已失效"; ///XPWebViewNavView "XPWebViewNavView0"="充值"; "XPWebViewNavView1" = "複制链接"; @@ -1666,6 +1667,20 @@ "XPReceiveRedPacketView5" = "抢完了,下次早点来哦"; "XPReceiveRedPacketView6" = "后开抢"; "XPReceiveRedPacketView7" = "发弹幕\n抢红包"; +"XPReceiveRedPacketView8" = "的红包"; +"XPReceiveRedPacketView9" = "快来抢红包,手慢无哦!"; +"XPReceiveRedPacketView10" = "关注主播可抢红包!"; +"XPReceiveRedPacketView11" = "对外分享房间可抢红包!"; +"XPReceiveRedPacketView12" = "发送弹幕%@可抢红包!"; +"XPReceiveRedPacketView13" = "关注主播\n抢红包"; +"XPReceiveRedPacketView14" = "分享房间\n抢红包"; +"XPReceiveRedPacketView15" = "发弹幕\n抢红包"; +"XPReceiveRedPacketView16" = "未参与\n活动"; +"XPReceiveRedPacketView17" = "已完成条件,可抢红包"; +"XPReceiveRedPacketView18" = "未参与活动,无法抢该红包"; + + + "XPRoomViewController0" = "抱歉,您暂时无法进入该房间"; "XPRoomViewController1" = "%@的房间"; diff --git a/YuMi/zh-Hant.lproj/Localizable.strings b/YuMi/zh-Hant.lproj/Localizable.strings index 206cac3e..c841e649 100644 --- a/YuMi/zh-Hant.lproj/Localizable.strings +++ b/YuMi/zh-Hant.lproj/Localizable.strings @@ -40,6 +40,7 @@ "XPRoomActivityContainerView0" = "首充有禮"; "XPRoomActivityContainerView1" = "信物"; "XPRoomActivityContainerView2" = "PK已開始暫時無法排麥"; +"XPRoomActivityContainerView3" = "該紅包已失效"; ///XPWebViewNavView "XPWebViewNavView0"="充值"; "XPWebViewNavView1" = "複製鏈接"; @@ -1667,6 +1668,17 @@ "XPReceiveRedPacketView5" = "搶完了,下次早點來哦"; "XPReceiveRedPacketView6" = "後開搶"; "XPReceiveRedPacketView7" = "發彈幕\n搶紅包"; +"XPReceiveRedPacketView8" = "的紅包"; +"XPReceiveRedPacketView9" = "快來搶紅包,手慢無哦!"; +"XPReceiveRedPacketView10" = "關註主播可搶紅包!"; +"XPReceiveRedPacketView11" = "對外分享房間可搶紅包!"; +"XPReceiveRedPacketView12" = "發送彈幕%@可搶紅包!"; +"XPReceiveRedPacketView13" = "關註主播\n搶紅包"; +"XPReceiveRedPacketView14" = "分享房間\n搶紅包"; +"XPReceiveRedPacketView15" = "發彈幕\n搶紅包"; +"XPReceiveRedPacketView16" = "未參與\n活動"; +"XPReceiveRedPacketView17" = "已完成條件,可搶紅包"; +"XPReceiveRedPacketView18" = "未參與活動,無法搶該紅包"; "XPRoomViewController0" = "抱歉,您暫時無法進入該房間"; "XPRoomViewController1" = "%@的房間";