贵族防被踢,隐身进房开关

This commit is contained in:
chenguilong
2022-04-28 11:24:41 +08:00
parent e933347dd6
commit 63138e62ca
17 changed files with 117 additions and 34 deletions

View File

@@ -114,8 +114,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) GroupType groupType; @property (nonatomic, assign) GroupType groupType;
/// ///
@property (nonatomic,strong) NSArray<UserGiftWallInfoModel *> *userGiftWall; @property (nonatomic,strong) NSArray<UserGiftWallInfoModel *> *userGiftWall;
///是否隐身进房 0不隐身1隐身
@property (nonatomic, assign) NobleEnterHideStatus enterHide;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -17,6 +17,12 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) NSInteger vipLevel; @property (nonatomic, assign) NSInteger vipLevel;
//用户好友昵称颜色 //用户好友昵称颜色
@property (nonatomic, copy) NSString *friendNickColour; @property (nonatomic, copy) NSString *friendNickColour;
///是否防被踢
@property (nonatomic, assign) BOOL preventKick;
///是否隐身进房
@property (nonatomic, assign) BOOL enterHide;
///贵族进房特效
@property (nonatomic, copy) NSString *enterRoomEffects;
@end @end

View File

@@ -60,8 +60,4 @@ typedef NS_ENUM(NSInteger, LittleGamePlayStatus) {
LittleGamePlayStatus_Plying = 3,//游戏中 LittleGamePlayStatus_Plying = 3,//游戏中
}; };
typedef NS_ENUM(NSUInteger, NobleEnterHideStatus) {
NobleEnterHideStatus_NoHide = 0,//不隐身
NobleEnterHideStatus_Hide = 1,//隐身
};
#endif /* XPEnum_h */ #endif /* XPEnum_h */

View File

@@ -38,6 +38,11 @@ NS_ASSUME_NONNULL_BEGIN
/// @param completion 完成 /// @param completion 完成
+ (void)requestRecoveryDress:(HttpRequestHelperCompletion)completion; + (void)requestRecoveryDress:(HttpRequestHelperCompletion)completion;
/// 开关隐身进房
/// @param complection 完成回调
/// @param open 是否打开
+ (void)changeEnterHidCompletion:(HttpRequestHelperCompletion)complection open:(NSString *)open;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -47,4 +47,11 @@
[self makeRequest:@"vip/recoveryDress" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; [self makeRequest:@"vip/recoveryDress" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
} }
///
/// @param complection
/// @param open
+ (void)changeEnterHidCompletion:(HttpRequestHelperCompletion)complection open:(NSString *)open {
[self makeRequest:@"vip/changeInvisibleInRoom" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__,open, nil];
}
@end @end

View File

@@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
///特权名称 ///特权名称
@property (nonatomic, copy) NSString *authName; @property (nonatomic, copy) NSString *authName;
///特权类型1. 铭牌 2. 头饰 3. 座驾 4. 礼物 5.资料卡 6. 财富值经验加成 7.表情 8.麦序光圈 9.麦位昵称颜色 10. 好友红名 ///特权类型1. 铭牌 2. 头饰 3. 座驾 4. 礼物 5.资料卡 6. 财富值经验加成 7.表情 8.麦序光圈 9.麦位昵称颜色 10. 好友红名 11.房间小喇叭 12.进场特效 13 隐身进房
@property (nonatomic, assign) NSInteger authType; @property (nonatomic, assign) NSInteger authType;
///描述图片 ///描述图片
@property (nonatomic, copy) NSString *descPic; @property (nonatomic, copy) NSString *descPic;

View File

@@ -34,6 +34,10 @@ NS_ASSUME_NONNULL_BEGIN
/// @param transcations 凭据的数组 /// @param transcations 凭据的数组
- (void)checkTranscationIds:(NSArray *)transcations; - (void)checkTranscationIds:(NSArray *)transcations;
/// 切换隐身进房
/// @param enterHide 隐身进房
- (void)changeEnterHide:(BOOL)enterHide;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -85,4 +85,12 @@
}] transcationIdStr:transcationIdStr]; }] transcationIdStr:transcationIdStr];
} }
///
/// @param enterHide
- (void)changeEnterHide:(BOOL)enterHide {
[Api changeEnterHidCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView] changeEnterHideSuccess];
}] open:[NSString stringWithFormat:@"%d", enterHide]];
}
@end @end

View File

@@ -30,4 +30,7 @@
///批量验证凭据成功 ///批量验证凭据成功
- (void)checkTranscationIdsSuccess; - (void)checkTranscationIdsSuccess;
///开关隐身进房成功
- (void)changeEnterHideSuccess;
@end @end

View File

