@@ -63,6 +63,20 @@ + (PrivateMessages *)priMsgsWithUser:(User *)user{
6363 return priMsgs;
6464}
6565
66+ + (id )analyzeResponseData : (NSDictionary *)responseData {
67+ id data = [responseData valueForKeyPath: @" data" ];
68+ if (!data) {// 旧数据直接保存的data属性
69+ data = responseData;
70+ }
71+ id resultA = nil ;
72+ if ([data isKindOfClass: [NSArray class ]]) {
73+ resultA = [NSObject arrayFromJSON: data ofObjects: @" PrivateMessage" ];
74+ }else if (data){
75+ resultA = [NSObject objectOfClass: @" PrivateMessages" fromJSON: data];
76+ }
77+ return resultA;
78+ }
79+
6680- (NSString *)localPrivateMessagesPath {
6781 NSString *path;
6882 if (_curFriend) {
@@ -75,15 +89,27 @@ - (NSString *)localPrivateMessagesPath{
7589- (NSString *)toPath {
7690 NSString *path;
7791 if (_curFriend) {
78- path = [NSString stringWithFormat: @" api/message/conversations/%@ " , _curFriend.global_key];
92+ path = [NSString stringWithFormat: @" api/message/conversations/%@ /prev " , _curFriend.global_key];
7993 }else {
8094 path = @" api/message/conversations" ;
8195 }
8296 return path;
8397}
8498- (NSDictionary *)toParams {
85- return @{@" page" : _willLoadMore? [NSNumber numberWithInt: _page.intValue +1 ]: [NSNumber numberWithInt: 1 ],
86- @" pageSize" : _pageSize};
99+ NSDictionary *params = nil ;
100+ if (_curFriend) {
101+ NSNumber *prevId = kDefaultLastId ;
102+ if (_willLoadMore && _list.count > 0 ) {
103+ PrivateMessage *prev_Msg = [_list lastObject ];
104+ prevId = prev_Msg.id ;
105+ }
106+ params = @{@" id" : prevId,
107+ @" pageSize" : _pageSize};
108+ }else {
109+ params = @{@" page" : _willLoadMore? [NSNumber numberWithInt: _page.intValue +1 ]: [NSNumber numberWithInt: 1 ],
110+ @" pageSize" : _pageSize};
111+ }
112+ return params;
87113}
88114
89115- (NSString *)toPollPath {
@@ -105,17 +131,26 @@ - (NSInteger)p_lastId{
105131 return last_id;
106132}
107133
108- - (void )configWithObj : (PrivateMessages *)priMsgs {
109- self.page = priMsgs.page ;
110- self.pageSize = priMsgs.pageSize ;
111- self.totalPage = priMsgs.totalPage ;
112- if (!_willLoadMore) {
113- [self .list removeAllObjects ];
134+ - (void )configWithObj : (id )anObj {
135+ if ([anObj isKindOfClass: [PrivateMessages class ]]) {
136+ PrivateMessages *priMsgs = (PrivateMessages *)anObj;
137+ self.page = priMsgs.page ;
138+ self.pageSize = priMsgs.pageSize ;
139+ self.totalPage = priMsgs.totalPage ;
140+ if (!_willLoadMore) {
141+ [self .list removeAllObjects ];
142+ }
143+ [self .list addObjectsFromArray: priMsgs.list];
144+ self.canLoadMore = _page.intValue < _totalPage.intValue ;
145+ }else if ([anObj isKindOfClass: [NSArray class ]]){
146+ NSArray *list = (NSArray *)anObj;
147+ if (!_willLoadMore) {
148+ [self .list removeAllObjects ];
149+ }
150+ [self .list addObjectsFromArray: list];
151+ self.canLoadMore = list.count > 0 ;
114152 }
115- [self .list addObjectsFromArray: priMsgs.list];
116153 [self reset_dataList ];
117-
118- _canLoadMore = _page.intValue < _totalPage.intValue ;
119154}
120155
121156- (void )configWithPollArray : (NSArray *)pollList {
0 commit comments