家族超级管理员搜索设置

This commit is contained in:
fengshuo
2022-04-14 00:35:31 +08:00
parent 3f0f944b1d
commit a31dd206ac
19 changed files with 456 additions and 21 deletions

View File

@@ -631,6 +631,8 @@
E8C6FFEA2755040B004DC9F0 /* XPHomeSearchNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C6FFE92755040B004DC9F0 /* XPHomeSearchNavView.m */; };
E8C6FFED27550CC2004DC9F0 /* HomeSearchResultModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C6FFEC27550CC2004DC9F0 /* HomeSearchResultModel.m */; };
E8CEA03D26EA3DE500644B44 /* LoginPasswordPresent.m in Sources */ = {isa = PBXBuildFile; fileRef = E8CEA03C26EA3DE500644B44 /* LoginPasswordPresent.m */; };
E8D34D41280714F3009C4835 /* GuildSearchSuperAdminModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D40280714F3009C4835 /* GuildSearchSuperAdminModel.m */; };
E8D34D4428071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4328071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.m */; };
E8D4824A278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D48249278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m */; };
E8D4824D278D2CE4003C1D08 /* XPAcrossRoomPKInviteResultView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D4824C278D2CE4003C1D08 /* XPAcrossRoomPKInviteResultView.m */; };
E8D48250278D68BA003C1D08 /* XPAcrpssRoomPKPanelView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D4824F278D68BA003C1D08 /* XPAcrpssRoomPKPanelView.m */; };
@@ -1954,6 +1956,10 @@
E8CEA03B26EA3DE500644B44 /* LoginPasswordPresent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginPasswordPresent.h; sourceTree = "<group>"; };
E8CEA03C26EA3DE500644B44 /* LoginPasswordPresent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginPasswordPresent.m; sourceTree = "<group>"; };
E8CEA03E26EA3E0200644B44 /* LoginPasswordProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginPasswordProtocol.h; sourceTree = "<group>"; };
E8D34D3F280714F3009C4835 /* GuildSearchSuperAdminModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuildSearchSuperAdminModel.h; sourceTree = "<group>"; };
E8D34D40280714F3009C4835 /* GuildSearchSuperAdminModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GuildSearchSuperAdminModel.m; sourceTree = "<group>"; };
E8D34D4228071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildSearchSuperAdminTableViewCell.h; sourceTree = "<group>"; };
E8D34D4328071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildSearchSuperAdminTableViewCell.m; sourceTree = "<group>"; };
E8D48248278D1F72003C1D08 /* XPAcrossRoomPKInviteView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAcrossRoomPKInviteView.h; sourceTree = "<group>"; };
E8D48249278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAcrossRoomPKInviteView.m; sourceTree = "<group>"; };
E8D4824B278D2CE4003C1D08 /* XPAcrossRoomPKInviteResultView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAcrossRoomPKInviteResultView.h; sourceTree = "<group>"; };
@@ -5102,6 +5108,8 @@
E8C167292806B1E500ECB15C /* XPGuildSuperAdminSetTableViewCell.m */,
E8C1672B2806BD8B00ECB15C /* XPGuildSuperAdminRoomCollectionViewCell.h */,
E8C1672C2806BD8B00ECB15C /* XPGuildSuperAdminRoomCollectionViewCell.m */,
E8D34D4228071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.h */,
E8D34D4328071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.m */,
);
path = SuperAdmin;
sourceTree = "<group>";
@@ -5204,6 +5212,8 @@
E8C167262806A68F00ECB15C /* GuildRoomInfoModel.m */,
E8C1672E2806C01500ECB15C /* GuildSuperAdminInfoModel.h */,
E8C1672F2806C01500ECB15C /* GuildSuperAdminInfoModel.m */,
E8D34D3F280714F3009C4835 /* GuildSearchSuperAdminModel.h */,
E8D34D40280714F3009C4835 /* GuildSearchSuperAdminModel.m */,
);
path = SuperAdmin;
sourceTree = "<group>";
@@ -6216,6 +6226,7 @@
18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */,
E8B846D326FDDBE600A777FE /* XPMineRechargeTableViewCell.m in Sources */,
E8D48256278D83AE003C1D08 /* XPAcrossRoomPKPanelUserView.m in Sources */,
E8D34D41280714F3009C4835 /* GuildSearchSuperAdminModel.m in Sources */,
E824546126F5F4E400BE8163 /* XPMineResetPayPwdViewController.m in Sources */,
E81D58822720082A003063FE /* MicroWaveView.m in Sources */,
E8B825C226EA00DF009E8E9F /* LoginVerifCodePresent.m in Sources */,
@@ -6431,6 +6442,7 @@
9B16A34827E17D9B00E13A98 /* XPRoomTrumpetViewController.m in Sources */,
186A534D26FC6ED900D67B2C /* TTActionSheetView.m in Sources */,
9B7D8857279C099C00785A25 /* XPSkillCardListPropCell.m in Sources */,
E8D34D4428071626009C4835 /* XPGuildSearchSuperAdminTableViewCell.m in Sources */,
E855515128055581005F293F /* XPGuildTimeMonthPickerView.m in Sources */,
E83DB481274649FB00D8CBD1 /* XPGiftBannerUserInfoModel.m in Sources */,
9B33E3CE27D8540C003B0E62 /* XPVoiceCardViewController.m in Sources */,

