JXGroupManagementVC.m 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  1. //
  2. // JXGroupManagementVC.m
  3. // shiku_im
  4. //
  5. // Created by p on 2018/5/28.
  6. // Copyright © 2018年 Reese. All rights reserved.
  7. //
  8. #import "JXGroupManagementVC.h"
  9. #import "JXRoomRemind.h"
  10. #import "JXSelFriendVC.h"
  11. #import "JXMsgViewController.h"
  12. #import "JXCopyRoomVC.h"
  13. #import "CYGroupNameRankViewController.h"
  14. #define HEIGHT 50
  15. #define IMGSIZE 170
  16. #define TAG_LABEL 1999
  17. @interface JXGroupManagementVC ()
  18. @property (nonatomic,strong) memberData * currentMember;
  19. @property (nonatomic, strong) JXImageView *GroupValidationBtn;
  20. @property (nonatomic, strong) UISwitch *GroupValidationSwitch;
  21. @property (nonatomic, strong) NSNumber *updateType;
  22. @property (nonatomic, assign) BOOL isMonitorPeople; // YES:监控人 NO: 隐身人
  23. @end
  24. @implementation JXGroupManagementVC
  25. - (void)viewDidLoad {
  26. [super viewDidLoad];
  27. // Do any additional setup after loading the view.
  28. self.heightHeader = JX_SCREEN_TOP;
  29. self.heightFooter = 0;
  30. self.isGotoBack = YES;
  31. self.title = Localized(@"JX_GroupManagement");
  32. [self createHeadAndFoot];
  33. self.tableBody.backgroundColor = HEXCOLOR(0xF2F2F2);
  34. int membHeight = 0;
  35. JXImageView *iv;
  36. UILabel *label;
  37. // 群主管理权转让
  38. iv = [self createButton:Localized(@"JX_ManagerAreTransferred") drawTop:NO drawBottom:NO must:NO click:@selector(roomTransferAction)];
  39. iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  40. membHeight = CGRectGetMaxY(iv.frame);
  41. // 设置管理员
  42. iv = [self createButton:Localized(@"JXRoomMemberVC_SetAdministrator") drawTop:YES drawBottom:NO must:NO click:@selector(specifyAdministrator)];
  43. iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  44. membHeight = CGRectGetMaxY(iv.frame);
  45. // 设置隐身人
  46. // iv = [self createButton:Localized(@"JXDesignatedStealthMan") drawTop:YES drawBottom:NO must:NO click:@selector(specifyInvisibleMan)];
  47. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  48. // membHeight = CGRectGetMaxY(iv.frame);
  49. // 设置监控人
  50. // iv = [self createButton:@"指定监控人" drawTop:NO drawBottom:YES must:NO click:@selector(specifyMonitorPeople)];
  51. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  52. // membHeight = CGRectGetMaxY(iv.frame) + 10;
  53. if (self.room.userId == [MY_USER_ID intValue]) {
  54. //群复制
  55. iv = [self createButton:Localized(@"JX_One-clickReplicationNewGroups" ) drawTop:YES drawBottom:NO must:NO click:@selector(onCopyRoom)];
  56. iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  57. membHeight = CGRectGetMaxY(iv.frame) + 10;
  58. }
  59. if (self.room.userId == [MY_USER_ID intValue]) {
  60. //对群成员备注
  61. iv = [self createButton:@"对群成员备注" drawTop:NO drawBottom:YES must:NO click:@selector(roomEG)];
  62. iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  63. membHeight = CGRectGetMaxY(iv.frame) + 1;
  64. // //群头衔设置
  65. // iv = [self createButton:@"群头衔设置" drawTop:NO drawBottom:YES must:NO click:@selector(roomNameSetting)];
  66. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  67. // membHeight = CGRectGetMaxY(iv.frame) + 10;
  68. }
  69. if (![g_config.isOpenRoomSearch boolValue]) {
  70. // 私密群组
  71. // iv = [self createButton:Localized(@"JX_PrivateGroups") drawTop:NO drawBottom:NO must:NO click:nil];
  72. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  73. // [self createSwitchWithParent:iv tag:2457 isOn:self.room.isLook];
  74. // label = [self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_CannotBeSearched")];
  75. // membHeight = CGRectGetMaxY(label.frame) + 10;
  76. }
  77. // 显示已读人数
  78. iv = [self createButton:Localized(@"JX_RoomShowRead") drawTop:NO drawBottom:NO must:NO click:nil];
  79. iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  80. [self createSwitchWithParent:iv tag:2456 isOn:self.room.showRead];
  81. label = [self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_ReadPeopleList")];
  82. membHeight = CGRectGetMaxY(label.frame) + 10;
  83. // 群验证
  84. // iv = [self createButton:Localized(@"JX_GroupInvitationConfirmation") drawTop:NO drawBottom:NO must:NO click:nil];
  85. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  86. // [self createSwitchWithParent:iv tag:2458 isOn:self.room.isNeedVerify];
  87. // label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_IntoGroupNeedManager")];
  88. // membHeight = CGRectGetMaxY(label.frame) + 10;
  89. //
  90. iv = [self createButton:@"群消息防撤回" drawTop:NO drawBottom:YES must:NO click:nil];
  91. iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  92. [self createSwitchWithParent:iv tag:2001 isOn:self.room.isAttritionRecall];
  93. label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 2 text:@"启用后,群组成员(除群主外)发送的消息不可撤回"];
  94. membHeight = CGRectGetMaxY(label.frame) + 10;
  95. // 显示群成员列表
  96. iv = [self createButton:Localized(@"JX_DisplayGroupMemberList") drawTop:NO drawBottom:NO must:NO click:nil];
  97. iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  98. [self createSwitchWithParent:iv tag:2459 isOn:self.room.showMember];
  99. label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_OnlyShowManager")];
  100. membHeight = CGRectGetMaxY(label.frame) + 10;
  101. // 允许普通成员私聊
  102. // iv = [self createButton:Localized(@"JX_AllowMemberChat") drawTop:NO drawBottom:NO must:NO click:nil];
  103. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  104. // [self createSwitchWithParent:iv tag:2460 isOn:self.room.allowSendCard];
  105. // label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_ShowDefaultIcon")];
  106. // membHeight = CGRectGetMaxY(label.frame) + 10;
  107. // 允许普通群成员邀请好友
  108. // iv = [self createButton:Localized(@"JX_AllowInviteFriend") drawTop:NO drawBottom:NO must:NO click:nil];
  109. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  110. // [self createSwitchWithParent:iv tag:2461 isOn:self.room.allowInviteFriend];
  111. // label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_NotInviteFunction")];
  112. // membHeight = CGRectGetMaxY(label.frame) + 10;
  113. // 允许普通群成员上传文件
  114. // iv = [self createButton:Localized(@"JX_AllowMemberToUpload") drawTop:NO drawBottom:NO must:NO click:nil];
  115. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  116. // [self createSwitchWithParent:iv tag:2462 isOn:self.room.allowUploadFile];
  117. // label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_AllowMemberNotUpload")];
  118. // membHeight = CGRectGetMaxY(label.frame) + 10;
  119. //
  120. // 允许普通群成员召开会议
  121. // iv = [self createButton:Localized(@"JX_InitiateMeeting") drawTop:NO drawBottom:NO must:NO click:nil];
  122. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  123. // [self createSwitchWithParent:iv tag:2463 isOn:self.room.allowConference];
  124. // label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_NotInitiateMeeting")];
  125. // membHeight = CGRectGetMaxY(label.frame) + 10;
  126. // 允许普通群成员发起讲课
  127. // iv = [self createButton:Localized(@"JX_InitiateLectures") drawTop:NO drawBottom:NO must:NO click:nil];
  128. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  129. // [self createSwitchWithParent:iv tag:2464 isOn:self.room.allowSpeakCourse];
  130. // label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_NotInitiateLectures")];
  131. // membHeight = CGRectGetMaxY(label.frame) + 10;
  132. // 群组减员发送通知
  133. // iv = [self createButton:Localized(@"JX_GroupReduction") drawTop:NO drawBottom:NO must:NO click:nil];
  134. // iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
  135. // [self createSwitchWithParent:iv tag:2465 isOn:self.room.isAttritionNotice];
  136. // label =[self createLabelWithParent:self.tableBody frameY:CGRectGetMaxY(iv.frame) + 10 text:Localized(@"JX_NotGroupReduction")];
  137. // membHeight = CGRectGetMaxY(label.frame) + 10;
  138. self.tableBody.contentSize = CGSizeMake(0, CGRectGetMaxY(label.frame) + 10);
  139. }
  140. - (void)onCopyRoom {
  141. JXCopyRoomVC *vc = [[JXCopyRoomVC alloc] init];
  142. vc.room = self.room;
  143. [g_navigation pushViewController:vc animated:YES];
  144. }
  145. -(void)roomEG{
  146. NSLog(@"群成员备注");
  147. }
  148. -(void)roomNameSetting{
  149. NSLog(@"群头衔设置");
  150. // self.room.isAttritionRecall;
  151. CYGroupNameRankViewController *vc = [[CYGroupNameRankViewController alloc] init];
  152. vc.room = self.room;
  153. vc.isOpenIntegral = self.room.isOpenIntegral;
  154. [g_navigation pushViewController:vc animated:YES];
  155. }
  156. -(JXImageView*)createButton:(NSString*)title drawTop:(BOOL)drawTop drawBottom:(BOOL)drawBottom must:(BOOL)must click:(SEL)click{
  157. JXImageView* btn = [[JXImageView alloc] init];
  158. btn.backgroundColor = [UIColor whiteColor];
  159. btn.userInteractionEnabled = YES;
  160. if(click)
  161. btn.didTouch = click;
  162. else
  163. btn.didTouch = @selector(hideKeyboard);
  164. btn.delegate = self;
  165. [self.tableBody addSubview:btn];
  166. if(must){
  167. UILabel* p = [[UILabel alloc] initWithFrame:CGRectMake(INSETS, 5, 20, HEIGHT-5)];
  168. p.text = @"*";
  169. p.font = g_factory.font18;
  170. p.backgroundColor = [UIColor clearColor];
  171. p.textColor = [UIColor redColor];
  172. p.textAlignment = NSTextAlignmentCenter;
  173. [btn addSubview:p];
  174. }
  175. JXLabel* p = [[JXLabel alloc] initWithFrame:CGRectMake(15, 0, 200, HEIGHT)];
  176. p.text = title;
  177. p.font = g_factory.font15;
  178. p.backgroundColor = [UIColor clearColor];
  179. p.textColor = [UIColor blackColor];
  180. [btn addSubview:p];
  181. if(drawTop){
  182. UIView* line = [[UIView alloc] initWithFrame:CGRectMake(15,0,JX_SCREEN_WIDTH-15,LINE_WH)];
  183. line.backgroundColor = THE_LINE_COLOR;
  184. [btn addSubview:line];
  185. }
  186. if(drawBottom){
  187. UIView* line = [[UIView alloc]initWithFrame:CGRectMake(15,HEIGHT-LINE_WH,JX_SCREEN_WIDTH-15,LINE_WH)];
  188. line.backgroundColor = THE_LINE_COLOR;
  189. [btn addSubview:line];
  190. }
  191. if(click){
  192. UIImageView* iv;
  193. iv = [[UIImageView alloc] initWithFrame:CGRectMake(JX_SCREEN_WIDTH-15-7, (HEIGHT-13)/2, 7, 13)];
  194. iv.image = [UIImage imageNamed:@"new_icon_>"];
  195. [btn addSubview:iv];
  196. }
  197. return btn;
  198. }
  199. - (UISwitch *)createSwitchWithParent:(UIView *)parent tag:(NSInteger)tag isOn:(BOOL)isOn{
  200. UISwitch *switchView = [[UISwitch alloc] init];
  201. switchView.frame = CGRectMake(JX_SCREEN_WIDTH-INSETS-51,0,0,0);
  202. switchView.center = CGPointMake(switchView.center.x, parent.frame.size.height/2);
  203. switchView.tag = tag;
  204. switchView.on = isOn;
  205. switchView.onTintColor = THEMECOLOR;
  206. [switchView addTarget:self action:@selector(switchViewAction:) forControlEvents:UIControlEventValueChanged];
  207. [parent addSubview:switchView];
  208. return switchView;
  209. }
  210. - (UILabel *)createLabelWithParent:(UIView *)parent frameY:(CGFloat)framey text:(NSString *)text {
  211. CGSize size = [text boundingRectWithSize:CGSizeMake(JX_SCREEN_WIDTH - 20, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13.0]} context:nil].size;
  212. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(15, framey, JX_SCREEN_WIDTH - 20, size.height)];
  213. label.font = [UIFont systemFontOfSize:13.0];
  214. label.textColor = [UIColor lightGrayColor];
  215. label.numberOfLines = 0;
  216. label.text = text;
  217. [parent addSubview:label];
  218. return label;
  219. }
  220. // 设置管理员
  221. -(void)specifyAdministrator{
  222. [self setManagerWithType:JXSelUserTypeSpecifyAdmin];
  223. }
  224. //设置隐身人
  225. - (void)specifyInvisibleMan {
  226. [self setManagerWithType:JXSelUserTypeRoomInvisibleMan];
  227. }
  228. // 设置监控人
  229. - (void)specifyMonitorPeople {
  230. [self setManagerWithType:JXSelUserTypeRoomMonitorPeople];
  231. }
  232. - (void)setManagerWithType:(JXSelUserType)type {
  233. memberData *data = [self.room getMember:g_myself.userId];
  234. if ([data.role intValue] != 1) {
  235. [g_App showAlert:Localized(@"JXRoomMemberVC_NotGroupMarsterCannotDoThis")];
  236. return;
  237. }
  238. JXSelFriendVC * selVC = [[JXSelFriendVC alloc] init];
  239. selVC.type = type;
  240. selVC.room = self.room;
  241. selVC.delegate = self;
  242. if (type == JXSelUserTypeSpecifyAdmin) {
  243. selVC.didSelect = @selector(specifyAdministratorDelegate:);
  244. }else if(type == JXSelUserTypeRoomInvisibleMan) {
  245. selVC.didSelect = @selector(specifyInvisibleManDelegate:);
  246. }else {
  247. selVC.didSelect = @selector(specifyMonitorPeopleDelegate:);
  248. }
  249. [g_navigation pushViewController:selVC animated:YES];
  250. }
  251. // 群主转让
  252. - (void)roomTransferAction {
  253. JXSelFriendVC * selVC = [[JXSelFriendVC alloc] init];
  254. selVC.room = _room;
  255. selVC.type = JXSelUserTypeRoomTransfer;
  256. selVC.delegate = self;
  257. selVC.didSelect = @selector(atSelectMemberDelegate:);
  258. [g_navigation pushViewController:selVC animated:YES];
  259. }
  260. -(void)atSelectMemberDelegate:(memberData *)member{
  261. _currentMember = member;
  262. [g_server roomTransfer:_room.roomId toUserId:[NSString stringWithFormat:@"%ld",member.userId] toView:self];
  263. // 更新数据库
  264. JXUserObject *user = [[JXUserObject alloc] init];
  265. user.userId = [NSString stringWithFormat:@"%ld",_room.userId];
  266. user.createUserId = [NSString stringWithFormat:@"%ld",member.userId];
  267. [user updateCreateUser];
  268. }
  269. // 指定管理员回调
  270. -(void)specifyAdministratorDelegate:(memberData *)member{
  271. _currentMember = member;
  272. int type;
  273. if ([member.role intValue] == 2) {
  274. type = 3;
  275. }else {
  276. type = 2;
  277. }
  278. [g_server setRoomAdmin:member.roomId userId:[NSString stringWithFormat:@"%ld",member.userId] type:type toView:self];
  279. }
  280. // 指定隐身人回调
  281. - (void)specifyInvisibleManDelegate:(memberData *)member {
  282. _currentMember = member;
  283. int type;
  284. if ([member.role intValue] == 3) {
  285. type = 4;
  286. }else {
  287. type = -1;
  288. }
  289. self.isMonitorPeople = NO;
  290. [g_server setRoomInvisibleGuardian:member.roomId userId:[NSString stringWithFormat:@"%ld",member.userId] type:type toView:self];
  291. }
  292. //指定监控人回调
  293. - (void)specifyMonitorPeopleDelegate:(memberData *)member {
  294. _currentMember = member;
  295. int type;
  296. if ([member.role intValue] == 3) {
  297. type = 5;
  298. }else {
  299. type = 0;
  300. }
  301. self.isMonitorPeople = YES;
  302. [g_server setRoomInvisibleGuardian:member.roomId userId:[NSString stringWithFormat:@"%ld",member.userId] type:type toView:self];
  303. }
  304. - (void)switchViewAction:(UISwitch *)switchView {
  305. switch (switchView.tag) {
  306. case 2456:
  307. [self readSwitchAction:switchView];
  308. break;
  309. case 2457:
  310. [self lookSwitchAction:switchView];
  311. break;
  312. case 2458:
  313. [self needVerifySwitchAction:switchView];
  314. break;
  315. case 2459:
  316. [self showMemberSwitchAction:switchView];
  317. break;
  318. case 2460:
  319. [self allowSendCardSwitchAction:switchView];
  320. break;
  321. case 2461:
  322. [self allowInviteFriendSwitchAction:switchView];
  323. break;
  324. case 2462:
  325. [self allowUploadFileSwitchAction:switchView];
  326. break;
  327. case 2463:
  328. [self allowConferenceSwitchAction:switchView];
  329. break;
  330. case 2464:
  331. [self allowSpeakCourseSwitchAction:switchView];
  332. break;
  333. case 2465:
  334. [self isAttritionNoticeSwitchAction:switchView];
  335. break;
  336. case 2001:
  337. NSLog(@"开启群消息防撤回");
  338. [self isAttritionRecallSwitchAction:switchView];
  339. break;
  340. default:
  341. break;
  342. }
  343. }
  344. // 显示已读人数
  345. -(void)readSwitchAction:(UISwitch *)readswitch{
  346. memberData *data = [self.room getMember:g_myself.userId];
  347. if ([data.role intValue] != 1) {
  348. [g_App showAlert:Localized(@"JXRoomMemberVC_NotGroupMarsterCannotDoThis")];
  349. [readswitch setOn:!readswitch.isOn];
  350. return;
  351. }
  352. self.updateType = [NSNumber numberWithInt:kRoomRemind_ShowRead];
  353. self.room.showRead = readswitch.on;
  354. [g_server updateRoomShowRead:self.room key:@"showRead" value:self.room.showRead toView:self];
  355. }
  356. // 进群验证
  357. - (void)needVerifySwitchAction:(UISwitch *)needVerifySwitch {
  358. memberData *data = [self.room getMember:g_myself.userId];
  359. if ([data.role intValue] != 1) {
  360. [g_App showAlert:Localized(@"JXRoomMemberVC_NotGroupMarsterCannotDoThis")];
  361. [needVerifySwitch setOn:!needVerifySwitch.isOn];
  362. return;
  363. }
  364. self.updateType = [NSNumber numberWithInt:kRoomRemind_NeedVerify];
  365. self.room.isNeedVerify = needVerifySwitch.on;
  366. [g_server updateRoomShowRead:self.room key:@"isNeedVerify" value:self.room.isNeedVerify toView:self];
  367. }
  368. // 私密群组群组
  369. - (void)lookSwitchAction:(UISwitch *)lookSwitch {
  370. memberData *data = [self.room getMember:g_myself.userId];
  371. if ([data.role intValue] != 1) {
  372. [g_App showAlert:Localized(@"JXRoomMemberVC_NotGroupMarsterCannotDoThis")];
  373. [lookSwitch setOn:!lookSwitch.isOn];
  374. return;
  375. }
  376. self.updateType = [NSNumber numberWithInt:2457];
  377. self.room.isLook = lookSwitch.on;
  378. [g_server updateRoomShowRead:self.room key:@"isLook" value:self.room.isLook toView:self];
  379. }
  380. // 显示群成员列表
  381. - (void)showMemberSwitchAction:(UISwitch *)showMemberSwitch {
  382. memberData *data = [self.room getMember:g_myself.userId];
  383. if ([data.role intValue] != 1) {
  384. [g_App showAlert:Localized(@"JXRoomMemberVC_NotGroupMarsterCannotDoThis")];
  385. [showMemberSwitch setOn:!showMemberSwitch.isOn];
  386. return;
  387. }
  388. self.updateType = [NSNumber numberWithInt:kRoomRemind_ShowMember];
  389. self.room.showMember = showMemberSwitch.on;
  390. [g_server updateRoomShowRead:self.room key:@"showMember" value:self.room.showMember toView:self];
  391. }
  392. // 允许发送名片
  393. - (void)allowSendCardSwitchAction:(UISwitch *)allowSendCardSwitch {
  394. memberData *data = [self.room getMember:g_myself.userId];
  395. if ([data.role intValue] != 1) {
  396. [g_App showAlert:Localized(@"JXRoomMemberVC_NotGroupMarsterCannotDoThis")];
  397. [allowSendCardSwitch setOn:!allowSendCardSwitch.isOn];
  398. return;
  399. }
  400. self.updateType = [NSNumber numberWithInt:kRoomRemind_allowSendCard];
  401. self.room.allowSendCard = allowSendCardSwitch.on;
  402. [g_server updateRoomShowRead:self.room key:@"allowSendCard" value:self.room.allowSendCard toView:self];
  403. }
  404. // 允许普通成员邀请好友
  405. - (void)allowInviteFriendSwitchAction:(UISwitch *)switchView {
  406. self.updateType = [NSNumber numberWithInt:kRoomRemind_RoomAllowInviteFriend];
  407. self.room.allowInviteFriend = switchView.on;
  408. [g_server updateRoomShowRead:self.room key:@"allowInviteFriend" value:self.room.allowInviteFriend toView:self];
  409. }
  410. // 允许普通成员上传文件
  411. - (void)allowUploadFileSwitchAction:(UISwitch *)switchView {
  412. self.updateType = [NSNumber numberWithInt:kRoomRemind_RoomAllowUploadFile];
  413. self.room.allowUploadFile = switchView.on;
  414. [g_server updateRoomShowRead:self.room key:@"allowUploadFile" value:self.room.allowUploadFile toView:self];
  415. }
  416. // 允许普通成员召开会议
  417. - (void)allowConferenceSwitchAction:(UISwitch *)switchView {
  418. self.updateType = [NSNumber numberWithInt:kRoomRemind_RoomAllowConference];
  419. self.room.allowConference = switchView.on;
  420. [g_server updateRoomShowRead:self.room key:@"allowConference" value:self.room.allowConference toView:self];
  421. }
  422. // 允许普通成员开启讲课
  423. - (void)allowSpeakCourseSwitchAction:(UISwitch *)switchView {
  424. self.updateType = [NSNumber numberWithInt:kRoomRemind_RoomAllowSpeakCourse];
  425. self.room.allowSpeakCourse = switchView.on;
  426. [g_server updateRoomShowRead:self.room key:@"allowSpeakCourse" value:self.room.allowSpeakCourse toView:self];
  427. }
  428. // 群减员通知
  429. - (void)isAttritionNoticeSwitchAction:(UISwitch *)switchView {
  430. // self.updateType = [NSNumber numberWithInt:kRoomRemind_RoomAllowSpeakCourse];
  431. self.room.isAttritionNotice = switchView.on;
  432. [g_server updateRoomShowRead:self.room key:@"isAttritionNotice" value:self.room.isAttritionNotice toView:self];
  433. }
  434. - (void)isAttritionRecallSwitchAction:(UISwitch *)switchView{
  435. self.room.isAttritionRecall = switchView.on;
  436. [g_server updateRoomShowRead:self.room key:@"isAttritionRecall" value:self.room.isAttritionRecall toView:self];
  437. }
  438. -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
  439. [_wait stop];
  440. if( [aDownload.action isEqualToString:act_UserGet] ){
  441. JXUserObject* user = [[JXUserObject alloc]init];
  442. [user getDataFromDict:dict];
  443. [self.room setNickNameForUser:user];
  444. // JXUserInfoVC* vc = [JXUserInfoVC alloc];
  445. // vc.user = user;
  446. // vc = [vc init];
  447. //// [g_window addSubview:vc.view];
  448. // [g_navigation pushViewController:vc animated:YES];
  449. // [user release];
  450. }
  451. if( [aDownload.action isEqualToString:act_roomSet] ){
  452. JXUserObject * user = [[JXUserObject alloc]init];
  453. user = [user getUserById:self.room.roomJid];
  454. user.showRead = [NSNumber numberWithBool:self.room.showRead];
  455. user.showMember = [NSNumber numberWithBool:self.room.showMember];
  456. user.allowSendCard = [NSNumber numberWithBool:self.room.allowSendCard];
  457. user.chatRecordTimeOut = self.room.chatRecordTimeOut;
  458. user.talkTime = [NSNumber numberWithLong:self.room.talkTime];
  459. user.allowInviteFriend = [NSNumber numberWithBool:self.room.allowInviteFriend];
  460. user.allowUploadFile = [NSNumber numberWithBool:self.room.allowUploadFile];
  461. user.allowConference = [NSNumber numberWithBool:self.room.allowConference];
  462. user.allowSpeakCourse = [NSNumber numberWithBool:self.room.allowSpeakCourse];
  463. user.isNeedVerify = [NSNumber numberWithBool:self.room.isNeedVerify];
  464. [user update];
  465. if ([self.updateType intValue] == kRoomRemind_ShowRead || [self.updateType intValue] == kRoomRemind_ShowMember || [self.updateType intValue] == kRoomRemind_allowSendCard || [self.updateType intValue] == kRoomRemind_RoomAllowInviteFriend || [self.updateType intValue] == kRoomRemind_RoomAllowUploadFile || [self.updateType intValue] == kRoomRemind_RoomAllowConference || [self.updateType intValue] == kRoomRemind_RoomAllowSpeakCourse) {
  466. JXRoomRemind* p = [[JXRoomRemind alloc] init];
  467. p.objectId = self.room.roomJid;
  468. switch ([self.updateType intValue]) {
  469. case kRoomRemind_ShowRead: {
  470. p.type = [NSNumber numberWithInt:kRoomRemind_ShowRead];
  471. p.content = [NSString stringWithFormat:@"%d",self.room.showRead];
  472. }
  473. break;
  474. case kRoomRemind_ShowMember: {
  475. p.type = [NSNumber numberWithInt:kRoomRemind_ShowMember];
  476. p.content = [NSString stringWithFormat:@"%d",self.room.showMember];
  477. }
  478. break;
  479. case kRoomRemind_allowSendCard: {
  480. p.type = [NSNumber numberWithInt:kRoomRemind_allowSendCard];
  481. p.content = [NSString stringWithFormat:@"%d",self.room.allowSendCard];
  482. }
  483. break;
  484. case kRoomRemind_RoomAllowInviteFriend: {
  485. p.type = [NSNumber numberWithInt:kRoomRemind_RoomAllowInviteFriend];
  486. p.content = [NSString stringWithFormat:@"%d",self.room.allowInviteFriend];
  487. }
  488. break;
  489. case kRoomRemind_RoomAllowUploadFile: {
  490. p.type = [NSNumber numberWithInt:kRoomRemind_RoomAllowUploadFile];
  491. p.content = [NSString stringWithFormat:@"%d",self.room.allowUploadFile];
  492. }
  493. break;
  494. case kRoomRemind_RoomAllowConference: {
  495. p.type = [NSNumber numberWithInt:kRoomRemind_RoomAllowConference];
  496. p.content = [NSString stringWithFormat:@"%d",self.room.allowConference];
  497. }
  498. break;
  499. case kRoomRemind_RoomAllowSpeakCourse: {
  500. p.type = [NSNumber numberWithInt:kRoomRemind_RoomAllowSpeakCourse];
  501. p.content = [NSString stringWithFormat:@"%d",self.room.allowSpeakCourse];
  502. }
  503. break;
  504. case kRoomRemind_RoomIsAttritionRecall: {
  505. p.type = [NSNumber numberWithInt:kRoomRemind_RoomIsAttritionRecall];
  506. p.content = [NSString stringWithFormat:@"%d",self.room.isAttritionRecall];
  507. }
  508. break;
  509. default:
  510. break;
  511. }
  512. [p notify];
  513. }
  514. [g_App showAlert:Localized(@"JXAlert_UpdateOK")];
  515. }
  516. if ([aDownload.action isEqualToString:act_roomSetAdmin]) {
  517. //设置群组管理员
  518. NSString *str;
  519. if ([_currentMember.role intValue] == 2) {
  520. _currentMember.role = [NSNumber numberWithInt:3];
  521. str = Localized(@"JXRoomMemberVC_CancelAdministratorSuccess");
  522. }else {
  523. _currentMember.role = [NSNumber numberWithInt:2];
  524. str = Localized(@"JXRoomMemberVC_SetAdministratorSuccess");
  525. }
  526. // [_currentMember updateRole];
  527. [g_server showMsg:str];
  528. }
  529. if ([aDownload.action isEqualToString:act_roomSetInvisibleGuardian]) {
  530. //设置群组隐身人、监控人
  531. NSString *str;
  532. if (self.isMonitorPeople) {
  533. if ([_currentMember.role intValue] == 3){
  534. _currentMember.role = [NSNumber numberWithInt:5];
  535. str = @"指定监控人成功";
  536. }else {
  537. _currentMember.role = [NSNumber numberWithInt:3];
  538. str = @"取消监控人成功";
  539. }
  540. }else {
  541. if ([_currentMember.role intValue] == 3) {
  542. _currentMember.role = [NSNumber numberWithInt:4];
  543. str = Localized(@"JX_SetInvisibleSuccessfully");
  544. }else{
  545. _currentMember.role = [NSNumber numberWithInt:3];
  546. str = Localized(@"JX_CancelInvisibleSuccessfully");
  547. }
  548. }
  549. [_currentMember updateRole];
  550. [g_server showMsg:str];
  551. }
  552. if ([aDownload.action isEqualToString:act_roomTransfer]) {
  553. //转让群主
  554. memberData *groupOwner = [memberData searchGroupOwner:self.room.roomId];
  555. groupOwner.role = [NSNumber numberWithInt:3];
  556. _currentMember.role = [NSNumber numberWithInt:1];
  557. [g_server showMsg:Localized(@"JX_ManagerAssignment")];
  558. [g_navigation popToRootViewController];
  559. }
  560. }
  561. -(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{
  562. [_wait stop];
  563. return show_error;
  564. }
  565. -(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
  566. [_wait stop];
  567. return show_error;
  568. }
  569. -(void) didServerConnectStart:(JXConnection*)aDownload{
  570. [_wait start];
  571. }
  572. - (void)didReceiveMemoryWarning {
  573. [super didReceiveMemoryWarning];
  574. // Dispose of any resources that can be recreated.
  575. }
  576. /*
  577. #pragma mark - Navigation
  578. // In a storyboard-based application, you will often want to do a little preparation before navigation
  579. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  580. // Get the new view controller using [segue destinationViewController].
  581. // Pass the selected object to the new view controller.
  582. }
  583. */
  584. @end