AllCustomerViewController.m 12.6 KB
Newer Older
曹云霄's avatar
曹云霄 committed
1 2 3 4 5 6 7 8 9 10
//
//  AllCustomerViewController.m
//  Lighting
//
//  Created by 曹云霄 on 16/5/6.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "AllCustomerViewController.h"
#import "AllCutomerTableViewCell.h"
勾芒's avatar
勾芒 committed
11 12
#import "DateSelectedViewController.h"
#import "MyclientEntityModel.h"
勾芒's avatar
勾芒 committed
13 14
#import "ClientdetailsViewController.h"

曹云霄's avatar
曹云霄 committed
15
@interface AllCustomerViewController ()<UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate>
曹云霄's avatar
曹云霄 committed
16

勾芒's avatar
勾芒 committed
17 18 19 20
/**
 *  数据源
 */
@property (nonatomic,strong) NSMutableArray *CustomerresultArray;
勾芒's avatar
勾芒 committed
21 22 23 24 25 26


/**
 *  总页数
 */
@property (nonatomic,assign) int totalPages;
27

28

29

曹云霄's avatar
曹云霄 committed
30 31 32 33
@end

@implementation AllCustomerViewController

勾芒's avatar
勾芒 committed
34 35 36 37 38 39 40 41 42 43 44 45 46

/**
 *  初始化客户数据源
 */
- (NSMutableArray *)CustomerresultArray
{
    if (_CustomerresultArray == nil) {
        
        _CustomerresultArray = [NSMutableArray array];
    }
    return _CustomerresultArray;
}

47 48 49 50 51 52 53
/**
 *  初始化参数模型
 */
- (ConsumerQueryCondition *)conditionModel
{
    if (!_conditionModel) {
        _conditionModel = [[ConsumerQueryCondition alloc]init];
54 55 56 57
        DataPage *page = [[DataPage alloc]init];
        page.page = ONE;
        page.rows = KROWS;
        _conditionModel.page = page;
58
        _conditionModel.resellerCodeEquals = [[Shoppersmanager manager].shoppers.employee.currentDepart  orgCode];
59 60 61 62
    }
    return _conditionModel;
}

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
#pragma mark -渲染完成
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = NO;
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
}

#pragma mark -视图即将消失
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    // 开启
    self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = YES;
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = YES;
    }
}
勾芒's avatar
勾芒 committed
83

曹云霄's avatar
曹云霄 committed
84 85 86 87
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self uiConfigAction];
曹云霄's avatar
曹云霄 committed
88
    [self setUpRefreshAction];
曹云霄's avatar
曹云霄 committed
89 90 91 92 93 94 95
}

#pragma mark -UI
- (void)uiConfigAction
{
    self.allCustomerTableview.dataSource = self;
    self.allCustomerTableview.delegate = self;
勾芒's avatar
勾芒 committed
96
    self.searchTextfield.delegate = self;
勾芒's avatar
勾芒 committed
97 98
    self.view.backgroundColor = kMainGrayColor;
    self.allCustomerTableview.backgroundColor = [UIColor clearColor];
勾芒's avatar
勾芒 committed
99 100 101 102 103 104 105 106 107
    self.searchTextfield.returnKeyType = UIReturnKeySearch;
    
    //设置按钮时间
    [self.begindateButton setTitle:[self dateAsString:[NSDate date]] forState:UIControlStateNormal];
    [self.enddateButton setTitle:[self dateAsString:[NSDate date]] forState:UIControlStateNormal];
    self.begindateButton.layer.masksToBounds = YES;
    self.begindateButton.layer.cornerRadius = 10;
    self.enddateButton.layer.masksToBounds = YES;
    self.enddateButton.layer.cornerRadius = 10;
曹云霄's avatar
曹云霄 committed
108 109 110 111 112
}

#pragma mark -设置刷新
- (void)setUpRefreshAction
{
113
    WS(weakSelf);
勾芒's avatar
勾芒 committed
114 115
    //下拉刷新
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
曹云霄's avatar
曹云霄 committed
116
        
117 118
        weakSelf.conditionModel.page.page = ONE;
        [weakSelf.allCustomerTableview.mj_footer resetNoMoreData];
119
        [weakSelf getshoppersAssociatedCustomer:weakSelf.conditionModel isRemove:YES];
勾芒's avatar
勾芒 committed
120 121 122 123 124 125 126
    }];
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.allCustomerTableview.mj_header = headerRefresh;
    [self.allCustomerTableview.mj_header beginRefreshing];
    self.allCustomerTableview.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        