@@ -61,6 +61,8 @@
@property (nonatomic, strong) UIButton *openNobleButton; @property (nonatomic, strong) UIButton *openNobleButton;
///- ///-
@property (nonatomic, strong) XPNobleCenterMyNobleView *myNobleView; @property (nonatomic, strong) XPNobleCenterMyNobleView *myNobleView;
///
@property (nonatomic, assign) BOOL needUpdateUserInfo;
///----- ///-----
@property (nonatomic, strong) NobleRechargeModel *rechargeModel; @property (nonatomic, strong) NobleRechargeModel *rechargeModel;
@@ -101,6 +103,9 @@
- (void)viewWillAppear:(BOOL)animated { - (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated]; [super viewWillAppear:animated];
[self hideNavigationBar]; [self hideNavigationBar];
if (self.needUpdateUserInfo) {
[self.presenter getUserInfo];
}
} }
- (XPNobleCenterPresenter *)createPresenter { - (XPNobleCenterPresenter *)createPresenter {
@@ -171,6 +176,7 @@
/// ///
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo { - (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo {
self.userInfo = userInfo; self.userInfo = userInfo;
self.needUpdateUserInfo = NO;
[self.presenter getNobleCenterInfo]; [self.presenter getNobleCenterInfo];
} }
@@ -344,6 +350,10 @@
- (void)xPNobleCenterNavView:(XPNobleCenterNavView *)view didClickSettingButton:(UIButton *)sender { - (void)xPNobleCenterNavView:(XPNobleCenterNavView *)view didClickSettingButton:(UIButton *)sender {
XPNobleSettingViewController * settingVC =[[XPNobleSettingViewController alloc] init]; XPNobleSettingViewController * settingVC =[[XPNobleSettingViewController alloc] init];
settingVC.enterHide = self.userInfo.userVipInfoVO.enterHide;
settingVC.didUpdateEnterHideBlock = ^{
self.needUpdateUserInfo = YES;
};
[self.navigationController pushViewController:settingVC animated:YES]; [self.navigationController pushViewController:settingVC animated:YES];
} }

View File

@@ -11,6 +11,10 @@ NS_ASSUME_NONNULL_BEGIN
@interface XPNobleSettingViewController : MvpViewController @interface XPNobleSettingViewController : MvpViewController
@property (nonatomic, assign) BOOL enterHide;
@property (nonatomic, copy) void(^didUpdateEnterHideBlock)(void);
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -13,8 +13,11 @@
#import "UIButton+EnlargeTouchArea.h" #import "UIButton+EnlargeTouchArea.h"
///Third ///Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
///P
#import "XPNobleCenterPresenter.h"
#import "XPNobleCenterProtocol.h"
@interface XPNobleSettingViewController ()<XPNobleSettingNavViewDelegate> @interface XPNobleSettingViewController ()<XPNobleSettingNavViewDelegate, XPNobleCenterProtocol>
@property (nonatomic, strong) XPNobleSettingNavView *navView; @property (nonatomic, strong) XPNobleSettingNavView *navView;
/// ///
@@ -26,6 +29,10 @@
@implementation XPNobleSettingViewController @implementation XPNobleSettingViewController
- (XPNobleCenterPresenter *)createPresenter {
return [[XPNobleCenterPresenter alloc] init];
}
- (void)viewDidLoad { - (void)viewDidLoad {
[super viewDidLoad]; [super viewDidLoad];
self.title = @"贵族设置"; self.title = @"贵族设置";
@@ -54,7 +61,7 @@
make.height.mas_equalTo(kNavigationHeight); make.height.mas_equalTo(kNavigationHeight);
}]; }];
[self.label mas_makeConstraints:^(MASConstraintMaker *make) { [self.label mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kNavigationHeight+8); make.top.mas_equalTo(kNavigationHeight+16);
make.left.mas_equalTo(15); make.left.mas_equalTo(15);
make.height.mas_equalTo(21); make.height.mas_equalTo(21);
}]; }];
@@ -66,6 +73,13 @@
}]; }];
} }
#pragma mark - XPNobleCenterProtocol
- (void)changeEnterHideSuccess {
self.switchButton.selected = !self.switchButton.selected;
if (self.didUpdateEnterHideBlock) {
self.didUpdateEnterHideBlock();
}
}
#pragma mark - XPNobleSettingNavViewDelegate #pragma mark - XPNobleSettingNavViewDelegate
/// ///
@@ -74,10 +88,15 @@
} }
- (void)switchButtonAction:(UIButton *)sender { - (void)switchButtonAction:(UIButton *)sender {
[self.presenter changeEnterHide:!sender.isSelected];
}
#pragma mark - getter and setter
- (void)setEnterHide:(BOOL)enterHide {
_enterHide = enterHide;
self.switchButton.selected = enterHide;
} }
#pragma mark - getter
- (XPNobleSettingNavView *)navView { - (XPNobleSettingNavView *)navView {
if (!_navView) { if (!_navView) {
_navView = [[XPNobleSettingNavView alloc] init]; _navView = [[XPNobleSettingNavView alloc] init];
@@ -91,7 +110,7 @@
_label = [[UILabel alloc] init]; _label = [[UILabel alloc] init];
_label.text = @"隐身进房"; _label.text = @"隐身进房";
_label.textColor = [UIColor whiteColor]; _label.textColor = [UIColor whiteColor];
_label.font = [UIFont systemFontOfSize:14]; _label.font = [UIFont systemFontOfSize:15];
} }
return _label; return _label;
} }