View File

@@ -19,6 +19,9 @@ NS_ASSUME_NONNULL_BEGIN
/// 获取用户信息
- (void)getUserInfo;
/// 获取家族详细的信息
- (void)getClanDetailInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -10,9 +10,11 @@
#import "AccountInfoStorage.h"
///Api
#import "Api+Mine.h"
#import "Api+Guild.h"
///Model
#import "XPMineItemModel.h"
#import "UserInfoModel.h"
#import "ClanDetailInfoModel.h"
///Protocol
#import "XPMineProtocol.h"
@implementation XPMinePresent
@@ -75,11 +77,6 @@
realNameItem.type = XPMineItemType_Real_Name_Authentic;
realNameItem.cornerType = UIRectCornerBottomLeft | UIRectCornerBottomRight;
XPMineItemModel * guildItem = [[XPMineItemModel alloc] init];
guildItem.itemName = @"我的工会";
guildItem.itemImageName = @"mine_normal_my_guild";
guildItem.type = XPMineItemType_My_Guild;
XPMineItemModel * visitorItem = [[XPMineItemModel alloc] init];
visitorItem.itemName = @"访客记录";
visitorItem.itemImageName = @"mine_normal_visitor";
@@ -87,12 +84,12 @@
BaseViewController *vc = [self getView];
visitorItem.unReadCount = [vc.tabBarItem.badgeValue integerValue];
XPMineItemModel * fansTeamItem = [[XPMineItemModel alloc] init];
fansTeamItem.itemName = @"粉丝团";
fansTeamItem.itemImageName = @"mine_normal_anchor_fansTeam";
fansTeamItem.type = XPMineItemType_FansTeam;
NSArray * array = @[myRoomItem,teenagerItem, myDressUp, guildItem, inviteFriend, visitorItem,fansTeamItem, realNameItem];
NSArray * array = @[myRoomItem,teenagerItem, myDressUp, inviteFriend, visitorItem,fansTeamItem, realNameItem];
[[self getView] onGetNormalItemsSuccess:array];
}
@@ -110,4 +107,13 @@
}] uid:uid];
}
///
- (void)getClanDetailInfo {
NSString * uid = [[AccountInfoStorage instance] getUid];
[Api getClanDetailInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
ClanDetailInfoModel * clanDetailInfo = [ClanDetailInfoModel modelWithDictionary:data.data];
[[self getView] onGetClanDetailInfoSuccess:clanDetailInfo];
}] uid:uid];
}
@end

View File

