红包逻辑

This commit is contained in:
liyuhua
2023-10-25 19:26:20 +08:00
parent cf17b5e30c
commit 6754f38c52
28 changed files with 636 additions and 194 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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];
}
///

View File

@@ -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{

View File

@@ -8,9 +8,18 @@
#import <UIKit/UIKit.h>
#import "RoomHostDelegate.h"
#import "RoomGuestDelegate.h"
#import "XPRedPacketModel.h"
typedef void(^OpenRedPacketHandle)(XPRedPacketModel *_Nullable);
NS_ASSUME_NONNULL_BEGIN
@interface XPRoomActivityContainerView : UIView<RoomGuestDelegate>
@property(nonatomic,strong) XPRedPacketModel *redPacketModel;
@property(nonatomic,copy) NSString *pi_redNum;
@property(nonatomic,copy)OpenRedPacketHandle openRedPacketHandle;
- (instancetype)initWithdelegate:(id<RoomHostDelegate>)delegate;
@end

View File

@@ -70,7 +70,9 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
@end
@implementation XPRoomActivityContainerView
-(void)dealloc{
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
- (instancetype)initWithdelegate:(id<RoomHostDelegate>)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;
}

View File

@@ -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;
/// 抢红包

View File

@@ -9,9 +9,9 @@
#import <Base64/MF_Base64Additions.h>
@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 {

View File

@@ -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) {

View File

@@ -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

View File

@@ -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

View File

@@ -6,11 +6,11 @@
//
#import <UIKit/UIKit.h>
#import "XPRedPacketResultModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface PIReceiveRedPacketSuccessView : UIView
@property(nonatomic,strong) XPRedPacketResultModel *resultModel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -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

View File

@@ -6,11 +6,13 @@
//
#import <UIKit/UIKit.h>
#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

View File

@@ -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

View File

@@ -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 {

View File

@@ -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

View File

@@ -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

View File

@@ -6,6 +6,12 @@
//
#import <UIKit/UIKit.h>
#import "XPRedPacketModel.h"
@protocol XPReceiveRedPacketViewDelegate <NSObject>
-(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) id<XPReceiveRedPacketViewDelegate>delegate;
@end

View File

@@ -25,6 +25,7 @@
#import "YUMIConstant.h"
#import "NSArray+Safe.h"
#import "CountDownHelper.h"
#import "PIReceiveRedPacketSuccessView.h"
@interface XPReceiveRedPacketView()<CountDownHelperDelegate>
@@ -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);
}

View File

@@ -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 {

View File

@@ -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;
}

View File

@@ -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<RoomHostDelegate> * 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<RoomHostDelegate> * 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{
//

View File

@@ -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;

View File

@@ -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)

View File

@@ -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"----------,hhHH: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

View File

@@ -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" = "%@的房间";

View File

@@ -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" = "%@的房間";