1
0

2 Revīzijas 123c30f105 ... 1f0d823599

Autors SHA1 Ziņojums Datums
  曾 伟 1f0d823599 offlineOperation?offlineTime=1596066837&language=zh&access_token=886cf4a43fe54a7594e3430fda9e4467&salt=1596066889848&secret=bWzxQgCzkjCshlJ%2Bfwfa%2Bw%3D%3D 5 gadi atpakaļ
  曾 伟 ae57be4e03 5 gadi atpakaļ
31 mainītis faili ar 702 papildinājumiem un 520 dzēšanām
  1. BIN
      image.xcassets/我的每日福利/每日福利.imageset/每日任务@2x.png
  2. 2 2
      shiku_im.xcodeproj/project.pbxproj
  3. 7 0
      shiku_im.xcodeproj/xcshareddata/xcschemes/shiku_im.xcscheme
  4. 8 6
      shiku_im/AppDelegate.mm
  5. 12 181
      shiku_im/ClassesNew/MainClass/XMGMainViewController.m
  6. 3 3
      shiku_im/ClassesNew/classes/fuliVc/JXApplyViewController.m
  7. 1 0
      shiku_im/ClassesNew/classes/homeVc/CYWebAddPointVC.m
  8. 2 2
      shiku_im/ClassesNew/classes/homeVc/JXAddrBookFriendVc.m
  9. 189 48
      shiku_im/ClassesNew/classes/homeVc/JXCsHomeVc.m
  10. 5 0
      shiku_im/ClassesNew/classes/messageVc/JXGroupViewController.m
  11. 1 1
      shiku_im/ClassesNew/classes/messageVc/JXMainViewController.m
  12. 3 0
      shiku_im/ClassesNew/classes/messageVc/JXMsgViewController.h
  13. 186 155
      shiku_im/ClassesNew/classes/messageVc/JXMsgViewController.m
  14. 1 1
      shiku_im/ClassesNew/classes/messageVc/JXXMMainVc.m
  15. 5 1
      shiku_im/ClassesNew/classes/myVc/Vc/JXMySettingVc.m
  16. 27 15
      shiku_im/ClassesNew/classes/myVc/Vc/JXXMGMyVc.m
  17. 18 12
      shiku_im/cell/ChatCell/JXMessageCell.m
  18. 2 2
      shiku_im/controller/JXChatViewC.mm
  19. 126 51
      shiku_im/controller/JXChatViewController.mm
  20. 6 0
      shiku_im/controller/JXProgressVC.m
  21. 20 4
      shiku_im/controller/JXRoomMemberVC.m
  22. 2 0
      shiku_im/data/roomData.h
  23. 21 10
      shiku_im/data/roomData.m
  24. 11 6
      shiku_im/friendBlog/util/dialog/MBProgressHUD.m
  25. 3 1
      shiku_im/model/JXUserBaseObj.m
  26. 2 0
      shiku_im/model/JXUserObject.m
  27. 4 0
      shiku_im/model/JXXMPP.h
  28. 22 11
      shiku_im/model/JXXMPP.m
  29. 9 5
      shiku_im/network/JXServer.m
  30. 1 1
      shiku_im/shiku_im-Info.plist
  31. 3 2
      shiku_im/shiku_im-Prefix.pch

BIN
image.xcassets/我的每日福利/每日福利.imageset/每日任务@2x.png


+ 2 - 2
shiku_im.xcodeproj/project.pbxproj

@@ -11798,7 +11798,7 @@
 					"$(inherited)",
 					"$(PROJECT_DIR)/shiku_im/audioRecorder",
 				);
-				MARKETING_VERSION = 3.0.9;
+				MARKETING_VERSION = 3.1.3;
 				NGN_STACK_HOME = "";
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-ObjC";
@@ -11886,7 +11886,7 @@
 					"$(PROJECT_DIR)/shiku_im/3rd/UMSocial_Sdk_5.2.1/QQ",
 					"$(PROJECT_DIR)/shiku_im/3rd/QQ",
 				);
-				MARKETING_VERSION = 3.0.9;
+				MARKETING_VERSION = 3.1.3;
 				NGN_STACK_HOME = "";
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-ObjC";

+ 7 - 0
shiku_im.xcodeproj/xcshareddata/xcschemes/shiku_im.xcscheme

@@ -66,6 +66,13 @@
             isEnabled = "YES">
          </EnvironmentVariable>
       </EnvironmentVariables>
+      <AdditionalOptions>
+         <AdditionalOption
+            key = "NSZombieEnabled"
+            value = "YES"
+            isEnabled = "YES">
+         </AdditionalOption>
+      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"

+ 8 - 6
shiku_im/AppDelegate.mm

@@ -532,7 +532,9 @@ static  BMKMapManager* _baiduMapManager;
     
     NSLog(@"XMPP ---- Appdelegate");
     if (g_server.isLogin) {
-        [g_server userChangeMsgNum:[UIApplication sharedApplication].applicationIconBadgeNumber toView:self];
+       //  [g_server userChangeMsgNum:[UIApplication sharedApplication].applicationIconBadgeNumber toView:self];
+
+        [g_server outTime:nil];
     }
 #if TAR_IM
 #ifdef Meeting_Version