127 128
        if ( ++ weakSelf.conditionModel.page.page > weakSelf.totalPages) {
            [weakSelf.allCustomerTableview.mj_footer endRefreshingWithNoMoreData];
勾芒's avatar
勾芒 committed
129 130
        }else
        {
131
            [weakSelf getshoppersAssociatedCustomer:weakSelf.conditionModel isRemove:NO];
勾芒's avatar
勾芒 committed
132 133
        }
    }];
曹云霄's avatar
曹云霄 committed
134
    self.allCustomerTableview.mj_footer.automaticallyHidden = YES;
曹云霄's avatar
曹云霄 committed
135 136
}

勾芒's avatar
勾芒 committed
137
#pragma mark -获取导购关联客户
138
- (void)getshoppersAssociatedCustomer:(ConsumerQueryCondition *)condition isRemove:(BOOL)remove
勾芒's avatar
勾芒 committed
139
{
曹云霄's avatar
曹云霄 committed
140
    [XBLoadingView showHUDViewWithDefault];
曹云霄's avatar
曹云霄 committed
141
    WS(weakSelf);
142
    [HTTP networkRequestWithURL:SERVERREQUESTURL(GETshoppersCONSUMER)  withRequestType:ZERO withParameter:condition withReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
143
        
曹云霄's avatar
曹云霄 committed
144 145
        weakSelf.allCustomerTableview.emptyDataSetSource = weakSelf;
        weakSelf.allCustomerTableview.emptyDataSetDelegate = weakSelf;
曹云霄's avatar
曹云霄 committed
146
        [XBLoadingView hideHUDViewWithDefault];
147
        [weakSelf endRefreshingForTableView:weakSelf.allCustomerTableview];
曹云霄's avatar
曹云霄 committed
148
        if (RESULT(returnValue)) {
勾芒's avatar
勾芒 committed
149
            if (remove) {
曹云霄's avatar
曹云霄 committed
150
                [weakSelf.CustomerresultArray removeAllObjects];
勾芒's avatar
勾芒 committed
151
            }
曹云霄's avatar
曹云霄 committed
152 153
            ConsumerPageResult *Customerresult = [[ConsumerPageResult alloc]initWithDictionary:RESPONSE(returnValue) error:nil];
            weakSelf.totalPages = [RESPONSE(returnValue)[@"totalpages"] intValue];
勾芒's avatar
勾芒 committed
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
            for (TOConsumerEntity *objc in Customerresult.results) {
                
                MyclientEntityModel *myclientModel = [[MyclientEntityModel alloc]init];
                myclientModel.fid = objc.fid;
                myclientModel.createName = objc.createName;
                myclientModel.createBy = objc.createBy;
                myclientModel.createDate = objc.createDate;
                myclientModel.sysOrgCode = objc.sysOrgCode;
                myclientModel.name = objc.name;
                myclientModel.mobile = objc.mobile;
                myclientModel.province = objc.province;
                myclientModel.city = objc.city;
                myclientModel.country = objc.country;
                myclientModel.address = objc.address;
                myclientModel.picture = objc.picture;
勾芒's avatar
勾芒 committed
169
                myclientModel.company = objc.company;
勾芒's avatar
勾芒 committed
170
                myclientModel.lastVisitedTime = objc.lastVisitedTime;
曹云霄's avatar
曹云霄 committed
171
                [weakSelf.CustomerresultArray addObject:myclientModel];
勾芒's avatar
勾芒 committed
172
            }
曹云霄's avatar
曹云霄 committed
173
            [weakSelf.allCustomerTableview reloadData];
勾芒's avatar
勾芒 committed
174 175 176
        }
        else
        {
177
            [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
勾芒's avatar
勾芒 committed
178
        }
179
    }withFailureBlock:^(id error) {
勾芒's avatar
勾芒 committed
180
        
曹云霄's avatar
曹云霄 committed
181
        [weakSelf endRefreshingForTableView:weakSelf.allCustomerTableview];
曹云霄's avatar
曹云霄 committed
182
        [XBLoadingView hideHUDViewWithDefault];
勾芒's avatar
勾芒 committed
183 184 185
    }];
}