@@ -8,7 +8,7 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class XPMineItemModel, UserInfoModel;
@class XPMineItemModel, UserInfoModel, ClanDetailInfoModel;
@protocol XPMineProtocol <NSObject>
/// 获取赛事模块的items
@@ -22,6 +22,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onGetCardItemsSuccess:(NSArray<XPMineItemModel *> *)cardItems;
///获取用户信息成功
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo;
///获取家族公会信息成功
- (void)onGetClanDetailInfoSuccess:(ClanDetailInfoModel *)clanInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -173,6 +173,12 @@ NS_ASSUME_NONNULL_BEGIN
/// @param completion 完成
/// @param targetUid 移除的人的uid
+ (void)clanRemoveSuperAdmin:(HttpRequestHelperCompletion)completion targetUid:(NSString *)targetUid;
/// 添加工会超管
/// @param completion 完成
/// @param uid 用户的uid
/// @param erbanNo 搜索的id
+ (void)searchGuildSuperAdmin:(HttpRequestHelperCompletion)completion uid:(NSString *)uid erbanNo:(NSString *)erbanNo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -223,4 +223,13 @@
[self makeRequest:@"hall/superManager/remove" method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, targetUid,nil];
}
///
/// @param completion
/// @param uid uid
/// @param erbanNo id
+ (void)searchGuildSuperAdmin:(HttpRequestHelperCompletion)completion uid:(NSString *)uid erbanNo:(NSString *)erbanNo {
[self makeRequest:@"hall/superManager/search" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, erbanNo, nil];
}
@end

View File

@@ -0,0 +1,26 @@
//
// GuildSearchSuperAdminModel.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/13.
//
#import <Foundation/Foundation.h>
#import "XPEnum.h"
NS_ASSUME_NONNULL_BEGIN
@interface GuildSearchSuperAdminModel : NSObject
///用户的uid
@property (nonatomic,copy) NSString *uid;
///平台id
@property (nonatomic,copy) NSString *erbanNo;
///昵称
@property (nonatomic,copy) NSString *nick;
///头像
@property (nonatomic,copy) NSString *avatar;
///性别
@property (nonatomic,assign) GenderType gender;
///是否已经是超管
@property (nonatomic,assign) BOOL hasSet;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// GuildSearchSuperAdminModel.m
// xplan-ios
//
// Created by on 2022/4/13.
//
#import "GuildSearchSuperAdminModel.h"
@implementation GuildSearchSuperAdminModel
@end

View File

@@ -18,6 +18,10 @@ NS_ASSUME_NONNULL_BEGIN
/// 工会添加成员 搜索用户
/// @param key 搜索的关键词
- (void)guildAddMemberSearch:(NSString *)key;
/// 添加公会超管
/// @param key 搜索的id
- (void)searchGuildSuperAdmin:(NSString *)key;
@end
NS_ASSUME_NONNULL_END

View File

@@ -10,6 +10,8 @@
#import "XPGuildSearchProtocol.h"
#import "ClanMemberDetailInfoModel.h"
#import "GuildSearchUserInfoModel.h"
#import "GuildSearchSuperAdminModel.h"
#import "AccountInfoStorage.h"
@implementation XPGuildSearchPresenter
///
@@ -34,5 +36,15 @@
} showLoading:YES] key:key type:@"2" page:@"1" pageSize:@"50"];
}
///
/// @param key id
- (void)searchGuildSuperAdmin:(NSString *)key {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api searchGuildSuperAdmin:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
GuildSearchSuperAdminModel * info = [GuildSearchSuperAdminModel modelWithDictionary:data.data];
[[self getView] searchGuildSuperAdminSuccess:@[info]];
} showLoading:YES] uid:uid erbanNo:key];
}
@end

View File