View File

@@ -75,7 +75,8 @@
extModel.fromNick = userInfo.fromNick; extModel.fromNick = userInfo.fromNick;
extModel.iosBubbleUrl = userInfo.iosBubbleUrl; extModel.iosBubbleUrl = userInfo.iosBubbleUrl;
extModel.androidBubbleUrl = userInfo.androidBubbleUrl; extModel.androidBubbleUrl = userInfo.androidBubbleUrl;
extModel.enterHide = userInfo.enterHide; extModel.enterHide = userInfo.userVipInfoVO.enterHide;
extModel.enterRoomEffects = userInfo.userVipInfoVO.enterRoomEffects;
NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]]; NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]];
request.roomExt = [ext toJSONString]; request.roomExt = [ext toJSONString];

View File

@@ -233,7 +233,7 @@
NIMMessageChatroomExtension * messageExt = (NIMMessageChatroomExtension *)message.messageExt; NIMMessageChatroomExtension * messageExt = (NIMMessageChatroomExtension *)message.messageExt;
NSDictionary * dic = [(NSDictionary *)messageExt.roomExt.toJSONObject objectForKey:message.from]; NSDictionary * dic = [(NSDictionary *)messageExt.roomExt.toJSONObject objectForKey:message.from];
XPMessageRemoteExtModel * extModel = [XPMessageRemoteExtModel modelWithJSON:dic]; XPMessageRemoteExtModel * extModel = [XPMessageRemoteExtModel modelWithJSON:dic];
if (extModel.enterHide == NobleEnterHideStatus_Hide) {// if (extModel.enterHide) {//
if ([message.from isEqualToString:[AccountInfoStorage instance].getUid]) { if ([message.from isEqualToString:[AccountInfoStorage instance].getUid]) {
[self createEnterHideAnimation:dic]; [self createEnterHideAnimation:dic];
} }
@@ -344,13 +344,13 @@
if (extModel.experLevelSeq < 30) return; if (extModel.experLevelSeq < 30) return;
NSString * title = [NSString stringWithFormat:@"%@进入了房间", content.source.nick]; NSString * title = [NSString stringWithFormat:@"%@进入了房间", content.source.nick];
if (self.enterEffectQueue.count ==0) { if (self.enterEffectQueue.count ==0) {
[self playUserEnterRoomAnimation:title experLevelSeq:extModel.experLevelSeq]; [self playUserEnterRoomAnimation:title experLevelSeq:extModel.experLevelSeq effectPath:extModel.enterRoomEffects];
} }
NSDictionary * dic= @{@"title":title, @"experLevelSeq":[NSString stringWithFormat:@"%ld", extModel.experLevelSeq]}; NSDictionary * dic= @{@"title":title, @"experLevelSeq":[NSString stringWithFormat:@"%ld", extModel.experLevelSeq], @"effectPath" : extModel.enterRoomEffects.length ? extModel.enterRoomEffects : @""};
[self.enterEffectQueue addObject:dic]; [self.enterEffectQueue addObject:dic];
} }
- (void)playUserEnterRoomAnimation:(NSString *)title experLevelSeq:(NSInteger)experLevelSeq { - (void)playUserEnterRoomAnimation:(NSString *)title experLevelSeq:(NSInteger)experLevelSeq effectPath:(NSString *)effectPath {
NSString * path; NSString * path;
if (experLevelSeq >= 30 && experLevelSeq <= 39) { if (experLevelSeq >= 30 && experLevelSeq <= 39) {
path = @"svga_member_in_lv30"; path = @"svga_member_in_lv30";
@@ -375,6 +375,21 @@
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:26], NSForegroundColorAttributeName:[UIColor whiteColor]}]; NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:26], NSForegroundColorAttributeName:[UIColor whiteColor]}];
[attribute setYy_alignment:NSTextAlignmentLeft]; [attribute setYy_alignment:NSTextAlignmentLeft];
if (effectPath.length > 0) {
@kWeakify(self);
[self.parser parseWithURL:[NSURL URLWithString:effectPath] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self);
self.enterEffectView.loops = 1;
self.enterEffectView.hidden = NO;
self.enterEffectView.clearsAfterStop = NO;
self.enterEffectView.alpha = 1;
self.enterEffectView.videoItem = videoItem;
[self.enterEffectView setAttributedText:attribute forKey:@"room_text"];
[self.enterEffectView startAnimation];
} failureBlock:^(NSError * _Nonnull error) {
}];
} else {
@kWeakify(self); @kWeakify(self);
[self.parser parseWithNamed:path inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { [self.parser parseWithNamed:path inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self); @kStrongify(self);
@@ -388,6 +403,7 @@
} failureBlock:^(NSError * _Nonnull error) { } failureBlock:^(NSError * _Nonnull error) {
}]; }];
}
[UIView animateWithDuration:0.5 animations:^{ [UIView animateWithDuration:0.5 animations:^{
@@ -1294,7 +1310,8 @@
if (self.enterEffectQueue.count > 0) { if (self.enterEffectQueue.count > 0) {
NSString * title = [self.enterEffectQueue.firstObject objectForKey:@"title"]; NSString * title = [self.enterEffectQueue.firstObject objectForKey:@"title"];
NSInteger experLevelSeq = [(NSString *)[self.enterEffectQueue.firstObject objectForKey:@"experLevelSeq"] integerValue]; NSInteger experLevelSeq = [(NSString *)[self.enterEffectQueue.firstObject objectForKey:@"experLevelSeq"] integerValue];
[self playUserEnterRoomAnimation:title experLevelSeq:experLevelSeq]; NSString *effectPath = [self.enterEffectQueue.firstObject objectForKey:@"effectPath"];
[self playUserEnterRoomAnimation:title experLevelSeq:experLevelSeq effectPath:effectPath];
} }
} }
} }