曹云霄's avatar
曹云霄 committed
186 187 188 189 190 191
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    AllCutomerTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"allcustomercell" forIndexPath:indexPath];
    cell.contentBackView.layer.masksToBounds = YES;
    cell.contentBackView.layer.cornerRadius = kCornerRadius;
    cell.backgroundColor = [UIColor clearColor];
192
    cell.model = [self.CustomerresultArray objectAtIndex_opple:indexPath.row];
曹云霄's avatar
曹云霄 committed
193 194 195 196 197
    return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
勾芒's avatar
勾芒 committed
198
    return self.CustomerresultArray.count;
曹云霄's avatar
曹云霄 committed
199 200 201
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
勾芒's avatar
勾芒 committed
202
    return 125;
曹云霄's avatar
曹云霄 committed
203 204
}

勾芒's avatar
勾芒 committed
205 206
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
曹云霄's avatar
曹云霄 committed
207
    ClientdetailsViewController *clientdetails = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"clientdetails"];
勾芒's avatar
勾芒 committed
208 209
    clientdetails.model = [self.CustomerresultArray objectAtIndex_opple:indexPath.row];
    clientdetails.cellindex = indexPath.row;
勾芒's avatar
勾芒 committed
210
    //设置当前客户
曹云霄's avatar
曹云霄 committed
211
    WS(weakSelf);
勾芒's avatar
勾芒 committed
212 213 214 215
    [clientdetails setCurrentUserBlock:^(NSInteger index,NSString *title) {
        
        NSString *customerID = [[weakSelf.CustomerresultArray objectAtIndex_opple:indexPath.row] fid];
        NSDictionary *dict = @{@"customerid":customerID,@"title":title,@"model":[weakSelf.CustomerresultArray objectAtIndex_opple:indexPath.row]};
216
        [Notification postNotificationName:@"SETUPCURRENTCUSTOMER" object:dict];
勾芒's avatar
勾芒 committed
217
    }];
勾芒's avatar
勾芒 committed
218 219 220
    [self.navigationController pushViewController:clientdetails animated:YES];
}

曹云霄's avatar
曹云霄 committed
221

勾芒's avatar
勾芒 committed
222
#pragma mark -开始筛选时间
223
- (IBAction)StartScreeningButtonClick:(UIButton *)sender {
勾芒's avatar
勾芒 committed
224 225 226
    
    DateSelectedViewController *datevc = [[DateSelectedViewController alloc]init];
    //选中时间回调
227
    WS(weakSelf);
勾芒's avatar
勾芒 committed
228
    [datevc setSelectedDateBlock:^(NSDate *selectedDate) {
229 230
        [weakSelf.begindateButton setTitle:[weakSelf dateAsString:selectedDate] forState:UIControlStateNormal];
        [weakSelf CalltimeSearch];
勾芒's avatar
勾芒 committed
231 232 233 234 235 236 237
    }];
    
    datevc.preferredContentSize = CGSizeMake(300, 250);
    datevc.modalPresentationStyle = UIModalPresentationFormSheet;
    UIPopoverPresentationController *pop = datevc.popoverPresentationController;
    pop.permittedArrowDirections = UIPopoverArrowDirectionAny;
    pop.sourceView = datevc.view;
曹云霄's avatar
曹云霄 committed
238 239 240
    dispatch_async(dispatch_get_main_queue(), ^{
        [self presentViewController:datevc animated:YES completion:nil];
    });
勾芒's avatar
勾芒 committed
241 242 243 244 245 246 247 248 249 250 251 252 253
}


#pragma mark -时间转换NSDate转NSString
- (NSString*)dateAsString:(NSDate*)date {
    
    NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd"];
    NSString * timeString = [formatter stringFromDate:date];
    return timeString;
}