@@ -540,7 +542,6 @@ static  BMKMapManager* _baiduMapManager;
     
     if (!g_meeting.isMeeting) {
         if (g_server.isLogin) {
-            [g_server outTime:nil];
         }
         g_xmpp.isCloseStream = YES;
         g_xmpp.isReconnect = NO;
@@ -572,7 +573,7 @@ static  BMKMapManager* _baiduMapManager;
 
 #else
     if (g_server.isLogin) {
-        [g_server outTime:nil];
+       // [g_server outTime:nil];
     }
     g_xmpp.isCloseStream = YES;
     g_xmpp.isReconnect = NO;
@@ -763,7 +764,7 @@ static  BMKMapManager* _baiduMapManager;
 
 - (void)applicationWillResignActive:(UIApplication *)application {
     if (g_server.isLogin) {
-        [g_server userChangeMsgNum:[UIApplication sharedApplication].applicationIconBadgeNumber toView:self];
+       // [g_server userChangeMsgNum:[UIApplication sharedApplication].applicationIconBadgeNumber toView:self];
     }
 //    if(g_server.isLogin) {
 //        [g_server outTime:nil];
@@ -852,8 +853,9 @@ static  BMKMapManager* _baiduMapManager;
 - (void)applicationWillTerminate:(UIApplication *)application {
     NSLog(@"程序杀死");
     
-    [g_server userChangeMsgNum:[UIApplication sharedApplication].applicationIconBadgeNumber toView:self];
-    [g_server outTime:nil];
+    //[g_server userChangeMsgNum:[UIApplication sharedApplication].applicationIconBadgeNumber toView:self];
+   // [g_server outTime:nil];
+    [UIApplication sharedApplication].applicationIconBadgeNumber=0;
     g_xmpp.isCloseStream = YES;
     g_xmpp.isReconnect = NO;
     [g_xmpp logout];

+ 12 - 181
shiku_im/ClassesNew/MainClass/XMGMainViewController.m

@@ -33,10 +33,7 @@
 #import "JXDeviceAuthController.h"
  
 #import "UIColor+Util.h"
-#import "UIColor+XQColor.h"
-#import "JXLabelObject.h"
-#import "JXDeviceAuthController.h"
-#import "JXProgressVC.h"
+#import "UIColor+XQColor.h" 
 #import "JXBlogRemind.h"
 #import "JXBigReelVc.h"
 #import "JXShowMainView.h"
@@ -53,15 +50,18 @@
 -(instancetype)init{
     
     if (self=[super init]) {
-   
+  
 
         [g_notify addObserver:self selector:@selector(loginSynchronizeFriends:) name:kXmppClickLoginNotifaction object:nil];
         [g_notify addObserver:self selector:@selector(appDidEnterForeground) name:kApplicationWillEnterForeground object:nil];
         [g_notify addObserver:self selector:@selector(getUserInfo:) name:kXMPPMessageUpadteUserInfoNotification object:nil];
         [g_notify addObserver:self selector:@selector(getRoomSet:) name:kXMPPMessageUpadteGroupNotification object:nil];
-        [g_notify addObserver:self selector:@selector(onXmppLoginChanged:) name:kXmppLoginNotifaction object:nil];
+        
         [g_notify addObserver:self selector:@selector(hasLoginOther:) name:kXMPPLoginOtherNotification object:nil];
         [g_notify addObserver:self selector:@selector(showDeviceAuth:) name:kDeviceAuthNotification object:nil];
+      
+       
+         
     }
     return self;
 }
@@ -72,10 +72,11 @@
     [super viewDidLoad];
     [self initViewControllers];
     self.tabBar.backgroundColor = [UIColor whiteColor];
+     
     
-    //NSLog(@"login_%@",g_server.myself.userId);
     
-   // [g_server getUser:g_server.myself.userId toView:self];
+    // 获取服务器时间
+  
 }
 
 - (void)viewDidAppear:(BOOL)animated {
@@ -104,7 +105,7 @@
 }
 
 - (void)appEnterForegroundNotif:(NSNotification *)noti {
-    [g_server offlineOperation:(g_server.lastOfflineTime *1000 + g_server.timeDifference)/1000 toView:self];
+   // [g_server offlineOperation:(g_server.lastOfflineTime *1000 + g_server.timeDifference)/1000 toView:self];
 }
 
 - (void)getUserInfo:(NSNotification *)noti {
@@ -114,7 +115,7 @@
 
 - (void)getRoomSet:(NSNotification *)noti {
     JXMessageObject *msg = noti.object;
-    [g_server getRoom:msg.toUserId toView:self];
+   // [g_server getRoom:msg.toUserId toView:self];
 }
 
 -(void)dealloc{
@@ -135,7 +136,7 @@
 
 - (void)appDidEnterForeground {
     // 获取服务器时间
-    [g_server getCurrentTimeToView:self];
+   // [g_server getCurrentTimeToView:self];
 }
 
 - (void)loginSynchronizeFriends:(NSNotification*)notification{
@@ -180,18 +181,6 @@
 }
  
 
--(void)onXmppLoginChanged:(NSNumber*)isLogin{
-    if([JXXMPP sharedInstance].isLogined == login_status_yes){
-        // 获取离线调用接口列表
-        [g_server offlineOperation:(g_server.lastOfflineTime *1000 + g_server.timeDifference)/1000 toView:self];
-        [self onAfterLogin];
-    }
-     
-}
-
--(void)onAfterLogin{
-//    [_msgVc scrollToPageUp];
-}
 
 -(void)hasLoginOther:(NSNotification *)notifcation{
     [g_App showAlert:Localized(@"JXXMPP_Other") delegate:self tag:10002 onlyConfirm:YES];
@@ -205,162 +194,4 @@
 }
 
 
--(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
-    //更新本地好友
-    if ([aDownload.action isEqualToString:act_UserGet]) {
-           NSString *memberAcc= dict[@"membershipAccount"];
-          [[NSUserDefaults standardUserDefaults] setObject:memberAcc forKey:@"membershipAccount_ID"];
-          [[NSUserDefaults standardUserDefaults] synchronize];
-
-       }
-    
-    if ([aDownload.action isEqualToString:act_AttentionList]) {
-        JXProgressVC * pv = [JXProgressVC alloc];
-        pv.dataArray = array1;
-        pv = [pv init];
-        if (array1.count > 300) {
-            [g_navigation pushViewController:pv animated:YES];
-        }
-//        [self.view addSubview:pv.view];
-        
-    }
-    
-    // 同步标签
-    if ([aDownload.action isEqualToString:act_FriendGroupList]) {
-        
-        for (NSInteger i = 0; i < array1.count; i ++) {
-            NSDictionary *dict = array1[i];
-            JXLabelObject *labelObj = [[JXLabelObject alloc] init];
-            labelObj.groupId = dict[@"groupId"];
-            labelObj.groupName = dict[@"groupName"];
-            labelObj.userId = dict[@"userId"];
-            
-            NSArray *userIdList = dict[@"userIdList"];
-            NSString *userIdListStr = [userIdList componentsJoinedByString:@","];
-            if (userIdListStr.length > 0) {
-                labelObj.userIdList = [NSString stringWithFormat:@"%@", userIdListStr];
-            }
-            [labelObj insert];
-        }
-        
-        // 删除服务器上已经删除的
-        NSArray *arr = [[JXLabelObject sharedInstance] fetchAllLabelsFromLocal];
-        for (NSInteger i = 0; i < arr.count; i ++) {
-            JXLabelObject *locLabel = arr[i];
-            BOOL flag = NO;
-            for (NSInteger j = 0; j < array1.count; j ++) {
-                NSDictionary * dict = array1[j];
-               
-                if ([locLabel.groupId isEqualToString:dict[@"groupId"]]) {
-                    flag = YES;
-                    break;
-                }
-            }
-            
-            if (!flag) {
-                [locLabel delete];
-            }
-        }
-    }
-    if ([aDownload.action isEqualToString:act_offlineOperation]) {
-        for (NSDictionary *dict in array1) {
-            if ([[dict objectForKey:@"tag"] isEqualToString:@"label"]) {
-                [g_notify postNotificationName:kOfflineOperationUpdateLabelList object:nil];
-            }
-            else if ([[dict objectForKey:@"tag"] isEqualToString:@"friend"]) {
-                [g_server getUser:[dict objectForKey:@"friendId"] toView:self];
-            }
-            else if ([[dict objectForKey:@"tag"] isEqualToString:@"room"]) {
-                [g_server getRoom:[dict objectForKey:@"friendId"] toView:self];
-            }
-        }
-    }
-    if ([aDownload.action isEqualToString:act_UserGet]) {
-        JXUserObject *user = [[JXUserObject alloc] init];
-        [user getDataFromDict:dict];
-         
-        
-        
-        NSString *gradeIndexcc= dict[@"gradeIndex"];
-        [[NSUserDefaults standardUserDefaults] setObject:gradeIndexcc forKey:@"gradeIndexcc"];
-        [[NSUserDefaults standardUserDefaults] synchronize];
-        
-         
-        
-        
-        if ([user.userId intValue] == [MY_USER_ID intValue]) {
-            [g_server doSaveUser:dict];
-             user.bubbleFontId = [dict objectForKey:@"bubbleFontId"];
-             user.gradeIndex = [dict objectForKey:@"gradeIndex"];
-            // 保存自己
-            [user insert];
-            [user update];
-            
-        }else {
-            JXUserObject *user1 = [[JXUserObject sharedInstance] getUserById:user.userId];
-            user.content = user1.content;
-            user.timeSend = user1.timeSend;
-
-            [user update];
-        }
-        
-        [g_notify postNotificationName:kOfflineOperationUpdateUserSet object:user];
-    }
-    if ([aDownload.action isEqualToString:act_roomGet]) {
-        JXUserObject *user = [[JXUserObject alloc] init];
-        [user getDataFromDict:dict];
-        user.userId = [dict objectForKey:@"jid"];
-        user.roomId = [dict objectForKey:@"id"];
-        user.userNickname = [dict objectForKey:@"name"];
-
-        if(![g_xmpp.roomPool getRoom:user.userId] || ![user haveTheUser]){
-            user.userDescription = [dict objectForKey:@"desc"];
-            user.showRead = [dict objectForKey:@"showRead"];
-            user.showMember = [dict objectForKey:@"showMember"];
-            user.allowSendCard = [dict objectForKey:@"allowSendCard"];
-            user.chatRecordTimeOut = [dict objectForKey:@"chatRecordTimeOut"];
-            user.talkTime = [dict objectForKey:@"talkTime"];
-            user.allowInviteFriend = [dict objectForKey:@"allowInviteFriend"];
-            user.allowUploadFile = [dict objectForKey:@"allowUploadFile"];
-            user.allowConference = [dict objectForKey:@"allowConference"];
-            user.allowSpeakCourse = [dict objectForKey:@"allowSpeakCourse"];
-            
-            user.offlineNoPushMsg = [(NSDictionary *)[dict objectForKey:@"member"] objectForKey:@"offlineNoPushMsg"];
-        
-            user.isNeedVerify = [dict objectForKey:@"isNeedVerify"];
-            user.createUserId = [dict objectForKey:@"userId"];
-            user.content = @" ";
-            user.topTime = nil;
-            
-            [user insertRoom];
-           // [g_xmpp.roomPool joinRoom:user.userId title:user.userNickname lastDate:nil isNew:NO];
-        }else {
-            NSDictionary * groupDict = [user toDictionary];
-            roomData * roomdata = [[roomData alloc] init];
-            [roomdata getDataFromDict:groupDict];
-            [roomdata getDataFromDict:dict];
-
-            JXUserObject *user1 = [[JXUserObject sharedInstance] getUserById:roomdata.roomJid];
-            user.content = user1.content;
-            user.status = user1.status;
-            user.offlineNoPushMsg = [NSNumber numberWithBool:roomdata.offlineNoPushMsg];
-            user.msgsNew = user1.msgsNew;
-
-            [user update];
-        }
-        
-        [g_notify postNotificationName:kOfflineOperationUpdateUserSet object:user];
-    }
-
-}
-
--(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{
-    
-    return hide_error;
-}
-
--(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
-    
-    return hide_error;
-}
 @end

+ 3 - 3
shiku_im/ClassesNew/classes/fuliVc/JXApplyViewController.m

@@ -358,7 +358,7 @@
     [backImageView addSubview:titleIMG1];
     [titleIMG1 mas_makeConstraints:^(MASConstraintMaker *make) {
         make.top.mas_equalTo(titleIMG.mas_bottom).mas_offset(27);
-        make.left.mas_equalTo(20);
+        make.left.mas_equalTo(50);
     }];
     
     UIImageView * titleIMG2 = [[UIImageView alloc]init];
@@ -400,7 +400,7 @@
     self.signTable.backgroundColor = [UIColor clearColor];
     [backImageView addSubview:self.signTable];
     [self.signTable mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.top.mas_equalTo(titleIMG3.mas_bottom).mas_offset(15);
+        make.top.mas_equalTo(titleIMG3.mas_bottom).mas_offset(10);
         make.left.right.mas_equalTo(0);
         make.bottom.mas_equalTo(self.postButton.mas_top);
     }];
@@ -429,7 +429,7 @@
 
 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 {
-    return 70.0f;
+    return 66.0;
 }
 
 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

+ 1 - 0
shiku_im/ClassesNew/classes/homeVc/CYWebAddPointVC.m

@@ -60,6 +60,7 @@
     [g_notify addObserver:self selector:@selector(leftButtonClick) name:KGoHomeWebPageNotification object:nil];
        //以下代码适配大小
       
+
     
     NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";
     

+ 2 - 2
shiku_im/ClassesNew/classes/homeVc/JXAddrBookFriendVc.m

@@ -116,9 +116,9 @@
         
         [self getArrayData];
         
-//        [self getFriend];
+         [self getFriend];
 
-        [self refresh];
+         [self refresh];
     }
     return self;
 }

+ 189 - 48
shiku_im/ClassesNew/classes/homeVc/JXCsHomeVc.m

@@ -12,6 +12,21 @@
 #import "XMGMainViewController.h"
 #import "JXShowMainView.h"
 #import "YPTabBarController.h"
+#import "JXProgressVC.h"
+#import "JXLabelObject.h"
+#import "JXXMPP.h"
+
+#import "JXProgressVC.h"
+#import "JXGroupViewController.h"
+#import "OrganizTreeViewController.h"
+#import "JXLabelObject.h"
+#import "JXBlogRemind.h"
+#import "JXRoomPool.h"
+#import "JXDeviceAuthController.h"
+ 
+#import "UIColor+Util.h"
+#import "UIColor+XQColor.h"
+#import "JXBlogRemind.h"
 
 @interface JXCsHomeVc ()<UIScrollViewDelegate>
 
@@ -37,7 +52,7 @@
  
 -(instancetype)init{
     if (self=[super init]) {
-    
+    [g_notify addObserver:self selector:@selector(onXmppLoginChanged:) name:kXmppLoginNotifaction object:nil];
         [g_notify  addObserver:self selector:@selector(newMsgCome:) name:kXMPPNewMsgNotifaction object:nil];//收到了一条新消息
         
           [g_notify  addObserver:self selector:@selector(hiddenTipLabel:) name:@"hiddenTip" object:nil];//收到了一条新消息
@@ -68,7 +83,17 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     
-    
+    // 获取服务器时间
+   // [g_server getCurrentTimeToView:self];
+   // [g_server offlineOperation:(g_server.lastOfflineTime *1000 + g_server.timeDifference)/1000 toView:self];
+       //NSLog(@"login_%@",g_server.myself.userId);
+       
+      // [g_server getUser:g_server.myself.userId toView:self];
+        
+     //CGFloat  lastOffLineTime=(g_server.lastOfflineTime *1000 + 0)/1000;
+                  
+    // CGFloat  lastOffLineTime2=(g_server.timeDifference)/1000;
+        
     [self setupChildViewControllers];
     
     [self setupNavBar];
@@ -88,6 +113,23 @@
 }
  
 
+-(void)onXmppLoginChanged:(NSNumber*)isLogin{
+    if([JXXMPP sharedInstance].isLogined == login_status_yes){
+        // 获取离线调用接口列表
+        CGFloat  lastOffLineTime=(g_server.lastOfflineTime *1000 + 0)/1000;
+                     
+              CGFloat  lastOffLineTime2=(g_server.timeDifference)/1000;
+           
+        
+         //[g_server offlineOperation:(g_server.lastOfflineTime *1000 + g_server.timeDifference)/1000 toView:self];
+        [self onAfterLogin];
+    }
+     
+}
+
+-(void)onAfterLogin{
+//    [_msgVc scrollToPageUp];
+}
 - (void)showAD {
     [JXShowMainView showView];
 }
@@ -176,7 +218,7 @@
 -(void)setBlcokBTb:(shuaxinBtn)blcokBTb{
 
    //获取说有群信息
-   [g_server listHisRoom:0 pageSize:1000 toView:self];
+  // [g_server listHisRoom:0 pageSize:1000 toView:self];
     
     
     [self setupChildViewControllers];
@@ -488,66 +530,165 @@
 
 
 
+
 -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
- 
-    if([aDownload.action isEqualToString:act_roomList] || [aDownload.action isEqualToString:act_roomListHis] ){
+    //更新本地好友
+    if ([aDownload.action isEqualToString:act_UserGet]) {
+           NSString *memberAcc= dict[@"membershipAccount"];
+          [[NSUserDefaults standardUserDefaults] setObject:memberAcc forKey:@"membershipAccount_ID"];
+          [[NSUserDefaults standardUserDefaults] synchronize];
+
+       }
+    
+    if ([aDownload.action isEqualToString:act_AttentionList]) {
+        JXProgressVC * pv = [JXProgressVC alloc];
+        pv.dataArray = array1;
+        pv = [pv init];
+        if (array1.count > 300) {
+            [g_navigation pushViewController:pv animated:YES];
+        }
+//        [self.view addSubview:pv.view];
+        
+    }
+    
+    // 同步标签
+    if ([aDownload.action isEqualToString:act_FriendGroupList]) {
+        
+        for (NSInteger i = 0; i < array1.count; i ++) {
+            NSDictionary *dict = array1[i];
+            JXLabelObject *labelObj = [[JXLabelObject alloc] init];
+            labelObj.groupId = dict[@"groupId"];
+            labelObj.groupName = dict[@"groupName"];
+            labelObj.userId = dict[@"userId"];
+            
+            NSArray *userIdList = dict[@"userIdList"];
+            NSString *userIdListStr = [userIdList componentsJoinedByString:@","];
+            if (userIdListStr.length > 0) {
+                labelObj.userIdList = [NSString stringWithFormat:@"%@", userIdListStr];
+            }
+            [labelObj insert];
+        }
+        
+        // 删除服务器上已经删除的
+        NSArray *arr = [[JXLabelObject sharedInstance] fetchAllLabelsFromLocal];
+        for (NSInteger i = 0; i < arr.count; i ++) {
+            JXLabelObject *locLabel = arr[i];
+            BOOL flag = NO;
+            for (NSInteger j = 0; j < array1.count; j ++) {
+                NSDictionary * dict = array1[j];
+               
+                if ([locLabel.groupId isEqualToString:dict[@"groupId"]]) {
+                    flag = YES;
+                    break;
+                }
+            }
+            
+            if (!flag) {
+                [locLabel delete];
+            }
+        }
+    }
+    if ([aDownload.action isEqualToString:act_offlineOperation]) {
+        for (NSDictionary *dict in array1) {
+            if ([[dict objectForKey:@"tag"] isEqualToString:@"label"]) {
+                [g_notify postNotificationName:kOfflineOperationUpdateLabelList object:nil];
+            }
+            else if ([[dict objectForKey:@"tag"] isEqualToString:@"friend"]) {
+                [g_server getUser:[dict objectForKey:@"friendId"] toView:self];
+            }
+            else if ([[dict objectForKey:@"tag"] isEqualToString:@"room"]) {
+                [g_server getRoom:[dict objectForKey:@"friendId"] toView:self];
+            }
+        }
+    }
+    if ([aDownload.action isEqualToString:act_UserGet]) {
+        JXUserObject *user = [[JXUserObject alloc] init];
+        [user getDataFromDict:dict];
+         
+        
+        
+        NSString *gradeIndexcc= dict[@"gradeIndex"];
+        [[NSUserDefaults standardUserDefaults] setObject:gradeIndexcc forKey:@"gradeIndexcc"];
+        [[NSUserDefaults standardUserDefaults] synchronize];
         
-        for (int i = 0; i < [array1 count]; i++) {
-            NSDictionary *dict=array1[i];
+         
+        
+        
+        if ([user.userId intValue] == [MY_USER_ID intValue]) {
+            [g_server doSaveUser:dict];
+             user.bubbleFontId = [dict objectForKey:@"bubbleFontId"];
+             user.gradeIndex = [dict objectForKey:@"gradeIndex"];
+            // 保存自己
+            [user insert];
+            [user update];
             
-            JXUserObject* user = [[JXUserObject alloc]init];
-            user.userNickname = [dict objectForKey:@"name"];
-            user.userId = [dict objectForKey:@"jid"];
+        }else {
+            JXUserObject *user1 = [[JXUserObject sharedInstance] getUserById:user.userId];
+            user.content = user1.content;
+            user.timeSend = user1.timeSend;
+
+            [user update];
+        }
+        
+        [g_notify postNotificationName:kOfflineOperationUpdateUserSet object:user];
+    }
+    if ([aDownload.action isEqualToString:act_roomGet]) {
+         
+        
+        JXUserObject *user = [[JXUserObject alloc] init];
+        [user getDataFromDict:dict];
+        user.userId = [dict objectForKey:@"jid"];
+        user.roomId = [dict objectForKey:@"id"];
+        user.userNickname = [dict objectForKey:@"name"];
+
+        if(![g_xmpp.roomPool getRoom:user.userId] || ![user haveTheUser]){
             user.userDescription = [dict objectForKey:@"desc"];
-            user.roomId = [dict objectForKey:@"id"];
             user.showRead = [dict objectForKey:@"showRead"];
             user.showMember = [dict objectForKey:@"showMember"];
             user.allowSendCard = [dict objectForKey:@"allowSendCard"];
-            user.chatRecordTimeOut = [NSString stringWithFormat:@"%@", [dict objectForKey:@"chatRecordTimeOut"]];
-            user.offlineNoPushMsg = [(NSDictionary *)[dict objectForKey:@"member"] objectForKey:@"offlineNoPushMsg"];
+            user.chatRecordTimeOut = [dict objectForKey:@"chatRecordTimeOut"];
             user.talkTime = [dict objectForKey:@"talkTime"];
             user.allowInviteFriend = [dict objectForKey:@"allowInviteFriend"];
             user.allowUploadFile = [dict objectForKey:@"allowUploadFile"];
             user.allowConference = [dict objectForKey:@"allowConference"];
             user.allowSpeakCourse = [dict objectForKey:@"allowSpeakCourse"];
-            user.category = [dict objectForKey:@"category"];
-            user.createUserId = [dict objectForKey:@"userId"];
-            user.timeCreate = [NSDate dateWithTimeIntervalSince1970:[[dict objectForKey:@"createTime"] longLongValue]];
+            
+            user.offlineNoPushMsg = [(NSDictionary *)[dict objectForKey:@"member"] objectForKey:@"offlineNoPushMsg"];
+        
             user.isNeedVerify = [dict objectForKey:@"isNeedVerify"];
-              
-            if([[dict allKeys] containsObject:@"groupType"])
-
-            {
-                NSDictionary *dictby=[dict objectForKey:@"groupType"];
-
-                user.groupType = [dictby objectForKey:@"typeName"];
-
-            }else{
-                user.groupType = @"100000";
- 
+            user.createUserId = [dict objectForKey:@"userId"];
+            user.content = @" ";
+            user.topTime = nil;
+            
+            [user insertRoom];
+           // [g_xmpp.roomPool joinRoom:user.userId title:user.userNickname lastDate:nil isNew:NO];
+        }else {
+            NSDictionary * groupDict = [user toDictionary];
+            roomData * roomdata = [[roomData alloc] init];
+            [roomdata getDataFromDict:groupDict];
+            [roomdata getDataFromDict:dict];
+
+            JXUserObject *user1 = [[JXUserObject sharedInstance] getUserById:roomdata.roomJid];
+            user.content = user1.content;
+            user.status = user1.status;
+            user.offlineNoPushMsg = [NSNumber numberWithBool:roomdata.offlineNoPushMsg];
+            user.msgsNew = user1.msgsNew;
+
+            [user update];
+        }
+        
+        [g_notify postNotificationName:kOfflineOperationUpdateUserSet object:user];
+    }
 
-            }
- 
-            NSDictionary *member = [dict objectForKey:@"member"];
-#ifdef IS_MsgEncrypt
-            if ([member objectForKey:@"chatKeyGroup"]) {
-                
-                user.chatKeyGroup = [g_msgUtil encryptRoomMsgKey:user.roomId randomKey:[member objectForKey:@"chatKeyGroup"]];
-            }
-#endif
-            if ([aDownload.action isEqualToString:act_roomListHis]) {
+}
 
-                if (![user haveTheUser]){
-                    [user insertRoom];
+-(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{
+    
+    return hide_error;
+}
 
-                }else {
-                    [user updateUserNickname];
-                     [user update];
-                }
-            }
-              
-        }
-    }
-   
+-(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
+    
+    return hide_error;
 }
 @end

+ 5 - 0
shiku_im/ClassesNew/classes/messageVc/JXGroupViewController.m

@@ -403,6 +403,9 @@
 
 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
+    
+    
+    
     [super tableView:tableView didSelectRowAtIndexPath:indexPath];
     if(g_xmpp.isLogined != 1){
         // 掉线后点击title重连
@@ -709,7 +712,9 @@
             user.createUserId = [dict objectForKey:@"userId"];
             user.timeCreate = [NSDate dateWithTimeIntervalSince1970:[[dict objectForKey:@"createTime"] longLongValue]];
             user.isNeedVerify = [dict objectForKey:@"isNeedVerify"];
+            //user.groupStatus 0:正常  1:被踢出  2:房间被删除
               
+           /// NSLog(@"======= %@",dict[@"groupStatus"]);
             if([[dict allKeys] containsObject:@"groupType"])
 
             {

+ 1 - 1
shiku_im/ClassesNew/classes/messageVc/JXMainViewController.m

@@ -187,7 +187,7 @@
 
 - (void)getRoomSet:(NSNotification *)noti {
     JXMessageObject *msg = noti.object;
-    [g_server getRoom:msg.toUserId toView:self];
+     [g_server getRoom:msg.toUserId toView:self];
 }
 
 -(void)dealloc{

+ 3 - 0
shiku_im/ClassesNew/classes/messageVc/JXMsgViewController.h

@@ -26,6 +26,9 @@
 @property(nonatomic,assign) int msgTotal;
 @property (nonatomic, strong) NSMutableArray *array;
 
+@property (nonatomic,copy)NSNumber *groupStatus; //客服信息
+@property (nonatomic, strong) JXUserObject *chatPerson;
+ 
 @property (nonatomic, strong) UIView *backView;
 @property (nonatomic,copy)NSArray *customerArr; //客服信息
 @property (nonatomic,weak)   UILabel *titleLb;

+ 186 - 155
shiku_im/ClassesNew/classes/messageVc/JXMsgViewController.m

@@ -210,7 +210,9 @@
 }
  
 - (void)getFriend{
-     [g_server listAttention:50 userId:MY_USER_ID toView:self];
+    
+    
+     [g_server listAttention:1000 userId:MY_USER_ID toView:self];
    // [g_server listFriend:0 userId:MY_USER_ID toView:self];
  }
 
@@ -240,7 +242,7 @@
         if ([g_myself.chatSyncTimeLen longLongValue] == 0 || [g_myself.chatSyncTimeLen longLongValue] == -1) {
             syncTimeLen = 0;
         }
-         [g_default setBool:YES forKey:kISFirstGetLastChatList];
+        // [g_default setBool:YES forKey:kISFirstGetLastChatList];
         
     }else {
       syncTimeLen = g_server.lastOfflineTime * 1000.0;
@@ -268,12 +270,25 @@
 //刷新数据
 - (void)viewDidAppear:(BOOL)animated{
     [super viewDidAppear:animated];
-
+   
+    [g_server getCurrentTimeToView:self];
+    if(g_xmpp.isLogined != 1){
+        // 掉线后点击title重连
+        // 判断XMPP是否在线  不在线重连
+       // [g_xmpp showXmppOfflineAlert];
+        [g_xmpp login];
+        return;
+    }
+    
     
     [self getTotalNewMsgCount];
   
 }
-
+// xmpp掉线后提示
+- (void) showXmppOfflineAlert {
+    
+    [g_App showAlert:Localized(@"JX_Reconnect") delegate:self];
+}
 //-(void)newRequest:(NSNotification *)notifacation
 //{
 //    [self getFriend];
@@ -327,24 +342,26 @@
     self.view.backgroundColor=kRGBColor250;
     [self customView];
     [self navGuese];
-    
-
+     
     [self getLastChatList];
+
+    upOrDown = 0;
+    
+    
     NSString *msgStr=[g_default objectForKey:@"refushMsgHistoryxxx"];
     if (msgStr.length>0) {
 
     }else{
-        
-       
-        [self getAllChatList];
-        [self getFriend];
-        upOrDown = 0;
+
+         [self getAllChatList];
+         [self getFriend];
         
         [g_default setObject:@"refushMsgHistoryxxx" forKey:@"refushMsgHistoryxxx"];
         [g_default synchronize];
+       
     }
     
-    [self getServerData];
+//    [self getServerData];
     [g_notify addObserver:self selector:@selector(onQuitRoom:) name:kQuitRoomNotifaction object:nil];//退出了房间
   
    // self.tableView.contentInset=UIEdgeInsetsMake(64, 0, 20, 0);
@@ -487,23 +504,23 @@
     };
 
      
-    
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-         
-        NSArray *friends = [[JXFriendObject sharedInstance] fetchAllFriendsFromLocal];
-          __block int a=0;
-          [friends enumerateObjectsUsingBlock:^(JXFriendObject  *_Nonnull friend, NSUInteger idx, BOOL * _Nonnull stop) {
-              
-              if ([friend.msgsNew intValue]==1) {
-                  a++;
-              }
-              
-          }];
-          
-           [self showNewMsgCount:a];
-         
-           
-       });
+//
+//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+//
+//        NSArray *friends = [[JXFriendObject sharedInstance] fetchAllFriendsFromLocal];
+//          __block int a=0;
+//          [friends enumerateObjectsUsingBlock:^(JXFriendObject  *_Nonnull friend, NSUInteger idx, BOOL * _Nonnull stop) {
+//
+//              if ([friend.msgsNew intValue]==1) {
+//                  a++;
+//              }
+//
+//          }];
+//
+//           [self showNewMsgCount:a];
+//
+//
+//       });
     
 }
 
@@ -917,7 +934,7 @@
 - (void) delAllChatLogNotifi:(NSNotification *)notif {
     [self getServerData];
     self.msgTotal = 0;
-    _strCount=0;
+    
 }
  
  
@@ -927,6 +944,35 @@
 }
 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 {
+    NSMutableArray *temArr=[NSMutableArray array];;
+   // if (timeSend>currentTime||[obj.user.groupStatus intValue]==1||[userx.fromUserId isEqualToString:@"10000"] || [userx.fromUserId isEqualToString:@"10100"] || [userx.fromUserId isEqualToString:@"10000006"]||[userx.fromUserId isEqualToString:@"10000009"] ) {
+    [_array enumerateObjectsUsingBlock:^(JXMsgAndUserObject  *_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+
+        NSTimeInterval timeSend =[obj.message.timeSend timeIntervalSince1970];
+        NSTimeInterval currentTime =[[NSDate date] timeIntervalSince1970];
+        
+        JXMessageObject *userx=obj.message;
+     
+            
+       
+        
+      NSLog(@"obj.user.userNickname    %@ === userx.content %@",obj.user.userNickname,userx.content);
+        
+        if ([userx.fromUserId isEqualToString:@"10000"]||timeSend>currentTime ||[obj.user.groupStatus intValue]==2||[obj.user.groupStatus intValue]==1||obj.user.userNickname.length==0||userx.content.length==0||([obj.message.type intValue] == kWCMessageTypeSuperDelete || [obj.message.type intValue] == kWCMessageTypeGroupActivity)) {
+            // [temArr insertObject:obj atIndex:0];
+             [_array removeObjectAtIndex:idx];
+            
+            
+            
+        }else{
+
+            [temArr addObject:obj];
+        }
+
+    }];
+
+
+     _array=temArr;
     
     return 1;
 }
@@ -942,9 +988,7 @@
 - (void)sendServiecGroupJid:(NSString *)jid{
     
     
-    [_array enumerateObjectsUsingBlock:^(JXMsgAndUserObject * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
-        
-    }];
+    
      
       
 }
@@ -1008,21 +1052,21 @@
     cell.didDelMsg = @selector(onDelMsg:);
     
     //    [cell msgCellDataSet:dict indexPath:indexPath];
-    cell.title = dict.user.remarkName.length > 0 ? dict.user.remarkName : dict.user.userNickname;
+    NSString *nickName = dict.user.remarkName.length > 0 ? dict.user.remarkName : dict.user.userNickname;
+    
+    cell.title = nickName;
    // if ([dict.message.fromUserId isEqualToString:@"10000"]) {  cell.lbTitle.text=@"即信"; cell.title=@"即信";  }
     
     cell.user = dict.user;
     cell.userId = dict.user.userId;
     
-    if (cell.user.groupType.length) {
-        
-    }
+   
     
     
 //    cell.bage = [NSString stringWithFormat:@"%d",[dict.user.msgsNew intValue]];
     if ([dict.user.offlineNoPushMsg intValue] == 1) {
         cell.bage = [NSString stringWithFormat:@"%@",@"0"];
-       _strCount = [NSString stringWithFormat:@"%@",@"0"];
+       //_strCount = [NSString stringWithFormat:@"%@",@"0"];
        } else {
            cell.bage = [NSString stringWithFormat:@"%d",[dict.user.msgsNew intValue]];
        }
@@ -1047,7 +1091,7 @@
         cell.headImage=@"ALOGO_1200";
       }
     