@@ -15,6 +15,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)searchClanMemberListSuccess:(NSArray *)memberList;
///工会添加成员 搜索用户
- (void)guildAddMemberSearchSuccess:(NSArray *)memberList;
///搜索添加工会超管
- (void)searchGuildSuperAdminSuccess:(NSArray *)memberList;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,23 @@
//
// XPGuildSearchSuperAdminTableViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/13.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class GuildSearchSuperAdminModel, XPGuildSearchSuperAdminTableViewCell;
@protocol XPGuildSearchSuperAdminTableViewCellDelegate <NSObject>
- (void)xPGuildSearchSuperAdminTableViewCell:(XPGuildSearchSuperAdminTableViewCell *)cell didSelectInfo:(GuildSearchSuperAdminModel *)userInfo;
@end
@interface XPGuildSearchSuperAdminTableViewCell : UITableViewCell
///代理
@property (nonatomic,weak) id<XPGuildSearchSuperAdminTableViewCellDelegate> delegate;
@property (nonatomic,strong) GuildSearchSuperAdminModel *userInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,163 @@
//
// XPGuildSearchSuperAdminTableViewCell.m
// xplan-ios
//
// Created by on 2022/4/13.
//
#import "XPGuildSearchSuperAdminTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "NetImageView.h"
#import "UIImage+Utils.h"
///Model
#import "GuildSearchSuperAdminModel.h"
@interface XPGuildSearchSuperAdminTableViewCell ()
///
@property (nonatomic,strong) NetImageView *avatarImageView;
///
@property (nonatomic,strong) UILabel *nickLabel;
///
@property (nonatomic,strong) UIImageView *sexImageView;
///id
@property (nonatomic,strong) UILabel *idLabel;
///
@property (nonatomic,strong) UIButton *superAdminButton;
@end
@implementation XPGuildSearchSuperAdminTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [ThemeColor appCellBackgroundColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.nickLabel];
[self.contentView addSubview:self.sexImageView];
[self.contentView addSubview:self.idLabel];
[self.contentView addSubview:self.superAdminButton];
}
- (void)initSubViewConstraints {
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.contentView);
make.left.mas_equalTo(self.contentView).offset(15);
make.width.height.mas_equalTo(50);
}];
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-3);
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(6);
}];
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.nickLabel.mas_centerY);
make.left.mas_equalTo(self.nickLabel.mas_right).mas_offset(3);
make.height.width.mas_equalTo(18);
}];
[self.idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(2);
make.left.mas_equalTo(self.nickLabel.mas_left);
}];
[self.superAdminButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(self.contentView).offset(-15);
make.width.mas_equalTo(90);
make.height.mas_equalTo(30);
make.centerY.mas_equalTo(self.contentView);
}];
}
#pragma mark - Event Response
- (void)superAdminButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPGuildSearchSuperAdminTableViewCell:didSelectInfo:)]) {
[self.delegate xPGuildSearchSuperAdminTableViewCell:self didSelectInfo:self.userInfo];
}
}
#pragma mark - Getters And Setters
- (void)setUserInfo:(GuildSearchSuperAdminModel *)userInfo {
_userInfo = userInfo;
if (_userInfo) {
self.avatarImageView.imageUrl = _userInfo.avatar;
NSString * nick = _userInfo.nick;
if (nick.length > 8) {
nick = [nick substringToIndex:8];
}
self.nickLabel.text = nick;
self.sexImageView.image = _userInfo.gender == GenderType_Female ? [UIImage imageNamed:@"common_female"] : [UIImage imageNamed:@"common_male"];
self.idLabel.text = [NSString stringWithFormat:@"%@", _userInfo.erbanNo];
self.superAdminButton.enabled = !_userInfo.hasSet;
}
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 25;
_avatarImageView.layer.borderColor = [ThemeColor appMainColor].CGColor;
_avatarImageView.layer.borderWidth = 1;
}
return _avatarImageView;
}
- (UILabel *)nickLabel {
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont systemFontOfSize:18];
_nickLabel.textColor = [ThemeColor mainTextColor];
}
return _nickLabel;
}
- (UIImageView *)sexImageView {
if (!_sexImageView) {
_sexImageView = [[UIImageView alloc] init];
_sexImageView.userInteractionEnabled = YES;
}
return _sexImageView;
}
- (UILabel *)idLabel {
if (!_idLabel) {
_idLabel = [[UILabel alloc] init];
_idLabel.font = [UIFont systemFontOfSize:12];
_idLabel.textColor = [ThemeColor secondTextColor];
}
return _idLabel;
}
- (UIButton *)superAdminButton {
if (!_superAdminButton) {
_superAdminButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_superAdminButton setTitle:@"设置为超管" forState:UIControlStateNormal];
[_superAdminButton setTitle:@"已设置为超管" forState:UIControlStateDisabled];
[_superAdminButton setTitleColor:[ThemeColor confirmButtonTextColor] forState:UIControlStateNormal];
[_superAdminButton setTitleColor:[ThemeColor disableButtonTextColor] forState:UIControlStateNormal];
_superAdminButton.titleLabel.font = [UIFont systemFontOfSize:14];
[_superAdminButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[ThemeColor confirmButtonGradientStartColor], [ThemeColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
_superAdminButton.layer.masksToBounds = YES;
_superAdminButton.layer.cornerRadius = 15;
[_superAdminButton addTarget:self action:@selector(superAdminButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _superAdminButton;
}
@end

View File

@@ -19,6 +19,7 @@
#import "XPGuildSuperAdminSetTableViewCell.h"
#import "XPMineGuildEmptyTableViewCell.h"
#import "XPMineGuildChooseManagerViewController.h"
#import "XPMineGuildSearchViewController.h"
///P
#import "XPSuperAdminSetPresenter.h"
#import "XPSuperAdminSetProtocol.h"
@@ -58,7 +59,8 @@
- (void)initSubViewConstraints {
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
make.left.right.top.mas_equalTo(self.view);
make.bottom.mas_equalTo(self.addManagerButton.mas_top);
}];
[self.addManagerButton mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -150,9 +152,14 @@
}
}
#pragma mark - Event Response
- (void)addManagerButtonAction:(UIButton *)sender {
XPMineGuildSearchViewController * searchVC = [[XPMineGuildSearchViewController alloc] init];
searchVC.searchType = GuildSearchType_Clan_Add_Super_Admin;
searchVC.modalPresentationStyle = UIModalPresentationOverFullScreen;
searchVC.clanOwnerUid = self.clanId;
[self.navigationController presentViewController:searchVC animated:YES completion:nil];
}
#pragma mark - Getters And Setters

View File

@@ -24,6 +24,7 @@
#import "XPMineClanIncomeStatisViewController.h"
#import "XPMineAnchorIncomeStatisViewController.h"
#import "XPMineGuildSuperAdminSetViewController.h"
#import "XPMineUserInfoViewController.h"
///P
#import "XPClanPresenter.h"
#import "XPClanProtocol.h"
@@ -181,6 +182,16 @@
return [[UIView alloc]init];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.datasource.count > 0) {
ClanMemberInfoModel * memberInfo = [self.datasource objectAtIndex:indexPath.row];
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
userInfoVC.uid = memberInfo.uid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
}
}
#pragma mark - XPClanSectionViewDelegate
- (void)xPClanSectionView:(XPClanSectionView *)view didClickSearch:(UIButton *)sender {
XPMineGuildSearchViewController * searchVC = [[XPMineGuildSearchViewController alloc] init];
@@ -229,7 +240,9 @@
}
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicSelectOwner:(ClanDetailInfoModel *)guildInfo {
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
userInfoVC.uid = guildInfo.clan.elderUid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
}
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicTapMenuItem:(GuildHeaderMenuType)menuType {

View File

@@ -8,13 +8,15 @@
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@class XPMineGuildSearchViewController, ClanMemberInfoModel, GuildSearchUserInfoModel;
@class XPMineGuildSearchViewController, ClanMemberInfoModel, GuildSearchUserInfoModel, GuildSearchSuperAdminModel;
typedef NS_ENUM(NSInteger, GuildSearchType) {
GuildSearchType_Clan_All_Member = 1,
///工会增加新成员
GuildSearchType_Guild_Add_Member,
///工会移除成员
GuildSearchType_Guild_Remove_Member,
///家族设置超级管理员
GuildSearchType_Clan_Add_Super_Admin,
};
@protocol XPMineGuildSearchViewControllerDelegate <NSObject>
@@ -22,6 +24,8 @@ typedef NS_ENUM(NSInteger, GuildSearchType) {
- (void)xPMineGuildSearchViewController:(XPMineGuildSearchViewController *)viewController chooseUserInfo:(ClanMemberInfoModel *)memberInfo;
///邀请用户加入工会
- (void)xPMineGuildSearchViewController:(XPMineGuildSearchViewController *)viewController inviteUserInfo:(GuildSearchUserInfoModel *)userInfo;
///邀请用户成为管理员
- (void)xPMineGuildSearchViewController:(XPMineGuildSearchViewController *)viewController superAdminInfo:(GuildSearchSuperAdminModel *)superAdminInfo;
@end
@interface XPMineGuildSearchViewController : MvpViewController
@@ -29,7 +33,6 @@ typedef NS_ENUM(NSInteger, GuildSearchType) {
@property (nonatomic,weak) id<XPMineGuildSearchViewControllerDelegate> delegate;
///族长的uid
@property (nonatomic,copy) NSString *clanOwnerUid;
///搜索的类型
@property (nonatomic,assign) GuildSearchType searchType;

View File

@@ -10,20 +10,25 @@
#import <Masonry/Masonry.h>
///Tool
#import "XPMacro.h"
#import "ThemeColor.h"
#import "TTPopup.h"
///Model
#import "ClanMemberDetailInfoModel.h"
#import "GuildSearchUserInfoModel.h"
#import "GuildSearchSuperAdminModel.h"
///View
#import "XPGuildSearchNavView.h"
#import "XPClanMemberTableViewCell.h"
#import "XPMineGuildEmptyTableViewCell.h"
#import "XPMineGuildSearchMemberTableViewCell.h"
#import "XPGuildSearchSuperAdminTableViewCell.h"
#import "XPMineUserInfoViewController.h"
#import "XPMineGuildChooseManagerViewController.h"
///P
#import "XPGuildSearchPresenter.h"
#import "XPGuildSearchProtocol.h"
@interface XPMineGuildSearchViewController ()<UITableViewDelegate, UITableViewDataSource,XPGuildSearchProtocol, XPGuildSearchNavViewDelegate, XPClanMemberTableViewCellDelegate, XPMineGuildSearchMemberTableViewCellDelegate>
@interface XPMineGuildSearchViewController ()<UITableViewDelegate, UITableViewDataSource,XPGuildSearchProtocol, XPGuildSearchNavViewDelegate, XPClanMemberTableViewCellDelegate, XPMineGuildSearchMemberTableViewCellDelegate, XPGuildSearchSuperAdminTableViewCellDelegate>
///
@property (nonatomic,strong) XPGuildSearchNavView *navView;
///
@@ -75,6 +80,8 @@
return 66;
} else if(self.searchType == GuildSearchType_Guild_Add_Member) {
return 70;
} else if(self.searchType == GuildSearchType_Clan_Add_Super_Admin) {
return 70;
}
return 0;
}
@@ -112,6 +119,15 @@
GuildSearchUserInfoModel * userInfo = [self.datasource objectAtIndex:indexPath.row];
cell.userInfo = userInfo;
return cell;
} else if(self.searchType == GuildSearchType_Clan_Add_Super_Admin) {
XPGuildSearchSuperAdminTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPGuildSearchSuperAdminTableViewCell class])];
if (cell == nil) {
cell = [[XPGuildSearchSuperAdminTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPGuildSearchSuperAdminTableViewCell class])];
}
cell.delegate = self;
GuildSearchSuperAdminModel * userInfo = [self.datasource objectAtIndex:indexPath.row];
cell.userInfo = userInfo;
return cell;
}
}
XPMineGuildEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineGuildEmptyTableViewCell class])];
@@ -183,11 +199,42 @@
break;
case GuildSearchType_Guild_Add_Member:
[self.presenter guildAddMemberSearch:key];
break;
case GuildSearchType_Clan_Add_Super_Admin:
[self.presenter searchGuildSuperAdmin:key];
break;
default:
break;
}
}
#pragma mark - XPGuildSearchSuperAdminTableViewCellDelegate
- (void)xPGuildSearchSuperAdminTableViewCell:(XPGuildSearchSuperAdminTableViewCell *)cell didSelectInfo:(GuildSearchSuperAdminModel *)userInfo {
if (userInfo && !userInfo.hasSet) {
NSString * message = [NSString stringWithFormat:@"确定要添加用户%@(大鹅ID:%@)为公会超级管理员吗?", userInfo.nick, userInfo.erbanNo];
TTAlertConfig * config =[[TTAlertConfig alloc] init];
config.message = message;
TTAlertMessageAttributedConfig * nickAttribute = [[TTAlertMessageAttributedConfig alloc] init];
nickAttribute.text = userInfo.nick;
nickAttribute.color = [ThemeColor appMainColor];
TTAlertMessageAttributedConfig * idAttribute = [[TTAlertMessageAttributedConfig alloc] init];
idAttribute.text = userInfo.erbanNo;
idAttribute.color = [ThemeColor appMainColor];
config.messageAttributedConfig = @[nickAttribute, idAttribute];
[TTPopup alertWithConfig:config confirmHandler:^{
XPMineGuildChooseManagerViewController * managerRoomVC = [[XPMineGuildChooseManagerViewController alloc] init];
managerRoomVC.clanId = self.clanOwnerUid;
managerRoomVC.targetUid = userInfo.uid;
[(UINavigationController *)self.presentingViewController pushViewController:managerRoomVC animated:YES];
[self dismissViewControllerAnimated:YES completion:nil];
} cancelHandler:^{
}];
}
}
#pragma mark - XPGuildSearchProtocol
- (void)searchClanMemberListSuccess:(NSArray *)memberList {
self.datasource = memberList;
@@ -199,7 +246,24 @@
[self.tableView reloadData];
}
- (void)searchGuildSuperAdminSuccess:(NSArray *)memberList {
self.datasource = memberList;
[self.tableView reloadData];
}
#pragma mark - Getters And Setters
- (void)setSearchType:(GuildSearchType)searchType {
_searchType = searchType;
switch (_searchType) {
case GuildSearchType_Clan_Add_Super_Admin:
self.navView.placeHolder = @"请输入公会成员大鹅号";
break;
default:
break;
}
}
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
@@ -213,6 +277,7 @@
}
[_tableView registerClass:[XPClanMemberTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPClanMemberTableViewCell class])];
[_tableView registerClass:[XPMineGuildSearchMemberTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineGuildSearchMemberTableViewCell class])];
[_tableView registerClass:[XPGuildSearchSuperAdminTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPGuildSearchSuperAdminTableViewCell class])];
}
return _tableView;
}

