Bob преди 6 години
родител
ревизия
e3e43f932c

+ 6 - 0
HappyJob/HappyJob.xcodeproj/project.pbxproj

@@ -115,6 +115,7 @@
 		C41393F42253718D009F61FE /* HJBaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C41393F32253718D009F61FE /* HJBaseModel.m */; };
 		C4139C9722800C54000C11B5 /* HJApproveStatusAPIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C4139C9622800C54000C11B5 /* HJApproveStatusAPIManager.m */; };
 		C4139C9A228019D1000C11B5 /* HJRealApproveAPIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C4139C99228019D1000C11B5 /* HJRealApproveAPIManager.m */; };
+		C413DDEF2283D24100F9F17D /* HJClearMessageAPIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C413DDEE2283D24100F9F17D /* HJClearMessageAPIManager.m */; };
 		C413FCB42254542600BEE4F0 /* UILabel+HJTitleTagLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = C413FCB32254542600BEE4F0 /* UILabel+HJTitleTagLabel.m */; };
 		C413FCB822545A5600BEE4F0 /* UILabel+HJWelfareTagLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = C413FCB722545A5600BEE4F0 /* UILabel+HJWelfareTagLabel.m */; };
 		C413FCBB22545EE500BEE4F0 /* HJMaxMoneyLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = C413FCBA22545EE500BEE4F0 /* HJMaxMoneyLabel.m */; };
@@ -411,6 +412,8 @@
 		C4139C9622800C54000C11B5 /* HJApproveStatusAPIManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HJApproveStatusAPIManager.m; sourceTree = "<group>"; };
 		C4139C98228019D1000C11B5 /* HJRealApproveAPIManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HJRealApproveAPIManager.h; sourceTree = "<group>"; };
 		C4139C99228019D1000C11B5 /* HJRealApproveAPIManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HJRealApproveAPIManager.m; sourceTree = "<group>"; };
+		C413DDED2283D24100F9F17D /* HJClearMessageAPIManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HJClearMessageAPIManager.h; sourceTree = "<group>"; };
+		C413DDEE2283D24100F9F17D /* HJClearMessageAPIManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HJClearMessageAPIManager.m; sourceTree = "<group>"; };
 		C413FCB22254542600BEE4F0 /* UILabel+HJTitleTagLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UILabel+HJTitleTagLabel.h"; sourceTree = "<group>"; };
 		C413FCB32254542600BEE4F0 /* UILabel+HJTitleTagLabel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UILabel+HJTitleTagLabel.m"; sourceTree = "<group>"; };
 		C413FCB622545A5600BEE4F0 /* UILabel+HJWelfareTagLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UILabel+HJWelfareTagLabel.h"; sourceTree = "<group>"; };
@@ -1124,6 +1127,8 @@
 				C412BD902277DC4F0098893C /* HJMessageAPIManager.m */,
 				C412BD922277E06F0098893C /* HJMessageDataBox.h */,
 				C412BD932277E06F0098893C /* HJMessageDataBox.m */,
+				C413DDED2283D24100F9F17D /* HJClearMessageAPIManager.h */,
+				C413DDEE2283D24100F9F17D /* HJClearMessageAPIManager.m */,
 			);
 			path = MessageAPIManager;
 			sourceTree = "<group>";
@@ -1774,6 +1779,7 @@
 				C40FF243223F86F4008868BF /* HJMeViewController.m in Sources */,
 				C49612E42265DD7000898E55 /* HJDateMenuView.m in Sources */,
 				C4B3D340227AD31800FEAA58 /* HJSearchAPIManager.m in Sources */,
+				C413DDEF2283D24100F9F17D /* HJClearMessageAPIManager.m in Sources */,
 				C40FF24B223F86F4008868BF /* HJNavBarView.m in Sources */,
 				C4129F0F224B197D00E762D5 /* HJCityPickerLocationView.m in Sources */,
 				C41907D4227EC5CB00E1F482 /* HJDetailView.m in Sources */,

BIN
HappyJob/HappyJob.xcworkspace/xcuserdata/Bob.xcuserdatad/UserInterfaceState.xcuserstate


+ 0 - 18
HappyJob/HappyJob.xcworkspace/xcuserdata/Bob.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -2,22 +2,4 @@
 <Bucket
    type = "0"
    version = "2.0">