-    
+   
     NSString *lastContet = [dict.message getLastContent];
     BOOL flag = NO;
     if ([dict.user.isAtMe intValue] == 1 && _seekTextField.text.length <= 0 && (dict.user.roomFlag || dict.user.roomId.length > 0)) {
@@ -1392,7 +1436,7 @@
 
     //NSLog(@"群聊-单聊 消息 --- %@",[msg mj_keyValues]);
     
-    
+    _array;
      [self doRefresh:msg showNumber:showNumber];
     msg = nil;
 }
@@ -1522,13 +1566,10 @@
         
         if (newobj.user) {
              
-            NSLog(@"消息ID。%@",msg.messageId);
-
+           // NSLog(@"消息ID。%@",msg.messageId);
             if (_topNum>_array.count) {
-                 
                 return;
             }
-            
             [_array insertObject:newobj atIndex:_topNum];
             
 //            NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
@@ -1546,9 +1587,8 @@
             }
            
             @try {
-                //[_table gotoFirstRow:YES];
-                
-           // [_table beginUpdates];
+             //[_table gotoFirstRow:YES];
+            // [_table beginUpdates];
             //[_table insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
             // [_table endUpdates]; //修改了
             } @catch (NSException *exception) {
@@ -1562,13 +1602,17 @@
         
         newobj = nil;
     }