View File

@@ -29,6 +29,7 @@
#import "XPMineMangerListViewController.h"
#import "XPMineGuildIncomeStatisViewController.h"
#import "XPMineHallAnchorIncomeStatisViewController.h"
#import "XPMineUserInfoViewController.h"
///P
#import "XPGuildPresenter.h"
#import "XPGuildProtocol.h"
@@ -313,6 +314,16 @@
return [[UIView alloc]init];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.datasource.count > 0) {
ClanMemberInfoModel * memberInfo = [self.datasource objectAtIndex:indexPath.row];
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
userInfoVC.uid = memberInfo.uid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
}
}
#pragma mark - XPMineGuildSearchViewControllerDelegate
- (void)xPMineGuildSearchViewController:(XPMineGuildSearchViewController *)viewController inviteUserInfo:(GuildSearchUserInfoModel *)userInfo {
if (userInfo && userInfo.uid.length > 0) {
@@ -456,6 +467,11 @@
}
}
- (void)didTapRecognizer {
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
userInfoVC.uid = self.clanDetailInfo.hall.ownerUid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
}
#pragma mark - Getters And Setters
- (UIView *)navView {
@@ -535,6 +551,9 @@
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 70/2;
_avatarImageView.userInteractionEnabled = YES;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapRecognizer)];
[_avatarImageView addGestureRecognizer:tap];
}
return _avatarImageView;
}
@@ -556,6 +575,7 @@
_backImageView = [[NetImageView alloc] initWithConfig:config];
_backImageView.contentMode = UIViewContentModeScaleAspectFill;
_backImageView.layer.masksToBounds = YES;
_backImageView.userInteractionEnabled = YES;
}
return _backImageView;
}