-   <Breakpoints>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "HappyJob/Message_&#x6d88;&#x606f;/MessageAPIManager/HJMessageDataBox.m"
-            timestampString = "579018222.6696219"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "120"
-            endingLineNumber = "120"
-            landmarkName = "-concatenateMessage:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-   </Breakpoints>
 </Bucket>

+ 0 - 2
HappyJob/HappyJob/Components/CustomControl/UIViewController/HJConfirmPanelViewController.m

@@ -22,8 +22,6 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     self.view.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.6];
-    self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
-    self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
     
     [self.view addSubview:self.contentView];
     [self.contentView addSubview:self.titleImageView];

+ 3 - 0
HappyJob/HappyJob/Home_首页/Search_搜索页面/HJSearchViewController.m

@@ -106,6 +106,9 @@
 
 - (void)searchHistoryViewDelButtonClicked:(HJSearchHistoryView *)searchHistoryView {
     HJConfirmPanelViewController *vc = [[HJConfirmPanelViewController alloc] init];
+    vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
+    vc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
+    self.navigationController.definesPresentationContext = NO;
     vc.titleLabel.text = @"是否清除搜索记录?";
     [vc.confirmButton addTarget:self
                          action:@selector(confirmButtonClicked:)

+ 47 - 4
HappyJob/HappyJob/Message_消息/HJMessageViewController.m

@@ -14,13 +14,16 @@
 #import "HJMessageBlankView.h"
 #import "HJPageListView.h"
 #import "HJMessageAPIManager.h"
+#import "HJClearMessageAPIManager.h"
 #import "HJMessageDataBox.h"
+#import "UIView+FBProgressHUD.h"
 
 @interface HJMessageViewController () <UITableViewDelegate, FBAPIManagerDelegate, FBAPIManagerInterceptor>
 @property (nonatomic, strong) HJMessageBlankView *blankView;
 @property (nonatomic, strong) HJPageListView *pageListView;
 @property (nonatomic, strong) UIButton *delButton;
 @property (nonatomic, strong) HJMessageAPIManager *msgAPIManager;
+@property (nonatomic, strong) HJClearMessageAPIManager *clearMsgAPIManager;
 @property (nonatomic, strong) HJMessageDataBox *msgDataBox;
 @end
 
@@ -54,19 +57,37 @@
 #pragma mark - UITableViewDelegate
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    
+    HJMessageModel *model = [self.msgDataBox messageModelAtIndexPath:indexPath];
+    if (model.type == HJMessageTypePositionChange) {
+        [self.tabBarController setSelectedIndex:0];
+    } else if (model.type == HJMessageTypeIdentityAuth) {
+        [self.tabBarController setSelectedIndex:3];
+    } else if (model.type == HJMessageTypeReturnMoney) {
+        
+    } else if (model.type == HJMessageTypeJoin) {
+        
+    } else {
+        
+    }
 }
 
 #pragma mark - FBAPIManagerInterceptor
 
 - (BOOL)manager:(FBBaseAPIManager *)manager shouldStartCallAPIWithParams:(NSDictionary *)params {
-    [self.view bringSubviewToFront:self.pageListView];
+    if (manager == self.msgAPIManager) {
+        [self.view bringSubviewToFront:self.pageListView];
+    }
+    if (manager == self.clearMsgAPIManager) {
+        [self.view bringSubviewToFront:self.blankView];
+    }
     
     return [self.pageListView manager:manager shouldStartCallAPIWithParams:params];
 }
 
 - (void)managerShouldFinishCallAPI:(FBBaseAPIManager *)manager {
-    [self.pageListView managerShouldFinishCallAPI:manager];
+    if (manager == self.msgAPIManager) {
+        [self.pageListView managerShouldFinishCallAPI:manager];
+    }
 }
 
 #pragma mark - FBAPIManagerDelegate
@@ -78,6 +99,11 @@
             [self.view bringSubviewToFront:self.blankView];
         }
     }