+    
+    [self getTotalNewMsgCount];
+    
     if(msg.isMySend || !showNumber || [oldobj.user.offlineNoPushMsg intValue] == 1){
         return;
     }else{
-        [self getTotalNewMsgCount];
+       
     }
+      
 
-
+     // [_table reloadData];
 //  _reciveNewMessage2222=100;
 //  JXMessageObject *msgUse=oldobj.message;
 //  long time = (long)[[NSDate date] timeIntervalSince1970];
@@ -1596,27 +1640,15 @@
 
     
     if (p.count>0) { 
-        [_array addObjectsFromArray:p];
-        NSMutableArray *tempArray=[NSMutableArray arrayWithCapacity:0];
-        [_array enumerateObjectsUsingBlock:^(JXMsgAndUserObject  * obj, NSUInteger idx, BOOL * _Nonnull stop) {
-            JXMessageObject *userx=obj.message;
-            if ([obj.user.groupStatus intValue]==2||[obj.user.groupStatus intValue]==1||[userx.fromUserId isEqualToString:@"10000"] || [userx.fromUserId isEqualToString:@"10100"] || [userx.fromUserId isEqualToString:@"10000006"]||[userx.fromUserId isEqualToString:@"10000009"] || [obj.message.timeSend timeIntervalSince1970]>[[NSDate date] timeIntervalSince1970]) {
-
-               
-            }else{
-                
-                [tempArray addObject:obj];
-            }
-            
-        }];
-          
-        _array = tempArray;
+        _array=p;
+        //_array = tempArray;
         
         //让数组按时间排序
         [self sortArrayWithTime];
         [_table hideEmptyImage];
         [_table reloadData];
         self.isShowFooterPull = NO;
+         
     }else{
          
         [_table showEmptyImage:EmptyTypeNoData];
@@ -1799,12 +1831,10 @@
     NSArray *fromArr=[p.message.fromId componentsSeparatedByString:@"/"];
     
     if ([[fromArr lastObject] intValue]==1||[p.user.status intValue]!=2) {
-        
-        
+         
         sendView.useInfoTempChat=11;
-        
-        
-    }else{
+    }
+   /* else{
         
         if (fromArr==nil) {
             sendView.useInfoTempChat=11;
@@ -1813,7 +1843,7 @@
         
         sendView.useInfoTempChat=1;
         }
-    }
+    } */
     sendView.rowIndex = indexPath.row;
     sendView.lastMsg = p.message;
     sendView.chatPerson = p.user;
@@ -1961,8 +1991,8 @@
         case login_status_yes:{
            // self.title = Localized(@"JXMsgViewController_OnLine");
             // 同步最近一条聊天记录
-          // [self getLastChatList];
-            //[_activity stopAnimating];
+           [self getLastChatList];
+             [_activity stopAnimating];
         }
 
             break;
@@ -2408,7 +2438,7 @@
 
 -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
     [_wait hide];
-    
+    //点击好友头像响应
     if ([aDownload.action isEqualToString:act_UserGet]) {
         NSString *memberAcc= dict[@"membershipAccount"];
        [[NSUserDefaults standardUserDefaults] setObject:memberAcc forKey:@"membershipAccount_ID"];
@@ -2418,10 +2448,25 @@
         [[NSUserDefaults standardUserDefaults] setObject:gradeIndexcc forKey:@"gradeIndexcc"];
         [[NSUserDefaults standardUserDefaults] synchronize];
              self.titleLb.text = [NSString stringWithFormat:@"我的即信号:%@",memberAcc];
+        
+        JXUserObject* user = [[JXUserObject alloc]init];
+        
+        // _titleLb.text=[NSString stringWithFormat:@"我的即信号%@",g_server.myself.userId];
+        
+        [user getDataFromDict:dict];
+        [user updateUserType];
+        [g_notify postNotificationName:kFriendListRefresh object:nil];
+        
+        //        JXUserInfoVC* vc = [JXUserInfoVC alloc];
+        //        vc.user       = user;
+        //        vc = [vc init];
+        ////        [g_window addSubview:vc.view];
+        //        [g_navigation pushViewController:vc animated:YES];
+        //        [self cancelBtnAction];
     }
     
     //更新本地好友
-        if ([aDownload.action isEqualToString:act_AttentionList]) {
+    if ([aDownload.action isEqualToString:act_AttentionList]) {
             [_wait stop];
             [self stopLoading];
             JXProgressVC * pv = [JXProgressVC alloc];
@@ -2432,14 +2477,11 @@
             
             //访问DB获取好友消息列表
           //  NSMutableArray* p = [[JXMessageObject sharedInstance] fetchRecentChat];
-           //[self getServerData];
-          //  [self getLastChatList];
+          [self getServerData];
+          // [self getLastChatList];
  
         }
-    
-    
-    
-  
+     
     if( [aDownload.action isEqualToString:act_roomAdd] ){
             
         _chatRoom = [[JXXMPP sharedInstance].roomPool createRoom:_room.roomJid title:_room.name];
@@ -2465,7 +2507,7 @@
         }
     
     //获取弹窗广告响应
-        if( [aDownload.action isEqualToString:act_getAdvertising] ){
+    if( [aDownload.action isEqualToString:act_getAdvertising] ){
             if (dict) {
                 NSArray *buttons = nil;
                 NSString *link = dict[@"link"];
@@ -2519,25 +2561,6 @@
             }
         }
 
-    //点击好友头像响应
-    if( [aDownload.action isEqualToString:act_UserGet] ){
-        JXUserObject* user = [[JXUserObject alloc]init];
-        
-
-       // _titleLb.text=[NSString stringWithFormat:@"我的即信号%@",g_server.myself.userId];
-        
-        [user getDataFromDict:dict];
-        [user updateUserType];
-        [g_notify postNotificationName:kFriendListRefresh object:nil];
-        
-//        JXUserInfoVC* vc = [JXUserInfoVC alloc];
-//        vc.user       = user;
-//        vc = [vc init];
-////        [g_window addSubview:vc.view];
-//        [g_navigation pushViewController:vc animated:YES];
-//        [self cancelBtnAction];
-    }
-    
     if( [aDownload.action isEqualToString:act_roomGet] ){
         
         JXUserObject* user = [[JXUserObject alloc]init];
@@ -2562,7 +2585,9 @@
             
             if (![dict objectForKey:@"member"]) {
                 [g_server showMsg:Localized(@"JX_YouOutOfGroup")];
-                
+                self.groupStatus = [NSNumber numberWithInt:1];
+                _chatPerson.groupStatus = [NSNumber numberWithInt:1];
+                [_chatPerson updateGroupInvalid];
             }else {
                 int talkTime = [[dict objectForKey:@"talkTime"] intValue];
                 int role = [[(NSDictionary *)[dict objectForKey:@"member"] objectForKey:@"role"] intValue];
@@ -2632,7 +2657,7 @@
             user.createUserId = [dict objectForKey:@"userId"];
             user.timeCreate = [NSDate dateWithTimeIntervalSince1970:[[dict objectForKey:@"createTime"] longLongValue]];
             user.isNeedVerify = [dict objectForKey:@"isNeedVerify"];
-          /*
+          /**/
             
             if (![dict objectForKey:@"member"]) {
                 user.groupStatus = [NSNumber numberWithInt:1];
@@ -2643,7 +2668,7 @@
                 user.groupStatus = [NSNumber numberWithInt:2];
                 [user updateGroupInvalid];
             }
-           */
+           
             if([[dict allKeys] containsObject:@"groupType"]) {
                 NSDictionary *dictby=[dict objectForKey:@"groupType"];
                 
@@ -2667,6 +2692,8 @@
                     [[JXXMPP sharedInstance].roomPool joinRoom:user.userId title:user.userNickname lastDate:nil isNew:YES];
                 }
                 
+                NSLog(@"%@",_room.roomId);
+                
                 if (![user haveTheUser]){
                     [user insertRoom];
                     
@@ -2682,55 +2709,55 @@
             
             //                        [tempArray addObject:user];
         } //群头衔的设置
-        /*-------------------*/
+ 
     
         if ([[dict objectForKey:@"jid"] intValue] > 0 && !_isGetLastMsgList) {
-                 // 获取最近一条记录
-                 NSArray *arr = [[JXMessageObject sharedInstance] fetchMessageListWithUser:[dict objectForKey:@"jid"] byAllNum:0 pageCount:20 startTime:[NSDate dateWithTimeIntervalSince1970:0]];
-                 
-                 // 去除
-                 JXMessageObject *lastMsg = arr.lastObject;
-                 if (!lastMsg) {
-                     lastMsg = arr.firstObject;
-                 }
-                 JXUserObject *user = [[JXUserObject sharedInstance] getUserById:dict[@"jid"]];
-                 NSMutableDictionary *taskDic = [NSMutableDictionary dictionary];
-                 [taskDic setObject:[dict objectForKey:@"jid"] forKey:@"userId"];
-                 [taskDic setObject:[NSDate dateWithTimeIntervalSince1970:[dict[@"timeSend"] longLongValue]] forKey:@"lastTime"];
-                 if (lastMsg) {
-                     [taskDic setObject:lastMsg.timeSend forKey:@"startTime"];
-                     if (lastMsg.messageId) {
-                         [taskDic setObject:lastMsg.messageId forKey:@"startMsgId"];
-                     }
-                 }
-                 if (user.roomId) {
-                     [taskDic setObject:user.roomId forKey:@"roomId"];
-                 }
-                 if ([g_myself.chatSyncTimeLen longLongValue] != -2) {
-                     
-                     [self createSynTask:taskDic];
-                     
-                     [_taskArray addObject:taskDic];
-                 }
-                 
-                 long value = (long)([lastMsg.timeSend timeIntervalSince1970]*1000);
-                 if (!lastMsg) {
-                     // 没有最后一条消息的记录就拉取一周前的数据
-                     value = (long)(g_server.lastOfflineTime*1000);//-(7*24*3600*1000);
-                 }
-                 
-                 NSString *listStr = [NSString stringWithFormat:@"%@,%ld",dict[@"jid"],value];
-                 [listArr addObject:listStr];
-             }
+            // 获取最近一条记录
+            NSArray *arr = [[JXMessageObject sharedInstance] fetchMessageListWithUser:[dict objectForKey:@"jid"] byAllNum:0 pageCount:20 startTime:[NSDate dateWithTimeIntervalSince1970:0]];
+            
+            // 去除
+            JXMessageObject *lastMsg = arr.lastObject;
+            if (!lastMsg) {
+                lastMsg = arr.firstObject;
+            }
+            JXUserObject *user = [[JXUserObject sharedInstance] getUserById:dict[@"jid"]];
+            NSMutableDictionary *taskDic = [NSMutableDictionary dictionary];
+            [taskDic setObject:[dict objectForKey:@"jid"] forKey:@"userId"];
+            [taskDic setObject:[NSDate dateWithTimeIntervalSince1970:[dict[@"timeSend"] longLongValue]] forKey:@"lastTime"];
+            if (lastMsg) {
+                [taskDic setObject:lastMsg.timeSend forKey:@"startTime"];
+                if (lastMsg.messageId) {
+                    [taskDic setObject:lastMsg.messageId forKey:@"startMsgId"];
+                }
+            }
+            if (user.roomId) {
+                [taskDic setObject:user.roomId forKey:@"roomId"];
+            }
+            if ([g_myself.chatSyncTimeLen longLongValue] != -2) {
+                
+                [self createSynTask:taskDic];
+                
+                [_taskArray addObject:taskDic];
+            }
+            
+            long value = (long)([lastMsg.timeSend timeIntervalSince1970]*1000);
+            if (!lastMsg) {
+                // 没有最后一条消息的记录就拉取一周前的数据
+                value = (long)(g_server.lastOfflineTime*1000);//-(7*24*3600*1000);
+            }
+            
+            NSString *listStr = [NSString stringWithFormat:@"%@,%ld",dict[@"jid"],value];
+            [listArr addObject:listStr];
+        }
         if (listArr.count > 0) {
-                 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-                     // 如果最近一条信息接口没有获取到,批量拉取消息
-                     if (!_isGetLastMsgList) {
-                         [g_xmpp pullBatchGroupMessageReqWithJidListArray:listArr];
-                     }
-                 });
-             }
-      // [_table reloadData];
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                // 如果最近一条信息接口没有获取到,批量拉取消息
+                if (!_isGetLastMsgList) {
+                    [g_xmpp pullBatchGroupMessageReqWithJidListArray:listArr];
+                }
+            });
+        }
+        [_table reloadData];
     }
     
 #pragma mark --- 获取最后个人消息列表 act_tigaseGetLastChatList