View File

@@ -21,6 +21,7 @@
#import "XPMineItemModel.h"
#import "UserInfoModel.h"
#import "XPMineVisitorUnReadModel.h"
#import "ClanDetailInfoModel.h"
///P
#import "XPMineProtocol.h"
#import "XPMinePresent.h"
@@ -46,6 +47,7 @@
#import "XPMineVisitorViewController.h"
#import "XPMineFansTeamViewController.h"
#import "XPMineClanViewController.h"
#import "XPMineGuildViewController.h"
@interface XPMineViewController ()<UITableViewDelegate, UITableViewDataSource, XPMineProtocol, XPMineHeadItemTableViewCellDelegate, XPMineHeadViewDelegate>
@@ -54,7 +56,7 @@
@property (nonatomic,strong) UITableView *tableView;
///
@property (nonatomic,strong) NSArray<XPMineItemModel *> *datasource;
@property (nonatomic,strong) NSMutableArray<XPMineItemModel *> *datasource;
///
@property (nonatomic,strong) NSArray<XPMineItemModel *> *matchItemArray;
///item
@@ -63,11 +65,14 @@
@property (nonatomic,strong) XPMineHeadView *headView;
///
@property (nonatomic,strong) UIButton *settingButton;
///
///
@property (nonatomic,strong) UserInfoModel *userInfo;
@property (nonatomic, strong) XPMineSkillTipView *skillTipView;
///
@property (nonatomic,strong) ClanDetailInfoModel *clanInfo;
///
@property (nonatomic,strong) XPMineItemModel *guildItemModel;
@end
@implementation XPMineViewController
@@ -102,6 +107,7 @@
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.presenter getUserInfo];
[self.presenter getClanDetailInfo];
}
#pragma mark - Response
@@ -272,9 +278,17 @@
break;
case XPMineItemType_My_Guild:
{
XPMineClanViewController * clanVC = [[XPMineClanViewController alloc] init];
clanVC.uid = [NSString stringWithFormat:@"%ld", self.userInfo.uid];
[self.navigationController pushViewController:clanVC animated:YES];
if (self.clanInfo.clan.elderUid.length > 0) {
XPMineClanViewController * clanVC = [[XPMineClanViewController alloc] init];
clanVC.uid = [NSString stringWithFormat:@"%ld", self.userInfo.uid];
[self.navigationController pushViewController:clanVC animated:YES];
} else if(self.clanInfo.hall.hallId.length > 0) {
XPMineGuildViewController * guildVC = [[XPMineGuildViewController alloc] init];
guildVC.ownerUid = self.clanInfo.hall.ownerUid;
guildVC.guildId = self.clanInfo.hall.hallId;
[self.navigationController pushViewController:guildVC animated:YES];
}
}
break;
default:
@@ -380,7 +394,8 @@
#pragma mark - XPMineProtocol
- (void)onGetNormalItemsSuccess:(NSArray<XPMineItemModel *> *)normalItems {
self.datasource = normalItems;
[self.datasource removeAllObjects];
[self.datasource addObjectsFromArray:normalItems];
[self.tableView reloadData];
}
@@ -395,6 +410,20 @@
[self.tableView reloadData];
}
- (void)onGetClanDetailInfoSuccess:(ClanDetailInfoModel *)clanInfo {
self.clanInfo = clanInfo;
if (self.clanInfo.clan.elderUid.length > 0 || self.clanInfo.hall.hallId) {
if (![self.datasource containsObject:self.guildItemModel]) {
[self.datasource insertObject:self.guildItemModel atIndex:3];
}
} else {
if ([self.datasource containsObject:self.guildItemModel]) {
[self.datasource removeObject:self.guildItemModel];
}
}
[self.tableView reloadData];
}
#pragma mark - XPMineHeadItemTableViewCellDelegate
- (void)xPMineHeadItemTableViewCell:(XPMineHeadItemTableViewCell *)cell didSelectItem:(XPMineItemModel *)item {
[self pushViewControllerWithType:item.type];
@@ -468,4 +497,22 @@
return _skillTipView;
}
- (XPMineItemModel *)guildItemModel {
if (!_guildItemModel) {
XPMineItemModel * guildItem = [[XPMineItemModel alloc] init];
guildItem.itemName = @"我的工会";
guildItem.itemImageName = @"mine_normal_my_guild";
guildItem.type = XPMineItemType_My_Guild;
_guildItemModel = guildItem;
}
return _guildItemModel;
}
- (NSMutableArray<XPMineItemModel *> *)datasource {
if (!_datasource) {
_datasource = [NSMutableArray array];
}
return _datasource;
}
@end