#pragma mark -结束筛选时间
254
- (IBAction)EndScreeningButtonClick:(UIButton *)sender {
勾芒's avatar
勾芒 committed
255
    
256
    WS(weakSelf);
勾芒's avatar
勾芒 committed
257 258
    DateSelectedViewController *datevc = [[DateSelectedViewController alloc]init];
    [datevc setSelectedDateBlock:^(NSDate *selectedDate) {
259 260
        [weakSelf.enddateButton setTitle:[weakSelf dateAsString:selectedDate] forState:UIControlStateNormal];
        [weakSelf CalltimeSearch];
勾芒's avatar
勾芒 committed
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277
        
    }];
    datevc.preferredContentSize = CGSizeMake(300, 250);
    datevc.modalPresentationStyle = UIModalPresentationFormSheet;
    UIPopoverPresentationController *pop = datevc.popoverPresentationController;
    pop.permittedArrowDirections = UIPopoverArrowDirectionAny;
    pop.sourceView = datevc.view;
    [self presentViewController:datevc animated:YES completion:nil];
}


#pragma mark -调用时间段搜索
- (void)CalltimeSearch
{
    NSString *startString = self.begindateButton.currentTitle;
    NSString *endString = self.enddateButton.currentTitle;
    NSDateFormatter* formater = [[NSDateFormatter alloc] init];
278
    NSDateFormatter* endformater = [[NSDateFormatter alloc] init];
勾芒's avatar
勾芒 committed
279 280 281 282 283 284 285 286 287 288 289
    [formater setDateFormat:@"yyyy-MM-dd"];
    NSDate* date = [formater dateFromString:startString];
    [formater setDateFormat:@"yyyy-MM-dd"];
    NSDate* date1 = [formater dateFromString:endString];
    
    //比较结果
    NSInteger result = [self compareOneDay:date withAnotherDay:date1];
    //比较两个NSDate的大小
    switch (result) {
        case -1://start < end
        {
290 291 292 293
            [formater setDateFormat:@"yyyy-MM-dd 00:00:01"];
            [endformater setDateFormat:@"yyyy-MM-dd 23:59:59"];
            self.conditionModel.createTimeBegin = [formater stringFromDate:date];
            self.conditionModel.createTimeEnd = [endformater stringFromDate:date1];
勾芒's avatar
勾芒 committed
294 295 296 297
        }
            break;
        case 0://start == end
        {
298
            [formater setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
299 300
            self.conditionModel.createTimeBegin = nil;
            self.conditionModel.createTimeEnd = nil;
勾芒's avatar
勾芒 committed
301 302 303 304
        }
            break;
        case 1://start > end
        {
305 306 307 308
            [formater setDateFormat:@"yyyy-MM-dd 00:00:01"];
            [endformater setDateFormat:@"yyyy-MM-dd 23:59:59"];
            self.conditionModel.createTimeBegin = [formater stringFromDate:date1];
            self.conditionModel.createTimeEnd = [endformater stringFromDate:date];
勾芒's avatar
勾芒 committed
309 310 311 312 313 314
        }
            break;
            
        default:
            break;
    }
315 316 317 318
    self.conditionModel.nameEquals = nil;
    self.conditionModel.mobileEquals = nil;
    self.searchTextfield.text = nil;
    [self.allCustomerTableview.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
319 320 321 322 323 324
}

#pragma mark -Return键检测
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
325 326
    self.conditionModel.nameEquals = self.searchTextfield.text;
    self.conditionModel.mobileEquals = self.searchTextfield.text;
327
    if ([BaseViewController isBlankString:self.searchTextfield.text]) {
328 329
        self.conditionModel.nameEquals = nil;
        self.conditionModel.mobileEquals = nil;
勾芒's avatar
勾芒 committed
330
    }
331
    [self.allCustomerTableview.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
332 333 334
    return YES;
}

曹云霄's avatar
曹云霄 committed
335

曹云霄's avatar
曹云霄 committed
336 337 338 339 340 341 342 343 344 345 346 347 348 349 350
#pragma mark -友好界面
- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return kNoDataImage;
}

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    return [[NSAttributedString alloc]initWithString:@"暂无数据" attributes:nil];
}

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return YES;
}
曹云霄's avatar
曹云霄 committed
351 352 353 354 355




@end