@@ -2740,15 +2767,18 @@
         _isGetLastMsgList = YES;
         [g_default setBool:YES forKey:kISFirstGetLastChatList];
         if ([g_myself.chatSyncTimeLen longLongValue] != -2) {
-            [[JXUserObject sharedInstance] updateUserLastChatList:array1];
-            if (array1.count > 0) {
-                [self getServerData];
+            
+            if (array1.count==0) {
+            }else{
+                [[JXUserObject sharedInstance] updateUserLastChatList:array1];
             }
+
+            [self getServerData];
+           
         }
         
-//        [array1 enumerateObjectsUsingBlock:^(NSDictionary  * obj, NSUInteger idx, BOOL * _Nonnull stop) {
-//             NSLog(@"---- 个人信息列表 xxxxx%@ %@",[obj objectForKey:@"toUserName"] , [obj objectForKey:@"fromUserName"] );
-//        }];
+        //[array1 enumerateObjectsUsingBlock:^(NSDictionary  * obj, NSUInteger idx, BOOL * _Nonnull stop) {
+           //  NSLog(@"---- 个人信息列表 xxxxx%@ %@",[obj objectForKey:@"toUserName"] , [obj objectForKey:@"fromUserName"] );  }];
         
         [_taskArray removeAllObjects];
         NSMutableArray *listArr = [NSMutableArray array];
@@ -2919,6 +2949,7 @@
         _isGetLastMsgList = NO;
         [self.header endRefreshing];
         [self getAllChatList];
+        [self getAllChatList];
         //[self getFriend];
 //        [g_xmpp.roomPool createAll];
     }

+ 1 - 1
shiku_im/ClassesNew/classes/messageVc/JXXMMainVc.m