View File

@@ -43,7 +43,9 @@ NS_ASSUME_NONNULL_BEGIN
///iOS房间公屏气泡 ///iOS房间公屏气泡
@property (nonatomic, copy) NSString *iosBubbleUrl; @property (nonatomic, copy) NSString *iosBubbleUrl;
///是否隐身进房 0不隐身1隐身 ///是否隐身进房 0不隐身1隐身
@property (nonatomic, assign) NobleEnterHideStatus enterHide; @property (nonatomic, assign) BOOL enterHide;
///进房特效
@property (nonatomic, copy) NSString *enterRoomEffects;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -752,12 +752,12 @@
case UserCardItemType_KickOut: case UserCardItemType_KickOut:
{ {
// 1 // 1
if (self.targetUserInfo.userVipInfoVO.vipLevel > 6) { if (self.targetUserInfo.userVipInfoVO.preventKick) {
//2 //2
if (self.cardInfo.roomInfo.uid != [AccountInfoStorage instance].getUid.integerValue) { if (self.cardInfo.roomInfo.uid != [AccountInfoStorage instance].getUid.integerValue) {
[self showErrorToast:@"该用户为神皇贵族,只有房主才可以踢出哦~"]; [self showErrorToast:@"该用户为神皇贵族,只有房主才可以踢出哦~"];
} else {// } else {//
NSString *message = [NSString stringWithFormat:@"该用户为神皇贵族\n确认是否要将其踢出"]; NSString *message = [NSString stringWithFormat:@"该用户为神皇贵族\n确认是否要将其踢出房间"];
TTAlertConfig *config = [[TTAlertConfig alloc] init]; TTAlertConfig *config = [[TTAlertConfig alloc] init];
config.title = @""; config.title = @"";
config.message = message; config.message = message;

View File

@@ -247,6 +247,9 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
attachment.first = CustomMessageType_Car_Notify; attachment.first = CustomMessageType_Car_Notify;
attachment.second = Custom_Message_Sub_Car_EnterRoom; attachment.second = Custom_Message_Sub_Car_EnterRoom;
NSMutableDictionary *att = [NSMutableDictionary dictionary]; NSMutableDictionary *att = [NSMutableDictionary dictionary];
if (self.userInfo.userVipInfoVO.enterHide) {///,
return;
}
if (self.userInfo.viewUrl.length > 0) { if (self.userInfo.viewUrl.length > 0) {
[att setValue:self.userInfo.nick forKey:@"nick"]; [att setValue:self.userInfo.nick forKey:@"nick"];
[att setValue:self.userInfo.viewUrl forKey:@"viewUrl"]; [att setValue:self.userInfo.viewUrl forKey:@"viewUrl"];