+    if (manager == self.clearMsgAPIManager) {
+        NSString *successStr = [manager fetchDataWithBox:self.msgDataBox];
+        [self.view fb_showSuccessWithStatus:successStr];
+        [self.pageListView.tableView reloadData];
+    }
 }
 
 - (void)managerCallAPIDidFailed:(FBBaseAPIManager *)manager {
@@ -88,6 +114,13 @@
 
 - (void)delButtonClicked:(UIButton *)sender {
     HJConfirmPanelViewController *vc = [[HJConfirmPanelViewController alloc] init];
+    // 该效果属性不能放在HJConfirmPanelViewController内设置,不然设置透明度后不会显示底下视图的内容
+    vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
+    vc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
+    /** 如果把一个控制器的definesPresentationContext属性设置为YES,那么在进行跳转的时候,UIKit会使用视图层级内的这个控制器来进行跳转。
+     *  比如这里的tabBar就不被遮挡了,还可以在标签之间切换,在切换回本页面时不显示内容的情况。
+     */
+    self.navigationController.definesPresentationContext = NO;
     vc.titleLabel.text = @"是否清除消息记录?";
     [vc.confirmButton addTarget:self
                          action:@selector(confirmButtonClicked:)
@@ -98,7 +131,8 @@
 }
 
 - (void)confirmButtonClicked:(UIButton *)sender {
-    
+    [self.clearMsgAPIManager call];
+    [self dismissViewControllerAnimated:YES completion:nil];
 }
 
 #pragma mark - private methods
@@ -112,6 +146,15 @@
     return _msgDataBox;
 }
 
+- (HJClearMessageAPIManager *)clearMsgAPIManager {
+    if (_clearMsgAPIManager == nil) {
+        _clearMsgAPIManager = [[HJClearMessageAPIManager alloc] init];
+        _clearMsgAPIManager.APIManagerDelegate = self;
+        _clearMsgAPIManager.APIManagerInterceptor = self;
+    }
+    return _clearMsgAPIManager;
+}
+
 - (HJMessageAPIManager *)msgAPIManager {
     if (_msgAPIManager == nil) {
         _msgAPIManager = [[HJMessageAPIManager alloc] init];

+ 17 - 0
HappyJob/HappyJob/Message_消息/MessageAPIManager/HJClearMessageAPIManager.h

@@ -0,0 +1,17 @@
+//
+//  HJClearMessageAPIManager.h
+//  HappyJob
+//
+//  Created by Bob on 2019/5/9.
+//  Copyright © 2019 Bob. All rights reserved.
+//
+
+#import "FBBaseAPIManager.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HJClearMessageAPIManager : FBBaseAPIManager
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 54 - 0
HappyJob/HappyJob/Message_消息/MessageAPIManager/HJClearMessageAPIManager.m

@@ -0,0 +1,54 @@
+//
+//  HJClearMessageAPIManager.m
+//  HappyJob
+//
+//  Created by Bob on 2019/5/9.
+//  Copyright © 2019 Bob. All rights reserved.
+//
+
+#import "HJClearMessageAPIManager.h"
+#import "HJUserInfoModel.h"
+
+@interface HJClearMessageAPIManager () <FBAPIManagerProtocol, FBAPIManagerValidator>
+@property (nonatomic, copy) NSString *userID;
+@property (nonatomic, copy) NSString *userToken;
+@end
+
+@implementation HJClearMessageAPIManager
+
+- (instancetype)init {
+    if (self = [super init]) {
+        _userID = [HJUserInfoModel userInfo].userID;
+        _userToken = [HJUserInfoModel userInfo].userToken;
+    }
+    return self;
+}
+
+- (FBAPIManagerErrorType)manager:(FBBaseAPIManager *)manager validWithCallParamsData:(NSDictionary *)data {
+    if (self.userID == nil || self.userToken == nil) {
+        return FBAPIManagerErrorTypeParamsError;
+    }
+    
+    return FBAPIManagerErrorTypeNoError;
+}
+
+- (FBAPIManagerErrorType)manager:(FBBaseAPIManager *)manager validWithCallBackData:(NSDictionary *)data {
+    if ([[data objectForKey:@"errcode"] integerValue] == 0) {
+        return FBAPIManagerErrorTypeNoError;
+    } else {
+        return FBAPIManagerErrorTypeNoContent;
+    }
+}
+
+- (NSString *)methodName {
+    return @"message/clearMyMessage";
+}
+
+- (NSDictionary *)parameters {
+    return @{
+        @"user_id": self.userID,
+        @"user_token": self.userToken,
+    };
+}
+
+@end

+ 3 - 0
HappyJob/HappyJob/Message_消息/MessageAPIManager/HJMessageDataBox.h

@@ -8,6 +8,7 @@
 
 #import <Foundation/Foundation.h>
 #import "FBAPIManagerDataBox.h"
+#import "HJMessageModel.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -20,6 +21,8 @@ typedef NS_ENUM(NSUInteger, HJMessageType) {
 
 @interface HJMessageDataBox : NSObject <FBAPIManagerDataBox, UITableViewDataSource>
 @property (nonatomic, assign, readonly, getter=isShowBlankView) BOOL showBlankView;
+
+- (HJMessageModel *)messageModelAtIndexPath:(NSIndexPath *)indexPath;
 @end
 
 NS_ASSUME_NONNULL_END

+ 35 - 19
HappyJob/HappyJob/Message_消息/MessageAPIManager/HJMessageDataBox.m

@@ -11,7 +11,7 @@
 #import "HJMessageTableViewCell.h"
 #import "HJMessageDateTableViewCell.h"
 #import "HJMessageAPIManager.h"
-#import "HJMessageModel.h"
+#import "HJClearMessageAPIManager.h"
 #import "XHDate.h"
 
 static NSString * const HJMessageDateTableViewCellIdentifier = @"HJMessageDateTableViewCell";
@@ -41,6 +41,10 @@ static NSString * const HJMessageTableViewCellIdentifier = @"HJMessageTableViewC
             [self manager:(HJMessageAPIManager *)manager configDataSourceWithArray:[data valueForKeyPath:@"data.myMessage"]];
             _showBlankView = (self.dataSource.count > 0) ? NO : YES;
         }
+        if ([manager isKindOfClass:[HJClearMessageAPIManager class]]) {
+            [self clearAllMessage];
+            return [data valueForKey:@"errmsg"];
+        }
     } else if (type == FBAPIManagerErrorTypeNoContent) {
         return [data valueForKey:@"errmsg"];
     } else {
@@ -56,6 +60,11 @@ static NSString * const HJMessageTableViewCellIdentifier = @"HJMessageTableViewC
     return model;
 }
 
+- (void)clearAllMessage {
+    [self.dataSource removeAllObjects];
+    [HJMessageModel removeLocalMessage];
+}
+
 #pragma mark - UITableViewDataSource
 
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
@@ -119,26 +128,33 @@ static NSString * const HJMessageTableViewCellIdentifier = @"HJMessageTableViewC
     // 生成双份,分别用于显示时间和消息,偶数索引是时间,奇数是消息
     NSArray *localMsgArray = [HJMessageModel localMessageArray];
     NSMutableArray *tempArray = [NSMutableArray arrayWithCapacity:(2*(msgArray.count+localMsgArray.count))];
-    // 把本地职位更新消息按时间插入到服务器消息数组中
-    for (NSDictionary *dict in msgArray) {
-        HJMessageModel *msgModel = [HJMessageModel yy_modelWithJSON:dict];
-        
-        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
-        [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
-        NSTimeInterval time1 = [[dateFormatter dateFromString:msgModel.messageTime] timeIntervalSince1970];
-        
-        for (NSUInteger i = self.localMessageMarkIndex; i < localMsgArray.count; i++) {
-            HJMessageModel *localMsgModel = [localMsgArray objectAtIndex:i];
-            NSTimeInterval time2 = [[dateFormatter dateFromString:localMsgModel.messageTime] timeIntervalSince1970];
-            if (time1 < time2) {
-                [tempArray addObject:localMsgModel];
-                [tempArray addObject:localMsgModel];
-                self.localMessageMarkIndex++;
+    if (msgArray.count > 0) {
+        // 把本地职位更新消息按时间插入到服务器消息数组中
+        for (NSDictionary *dict in msgArray) {
+            HJMessageModel *msgModel = [HJMessageModel yy_modelWithJSON:dict];
+            
+            NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+            [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
+            NSTimeInterval time1 = [[dateFormatter dateFromString:msgModel.messageTime] timeIntervalSince1970];
+            
+            for (NSUInteger i = self.localMessageMarkIndex; i < localMsgArray.count; i++) {
+                HJMessageModel *localMsgModel = [localMsgArray objectAtIndex:i];
+                NSTimeInterval time2 = [[dateFormatter dateFromString:localMsgModel.messageTime] timeIntervalSince1970];
+                if (time1 < time2) {
+                    [tempArray addObject:localMsgModel];
+                    [tempArray addObject:localMsgModel];
+                    self.localMessageMarkIndex++;
+                }
             }
+            
+            [tempArray addObject:msgModel];
+            [tempArray addObject:msgModel];
+        }
+    } else {
+        for (HJMessageModel *model in localMsgArray) {
+            [tempArray addObject:model];
+            [tempArray addObject:model];
         }
-        
-        [tempArray addObject:msgModel];
-        [tempArray addObject:msgModel];
     }
     
     return [tempArray copy];