@@ -160,7 +160,7 @@
 
 - (void)getRoomSet:(NSNotification *)noti {
     JXMessageObject *msg = noti.object;
-    [g_server getRoom:msg.toUserId toView:self];
+   // [g_server getRoom:msg.toUserId toView:self];
 }
 
 -(void)dealloc{

+ 5 - 1
shiku_im/ClassesNew/classes/myVc/Vc/JXMySettingVc.m

@@ -196,6 +196,8 @@
   * 推出登录
  */
  - (void)logoutView{
+
+   
      
     [g_default removeObjectForKey:@"refushMsgHistoryxxx"];
      
@@ -222,7 +224,7 @@
     
     [[JXXMPP sharedInstance] logout];
     NSLog(@"XMPP ---- jxsettingVC doSwitch");
-    // 退出登录到登陆界面 隐藏悬浮窗
+    // go录到登陆界面 隐藏悬浮窗
     g_App.subWindow.hidden = YES;
     
     // loginVC* vc = [loginVC alloc];
@@ -322,6 +324,8 @@
 //            [g_notify postNotificationName:kLogOutNotifaction object:nil];
 //            [g_default setObject:nil forKey:kMY_USER_TOKEN];
 //            g_server.access_token = nil;
+            
+            
             self.reLogin = NO;
             [self relogin];
 //            g_mainVC = nil;

+ 27 - 15
shiku_im/ClassesNew/classes/myVc/Vc/JXXMGMyVc.m

@@ -44,8 +44,14 @@
 
 #import "JXShareMonyVc.h"
 #import "JXShareMVc.h"
+#import <ContactsUI/ContactsUI.h>
 
-@interface JXXMGMyVc ()<UITableViewDelegate, UITableViewDataSource>
+#import <Contacts/Contacts.h>
+
+#import <MessageUI/MessageUI.h>
+
+#import <MessageUI/MFMessageComposeViewController.h>
+@interface JXXMGMyVc ()<UITableViewDelegate, UITableViewDataSource,CNContactPickerDelegate>
 @property (nonatomic, strong) UITableView * collectionView;
 @property (nonatomic,strong) NSMutableArray *dataArr;
 @property (nonatomic,strong) NSMutableArray *otherdataArr;
@@ -151,11 +157,11 @@
             
             NSString *kefuID=_videoDict[@"qqService"];
             
-//            NSString *url = [NSString stringWithFormat:@"mqqwpa://im/chat?chat_type=crm&uin=%@&version=1&src_type=web&web_src=http:://wpa.b.qq.com",kefuID];
-//            NSURL *qqURL = [NSURL URLWithString:url];
-//
-//            [[UIApplication sharedApplication] openURL:qqURL];
-//            return;
+            NSString *url = [NSString stringWithFormat:@"mqqwpa://im/chat?chat_type=crm&uin=%@&version=1&src_type=web&web_src=http:://wpa.b.qq.com",kefuID];
+            NSURL *qqURL = [NSURL URLWithString:url];
+
+            [[UIApplication sharedApplication] openURL:qqURL];
+            return;
             JXChatViewC *vc = [[JXChatViewC alloc] init]; //10000656 10000
             JXUserObject *user = [[JXUserObject sharedInstance] getUserById:kefuID];
             vc.chatPerson = user;
@@ -165,15 +171,21 @@
  
         }else if(sender.tag==2){ //电话客服:点击电话发起本机拨打电话  拨打 和取消
             NSString *kefuID=_videoDict[@"phoneService"];
-//            NSMutableString* str=[[NSMutableString alloc] initWithFormat:@"tel:%@",kefuID];
-//
-//            UIWebView * callWebview = [[UIWebView alloc] init];
-//
-//            [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
-//
-//            [self.view addSubview:callWebview];
-//            
-//            return;
+            NSMutableString* str=[[NSMutableString alloc] initWithFormat:@"tel:%@",kefuID];
+
+            UIWebView * callWebview = [[UIWebView alloc] init];
+
+            [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
+
+            [self.view addSubview:callWebview];
+            
+            CNContactPickerViewController * contactVc = [CNContactPickerViewController new];
+
+            contactVc.delegate = self;
+
+            [self presentViewController:contactVc animated:YES completion:nil];
+            
+            return;
             JXChatViewC *vc = [[JXChatViewC alloc] init]; //10000656 10000
             JXUserObject *user = [[JXUserObject sharedInstance] getUserById:kefuID];
             vc.chatPerson = user;

+ 18 - 12
shiku_im/cell/ChatCell/JXMessageCell.m

@@ -50,6 +50,11 @@ static CGFloat kuangkkHHH;
     [self.contentView addSubview:_timeIndexLabel];
     UITapGestureRecognizer * tapPress = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(dotapPress:)];
     [self.contentView addGestureRecognizer:tapPress];
+
+    _messageConent.text = self.msg.content;
+    
+    
+    
 }
 
 - (void)dotapPress:(UITapGestureRecognizer *)tap {
@@ -142,12 +147,12 @@ static CGFloat kuangkkHHH;
             
             
             NSInteger count = size.height / _messageConent.font.lineHeight;
-            NSLog(@"countcount ===  %ld-----%f-----%@",count,[[NSDate date] timeIntervalSince1970],self.msg.fileName);
+           // NSLog(@"countcount ===  %ld-----%f-----%@",count,[[NSDate date] timeIntervalSince1970],self.msg.fileName);
 //            NSLog(@"countcount === %ld,,,,%f,,,,%@",count,[[NSDate date] timeIntervalSince1970], self.msg.fileName);
             count = count * 10 - ([[NSDate date] timeIntervalSince1970] - [self.msg.fileName longLongValue]);
             self.timerIndex = count;
             
-            NSLog(@"countcount1 ===  %ld",count);
+           // NSLog(@"countcount1 ===  %ld",count);
             if (count > 0) {
                 self.timeIndexLabel.text = [NSString stringWithFormat:@"%ld",count];
                 if (!self.readDelTimer) {
@@ -169,13 +174,10 @@ static CGFloat kuangkkHHH;
 }
 -(void)creatBubbleBg{
     CGSize textSize = _messageConent.frame.size;
-       int n = textSize.width;
-    if ([_messageConent.text containsString:@"--【"]) {
-        kuangkkHHH=50.0;
-    }
-   
-    //聊天长度反正就是算错了,强行改
-  
+       int n =  textSize.width;
+ if ([_messageConent.text containsString:@"--【"]) {
+      kuangkkHHH=65.0;
+  } //聊天长度反正就是算错了,强行改
     int inset = 3;
     if(self.msg.isMySend){
         self.bubbleBg.frame=CGRectMake(CGRectGetMinX(self.headImage.frame)-INSETS*2-inset*2-n-CHAT_WIDTH_ICON, INSETS,_kuangHHH+ n+INSETS*2+inset*2, textSize.height+INSETS*2);
@@ -186,8 +188,6 @@ static CGFloat kuangkkHHH;
         _timeIndexLabel.frame = CGRectMake(self.bubbleBg.frame.origin.x - 30, self.bubbleBg.frame.origin.y, 20, 20);
     }else
     {
-        
-        
         self.bubbleBg.frame=CGRectMake(CGRectGetMaxX(self.headImage.frame) + CHAT_WIDTH_ICON, INSETS2(self.msg.isGroup)+9, n+INSETS*2+inset*2, textSize.height+INSETS*2);
        
         self.bubbleBgImageView.frame =CGRectMake(0, 2, n+INSETS*2+inset*2, textSize.height+INSETS*2+20);
@@ -226,9 +226,15 @@ static CGFloat kuangkkHHH;
 }
 
 + (float)getChatCellHeight:(JXMessageObject *)msg {
-    
+      
+    //NSLog(@"----%@",msg.content);
     
     if ([msg.chatMsgHeight floatValue] > 1) {
+        
+        if ([msg.content containsString:@"--------------------------------------------------"]) {
+             kuangkkHHH=65.0;
+         }
+         
         CGFloat chatMsgHeight = [msg.chatMsgHeight floatValue]+kuangkkHHH;
              
       return chatMsgHeight;

+ 2 - 2
shiku_im/controller/JXChatViewC.mm

@@ -7782,7 +7782,7 @@ _strURLGoback=@"";
                 memberData* option = [[memberData alloc] init];
                 [option getDataFromDict:p];
                 option.roomId = self.roomId;
-                [option insert];
+               // [option insert];
                 
                 // 保存群主和管理员
                 NSMutableArray *memb = [NSMutableArray array];
@@ -7791,7 +7791,7 @@ _strURLGoback=@"";
                     memberData* option = [[memberData alloc] init];
                     [option getDataFromDict:member];
                     option.roomId = self.roomId;
-                    [option insert];
+                    //[option insert];
                     [memb addObject:option];
                 }
                 if (_room.members.count <= 0) {

+ 126 - 51
shiku_im/controller/JXChatViewController.mm

@@ -136,6 +136,7 @@
 #import "JXApplyViewController.h"
 #import "JXGoldMangVc.h"
 #import "JXGoldMangerVc.h"
+#include <CommonCrypto/CommonDigest.h>
 
 #define toolHHH (THE_DEVICE_HAVE_HEAD ? 83 : 60)
 
@@ -1003,9 +1004,12 @@
     
     [self refresh:nil];
     
-    if (!self.roomJid || self.roomJid.length <= 0) {
+    if (!self.roomJid || _roomJid.length <= 0) {
         // 同步消息
         [self messageSync];
+    }else{
+        
+        [self messageSync];
     }
     
     if (chatPerson.lastInput.length > 0) {
@@ -1035,7 +1039,7 @@
     [self messageSync];
 }
 
-
+#pragma mark ---请求漫游消息
 - (void)messageSync {
     
     double syncTimeLen = 0;
@@ -1139,7 +1143,7 @@
     }
 }
 
-//刷新消息
+#pragma mark ---请求刷新消息
 -(void)refresh:(JXMessageObject*)msg
 {
     _isRefreshing = YES;
@@ -3448,6 +3452,31 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
     if([self sendMsgCheck]){
         return;
     }
+ 
+    NSString  *previoustr =  [g_default objectForKey:@"messageText"];
+    if ( [previoustr isEqualToString:_messageText.text]) {
+         
+        
+        [g_App showAlert:@"您发言太快,稍等一秒"];
+        
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        
+            
+            [g_default removeObjectForKey:@"messageText"];
+               
+        });
+        
+        return;
+    }else{
+
+        [g_default setObject:_messageText.text forKey:@"messageText"];
+        [g_default synchronize];
+        
+    }
+    
+
+
+    
     
     NSString *userId = _userIds[self.groupMessagesIndex];
 //    NSString *userName = self.userNames[self.groupMessagesIndex];
@@ -4245,6 +4274,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
     
     switch ([msg.type intValue]) {
         case kWCMessageTypeText:
+         
             return [JXMessageCell getChatCellHeight:msg];
             break;
         case kWCMessageTypeImage:
@@ -5201,7 +5231,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         return;
     }
     RITLPhotosViewController *photoController = RITLPhotosViewController.photosViewController;
-    photoController.configuration.maxCount = 9;//最大的选择数目
+    photoController.configuration.maxCount = 1;//最大的选择数目
     photoController.configuration.containVideo = YES;//选择类型,目前只选择图片不选择视频
     
     photoController.photo_delegate = self;
@@ -5249,12 +5279,42 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
 }
 
 - (void)photosViewController:(UIViewController *)viewController assets:(NSArray <PHAsset *> *)assets {
-    self.imgDataArr = assets;
+    _imgDataArr = assets;
+      
     
 }
 
 #pragma mark - 发送图片
-- (void)photosViewController:(UIViewController *)viewController datas:(NSArray <id> *)datas; {
+- (void)photosViewController:(UIViewController *)viewController datas:(NSArray <id> *)datas {
+     
+    
+    NSData *dataByte = [NSKeyedArchiver archivedDataWithRootObject:datas];
+    
+    NSData  *previoustr =  [g_default objectForKey:@"dataByteIMG"];
+    if (previoustr.length == dataByte.length) {
+            
+          [g_App showAlert:@"您发图片太快,稍等一秒"];
+          
+          dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+          
+              
+              [g_default removeObjectForKey:@"dataByteIMG"];
+                 
+          });
+          
+          return;
+      }else{
+
+          NSData *dataByte = [NSKeyedArchiver archivedDataWithRootObject:datas];
+          [g_default setObject:dataByte forKey:@"dataByteIMG"];
+          [g_default synchronize];
+          
+      }
+      
+
+
+    
+    
     if (self.isGroupMessages) {
         return;
 //        if (datas.count == 0) {
@@ -5284,7 +5344,46 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         }
     }
 }
+/** 获取文件的md5值*/
+  
++ (NSString *)getFileMD5StrFromPath:(NSString *)path
+{ 
+    
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+
+    if([fileManager fileExistsAtPath:path isDirectory:nil])
+
+    {
+
+        NSData *data = [NSData dataWithContentsOfFile:path];
+
+        unsigned char digest[CC_MD5_DIGEST_LENGTH];
+
+        CC_MD5( data.bytes, (CC_LONG)data.length, digest );
 
+        NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
+
+        for( int i = 0; i < CC_MD5_DIGEST_LENGTH; i++ )
+
+        {
+
+            [output appendFormat:@"%02x", digest[i]];
+
+        }
+
+        return output;
+
+    }
+
+    else
+
+    {
+
+        return @"";
+
+    }
+
+}
 #pragma mark - 发送视频
 - (void)photosViewController:(UIViewController *)viewController media:(JXMediaObject *)media {
     if (self.isGroupMessages) {
@@ -6055,7 +6154,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
 
     [audioRecorder updateMeters];
     const double alpha=0.5;
-    NSLog(@"peakPowerForChannel = %f,%f", [audioRecorder peakPowerForChannel:0],[audioRecorder peakPowerForChannel:1]);
+   // NSLog(@"peakPowerForChannel = %f,%f", [audioRecorder peakPowerForChannel:0],[audioRecorder peakPowerForChannel:1]);
     double peakPowerForChannel=pow(10, (0.05)*[audioRecorder peakPowerForChannel:0]);
     lowPassResults=alpha*peakPowerForChannel+(1.0-alpha)*lowPassResults;
     _voice.volume = lowPassResults;
@@ -7010,7 +7109,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
     _page=0;
     [self getServerData];
 }
-#pragma mark - ViewLoad获取数据
+#pragma mark - 请求数据
 -(void)getServerData{
     _isLoading = YES;
     _page=0;
@@ -7291,7 +7390,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
 -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
     
     
-          if ([aDownload.action isEqualToString:act_UserRoomListAttenion])
+    if ([aDownload.action isEqualToString:act_UserRoomListAttenion])
           {
              
 
@@ -7302,8 +7401,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
               
               
           }
-         
-          if ([aDownload.action isEqualToString:act_UserRoomgetRoomAttention]||[aDownload.action isEqualToString:act_UserRoomManyLookAttenion]) { //
+    if ([aDownload.action isEqualToString:act_UserRoomgetRoomAttention]||[aDownload.action isEqualToString:act_UserRoomManyLookAttenion]) { //
 
                  NSArray * memberArray = [memberData fetchAllMembers:roomId];
                  NSString  *userArr = [dict[@"attentionUserIds"] firstObject]; //dict[@"userId"];
@@ -7321,7 +7419,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
                            
                }
       
-         if ([aDownload.action isEqualToString:act_UserRoomgetlastMessage]) {
+    if ([aDownload.action isEqualToString:act_UserRoomgetlastMessage]) {
 
              
              if (dict == nil) {
@@ -7409,7 +7507,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
                });
             
         }
-
     
     if ([aDownload.action isEqualToString:act_getFaceListByGrade]) {
 //        NSMutableArray *tempArr=[NSMutableArray arrayWithCapacity:0];
@@ -7426,9 +7523,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         
         [g_notify postNotificationName:kFavoritesRefresh object:array1];
     }
-    
-    
-    
     if ([aDownload.action isEqualToString:act_getbubbleFontByUserId]) {
         
     }
@@ -7453,8 +7547,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
              option.roomId = self.room.roomId;
              [option insertChatView];
         }
-       
-//        [self refresh];
 //        [self refresh:nil];
     }
     if ([aDownload.action isEqualToString:act_roomActivityRecord]) {
@@ -7482,21 +7574,14 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
            _faceView.emojiDataArray = array1;
                       [g_notify postNotificationName:kFavoritesRefresh object:array1];
        }
-     if ([aDownload.action isEqualToString:act_FaceClollectList]) {
-//            NSMutableArray *nameArray = [NSMutableArray array];
-//            for (NSDictionary *dict in array1) {
-//                [nameArray addObject:dict[@"name"]];
-//            }
-//            _faceView.emojiDataArray = array1;
-         
-            _faceView.emojiDataArray = array1;
+    if ([aDownload.action isEqualToString:act_FaceClollectList]) {
+ 
             [g_notify postNotificationName:kFavoritesRefresh object:array1];
         }
     if ([aDownload.action isEqualToString:act_FaceClollectAddFaceClollect]) {
             [self getEmojsData];
             [g_notify postNotificationName:kFavoritesRefresh object:nil];
         }
-    
     if (![aDownload.action isEqualToString:act_getRedPacket]) {
         [_wait stop];
     }
@@ -7504,7 +7589,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         [self showChatView];
         [self actionQuit];
     }
-
     if([aDownload.action isEqualToString:act_UploadFile]){
         NSDictionary* p = nil;
         if([(NSArray *)[dict objectForKey:@"audios"] count]>0)
@@ -7539,7 +7623,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         [self doSendAfterUpload:p];
         p = nil;
     }
-
     if( [aDownload.action isEqualToString:act_UserGet] ){
         if (self.firstGetUser || self.courseId.length > 0) {
             JXUserObject* user = [[JXUserObject alloc]init];
@@ -7614,7 +7697,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
     if( [aDownload.action isEqualToString:act_roomGet] ){
 //        [_room getDataFromDict:dict];
 //
-        JXRoomMemberVC* vc = [JXRoomMemberVC alloc];
+//        JXRoomMemberVC* vc = [JXRoomMemberVC alloc];
 //        vc.chatRoom   = chatRoom;
 //        vc.room       = _room;
 //        vc.delegate = self;
@@ -7833,7 +7916,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
     if ([aDownload.action isEqualToString:act_getUserMoeny]) {
         g_App.myMoney = [dict[@"balance"] doubleValue];
     }
-    
     // 漫游聊天记录
     if ([aDownload.action isEqualToString:act_tigaseMsgs] || [aDownload.action isEqualToString:act_tigaseMucMsgs]) {
         [_wait stop];
@@ -7910,7 +7992,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
             }
         }
     }
-    
     if ([aDownload.action isEqualToString:act_publicMenuList]) {
         
         _menuList = [NSArray arrayWithArray:array1];
@@ -7919,7 +8000,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         }
         
     }
-    
     if ([aDownload.action isEqualToString:act_tigaseDeleteMsg]) {
         
          NSDictionary *param = aDownload.params;
@@ -7951,8 +8031,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
             }
             
         }
-        
-    
     // 收藏表情
     if ([aDownload.action isEqualToString:act_userEmojiAdd]) {
         if ([dict[@"type"] intValue] == CollectTypeEmoji) {
@@ -7967,12 +8045,10 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
             [self actionQuit];
         }
     }
-    
     // 取消收藏
     if ([aDownload.action isEqualToString:act_userEmojiDelete]) {
         [JXMyTools showTipView:Localized(@"JXAlert_DeleteOK")];
     }
-    
     // 添加课程
     if ([aDownload.action isEqualToString:act_userCourseAdd]) {
         [JXMyTools showTipView:Localized(@"JX_AddSuccess")];
@@ -7982,7 +8058,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         [JXMyTools showTipView:Localized(@"JXAlert_DeleteOK")];
         [g_notify postNotificationName:kUpdateCourseList object:nil];
     }
-    
     // 发送收藏 拷贝文件
     if ([aDownload.action isEqualToString:act_UploadCopyFileServlet]) {
         if (self.isGroupMessages) {
@@ -7997,7 +8072,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
             [self collectionMsgSend:dict[@"url"] isFile:YES];
         }
     }
-    
     //获取音视频服务器地址
     if ([aDownload.action isEqualToString:act_UserOpenMeet]) {
         self.meetUrl = [dict objectForKey:@"meetUrl"];
@@ -8007,7 +8081,6 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
             [self onChatVideo:nil];
         }
     }
-    
     // 获取群助手
     if ([aDownload.action isEqualToString:act_queryGroupHelper]) {
         NSMutableArray *arr = [[NSMutableArray alloc] init];
@@ -8078,7 +8151,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
                      _noticeViewScrollView.hidden = NO;
 
                       
-                     _table.contentInset = UIEdgeInsetsMake(38, 0, 0, 0); 
+                    _table.contentInset = UIEdgeInsetsMake(30, 0, 0, 0);
                  }
 
              }
@@ -8152,6 +8225,8 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
                 self.chatPerson.isNeedVerify = [dict objectForKey:@"isNeedVerify"];
                 [self.chatPerson updateGroupSetting];
                 self.chatPerson.chatRecordTimeOut = [dict objectForKey:@"chatRecordTimeOut"];
+                self.chatPerson.roomId = [dict objectForKey:@"roomId"];
+                self.chatPerson.userId = [NSString stringWithFormat:@"%@",dict[@"userId"]];
                 self.room.chatRecordTimeOut = self.chatPerson.chatRecordTimeOut;
                 [self.chatPerson updateUserChatRecordTimeOut];
                 self.room.curCount = [[dict objectForKey:@"userSize"] intValue];
@@ -8171,7 +8246,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
                 memberData* option = [[memberData alloc] init];
                 [option getDataFromDict:p];
                 option.roomId = self.roomId;
-                [option insert];
+               [option insert];
                 
                 // 保存群主和管理员
                 NSMutableArray *memb = [NSMutableArray array];
@@ -8179,8 +8254,8 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
                 for (NSDictionary *member in members) {
                     memberData* option = [[memberData alloc] init];
                     [option getDataFromDict:member];
-                    option.roomId = self.roomId;
-                    [option insert];
+                     option.roomId = self.roomId;
+                     [option insert];
                     [memb addObject:option];
                 }
                 if (_room.members.count <= 0) {
@@ -9505,13 +9580,10 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         return;
     }
     
-    if (_iscpGourp==0) {
-         
-        return;
-    }
-    /**/
-//    if ([model.roomJid isEqualToString:_roomJid]) {
-        if (model.type == 1) {
+   
+    
+     //if ([model.roomJid isEqualToString:_roomJid]) {
+     if (model.type == 1) {
             JXLabelObject *obj = [JXLabelObject sharedInstance];
             obj.roomJid = self.roomJid;
             NSString *groupAnnouncement = nil;
@@ -9557,6 +9629,9 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
             
             _noticeView2.hidden = NO;
         }
+    
+    
+     if (_iscpGourp==0) { return;  }
         if(model.type == 10) {
             
             [self hideKeyboard:NO];

+ 6 - 0
shiku_im/controller/JXProgressVC.m

@@ -144,6 +144,12 @@
     NSMutableArray *userIds = [NSMutableArray array];
     for (int i = 0; i< [array1 count]; i++) {
         NSDictionary * dict = array1[i];
+        NSString *toNickName=[dict objectForKey:@"toNickname"];
+        if (toNickName==nil||toNickName.length==0) {
+            
+            return;
+        }
+        
         JXUserObject * user = [[JXUserObject alloc]init];
         //数据转为一个好友对象
         [user getDataFromDictSmall:dict];

+ 20 - 4
shiku_im/controller/JXRoomMemberVC.m

@@ -307,9 +307,9 @@
 {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
-     [g_server roomGetRoom:self.roomId toView:self];
+     [g_server roomGetRoom:self.roomId toView:self]; // act_roomGetRoom
 
-    [g_server getRoomMember:_roomId userId:[g_myself.userId intValue] toView:self];
+    [g_server getRoomMember:_roomId userId:[g_myself.userId intValue] toView:self]; //
 }
 
 - (void)didReceiveMemoryWarning
@@ -329,7 +329,14 @@
         [g_server showMsg:Localized(@"JXAlert_DeleteOK") delay:.5];
         //
     }
-    
+    if ([aDownload.action isEqualToString:act_roomMemberGet]) {
+        
+        //
+    }
+    if ([aDownload.action isEqualToString:act_roomGetRoom]) {
+        
+        //
+    }
     
     if( [aDownload.action isEqualToString:act_UserGet] ){
         JXUserObject* user = [[JXUserObject alloc]init];
@@ -915,9 +922,18 @@
     self.iv = [self createButton:btnTitle drawTop:NO drawBottom:NO must:NO click:@selector(onNickName) ParentView:_memberView];
     self.iv.tag=1000;
     self.iv.frame = CGRectMake(0, membHeight, JX_SCREEN_WIDTH, HEIGHT);
-    if (!_isAdmin) {  [room getNickNameInRoom];
+
+    NSString *nickRoom = [room getNickNameInRoom];;
+    
+    if (!_isAdmin) {
+        
+        
         _userName = [self createLabel:self.iv default:g_server.myself.userNickname isClick:YES];
     }
+    
+     
+    
+    
     membHeight+=self.iv.frame.size.height;
     membHeight+=INSETS;
     

+ 2 - 0
shiku_im/data/roomData.h

@@ -11,6 +11,8 @@
 
 @interface roomData : NSObject{
     NSString* _tableName;
+    
+    NSString* _userIdOld;
 }
 @property(nonatomic,assign) int countryId;//国家
 @property(nonatomic,assign) int provinceId;//省份

+ 21 - 10
shiku_im/data/roomData.m

@@ -331,7 +331,10 @@
 -(BOOL)checkTableCreatedInDb:(NSString *)queryRoomId{
     NSString* myUserId = MY_USER_ID;
     FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
+   
     NSString *createStr=[NSString stringWithFormat:@"CREATE  TABLE IF NOT EXISTS 'member_%@' ('userId' INTEGER PRIMARY KEY NOT NULL  UNIQUE , 'roomId' VARCHAR, 'userName' VARCHAR, 'cardName' VARCHAR, 'role' INTEGER, 'createTime' VARCHAR, 'remarkName' VARCHAR)",queryRoomId];
+   // NSString *createStr=[NSString stringWithFormat:@"CREATE  TABLE IF NOT EXISTS 'member_%@' (id integer PRIMARY KEY AUTOINCREMENT,'userId' INTEGER PRIMARY KEY , 'roomId' VARCHAR, 'userName' VARCHAR, 'cardName' VARCHAR, 'role' INTEGER, 'createTime' VARCHAR, 'remarkName' VARCHAR)",queryRoomId];
+    
     BOOL worked = [db executeUpdate:createStr];
     return worked;
 }
@@ -478,6 +481,7 @@
 }
 
 -(void)getDataFromDict:(NSDictionary*)dict{
+    //self.roomId = [dict objectForKey:@"roomId"];
     self.userId = [[dict objectForKey:@"userId"] longValue];
     self.userNickName = [dict objectForKey:@"nickname"];
     self.lordRemarkName = [dict objectForKey:@"remarkName"];
@@ -493,6 +497,7 @@
     self.grade = [NSNumber numberWithInt:[[dict objectForKey:@"grade"] intValue]];
     self.bubbleFontId = [NSString stringWithFormat:@"%@",[dict objectForKey:@"bubbleFontId"]];
     self.gradeIndex = [NSString stringWithFormat:@"%@",[dict objectForKey:@"gradeIndex"]];
+    self.gradeIndex = [NSString stringWithFormat:@"%@",[dict objectForKey:@"gradeIndex"]];
 //    self.roomId;
 //    self.userId;
 //    self.userName;
@@ -506,7 +511,11 @@
 -(BOOL)checkTableCreatedInDb:(NSString *)queryRoomId{
     NSString* myUserId = MY_USER_ID;
     FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
-    NSString *createStr=[NSString stringWithFormat:@"CREATE  TABLE IF NOT EXISTS 'member_%@' ('userId' INTEGER PRIMARY KEY NOT NULL  UNIQUE , 'roomId' VARCHAR, 'userName' VARCHAR, 'cardName' VARCHAR, 'role' INTEGER,'onlinestate' VARCHAR, 'grade' INTEGER, 'createTime' VARCHAR, 'remarkName' VARCHAR, 'bubbleFontId' VARCHAR, 'gradeIndex' VARCHAR)",queryRoomId];
+   NSString *createStr=[NSString stringWithFormat:@"CREATE  TABLE IF NOT EXISTS 'member_%@' ('userId' INTEGER PRIMARY KEY NOT NULL  UNIQUE , 'roomId' VARCHAR, 'userName' VARCHAR, 'cardName' VARCHAR, 'role' INTEGER,'onlinestate' VARCHAR, 'grade' INTEGER, 'createTime' VARCHAR, 'remarkName' VARCHAR, 'bubbleFontId' VARCHAR, 'gradeIndex' VARCHAR)",queryRoomId];
+    
+  
+  //  NSString *createStr=[NSString stringWithFormat:@"CREATE  TABLE IF NOT EXISTS 'member_%@' (id integer PRIMARY KEY AUTOINCREMENT,'userId', 'roomId' VARCHAR, 'userName' VARCHAR, 'cardName' VARCHAR, 'role' INTEGER,'onlinestate' VARCHAR, 'grade' INTEGER, 'createTime' VARCHAR, 'remarkName' VARCHAR, 'bubbleFontId' VARCHAR, 'gradeIndex' VARCHAR)",queryRoomId];
+    
     BOOL worked = [db executeUpdate:createStr];
     return worked;
 }
@@ -523,16 +532,16 @@
     NSString* myUserId = MY_USER_ID;
     
     FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
-    NSString* sql= [NSString stringWithFormat:@"select userId from member_%@ where userId=%ld",self.roomId,userId];
-    FMResultSet *rs=[db executeQuery:sql,[NSNumber numberWithLong:self.userId]];
-    while ([rs next]) {
-        //不重复保存
-        return NO;
-    }
-     
-    
+//    NSString* sql= [NSString stringWithFormat:@"select userId from member_%@ where userId=%ld",self.roomId,userId];
+//    FMResultSet *rs=[db executeQuery:sql,[NSNumber numberWithLong:self.userId]];
+//    while ([rs next]) {
+//        //不重复保存
+//        return NO;
+//    }
+    //BOOL temp =
     [self checkTableCreatedInDb:self.roomId];
     
+   // NSLog(@"_roomId:::1 %@ --%ld--%@---currentThread%@",_roomId,userId, temp == YES?@"YES":@"NO", [NSThread currentThread]);
     
     if([self.role integerValue] == 0){
         self.role = [NSNumber numberWithInteger:3];
@@ -556,6 +565,7 @@
     FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
     [self checkTableCreatedInDb:self.roomId];
     
+    //NSLog(@"_roomId::: 0 %@ --%ld",_roomId,userId);
 //    NSString* sql= [NSString stringWithFormat:@"select userId from member_%@ where userId=%ld",self.roomId,userId];// or grade=%@,self.gradeIndex];
 //    FMResultSet *rs=[db executeQuery:sql,[NSNumber numberWithLong:self.userId]];
 //    while ([rs next]) {
@@ -582,7 +592,8 @@
     NSString* myUserId = MY_USER_ID;
     FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
     [self checkTableCreatedInDb:self.roomId];
-
+    
+   // NSLog(@"_roomId::: 2%@ --%ld",_roomId,userId);
     NSString* sql = [NSString stringWithFormat:@"update member_%@ set roomId=?,userId=?,userName=?,cardName=?,role=?,onlinestate=?,grade=?,createTime=?,remarkName=?,bubbleFontId=?,gradeIndex=? where userId=?",self.roomId];
     BOOL worked = [db executeUpdate:sql,self.roomId,[NSNumber numberWithLong:self.userId],self.userNickName,self.cardName,self.role,self.onlinestate,self.grade,[NSNumber numberWithLongLong:self.createTime],self.lordRemarkName,self.bubbleFontId,self.gradeIndex,[NSNumber numberWithLong:self.userId]];
     return worked;

+ 11 - 6
shiku_im/friendBlog/util/dialog/MBProgressHUD.m

@@ -717,11 +717,13 @@ static const CGFloat MBDefaultDetailsLabelFontSize = 12.f;
 
 - (void)setProgress:(float)progress {
     if (progress != _progress) {
-        _progress = progress;
-        UIView *indicator = self.indicator;
-        if ([indicator respondsToSelector:@selector(setProgress:)]) {
-            [(id)indicator setValue:@(self.progress) forKey:@"progress"];
-        }
+        _progress = progress; dispatch_async(dispatch_get_main_queue(), ^{
+            UIView *indicator = self.indicator;
+            if ([indicator respondsToSelector:@selector(setProgress:)]) {
+                 
+                [(id)indicator setValue:@(self.progress) forKey:@"progress"];
+            }
+        });
     }
 }
 
@@ -862,7 +864,10 @@ static const CGFloat MBDefaultDetailsLabelFontSize = 12.f;
 - (void)setProgress:(float)progress {
     if (progress != _progress) {
         _progress = progress;
-        [self setNeedsDisplay];
+        dispatch_async(dispatch_get_main_queue(), ^{
+                 [self setNeedsDisplay];
+          });
+        
     }
 }
 

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 3 - 1
shiku_im/model/JXUserBaseObj.m


+ 2 - 0
shiku_im/model/JXUserObject.m

@@ -812,6 +812,8 @@ static JXUserObject *sharedUser;
     NSMutableArray *userArray = [NSMutableArray array];
     for (NSInteger i = 0; i < array.count; i ++) {
         NSDictionary *dict = array[i];
+        NSString  *dicJid=dict[@"jid"];
+        //修改了修改了 //||dicJid.length>=10
         if ([g_xmpp.blackList containsObject:dict[@"jid"]]) {
             continue;
         }

+ 4 - 0
shiku_im/model/JXXMPP.h

@@ -9,6 +9,7 @@
 #import <Foundation/Foundation.h>
 #import <QuartzCore/QuartzCore.h> 
 #import "JXRoomObject.h"
+#import "FMDatabaseQueue.h"
 
 #define login_status_yes 1  //登录成功
 #define login_status_ing 0  //登录中
@@ -59,7 +60,10 @@ enum kWCCommandType {
 	
 	BOOL isXmppConnected;
     FMDatabase* _db;
+    
+    FMDatabaseQueue* _dbQueue; 
     NSString* _userIdOld;
+    
 }
 
 - (NSManagedObjectContext *)managedObjectContext_roster;

+ 22 - 11
shiku_im/model/JXXMPP.m

@@ -30,6 +30,7 @@
 #import "JLGroupActivityModel.h"
 #import "JXLabelObject.h"
 
+
 #if DEBUG
 static const DDLogLevel ddLogLevel = DDLogLevelOff;
 #else
@@ -129,6 +130,7 @@ static JXXMPP *sharedManager;
 }
 
 
+#pragma mark ---登陆
 -(void)login{
     
     NSLog(@"XMPPLogin ---");
@@ -158,7 +160,7 @@ static JXXMPP *sharedManager;
     }
     
 }
-
+#pragma mark ---重新登陆后
 -(void)doLogin{
     
     NSLog(@"xmpp ---- doLogin");
@@ -172,6 +174,7 @@ static JXXMPP *sharedManager;
     [self notify];
 }
   
+#pragma mark ---  退出登陆
 -(void)logout{
     if(!isLogined)
         return;
@@ -332,6 +335,7 @@ static int i=0;
         [self receiptTimerAction:nil];
     }
     
+    //NSLog(@"msg.fromUserName %@ == %@",msg.fromUserName,msg.toUserName);
     
     // [self sendMessageReceipt:msg];
     
@@ -518,7 +522,7 @@ static int i=0;
                 NSArray *fromIdArr=[msg.fromId componentsSeparatedByString:@"/"];
                 NSString *tempMsg=[fromIdArr lastObject];
                     
-                if(([msg.fromUserName length]>0 && type == kWCChatTypeChat && ![msg.fromUserId isEqualToString:MY_USER_ID])||[tempMsg isEqualToString:@"1"]){//保存陌生人信息:
+                if(([msg.fromUserName length]>0 && type == kWCChatTypeChat && ![msg.fromUserId isEqualToString:MY_USER_ID])||[tempMsg isEqualToString:@"1"]||[tempMsg isEqualToString:@"android"]||[tempMsg isEqualToString:@"pc"]||[tempMsg isEqualToString:@"mac"]){//保存陌生人信息:
                   
                     
                     [self saveFromUser:msg];
@@ -924,7 +928,7 @@ static int i=0;
 
 -(void)notify{
     [g_notify  postNotificationName:kXmppLoginNotifaction object:nil];
-    if (self.isLogined == login_status_yes) {
+    if (isLogined == login_status_yes) {
         // 上线发送消息通知其他端
         [g_multipleLogin sendOnlineMessage];
     }else {
@@ -1010,6 +1014,9 @@ static int i=0;
     NSString* s = [NSString stringWithFormat:@"%@/%@.db",t,userId];
     
     _db = [[FMDatabase alloc] initWithPath:s];
+     
+     
+    
     if (![_db open]) {
         NSLog(@"数据库打开失败");
         return nil;
@@ -1055,9 +1062,10 @@ static int i=0;
     JXUserObject *user=[[JXUserObject alloc]init];
     user.userId = msg.fromUserId;
     NSArray *fromIdArr=[msg.fromId componentsSeparatedByString:@"/"];
-    
+       int type = msg.chatType;
     NSString *tempMsg=[fromIdArr lastObject];
-    if ([tempMsg isEqualToString:@"1"]) {
+    if ([tempMsg isEqualToString:@"1"]||[tempMsg isEqualToString:@"android"]||[tempMsg isEqualToString:@"pc"]||[tempMsg isEqualToString:@"mac"]||[tempMsg isEqualToString:@"Server"]||
+ ([msg.fromUserName length]>0 && type == kWCChatTypeChat && ![msg.fromUserId isEqualToString:MY_USER_ID])) {
         user.userNickname = msg.fromUserName;
         user.userDescription = msg.fromUserName;
         [user insert];
@@ -1248,13 +1256,13 @@ static int i=0;
         switch (self.isLogined){
             case login_status_ing:
                 // 连接失败
-//                [JXMyTools showTipView:Localized(@"JX_ConnectFailed")];
+             [JXMyTools showTipView:Localized(@"JX_ConnectFailed")];
                 break;
             case login_status_no:
                 
                 g_server.lastOfflineTime = [[NSDate date] timeIntervalSince1970];
                 // 连接失败
-//                [JXMyTools showTipView:Localized(@"JX_ConnectFailed")];
+            [JXMyTools showTipView:Localized(@"JX_ConnectFailed")];
                 break;
             case login_status_yes:
                 // 连接成功
@@ -1271,7 +1279,7 @@ static int i=0;
     if(self.isLogined != login_status_yes) {
         [_reconnectTimer invalidate];
         _reconnectTimer = nil;
-        if (self.reconnectTimerCount <= 30) {
+        if (_reconnectTimerCount <= 30) {
             _reconnectTimer = [NSTimer scheduledTimerWithTimeInterval:self.reconnectTimerCount target:self selector:@selector(xmppTimerAction:) userInfo:nil repeats:NO];
             NSLog(@"login-开始登陆 - %d",self.isLogined);
         }
@@ -1490,8 +1498,7 @@ static int i=0;
     }
 }
 
-
-// 挤下线
+#pragma mark ---挤下线
 - (void)loginConflict:(NSData *)data {
  
     self.isReconnect = NO;
@@ -1683,7 +1690,11 @@ static int i=0;
 
 - (NSString *)getMessageId {
     
-    return [[[NSUUID UUID].UUIDString stringByReplacingOccurrencesOfString:@"-" withString:@""] lowercaseString];
+    NSString *uuidStr =  [[[NSUUID UUID].UUIDString stringByReplacingOccurrencesOfString:@"-" withString:@""] lowercaseString];
+    
+  
+    
+    return uuidStr;
 }
 
 

+ 9 - 5
shiku_im/network/JXServer.m

@@ -203,17 +203,21 @@
             [self doError:task dict:resultObject resultMsg:string errorMsg:error];
         }else{
 //            NSLog(@"%@成功:%@",task.action,string);
-
-            if ([task.action isEqualToString:act_getCurrentTime] || [task.action isEqualToString:act_Config]) {
+//|| [task.action isEqualToString:act_Config]
+            if ([task.action isEqualToString:act_getCurrentTime]) {
                 // 获取服务器时间,然后对比当前客户端时间
                 // 两个接口调用,防止单个接口出现空值
                 if ([[(NSDictionary *)resultObject objectForKey:@"currentTime"] doubleValue] > 0) {
                     self.serverCurrentTime = [[(NSDictionary *)resultObject objectForKey:@"currentTime"] doubleValue];
-                    self.timeDifference = self.serverCurrentTime - ([[NSDate date] timeIntervalSince1970] *1000);
+                    NSTimeInterval plusTime = self.serverCurrentTime;//-([[NSDate date] timeIntervalSince1970] *1000);
+                    //NSTimeInterval plusTime = self.serverCurrentTime;
+                    
+                   // [g_App showAlert:[NSString stringWithFormat:@"%f",plusTime]];
                     
+                    self.timeDifference=plusTime;
                     [share_defaults setObject:[NSNumber numberWithInt:self.timeDifference] forKey:kShare_timeDifference];
                 }
-                NSLog(@"currentTime: %@ - %f",task.action,self.timeDifference);
+               // NSLog(@"currentTime: %@ - %f",task.action,self.timeDifference);
             }
             resultObject = [(NSDictionary *)resultObject objectForKey:@"data"];
             NSDictionary * dict = nil;
@@ -953,7 +957,7 @@
     [g_default synchronize];
 }
 
-
+//记录退出时间与推到后台的时间
 -(void)outTime:(id)toView{
     JXConnection* p = [self addTask:act_OutTime param:nil toView:toView];
     [p setPostValue:access_token forKey:@"access_token"];

+ 1 - 1
shiku_im/shiku_im-Info.plist

@@ -67,7 +67,7 @@
 		<dict/>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>20200724</string>
+	<string>20200730</string>
 	<key>LSApplicationCategoryType</key>
 	<string></string>
 	<key>LSApplicationQueriesSchemes</key>

+ 3 - 2
shiku_im/shiku_im-Prefix.pch

@@ -14,14 +14,15 @@
 #define APIKEY @"a891a7a6-03af-475c-8ae1-7fb4b230e958"
 
 //#define APIURL @"47.57.16.13"
+
  
+//#define APIURL @"154.223.51.123"
 
 #define APIURL @"qdzcie.com"
 
 
 //#define APIURL @"https://app.ddz98.vip"
-
-//#define APIURL @"47.57.16.13"
+ 
 
 #define JPUSHAPPKEY @"23862a54c91a5e635f6dd1f2"
 #define JPUSHAPPKEY2 @"247d5f7506b27d1fb4d0d373"